:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#101820;--panel:#141c28;--panel-2:#1b2533;--line:#e8ecf31a;--text:#e7edf5;--muted:#93a0b3;--sand:#e4c48a;--ink:#1b140c;--working:#3f9d6a;--waiting:#d39a2c;--error:#d15b52;--done:#4c89c8;--idle:#8e97a8;font-family:Avenir Next,Segoe UI,Helvetica Neue,sans-serif}*{box-sizing:border-box}html,body{background:var(--bg);height:100%;color:var(--text);margin:0}button,input{font:inherit;color:inherit}button{cursor:pointer}:focus-visible{outline:2px solid var(--sand);outline-offset:2px}#app{grid-template:"header header""stage panel"minmax(0,1fr)"footer footer"/minmax(0,1fr) 340px;height:100dvh;display:grid}#app[hidden],#gate[hidden],[hidden]{display:none!important}header{border-bottom:1px solid var(--line);grid-area:header;align-items:center;gap:16px;padding:12px 16px;display:flex}.brand{min-width:180px}.eyebrow,.brand h1,header h1,#gate h1{margin:0}.eyebrow{color:var(--sand);letter-spacing:.16em;text-transform:uppercase;font-size:11px}.brand h1,#gate h1{letter-spacing:-.03em;font-size:20px;font-weight:650}.flag{color:var(--sand);letter-spacing:.08em;text-transform:uppercase;background:#e4c48a29;border-radius:999px;margin:0;padding:4px 10px;font-size:12px}.counts{color:var(--muted);font-variant-numeric:tabular-nums;flex-wrap:wrap;gap:10px 14px;margin-left:auto;font-size:13px;display:flex}.counts span,.legend li,.state{align-items:center;gap:6px;display:inline-flex}.free{color:var(--text)}.text-button,#reset-view,.times button,#inspector-close{border:1px solid var(--line);color:var(--muted);background:0 0;border-radius:999px;padding:8px 12px}#stage{background:radial-gradient(circle at 30% 20%, #3e5ab814, transparent 36%), var(--bg);grid-area:stage;min-height:280px;position:relative}#viewport{touch-action:none;position:absolute;inset:0}#viewport canvas{display:block}.banner{z-index:4;color:#f6e7cf;background:#5c3a16eb;border-radius:10px;margin:0;padding:10px 12px;position:absolute;top:12px;left:12px;right:12px}.legend{z-index:3;color:var(--muted);background:#101820b8;border-radius:12px;flex-wrap:wrap;gap:8px 12px;margin:0;padding:8px 10px;font-size:12px;list-style:none;display:flex;position:absolute;bottom:12px;left:12px}.webgl-error{z-index:4;color:var(--sand);margin:0;position:absolute;inset:auto 16px 56px}#inspector{z-index:4;border:1px solid var(--line);background:#101620e6;border-radius:14px;width:min(300px,100% - 24px);padding:12px 14px 14px;position:absolute;top:12px;left:12px}#inspector h2{margin:0 28px 4px 0;font-size:18px}#inspector p{color:var(--muted);margin:0 0 6px;font-size:13px}#inspector-line{color:var(--text)}#inspector-close{padding:4px 8px;position:absolute;top:8px;right:8px}#panel{border-left:1px solid var(--line);background:var(--panel);flex-direction:column;grid-area:panel;min-height:0;display:flex}#panel section{flex-direction:column;min-height:0;display:flex}#panel section:first-child{flex:1.2}#panel section:last-of-type{border-top:1px solid var(--line);flex:.8}.section-head{justify-content:space-between;align-items:baseline;padding:12px 14px 8px;display:flex}.section-head h2{letter-spacing:.04em;text-transform:uppercase;margin:0;font-size:14px}.section-head span,.meta{color:var(--muted);font-size:12px}#seats,#activity{padding:0 10px 10px;overflow:auto}.seat{text-align:left;background:0 0;border:1px solid #0000;border-radius:12px;grid-template-columns:14px minmax(0,1fr) auto;align-items:start;gap:10px;width:100%;margin:0 0 6px;padding:8px;display:grid}.seat[aria-pressed=true],.seat:hover{background:var(--panel-2);border-color:var(--line)}.swatch{border-radius:4px;width:14px;height:14px;margin-top:3px}.who{flex-direction:column;gap:2px;min-width:0;display:flex}.name{font-weight:650}.role,.line,.stale{color:var(--muted);font-size:12px}.line,.role{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.is-placeholder,.stale{font-style:italic}.state{color:var(--muted);white-space:nowrap;font-size:12px}.event{border-bottom:1px solid var(--line);grid-template-columns:auto auto minmax(0,1fr);gap:8px;padding:7px 4px;font-size:13px;display:grid}.event time{color:var(--muted);font-variant-numeric:tabular-nums}.event div{flex-direction:column;min-width:0;display:flex}.event span{color:var(--muted)}.empty{color:var(--muted);padding:8px 4px}.meta{margin:0;padding:4px 14px}.meta:last-of-type{padding-bottom:12px}.dot{background:var(--idle);border-radius:50%;flex:none;width:8px;height:8px;display:inline-block}.dot[data-state=working]{background:var(--working)}.dot[data-state=waiting]{background:var(--waiting)}.dot[data-state=error]{background:var(--error)}.dot[data-state=done]{background:var(--done)}.dot[data-state=idle]{background:var(--idle)}.tag{color:#e2e8f09e;text-shadow:0 1px 1px #0000008c;white-space:nowrap;align-items:center;gap:4px;font:500 11px/1 Avenir Next,Segoe UI,sans-serif;display:inline-flex}.tag .dot{width:6px;height:6px}.tag.is-hot{color:#ffffffeb}.tag.is-stale .dot{box-shadow:inset 0 0 0 1.5px var(--idle);background:0 0!important}footer{padding:10px 12px calc(10px + env(safe-area-inset-bottom));border-top:1px solid var(--line);background:#0e1620;flex-wrap:wrap;grid-area:footer;justify-content:center;align-items:center;gap:10px;display:flex}#simulate{background:var(--sand);min-height:44px;color:var(--ink);border:0;border-radius:999px;padding:0 18px;font-weight:700}.times{gap:4px;display:inline-flex}.times button[aria-pressed=true]{color:var(--text);border-color:#e4c48a73}#gate{place-items:center;min-height:100dvh;padding:24px;display:grid}#gate form{border:1px solid var(--line);background:var(--panel);border-radius:18px;gap:12px;width:min(420px,100%);padding:28px;display:grid}#gate p{color:var(--muted);margin:0}#gate label{gap:6px;font-size:14px;display:grid}#gate input{border:1px solid var(--line);background:#0f1620;border-radius:10px;min-height:44px;padding:0 12px}#gate button{background:var(--sand);min-height:44px;color:var(--ink);border:0;border-radius:999px;font-weight:700}#gate-error{color:#f0b4ae;min-height:1.2em}@media (width<=860px){#app{grid-template:"header""stage"minmax(300px,1fr)"panel"minmax(168px,34dvh)"footer"/1fr}header{flex-wrap:wrap;align-items:flex-start;padding:10px 12px}.counts{margin-left:0}#panel{border-left:0;border-top:1px solid var(--line)}.brand h1{font-size:18px}.tag{font-size:10px}.legend{display:none}}@media (prefers-reduced-motion:reduce){*{scroll-behavior:auto}}
