* { box-sizing: border-box; } @font-face { font-family: 'NotoSansThai'; src: url('../../../Create%20Room/FONTS/NotoSansThai-Medium.ttf') format('truetype'), url('/game-justic/Create%20Room/FONTS/NotoSansThai-Medium.ttf') format('truetype'); font-weight: 500; font-style: normal; font-display: swap; } body { font-family: sans-serif; margin: 0; background: #1a1b26; color: #c0caf5; } body.room-lobby-page, body.room-lobby-page * { font-family: 'NotoSansThai', 'Kanit', system-ui, sans-serif !important; } .container { max-width: 720px; margin: 1rem auto; padding: 1rem; } /* โครง Editor — แยกแถบเครื่องมือ / พื้นที่วาด */ .editor-page { display: block; } /* Editor ฝังใน Admin (?embed=1) — เต็มความสูง iframe, พื้นที่แคนวาสใหญ่ + เลื่อนแยก */ html.editor-embed-admin { height: 100%; } html.editor-embed-admin body { height: 100%; margin: 0; overflow: hidden; } body.editor-embed-admin .version-tag { display: none !important; } body.editor-embed-admin .container.editor-page { max-width: none !important; width: 100%; height: 100%; margin: 0 !important; padding: 0.35rem 0.5rem 0.45rem; display: flex; flex-direction: column; min-height: 0; box-sizing: border-box; } body.editor-embed-admin .container.editor-page > h1 { display: none; } body.editor-embed-admin .editor-toolbar-wrap { flex: 0 1 auto; max-height: min(36vh, 360px); overflow-x: hidden; overflow-y: auto; padding: 0.15rem 0.25rem 0.45rem 0; margin: 0 0 0.3rem; border-bottom: 1px solid rgba(65, 72, 104, 0.9); scrollbar-width: thin; } body.editor-embed-admin .editor-workspace { flex: 1 1 auto; min-height: 0; display: flex; flex-direction: column; overflow: hidden; } body.editor-embed-admin .canvas-wrap { flex: 1 1 auto; min-height: 140px; overflow: auto; margin: 0 !important; border-radius: 10px; border: 1px solid #414868; background: #0f1018; -webkit-overflow-scrolling: touch; } body.editor-embed-admin #editor-status { flex: 0 0 auto; margin: 0.3rem 0 0; font-size: 0.8rem; line-height: 1.35; } body.editor-embed-admin .editor-legend-short { margin: 0.25rem 0 0; font-size: 0.76rem; line-height: 1.4; color: #a8b0d0; } body.editor-embed-admin .editor-toolbar { margin-top: 0.25rem; margin-bottom: 0.35rem; } body.editor-embed-admin .frogger-lanes { margin: 0.35rem 0; } body.editor-embed-admin .editor-bg-section { margin: 0.35rem 0 0.15rem; } h1 { color: #7aa2f7; } a { color: #9ece6a; } label { display: inline-block; margin: 0.25rem 0.5rem 0.25rem 0; } input, button { padding: 0.4rem 0.6rem; margin: 0 0.25rem 0 0; border-radius: 6px; border: 1px solid #414868; } input { background: #24283b; color: #c0caf5; } button { background: #7aa2f7; color: #1a1b26; cursor: pointer; border: none; } .legend { font-size: 0.9rem; color: #a9b1d6; margin: 0.5rem 0; } .frogger-lanes { margin: 1rem 0; padding: 0.75rem; background: #24283b; border-radius: 8px; position: relative; z-index: 2; min-height: 80px; } .frogger-lanes h3 { margin: 0 0 0.5rem 0; color: #7aa2f7; font-size: 1rem; } .frogger-lanes table { width: 100%; border-collapse: collapse; font-size: 0.85rem; } .frogger-lanes th, .frogger-lanes td { padding: 0.25rem 0.5rem; text-align: left; border: 1px solid #414868; } .frogger-lanes select, .frogger-lanes input[type="number"] { padding: 0.35rem 0.5rem; min-width: 4rem; background: #1a1b26; color: #c0caf5; border: 1px solid #414868; border-radius: 4px; cursor: pointer; font-size: 0.9rem; } .frogger-lanes select { min-width: 6rem; } .frogger-lanes .lane-speed { width: 4rem; } .frogger-lanes .lane-spacing { width: 4rem; } .frogger-lanes td { vertical-align: middle; } .frogger-lanes select:disabled, .frogger-lanes input:disabled { opacity: 0.6; cursor: not-allowed; } .game-type-hint { font-size: 0.85rem; color: #a9b1d6; margin-left: 0.5rem; } .editor-toolbar { margin: 1rem 0; flex-wrap: wrap; display: flex; align-items: center; gap: 0.5rem 1rem; } .editor-toolbar label, .editor-toolbar .game-type-hint { margin: 0; } .editor-bg-section { margin: 0.75rem 0; display: flex; flex-wrap: wrap; align-items: center; gap: 0.5rem; } .editor-bg-section label { margin: 0; } .canvas-wrap { margin: 1rem 0; } .container { padding-left: 1rem; padding-right: 1rem; } #editor-canvas { background: #1a1b26; display: block; } .game-wrap { display: flex; flex-direction: column; height: 100vh; height: 100dvh; min-height: 0; } .game-header { flex-shrink: 0; background: #24283b; padding: 0.5rem 1rem; display: flex; justify-content: space-between; align-items: center; gap: 0.5rem; } .game-header span { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } .game-header button { flex-shrink: 0; } #game-canvas { flex: 1 1 auto; display: block; width: 100%; min-height: 0; min-width: 0; touch-action: none; } .game-wrap .chat-panel { flex-shrink: 0; } .chat-panel { height: 160px; border-top: 1px solid #414868; display: flex; flex-direction: column; } #chat-messages { flex: 1; overflow-y: auto; padding: 0.5rem; font-size: 0.9rem; } #chat-form { display: flex; padding: 0.5rem; gap: 0.5rem; } #chat-input { flex: 1; } .lobby-section { margin: 1.25rem 0; padding: 1rem; background: #24283b; border-radius: 8px; } .lobby-section h2 { margin: 0 0 0.75rem 0; font-size: 1rem; color: #7aa2f7; } #room-list { list-style: none; margin: 0; padding: 0; } #room-list .room-item { display: flex; flex-wrap: wrap; align-items: center; gap: 0.5rem; padding: 0.5rem 0; border-bottom: 1px solid #414868; } #room-list .room-item:last-child { border-bottom: none; } #room-list .room-name { font-weight: 600; color: #c0caf5; min-width: 0; } #room-list .room-meta { font-size: 0.85rem; color: #a9b1d6; } #room-list .room-meta-inline { font-size: 0.8rem; color: #565f89; font-weight: normal; } #room-list-status { margin: 0; color: #a9b1d6; font-size: 0.9rem; } .room-lobby-peers { margin: 1rem 0; padding: 0.75rem; background: #24283b; border-radius: 8px; } .room-lobby-peer { padding: 0.35rem 0; color: #c0caf5; } .room-lobby-peer:not(:last-child) { border-bottom: 1px solid #414868; } #lobby-map-wrap { position: fixed; top: 0; left: 0; right: 0; bottom: 0; width: 100%; height: 100%; min-width: 100vw; min-height: 100vh; z-index: 0; } body.room-lobby-page { background: radial-gradient(120% 120% at 50% -12%, rgba(86, 122, 255, 0.26) 0%, rgba(30, 37, 83, 0.16) 40%, rgba(7, 10, 25, 0) 75%), linear-gradient(180deg, #1a1d46 0%, #111530 42%, #090d22 100%); color: #ebf6ff; } #lobby-map-wrap::before { content: ''; position: absolute; inset: 0; z-index: 1; pointer-events: none; background: radial-gradient(80% 65% at 50% 18%, rgba(106, 194, 255, 0.2), rgba(106, 194, 255, 0) 72%), linear-gradient(180deg, rgba(10, 16, 46, 0.25) 0%, rgba(6, 12, 31, 0.05) 30%, rgba(5, 9, 24, 0.5) 100%); } #lobby-map-wrap::after { content: ''; position: absolute; inset: 0; z-index: 2; pointer-events: none; box-shadow: inset 0 0 160px rgba(8, 12, 30, 0.85); } #lobby-map-canvas { display: block; position: absolute; top: 0; left: 0; right: 0; bottom: 0; width: 100%; height: 100%; min-width: 100%; min-height: 100%; margin: 0; padding: 0; background: radial-gradient(circle at 50% 20%, rgba(124, 197, 255, 0.25) 0%, rgba(124, 197, 255, 0) 45%), linear-gradient(180deg, #252c66 0%, #1a2150 45%, #121a3b 100%); box-sizing: border-box; } #lobby-map-canvas:focus { outline: none; } #lobby-map-canvas:focus-visible { outline: 2px solid rgba(122, 162, 247, 0.45); outline-offset: -2px; } /* LobbyB (mn8nx46h) — ไม่แสดงปุ่มพร้อม */ body.room-lobby--lobby-b .room-lobby-ready-fixed { display: none !important; } .lobby-interact-hint { position: absolute; bottom: max(10px, env(safe-area-inset-bottom)); left: 50%; transform: translateX(-50%); z-index: 2; margin: 0; padding: 0.2rem 0.55rem; font-size: clamp(0.72rem, 1.8vw, 0.85rem); color: rgba(203, 213, 245, 0.9); text-shadow: 0 1px 10px rgba(0, 0, 0, 0.55); pointer-events: none; font-family: system-ui, 'Kanit', sans-serif; white-space: nowrap; } .lobby-interact-hint kbd { display: inline-block; padding: 0.06em 0.32em; border-radius: 4px; background: rgba(26, 27, 38, 0.88); border: 1px solid rgba(122, 162, 247, 0.45); font-size: 0.88em; font-family: inherit; } .lobby-zoom-pct { position: absolute; top: 12px; left: 50%; transform: translateX(-50%); z-index: 2; padding: 6px 12px; border-radius: 8px; background: rgba(26, 27, 38, 0.85); color: #c0caf5; font-size: 1rem; font-weight: 600; pointer-events: none; opacity: 0; transition: opacity 0.2s ease; } .lobby-zoom-pct.lobby-zoom-pct-visible { opacity: 1; } /* ซ่อนแผง overlay รายชื่อ / host / แชท — โถงโฟกัสแผนที่ + ปุ่ม READY/ไมค์ ด้านนอก */ .room-lobby-overlay { display: none !important; } .room-lobby-top-left-cluster { position: fixed; top: max(12px, env(safe-area-inset-top)); left: max(0px, env(safe-area-inset-left)); z-index: 55; display: flex; flex-direction: column; align-items: flex-start; gap: 0.4rem; pointer-events: none; } .room-lobby-top-left-cluster .room-lobby-exit-fixed { pointer-events: auto; } .room-lobby-room-id-pill { pointer-events: auto; display: inline-flex; align-items: center; gap: 0.4rem; min-height: 44px; padding: 0.5rem 0.9rem; border-radius: 12px; border: 1px solid rgba(106, 232, 255, 0.58); background: linear-gradient(180deg, rgba(43, 67, 128, 0.86), rgba(22, 34, 74, 0.9)); box-shadow: inset 0 0 0 1px rgba(188, 247, 255, 0.2), 0 0 18px rgba(80, 213, 255, 0.32); color: #dff6ff; font-family: 'NotoSansThai', 'Kanit', system-ui, sans-serif; letter-spacing: 0.03em; } .room-lobby-room-id-label { font-weight: 600; font-size: clamp(0.78rem, 1.7vw, 0.9rem); opacity: 0.92; } #room-id-value { font-weight: 800; font-size: clamp(0.85rem, 1.9vw, 1rem); color: #f4fdff; } .room-lobby-room-id-lock { font-size: 0.85rem; filter: drop-shadow(0 0 6px rgba(105, 227, 255, 0.6)); } /* มุมขวาบน — โปรไฟล์ตัวละคร */ .room-lobby-top-right-cluster { position: fixed; top: max(12px, env(safe-area-inset-top)); right: max(12px, env(safe-area-inset-right)); z-index: 56; display: flex; flex-direction: row; align-items: flex-start; gap: 0.4rem; pointer-events: none; } .room-lobby-top-right-cluster > * { pointer-events: auto; } .room-lobby-top-right-actions { display: flex; flex-direction: row; align-items: flex-start; gap: 0.45rem; } .room-lobby-top-right-action-btn { width: 161px; height: 176px; min-width: 161px; min-height: 176px; max-width: 161px; max-height: 176px; aspect-ratio: 161 / 176; padding: 0; margin: 0; border: none; border-radius: 0; background: transparent; box-shadow: none; cursor: pointer; } .room-lobby-top-right-action-btn img { width: 161px; height: 176px; min-width: 161px; min-height: 176px; max-width: 161px; max-height: 176px; aspect-ratio: 161 / 176; object-fit: contain; display: block; pointer-events: none; user-select: none; -webkit-user-drag: none; } .room-lobby-profile-wrap { display: flex; flex-direction: column; align-items: center; gap: 0.2rem; } .room-lobby-profile-frame { position: relative; width: 159px; height: 157px; min-width: 159px; min-height: 157px; max-width: 159px; max-height: 157px; aspect-ratio: 159 / 157; border-radius: 0; border: none; overflow: hidden; background: url(../img/btn-profile-bg.png) center/100% 100% no-repeat; box-shadow: none; } .room-lobby-profile-avatar-viewport { position: absolute; left: 12px; top: 10px; width: 124px; height: 118px; overflow: hidden; border-radius: 12px; } .room-lobby-profile-frame #room-lobby-profile-avatar { position: absolute; left: 50%; top: 5px; display: block; width: 120%; height: auto; max-width: none; object-fit: contain; object-position: center top; transform: translateX(-50%); transform-origin: center center; image-rendering: pixelated; image-rendering: crisp-edges; } .room-lobby-profile-set-btn { position: absolute; right: 0; bottom: 0; width: 71px; height: 71px; min-width: 71px; min-height: 71px; max-width: 71px; max-height: 71px; aspect-ratio: 71 / 71; padding: 0; margin: 0; border: none; border-radius: 0; background: transparent; cursor: pointer; z-index: 2; } .room-lobby-profile-set-btn img { display: block; width: 71px; height: 71px; min-width: 71px; min-height: 71px; max-width: 71px; max-height: 71px; aspect-ratio: 71 / 71; object-fit: contain; } /* Profile overlay (open from btn-profile-set) */ .room-lobby-profile-overlay { position: fixed; inset: 0; z-index: 10060; display: flex; align-items: center; justify-content: center; padding: max(12px, env(safe-area-inset-top)) max(12px, env(safe-area-inset-right)) max(12px, env(safe-area-inset-bottom)) max(12px, env(safe-area-inset-left)); } .room-lobby-profile-overlay.is-hidden { display: none !important; } .room-lobby-profile-backdrop { position: absolute; inset: 0; background: rgba(0, 0, 0, 0.8); } .room-lobby-profile-dialog { position: relative; z-index: 1; width: min( 1701px, calc(100vw - 24px), calc((100dvh - 24px) * (1701 / 951)) ); height: auto; aspect-ratio: 1701 / 951; max-height: calc(100dvh - 24px); padding: 0; background: url(../img/03-6-Profile/profile-pop-bg.png) center/100% 100% no-repeat; border: none; border-radius: 0; box-shadow: none; color: #eaf8ff; box-sizing: border-box; --rp-scale: 1; --rp-close-hit-size: calc(62px * var(--rp-scale)); --rp-close-hit-top: 5.6%; --rp-close-hit-right: 2.9%; } .room-lobby-profile-title { display: none !important; } .room-lobby-profile-close { position: absolute; top: var(--rp-close-hit-top); right: var(--rp-close-hit-right); width: var(--rp-close-hit-size); height: var(--rp-close-hit-size); border: none; border-radius: 0; background: rgba(0, 255, 255, 0.5); color: transparent; font-size: 0; line-height: 1; cursor: pointer; text-shadow: none; z-index: 3; -webkit-tap-highlight-color: transparent; opacity: 0.5; } .room-lobby-profile-content { position: absolute; top: 17%; right: 7%; bottom: 11%; left: 7%; display: grid; grid-template-columns: minmax(0, 0.95fr) minmax(0, 1.3fr); gap: 0; align-items: stretch; height: auto; padding: 0; box-sizing: border-box; } .room-lobby-profile-left-pane, .room-lobby-profile-right-pane { border: 2px solid rgba(92, 233, 255, 0.65); border-radius: 12px; background: transparent; padding: clamp(10px, 1.4vw, 16px); box-sizing: border-box; } .room-lobby-profile-left-pane { border: none; border-radius: 0; background: transparent; padding: calc(3px * var(--rp-scale)) calc(4px * var(--rp-scale)) calc(5px * var(--rp-scale)); width: 100%; height: 100%; min-width: 0; min-height: 0; display: grid; grid-template-rows: minmax(0, 1fr) calc(58px * var(--rp-scale)); justify-items: center; align-items: stretch; row-gap: calc(10px * var(--rp-scale)); } .room-lobby-profile-inner-frame { width: min(100%, 98%); max-width: 100%; aspect-ratio: 621 / 626; height: 100%; max-height: 100%; min-width: 0; background: url(../img/03-6-Profile/profile-char-frame.png) center/100% 100% no-repeat; --pf-scale: var(--rp-scale, 1); font-size: calc(16px * var(--pf-scale)); padding: calc(12px * var(--pf-scale)) calc(11px * var(--pf-scale)) calc(9px * var(--pf-scale)); box-sizing: border-box; display: flex; flex-direction: column; align-items: center; justify-content: flex-start; align-self: stretch; overflow: hidden; } .room-lobby-profile-coins { margin: calc(10px * var(--pf-scale)) 0 calc(10px * var(--pf-scale)); display: flex; align-items: center; justify-content: center; gap: calc(8px * var(--pf-scale)); font-size: calc(30px * var(--pf-scale)); font-weight: 700; width: 100%; text-align: center; line-height: 1; } .room-lobby-profile-coins strong { color: #fff; font-size: calc(48px * var(--pf-scale)); font-weight: 700; line-height: 1; } .room-lobby-profile-coins-icon { width: calc(30px * var(--pf-scale)); height: calc(30px * var(--pf-scale)); } .room-lobby-profile-coins-label { height: calc(62px * var(--pf-scale)); width: auto; object-fit: contain; margin-top: calc(6px * var(--pf-scale)); } .room-lobby-profile-char-card { border: none; border-radius: 0; width: 100%; min-width: 0; flex: 1 1 auto; min-height: 0; display: flex; flex-direction: column; align-items: center; justify-content: flex-start; gap: calc(3px * var(--pf-scale)); background: transparent; padding: calc(4px * var(--pf-scale)) 0 calc(6px * var(--pf-scale)); box-sizing: border-box; overflow: hidden; } .room-lobby-profile-char-card #room-lobby-profile-overlay-avatar { width: 100%; max-width: 100%; height: auto; object-fit: contain; max-height: 83%; margin-top: calc(-28px * var(--pf-scale)); margin-bottom: calc(-9px * var(--pf-scale)); } .room-lobby-profile-overlay-name { margin-top: 0; font-size: calc(38px * var(--pf-scale)); font-weight: 700; color: #fff; line-height: 1; text-shadow: 0 1px 0 rgba(0, 0, 0, 0.4); width: 100%; max-width: 100%; min-width: 0; flex: 1 1 auto; text-align: center; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; } .room-lobby-profile-overlay-name-row { position: relative; display: flex; align-items: center; justify-content: flex-start; gap: calc(6px * var(--pf-scale)); width: 100%; min-width: 0; padding-left: calc(92px * var(--pf-scale)); padding-right: calc(92px * var(--pf-scale)); box-sizing: border-box; margin-top: calc(-6px * var(--pf-scale)); flex-shrink: 0; min-height: calc(70px * var(--pf-scale)); overflow: visible; } .room-lobby-profile-edit-btn { padding: 0; margin: 0; position: absolute; right: 4%; top: 50%; transform: translateY(-50%); width: calc(88px * var(--pf-scale)); height: calc(88px * var(--pf-scale)); aspect-ratio: 1 / 1; border: none; border-radius: 0; background: transparent; cursor: pointer; } .room-lobby-profile-edit-btn img { width: 100%; height: 100%; object-fit: contain; display: block; } .room-lobby-profile-name-sep { margin-top: calc(-10px * var(--pf-scale)); width: min(100%, 505px); height: auto; object-fit: contain; } .room-lobby-profile-overlay-agent { margin-top: calc(4px * var(--pf-scale)); font-size: calc(18px * var(--pf-scale)); color: #F856E2; font-weight: 500; line-height: 1; margin-bottom: calc(4px * var(--pf-scale)); flex-shrink: 0; } .room-lobby-profile-logout { margin-top: 0; width: min(50%, calc(256px * var(--rp-scale))); max-width: calc(256px * var(--rp-scale)); aspect-ratio: 256 / 94; height: auto; border-radius: 0; border: none; background: transparent; color: inherit; font-size: 0; font-weight: 400; cursor: pointer; align-self: center; display: inline-flex; align-items: center; justify-content: center; } .room-lobby-profile-logout img { width: 100%; height: 100%; object-fit: fill; display: block; } .room-lobby-profile-right-pane { display: flex; flex-direction: column; justify-content: flex-start; gap: calc(14px * var(--rp-scale)); padding-top: calc(6px * var(--rp-scale)); margin-left: calc(-32px * var(--rp-scale)); min-width: 0; border: none; border-radius: 0; background: transparent; padding: 0; } .room-lobby-profile-archiv-groups { display: flex; align-items: flex-end; justify-content: flex-start; padding-left: calc(30px * var(--rp-scale)); height: calc(60px * var(--rp-scale)); overflow: visible; } .room-lobby-profile-archiv-group-btn { width: calc(190px * var(--rp-scale)); height: calc(60px * var(--rp-scale)); margin: 0; padding: 0; border: none; background: transparent; cursor: pointer; } .room-lobby-profile-archiv-group-btn + .room-lobby-profile-archiv-group-btn { margin-left: calc(-14px * var(--rp-scale)); } .room-lobby-profile-archiv-group-btn img { width: 100%; height: 100%; object-fit: contain; display: block; } .room-lobby-profile-archiv-frame { position: relative; width: min(100%, calc(872px * var(--rp-scale))); aspect-ratio: 872 / 515; max-height: 100%; background: url(../img/03-6-Profile/archiv-frame.png) center/100% 100% no-repeat; padding: 4.8% 6.5% 5.8% 4.2%; box-sizing: border-box; } .room-lobby-profile-achievements-list { list-style: none; margin: 0; padding: 0; height: 100%; display: flex; flex-direction: column; gap: calc(12px * var(--rp-scale)); overflow: hidden; } .room-lobby-profile-archiv-item { display: flex; justify-content: flex-start; align-items: center; gap: calc(14px * var(--rp-scale)); min-height: 0; } .room-lobby-profile-archiv-icon-bg { width: calc(131px * var(--rp-scale)); height: calc(123px * var(--rp-scale)); aspect-ratio: 131 / 123; object-fit: contain; display: block; } .room-lobby-profile-archiv-main { flex: 1 1 auto; min-width: 0; display: flex; flex-direction: column; gap: calc(6px * var(--rp-scale)); } .room-lobby-profile-archiv-title-row { display: flex; align-items: center; justify-content: space-between; gap: clamp(8px, 0.8vw, 12px); } .room-lobby-profile-archiv-name { width: calc(421px * var(--rp-scale)); height: calc(72px * var(--rp-scale)); max-width: 100%; aspect-ratio: 421 / 72; object-fit: contain; display: block; } .room-lobby-profile-archiv-count { color: #ffe95a; font-size: calc(38px * var(--rp-scale)); line-height: 1; font-weight: 700; font-family: 'NotoSansThai', 'Kanit', system-ui, sans-serif; } .room-lobby-profile-archiv-progress-wrap { position: relative; width: calc(571px * var(--rp-scale)); max-width: 100%; aspect-ratio: 571 / 56; height: calc(56px * var(--rp-scale)); } .room-lobby-profile-archiv-progress-bg, .room-lobby-profile-archiv-progress { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: contain; display: block; } .room-lobby-profile-archiv-progress { clip-path: inset(0 calc(100% - var(--archiv-progress, 0%)) 0 0); } .room-lobby-profile-archiv-line { width: 100%; height: auto; object-fit: contain; display: block; } .room-lobby-profile-archiv-scroll { position: absolute; top: 13%; right: 1.6%; bottom: 7%; width: calc(15px * var(--rp-scale)); display: flex; justify-content: center; } .room-lobby-profile-archiv-scroll-bg, .room-lobby-profile-archiv-scroll-bar { position: absolute; left: 50%; transform: translateX(-50%); width: 100%; object-fit: contain; display: block; } .room-lobby-profile-archiv-scroll-bg { top: 0; bottom: 0; height: 100%; } .room-lobby-profile-archiv-scroll-bar { top: 8%; height: 42%; } .room-lobby-profile-settings { position: relative; width: min(100%, calc(824px * var(--rp-scale))); aspect-ratio: 824 / 169; margin-top: auto; } .room-lobby-profile-settings-frame { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: contain; display: block; } .room-lobby-profile-settings-row { position: absolute; inset: 0; display: flex; align-items: center; justify-content: space-between; padding: 0 calc(70px * var(--rp-scale)) 0 calc(90px * var(--rp-scale)); box-sizing: border-box; } .room-lobby-profile-setting-item { display: inline-flex; align-items: center; gap: calc(14px * var(--rp-scale)); } .room-lobby-profile-setting-label { width: calc(99px * var(--rp-scale)); height: calc(39px * var(--rp-scale)); aspect-ratio: 99 / 39; object-fit: contain; display: block; } .room-lobby-profile-toggle { margin: 0; width: calc(152px * var(--rp-scale)); height: calc(94px * var(--rp-scale)); aspect-ratio: 152 / 94; padding: 0; border: none; background: transparent; cursor: pointer; } .room-lobby-profile-toggle img { width: 100%; height: 100%; object-fit: contain; display: block; } /* Host Console popup */ .room-lobby-host-console-overlay { position: fixed; inset: 0; z-index: 10070; display: flex; align-items: center; justify-content: center; padding: max(12px, env(safe-area-inset-top)) max(12px, env(safe-area-inset-right)) max(12px, env(safe-area-inset-bottom)) max(12px, env(safe-area-inset-left)); } .room-lobby-host-console-overlay.is-hidden { display: none !important; } .room-lobby-host-console-backdrop { position: absolute; inset: 0; background: rgba(0, 0, 0, 0.8); } .room-lobby-host-console-dialog { position: relative; z-index: 1; width: min(990px, calc(100vw - 24px), calc((100dvh - 24px) * (990 / 881))); aspect-ratio: 990 / 881; max-height: calc(100dvh - 24px); --hc-scale: 1; --hc-close-hit-size: calc(82px * var(--hc-scale)); --hc-close-hit-top: 9%; --hc-close-hit-right: 6.5%; background: url(../img/03-4-Host-Console/host-console-bg.png) center/100% 100% no-repeat; box-sizing: border-box; } .room-lobby-host-console-body { position: absolute; top: 13.6%; right: 7.9%; bottom: 6%; left: 8.2%; display: flex; flex-direction: column; align-items: center; min-height: 0; padding-top: calc(50px * var(--hc-scale)); padding-bottom: calc(62px * var(--hc-scale)); box-sizing: border-box; } .room-lobby-host-console-close { position: absolute; top: var(--hc-close-hit-top); right: var(--hc-close-hit-right); width: var(--hc-close-hit-size); height: var(--hc-close-hit-size); border: none; border-radius: 0; background: transparent; color: transparent; font-size: 0; line-height: 1; cursor: pointer; text-shadow: none; z-index: 3; -webkit-tap-highlight-color: transparent; } .room-lobby-host-console-txt-img { width: auto; object-fit: contain; display: block; } .room-lobby-host-console-txt-max { height: calc(66px * var(--hc-scale)); margin-bottom: calc(10px * var(--hc-scale)); } .room-lobby-host-console-max-wrap { position: relative; width: min(82%, calc(657px * var(--hc-scale))); aspect-ratio: 657 / 141; margin-bottom: calc(-10px * var(--hc-scale)); margin-top: calc(-30px * var(--hc-scale)); } .room-lobby-host-console-textfield-bg { width: 100%; height: 100%; object-fit: contain; display: block; } .room-lobby-host-console-arrow-btn { position: absolute; top: 50%; width: calc(51px * var(--hc-scale)); height: calc(54px * var(--hc-scale)); padding: 0; margin: 0; border: none; border-radius: 0; background: transparent; cursor: pointer; transform: translateY(-50%); } .room-lobby-host-console-arrow-left { left: 4.9%; } .room-lobby-host-console-arrow-right { right: 4.9%; } .room-lobby-host-console-arrow-btn img { width: 100%; height: 100%; object-fit: contain; display: block; } .room-lobby-host-console-max-value { position: absolute; left: 50%; top: 50%; transform: translate(-50%, -50%); min-width: 2ch; text-align: center; font-size: calc(40px * var(--hc-scale)); font-weight: 700; color: #eaf9ff; text-shadow: 0 0 10px rgba(0, 255, 255, 0.35); } .room-lobby-host-console-summary { margin: 0 0 calc(12px * var(--hc-scale)); font-size: calc(24px * var(--hc-scale)); color: #d9f3ff; margin-bottom: 4%; } .room-lobby-host-console-line { width: min(94%, calc(744px * var(--hc-scale))); height: auto; margin-bottom: calc(10px * var(--hc-scale)); object-fit: contain; } .room-lobby-host-console-txt-members { height: calc(61px * var(--hc-scale)); margin-bottom: calc(8px * var(--hc-scale)); } .room-lobby-host-console-members { width: min(84%, calc(694px * var(--hc-scale))); flex: 1 1 auto; min-height: 0; overflow-x: hidden; overflow-y: scroll; padding-right: calc(40px * var(--hc-scale)); padding-left: calc(35px * var(--hc-scale)); scrollbar-width: auto; scrollbar-color: rgba(255, 104, 228, 0.98) rgba(20, 40, 70, 0.55); scrollbar-gutter: stable both-edges; } .room-lobby-host-console-members::-webkit-scrollbar { width: clamp(24px, calc(36px * var(--hc-scale)), 42px); } .room-lobby-host-console-members::-webkit-scrollbar-track { background: rgba(20, 40, 70, 0.55); border-radius: 999px; border: 1px solid rgba(90, 220, 255, 0.35); } .room-lobby-host-console-members::-webkit-scrollbar-thumb { background: linear-gradient(180deg, rgba(255, 125, 236, 1) 0%, rgba(241, 74, 215, 1) 100%); border-radius: 999px; border: 3px solid rgba(16, 32, 56, 0.65); background-clip: padding-box; box-shadow: 0 0 10px rgba(255, 84, 226, 0.45); } .room-lobby-host-console-members-list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: calc(18px * var(--hc-scale)); } .room-lobby-host-console-member-item { position: relative; min-height: calc(44px * var(--hc-scale)); padding: calc(2px * var(--hc-scale)) calc(104px * var(--hc-scale)) calc(2px * var(--hc-scale)) calc(12px * var(--hc-scale)); display: flex; align-items: center; justify-content: flex-start; gap: 0.6rem; color: #e9f8ff; font-size: calc(28px * var(--hc-scale)); background: url(../img/03-4-Host-Console/host-console-line-2.png) left bottom/100% 3px no-repeat; } .room-lobby-host-console-member-item.is-host { min-height: calc(80px * var(--hc-scale)); padding-right: calc(12px * var(--hc-scale)); background: url(../img/03-4-Host-Console/host-console-hostname.png) center/100% 100% no-repeat; font-weight: 700; } .room-lobby-host-console-member-name { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: inherit; padding-left: 4%; margin-top: -4%; } .room-lobby-host-console-member-item.is-host .room-lobby-host-console-member-name { margin-top: 0%; /* เพิ่มค่านี้ = ขยับลง */ } .room-lobby-host-console-delete-btn { position: absolute; right: calc(10px * var(--hc-scale)); top: 50%; transform: translateY(-50%); width: calc(84px * var(--hc-scale)); height: calc(84px * var(--hc-scale)); min-width: calc(84px * var(--hc-scale)); padding: 0; border: none; border-radius: 0; background: transparent; cursor: pointer; margin-top: -2%; margin-right: -1%; } .room-lobby-host-console-delete-btn img { width: 100%; height: 100%; object-fit: contain; display: block; } .room-lobby-host-console-delete-btn:disabled { opacity: 0.35; cursor: default; } .room-lobby-host-console-confirm { position: absolute; left: 50%; bottom: calc(-60px * var(--hc-scale)); transform: translateX(-50%); width: min(43%, calc(350px * var(--hc-scale))); aspect-ratio: 350 / 129; border: none; border-radius: 0; padding: 0; background: transparent; cursor: pointer; } .room-lobby-host-console-confirm img { width: 100%; height: 100%; object-fit: contain; display: block; } /* Profile popup: tightened scaling for reduced viewports */ @media (max-width: 1100px), (max-height: 700px) { .room-lobby-profile-content { top: 13%; right: 4%; bottom: 8%; left: 4%; gap: clamp(8px, 1vw, 14px); grid-template-columns: minmax(0, 0.95fr) minmax(0, 1.12fr); } .room-lobby-profile-left-pane { grid-template-rows: minmax(0, 1fr) auto; row-gap: clamp(3px, 0.5vw, 6px); } .room-lobby-profile-logout { width: min(58%, 100%); } .room-lobby-profile-char-card #room-lobby-profile-overlay-avatar { width: 74%; max-width: 74%; max-height: 60%; } } @media (max-width: 900px), (max-height: 560px) { .room-lobby-profile-content { top: 11%; right: 3%; bottom: 7%; left: 3%; gap: 8px; grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.08fr); } .room-lobby-profile-logout { width: min(62%, 100%); } .room-lobby-profile-char-card #room-lobby-profile-overlay-avatar { width: 64%; max-width: 64%; max-height: 56%; } } .room-lobby-actions { margin-top: 1rem; display: flex; flex-wrap: wrap; align-items: center; gap: 1rem; } .room-lobby-actions .room-lobby-btn-hidden { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); border: 0; opacity: 0; pointer-events: none; } .room-lobby-actions label { margin: 0; } .room-lobby-actions #btn-start { background: #9ece6a; color: #1a1b26; } #host-only { display: flex; flex-wrap: wrap; align-items: center; gap: 0.5rem 1rem; } #host-only select { padding: 0.4rem 0.6rem; border-radius: 6px; border: 1px solid #414868; background: #24283b; color: #c0caf5; } .host-start-area-hint { flex-basis: 100%; margin: 0; font-size: 0.88rem; color: #e0af68; line-height: 1.35; max-width: 100%; } #host-only #btn-start:disabled { opacity: 0.5; cursor: not-allowed; filter: grayscale(0.25); } .room-lobby-chat { margin-top: 1rem; } .room-lobby-chat.chat-panel { border-radius: 12px; overflow: hidden; box-shadow: none; } .room-lobby-chat-peers.chat-panel { position: fixed; right: 0.25rem; bottom: 10rem; width: 576px; height: 525px; max-width: calc(100vw - 2.5rem); z-index: 52; margin-top: 0; display: flex; flex-flow: column; padding: 2rem; box-sizing: border-box; border-top: 0px solid #414868; background: url(../img/chat-msg-bg-alpha.png) center/100% 100% no-repeat; background-color: transparent; } .room-lobby-chat-peers.chat-panel .chat-header-title.chat-header-title-img img { width: 90px; height: 77px; } .room-lobby-chat-peers.chat-panel .chat-close-btn { width: 48px; height: 48px; } .room-lobby-chat-peers.chat-panel .chat-close-btn img { width: 50px; height: 50px; } .room-lobby-chat-peers.chat-panel #chat-messages { padding: 0.75rem; font-size: 1.05rem; gap: 0.5rem; } .room-lobby-chat-peers.chat-panel .chat-form-bar { padding: 0.6rem 0; gap: 0.5rem; } .room-lobby-chat-peers.chat-panel #chat-input { padding: 0.6rem 0.85rem; font-size: 1.05rem; } .room-lobby-chat-peers.chat-panel .chat-send-btn { width: 52px; height: 52px; } .room-lobby-chat-peers.chat-panel .chat-send-btn img { width: 58px; height: 58px; } .room-lobby-chat-peers.chat-panel .chat-msg { padding: 0.6rem 1rem; font-size: 1.05rem; } .room-lobby-chat-peers.chat-panel .chat-header-bar { margin: 0 -2rem 0 -2rem; padding-left: 2rem; padding-right: 2rem; justify-content: space-between; align-items: center; min-height: 72px; height: 72px; } .room-lobby-chat-peers.chat-panel #chat-messages { flex: 1; min-height: 0; height: auto; } .room-lobby-chat .chat-header-bar { display: flex; align-items: center; justify-content: space-between; padding: 0; min-height: 48px; height: 48px; background: url(../img/chat-line.png) bottom repeat-x; background-size: 100% 4px; background-color: transparent; } .room-lobby-chat-peers .chat-header-title.chat-header-title-img { display: inline-flex; align-items: center; line-height: 0; } .room-lobby-chat-peers .chat-header-title.chat-header-title-img img { width: 60px; height: 51px; object-fit: contain; display: block; } .room-lobby-chat-ai .chat-header-title.chat-header-title-img { display: flex; align-items: flex-end; gap: 0.5rem; line-height: 0; min-width: 0; overflow: visible; } .room-lobby-chat-ai .chat-header-title.chat-header-title-img .ai-chat-title-label { height: 64px; width: auto; max-width: none; object-fit: contain; display: block; flex-shrink: 0; margin-bottom: -2px; } /* รูปหัวแชท AI — ยกขึ้นเหนือเส้น */ .room-lobby-chat-ai .chat-header-title.chat-header-title-img img { width: 86px; height: 92px; object-fit: cover; display: block; flex-shrink: 0; margin-top: -27px; margin-left: -6px; position: relative; z-index: 1; } .room-lobby-chat .chat-header-title { font-size: 1rem; font-weight: 600; color: #a0aec0; } .room-lobby-chat .chat-close-btn { display: flex; align-items: center; justify-content: center; width: 32px; height: 32px; padding: 0; border: none; border-radius: 8px; background: transparent; cursor: pointer; margin-left: auto; } .room-lobby-chat-peers .chat-header-bar .chat-close-btn { margin-left: 0; } .room-lobby-chat .chat-close-btn img { width: 34px; height: 34px; object-fit: contain; } .room-lobby-chat .chat-close-btn:hover { opacity: 0.9; } .room-lobby-chat.chat-panel-collapsed #chat-messages, .room-lobby-chat.chat-panel-collapsed .chat-form-bar { display: none !important; } .room-lobby-chat-peers.chat-panel-collapsed .chat-header-title { display: none !important; } .room-lobby-chat-peers.chat-panel-collapsed .chat-header-bar { justify-content: center; padding: 0; background: none !important; border: none; } .room-lobby-chat-peers.chat-panel-collapsed.chat-panel { width: 80px; height: 80px; min-height: 0; padding: 0; right: 1.25rem; bottom: 6.25rem; display: flex; align-items: center; justify-content: center; background: none !important; background-color: transparent !important; border: none; box-shadow: none; } .room-lobby-chat-peers.chat-panel-collapsed .chat-close-btn { width: 80px; height: 80px; overflow: visible; } .room-lobby-chat-peers.chat-panel-collapsed .chat-close-btn img { width: 100%; height: 100%; object-fit: contain; object-position: center; display: block; } .room-lobby-chat #chat-messages, .room-lobby-chat #ai-chat-messages { height: 100px; overflow-y: auto; padding: 0.5rem; font-size: 0.85rem; border: none; margin: 0; display: flex; flex-direction: column; gap: 0.35rem; background: none; background-color: transparent; box-shadow: none; } .room-lobby-chat .chat-messages-bg { border-radius: 0; } .room-lobby-chat #chat-form.chat-form-bar, .room-lobby-chat #ai-chat-form.chat-form-bar { display: flex; gap: 0.4rem; align-items: center; padding: 0.4rem 0; background: none; background-color: transparent; border-top: none; flex-shrink: 0; } .room-lobby-chat-peers .chat-form-bar { padding-left: 0; padding-right: 0; } .room-lobby-chat #chat-input, .room-lobby-chat #ai-chat-input { flex: 1; min-width: 0; padding: 0.45rem 0.6rem; border-radius: 10px; border: 1px solid rgba(0, 212, 255, 0.25); background: rgba(30, 35, 50, 0.8); color: #c0caf5; font-size: 0.9rem; box-sizing: border-box; margin-left: 9px; } .room-lobby-chat .chat-send-btn { display: flex; align-items: center; justify-content: center; width: 40px; height: 40px; flex-shrink: 0; padding: 0; border: none; border-radius: 10px; background: transparent; cursor: pointer; } .room-lobby-chat .chat-send-btn img { width: 45px; height: 45px; object-fit: contain; } .room-lobby-chat .chat-send-btn:hover { opacity: 0.9; } .room-lobby-chat .chat-msg { padding: 0.4rem 0.75rem; border-radius: 12px; max-width: 85%; background-size: 100% 100%; background-repeat: no-repeat; background-position: center; } .room-lobby-chat .chat-msg-mine { align-self: flex-end; text-align: right; background-image: url(../img/chat-bubble-me.png); background-color: rgba(122, 162, 247, 0.9); color: #1a1b26; } .room-lobby-chat .chat-msg-other { align-self: flex-start; text-align: left; background-image: url(../img/chat-bubble-friend.png); background-color: rgba(65, 72, 104, 0.9); color: #c0caf5; } .room-lobby-chat .chat-msg-ai { align-self: flex-start; text-align: left; background-image: url(../img/chat-bubble-friend.png); background-color: rgba(158, 206, 106, 0.9); color: #1a1b26; } .room-lobby-chat .chat-msg-system { align-self: center; text-align: center; max-width: 95%; background-image: none; background-color: rgba(26, 27, 38, 0.72); color: #9aa5ce; font-size: 0.88rem; font-style: italic; padding: 0.35rem 0.6rem; } /* AI chat — loading แบบ Messenger (จุดกระโดด 3 จุด), อยู่ติดข้อความล่าสุดในลิสต์ */ .room-lobby-chat .ai-chat-typing { display: flex; align-items: center; gap: 4px; padding: 12px 14px; min-height: 24px; flex-shrink: 0; background-image: url(../img/chat-bubble-friend.png); background-color: rgba(158, 206, 106, 0.9); background-size: 100% 100%; background-repeat: no-repeat; background-position: center; } .room-lobby-chat .ai-typing-dot { width: 6px; height: 6px; border-radius: 50%; background: #1a1b26; animation: ai-typing-bounce 1.4s ease-in-out infinite both; } .room-lobby-chat .ai-typing-dot:nth-child(1) { animation-delay: 0s; } .room-lobby-chat .ai-typing-dot:nth-child(2) { animation-delay: 0.2s; } .room-lobby-chat .ai-typing-dot:nth-child(3) { animation-delay: 0.4s; } @keyframes ai-typing-bounce { 0%, 60%, 100% { transform: translateY(0); } 30% { transform: translateY(-6px); } } /* AI chat panel — match Main-Lobby lobby-ai-chat-panel */ .room-lobby-chat-ai.chat-panel { position: fixed; left: 8px; right: auto; bottom: clamp(0.5rem, 2vw, 1rem); width: 454px; height: 526px; max-width: calc(100vw - 2.5rem); z-index: 51; margin: 0; display: flex; flex-flow: column; box-sizing: border-box; padding: 2.6rem; overflow: visible; background: url(../img/chat-msg-bg-alpha.png) center/100% 100% no-repeat; background-color: transparent; border: none; box-shadow: none; border-radius: 12px; pointer-events: none; } .room-lobby-chat-ai.chat-panel .chat-header-bar, .room-lobby-chat-ai.chat-panel #ai-chat-messages, .room-lobby-chat-ai.chat-panel #ai-chat-form, .room-lobby-chat-ai.chat-panel .ai-chat-admin-link { pointer-events: auto; } .room-lobby-chat-ai.chat-panel .chat-header-bar { margin: 0 -2rem 0 -2rem; padding: 0 1rem; justify-content: space-between; align-items: center; min-height: 50px; height: 50px; overflow: visible; background: url(../img/AI-chat-line.png) bottom repeat-x; background-size: 100% 3px; background-color: transparent; } .room-lobby-chat-ai.chat-panel .chat-header-title.chat-header-title-img img { width: 100px; height: 116px; margin-top: -39px; margin-left: 16px; object-fit: cover; position: relative; z-index: 1; } .room-lobby-chat-ai.chat-panel .chat-header-title.chat-header-title-img .ai-chat-title-label { height: 80px; width: auto; max-width: none; margin-bottom: -4px; margin-left: -5px; transform: translateX(-6px); } .room-lobby-chat-ai.chat-panel .chat-close-btn { display: flex; align-items: center; justify-content: center; width: 60px; height: 60px; padding: 0; border: none; border-radius: 8px; background: transparent; cursor: pointer; margin-left: auto; } .room-lobby-chat-ai.chat-panel .chat-close-btn img { width: 60px; height: 60px; object-fit: contain; } .room-lobby-chat-ai.chat-panel .chat-close-btn:hover { opacity: 0.9; } .room-lobby-chat-ai.chat-panel #ai-chat-messages { flex: 1; min-height: 0; height: auto; overflow-y: auto; padding: 0.2rem 0.35rem 0.25rem 0; font-size: 1.05rem; gap: 0.5rem; background: none; border: none; scrollbar-width: thin; scrollbar-color: rgba(244, 252, 255, 0.98) rgba(53, 110, 167, 0.28); } .room-lobby-chat-ai.chat-panel #ai-chat-messages::-webkit-scrollbar { width: 1rem; scrollbar-width: auto; } .room-lobby-chat-ai.chat-panel #ai-chat-messages::-webkit-scrollbar-track { border-radius: 999px; background: linear-gradient(180deg, rgba(38, 77, 125, 0.45) 0%, rgba(32, 66, 106, 0.38) 100%); box-shadow: inset 0 0 0 1px rgba(107, 193, 255, 0.25); } .room-lobby-chat-ai.chat-panel #ai-chat-messages::-webkit-scrollbar-thumb { border-radius: 999px; background: linear-gradient(180deg, rgba(255, 255, 255, 0.98) 0%, rgba(221, 244, 255, 0.96) 100%); box-shadow: 0 0 10px rgba(169, 239, 255, 0.55), inset 0 0 0 1px rgba(180, 235, 255, 0.9); } .room-lobby-chat-ai.chat-panel .chat-form-bar { display: flex; gap: 0; align-items: center; padding: 0.6rem 0; flex-shrink: 0; background: none; border: none; width: calc(100% + 3rem); margin-left: 0; margin-right: 0; } .room-lobby-chat-ai.chat-panel #ai-chat-input { flex: 0.85; min-width: 0; min-height: 50px; padding: 0.6rem 0.85rem; border-radius: 8px; border: 1px solid rgba(0, 212, 255, 0.32); background: rgba(30, 35, 50, 0.55); color: #c0caf5; font-size: 1.05rem; margin: 0; } .room-lobby-chat-ai.chat-panel .chat-send-btn { width: 73px; height: 73px; margin-left: 0; margin-right: -0.7rem; } .room-lobby-chat-ai.chat-panel .chat-send-btn img { width: 102px; height: 98px; object-fit: contain; } .room-lobby-chat-ai.chat-panel .chat-send-btn:focus, .room-lobby-chat-ai.chat-panel .chat-send-btn:focus-visible { outline: none !important; box-shadow: none !important; border-color: transparent !important; } .room-lobby-chat-ai.chat-panel .chat-msg { padding: 0.58rem 0.92rem; font-size: 1.05rem; line-height: 1.33; border: none; box-shadow: none; } .room-lobby-chat-ai.chat-panel .chat-msg-mine { background-color: rgba(122, 162, 247, 0.2); color: #f787e4; } .room-lobby-chat-ai.chat-panel .chat-msg-ai { background-color: rgba(158, 206, 106, 0.2); color: #f2f8ff; } .room-lobby-chat-ai.chat-panel .ai-chat-typing { padding: 14px 18px; min-height: 28px; background-color: rgba(158, 206, 106, 0.32); } .room-lobby-chat-ai.chat-panel .ai-typing-dot { width: 8px; height: 8px; background: #f2f8ff; } .room-lobby-chat-ai.chat-panel .ai-chat-admin-link { margin: 0.35rem 0 0 0; font-size: 0.75rem; flex-shrink: 0; } .room-lobby-chat-ai.chat-panel, .room-lobby-chat-ai.chat-panel #ai-chat-messages, .room-lobby-chat-ai.chat-panel #ai-chat-input, .room-lobby-chat-ai.chat-panel .chat-msg, .room-lobby-chat-ai.chat-panel .ai-chat-typing, .room-lobby-chat-ai.chat-panel .chat-send-btn, .room-lobby-chat-ai.chat-panel .ai-chat-admin-link, .room-lobby-chat-ai.chat-panel .ai-chat-admin-link a { font-family: 'NotoSansThai', 'Kanit', system-ui, sans-serif !important; } .room-lobby-chat-ai.chat-panel #ai-chat-messages, .room-lobby-chat-ai.chat-panel #ai-chat-messages * { font-family: 'NotoSansThai', 'Kanit', system-ui, sans-serif !important; } .room-lobby-chat-ai.chat-panel #ai-chat-input::placeholder { font-family: 'NotoSansThai', 'Kanit', system-ui, sans-serif !important; } /* Host console: force NotoSansThai for highlighted text areas */ .room-lobby-host-console-summary, .room-lobby-host-console-member-item, .room-lobby-host-console-member-name, .room-lobby-host-console-max-value { font-family: 'NotoSansThai', 'Kanit', system-ui, sans-serif !important; } /* AI chat collapsed — match Main-Lobby lobby-btn-ai-chat style */ .room-lobby-chat-ai.chat-panel-collapsed #ai-chat-messages, .room-lobby-chat-ai.chat-panel-collapsed .chat-form-bar, .room-lobby-chat-ai.chat-panel-collapsed .ai-chat-admin-link { display: none !important; } .room-lobby-chat-ai.chat-panel-collapsed .chat-header-title { display: none !important; } .room-lobby-chat-ai.chat-panel-collapsed .chat-header-bar { justify-content: center; padding: 0; background: none !important; border: none; min-height: 0; height: auto; } .room-lobby-chat-ai.chat-panel-collapsed.chat-panel { width: 213px; max-width: 213px; height: 201px; min-height: 201px; padding: 0; left: max(1.25rem, env(safe-area-inset-left)); bottom: clamp(0.5rem, 2vw, 1rem); display: flex; align-items: center; justify-content: center; background: none !important; background-color: transparent !important; border: none; box-shadow: none; } .room-lobby-chat-ai.chat-panel-collapsed .chat-close-btn { width: 213px; height: 201px; min-width: 213px; min-height: 201px; max-width: 213px; max-height: 201px; aspect-ratio: 213 / 201; overflow: visible; border-radius: 0; margin-left: 0; } .room-lobby-chat-ai.chat-panel-collapsed .chat-close-btn img { width: 213px; height: 201px; min-width: 213px; min-height: 201px; max-width: 213px; max-height: 201px; aspect-ratio: 213 / 201; object-fit: contain; object-position: center; display: block; } .room-lobby-exit-fixed { position: static; display: flex; flex-direction: row; flex-wrap: nowrap; align-items: center; justify-content: flex-start; gap: 10px; width: max-content; max-width: calc(100vw - 24px); box-sizing: border-box; } .room-lobby-exit-fixed .btn-exit-icon { display: flex; align-items: center; justify-content: center; flex: 0 0 auto; margin: 0; width: clamp(58px, 9vw, 72px); height: clamp(58px, 9vw, 72px); min-width: clamp(58px, 9vw, 72px); padding: 0; border: none; border-radius: 0; background: transparent; box-shadow: none; cursor: pointer; } .room-lobby-exit-fixed .btn-exit-icon:hover { transform: translateY(-1px); filter: brightness(1.08); } .room-lobby-exit-fixed .btn-exit-icon img { width: 100%; height: auto; object-fit: contain; display: block; } .room-lobby-ready-fixed { position: fixed; bottom: max(2rem, env(safe-area-inset-bottom)); left: 50%; transform: translateX(-50%); z-index: 120; pointer-events: none; } .room-lobby-ready-fixed .ready-label, .room-lobby-ready-fixed .ready-check-input { pointer-events: auto; } .room-lobby-ready-fixed .ready-label { position: relative; display: inline-block; padding: 0; margin: 0; border: none; border-radius: 0; background: transparent; box-shadow: none; cursor: pointer; transition: transform 0.15s ease, filter 0.15s ease; line-height: 0; filter: drop-shadow(0 10px 20px rgba(0, 0, 0, 0.42)); } .room-lobby-ready-fixed .ready-label:hover { transform: scale(1.04); filter: brightness(1.08); } .room-lobby-ready-fixed .ready-label:active { transform: scale(0.98); } .room-lobby-ready-fixed .ready-check-input { position: absolute; inset: 0; width: 100%; height: 100%; margin: 0; opacity: 0; cursor: pointer; z-index: 2; } .room-lobby-ready-fixed .ready-label-img { display: block; height: clamp(44px, 8vh, 72px); width: auto; max-width: min(240px, 78vw); pointer-events: none; user-select: none; -webkit-user-drag: none; } .room-lobby-ready-fixed .ready-label--active .ready-label-img { filter: drop-shadow(0 0 10px rgba(158, 206, 106, 0.45)); } body.room-lobby-page #room-players-hud { top: max(10px, env(safe-area-inset-top)) !important; min-width: 0; border-radius: 0; border: none; background: transparent; box-shadow: none; backdrop-filter: none; color: #e3f6ff !important; font-family: 'NotoSansThai', 'Kanit', system-ui, sans-serif !important; text-transform: none; letter-spacing: 0.08em; text-shadow: 0 2px 0 rgba(0, 0, 0, 0.8), 0 0 12px rgba(0, 0, 0, 0.55); text-align: center; } /* มุมขวาล่าง — ไมค์ทุกห้อง + ปุ่ม LobbyB (แว่น/ถ้วย) */ .room-lobby-br-fixed { --lobby-br-btn: 80px; position: fixed; bottom: max(0.95rem, env(safe-area-inset-bottom)); right: max(1.25rem, env(safe-area-inset-right)); z-index: 400; display: flex; flex-direction: row; align-items: flex-end; gap: 10px; pointer-events: none; } .room-lobby-br-fixed .lobby-b-extra-row, .room-lobby-br-fixed .btn-voice-icon { pointer-events: auto; } .lobby-b-extra-row { display: flex; flex-direction: row; align-items: flex-end; gap: 10px; } .lobby-b-extra-row.is-hidden { display: none !important; } /* โหมดเกม (ควิซ) ใน room-lobby — ไม่โชว์แว่น/ถ้วย LobbyB */ body.room-lobby--quiz-active .lobby-b-extra-row { display: none !important; visibility: hidden !important; pointer-events: none !important; } /* ปุ่มมุมขวาล่าง — ขนาดเดียวกัน (กัน UA border / box model ต่างกัน) */ .room-lobby-br-fixed .lobby-b-sq-btn, .room-lobby-br-fixed .btn-voice-icon { box-sizing: border-box; width: var(--lobby-br-btn); height: var(--lobby-br-btn); min-width: var(--lobby-br-btn); min-height: var(--lobby-br-btn); max-width: var(--lobby-br-btn); max-height: var(--lobby-br-btn); margin: 0; padding: 0; border: none; border-radius: 0; appearance: none; -webkit-appearance: none; flex-shrink: 0; cursor: pointer; background: transparent; box-shadow: none; } /* สไตล์เดียวกับปุ่มไมค์ — ไม่มีกรอบ cyan / bg-item */ .lobby-b-sq-btn { display: flex; align-items: center; justify-content: center; transition: transform 0.15s ease, filter 0.15s ease; } .lobby-b-sq-btn:hover { transform: scale(1.04); filter: brightness(1.08); } .lobby-b-sq-btn:active { transform: scale(0.98); } .room-lobby-br-fixed .lobby-b-sq-btn img, .room-lobby-br-fixed .btn-voice-icon img { width: 100%; height: 100%; max-width: 100%; max-height: 100%; object-fit: contain; object-position: center; display: block; pointer-events: none; user-select: none; -webkit-user-drag: none; } .room-lobby-br-fixed .btn-voice-icon { display: flex; align-items: center; justify-content: center; background: transparent; } /* Desktop tuning: keep controls visibly large and readable */ @media (min-width: 1024px) { .room-lobby-chat-peers.chat-panel { right: 0.9rem; bottom: 11rem; width: 454px; height: 414px; padding: 1.7rem 1.45rem 1.15rem; border-radius: 0; background: url(../img/chat-bg.png) center/100% 100% no-repeat; border: none; box-shadow: none; backdrop-filter: none; } .room-lobby-chat-peers.chat-panel .chat-header-bar { margin: 0; padding: 0 0.15rem; min-height: 58px; height: 58px; background: url(../img/chat-line.png) left bottom / 375px 4px no-repeat; box-shadow: none; } .room-lobby-chat-peers.chat-panel .chat-header-title.chat-header-title-img img { display: block; width: 90px; height: 77px; object-fit: contain; } .room-lobby-chat-peers.chat-panel .chat-header-title.chat-header-title-img::before { content: none; display: none; } .room-lobby-chat-peers.chat-panel .chat-close-btn { width: 58px; height: 58px; min-width: 58px; min-height: 58px; max-width: 58px; max-height: 58px; margin-left: auto; } .room-lobby-chat-peers.chat-panel .chat-close-btn img { width: 58px; height: 58px; object-fit: contain; } .room-lobby-chat-peers.chat-panel #chat-messages { width: calc(100% - 16px); margin-right: 16px; padding: 0.35rem 0.7rem 0.25rem 0.15rem; font-size: 1rem; line-height: 1.42; gap: 0.42rem; margin-top: 0.15rem; margin-bottom: 0.2rem; scrollbar-width: auto; scrollbar-color: rgba(250, 253, 255, 0.98) rgba(12, 26, 47, 0.45); box-sizing: border-box; } .room-lobby-chat-peers.chat-panel #chat-messages::-webkit-scrollbar { width: 15px; } .room-lobby-chat-peers.chat-panel #chat-messages::-webkit-scrollbar-track { border-radius: 999px; background: rgba(20, 44, 72, 0.45); border: 1px solid rgba(124, 221, 255, 0.3); } .room-lobby-chat-peers.chat-panel #chat-messages::-webkit-scrollbar-thumb { border-radius: 999px; background: linear-gradient(180deg, rgba(255, 255, 255, 1) 0%, rgba(241, 249, 255, 0.98) 100%); box-shadow: 0 0 8px rgba(182, 239, 255, 0.45); } .room-lobby-chat-peers.chat-panel .chat-msg { max-width: 93%; padding: 0.22rem 0.35rem; font-size: 0.98rem; border-radius: 10px; background-image: none; background-color: transparent; box-shadow: none; } .room-lobby-chat-peers.chat-panel .chat-msg-other { color: #d5bb63; font-weight: 500; } .room-lobby-chat-peers.chat-panel .chat-msg-mine { color: #cf74d1; background-color: rgba(39, 67, 112, 0.82); border: 1px solid rgba(116, 206, 255, 0.2); align-self: flex-end; text-align: left; padding: 0.32rem 0.62rem; } .room-lobby-chat-peers.chat-panel .chat-form-bar { padding: 0.24rem 0 0; gap: 0; align-items: center; justify-content: space-between; } .room-lobby-chat-peers.chat-panel #chat-input { margin-left: 17px; width: 308px; min-width: 308px; max-width: 308px; height: 61px; min-height: 61px; max-height: 61px; padding: 0 0.95rem; font-size: 0.95rem; border-radius: 0; border: none; background: url(../img/chatbox.png) center/100% 100% no-repeat; color: #e8f7ff; } .room-lobby-chat-peers.chat-panel #chat-input::placeholder { color: rgba(195, 211, 236, 0.66); } .room-lobby-chat-peers.chat-panel .chat-send-btn { width: 102px; height: 98px; min-width: 102px; min-height: 98px; max-width: 102px; max-height: 98px; margin-left: -26px; margin-right: 2px; } .room-lobby-chat-peers.chat-panel .chat-send-btn img { width: 102px; height: 98px; } .room-lobby-top-left-cluster { top: max(18px, env(safe-area-inset-top)); left: max(0px, env(safe-area-inset-left)); gap: 0; } .room-lobby-exit-fixed { flex-direction: column; align-items: flex-start; justify-content: flex-start; gap: 0.45rem; margin-top: -1.4rem; width: auto; max-width: none; } .room-lobby-top-right-cluster { top: max(16px, env(safe-area-inset-top)); right: max(16px, env(safe-area-inset-right)); } .room-lobby-room-id-pill { width: fit-content; min-width: 0; height: 180px; min-height: 180px; max-height: 180px; max-width: none; padding: 0 15px; border-style: solid; border-width: 0 60px; border-radius: 0; background: transparent; border-image-source: url("../img/Room-id-BG.png"); border-image-slice: 0 60 0 60 fill; border-image-repeat: stretch; box-shadow: none; gap: 0.7rem; align-items: center; white-space: nowrap; } .room-lobby-room-id-label { font-size: 2.05rem; font-weight: 600; line-height: 1; font-family: 'NotoSansThai', 'Kanit', system-ui, sans-serif; text-transform: none; color: #e8f7ff; text-shadow: 0 0 6px rgba(110, 226, 255, 0.8), 0 0 14px rgba(44, 198, 255, 0.5); } #room-id-value { font-size: 2.35rem; line-height: 1; font-family: 'NotoSansThai', 'Kanit', system-ui, sans-serif; text-transform: none; font-weight: 600; color: #ecfbff; text-shadow: 0 0 7px rgba(118, 230, 255, 0.9), 0 0 16px rgba(52, 203, 255, 0.55); } .room-lobby-room-id-lock { width: 60px; height: 65px; min-width: 60px; min-height: 65px; max-width: 60px; max-height: 65px; aspect-ratio: 60 / 65; font-size: 0; color: transparent; background: url("../img/Room-id-private.png") center / 100% 100% no-repeat; filter: none; } .room-lobby-profile-frame { width: 159px; height: 157px; min-width: 159px; min-height: 157px; max-width: 159px; max-height: 157px; aspect-ratio: 159 / 157; } .room-lobby-exit-fixed .btn-exit-icon { width: 121px; height: 119px; min-width: 121px; min-height: 119px; max-width: 121px; max-height: 119px; aspect-ratio: 121 / 119; margin-left: 13px; margin-top: -15px; margin-bottom: -15px; } body.room-lobby-page #room-players-hud { min-width: 0; font-size: clamp(1.35rem, 1.95vw, 1.9rem); padding: 0.1rem 0.4rem; } .room-lobby-ready-fixed .ready-label-img { width: 320px; height: 126px; min-width: 320px; min-height: 126px; max-width: 320px; max-height: 126px; aspect-ratio: 320 / 126; } .room-lobby-br-fixed { --lobby-br-btn: 137px; bottom: max(0.65rem, env(safe-area-inset-bottom)); right: max(0.85rem, env(safe-area-inset-right)); display: flex; flex-direction: column; align-items: flex-end; justify-content: flex-end; gap: 1rem; } .room-lobby-br-fixed .lobby-b-extra-row { display: flex; flex-direction: row; align-items: flex-end; justify-content: flex-end; gap: 0.6rem; order: 1; position: static !important; margin: 0 !important; transform: none !important; } .room-lobby-br-fixed .btn-voice-icon { order: 2; position: static !important; margin: 0 !important; transform: none !important; } .room-lobby-br-fixed .lobby-b-extra-row { z-index: auto; } .room-lobby-chat-peers.chat-panel-collapsed.chat-panel { width: 122px; height: 120px; bottom: 12rem; } .room-lobby-chat-peers.chat-panel-collapsed .chat-close-btn { width: 122px; height: 120px; min-width: 122px; min-height: 120px; max-width: 122px; max-height: 120px; aspect-ratio: 122 / 120; margin-right: -20px; } .room-lobby-chat-peers.chat-panel-collapsed .chat-close-btn img { width: 122px; height: 120px; aspect-ratio: 122 / 120; } } /* —— แฟ้มหลักฐาน LobbyB (รูปจาก /Main-Lobby/IMAGE/See evidence) —— */ .lobby-evidence-overlay { position: fixed; inset: 0; z-index: 10047; display: flex; align-items: center; justify-content: center; padding: max(12px, env(safe-area-inset-top)) max(12px, env(safe-area-inset-right)) max(12px, env(safe-area-inset-bottom)) max(12px, env(safe-area-inset-left)); box-sizing: border-box; } .lobby-evidence-overlay.is-hidden { display: none !important; } .lobby-evidence-backdrop { position: absolute; inset: 0; background: rgba(4, 8, 22, 0.78); backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px); cursor: pointer; } .lobby-evidence-dialog { position: relative; z-index: 1; width: min(96vw, 900px); max-height: min(92vh, 920px); pointer-events: none; } .lobby-evidence-dialog * { pointer-events: auto; } .lobby-evidence-frame { position: relative; width: 100%; aspect-ratio: 1684 / 963; filter: drop-shadow(0 0 24px rgba(0, 255, 255, 0.12)) drop-shadow(0 0 40px rgba(255, 0, 255, 0.08)); } .lobby-evidence-bg { display: block; width: 100%; height: 100%; object-fit: contain; object-position: center top; pointer-events: none; user-select: none; -webkit-user-drag: none; } .lobby-evidence-close { position: absolute; top: 5.5%; right: 4%; width: 8%; max-width: 56px; aspect-ratio: 1; padding: 0; margin: 0; border: none; border-radius: 10px; background: transparent; color: rgba(0, 255, 255, 0.95); font-size: clamp(1.25rem, 4vw, 2rem); line-height: 1; cursor: pointer; text-shadow: 0 0 12px rgba(0, 255, 255, 0.9); display: flex; align-items: center; justify-content: center; transition: transform 0.15s ease, filter 0.15s ease; } .lobby-evidence-close:hover { transform: scale(1.08); filter: brightness(1.15); } .lobby-evidence-tabs-layer { position: absolute; left: 7%; right: 7%; top: 15.5%; height: 13.5%; min-height: 36px; } .lobby-evidence-tabs-img { display: block; width: 100%; height: 100%; object-fit: contain; object-position: left center; pointer-events: none; user-select: none; -webkit-user-drag: none; } .lobby-evidence-tab-hits { position: absolute; inset: 0; display: flex; flex-direction: row; align-items: stretch; padding-left: 1.5%; padding-right: 0; box-sizing: border-box; } .lobby-evidence-tab-hit { flex: 0 0 13.2%; min-width: 0; height: 100%; padding: 0; margin: 0; border: none; background: transparent; cursor: pointer; border-radius: 8px; } .lobby-evidence-tab-hit:focus-visible { outline: 2px solid rgba(0, 255, 255, 0.9); outline-offset: 2px; } .lobby-evidence-tab-hit-spacer { flex: 1 1 auto; pointer-events: none; } .lobby-evidence-cards-root { position: absolute; left: 5%; right: 5%; top: 31%; bottom: 7%; display: flex; flex-direction: row; flex-wrap: nowrap; gap: clamp(6px, 1.2vw, 14px); align-items: stretch; justify-content: center; overflow-x: auto; overflow-y: hidden; scrollbar-width: thin; padding-bottom: 4px; box-sizing: border-box; } .lobby-evidence-card { flex: 1 1 0; min-width: min(200px, 28vw); max-width: 320px; display: flex; flex-direction: column; border-radius: 10px; padding: clamp(6px, 1vw, 10px); background: rgba(15, 20, 36, 0.92); box-sizing: border-box; box-shadow: 0 0 0 1px rgba(255, 255, 255, 0.08), 0 8px 24px rgba(0, 0, 0, 0.35); } .lobby-evidence-card--common { box-shadow: 0 0 0 2px rgba(180, 190, 200, 0.65), 0 0 16px rgba(200, 210, 220, 0.2), 0 8px 24px rgba(0, 0, 0, 0.35); } .lobby-evidence-card--rare { box-shadow: 0 0 0 2px rgba(59, 130, 246, 0.85), 0 0 20px rgba(59, 130, 246, 0.35), 0 8px 24px rgba(0, 0, 0, 0.35); } .lobby-evidence-card--legendary { box-shadow: 0 0 0 2px rgba(234, 179, 8, 0.9), 0 0 22px rgba(250, 204, 21, 0.4), 0 8px 24px rgba(0, 0, 0, 0.35); } .lobby-evidence-card-head { display: flex; flex-direction: row; align-items: flex-start; gap: 8px; margin-bottom: 6px; } .lobby-evidence-card-icon { flex-shrink: 0; width: 28px; height: 28px; border-radius: 6px; background: linear-gradient(135deg, rgba(0, 255, 255, 0.25), rgba(255, 0, 255, 0.15)); display: flex; align-items: center; justify-content: center; font-size: 14px; line-height: 1; } .lobby-evidence-card-titles { flex: 1; min-width: 0; } .lobby-evidence-card-title-th { font-family: 'Sarabun', 'Kanit', system-ui, sans-serif; font-size: clamp(0.68rem, 1.35vw, 0.82rem); font-weight: 700; color: #e8ecff; line-height: 1.25; margin: 0; } .lobby-evidence-card-title-en { font-family: system-ui, sans-serif; font-size: clamp(0.58rem, 1.05vw, 0.68rem); color: rgba(180, 190, 220, 0.85); margin: 2px 0 0; line-height: 1.2; } .lobby-evidence-card-art { flex: 1 1 auto; min-height: clamp(72px, 14vh, 140px); max-height: min(22vh, 200px); border-radius: 8px; background: linear-gradient(160deg, rgba(30, 40, 70, 0.95), rgba(12, 16, 32, 0.98)); border: 1px solid rgba(0, 255, 255, 0.12); margin-bottom: 6px; display: flex; align-items: center; justify-content: center; color: rgba(0, 255, 255, 0.35); font-size: clamp(1.5rem, 4vw, 2.25rem); user-select: none; } .lobby-evidence-card-body { font-family: 'Sarabun', 'Kanit', system-ui, sans-serif; font-size: clamp(0.6rem, 1.15vw, 0.72rem); color: rgba(210, 218, 240, 0.92); line-height: 1.4; margin: 0 0 8px; flex-shrink: 0; max-height: 4.5em; overflow: hidden; display: -webkit-box; -webkit-line-clamp: 4; -webkit-box-orient: vertical; } .lobby-evidence-card-foot { display: flex; flex-direction: row; align-items: center; justify-content: space-between; gap: 8px; margin-top: auto; flex-shrink: 0; } .lobby-evidence-link { display: flex; flex-direction: row; align-items: center; gap: 6px; min-width: 0; } .lobby-evidence-avatar { width: 26px; height: 26px; border-radius: 50%; background: linear-gradient(145deg, #7aa2f7, #565f89); color: #1a1b26; font-size: 11px; font-weight: 800; display: flex; align-items: center; justify-content: center; flex-shrink: 0; box-shadow: 0 0 0 2px rgba(0, 255, 255, 0.25); } .lobby-evidence-link-name { font-size: clamp(0.62rem, 1.1vw, 0.74rem); font-weight: 600; color: #c0caf5; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; } .lobby-evidence-foot-meta { text-align: right; flex-shrink: 0; } .lobby-evidence-rarity { display: block; font-size: clamp(0.55rem, 0.95vw, 0.65rem); color: rgba(170, 180, 210, 0.9); margin-bottom: 2px; } .lobby-evidence-stars { font-size: clamp(0.65rem, 1.2vw, 0.78rem); letter-spacing: 1px; line-height: 1; } .lobby-evidence-card--common .lobby-evidence-stars { color: #d4d4d8; text-shadow: 0 0 8px rgba(200, 200, 210, 0.4); } .lobby-evidence-card--rare .lobby-evidence-stars { color: #60a5fa; text-shadow: 0 0 10px rgba(59, 130, 246, 0.5); } .lobby-evidence-card--legendary .lobby-evidence-stars { color: #fcd34d; text-shadow: 0 0 10px rgba(234, 179, 8, 0.55); } @media (max-width: 720px) { .lobby-evidence-cards-root { flex-wrap: wrap; overflow-y: auto; align-content: flex-start; } .lobby-evidence-card { flex: 1 1 100%; max-width: none; min-width: 0; } } /* —— กระดานอันดับ LobbyB (เหรียญ leaderboard-1/2/3 จาก Main-Lobby) —— */ .lobby-rank-overlay { position: fixed; inset: 0; z-index: 10048; display: flex; align-items: center; justify-content: center; padding: max(12px, env(safe-area-inset-top)) max(12px, env(safe-area-inset-right)) max(12px, env(safe-area-inset-bottom)) max(12px, env(safe-area-inset-left)); box-sizing: border-box; } .lobby-rank-overlay.is-hidden { display: none !important; } .lobby-rank-backdrop { position: absolute; inset: 0; background: rgba(2, 4, 14, 0.82); backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px); cursor: pointer; } .lobby-rank-dialog { position: relative; z-index: 1; width: min(96vw, 520px); max-height: min(90vh, 720px); pointer-events: none; } .lobby-rank-dialog * { pointer-events: auto; } .lobby-rank-panel { background: linear-gradient(165deg, rgba(28, 36, 58, 0.96), rgba(12, 16, 32, 0.98)); border-radius: 16px; border: 2px solid rgba(0, 255, 255, 0.45); box-shadow: 0 0 0 1px rgba(255, 0, 200, 0.25), 0 0 32px rgba(0, 255, 255, 0.12), 0 0 48px rgba(255, 0, 180, 0.08), inset 0 1px 0 rgba(255, 255, 255, 0.06); padding: clamp(10px, 2.5vw, 16px); display: flex; flex-direction: column; min-height: 0; font-family: 'Kanit', 'Sarabun', system-ui, sans-serif; } .lobby-rank-head { display: flex; flex-direction: row; align-items: center; justify-content: center; position: relative; padding: 6px 44px 12px 12px; border-bottom: 1px solid rgba(0, 255, 255, 0.28); margin-bottom: 8px; } .lobby-rank-case-title { margin: 0; font-size: clamp(0.95rem, 2.8vw, 1.15rem); font-weight: 700; color: #e8f4ff; text-align: center; text-shadow: 0 0 12px rgba(0, 255, 255, 0.35); line-height: 1.25; } .lobby-rank-close { position: absolute; top: 2px; right: 4px; width: 44px; height: 44px; padding: 0; border: none; border-radius: 10px; background: transparent; color: rgba(0, 255, 255, 0.95); font-size: 1.75rem; line-height: 1; cursor: pointer; text-shadow: 0 0 14px rgba(0, 255, 255, 0.85); display: flex; align-items: center; justify-content: center; transition: transform 0.15s ease, filter 0.15s ease; } .lobby-rank-close:hover { transform: scale(1.06); filter: brightness(1.12); } .lobby-rank-podium { display: flex; flex-direction: row; align-items: flex-end; justify-content: center; gap: clamp(6px, 2vw, 14px); padding: 8px 4px 14px; flex-shrink: 0; } .lobby-rank-ped { flex: 1 1 0; min-width: 0; max-width: 150px; display: flex; flex-direction: column; align-items: center; text-align: center; padding: 10px 6px 12px; border-radius: 14px; background: rgba(0, 0, 0, 0.28); border: 1px solid rgba(0, 255, 255, 0.22); box-sizing: border-box; } .lobby-rank-ped--2 { order: 1; min-height: 148px; } .lobby-rank-ped--1 { order: 2; min-height: 188px; border-color: rgba(255, 215, 0, 0.45); box-shadow: 0 0 22px rgba(255, 200, 0, 0.12); } .lobby-rank-ped--3 { order: 3; min-height: 132px; } .lobby-rank-crown { display: flex; flex-direction: row; align-items: center; justify-content: center; gap: 4px; margin-bottom: 4px; font-size: 1.1rem; line-height: 1; filter: drop-shadow(0 0 6px rgba(255, 215, 0, 0.6)); } .lobby-rank-crown-n { font-size: 0.85rem; font-weight: 800; color: #ffe066; } .lobby-rank-medal-wrap { height: 36px; display: flex; align-items: center; justify-content: center; margin-bottom: 6px; } .lobby-rank-medal-img { width: auto; height: 34px; object-fit: contain; display: block; } .lobby-rank-ped-avatar { width: 48px; height: 48px; border-radius: 50%; background: linear-gradient(145deg, #7aa2f7, #565f89); color: #1a1b26; font-size: 1.1rem; font-weight: 800; display: flex; align-items: center; justify-content: center; margin-bottom: 6px; box-shadow: 0 0 0 2px rgba(0, 255, 255, 0.3); flex-shrink: 0; } .lobby-rank-ped--1 .lobby-rank-ped-avatar { width: 56px; height: 56px; font-size: 1.25rem; } .lobby-rank-ped-name { font-size: clamp(0.68rem, 2vw, 0.8rem); font-weight: 600; color: #e8ecff; line-height: 1.2; word-break: break-word; max-width: 100%; } .lobby-rank-ped-score { margin-top: 4px; font-size: clamp(0.75rem, 2.2vw, 0.9rem); font-weight: 700; color: #fff; text-shadow: 0 0 8px rgba(255, 255, 255, 0.2); } .lobby-rank-table-wrap { flex: 1 1 auto; min-height: 0; overflow-y: auto; overflow-x: hidden; margin: 0 -4px; padding: 0 4px; scrollbar-width: thin; } .lobby-rank-table { width: 100%; border-collapse: collapse; font-size: clamp(0.65rem, 1.9vw, 0.78rem); } .lobby-rank-table thead th { text-align: left; text-transform: uppercase; letter-spacing: 0.06em; color: rgba(0, 255, 255, 0.85); font-weight: 700; padding: 8px 6px; border-bottom: 1px solid rgba(0, 255, 255, 0.25); position: sticky; top: 0; background: linear-gradient(180deg, rgba(20, 26, 44, 0.98), rgba(20, 26, 44, 0.92)); z-index: 1; } .lobby-rank-table thead th:nth-child(1) { width: 3.2rem; } .lobby-rank-table thead th:nth-child(3) { text-align: right; width: 4rem; } .lobby-rank-table tbody td { padding: 7px 6px; border-bottom: 1px solid rgba(255, 255, 255, 0.06); color: #e2e8f0; vertical-align: middle; } .lobby-rank-table tbody td:nth-child(3) { text-align: right; font-weight: 600; color: #fff; } .lobby-rank-table .lobby-rank-row-av { display: inline-flex; align-items: center; gap: 8px; min-width: 0; } .lobby-rank-table .lobby-rank-mini-av { width: 26px; height: 26px; border-radius: 50%; background: linear-gradient(145deg, #9ece6a, #565f89); color: #1a1b26; font-size: 0.65rem; font-weight: 800; display: flex; align-items: center; justify-content: center; flex-shrink: 0; box-shadow: 0 0 0 1px rgba(0, 255, 255, 0.2); } .lobby-rank-table .lobby-rank-row-name { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; max-width: 180px; } .lobby-rank-self { flex-shrink: 0; display: flex; flex-direction: row; align-items: center; gap: 10px; padding: 12px 10px 6px; margin-top: 6px; border-top: 1px solid rgba(255, 0, 180, 0.42); background: linear-gradient(90deg, rgba(255, 0, 180, 0.07), transparent); } .lobby-rank-self-rank { font-weight: 800; color: #c0caf5; min-width: 2.5rem; font-size: clamp(0.75rem, 2vw, 0.88rem); } .lobby-rank-self-av { width: 40px; height: 40px; border-radius: 50%; background: linear-gradient(145deg, #f472b6, #a855f7); color: #fff; font-size: 1rem; font-weight: 800; display: flex; align-items: center; justify-content: center; flex-shrink: 0; box-shadow: 0 0 0 2px rgba(255, 100, 200, 0.45); } .lobby-rank-self-meta { flex: 1; min-width: 0; } .lobby-rank-self-name { font-size: clamp(0.85rem, 2.4vw, 1rem); font-weight: 800; color: #fff; line-height: 1.2; } .lobby-rank-self-score { font-size: clamp(0.85rem, 2.4vw, 1rem); font-weight: 800; color: #ff4ecd; text-shadow: 0 0 12px rgba(255, 78, 205, 0.45); flex-shrink: 0; } .version-tag { position: fixed; right: 8px; bottom: 4px; left: auto; font-size: 10px; color: #a9b1d6; opacity: 0.7; pointer-events: none; } /* Editor — เกมตอบคำถาม */ .quiz-editor-wrap { margin: 1rem 0; padding: 1rem; background: #24283b; border-radius: 8px; border: 1px solid #414868; } .quiz-editor-wrap h3 { margin: 0 0 0.5rem; font-size: 1rem; color: #7aa2f7; } .quiz-questions-list { display: flex; flex-direction: column; gap: 0.6rem; margin: 0.75rem 0; } .quiz-q-row { display: grid; grid-template-columns: 1fr auto auto; gap: 0.5rem; align-items: center; } @media (max-width: 600px) { .quiz-q-row { grid-template-columns: 1fr; } } .quiz-q-row input[type="text"] { min-width: 0; padding: 0.4rem 0.5rem; border-radius: 6px; border: 1px solid #565f89; background: #1a1b26; color: #c0caf5; } .quiz-q-row select { padding: 0.35rem; border-radius: 6px; border: 1px solid #565f89; background: #1a1b26; color: #c0caf5; } .btn-quiz-add, .quiz-q-remove { padding: 0.35rem 0.65rem; border-radius: 6px; cursor: pointer; border: 1px solid #565f89; background: #414868; color: #c0caf5; font: inherit; } .quiz-q-remove { font-size: 0.8rem; }