:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;color:#f3f6ee;font-synthesis:none;text-rendering:optimizelegibility;--safe-top:max(env(safe-area-inset-top), 8px);--safe-bottom:max(env(safe-area-inset-bottom), 8px);--safe-left:env(safe-area-inset-left);--safe-right:env(safe-area-inset-right);background:#101111;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}body{background-color:#101111;background-image:linear-gradient(90deg,#54f4a914 1px,#0000 1px),linear-gradient(0deg,#ffcf5a0f 1px,#0000 1px),none;background-position:0 0,0 0,0 0;background-repeat:repeat,repeat,repeat;background-size:48px 48px;background-attachment:scroll,scroll,scroll;background-origin:padding-box,padding-box,padding-box;background-clip:border-box,border-box,border-box;min-width:320px;min-height:100vh;margin:0}body.game-mode{background:#05070b;width:100vw;height:100dvh;overflow:hidden}body.debug-mode{overflow:auto}button,input{font:inherit}button{color:#f3f6ee;cursor:pointer;background:#1d2020;border:1px solid #f3f6ee33;border-radius:8px;min-height:38px;padding:0 12px}button:hover:not(:disabled){border-color:#54f4a9;transform:translateY(-1px)}button:disabled{cursor:default}button.primary{color:#101111;background:#54f4a9;border-color:#54f4a9;font-weight:800}input{color:#f3f6ee;background:#181a1a;border:1px solid #f3f6ee2e;border-radius:8px;width:min(100%,12rem);min-height:38px;padding:0 10px}.app-shell{background:radial-gradient(circle at 42% 42%,#54f4a91a,#0000 34%),radial-gradient(circle at 62% 72%,#ffcf5a0f,#0000 32%),#05070b;width:100vw;height:100dvh;position:fixed;inset:0;overflow:hidden}.stage-surface{position:absolute;inset:0;overflow:hidden}.stage-guide{z-index:12;pointer-events:none;gap:8px;display:grid;position:absolute;top:12px;left:12px;right:12px}.stage-guide>*{pointer-events:auto}.stage-guide .banner,.stage-guide .guide-banner,.stage-guide .event-reveal{margin:0}.app-panels{z-index:14;background:linear-gradient(#0000,#05070bc2 20%,#05070bf0);grid-template-columns:minmax(18rem,1fr) minmax(16rem,1fr) minmax(16rem,1fr);gap:10px;max-height:40dvh;padding:10px;display:grid;position:absolute;bottom:0;left:0;right:0;overflow:auto hidden}.app-panels>.panel{min-width:min(82vw,24rem);max-height:calc(40dvh - 20px);overflow:auto}.app-panels .market-list,.app-panels .log-panel ol{max-height:none}.room-form-panel{grid-column:1/-1;grid-template-columns:minmax(0,1fr);gap:8px;display:grid}.status-panel p{border-bottom:1px solid #f3f6ee14;justify-content:space-between;gap:10px;margin:0;padding:8px 12px;display:flex}.status-panel b{color:#ffcf5a}.topbar{z-index:20;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);background:#101111eb;border-bottom:1px solid #f3f6ee24;flex-direction:column;justify-content:space-between;align-items:stretch;gap:16px;min-height:64px;padding:12px 18px;display:flex}.topbar>div,.topbar form{flex-wrap:wrap;align-items:stretch;gap:10px;display:flex}.topbar strong{color:#54f4a9;font-size:1.1rem}.topbar span{background:#f3f6ee14;border-radius:7px;align-items:center;min-height:28px;padding:0 8px;display:inline-flex}.trend-bar{border-bottom:1px solid #f3f6ee1f;align-items:center;gap:8px;min-height:42px;padding:0 18px;display:flex;overflow-x:auto}.trend-bar span{color:#ffcf5a;text-transform:uppercase;font-size:.72rem;font-weight:800}.trend-bar b{white-space:nowrap;color:#f3f6ee;background:#ff79c629;border-radius:6px;padding:4px 8px}.banner{color:#ffd6c7;background:#ff8a5b24;border:1px solid #ff8a5bb3;border-radius:8px;margin:12px 18px 0;padding:12px 14px;font-weight:800}.guide-banner{background:#141b19f5;border:1px solid #54f4a957;border-radius:8px;grid-template-columns:1fr;align-items:center;gap:14px;margin:10px;padding:16px;display:grid;box-shadow:0 12px 34px #00000047}.guide-banner>div:first-child{gap:4px;display:grid}.guide-banner strong{color:#54f4a9;text-transform:uppercase;letter-spacing:0;font-size:.78rem}.guide-banner span{font-size:clamp(1.05rem,2vw,1.55rem);font-weight:900}.guide-actions,.lobby-actions{flex-wrap:wrap;justify-content:stretch;align-items:center;gap:8px;display:flex}.guide-actions button,.lobby-actions button{flex:12rem;min-height:46px;font-weight:900}.lobby-actions button small{color:#f3f6ee8f;font-size:.68rem;font-weight:800;display:block}.start-game{min-width:min(100%,12rem)}.event-reveal{background:#302610f2;border:1px solid #ffcf5a73;border-radius:8px;gap:4px;margin:10px 16px 0;padding:14px 16px;display:grid}.event-reveal strong{color:#ffcf5a;text-transform:uppercase;font-size:.82rem}.event-reveal span{font-weight:800}.toast-stack{z-index:40;pointer-events:none;gap:8px;width:min(420px,100vw - 32px);display:grid;position:fixed;bottom:16px;right:16px}.toast-stack p{color:#e3f4ff;background:#121c21f5;border:1px solid #7bc7ff6b;border-radius:8px;margin:0;padding:12px 14px;font-weight:800}.perf-overlay{z-index:45;color:#d8f8e6;pointer-events:none;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#05080cc7;border:1px solid #54f4a95c;border-radius:8px;flex-wrap:wrap;gap:6px;max-width:min(26rem,100vw - 24px);padding:8px;font-size:.72rem;font-weight:900;display:flex;position:fixed;bottom:12px;left:12px}.perf-overlay span{background:#54f4a91a;border-radius:6px;padding:4px 6px}.layout{grid-template-columns:minmax(0,1fr);grid-template-areas:"board""side""market""debug";align-items:start;gap:10px;padding:10px;display:grid}.board-stack{grid-area:board;gap:12px;display:grid}.district-shell,.board-shell{aspect-ratio:1;background:radial-gradient(circle,#ffcf5a1f,#0000 32%),radial-gradient(circle at 48% 54%,#7bc7ff14,#0000 48%),#141616;border:1px solid #54f4a947;border-radius:8px;min-height:clamp(360px,88vw,680px);position:relative;overflow:hidden}.district-shell{background:radial-gradient(circle at 50% 40%,#54f4a924,#0000 28%),radial-gradient(circle at 56% 60%,#7bc7ff14,#0000 46%),#080c12}.app-shell .district-shell{aspect-ratio:auto;background:radial-gradient(circle at 50% 54%,#54f4a91a,#0000 26%),radial-gradient(circle at 58% 60%,#9bdcff14,#0000 48%),#05070b;border:0;border-radius:0;width:100%;height:100%;min-height:0;position:absolute;inset:0}.district-shell:after{content:"";z-index:2;pointer-events:none;mix-blend-mode:multiply;background:radial-gradient(circle at 50% 48%,#0000 58%,#01040847 84%,#000000a8 100%),linear-gradient(#00000024,#0000 28%,#0003);position:absolute;inset:0}.district-root,.district-canvas{width:100%;height:100%;position:absolute;inset:0}.district-lobby{-webkit-backdrop-filter:blur(14px);background:#080b12d1;border:1px solid #39ff8829;border-radius:14px;flex-direction:column;gap:8px;max-width:min(100%,26rem);padding:14px;font-family:Space Grotesk,system-ui,sans-serif;display:flex;position:absolute;bottom:18px;left:18px;box-shadow:0 12px 30px #00000059}.district-lobby>strong{color:#39ff88;letter-spacing:.16em;text-transform:uppercase;font:700 12px Space Grotesk,system-ui,sans-serif}.district-lobby>span{color:#e9edf8;font:500 13px/1.4 Space Grotesk,system-ui,sans-serif}.qa-dom-board{border-color:#ffcf5a57}.board-edges{width:100%;height:100%;position:absolute;inset:0}.board-edges line{stroke:#7bc7ff61;stroke-width:.34px;vector-effect:non-scaling-stroke}.board-node{background:#1a1d1b;border-color:#f3f6ee38;place-items:center;gap:1px;width:clamp(58px,6vw,86px);min-height:52px;padding:6px;display:grid;position:absolute;transform:translate(-50%,-50%);box-shadow:0 0 18px #0000004d}.board-node strong,.board-node span{text-overflow:ellipsis;white-space:nowrap;max-width:100%;line-height:1.05;overflow:hidden}.board-node strong{font-size:clamp(.7rem,1vw,.9rem)}.board-node span{color:#f3f6eec7;font-size:.72rem}.board-node i{opacity:.95;pointer-events:none;border:2px solid;border-radius:8px;position:absolute;inset:-4px}.board-node em{color:#101111;border-radius:999px;place-items:center;width:24px;height:24px;font-style:normal;font-weight:900;display:grid;position:absolute;top:-8px;right:-8px}.board-node.event{border-color:#ff79c6}.board-node.bell{background:#2c2614;border-color:#ffcf5a}.board-node.legal{border-color:#f3f6ee;box-shadow:0 0 0 2px #f3f6ee29,0 0 24px #54f4a96b}.board-node.pulse{animation:1.05s ease-in-out infinite legalPulse}@keyframes legalPulse{0%,to{box-shadow:0 0 0 2px #f3f6ee29,0 0 20px #54f4a961}50%{box-shadow:0 0 0 4px #ffcf5a47,0 0 34px #54f4a9bd}}.board-node.cold{background:#142027;border-color:#9bdcff}.board-node.heat-hot,.board-node.heat-surging{border-color:#ffcf5a}.board-node.heat-blazing{border-color:#ff3b65}.board-node.halted{opacity:.62}.side{grid-area:side;gap:10px;display:grid}.panel{background:#161818f0;border:1px solid #f3f6ee24;border-radius:8px;overflow:hidden}.side .panel,.market-panel{max-height:min(56svh,34rem);overflow:auto}.lobby-board{place-items:center;padding:18px;display:grid}.lobby-card{gap:16px;width:min(100%,44rem);display:grid}.lobby-card>strong{color:#54f4a9;font-size:clamp(1.8rem,4vw,3.5rem);line-height:1}.lobby-card>span{color:#f3f6eec2;font-weight:800}.lobby-seats{flex-direction:column;gap:6px;display:flex}.lobby-seat{background:#ffffff08;border:0;border-radius:8px;grid-template-columns:40px minmax(0,1fr) auto auto;align-items:center;gap:8px;padding:8px 10px;font-family:IBM Plex Mono,ui-monospace,monospace;display:grid}.lobby-seat b{color:#aab4cd;letter-spacing:.06em;font:600 11px IBM Plex Mono,ui-monospace,monospace}.lobby-seat span{text-overflow:ellipsis;white-space:nowrap;color:#e9edf8;font:600 13px IBM Plex Mono,ui-monospace,monospace;overflow:hidden}.lobby-seat small{color:#bac5e08c;letter-spacing:.02em;font:500 11px IBM Plex Mono,ui-monospace,monospace}.lobby-seat.held{opacity:.55}.lobby-seat.bot{background:#39ff880f;box-shadow:inset 0 0 0 1px #39ff8838}.seat-chip{letter-spacing:.06em;text-transform:uppercase;vertical-align:middle;border-radius:999px;margin-left:8px;padding:2px 8px;font-size:10px;font-weight:900;display:inline-block}.seat-chip.bot{color:#54f4a9;background:#54f4a92e;border:1px solid #54f4a966}.seat-remove-bot{color:#f3f6ee9e;cursor:pointer;background:0 0;border:1px solid #f3f6ee4d;border-radius:6px;padding:4px 10px;font-size:14px;font-weight:900;line-height:1}.seat-remove-bot:hover{color:#ff4d5e;border-color:#ff4d5e8c}.corner-bot-chip{color:#54f4a9;letter-spacing:.06em;text-transform:uppercase;background:#54f4a926;border:1px solid #54f4a959;border-radius:999px;margin-left:6px;padding:1px 6px;font-size:9px;font-weight:900;display:inline-block}.corner-card.bot{border-style:dashed}.piece-picker{background:#f3f6ee0a;border:1px solid #f3f6ee1f;border-radius:10px;margin-top:12px;padding:12px}.piece-picker-head{letter-spacing:.06em;text-transform:uppercase;color:#f3f6eeb8;margin-bottom:10px;font-size:12px;font-weight:800}.piece-picker-head b{color:#ffcf5a;font-weight:900}.piece-picker-grid{grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:8px;display:grid}.piece-tile{color:#f3f6ee;cursor:pointer;text-align:left;background:#f3f6ee0f;border:1px solid #f3f6ee24;border-radius:8px;flex-direction:column;gap:4px;padding:10px;font-family:inherit;transition:border-color .12s,background .12s;display:flex}.piece-tile:hover:not(:disabled){background:#54f4a914;border-color:#54f4a98c}.piece-tile-label{font-size:13px;font-weight:900}.piece-tile-badge{letter-spacing:.06em;text-transform:uppercase;color:#f3f6ee99;font-size:10px;font-weight:800}.piece-tile.mine{background:#ffcf5a29;border-color:#ffcf5a}.piece-tile.mine .piece-tile-badge{color:#ffcf5a}.piece-tile.picked{outline-offset:1px;outline:2px solid #ffcf5a}.piece-tile.taken{opacity:.5;cursor:not-allowed}.piece-tile.taken .piece-tile-badge{color:#f3f6eeb3}.piece-tile:disabled{cursor:not-allowed}.settings-gear{top:calc(var(--safe-top) + 4px);right:calc(var(--safe-right) + 12px);z-index:60;color:#f3f6ee;cursor:pointer;background:#131a2abf;border:1px solid #f3f6ee33;border-radius:999px;width:40px;height:40px;font-size:22px;line-height:1;transition:background .12s,transform .12s;position:fixed}.settings-gear:hover{background:#54f4a926;transform:rotate(30deg)}.settings-scrim{z-index:70;background:#080d168c;position:fixed;inset:0}.settings-panel{top:calc(var(--safe-top) + 4px);right:calc(var(--safe-right) + 12px);z-index:80;color:#f3f6ee;background:#131a2a;border:1px solid #f3f6ee2e;border-radius:14px;flex-direction:column;gap:12px;width:min(360px,100vw - 24px);padding:16px;font-family:inherit;display:flex;position:fixed;box-shadow:0 12px 32px #00000080}.settings-head{justify-content:space-between;align-items:center;gap:8px;display:flex}.settings-head strong{letter-spacing:.04em;text-transform:uppercase;color:#ffcf5a;font-size:15px}.settings-close{color:#f3f6eeb3;cursor:pointer;background:0 0;border:none;padding:2px 10px;font-size:20px}.settings-close:hover{color:#ff4d5e}.settings-row{border-top:1px solid #f3f6ee14;justify-content:space-between;align-items:center;gap:12px;padding:8px 0;display:flex}.settings-row:first-of-type{border-top:none}.settings-label{font-size:13px;font-weight:800}.settings-label small{color:#f3f6ee80;margin-left:4px;font-weight:700}.settings-toggle{border:1px solid #f3f6ee29;border-radius:999px;display:inline-flex;overflow:hidden}.settings-toggle button{color:#f3f6eeb3;cursor:pointer;background:0 0;border:none;padding:6px 14px;font-family:inherit;font-size:12px;font-weight:800}.settings-toggle button.active{color:#54f4a9;background:#54f4a933}.settings-code{color:#ffcf5a;letter-spacing:.12em;cursor:pointer;background:#f3f6ee14;border-radius:6px;padding:4px 10px;font-family:Menlo,Consolas,monospace;font-weight:900}.settings-foot{border-top:1px solid #f3f6ee14;gap:8px;padding-top:8px;display:flex}.settings-leave,.settings-end{color:#ff4d5e;cursor:pointer;background:0 0;border:1px solid #ff4d5e80;border-radius:8px;flex:1;padding:8px 12px;font-family:inherit;font-weight:900}.settings-leave:hover,.settings-end:hover{background:#ff4d5e26}.panel-title{color:#ffcf5a;border-bottom:1px solid #f3f6ee1f;align-items:center;gap:8px;min-height:38px;padding:0 12px;font-weight:900;display:flex}.controls{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;padding:12px;display:grid}.controls .panel-title,.controls .lobby-actions,.controls .hint,.controls .error{grid-column:1/-1}.hint{color:#f3f6eeb8}.error{color:#ff4d5e;margin:0}.player-row{border-bottom:1px solid #f3f6ee14;grid-template-columns:1fr auto auto;gap:8px;padding:12px;display:grid}.player-row b{color:var(--seat)}.player-row small{color:#f3f6eead;grid-column:1/-1}.player-row.active{background:#54f4a914}.market-list{max-height:none;overflow:auto}.market-row{border-bottom:1px solid #f3f6ee14;grid-template-columns:58px minmax(92px,1fr) 76px;align-items:center;gap:8px;padding:9px 12px;display:grid}.market-row span,.market-row small,.market-row i{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.market-row b{color:#54f4a9}.market-row small,.market-row i{color:#f3f6ee9e;grid-column:2/-1;font-style:normal}.log-panel ol{gap:0;margin:0;padding:0;list-style:none;display:grid}.log-panel li{border-bottom:1px solid #f3f6ee14;gap:2px;padding:9px 12px;display:grid}.log-panel b{color:#7bc7ff;font-size:.74rem}.log-panel span{color:#f3f6eec7}.debug-panel{grid-area:debug}.debug-panel pre{color:#d8f8e6;max-height:520px;margin:0;padding:12px;font-size:.78rem;overflow:auto}.market-panel{grid-area:market}@media (orientation:landscape) and (width>=760px){.stage-surface{right:min(31rem,32vw)}.stage-guide{right:calc(min(31rem,32vw) + 14px)}.stage-guide .guide-banner{grid-template-columns:minmax(0,1fr) minmax(16rem,auto);margin:0}.app-panels{background:0 0;flex-direction:column;align-content:normal;width:min(30rem,32vw - 20px);max-height:none;padding:0;display:flex;inset:12px 12px 12px auto;overflow:hidden auto}.app-panels>.panel{min-width:0;min-height:0;max-height:100%;overflow:auto}.app-panels .controls{flex:none;align-self:start;width:100%}.app-panels .players-panel{flex:10rem}.app-panels .market-panel{flex:1.2 12rem}.app-panels .log-panel{flex:.9 8rem}.app-panels .players-panel,.app-panels .market-panel,.app-panels .log-panel{grid-template-rows:auto minmax(0,1fr);display:grid}.app-panels .market-list,.app-panels .log-panel ol{min-height:0;overflow:auto}.room-form-panel{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.room-form-panel button{grid-column:1/-1}.topbar{flex-direction:row;align-items:center;position:sticky;top:0}.topbar>div,.topbar form{align-items:center}.guide-banner{grid-template-columns:minmax(0,1fr) minmax(18rem,auto);margin:14px 16px 0}.guide-actions,.lobby-actions{justify-content:flex-end}.guide-actions button,.lobby-actions button{flex:0 auto}.layout{grid-template-columns:minmax(0,1.45fr) minmax(18rem,.85fr);grid-template-areas:"board side""board market""debug debug";gap:16px;padding:16px}.district-shell,.board-shell{min-height:min(78svh,58vw);position:sticky;top:138px}.side{gap:16px}.side .panel,.market-panel{max-height:none}.market-list{max-height:min(42svh,32rem)}}@media (width<=520px){input,.topbar form,.topbar input,.topbar button{width:100%}.board-node{width:clamp(50px,16vw,62px);min-height:46px;padding:5px}}.podium-overlay{padding:calc(var(--safe-top) + 24px) calc(var(--safe-right) + 24px) calc(var(--safe-bottom) + 24px) calc(var(--safe-left) + 24px);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);z-index:30;background:radial-gradient(circle at 50% 45%,#131a2ab8 0%,#04060ceb 60%);justify-content:center;align-items:center;animation:.32s ease-out podium-fade;display:flex;position:fixed;inset:0}@keyframes podium-fade{0%{opacity:0}to{opacity:1}}.podium-card{color:#f5fff8;background:#090d16f0;border:1px solid #ffcf5a80;border-radius:22px;flex-direction:column;gap:20px;width:min(640px,100%);padding:28px 32px 32px;display:flex;box-shadow:0 24px 80px #0009,0 0 40px #ffcf5a29}.podium-card header{flex-direction:column;gap:4px;display:flex}.podium-card header span{color:#ffcf5a;letter-spacing:.14em;text-transform:uppercase;font-size:12px;font-weight:700}.podium-card header strong{letter-spacing:.02em;font-size:26px;font-weight:900}.podium-list{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.podium-row{border-left:4px solid var(--rank-color,#ffcf5a);background:#ffffff0a;border-radius:10px;grid-template-columns:32px 1fr auto auto;align-items:baseline;gap:14px;padding:10px 14px;display:grid}.podium-rank{color:var(--rank-color,#ffcf5a);font-size:20px;font-weight:900}.podium-name{font-size:16px;font-weight:700}.podium-net{color:#f5fff8;font-size:18px;font-weight:900}.podium-cash{color:#f5fff899;letter-spacing:.06em;font-size:12px}.podium-chart{flex-direction:column;gap:6px;padding-top:4px;display:flex}.podium-chart-label{letter-spacing:.16em;text-transform:uppercase;color:#f5fff8b3;font-size:11px}.podium-chart svg{background:#ffffff05;border-radius:12px;width:100%;height:auto;display:block}.podium-chart-scale{color:#f5fff880;justify-content:space-between;font-size:11px;display:flex}.podium-chart-empty{color:#f5fff899;background:#ffffff0a;border-radius:10px;padding:12px 14px;font-size:13px}.podium-winner{border:2px solid var(--winner-color,#ffcf5a);color:#f5fff8;background:linear-gradient(140deg,#ffcf5a38,#ffcf5a0d 60%);border-radius:16px;grid-template-columns:auto 1fr auto;align-items:center;gap:12px;padding:16px 20px;display:grid;box-shadow:0 0 32px #ffcf5a47}.podium-winner-eyebrow{letter-spacing:.18em;text-transform:uppercase;color:#ffcf5a;grid-area:1/1;font-size:11px;font-weight:800}.podium-winner-name{letter-spacing:.01em;grid-area:1/2/span 2;font-size:28px;font-weight:900}.podium-winner-net{color:#ffcf5a;grid-area:1/3/span 2;font-size:22px;font-weight:900}.podium-winner-piece{color:#f5fff8cc;letter-spacing:.06em;grid-area:2/1;font-size:12px}.podium-row.winner{background:#ffcf5a17;border-left-color:#ffcf5a}.podium-highlight{color:#f5fff8a8;letter-spacing:.02em;grid-area:2/2/auto/-1;padding-top:2px;font-size:12px}.podium-row{grid-template-rows:auto auto}.podium-actions{flex-wrap:wrap;justify-content:flex-end;gap:10px;padding-top:6px;display:flex}.podium-action{color:#f5fff8;letter-spacing:.06em;cursor:pointer;background:#ffffff0d;border:1px solid #ffffff29;border-radius:10px;padding:10px 18px;font-size:13px;font-weight:700}.podium-action:hover:not(:disabled){background:#ffffff1a;border-color:#ffffff47}.podium-action.primary{color:#1b1204;background:linear-gradient(140deg,#ffcf5a,#ff9d3a);border-color:#fff6}.podium-action:disabled{opacity:.5;cursor:default}.turn-banner{top:calc(var(--safe-top) + 4px);z-index:4;border:2px solid var(--turn-color,#ffcf5a);box-shadow:0 0 24px #00000070, 0 0 12px var(--turn-color,#ffcf5a);color:#f4f7ff;pointer-events:none;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#060a14d1;border-radius:999px;align-items:center;gap:10px;max-width:min(92%,560px);padding:8px 14px;font-weight:800;display:flex;position:absolute;left:50%;transform:translate(-50%)}.turn-banner .turn-chip{border-radius:50%;width:14px;height:14px;box-shadow:0 0 8px}.turn-banner .turn-text{flex-direction:column;min-width:0;line-height:1.1;display:flex}.turn-banner .turn-text strong{letter-spacing:.02em;color:var(--turn-color,#ffcf5a);text-overflow:ellipsis;white-space:nowrap;font-size:15px;overflow:hidden}.turn-banner .turn-text span{color:#f4f7ffc7;text-overflow:ellipsis;white-space:nowrap;font-size:12px;font-weight:600;overflow:hidden}.turn-banner .turn-day{color:#f4f7ffb3;letter-spacing:.04em;background:#ffffff14;border-radius:999px;margin-left:auto;padding:3px 8px;font-size:11px}.turn-banner.your-turn{animation:2.2s ease-in-out infinite turn-banner-pulse}@keyframes turn-banner-pulse{0%,to{box-shadow:0 0 24px #00000070, 0 0 10px var(--turn-color,#ffcf5a)}50%{box-shadow:0 0 28px #00000080, 0 0 22px var(--turn-color,#ffcf5a)}}.district-hover-chip{z-index:20;color:#f4f7ff;pointer-events:none;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#060a14eb;border:1.5px solid #ffcf5a9e;border-radius:12px;min-width:148px;max-width:260px;padding:8px 12px;font-weight:700;line-height:1.25;position:fixed;transform:translate(-50%,-100%)translateY(-14px);box-shadow:0 6px 18px #00000080,0 0 12px #ffcf5a47}.district-hover-chip[data-kind=default]{opacity:.9;border-color:#ffcf5a6b}.district-hover-chip strong{letter-spacing:.06em;color:#ffe08a;margin-bottom:2px;font-size:15px;display:block}.district-hover-chip .chip-line{color:#f4f7ffd1;align-items:center;gap:6px;font-size:12px;display:flex}.district-hover-chip .chip-line.price{color:#f4f7ff;font-size:13px}.district-hover-chip .chip-line.yours{color:#54f4a9}.district-hover-chip .chip-line.unowned{color:#f4f7ffb3;font-style:italic}.district-hover-chip .chip-owner-dot{border-radius:50%;width:8px;height:8px;display:inline-block;box-shadow:0 0 4px}.district-hover-chip .chip-badge{letter-spacing:.08em;border-radius:6px;padding:1px 5px;font-size:10px;font-style:normal;font-weight:900}.district-hover-chip .chip-badge.hot{color:#fff;background:#ff6a1a}.district-hover-chip .chip-badge.cold{color:#071022;background:#9bdcff}.district-hover-chip .chip-halted{color:#fff;letter-spacing:.06em;background:#ff4d5e;border-radius:6px;margin-left:6px;padding:1px 5px;font-size:10px}.guide-banner .go-default{color:#100a04;background:linear-gradient(140deg,#ffcf5a,#ff9a3a);border:none;box-shadow:0 4px 16px #ff9a3a5c}.event-banner{top:calc(var(--safe-top) + 4px);z-index:30;color:#f4f7ff;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);pointer-events:auto;background:#060a14db;border:1px solid #54f4a93d;border-radius:12px;min-width:240px;max-width:min(92vw,640px);padding:10px 14px;font-weight:700;position:fixed;left:50%;transform:translate(-50%);box-shadow:0 6px 22px #00000070,0 0 12px #54f4a924}.event-banner[data-tone=reward]{border-color:#ffcf5a70;box-shadow:0 6px 22px #00000070,0 0 14px #ffcf5a38}.event-banner[data-tone=urgent]{border-color:#ff4d5e6b;box-shadow:0 6px 22px #00000070,0 0 14px #ff4d5e38}.event-banner[data-tone=event]{border-color:#ff4fd880;box-shadow:0 6px 22px #00000070,0 0 14px #ff4fd842}.event-banner-body{align-items:center;gap:10px;display:flex}.event-banner-line{letter-spacing:.01em;color:#f4f7ff;text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;margin:0;font-size:14px;overflow:hidden}.event-banner-line.enter{animation:.26s ease-out both banner-enter}@keyframes banner-enter{0%{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:translateY(0)}}.event-banner-toggle{color:#f4f7ffb3;cursor:pointer;background:0 0;border:1px solid #f4f7ff33;border-radius:999px;width:26px;height:26px;padding:0;font-size:15px;line-height:1}.event-banner-toggle:hover{color:#f4f7ff;border-color:#f4f7ff70}.event-banner-history{top:calc(var(--safe-top) + 48px);z-index:29;color:#f4f7ff;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#060a14f0;border:1px solid #54f4a938;border-radius:12px;width:min(92vw,640px);max-height:60vh;padding:10px 14px;position:fixed;left:50%;overflow-y:auto;transform:translate(-50%);box-shadow:0 10px 30px #00000080}.event-banner-history header{letter-spacing:.16em;text-transform:uppercase;color:#f4f7ff9e;border-bottom:1px solid #f4f7ff1f;padding-bottom:6px;font-size:11px}.event-banner-history ol{flex-direction:column;gap:4px;margin:8px 0 0;padding:0;list-style:none;display:flex}.event-banner-history li{color:#f4f7ffdb;background:#ffffff08;border-radius:6px;padding:6px 8px;font-size:13px;font-weight:700}.event-banner-history li[data-tone=reward]{color:#ffcf5a}.event-banner-history li[data-tone=urgent]{color:#ff8a94}.event-banner-history li[data-tone=event]{color:#ff9beb}.corner-cards{pointer-events:none;z-index:5;position:absolute;inset:0}.corner-card{pointer-events:auto;color:#f4f7ff;cursor:pointer;text-align:left;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#060a14d6;border:2px solid #f4f7ff1f;border-radius:14px;grid-template-columns:auto 1fr;grid-template-areas:"piece info""chips chips";gap:4px 10px;min-width:148px;max-width:210px;padding:10px 12px;font-weight:700;transition:transform .12s,box-shadow .16s,border-color .16s;display:grid;position:absolute;box-shadow:0 8px 24px #0006}.corner-card:hover{transform:translateY(-1px)}.corner-card.top-left{top:calc(var(--safe-top) + 54px);left:calc(var(--safe-left) + 12px)}.corner-card.top-right{top:calc(var(--safe-top) + 54px);right:calc(var(--safe-right) + 12px)}.corner-card.mid-left{top:50%;left:calc(var(--safe-left) + 12px);transform:translateY(-50%)}.corner-card.mid-right{top:50%;right:calc(var(--safe-right) + 12px);transform:translateY(-50%)}.corner-card.bottom-left{bottom:148px;left:calc(var(--safe-left) + 12px)}.corner-card.bottom-right{bottom:148px;right:calc(var(--safe-right) + 12px)}.corner-card.active{border-color:var(--seat-color);box-shadow:0 8px 26px #00000080, 0 0 18px var(--seat-color);animation:2.4s ease-in-out infinite corner-active}@keyframes corner-active{0%,to{box-shadow:0 8px 26px #00000080, 0 0 10px var(--seat-color)}50%{box-shadow:0 8px 26px #00000080, 0 0 24px var(--seat-color)}}.corner-card.you .you-tag{color:#ffe08a;letter-spacing:.08em;text-transform:uppercase;background:#ffcf5a38;border-radius:999px;margin-left:6px;padding:1px 6px;font-size:10px;font-weight:900}.corner-piece{background:linear-gradient(180deg, var(--seat-color), color-mix(in srgb, var(--seat-color) 55%, #000));width:22px;height:34px;box-shadow:0 0 12px var(--seat-color), inset 0 -6px 8px #0000003d;border-radius:11px;grid-area:piece;align-self:center}.corner-info{flex-direction:column;grid-area:info;gap:2px;min-width:0;display:flex}.corner-name{color:var(--seat-color);text-overflow:ellipsis;white-space:nowrap;letter-spacing:.02em;font-size:13px;overflow:hidden}.corner-cash{color:#ffe08a;font-variant-numeric:tabular-nums;letter-spacing:.01em;font-size:18px}.corner-chips{flex-wrap:wrap;grid-area:chips;gap:4px;margin-top:2px;display:flex}.corner-chips .chip-group{background:#00000047;border-radius:8px;gap:2px;padding:2px 3px;display:inline-flex}.corner-chips .chip-group.mogul{outline-offset:0;outline:1.5px solid #ffcf5a;box-shadow:0 0 6px #ffcf5a99}.corner-chips .chip{color:#060a14eb;letter-spacing:.04em;border-radius:4px;justify-content:center;align-items:center;width:16px;height:16px;font-size:10px;font-weight:900;display:inline-flex;box-shadow:0 0 4px}.corner-card.flash-gain{animation:.55s ease-out corner-flash-gain}.corner-card.flash-loss{animation:.55s ease-out corner-flash-loss}@keyframes corner-flash-gain{0%{background:#ffcf5a8c}to{background:#060a14d6}}@keyframes corner-flash-loss{0%{background:#ff4d5e8c}to{background:#060a14d6}}.action-tray{left:50%;bottom:calc(var(--safe-bottom) + 14px);z-index:16;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);color:#f4f7ff;background:#060a14e6;border:1px solid #54f4a947;border-radius:14px;flex-direction:column;align-items:center;gap:8px;width:min(92vw,560px);padding:10px 12px 12px;display:flex;position:absolute;transform:translate(-50%);box-shadow:0 -6px 24px #0006}.action-tray.watching{border-color:#9bdcff3d}.action-tray.minimal{min-width:240px;padding:8px 12px}.tray-tutor{color:#f4f7ffdb;letter-spacing:.01em;text-align:center;min-height:16px;margin:0;font-size:13px;font-weight:700}.tray-buttons{flex-wrap:wrap;justify-content:center;gap:8px;width:100%;display:flex}.tray-buttons button{color:#eafff5;letter-spacing:.04em;cursor:pointer;background:#54f4a914;border:1px solid #54f4a95c;border-radius:12px;min-width:120px;min-height:56px;padding:0 18px;font-size:15px;font-weight:800;transition:transform .1s,box-shadow .16s,background .16s}.tray-buttons button:hover{background:#54f4a929;box-shadow:0 4px 14px #54f4a938}.tray-buttons button:active{transform:translateY(1px)}.tray-buttons button.primary{color:#04150c;background:linear-gradient(140deg,#54f4a9,#38f985);border:none;box-shadow:0 6px 18px #38f98566}.tray-buttons button.go-default{color:#100a04;background:linear-gradient(140deg,#ffcf5a,#ff9a3a);border:none;box-shadow:0 6px 18px #ff9a3a66}.tray-buttons button.tray-roll{letter-spacing:.14em;min-width:180px;font-size:18px}.takeover{z-index:40;padding:calc(var(--safe-top) + 20px) calc(var(--safe-right) + 20px) calc(var(--safe-bottom) + 20px) calc(var(--safe-left) + 20px);place-items:center;display:grid;position:fixed;inset:0}.takeover-scrim{-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#02050a99;position:absolute;inset:0}.takeover-card{z-index:1;border:2px solid var(--tone,#ffcf5a);color:#f4f7ff;width:min(96vw,520px);box-shadow:0 20px 50px #0009, 0 0 30px color-mix(in srgb, var(--tone,#ffcf5a) 40%, transparent);opacity:1;background:linear-gradient(#0a101efa,#040810fa);border-radius:18px;padding:20px 22px 22px;position:relative}.takeover-card header{flex-direction:column;gap:2px;margin-bottom:14px;display:flex}.takeover-eyebrow{letter-spacing:.2em;text-transform:uppercase;color:#f4f7ff9e;font-size:11px}.takeover-title{letter-spacing:.04em;color:var(--tone,#ffcf5a);font-size:34px;line-height:1}.takeover-sub{color:#f4f7ffb8;font-size:13px}.takeover-stats{grid-template-columns:repeat(4,1fr);gap:8px;margin-bottom:14px;display:grid}.takeover-stats>div{background:#ffffff0a;border-radius:10px;flex-direction:column;padding:8px 10px;display:flex}.takeover-stats b{letter-spacing:.14em;text-transform:uppercase;color:#f4f7ff8f;font-size:10px;font-weight:900}.takeover-stats span{color:#f4f7ff;font-variant-numeric:tabular-nums;font-size:16px;font-weight:800}.takeover-stats .cold{color:#9bdcff}.takeover-stats .hot{color:#ff9a3a}.takeover-actions{flex-wrap:wrap;justify-content:center;gap:8px;display:flex}.takeover-actions.grid-6{grid-template-columns:repeat(auto-fit,minmax(72px,1fr));display:grid}.takeover-actions button{color:#f4f7ff;letter-spacing:.04em;cursor:pointer;background:#ffffff0f;border:1px solid #f4f7ff38;border-radius:12px;min-height:56px;padding:0 16px;font-size:15px;font-weight:800;transition:transform .1s,background .16s,box-shadow .16s}.takeover-actions button:hover{box-shadow:0 4px 14px color-mix(in srgb, var(--tone,#ffcf5a) 30%, transparent);background:#ffffff1f}.takeover-actions button:active{transform:translateY(1px)}.takeover-watching{text-align:center;color:#f4f7ff9e;letter-spacing:.03em;margin:6px 0 0;font-weight:800}.player-detail-overlay{z-index:42;padding:calc(var(--safe-top) + 20px) calc(var(--safe-right) + 20px) calc(var(--safe-bottom) + 20px) calc(var(--safe-left) + 20px);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#02050aa8;place-items:center;display:grid;position:fixed;inset:0}.player-detail-card{border:2px solid var(--seat-color,#ffcf5a);color:#f4f7ff;background:#0a101ef5;border-radius:16px;width:min(96vw,460px);padding:18px;box-shadow:0 20px 50px #0009}.player-detail-card header{grid-template-columns:auto 1fr auto;align-items:center;gap:10px;margin-bottom:12px;display:grid}.player-detail-card header strong{color:var(--seat-color,#ffcf5a);font-size:20px;display:block}.player-detail-card header span{color:#f4f7ffb3;font-size:12px;display:block}.detail-close{color:#f4f7ffdb;cursor:pointer;letter-spacing:.08em;text-transform:uppercase;background:0 0;border:1px solid #f4f7ff47;border-radius:999px;padding:6px 12px;font-size:12px;font-weight:800}.detail-line{color:#f4f7ffd1;margin:0 0 10px;font-size:13px;font-weight:700}.detail-shares{flex-direction:column;gap:4px;max-height:40vh;margin:0;padding:0;list-style:none;display:flex;overflow-y:auto}.detail-shares li{background:#ffffff0a;border-radius:8px;grid-template-columns:1fr auto auto;gap:12px;padding:6px 10px;font-size:13px;font-weight:800;display:grid}.detail-shares li.empty{color:#f4f7ff80;text-align:center;grid-template-columns:1fr;font-style:italic;font-weight:700}.detail-shares .ticker{color:#f4f7ff}.detail-shares .qty{color:#f4f7ffb8}.detail-shares .worth{color:#ffe08a;font-variant-numeric:tabular-nums}.corner-compass{color:#ffe08a;letter-spacing:.06em;text-transform:lowercase;background:#ffcf5a24;border:1px solid #ffcf5a47;border-radius:999px;align-items:center;gap:4px;width:fit-content;margin-top:2px;padding:1px 6px;font-size:10px;font-weight:800;display:inline-flex}.corner-compass .compass-arrow{color:#ffe08a;filter:drop-shadow(0 0 3px #ffcf5a99);font-size:11px;line-height:1}.pacing-overlay{z-index:22;pointer-events:none;flex-direction:column;align-items:center;gap:10px;display:flex;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.pacing-beat{border:2px solid var(--tone,#ffcf5a);color:#f4f7ff;text-align:center;box-shadow:0 12px 34px #0000008c, 0 0 24px var(--tone,#ffcf5a);opacity:1;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#060a14db;border-radius:16px;padding:14px 22px}.beat-eyebrow{letter-spacing:.24em;text-transform:uppercase;color:#f4f7ffb8;font-size:12px;display:block}.beat-title{letter-spacing:.08em;color:var(--tone,#ffcf5a);font-size:32px;font-weight:900;line-height:1.05;display:block}.beat-dice{letter-spacing:.06em;color:#f4f7ff;font-variant-numeric:tabular-nums;font-size:28px;font-weight:800;display:block}.beat-dice em{color:var(--tone,#ffcf5a);margin-left:6px;font-size:42px;font-style:normal}@media (width<=640px){.corner-card{gap:2px 7px;min-width:100px;max-width:150px;padding:6px 8px}.corner-name{font-size:11px}.corner-compass{padding:0 5px;font-size:9px}.corner-piece{width:16px;height:26px}.corner-chips .chip{width:13px;height:13px;font-size:8px}.corner-card.top-left,.corner-card.top-right{top:calc(var(--safe-top) + 48px)}.corner-cash{font-size:15px}.action-tray{width:96vw}.tray-buttons button{min-width:100px;font-size:14px}.event-banner-line{font-size:12px}.takeover-stats{grid-template-columns:repeat(2,1fr)}.takeover-title{font-size:26px}}.app-panels{z-index:14;background:0 0;flex-direction:column;gap:12px;width:330px;max-height:none;padding:0;display:flex;position:absolute;inset:18px 18px 18px auto;overflow:visible}.app-panels>.panel{-webkit-backdrop-filter:blur(14px);color:#e9edf8;background:#080b12d1;border:1px solid #39ff8829;border-radius:14px;flex-direction:column;gap:6px;min-width:0;max-height:none;padding:14px;font-family:Space Grotesk,system-ui,sans-serif;display:flex;overflow:hidden;box-shadow:0 12px 30px #00000059}.app-panels>.panel.log-panel{flex:1;gap:9px;min-height:0}.app-panels>.panel .panel-title{color:#39ff88;letter-spacing:.16em;text-transform:uppercase;background:0 0;border:0;justify-content:space-between;align-items:center;margin:0 0 4px;padding:0;font:700 12px/1.2 Space Grotesk,system-ui,sans-serif;display:flex}.app-panels>.panel .panel-title:after{content:"LIVE";color:#bac5e099;letter-spacing:.12em;align-items:center;gap:6px;padding-left:14px;font:600 10px IBM Plex Mono,ui-monospace,monospace;display:inline-flex;position:relative}.app-panels>.panel .panel-title:before{order:3}.app-panels>.panel.log-panel .panel-title:after,.app-panels>.panel.status-panel .panel-title:after{content:"";padding:0}.app-panels>.panel.market-panel{overflow:hidden}.market-list{scrollbar-width:thin;scrollbar-color:#39ff884d transparent;flex-direction:column;gap:4px;max-height:30vh;display:flex;overflow-y:auto}.market-row{background:#ffffff08;border:0;border-radius:8px;grid-template-columns:10px 44px minmax(0,1fr) auto;align-items:center;gap:10px;padding:6px 10px;font-family:IBM Plex Mono,ui-monospace,monospace;display:grid}.market-row:before{content:"";background:var(--sector-color,#45d8ff);width:8px;height:8px;box-shadow:0 0 6px var(--sector-color,#45d8ff);border-radius:50%}.market-row b{color:#e9edf8;letter-spacing:0;font:600 13px IBM Plex Mono,ui-monospace,monospace}.market-row .price{color:#aab4cd;text-align:right;margin-left:auto;font:500 13px IBM Plex Mono,ui-monospace,monospace}.market-row .delta{text-align:right;min-width:60px;font:600 12px IBM Plex Mono,ui-monospace,monospace}.market-row .delta.up{color:#3dff8f}.market-row .delta.down{color:#ff5c5c}.market-row .flags{display:none}.app-panels>.panel.status-panel{gap:6px}.status-panel p{color:#bac5e0b3;background:#ffffff08;border:0;border-radius:8px;justify-content:space-between;gap:10px;margin:0;padding:6px 10px;font:500 12px IBM Plex Mono,ui-monospace,monospace;display:flex}.status-panel p b{color:#bac5e080;letter-spacing:.12em;text-transform:uppercase;font-size:10px;font-weight:600}.status-panel p span{color:#e9edf8}.log-panel ol{scrollbar-width:thin;scrollbar-color:#39ff884d transparent;flex-direction:column;flex:1;gap:6px;min-height:0;margin:0;padding:0;list-style:none;display:flex;overflow-y:auto}.log-panel li{background:0 0;border:0;grid-template-columns:44px minmax(0,1fr);gap:8px;padding:0;font:500 12px/1.5 IBM Plex Mono,ui-monospace,monospace;display:grid}.log-panel li b{color:#bac5e066;letter-spacing:0;text-transform:uppercase;font-size:11px;font-weight:500}.log-panel li span{color:#cfd6e8;font-weight:500}.log-panel li.tone-warn span{color:#ffb347}.log-panel li.tone-bad span{color:#ff5c5c}.log-panel li.tone-good span{color:#3dff8f}.app-panels>.panel.controls .room-form-panel{gap:8px;display:grid}.app-panels>.panel.controls input{color:#e9edf8;background:#ffffff08;border:1px solid #ffffff1a;border-radius:8px;padding:10px 12px;font:500 13px IBM Plex Mono,ui-monospace,monospace}.app-panels>.panel.controls button{color:#cfd6e8;letter-spacing:.02em;cursor:pointer;background:#ffffff0a;border:1px solid #ffffff24;border-radius:10px;padding:10px 14px;font:600 13px Space Grotesk,system-ui,sans-serif}.app-panels>.panel.controls button.primary{color:#04160a;background:#39ff88;border-color:#0000;font-weight:700;box-shadow:0 0 26px #39ff8866}@media (width<=900px) and (orientation:portrait){:root{--dock-h:34vh;--tray-zone:calc(var(--safe-bottom) + 92px)}.app-panels{top:auto;left:8px;right:8px;bottom:var(--tray-zone);width:auto;max-height:var(--dock-h);overscroll-behavior:contain;-webkit-overflow-scrolling:touch;flex-direction:column;gap:8px;overflow-y:auto}.app-panels>.panel{flex:none;max-height:none;padding:12px;overflow:visible}.app-panels>.panel.log-panel{flex:none}.log-panel ol,.market-list{max-height:none;overflow:visible}.corner-card.bottom-left,.corner-card.bottom-right{bottom:calc(var(--tray-zone) + var(--dock-h) + 6px)}.toast-stack{display:none}}@media (orientation:landscape) and (width<=900px){:root{--dock-w:clamp(232px, 38vw, 330px)}.stage-surface{left:var(--safe-left);right:calc(var(--dock-w) + var(--safe-right) + 22px)}.stage-guide{right:calc(var(--dock-w) + var(--safe-right) + 34px)}.app-panels{top:calc(var(--safe-top) + 10px);bottom:calc(var(--safe-bottom) + 10px);right:calc(var(--safe-right) + 10px);width:var(--dock-w);overscroll-behavior:contain;-webkit-overflow-scrolling:touch;flex-direction:column;gap:10px;max-height:none;left:auto;overflow-y:auto}}.decision-timer{flex-direction:column;align-items:stretch;gap:6px;margin:14px 0 0;display:flex}.decision-timer-bar{background:#f4f7ff24;border-radius:999px;height:6px;position:relative;overflow:hidden}.decision-timer-bar>span{background:var(--tone,#ffcf5a);height:100%;transition:width .48s linear;display:block}.decision-timer.alarm .decision-timer-bar>span{background:#ff5c5c;animation:.9s ease-in-out infinite decision-alarm-pulse}@keyframes decision-alarm-pulse{0%,to{opacity:1}50%{opacity:.55}}.decision-timer-label{text-align:center;letter-spacing:.08em;color:#f4f7ffbf;font:600 12px IBM Plex Mono,ui-monospace,monospace}.decision-timer.alarm .decision-timer-label{color:#ff9aa2}
