2050 lines
60 KiB
CSS
2050 lines
60 KiB
CSS
* { box-sizing: border-box; }
|
|
@font-face {
|
|
font-family: 'NotoSansThai';
|
|
src:
|
|
url('/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; min-height: 100dvh; 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;
|
|
}
|
|
/* [2026-08-02] กันภาพยืดตอนบัฟเฟอร์ยังค้างขนาดเก่า (หมุนจอ / แถบ URL ยุบ-กางบน iOS)
|
|
ปกติ canvas.width/height = ขนาด viewport พอดี ⇒ contain ไม่ทำอะไรเลย (วัดแล้วยืด 0.0% ทุกเครื่อง)
|
|
แต่ช่วงที่ค่ายังไม่ถูกวัดใหม่ จะเห็นเป็น "ขอบว่าง" แทน "ภาพยืดผิดสัดส่วน" ซึ่งดีกว่ามาก
|
|
ห่อด้วย pointer: coarse → PC (pointer: fine) ไม่โดนกฎนี้เลย · สูตรเดียวกับที่ play.html ใช้มาตั้งแต่ 07-31 */
|
|
@media (pointer: coarse) {
|
|
#lobby-map-canvas { object-fit: contain; }
|
|
}
|
|
#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: none !important;
|
|
}
|
|
.room-lobby-top-right-action-btn {
|
|
position: relative;
|
|
flex: 0 0 auto;
|
|
width: clamp(100px, 11vw, 161px);
|
|
height: auto;
|
|
min-width: 0;
|
|
min-height: 0;
|
|
max-width: 161px;
|
|
aspect-ratio: 161 / 176;
|
|
padding: 0;
|
|
margin: 0;
|
|
border: none;
|
|
border-radius: 0;
|
|
background: transparent;
|
|
box-shadow: none;
|
|
cursor: pointer;
|
|
overflow: visible;
|
|
isolation: isolate;
|
|
}
|
|
.room-lobby-top-right-action-btn img {
|
|
width: 100%;
|
|
height: auto;
|
|
max-width: 161px;
|
|
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 — see profile-popup.css (linked from room-lobby.html) */
|
|
|
|
|
|
/* 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: row;
|
|
align-items: center;
|
|
justify-content: flex-end;
|
|
gap: 0.75rem;
|
|
}
|
|
/* แถวเดียว: หลักฐาน | อันดับ | ไมค์ (ตรง production) */
|
|
.room-lobby-br-fixed .lobby-b-extra-row:not(.is-hidden) {
|
|
display: contents;
|
|
}
|
|
.room-lobby-br-fixed .lobby-b-extra-row {
|
|
position: static !important;
|
|
margin: 0 !important;
|
|
transform: none !important;
|
|
z-index: auto;
|
|
}
|
|
.room-lobby-br-fixed .btn-voice-icon {
|
|
position: static !important;
|
|
margin: 0 !important;
|
|
transform: none !important;
|
|
}
|
|
.room-lobby-br-fixed .lobby-b-sq-btn,
|
|
.room-lobby-br-fixed .btn-voice-icon {
|
|
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);
|
|
}
|
|
.room-lobby-chat-peers.chat-panel-collapsed.chat-panel {
|
|
width: 122px;
|
|
height: 120px;
|
|
bottom: 12rem;
|
|
right: max(0.85rem, env(safe-area-inset-right));
|
|
}
|
|
.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 — ดู css/evidence-view-overlay.css (layout ev-*) */
|
|
|
|
/* กระดานอันดับ LobbyB — ดู css/leaderboard-popup.css */
|
|
|
|
.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;
|
|
}
|
|
|
|
/* design 2026-05: แสดงปุ่มตั้งค่าโฮสต์ + ปรับแต่ง มุมขวาบน (ตาม TryChangeCSS/CSS ใหม่ — ไม่ใช้ JS เก่า) */
|
|
body.room-lobby-page .room-lobby-top-right-actions {
|
|
display: none !important;
|
|
}
|
|
|
|
/* ---- Player Pick Vote overlay (Card Ban / Silence) — โหวตเลือกผู้เล่น ----
|
|
สร้างด้วย JS ใน room-lobby.js (#pick-vote-overlay) แต่เดิมไม่มี CSS เลย → div จมหลัง UI lobby มองไม่เห็น */
|
|
#pick-vote-overlay {
|
|
position: fixed;
|
|
inset: 0;
|
|
z-index: 12000;
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
padding: 4vh 4vw;
|
|
background: rgba(4, 8, 16, 0.74);
|
|
backdrop-filter: blur(4px);
|
|
-webkit-backdrop-filter: blur(4px);
|
|
opacity: 0;
|
|
visibility: hidden;
|
|
pointer-events: none;
|
|
transition: opacity 0.22s ease, visibility 0.22s ease;
|
|
font-family: 'Kanit', sans-serif;
|
|
}
|
|
#pick-vote-overlay.is-open {
|
|
opacity: 1;
|
|
visibility: visible;
|
|
pointer-events: auto;
|
|
}
|
|
#pick-vote-overlay .pv-shell {
|
|
width: min(460px, 92vw);
|
|
max-height: 88vh;
|
|
overflow-y: auto;
|
|
box-sizing: border-box;
|
|
padding: 1.4rem 1.5rem 1.6rem;
|
|
border-radius: 18px;
|
|
text-align: center;
|
|
color: #e8f6ff;
|
|
background: linear-gradient(165deg, rgba(16, 30, 50, 0.97), rgba(8, 16, 30, 0.97));
|
|
border: 1px solid rgba(83, 224, 255, 0.55);
|
|
box-shadow: 0 0 28px rgba(83, 224, 255, 0.35), inset 0 0 24px rgba(80, 180, 240, 0.14);
|
|
transform: translateY(12px) scale(0.97);
|
|
transition: transform 0.26s cubic-bezier(0.2, 0.9, 0.3, 1.2);
|
|
}
|
|
#pick-vote-overlay.is-open .pv-shell {
|
|
transform: translateY(0) scale(1);
|
|
}
|
|
#pick-vote-overlay .pv-badge {
|
|
display: inline-block;
|
|
padding: 0.2rem 0.85rem;
|
|
border-radius: 999px;
|
|
font-size: 0.74rem;
|
|
font-weight: 700;
|
|
letter-spacing: 0.08em;
|
|
color: #04121e;
|
|
background: linear-gradient(90deg, #53e0ff, #8ad8ff);
|
|
box-shadow: 0 0 14px rgba(83, 224, 255, 0.55);
|
|
}
|
|
#pick-vote-overlay .pv-title {
|
|
margin: 0.7rem 0 0.3rem;
|
|
font-size: 1.32rem;
|
|
font-weight: 700;
|
|
text-shadow: 0 0 12px rgba(83, 224, 255, 0.45);
|
|
}
|
|
#pick-vote-overlay .pv-sub {
|
|
margin: 0 0 0.7rem;
|
|
font-size: 0.86rem;
|
|
line-height: 1.35;
|
|
color: #a9c7da;
|
|
}
|
|
#pick-vote-overlay .pv-timer {
|
|
font-size: 1.5rem;
|
|
font-weight: 700;
|
|
color: #53e0ff;
|
|
margin-bottom: 0.6rem;
|
|
min-height: 1.4em;
|
|
}
|
|
#pick-vote-overlay .pv-timer.low {
|
|
color: #ff7a7a;
|
|
animation: pvPulse 0.7s ease-in-out infinite;
|
|
}
|
|
@keyframes pvPulse {
|
|
0%, 100% { transform: scale(1); }
|
|
50% { transform: scale(1.12); }
|
|
}
|
|
#pick-vote-overlay .pv-list {
|
|
display: flex;
|
|
flex-direction: column;
|
|
gap: 0.5rem;
|
|
margin-bottom: 0.6rem;
|
|
}
|
|
#pick-vote-overlay .pv-cand {
|
|
position: relative;
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
gap: 0.5rem;
|
|
width: 100%;
|
|
padding: 0.7rem 1rem;
|
|
border-radius: 12px;
|
|
font: 600 1rem 'Kanit', sans-serif;
|
|
color: #e8f6ff;
|
|
cursor: pointer;
|
|
background: rgba(28, 48, 74, 0.85);
|
|
border: 1px solid rgba(83, 224, 255, 0.3);
|
|
transition: transform 0.12s ease, border-color 0.15s ease, background 0.15s ease;
|
|
}
|
|
#pick-vote-overlay .pv-cand:hover {
|
|
transform: translateY(-1px);
|
|
border-color: rgba(83, 224, 255, 0.7);
|
|
background: rgba(36, 62, 94, 0.95);
|
|
}
|
|
#pick-vote-overlay .pv-cand.is-picked {
|
|
border-color: #53e0ff;
|
|
background: linear-gradient(90deg, rgba(83, 224, 255, 0.28), rgba(83, 224, 255, 0.14));
|
|
box-shadow: 0 0 14px rgba(83, 224, 255, 0.5);
|
|
}
|
|
#pick-vote-overlay .pv-me {
|
|
font-size: 0.78rem;
|
|
color: #8ad8ff;
|
|
}
|
|
#pick-vote-overlay .pv-bot {
|
|
font-size: 0.72rem;
|
|
color: #04121e;
|
|
background: #7fd4a8;
|
|
padding: 0.05rem 0.45rem;
|
|
border-radius: 999px;
|
|
}
|
|
#pick-vote-overlay .pv-count {
|
|
position: absolute;
|
|
right: 0.7rem;
|
|
min-width: 1.5em;
|
|
height: 1.5em;
|
|
line-height: 1.5em;
|
|
border-radius: 999px;
|
|
font-size: 0.82rem;
|
|
font-weight: 700;
|
|
color: #04121e;
|
|
background: #53e0ff;
|
|
opacity: 0;
|
|
transform: scale(0.6);
|
|
transition: opacity 0.15s ease, transform 0.15s ease;
|
|
}
|
|
#pick-vote-overlay .pv-count.show {
|
|
opacity: 1;
|
|
transform: scale(1);
|
|
}
|
|
#pick-vote-overlay .pv-result {
|
|
margin: 0.4rem 0;
|
|
padding: 0.7rem;
|
|
border-radius: 12px;
|
|
font-size: 1.05rem;
|
|
font-weight: 700;
|
|
color: #fff;
|
|
background: rgba(83, 224, 255, 0.16);
|
|
border: 1px solid rgba(83, 224, 255, 0.5);
|
|
}
|
|
#pick-vote-overlay .pv-foot {
|
|
font-size: 0.82rem;
|
|
color: #a9c7da;
|
|
min-height: 1.2em;
|
|
}
|
|
|
|
/* ===== มือถือ: ย่อปุ่ม AI chat ที่ใหญ่เกิน (213x201) + ปุ่ม interact (F) ให้พอดีจอ ===== */
|
|
@media (max-width: 600px) {
|
|
.room-lobby-chat-ai.chat-panel-collapsed .chat-close-btn,
|
|
.room-lobby-chat-ai.chat-panel-collapsed .chat-close-btn img {
|
|
width: 92px !important;
|
|
height: 87px !important;
|
|
min-width: 92px !important;
|
|
min-height: 87px !important;
|
|
max-width: 92px !important;
|
|
max-height: 87px !important;
|
|
}
|
|
.room-lobby-chat-ai.chat-panel .chat-close-btn,
|
|
.room-lobby-chat-ai.chat-panel .chat-close-btn img {
|
|
width: 42px !important;
|
|
height: 42px !important;
|
|
}
|
|
}
|
|
|
|
/* ===== มือถือแนวนอน (จอเตี้ย) — ย่อ/จัด UI ห้องเกม (LobbyA) ให้พอดีไม่ล้น · อิงแนวทาง Main-Lobby · ไม่แตะ PC ===== */
|
|
@media (orientation: landscape) and (max-height: 540px) {
|
|
/* ปุ่มมุมขวาล่าง (ไมค์ + แว่น/ถ้วย) — ย่อตามความสูงจอ */
|
|
.room-lobby-br-fixed { --lobby-br-btn: clamp(46px, 11vh, 64px); gap: 7px; }
|
|
/* แผงแชท — เดิม 576x525 ล้นจอแนวนอน → ย่อให้พอดีความสูงจอ */
|
|
.room-lobby-chat-peers.chat-panel {
|
|
width: min(360px, 52vw);
|
|
height: min(248px, calc(100dvh - 80px));
|
|
bottom: max(0.5rem, env(safe-area-inset-bottom));
|
|
padding: 0.9rem 1rem;
|
|
}
|
|
/* ปุ่มแชท AI (collapsed) — ย่อลงอีกบนแนวนอน */
|
|
.room-lobby-chat-ai.chat-panel-collapsed .chat-close-btn,
|
|
.room-lobby-chat-ai.chat-panel-collapsed .chat-close-btn img {
|
|
width: 62px !important; height: 58px !important;
|
|
min-width: 62px !important; min-height: 58px !important;
|
|
max-width: 62px !important; max-height: 58px !important;
|
|
}
|
|
/* ปุ่ม ready — เตี้ยลงเล็กน้อย ไม่ชนปุ่มอื่น */
|
|
.room-lobby-ready-fixed .ready-label-img { height: clamp(38px, 9.5vh, 58px); }
|
|
/* ปุ่ม exit/howto มุมซ้ายบน — อิงความสูงจอ */
|
|
.room-lobby-exit-fixed .btn-exit-icon {
|
|
width: clamp(46px, 10vh, 62px);
|
|
height: clamp(46px, 10vh, 62px);
|
|
min-width: clamp(46px, 10vh, 62px);
|
|
}
|
|
}
|