:root{color-scheme:dark;--bg: #05070a;--panel: #10161f;--panel-border: #263243;--accent: #f2c14e;--text: #e7edf3;--text-dim: #93a3b5;--danger: #c0392b;--ok: #4caf6a}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:var(--bg);color:var(--text);font-family:system-ui,-apple-system,Segoe UI,sans-serif}.app{display:flex;flex-direction:column;height:100vh;height:100dvh;overflow:hidden}.top-bar{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:6px 10px;background:var(--panel);border-bottom:1px solid var(--panel-border);flex-wrap:wrap;font-size:13px}.top-bar-group{display:flex;align-items:center;gap:6px}.speed-button{background:#1b2430;color:var(--text);border:1px solid var(--panel-border);border-radius:6px;padding:4px 8px;font-size:13px;min-width:30px;cursor:pointer}.speed-button.active{background:var(--accent);color:#1a1300;border-color:var(--accent)}.sim-clock{font-variant-numeric:tabular-nums;font-weight:600;white-space:nowrap}.sim-clock-day,.sim-clock-watch{display:inline-block}.sim-clock-watch-short{display:none}.run-ahead{color:var(--text-dim);font-size:12px}.money{font-weight:600}.health-dot{width:9px;height:9px;border-radius:50%;background:var(--text-dim);display:inline-block}.health-dot.ok{background:var(--ok)}.health-dot.error{background:var(--danger)}.hull-bar{position:relative;display:inline-block;width:64px;height:16px;border:1px solid var(--panel-border);border-radius:4px;background:#0a0f15;overflow:hidden;flex-shrink:0}.hull-bar-fill{position:absolute;inset:0 auto 0 0;background:var(--ok);transition:width .3s ease-out}.hull-bar-critical .hull-bar-fill{background:var(--danger)}.hull-bar-text{position:relative;display:block;text-align:center;font-size:11px;line-height:14px;font-weight:700;font-variant-numeric:tabular-nums;color:#fff;text-shadow:0 0 2px #000,0 0 2px #000}.top-bar-alert{background:#3a1214;border-bottom-color:var(--danger)}.sim-clock-alert{display:inline-block;color:#ff6b5e;font-weight:800;letter-spacing:.06em}.ship-lost{z-index:80;gap:12px;padding:0 24px;text-align:center;color:var(--text)}.ship-lost-title{margin:0;font-size:24px;color:var(--danger)}.ship-lost-when{margin:0;font-size:15px;color:var(--text-dim)}.ship-lost-lines{margin:4px 0 0;padding:0;max-width:520px;list-style:none;font-size:13px;line-height:18px;color:var(--text-dim)}.ship-lost-lines li:last-child{color:var(--text)}.ship-lost-new-game{margin-top:12px;padding:10px 28px;border-radius:8px;border:1px solid var(--accent);background:var(--accent);color:#1a1300;font-size:15px;font-weight:600;cursor:pointer}.headline{flex-shrink:0;padding:6px 12px;background:#0c121a;border-bottom:1px solid var(--panel-border);font-size:15px;font-weight:600;line-height:20px;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.headline-alert{background:#3a1214;border-bottom-color:var(--danger)}.headline-shore{font-weight:800;color:#ffd27a}.headline-alert .headline-shore{color:#ff8a7e}.main-area{position:relative;flex:1;min-height:0;display:flex;flex-direction:row}.deck-canvas-container{flex:1;min-width:0;min-height:0;position:relative}.deck-canvas{display:block;touch-action:none}.log-panel{flex:0 0 auto;width:clamp(220px,30vw,340px);min-height:0;position:relative;display:flex;flex-direction:column;background:var(--panel);border-left:1px solid var(--panel-border)}.log{flex:1;min-height:0;list-style:none;margin:0;padding:8px;display:flex;flex-direction:column;gap:6px;overflow-y:auto;overscroll-behavior:contain}.log-toggle{display:none}.log-item{flex:0 0 auto;animation:log-in .3s ease-out}@keyframes log-in{0%{opacity:0;transform:translateY(-4px)}}.log-line{margin:0;background:#1b243099;border-left:3px solid var(--accent);padding:4px 8px;border-radius:4px;font-size:12px;line-height:16px}.log-line-narrative{border-left-color:#6ab0ff}.log-line-trace{border-left-color:var(--text-dim);color:var(--text-dim)}.log-line.log-line-highlight{background:#f2c14e2e;border-left-color:var(--accent);color:var(--text);font-weight:600}.log-card{display:flex;flex-direction:column;gap:2px;width:100%;text-align:left;font:inherit;color:var(--text);background:#151d29;border:1px solid var(--panel-border);border-radius:8px;padding:8px 10px}.log-card summary{display:flex;flex-direction:column;gap:2px;cursor:pointer;list-style:none}.log-card summary::-webkit-details-marker{display:none}.log-card-waiting{border-color:var(--accent);cursor:pointer}.log-card-kicker{font-size:10px;letter-spacing:.06em;text-transform:uppercase;color:var(--text-dim)}.log-card-title{font-size:14px;font-weight:600;color:var(--accent)}.log-card-closed{font-size:11px;color:var(--ok)}.log-card-answer{font-size:12px;color:var(--text)}.log-card-waiting .log-card-answer{color:var(--accent)}.log-card-prose,.log-card-aftermath{margin:4px 0 0;font-size:12px;line-height:1.45}.log-card-aftermath{font-style:italic;color:var(--text-dim)}@media(orientation:portrait){.top-bar{height:var(--portrait-top-bar);flex-wrap:nowrap;padding:0 8px;gap:6px}.top-bar-group{gap:4px}.speed-button{padding:3px 5px;min-width:28px}.new-game-button{padding:3px 6px;margin-left:2px;white-space:nowrap}.hull-bar{width:32px}.sim-clock{display:flex;flex-direction:column;font-size:11px;line-height:13px}.sim-clock-sep{display:none}.headline{height:var(--portrait-headline);padding:4px 12px;font-size:14px;line-height:18px;white-space:normal;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.travel-bar{height:var(--portrait-travel-bar)}.main-area{flex-direction:column}.log-panel{width:auto;height:clamp(var(--portrait-log-min),calc(100vh - var(--portrait-log-reserve)),var(--portrait-log-max));height:clamp(var(--portrait-log-min),calc(100dvh - var(--portrait-log-reserve)),var(--portrait-log-max));border-left:none;border-top:1px solid var(--panel-border)}.log-panel-expanded{height:clamp(var(--portrait-log-expanded-min),var(--portrait-log-expanded),var(--portrait-log-expanded-max))}.log{padding:4px 44px 4px 8px}.log-toggle{display:block;position:absolute;top:4px;right:6px;width:32px;height:26px;padding:0;background:#1b2430;color:var(--text);border:1px solid var(--panel-border);border-radius:6px;font-size:13px;cursor:pointer}}@media(max-width:480px){.run-ahead{display:none}.headline{white-space:normal;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}}@media(orientation:portrait)and (max-width:429px){.sim-clock-watch{display:none}.sim-clock-watch-short{display:inline-block}}.inspector-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000073;display:flex;justify-content:flex-end;z-index:30}.inspector-sheet{background:var(--panel);border-left:1px solid var(--panel-border);width:320px;max-width:100%;height:100%;overflow-y:auto;padding:16px;position:relative}.inspector-handle{display:none}.inspector-close{position:absolute;top:8px;right:8px;background:none;border:none;color:var(--text);font-size:22px;cursor:pointer;line-height:1}.inspector-subtitle{color:var(--text-dim);margin-top:-8px;text-transform:capitalize}.inspector-grid{display:grid;grid-template-columns:auto 1fr;gap:4px 12px;font-size:13px}.inspector-grid dt{color:var(--text-dim)}.inspector-grid dd{margin:0}.inspector-empty{color:var(--text-dim);font-size:13px}.inspector-mood{text-transform:capitalize}.inspector-hurt{color:#ff8a7e}.inspector-mood-low{color:#e8846f}.inspector-mood-high{color:var(--ok)}.inspector-thoughts{margin:0;padding:0;list-style:none}.inspector-thoughts li:before{display:inline-block;width:1em;color:var(--text-dim)}.inspector-thoughts li.thought-down:before{content:"−"}.inspector-thoughts li.thought-up:before{content:"+"}.inspector-people{margin:0;padding:0;list-style:none}.inspector-tag{display:inline-block;padding:0 6px;border:1px solid var(--panel-border);border-radius:8px;font-size:11px;color:var(--text-dim)}.weighing-verdict{margin:0 0 6px;font-size:13px}.inspector-weighing{margin:0 0 8px;padding-left:20px;font-size:13px}.inspector-weighing li{color:var(--text-dim)}.inspector-weighing li.weighing-marked{color:inherit}.weighing-seconds,.weighing-mark{color:var(--text-dim);font-size:11px}.inspector-tag.urgency-immediateSurvival,.inspector-tag.urgency-containment{color:#e8846f;border-color:#e8846f}.inspector-tag.urgency-essentialOperation{color:#f2c787;border-color:#f2c787}.inspector-ruled-out{font-size:13px;margin-bottom:8px}.inspector-ruled-out summary{color:var(--text-dim);cursor:pointer}@media(max-width:640px){.inspector-backdrop{align-items:flex-end}.inspector-sheet{width:100%;height:auto;max-height:70vh;border-left:none;border-top:1px solid var(--panel-border);border-radius:16px 16px 0 0}.inspector-handle{display:block;width:40px;height:4px;border-radius:2px;background:var(--panel-border);margin:0 auto 12px}}.decision-modal{position:fixed;top:0;right:0;bottom:0;left:0;background:#020305eb;display:flex;align-items:center;justify-content:center;z-index:50;padding:16px}.decision-card{max-width:480px;width:100%;display:flex;flex-direction:column;gap:16px;text-align:center}.decision-title{font-size:20px;margin:0;color:var(--accent)}.decision-speaker{font-size:13px;letter-spacing:.04em;text-transform:uppercase;color:var(--text-dim);margin:-8px 0 0}.decision-prose{font-size:16px;line-height:1.5}.decision-options{display:flex;flex-direction:column;gap:12px}.decision-option{padding:18px;font-size:17px;border-radius:12px;border:1px solid var(--panel-border);background:var(--panel);color:var(--text);cursor:pointer}.decision-option:active:not(:disabled),.decision-option.chosen{background:var(--accent);color:#1a1300;border-color:var(--accent)}.decision-option:disabled{cursor:default}.decision-option:disabled:not(.chosen){opacity:.35}.decision-aftermath{display:block;font-size:16px;line-height:1.45;color:var(--text);font-style:italic;padding:4px 8px;animation:aftermath-in .25s ease-out}@keyframes aftermath-in{0%{opacity:0;transform:translateY(4px)}}.decision-inspect{background:none;border:none;color:var(--text-dim);text-decoration:underline;cursor:pointer;font-size:14px;padding:8px}.decision-pill{position:fixed;bottom:16px;left:50%;transform:translate(-50%);background:var(--accent);color:#1a1300;border:none;border-radius:999px;padding:10px 18px;font-weight:600;z-index:40;cursor:pointer;box-shadow:0 4px 16px #00000080}.narrator-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#020305eb;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:20px;z-index:60;font-size:16px;color:var(--text-dim)}.narrator-spinner{width:44px;height:44px;border-radius:50%;border:3px solid var(--panel-border);border-top-color:var(--accent);animation:narrator-spin 1s linear infinite}@keyframes narrator-spin{to{transform:rotate(360deg)}}.new-game-button{background:none;color:var(--text-dim);border:1px solid var(--panel-border);border-radius:6px;padding:3px 8px;font-size:12px;cursor:pointer;margin-left:4px}.travel-bar{position:relative;height:5px;background:#0b1017;border-bottom:1px solid var(--panel-border);overflow:hidden;flex-shrink:0}.travel-bar-fill{height:100%;background:linear-gradient(90deg,#f2c14e59,#f2c14ecc);transition:width .25s linear}.toast{position:fixed;bottom:64px;left:50%;transform:translate(-50%);background:var(--panel);border:1px solid var(--panel-border);color:var(--text-dim);border-radius:8px;padding:8px 14px;font-size:13px;z-index:70;max-width:calc(100vw - 32px);box-shadow:0 4px 16px #00000080}.stale-banner{background:var(--danger);color:#fff;text-align:center;font-size:13px;padding:6px 10px}.narrator-error{color:var(--text);gap:12px;padding:0 24px;text-align:center}.narrator-error-title{margin:0;font-size:22px;color:var(--accent)}.narrator-error-reason{margin:0;font-size:16px}.narrator-error-detail{margin:0;max-width:560px;font-size:12px;color:var(--text-dim);word-break:break-word}.narrator-error-retry{margin-top:12px;padding:10px 28px;border-radius:8px;border:1px solid var(--accent);background:var(--panel);color:var(--accent);font-size:15px;cursor:pointer}.narrator-error-retry:hover{background:var(--accent);color:var(--bg)}
