@font-face{font-family:Barlow Condensed;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/barlow-condensed-vietnamese-600-normal-A5AYRdjN.woff2) format("woff2"),url(/assets/barlow-condensed-vietnamese-600-normal-CNlPk46_.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Barlow Condensed;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/barlow-condensed-latin-ext-600-normal-18ESti3H.woff2) format("woff2"),url(/assets/barlow-condensed-latin-ext-600-normal-Clv9cIcR.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Barlow Condensed;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/barlow-condensed-latin-600-normal-DepVgxBB.woff2) format("woff2"),url(/assets/barlow-condensed-latin-600-normal-BFJEwTuo.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Barlow Condensed;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/barlow-condensed-vietnamese-700-normal-DYeBwlKR.woff2) format("woff2"),url(/assets/barlow-condensed-vietnamese-700-normal-DhIzd8Tb.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Barlow Condensed;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/barlow-condensed-latin-ext-700-normal-CwuXbfVR.woff2) format("woff2"),url(/assets/barlow-condensed-latin-ext-700-normal-BIHFfxf0.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Barlow Condensed;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/barlow-condensed-latin-700-normal-v1xN8_Wq.woff2) format("woff2"),url(/assets/barlow-condensed-latin-700-normal-Dmwat-ge.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Sora;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/sora-latin-ext-400-normal-Twk1CgKs.woff2) format("woff2"),url(/assets/sora-latin-ext-400-normal-BmhJC382.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Sora;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/sora-latin-400-normal-CRt88UEn.woff2) format("woff2"),url(/assets/sora-latin-400-normal-OW7qkl5a.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Sora;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/sora-latin-ext-600-normal-Cue1zdhl.woff2) format("woff2"),url(/assets/sora-latin-ext-600-normal-DLOJK0Ta.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Sora;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/sora-latin-600-normal-Cdg4DaK0.woff2) format("woff2"),url(/assets/sora-latin-600-normal-1_7fyUAY.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--body-font: Sora, Inter, ui-sans-serif, system-ui, sans-serif;--body-weight: 400;--body-strong-weight: 600;--title-font: "Barlow Condensed", Inter, ui-sans-serif, system-ui, sans-serif;--header-reserved-height: 88px;--sidebar-gap: 18px;--left-sidebar-width: 260px;--right-sidebar-width: 112px;--surface-radius: 28px;--header-action-radius: 20px;--bg: #f4ede0;--panel: rgba(255, 255, 255, .62);--panel-strong: rgba(255, 255, 255, .82);--panel-solid: #f7fbfb;--ink: #2a2722;--muted: #8a847a;--label: #625b50;--placeholder: #6d665c;--line: rgba(255, 255, 255, .55);--control-line: rgba(42, 39, 34, .34);--disabled-bg: #d4d9df;--disabled-ink: #59616b;--control-radius: 14px;--line-warm: #ebe3d2;--accent: #3a72c8;--accent-deep: #14556c;--button-gradient: linear-gradient(135deg, #2f6df6 0%, #a94cc8 100%);--button-gradient-hover: linear-gradient(135deg, #245fe4 0%, #9c40bb 100%);--secondary-button-bg: #2f6df6;--secondary-button-hover: #245fe4;--secondary-button-ink: #ffffff;--tertiary-button-bg: rgba(255, 255, 255, .58);--tertiary-button-hover: rgba(255, 255, 255, .78);--tertiary-button-ink: #3f4d61;--scrollbar-thumb: rgba(47, 109, 246, .42);--scrollbar-thumb-hover: rgba(47, 109, 246, .64);--water: #49a9c7;--valid: #f2c94c;--danger: #d95c45;--scene-vignette: rgba(244, 237, 224, .82);--glass-shadow: 0 18px 38px -18px rgba(40, 50, 80, .38), 0 6px 16px -10px rgba(20, 30, 50, .2)}[data-theme=dark]{--bg: #0f1b2d;--panel: rgba(15, 26, 44, .76);--panel-strong: rgba(22, 36, 58, .86);--panel-solid: #16243a;--ink: #f5f8ff;--muted: #a8b5c8;--label: #c1ccdc;--placeholder: #d2dae8;--line: rgba(255, 255, 255, .16);--control-line: rgba(226, 235, 248, .48);--disabled-bg: #c9d0d8;--disabled-ink: #243142;--control-radius: 14px;--line-warm: rgba(255, 255, 255, .12);--accent: #4f7dff;--accent-deep: #1b5f89;--button-gradient: linear-gradient(135deg, #2869ff 0%, #b04ac6 100%);--button-gradient-hover: linear-gradient(135deg, #3a78ff 0%, #c05bd3 100%);--secondary-button-bg: #2869ff;--secondary-button-hover: #3a78ff;--secondary-button-ink: #ffffff;--tertiary-button-bg: rgba(22, 43, 69, .76);--tertiary-button-hover: rgba(30, 56, 88, .92);--tertiary-button-ink: #c5d0df;--scrollbar-thumb: rgba(79, 125, 255, .44);--scrollbar-thumb-hover: rgba(79, 125, 255, .68);--water: #237ba0;--valid: #ffd36a;--danger: #ff6b58;--scene-vignette: rgba(6, 12, 22, .74);--glass-shadow: 0 22px 44px -18px rgba(0, 0, 0, .58), 0 8px 18px -12px rgba(0, 0, 0, .44)}:root{color:var(--ink);background:var(--bg);font-family:var(--body-font);font-weight:var(--body-weight);font-synthesis:none;text-rendering:optimizeLegibility}.card-title{color:var(--muted);font-family:var(--title-font);font-size:.74rem;font-weight:850;letter-spacing:.08em;text-transform:uppercase}*{box-sizing:border-box;scrollbar-color:var(--scrollbar-thumb) transparent;scrollbar-width:thin}*::-webkit-scrollbar{width:8px;height:8px}*::-webkit-scrollbar-track{background:transparent}*::-webkit-scrollbar-thumb{background:var(--scrollbar-thumb);border:2px solid transparent;border-radius:999px;background-clip:padding-box}*::-webkit-scrollbar-thumb:hover{background:var(--scrollbar-thumb-hover);background-clip:padding-box}html,body,#root{width:100%;min-width:320px;min-height:100vh;margin:0}body{overflow:hidden;background:radial-gradient(ellipse at center,#f4ede000 42%,#f4ede0d1),var(--bg);-webkit-font-smoothing:antialiased}button,input{font:inherit}button{border:0}.shell{position:relative;--drawer-reserved-height: 18px;--dock-reserved-height: 0px;--left-action-reserve: calc(var(--left-sidebar-width) + var(--sidebar-gap) * 2);--right-action-reserve: calc(var(--right-sidebar-width) + var(--sidebar-gap) * 2);--feedback-reserved-height: calc(var(--drawer-reserved-height) + var(--dock-reserved-height));min-height:100vh;overflow:hidden;background:radial-gradient(ellipse at center,rgba(244,237,224,0) 42%,var(--scene-vignette) 100%),var(--bg)}.shell.drawer-open{--drawer-reserved-height: calc(28vh + 86px) }.shell.drawer-collapsed{--drawer-reserved-height: 154px}.shell.action-dock-visible{--dock-reserved-height: 142px}.shell:has(.room-sidebar.closed){--left-action-reserve: var(--sidebar-gap)}.shell:has(.scene-toolbar.closed){--right-action-reserve: var(--sidebar-gap)}.scene-panel{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1;background:radial-gradient(circle at 58% 20%,#ffdd9675,#ffdd9600 22%),linear-gradient(180deg,#f3c990,#aee2e8 42%,#64bfd0),var(--bg)}.scene-panel canvas{position:relative;z-index:1}.eyebrow,.status{margin:0;color:var(--muted);font-family:var(--title-font);font-size:.72rem;font-weight:850;letter-spacing:.08em;text-transform:uppercase}h1{margin:0;color:var(--ink);font-family:var(--title-font);font-size:1.9rem;font-weight:850;line-height:1.02}.stack{display:grid;gap:12px}.floating-error{position:fixed;right:50%;bottom:calc(var(--feedback-reserved-height) + 18px);left:auto;z-index:8;max-width:min(460px,100vw - 44px);text-align:center;transform:translate(50%)}.scene-action-dock{position:fixed;right:var(--right-action-reserve);bottom:calc(var(--drawer-reserved-height) + 2px);left:var(--left-action-reserve);z-index:7;display:flex;justify-content:center;pointer-events:none}.scene-action-dock>*{pointer-events:auto}.scene-action-dock.drawer-collapsed{bottom:calc(var(--drawer-reserved-height) + 2px)}@media(max-width:880px){.shell.drawer-open{--drawer-reserved-height: calc(34vh + 82px) }.shell.drawer-collapsed{--drawer-reserved-height: 140px}body{overflow:auto}.scene-panel{min-height:100vh}.floating-error{right:50%;bottom:calc(var(--feedback-reserved-height) + 12px);left:auto;max-width:calc(100vw - 24px)}.scene-action-dock{right:12px;bottom:calc(var(--drawer-reserved-height) + 2px);left:12px}.scene-action-dock.drawer-collapsed{bottom:calc(var(--drawer-reserved-height) + 2px)}}.app-header{position:fixed;top:18px;right:18px;left:18px;z-index:6;display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:start;pointer-events:none}.app-header-actions{display:flex;gap:12px;justify-self:end;pointer-events:auto}.app-header-button,.game-select{color:var(--ink);background:var(--panel-strong);border:1px solid var(--line);box-shadow:var(--glass-shadow);backdrop-filter:blur(20px) saturate(170%);-webkit-backdrop-filter:blur(20px) saturate(170%)}.app-header-button:hover,.game-select:hover{color:#fff;background:var(--secondary-button-bg)}.app-header-button{position:relative;display:grid;place-items:center;width:52px;min-height:52px;padding:0;border-radius:var(--header-action-radius);box-shadow:var(--glass-shadow)}.app-header-button:hover,.app-header-button:focus-visible{box-shadow:var(--glass-shadow)}.header-status-dot{position:absolute;top:-2px;right:-2px;width:11px;height:11px;border:3px solid var(--panel-solid);border-radius:999px}.header-status-dot.connected{background:#52d273}.header-status-dot.disconnected{background:#ff5e50}.header-status-dot.pending{background:#f6b84b}.game-select{display:inline-flex;align-items:center;justify-content:center;gap:18px;min-width:278px;min-height:54px;padding:0 24px;border-radius:999px;box-shadow:var(--glass-shadow);pointer-events:auto}.game-select:hover,.game-select:focus-visible{box-shadow:var(--glass-shadow)}.game-select span{font-family:var(--title-font);font-size:1.08rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase}.brand{grid-column:1;grid-row:1;display:inline-flex;align-items:center;gap:12px;justify-self:start;color:var(--ink);pointer-events:none;text-align:left}.brand-logo{width:52px;height:52px;object-fit:contain;filter:drop-shadow(0 14px 20px rgba(40,50,80,.22))}.brand-copy{display:grid;gap:5px}.brand-title{font-size:28px;font-weight:850;line-height:1}.brand-subtitle{color:var(--muted);font-size:12px;font-weight:800;letter-spacing:.02em}@media(max-width:880px){.app-header{top:12px;right:12px;left:12px;grid-template-columns:auto 1fr auto;gap:10px;align-items:start}.app-header-actions{gap:8px}.app-header-button{width:44px;min-height:44px}.game-select{min-width:0;min-height:44px;padding:0 14px}.game-select span{font-size:.96rem}.brand{display:block}.brand-logo{display:none}.brand-title{font-size:21px}.brand-subtitle{display:none}}label{display:grid;gap:7px;color:var(--label);font-size:.82rem;font-weight:var(--body-weight)}label abbr{color:var(--danger);text-decoration:none}input{width:100%;min-height:44px;padding:0 14px;color:var(--ink);background:var(--panel-strong);border:0px solid var(--control-line);border-radius:var(--control-radius);outline:none}input::placeholder{color:var(--placeholder);opacity:1}input:focus{border-color:var(--accent);box-shadow:0 0 0 3px #4f7dff38}.button-row{display:grid;grid-template-columns:1fr 1fr;gap:8px}.invite-panel{display:grid;gap:8px}.hud-game>.stack{grid-template-columns:1fr}.hud-game .stack{align-content:start}button{min-height:42px;padding:0 16px;color:#fff;font-family:var(--title-font);font-size:1.08rem;letter-spacing:.04em;text-transform:uppercase;background:var(--button-gradient);border-radius:var(--control-radius);box-shadow:none;cursor:pointer;font-weight:850;transition:background .12s ease,opacity .12s ease,transform 80ms ease}button:hover{background:var(--button-gradient-hover)}button:active{transform:translateY(1px)}button:disabled{cursor:not-allowed;color:var(--disabled-ink);background:var(--disabled-bg);border:1px solid rgba(255,255,255,.16);opacity:1;transform:none}button.secondary{color:var(--secondary-button-ink);background:var(--secondary-button-bg);border:0}button.secondary:hover{background:var(--secondary-button-hover)}button.tertiary{color:var(--tertiary-button-ink);background:var(--tertiary-button-bg);border:0}button.tertiary:hover{background:var(--tertiary-button-hover)}button.tertiary:disabled{color:var(--tertiary-button-ink);background:var(--tertiary-button-bg);opacity:1}.full-width{width:100%}.room-card,.fleet-progress{display:flex;align-items:center;justify-content:space-between;min-height:46px;padding:0 14px;color:var(--ink);background:var(--panel-strong);border:1px solid var(--line);border-radius:999px}.room-card span{color:var(--muted);font-size:.78rem;font-weight:850}.room-card strong{color:var(--ink);font-size:1rem;font-weight:var(--body-strong-weight);letter-spacing:.12em}.fleet-progress span{color:var(--muted);font-size:.78rem;font-weight:850}.fleet-progress strong{color:var(--ink);font-weight:var(--body-strong-weight)}.facts{display:grid;grid-template-columns:repeat(3,1fr);gap:7px;margin:0}.facts div{display:grid;gap:3px;min-width:0;padding:9px 10px;background:#ffffff75;border:1px solid rgba(255,255,255,.48);border-radius:16px}dt{color:var(--muted);font-family:var(--title-font);font-size:.74rem;font-weight:850;letter-spacing:.08em;text-transform:uppercase}dd{min-width:0;margin:0;overflow:hidden;color:var(--ink);font-size:.82rem;font-weight:var(--body-strong-weight);text-overflow:ellipsis;white-space:nowrap}.ship-dock{display:grid;grid-template-columns:50px minmax(250px,1fr) minmax(270px,.86fr) 42px 62px;gap:10px;align-items:center;width:min(100%,840px);min-height:74px;padding:12px;color:var(--ink);background:var(--panel);border:1px solid var(--line);border-radius:26px;box-shadow:var(--glass-shadow);backdrop-filter:blur(24px) saturate(180%);-webkit-backdrop-filter:blur(24px) saturate(180%)}.ship-dock-icon,.ship-dock-ship,.ship-dock-ready{position:relative;display:grid;place-items:center;min-width:0;min-height:0;padding:0}.ship-dock-icon:hover:after,.ship-dock-icon:focus-visible:after,.ship-dock-ship:hover:after,.ship-dock-ship:focus-visible:after,.ship-dock-ready:hover:after,.ship-dock-ready:focus-visible:after{opacity:1;transform:translate(-50%,-8px)}.ship-dock-icon:after,.ship-dock-ship:after,.ship-dock-ready:after{position:absolute;right:auto;bottom:100%;left:50%;z-index:3;padding:5px 8px;color:#fffffff0;background:#20363ec7;border:1px solid rgba(255,255,255,.14);border-radius:999px;box-shadow:0 10px 24px -18px #143642bd;content:attr(data-tooltip);font-family:var(--body-font);font-size:.68rem;font-weight:850;letter-spacing:0;opacity:0;pointer-events:none;text-transform:none;transform:translate(-50%,-4px);transition:opacity .12s ease,transform .12s ease;white-space:nowrap}.ship-dock-icon{width:50px;height:50px;color:var(--accent);background:var(--tertiary-button-bg);border:0;border-radius:10px}.ship-dock-icon:hover{color:#fff;background:var(--accent)}.ship-dock-icon.muted{width:42px;height:42px;color:var(--muted);background:var(--panel-strong)}.ship-dock-icon.muted:hover{color:#fff;background:var(--secondary-button-bg)}.ship-dock-list{display:flex;gap:8px;min-width:0;overflow:visible;scrollbar-width:none}.ship-dock-list::-webkit-scrollbar{display:none}.ship-dock-ship{flex:0 0 48px;width:48px;height:48px;color:var(--muted);background:var(--panel-strong);border:0;border-radius:10px}.ship-dock-ship:hover{color:#fff;background:var(--secondary-button-bg)}.ship-dock-ship.active{color:#fff;background:var(--button-gradient)}.ship-dock-ship.placed{color:#ffffffbd;background:#7d8a9752}.ship-dock-current{display:grid;grid-template-columns:112px 1fr;gap:14px;align-items:center;min-width:0}.ship-dock-current strong,.ship-dock-current span{display:block}.ship-dock-current strong{overflow:hidden;color:var(--ink);font-size:.95rem;font-weight:var(--body-strong-weight);text-overflow:ellipsis;white-space:nowrap}.ship-dock-current span{margin-top:3px;color:var(--muted);font-size:.82rem}.ship-dock-ready{width:58px;height:58px;color:#fff;background:#48ca79;border:0;border-radius:12px}.ship-dock-ready:hover{background:#39b96a}.ship-dock-ready:disabled{color:var(--disabled-ink);background:var(--disabled-bg);border:0}.ship-thumb{display:block;width:34px;height:28px}.ship-thumb img{display:block;width:100%;height:100%;object-fit:contain;filter:saturate(.72) contrast(.94)}.ship-thumb.featured{width:108px;height:54px}.ship-thumb.featured img{filter:drop-shadow(0 12px 14px rgba(58,50,40,.18))}@media(max-width:980px){.ship-dock{grid-template-columns:46px 1fr 56px}.ship-dock-current,.ship-dock-icon.muted{display:none}.ship-dock-ready{width:56px;height:56px}}.error,.result{margin:0;padding:11px 14px;border-radius:18px;font-weight:var(--body-strong-weight)}.error{color:#fff;background:var(--danger);box-shadow:0 14px 30px -20px #781612b8}.result{color:var(--ink);background:#f2c94cd1}.room-sidebar{position:fixed;top:var(--header-reserved-height);bottom:var(--drawer-reserved-height);left:18px;z-index:6;display:grid;grid-template-rows:auto minmax(0,1fr);gap:18px;width:var(--left-sidebar-width);padding:18px;overflow:visible;color:var(--ink);background:var(--panel);border:1px solid var(--line);border-radius:var(--surface-radius);box-shadow:var(--glass-shadow);backdrop-filter:blur(24px) saturate(180%);-webkit-backdrop-filter:blur(24px) saturate(180%);transition:width .22s ease,padding .22s ease,background-color .18s ease,border-color .18s ease,box-shadow .18s ease,backdrop-filter .18s ease}.room-sidebar.closed{width:0;padding-right:0;padding-left:0;pointer-events:none;background:transparent;border-color:transparent;box-shadow:none;backdrop-filter:blur(0) saturate(100%);-webkit-backdrop-filter:blur(0) saturate(100%)}.room-sidebar-toggle{position:relative;display:grid;place-items:center;width:58px;min-height:44px;padding:0;color:var(--ink);background:var(--panel-strong);border:1px solid var(--line);border-radius:var(--control-radius);box-shadow:none}.room-sidebar .room-sidebar-toggle{position:absolute;top:50%;right:-18px;width:34px;min-height:42px;color:var(--ink);background:var(--panel-solid);border-color:var(--line);border-radius:999px;margin:0;transform:translateY(-50%);pointer-events:auto}.room-sidebar .room-sidebar-toggle:hover{color:#fff;background:var(--accent)}.room-sidebar .room-sidebar-toggle:active{transform:translateY(-50%)}.room-sidebar-header{display:grid;gap:3px}.room-sidebar-header h1{font-family:var(--title-font);font-size:1.48rem;font-weight:700;letter-spacing:.01em}.room-sidebar-content{display:grid;gap:14px}.room-sidebar-scroll{min-height:0;overflow-y:auto;overflow-x:hidden;padding-right:8px}.room-code-card{display:grid;gap:4px;padding:14px;background:var(--panel-strong);border-radius:18px}.room-code-card strong{font-size:1rem;font-weight:var(--body-strong-weight);letter-spacing:.12em}.sidebar-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px}.sidebar-actions button{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:40px;padding:0 10px}.room-state-list{display:grid;grid-template-columns:1fr;gap:8px;margin:0}.room-state-list div{display:grid;gap:4px;padding:12px;background:var(--panel-strong);border-radius:16px}.players-card{display:grid;gap:12px;padding:14px;background:var(--panel-strong);border-radius:20px}.players-card-heading{display:flex;align-items:center;justify-content:space-between;gap:12px}.players-card-heading>strong{color:var(--ink);font-family:var(--title-font);font-size:1.1rem;font-weight:700}.player-list{display:grid;gap:10px}.player-row{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:start;gap:10px;min-height:40px}.player-row strong,.player-row small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.player-row strong{font-size:.82rem;font-weight:var(--body-strong-weight)}.player-row small{color:var(--muted);font-size:.74rem;font-weight:var(--body-weight)}.player-dot{width:10px;height:10px;margin-top:5px;background:#8a847a8c;border-radius:999px}.player-dot.ready,.player-dot.connected{background:#53d07f;box-shadow:0 0 0 5px #53d07f24}.player-dot.waiting{background:#f6b84b;box-shadow:0 0 0 5px #f6b84b24}.player-dot.offline{background:#ff5e50;box-shadow:0 0 0 5px #ff5e501f}.ai-button,.room-exit-button{display:inline-flex;align-items:center;justify-content:center;gap:8px;width:100%}.room-exit-button{min-height:36px;color:var(--muted);background:transparent;border:1px solid transparent}.room-exit-button:hover{color:var(--danger);background:transparent;border-color:#d95c4559}@media(max-width:880px){.room-sidebar{top:var(--header-reserved-height);right:12px;bottom:auto;left:12px;width:auto;max-height:34vh;padding:14px;border-radius:22px}.room-sidebar.closed{right:auto;width:0;padding-right:0;padding-left:0}}.bottom-drawer{position:fixed;right:18px;bottom:18px;left:18px;z-index:6;display:grid;gap:12px;padding:14px;color:var(--ink);background:var(--panel);border:1px solid var(--line);border-radius:26px;box-shadow:var(--glass-shadow);backdrop-filter:blur(24px) saturate(180%);-webkit-backdrop-filter:blur(24px) saturate(180%);transition:background .14s ease}.bottom-drawer.open{gap:12px}.bottom-drawer.collapsed{gap:0;align-items:center;padding-top:14px;padding-bottom:14px}.bottom-drawer-toggle{position:absolute;top:-18px;right:0;left:0;display:grid;place-items:center;width:42px;min-height:34px;padding:0;color:var(--ink);background:var(--panel-solid);border:1px solid var(--line);border-radius:999px;box-shadow:var(--glass-shadow);margin-inline:auto}.bottom-drawer-toggle:hover,.bottom-drawer-toggle:focus-visible{color:#fff;background:var(--accent)}.bottom-drawer-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.bottom-drawer-summary.vertical{grid-template-columns:1fr;grid-template-rows:repeat(4,minmax(0,1fr));align-content:start;gap:0;overflow:hidden;background:var(--panel-strong);border-radius:18px}.bottom-drawer-summary.vertical .drawer-metric{position:relative;min-height:0;background:transparent;border:0;border-radius:0}.bottom-drawer-summary.vertical .drawer-metric:not(:last-child):after{position:absolute;right:14px;bottom:0;left:14px;height:1px;background:var(--line);content:""}.bottom-drawer-compact,.bottom-drawer-expanded{max-height:0;min-height:0;overflow:hidden;transition:max-height .26s cubic-bezier(.22,1,.36,1),opacity .18s ease,transform .26s cubic-bezier(.22,1,.36,1)}.bottom-drawer.open .bottom-drawer-compact{pointer-events:none;max-height:0;opacity:0;transform:translateY(8px)}.bottom-drawer.open .bottom-drawer-expanded{max-height:34vh;opacity:1;transform:translateY(0)}.bottom-drawer.collapsed .bottom-drawer-compact{display:grid;align-items:center;max-height:150px;opacity:1;transform:translateY(0)}.bottom-drawer.collapsed .bottom-drawer-expanded{pointer-events:none;max-height:0;opacity:0;transform:translateY(8px)}.drawer-metric{display:grid;grid-template-columns:auto 1fr;align-items:center;gap:2px 8px;min-height:52px;padding:10px 12px;color:var(--ink);background:var(--panel-strong);border-radius:16px}.drawer-metric svg{color:var(--muted)}.drawer-metric strong{grid-column:2;overflow:hidden;color:var(--ink);font-size:.82rem;font-weight:var(--body-strong-weight);text-overflow:ellipsis;white-space:nowrap}.bottom-drawer-content{display:grid;grid-template-columns:minmax(240px,330px) minmax(320px,1fr) minmax(240px,330px);gap:14px;max-height:28vh;overflow:auto}.match-preview-card{display:grid;min-width:0;min-height:100%;padding:14px;background:var(--panel-strong);border-radius:18px}.mode-panel{display:grid;gap:12px;min-width:0;padding:14px;background:var(--panel-strong);border-radius:18px}.mode-panel-header{display:flex;align-items:center;justify-content:space-between}.mode-card-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.mode-card{position:relative;min-width:0;overflow:hidden;color:#fff;background:#12324c;border:1px solid rgba(255,255,255,.18);border-radius:14px;aspect-ratio:.66}.mode-card.active{border-color:#2f6df6f2}.mode-card img{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:cover}.mode-card:after{position:absolute;inset:auto 0 0;height:58%;background:linear-gradient(180deg,#0c1e3000,#0c1e30d6 62%);content:""}.mode-card div{position:absolute;right:10px;bottom:10px;left:10px;z-index:1;display:grid;gap:3px}.mode-card strong{font-family:var(--title-font);font-size:.9rem;font-weight:700;letter-spacing:.03em;line-height:.95;text-transform:uppercase}.mode-card small{overflow:hidden;font-size:.68rem;font-weight:var(--body-weight);text-overflow:ellipsis;white-space:nowrap}.mode-panel-more{min-height:38px}.drawer-actions{min-width:0}@media(max-width:880px){.bottom-drawer{right:12px;bottom:12px;left:12px;border-radius:22px}.bottom-drawer.collapsed{width:auto}.bottom-drawer-summary,.bottom-drawer-summary.vertical{grid-template-columns:repeat(2,minmax(0,1fr))}.bottom-drawer-content{grid-template-columns:1fr;max-height:34vh}}.scene-toolbar{position:fixed;top:var(--header-reserved-height);bottom:var(--drawer-reserved-height);right:18px;z-index:7;display:grid;align-content:start;justify-items:center;gap:12px;width:var(--right-sidebar-width);padding:14px;color:var(--ink);background:var(--panel);border:1px solid var(--line);border-radius:var(--surface-radius);box-shadow:var(--glass-shadow);backdrop-filter:blur(24px) saturate(180%);-webkit-backdrop-filter:blur(24px) saturate(180%);overflow:visible;transition:width .22s ease,padding .22s ease,background-color .18s ease,border-color .18s ease,box-shadow .18s ease,backdrop-filter .18s ease}.scene-toolbar.closed{width:0;padding-right:0;padding-left:0;pointer-events:none;background:transparent;border-color:transparent;box-shadow:none;backdrop-filter:blur(0) saturate(100%);-webkit-backdrop-filter:blur(0) saturate(100%)}.scene-toolbar-button{position:relative;display:grid;place-items:center;width:58px;min-height:44px;padding:0;color:var(--ink);background:var(--panel-strong);border:1px solid var(--line);border-radius:var(--control-radius);box-shadow:none}.scene-toolbar-button:hover{color:#fff;background:var(--secondary-button-bg)}.scene-toolbar-button:hover:after,.scene-toolbar-button:focus-visible:after{opacity:1;transform:translate(-8px,-50%)}.scene-toolbar-button:after{position:absolute;top:50%;right:100%;z-index:2;padding:5px 8px;color:#fffffff0;background:#20363ec7;border:1px solid rgba(255,255,255,.14);border-radius:999px;box-shadow:0 10px 24px -18px #143642bd;content:attr(data-tooltip);font-size:.68rem;font-weight:850;opacity:0;pointer-events:none;transform:translate(-4px,-50%);transition:opacity .12s ease,transform .12s ease;white-space:nowrap}.scene-toolbar-button.active{color:#fff;background:var(--button-gradient);border-color:transparent}.scene-toolbar .scene-toolbar-toggle{position:absolute;top:50%;left:-18px;width:34px;min-height:42px;color:var(--ink);background:var(--panel-solid);border-color:var(--line);border-radius:999px;margin:0;transform:translateY(-50%);pointer-events:auto}.scene-toolbar .scene-toolbar-toggle:hover{color:#fff;background:var(--accent)}.scene-toolbar .scene-toolbar-toggle:active{transform:translateY(-50%)}.scene-toolbar-panel{display:grid;gap:12px;justify-items:center;align-content:start;width:100%;height:fit-content;max-height:100%;padding:0;overflow-y:auto;overflow-x:hidden;background:transparent;border:0;border-radius:0;box-shadow:none}.scene-toolbar-group{display:grid;gap:8px;justify-items:center;align-content:start;padding-bottom:12px;border-bottom:1px solid var(--line)}.scene-toolbar-group:last-child{padding-bottom:0;border-bottom:0}.scene-toolbar-pan{display:grid;grid-template-areas:". up ." "left . right" ". down .";grid-template-columns:repeat(3,18px);gap:6px;justify-content:center;justify-items:center;align-content:center;width:fit-content;margin-inline:auto;padding-bottom:12px;border-bottom:1px solid var(--line)}.scene-toolbar-pan .scene-toolbar-button{width:30px;min-height:30px;border-radius:10px}.pan-up{grid-area:up}.pan-left{grid-area:left}.pan-right{grid-area:right}.pan-down{grid-area:down}.scene-toolbar-reset{margin-top:0}@media(max-width:880px){.scene-toolbar{top:var(--header-reserved-height);right:12px;bottom:var(--drawer-reserved-height);width:80px;padding:10px;overflow:visible}.scene-toolbar button{width:48px;min-height:40px}.scene-toolbar.closed{width:0;padding-right:0;padding-left:0;overflow:visible}.scene-toolbar-panel{gap:10px}.scene-toolbar-pan{grid-template-columns:repeat(3,15px)}.scene-toolbar-pan button{width:28px;min-height:28px}}.combat-log{display:grid;gap:9px}.combat-dock{display:grid;grid-template-columns:minmax(160px,.74fr) minmax(260px,1.1fr) 42px 62px;gap:10px;align-items:center;width:min(100%,840px);min-height:74px;padding:12px;color:var(--ink);background:var(--panel);border:1px solid var(--line);border-radius:26px;box-shadow:var(--glass-shadow);backdrop-filter:blur(24px) saturate(180%);-webkit-backdrop-filter:blur(24px) saturate(180%)}.combat-dock-status,.combat-dock-events{min-width:0}.combat-dock-status{display:grid;gap:4px;padding:0 4px}.combat-dock-status span,.combat-dock-status strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.combat-dock-status span{color:var(--muted);font-family:var(--title-font);font-size:.78rem;font-weight:850;letter-spacing:.08em;text-transform:uppercase}.combat-dock-status strong{color:var(--ink);font-size:1rem;font-weight:var(--body-strong-weight)}.combat-dock-events{display:grid;gap:6px}.combat-dock-events p{margin:0;color:var(--muted);font-size:.82rem}.combat-dock-events ol,.combat-dock-history-list{display:grid;gap:6px;margin:0;padding:0;list-style:none}.combat-dock-events li,.combat-dock-history-list li{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:center;min-height:28px;padding:0 10px;color:var(--ink);background:var(--panel-strong);border-radius:999px}.combat-dock-events li.empty,.combat-dock-history-list li.empty{display:block;padding:8px 10px;color:var(--muted);font-size:.82rem}.combat-dock-events span,.combat-dock-history-list span,.combat-dock-events small,.combat-dock-history-list small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.combat-dock-events li span,.combat-dock-history-list li span{font-size:.78rem;font-weight:var(--body-strong-weight)}.combat-dock-events li small,.combat-dock-history-list li small{color:var(--muted);font-size:.72rem;font-weight:var(--body-weight)}.combat-dock-history{position:relative}.combat-dock-history summary{position:relative;display:grid;place-items:center;width:42px;min-height:42px;padding:0 12px;color:var(--tertiary-button-ink);font-family:var(--title-font);font-size:.96rem;font-weight:850;letter-spacing:.04em;text-transform:uppercase;list-style:none;background:var(--panel-strong);border-radius:10px;cursor:pointer}.combat-dock-history summary::-webkit-details-marker{display:none}.combat-dock-history summary:hover:after,.combat-dock-history summary:focus-visible:after{opacity:1;transform:translate(-8px,-50%)}.combat-dock-history summary:after{position:absolute;top:50%;right:100%;z-index:3;padding:5px 8px;color:#fffffff0;background:#20363ec7;border:1px solid rgba(255,255,255,.14);border-radius:999px;box-shadow:0 10px 24px -18px #143642bd;content:attr(data-tooltip);font-size:.68rem;font-weight:850;opacity:0;pointer-events:none;transform:translate(-4px,-50%);transition:opacity .12s ease,transform .12s ease;white-space:nowrap}.combat-dock-history[open] summary{color:#fff;background:var(--button-gradient)}.combat-dock-history summary:hover{color:#fff;background:var(--secondary-button-bg)}.combat-dock-history-list{position:absolute;right:0;bottom:calc(100% + 10px);z-index:2;width:min(360px,100vw - 32px);max-height:min(300px,100vh - var(--feedback-reserved-height) - 220px);padding:10px;overflow-y:auto;background:var(--panel);border:1px solid var(--line);border-radius:var(--card-radius);box-shadow:var(--glass-shadow);backdrop-filter:blur(22px) saturate(170%);-webkit-backdrop-filter:blur(22px) saturate(170%);border-radius:26px}.combat-dock-fire{display:grid;place-items:center;width:58px;height:58px;min-width:0;min-height:0;padding:0;color:#fff;background:linear-gradient(135deg,#ff6a3d,#dc3545);border:0;border-radius:12px}.combat-dock-fire:hover{background:linear-gradient(135deg,#ff7b4f,#c92d3b)}.combat-dock-fire:disabled{color:var(--disabled-ink);background:var(--disabled-bg);border:0}@media(max-width:980px){.combat-dock{grid-template-columns:minmax(120px,.8fr) minmax(0,1fr) 56px}.combat-dock-history{display:none}.combat-dock-fire{width:56px;height:56px}}@media(max-width:620px){.combat-dock{grid-template-columns:minmax(0,1fr) 56px;width:100%}.combat-dock-events{display:none}}.last-event{display:grid;gap:4px;padding:12px 14px;background:#ffffff9e;border:1px solid rgba(255,255,255,.5);border-radius:18px}.last-event span,.last-event small{color:var(--muted);font-size:.72rem;font-weight:850;text-transform:uppercase}.last-event strong{color:var(--ink);font-size:1rem;font-weight:var(--body-strong-weight)}.last-event.good{background:#f2c94cb8}.last-event.bad{background:#ffe4dfd1}.event-list{display:grid;gap:6px;margin:0;padding:0;list-style:none}.event-list li{display:flex;align-items:center;justify-content:space-between;gap:10px;min-height:34px;padding:0 12px;color:var(--ink);background:#ffffff6b;border:1px solid rgba(255,255,255,.42);border-radius:999px}.event-list li.good{box-shadow:inset 3px 0 #f2c94ccc}.event-list li.bad{box-shadow:inset 3px 0 #d95c4599}.event-list span,.event-list small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.event-list span{font-size:.78rem;font-weight:var(--body-strong-weight)}.event-list small{color:var(--muted);font-size:.72rem;font-weight:var(--body-weight)}
