:root{--bg: #0e1014;--panel: #15181e;--panel-2: #1b1f27;--panel-3: #21262f;--text: #e6e8ec;--text-muted: #9aa3b0;--text-dim: #6b7480;--accent: #c8a85a;--accent-blue: #5a8fc8;--danger: #c8553a;--good: #5fae6a;--border: #2a2f3a;--border-strong: #3a4250;--radius: 8px;--radius-sm: 5px;--gap: 10px;--font-sans: "Oswald", "Segoe UI", system-ui, -apple-system, sans-serif;--font-mono: "SFMono-Regular", "Consolas", "Liberation Mono", monospace}html,body{margin:0;height:100%;background:var(--bg);color:var(--text);box-sizing:border-box;font-family:var(--font-sans);font-size:15px;line-height:1.4;-webkit-font-smoothing:antialiased}*,*:before,*:after{box-sizing:inherit}body{font-variant-numeric:tabular-nums}h1,h2,h3,h4{margin:0 0 .4em;font-weight:600;letter-spacing:.01em;line-height:1.2}h1{font-size:1.5rem}h2{font-size:1.15rem;color:var(--accent)}h3{font-size:1rem}p{margin:0 0 .5em}ul,ol{margin:0;padding:0;list-style:none}fieldset{border:1px solid var(--border);border-radius:var(--radius-sm);margin:0;padding:8px 10px 10px}legend{padding:0 6px;color:var(--text-muted);font-size:.8rem;text-transform:uppercase;letter-spacing:.06em}input[type=text],input:not([type]){background:var(--panel-3);color:var(--text);border:1px solid var(--border);border-radius:var(--radius-sm);padding:6px 8px;font:inherit;width:100%}input:focus-visible,button:focus-visible,a:focus-visible{outline:2px solid var(--accent-blue);outline-offset:1px}#game-canvas{position:fixed;top:0;right:0;bottom:0;left:0;width:100vw;height:100vh;display:block;z-index:0}#root{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1;pointer-events:none}.app-root{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none}.btn,button{pointer-events:auto;font:inherit;color:var(--text);background:var(--panel-3);border:1px solid var(--border-strong);border-radius:var(--radius-sm);padding:7px 12px;cursor:pointer;transition:background .12s ease,border-color .12s ease,color .12s ease}.btn:hover:not(:disabled),button:hover:not(:disabled){background:#2a313c;border-color:var(--accent-blue)}.btn:active:not(:disabled),button:active:not(:disabled){background:#323a47}.btn:disabled,button:disabled,button[aria-disabled=true]{opacity:.45;cursor:not-allowed}button[aria-pressed=true],.btn-primary{background:var(--accent);border-color:var(--accent);color:#1a1408;font-weight:600}.btn-primary:hover:not(:disabled){background:#d9bb6e;border-color:#d9bb6e}.btn-danger{border-color:var(--danger);color:#f0b3a6}.btn-danger:hover:not(:disabled){background:var(--danger);color:#fff}.status-bar,.hud [data-testid=hud-regions]>[aria-label="Score and status"]{position:fixed;top:0;left:0;pointer-events:auto;display:flex;flex-wrap:wrap;align-items:center;gap:6px 14px;max-width:calc(100vw - clamp(320px,28vw,420px) - 24px);padding:8px 14px;background:#15181eeb!important;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);border:1px solid var(--border);border-top:none;border-left:none;border-radius:0 0 var(--radius) 0!important}.status-bar p,.hud [aria-label="Score and status"] p{margin:0;font-size:.82rem;white-space:nowrap}.status-bar [data-testid=status-turning-point],.hud [aria-label="Score and status"] [data-testid=status-turning-point]{font-weight:600;color:var(--accent)}.status-bar ul,.hud [aria-label="Score and status"] ul{display:flex;gap:12px}.status-bar [data-testid=status-vp] li,.hud [aria-label="Score and status"] [data-testid=status-vp] li{font-weight:600}.status-bar [data-testid=vp-A],.hud [aria-label="Score and status"] [data-testid=vp-A]{color:var(--accent-blue)}.status-bar [data-testid=vp-B],.hud [aria-label="Score and status"] [data-testid=vp-B]{color:var(--danger)}.status-bar [data-testid=status-kill-grade],.hud [aria-label="Score and status"] [data-testid=status-kill-grade]{color:var(--text-muted)}.status-bar [data-testid=status-outcome],.hud [aria-label="Score and status"] [data-testid=status-outcome]{color:var(--accent);font-weight:700}.hud [data-testid=hud-regions]{position:fixed!important;top:0;right:0;bottom:0;width:clamp(320px,28vw,420px);overflow-y:auto;pointer-events:auto;display:flex;flex-direction:column;gap:var(--gap);padding:12px;background:#12151bf7;border-left:1px solid var(--border)}.hud [data-testid=hud-regions]>section{flex:0 0 auto;background:var(--panel);border:1px solid var(--border);border-radius:var(--radius-sm);padding:10px}.hud [aria-label="Action points remaining"]{font-size:.95rem}.hud [data-testid=ap-remaining]{font-weight:700;color:var(--accent)}.hud [data-testid=ap-none]{color:var(--text-dim)}.hud [data-testid=narration-list]{display:flex;flex-direction:column;gap:6px;max-height:30vh;overflow-y:auto;margin-top:8px;padding-right:4px}.hud [data-testid=narration-entry]{display:flex;flex-direction:column;gap:2px;padding:6px 8px;background:var(--panel-2);border-left:2px solid var(--accent-blue);border-radius:var(--radius-sm)}.hud [data-testid=narration-message]{font-size:.88rem}.hud [data-testid=narration-citation]{align-self:flex-start;font-family:var(--font-mono);font-size:.72rem;color:var(--text-dim);background:var(--panel-3);border-radius:3px;padding:1px 5px}.hud [data-testid=narration-live]{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.hud label[for=narration-filter]{display:block;font-size:.78rem;color:var(--text-muted);margin-bottom:4px}.hud [data-testid=action-list],.hud [data-testid=ploy-list],.hud [data-testid=pending-responses]{display:flex;flex-direction:column;gap:6px}.hud [data-testid=action-row],.hud [data-testid=ploy-row]{display:flex;flex-direction:column;gap:2px}.hud [data-testid=action-button],.hud [data-testid=ploy-button]{display:flex;justify-content:space-between;align-items:center;gap:8px;width:100%;text-align:left}.hud [data-testid=action-ap-cost],.hud [data-testid=ploy-cost]{font-family:var(--font-mono);font-size:.78rem;color:var(--accent);white-space:nowrap}.hud [data-testid=action-disabled-reason],.hud [data-testid=ploy-unavailable-reason],.hud [data-testid=ploy-flavor]{font-size:.76rem;color:var(--text-dim)}.hud [data-testid=cp-list]{display:flex;gap:14px;margin-bottom:8px;font-weight:600}.hud [data-testid=pending-prompt]{font-weight:600;color:var(--accent)}.hud [aria-label="Pending decision"]{border-color:var(--accent)!important}.hud [data-testid=operative-cards]{display:flex;flex-direction:column;gap:8px}.operative-card,.hud [data-testid=operative-card]{background:var(--panel-2);border:1px solid var(--border);border-radius:var(--radius-sm);padding:8px 10px;transition:border-color .12s ease,box-shadow .12s ease}.hud [data-testid=operative-card][aria-selected=true]{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent)}.hud [data-testid=operative-select]{background:none;border:none;padding:0 0 6px;width:100%;text-align:left;cursor:pointer}.hud [data-testid=operative-name]{font-weight:700;font-size:1rem;color:var(--text)}.hud [data-testid=operative-card] dl{display:grid;grid-template-columns:repeat(2,auto 1fr);gap:2px 6px;margin:0;font-size:.82rem}.hud [data-testid=operative-card] dt{color:var(--text-muted);text-transform:uppercase;font-size:.68rem;letter-spacing:.04em;align-self:center}.hud [data-testid=operative-card] dd{margin:0;font-weight:600;font-variant-numeric:tabular-nums}.hud [data-testid=operative-wounded],.hud [data-testid=operative-injured]{display:inline-block;margin-top:6px;margin-right:6px;font-size:.7rem;text-transform:uppercase;letter-spacing:.05em;padding:1px 6px;border-radius:3px;background:#c8553a2e;color:var(--danger)}.hud [data-testid=operative-injured]{background:#c8a85a2e;color:var(--accent)}.hud [aria-label="Game controls"]{display:flex;gap:8px}.hud [aria-label="Game controls"] button{flex:1}.game-controls-shell{position:fixed;bottom:12px;left:12px;display:flex;gap:8px;pointer-events:auto}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:10;display:grid;place-items:center;padding:24px;background:#0009;pointer-events:auto}.modal-card{width:100%;max-width:640px;max-height:86vh;overflow:auto;background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);padding:20px;box-shadow:0 12px 40px #00000080}.modal-card fieldset{margin-bottom:12px}.modal-card fieldset>button,.modal-card .crit-op-control button{margin:2px 4px 2px 0}.modal-header{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}.modal-header h1,.modal-header h2{margin:0}.modal-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:16px}.panel-launcher{position:fixed;top:8px;right:calc(clamp(320px,28vw,420px) + 12px);display:flex;gap:8px;pointer-events:auto;z-index:5}.setup-screen [data-testid=ai-side],.setup-screen [data-testid=missing-selections]{color:var(--text-muted);font-size:.85rem}.setup-screen [data-testid=start-button]{margin-top:8px}.game-over [data-testid=game-over-result],.game-over [data-testid=game-over-unknown]{font-size:1.1rem;color:var(--accent);margin:8px 0 16px}[data-testid=violation-list]{color:var(--danger);font-size:.85rem}[data-testid=save-list] li{display:flex;align-items:center;gap:8px;padding:6px 0;border-bottom:1px solid var(--border)}[data-testid=save-list] li span{flex:1}[data-testid=save-load-message]{margin-top:10px;color:var(--good)}
