:root{--bg:#11171c;--ink:#0d1216;--surface:#12191fc7;--surface-strong:#12191fe6;--surface-solid:#182129;--blur:blur(14px) saturate(150%);--border:#ffffff17;--border-strong:#ffffff29;--hairline:#ffffff12;--control:#ffffff0f;--control-hover:#ffffff1c;--control-press:#ffffff29;--text:#e9eef2;--text-dim:#9aa8b4;--accent:#4f8dff;--accent-strong:#6ea2ff;--accent-soft:#4f8dff33;--link:#8fbcff;--good:#7fe0a0;--warn:#ffc75f;--bad:#ff8a80;--danger:#b5413a;--danger-border:#d0564e;--gold:#ffd479;--gold-soft:#fff2c4;--gold-bg:#ffd4791f;--gold-border:#ffd47959;--radius:14px;--radius-sm:9px;--shadow:0 10px 30px #00000059, 0 1px 0 #ffffff0a inset;--font:"Inter", system-ui, -apple-system, "Segoe UI", sans-serif}*{box-sizing:border-box}[hidden]{display:none!important}html,body{background:var(--bg);height:100%;font:13.5px/1.45 var(--font);font-feature-settings:"cv11", "ss01";color:var(--text);-webkit-font-smoothing:antialiased;margin:0;overflow:hidden}#game canvas{touch-action:none;-webkit-touch-callout:none;display:block}body{-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent}input,textarea{-webkit-user-select:text;user-select:text}#hud{padding:max(8px, env(safe-area-inset-top)) max(8px, env(safe-area-inset-right)) 8px max(8px, env(safe-area-inset-left));pointer-events:none;touch-action:manipulation;flex-direction:column;gap:8px;display:flex;position:fixed;inset:0}#hud>*,#hud .main>*{pointer-events:auto}#hud .main{pointer-events:none;flex:1;justify-content:space-between;align-items:flex-start;gap:8px;min-height:0;display:flex}button,select,input{font:inherit;color:inherit;background:var(--control);border:1px solid var(--border);border-radius:var(--radius-sm);padding:5px 10px}select,input{background-color:#00000038}button{cursor:pointer;justify-content:center;align-items:center;gap:6px;transition:background-color .12s,border-color .12s,transform 80ms;display:inline-flex}button:hover{background:var(--control-hover)}button:active{background:var(--control-press);transform:scale(.97)}button:disabled{opacity:.45;cursor:default;transform:none}button:focus-visible,select:focus-visible,input:focus-visible{outline:2px solid var(--accent-strong);outline-offset:1px}button.active{background:var(--accent);border-color:var(--accent-strong);color:#fff;box-shadow:0 2px 10px #4f8dff59}button.danger{background:var(--danger);border-color:var(--danger-border)}.icon{fill:none;stroke:currentColor;stroke-width:1.9px;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0;width:18px;height:18px}button.link{color:var(--link);background:0 0;border:none;padding:0;text-decoration:underline}kbd{opacity:.6;margin-left:6px;font-size:10px}.toolbar{background:var(--surface);max-width:100%;-webkit-backdrop-filter:var(--blur);backdrop-filter:var(--blur);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);z-index:3;flex-wrap:wrap;align-self:flex-start;align-items:center;gap:6px;padding:6px;display:flex;position:relative}.toolbar.bar{-webkit-backdrop-filter:none;backdrop-filter:none;box-shadow:none;background:0 0;border:none;flex-wrap:nowrap;justify-content:space-between;align-self:stretch;gap:8px;padding:0}.toolbar.bar.stacked{flex-wrap:wrap;row-gap:6px}.toolbar.bar.stacked .group.build{order:1}.toolbar.bar.stacked .group.company{order:2}.toolbar.bar.stacked:after{content:"";flex-basis:100%;order:3;height:0}.toolbar.bar.stacked .group.time{order:4}.toolbar .group{background:var(--surface);-webkit-backdrop-filter:var(--blur);backdrop-filter:var(--blur);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);align-items:center;gap:6px;padding:6px;display:flex}.toolbar .group>*,.toolbar .group .menu-anchor>button{white-space:nowrap;flex-shrink:0}.toolbar .group.time{border-radius:999px;gap:2px;padding:4px}.toolbar .group.time>button{background:0 0;border-color:#0000;border-radius:999px}.toolbar .group.time>button:hover{background:var(--control-hover)}.toolbar .group.time>button.active{background:var(--accent-soft);box-shadow:none;color:var(--text);border-color:#0000}.toolbar .group.time .clock{padding:0 12px 0 8px}.toolbar .tools{border-radius:calc(var(--radius-sm) + 3px);background:#00000038;gap:2px;padding:3px;display:flex}.toolbar .tools .tool{background:0 0;border-color:#0000}.toolbar .tools .tool:hover{background:var(--control-hover)}.toolbar .tools .tool.active{background:var(--accent);border-color:var(--accent-strong)}.toolbar.tool-options{margin-top:-2px}.toolbar[hidden]{display:none}.toolbar .speed{font-variant-numeric:tabular-nums;min-width:56px}.toolbar .sep{background:var(--border-strong);align-self:stretch;width:1px}.toolbar .clock{font-variant-numeric:tabular-nums;letter-spacing:.01em;min-width:110px;padding:0 4px;font-weight:600}.toolbar .clock.rush{color:var(--warn)}.toolbar .funds{font-variant-numeric:tabular-nums;color:var(--good);border-radius:999px;min-width:90px;font-weight:700}.toolbar .goal{font-variant-numeric:tabular-nums;background:var(--gold-bg);border-color:var(--gold-border);color:var(--gold-soft);border-radius:999px}.hint-bar{background:var(--surface);max-width:calc(100% - 32px);-webkit-backdrop-filter:var(--blur);backdrop-filter:var(--blur);border:1px solid var(--border);color:var(--text);border-radius:999px;padding:6px 12px;font-size:12px;position:absolute;bottom:56px;left:50%;transform:translate(-50%);pointer-events:none!important}.day-summary{background:var(--surface);max-width:calc(100% - 32px);-webkit-backdrop-filter:var(--blur);backdrop-filter:var(--blur);border:1px solid var(--border);color:var(--text);border-radius:999px;padding:6px 12px;font-size:13px;font-weight:600;position:absolute;bottom:96px;left:50%;transform:translate(-50%);pointer-events:none!important}.day-summary .profit{color:var(--good)}.day-summary.loss .profit{color:var(--bad)}.replay-block{pointer-events:auto;z-index:7;position:absolute;inset:0}.replay-bar{z-index:8;background:var(--surface);max-width:calc(100% - 32px);-webkit-backdrop-filter:var(--blur);backdrop-filter:var(--blur);border:1px solid var(--border);color:var(--text);pointer-events:auto;border-radius:999px;align-items:center;gap:10px;padding:6px 6px 6px 14px;font-size:13px;font-weight:600;display:flex;position:absolute;top:16px;left:50%;transform:translate(-50%)}.modal-backdrop{-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);z-index:5;background:#080c1080;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.modal-backdrop[hidden]{display:none}.modal{-webkit-overflow-scrolling:touch;box-sizing:border-box;background:var(--surface-strong);width:min(520px,100% - 32px);max-height:calc(100% - 32px);-webkit-backdrop-filter:var(--blur);backdrop-filter:var(--blur);border:1px solid var(--border-strong);border-radius:calc(var(--radius) + 4px);padding:22px 26px;overflow-y:auto;box-shadow:0 24px 60px #0000008c}.modal h1{letter-spacing:-.01em;color:var(--gold-soft);margin:0 0 12px;font-size:21px;font-weight:700}.modal p{margin:0 0 10px}.modal-actions{justify-content:flex-end;gap:8px;margin-top:16px;display:flex}.modal .cards{grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:10px;margin:12px 0 4px;display:grid}.modal .card{text-align:left;white-space:normal;border-top:3px solid var(--accent);flex-direction:column;justify-content:flex-start;align-items:flex-start;gap:6px;padding:12px;display:flex}.modal .card.perk{border-top-color:var(--good)}.modal .card.policy{border-top-color:var(--accent-strong)}.modal .card.problem{border-top-color:var(--gold)}.modal .card .card-kind{text-transform:uppercase;letter-spacing:.06em;color:var(--text-dim);font-size:11px}.modal .card strong{font-size:15px}.modal .card .card-text{color:var(--text-dim);font-size:13px;line-height:1.35}.modal .card.rare{box-shadow:0 0 0 1px var(--gold-border), 0 0 18px #ffd4792e}.modal .card .card-combo{color:var(--gold-soft);font-size:12px}.modal ol.board{font-variant-numeric:tabular-nums;margin:4px 0 0;padding-left:22px}.guide ul.cards-held{color:var(--text-dim);margin:4px 0 0;padding-left:18px;font-size:13px}.guide ul.cards-held li.combo{color:var(--gold-soft);margin-left:-14px;list-style:none}button.primary{background:var(--accent);border-color:var(--accent-strong);color:#fff;font-weight:600}button.primary:hover{background:var(--accent-strong)}.toasts{z-index:6;pointer-events:none;flex-direction:column;align-items:flex-start;gap:6px;max-width:min(420px,100% - 32px);display:flex;position:absolute;bottom:16px;left:16px}.toast{background:var(--surface-strong);-webkit-backdrop-filter:var(--blur);backdrop-filter:var(--blur);border:1px solid var(--border-strong);border-left:3px solid var(--accent);border-radius:var(--radius-sm);box-shadow:var(--shadow);padding:8px 12px 8px 14px;transition:opacity .3s,transform .3s;animation:.18s ease-out toast-in}.toast.good{border-left-color:var(--good)}.toast.error{border-left-color:var(--bad);background:#461818eb}.toast.leaving{opacity:0;transform:translateY(6px)}@keyframes toast-in{0%{opacity:0;transform:translateY(8px)}}.panel{-webkit-overflow-scrolling:touch;background:var(--surface);width:min(600px,100%);max-height:100%;-webkit-backdrop-filter:var(--blur);backdrop-filter:var(--blur);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);margin-left:auto;padding:14px 16px;position:relative;overflow-y:auto}.panel .close{float:right;border-radius:999px;margin:-4px -6px 0 8px}.panel h2{letter-spacing:-.01em;align-items:center;gap:8px;margin:0 0 4px;font-size:18px;font-weight:700;display:flex}.panel h3{text-transform:uppercase;letter-spacing:.08em;color:var(--text-dim);margin:16px 0 6px;font-size:11px;font-weight:700}.panel .swatch{border-radius:3px;width:14px;height:14px}.panel .status{color:var(--gold);margin-top:4px;font-weight:600}.panel .hint,.panel .meta{opacity:.7;margin:2px 0 6px}.panel ol.milestones{margin:8px 0 0;padding:0;list-style:none}.panel ol.milestones li{border-bottom:1px solid var(--border);padding:5px 0}.panel ol.milestones .hint{margin-left:6px}.panel .stops{flex-direction:column;gap:4px;margin-bottom:6px;display:flex}.panel .stop{border-radius:var(--radius-sm);white-space:nowrap;align-items:center;gap:4px;padding:4px;display:flex}.panel .stop.current,.panel li.current{background:var(--accent-soft)}.panel .stop .idx{text-align:right;opacity:.6;width:16px}.panel .stop select{width:110px}.panel .stop select.freight{width:76px}.panel .stop input[type=number]{width:48px}.panel .stop .deps input{width:110px}.panel .actions{margin-top:12px}.panel .field input{width:220px}.panel .colours{gap:6px;margin:6px 0 10px;display:flex}.panel button.colour{border:2px solid #0000;border-radius:50%;width:22px;height:22px;min-height:0;padding:0}.panel button.colour.active{border-color:#fff}.panel[hidden],.guide[hidden]{display:none}.menu-anchor{position:relative}.menu{z-index:1;background:var(--surface-solid);border:1px solid var(--border-strong);border-radius:var(--radius);flex-direction:column;gap:2px;min-width:180px;padding:6px;display:flex;position:absolute;top:calc(100% + 8px);right:0;box-shadow:0 16px 40px #00000080}.menu[hidden]{display:none}.menu button{text-align:left;background:0 0;border-color:#0000;justify-content:flex-start}.menu button:hover{background:var(--control-hover)}.modal{max-height:calc(100% - 32px);overflow-y:auto}.modal details{margin:0 0 8px}.modal summary{cursor:pointer;color:var(--link);margin-bottom:6px}.guide{-webkit-overflow-scrolling:touch;background:var(--surface);width:300px;max-width:100%;max-height:100%;-webkit-backdrop-filter:var(--blur);backdrop-filter:var(--blur);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:10px 12px;overflow-y:auto}.guide-head{color:var(--gold-soft);align-items:center;gap:8px;display:flex}.guide-head.sub{margin-top:10px}.modal .targets ul{margin:4px 0 0;padding-left:0;list-style:none}.modal .targets li.done{color:var(--good)}.modal .targets li.missed{color:var(--bad)}.guide .guide-head.toggle{box-sizing:content-box;border-radius:var(--radius-sm);text-align:left;width:100%;min-height:0;font:inherit;cursor:pointer;background:0 0;border:none;margin:-4px -6px 2px;padding:4px 6px}.guide .guide-head.toggle:hover{background:var(--control-hover)}.guide .guide-head.toggle .chevron{color:var(--text-dim);margin-left:auto;padding-left:8px;font-size:18px;line-height:1}.guide .guide-progress{color:var(--text-dim);white-space:nowrap;font-size:13px;font-weight:600}.guide.folded{align-self:flex-start;width:auto;padding:6px 10px}.guide.folded .guide-head.toggle{gap:10px;width:auto;margin:-2px -4px}.guide .steps{flex-direction:column;gap:4px;margin:8px 0 0;padding:0;list-style:none;display:flex}.guide .steps>li{border-radius:var(--radius-sm);padding:6px 8px 6px 28px;position:relative}.guide .steps>li:before{text-align:center;width:16px;position:absolute;top:4px;left:6px}.guide .steps>li.done:before{content:"✓";color:var(--good)}.guide .steps>li.done{opacity:.65}.guide .steps>li.todo:before{content:"○";opacity:.5}.guide .steps>li.todo{opacity:.55}.guide .steps>li.current:before{content:"▶";color:var(--gold)}.guide .steps>li.current{background:var(--accent-soft);border:1px solid var(--accent)}.guide .steps>li.current .title{font-weight:600}.guide .steps>li.target:before{content:"○";color:var(--text-dim)}.guide .steps>li.target.done:before{content:"✓";color:var(--good)}.guide .steps>li.target .title{font-weight:600}.guide .steps>li.target p{color:var(--text-dim);opacity:1}.guide .steps>li.won{opacity:1;color:var(--good)}.guide .steps>li.lost:before{content:"✗";color:var(--warn)}.guide .steps>li.bonus .title{font-style:italic}.guide .steps>li.request:before{content:"✉";color:var(--gold)}.guide .steps>li.request .title{text-align:left;font-weight:600}.guide .steps>li.request .request-terms{color:var(--text-dim);opacity:1}.guide button.accept,.panel button.accept{padding:3px 10px;font-size:12px}.guide .steps>li.happening:before{content:"★";color:var(--gold)}.guide .steps>li.happening p{color:var(--text-dim);opacity:1}.guide-note{color:var(--text-dim);margin:6px 0 0;font-size:12px}.guide .steps p{opacity:.85;margin:4px 0 6px}.guide .steps .train-status{color:var(--gold);opacity:1}.guide .steps>li.current>button.link{margin-top:8px;display:block}.guide .towns{flex-wrap:wrap;gap:4px 12px;margin:6px 0 0;padding:0;list-style:none;display:flex}.guide .towns li:before{margin-right:4px}.guide .towns li.done:before{content:"✓";color:var(--good)}.guide .towns li.todo:before{content:"○";opacity:.5}.guide .steps>li.done .towns,.guide .steps>li.todo .towns{opacity:1}.guide-foot{margin-top:8px;font-size:12px}@media (pointer:coarse){body{font-size:15px}button,select,input{min-height:40px;padding:8px 10px}.toolbar{gap:4px}.toolbar .group>button,.toolbar .menu-anchor>button{padding:8px 10px;font-size:14px}.toolbar .undo .label{display:none}.toolbar .tools .tool{flex-direction:column;gap:1px;min-width:58px;padding:4px 6px;font-size:11px;font-weight:600}.toolbar .tools .tool .icon{width:20px;height:20px}.toolbar .clock,.toolbar .funds{min-width:0}button.link{min-height:32px;padding:4px 0}kbd{display:none}.panel .stop{white-space:normal;flex-wrap:wrap}.panel .stop input[type=number]{width:64px}.hint-bar{font-size:14px;bottom:64px}}@media (width<=900px){#hud .main{flex-direction:column;align-items:stretch}.guide{flex-shrink:0;width:100%;max-height:40%}.panel{flex:0 auto;width:100%;min-height:0;max-height:60%}.panel-open .guide .steps,.panel-open .guide .guide-foot{display:none}.panel.wide{max-height:100%}}.coach{z-index:10;position:fixed;inset:0}.coach[hidden],.coach-hint[hidden],.coach-ring[hidden]{display:none}.coach-spot{outline:2px solid var(--gold);outline-offset:0;pointer-events:none;border-radius:8px;transition:left .25s,top .25s,width .25s,height .25s;position:fixed;box-shadow:0 0 0 200vmax #080c1099}.coach-spot.round{border-radius:50%}.coach-card{background:var(--surface-solid);border:1px solid var(--gold);border-radius:var(--radius);width:min(340px,100% - 16px);padding:16px 18px 14px;position:fixed;box-shadow:0 16px 44px #0000008c}.coach-card.centred{transform:translate(-50%,-50%);top:50%!important;left:50%!important}.coach-card.centred .coach-arrow{display:none}.coach-card h2{color:var(--gold-soft);margin:0 0 6px;font-size:17px}.coach-card p{margin:0 0 12px}.coach-actions{justify-content:flex-end;align-items:center;gap:8px;display:flex}.coach-count{opacity:.6;margin-right:auto;font-size:12px}.coach-arrow{background:inherit;border:inherit;width:12px;height:12px;margin-left:-6px;position:absolute;transform:rotate(45deg)}.below>.coach-arrow{border-bottom:none;border-right:none;top:-7px}.above>.coach-arrow{border-top:none;border-left:none;bottom:-7px}#hud .coach-hint,#hud .coach-ring{pointer-events:none}.coach-hint{z-index:5;background:var(--gold);max-width:min(260px,100% - 16px);color:var(--ink);border:1px solid var(--gold);border-radius:8px;padding:6px 10px;font-weight:600;animation:1.6s ease-in-out infinite coach-bob;position:fixed;box-shadow:0 6px 20px #0006}.coach-ring{z-index:5;border:3px solid var(--gold);border-radius:8px;animation:1.6s ease-out infinite coach-pulse;position:fixed}.coach-ring.round{border-radius:50%}@keyframes coach-pulse{0%{box-shadow:0 0 #ffd479b3}to{box-shadow:0 0 0 14px #ffd47900}}@keyframes coach-bob{0%,to{translate:0}50%{translate:0 3px}}@media (prefers-reduced-motion:reduce){.coach-hint,.coach-ring{animation:none}.coach-spot{transition:none}}.toolbar .funds.red{color:var(--bad)}.panel table.ledger{border-collapse:collapse;font-variant-numeric:tabular-nums;width:100%;margin:8px 0}.panel table.ledger th{text-align:right;text-transform:uppercase;letter-spacing:.06em;color:var(--text-dim);padding:2px 6px;font-size:11px;font-weight:700}.panel table.ledger td{border-top:1px solid var(--hairline);padding:3px 6px}.panel table.ledger td+td{text-align:right}.panel table.ledger td.neg{color:var(--bad)}.panel table.ledger tr.total td{border-top:2px solid var(--border-strong);font-weight:700}.panel table.ledger tr.aside td{opacity:.65}.panel .status.service-good{color:var(--good)}.panel .status.service-fair{color:var(--gold)}.panel .status.service-poor{color:var(--bad)}.panel .status.service-none{color:var(--text-dim)}.panel .actions{flex-wrap:wrap;gap:8px;display:flex}.modal .field-row{flex-wrap:wrap;align-items:center;gap:8px;margin:10px 0 4px;display:flex}.modal .field-row[hidden]{display:none}.modal .field-row>label{width:56px;font-weight:600}.segmented{flex-wrap:wrap;gap:4px;display:inline-flex}.modal input.seed{width:120px}.modal input.money{width:170px}.modal input.bad{border-color:var(--bad)}.modal .hint{opacity:.75;font-size:.95em}.scenario-link{word-break:break-all;color:var(--link)}.panel.wide{width:min(1100px,100%);margin-inline:auto}.sheet-open .guide,.panel-open .map-corner{display:none}.panel table.lines{border-collapse:collapse;font-variant-numeric:tabular-nums;width:100%;margin:8px 0}.panel table.lines th{text-align:left;text-transform:uppercase;letter-spacing:.06em;color:var(--text-dim);padding:2px 6px;font-size:11px;font-weight:700}.panel table.lines td{border-top:1px solid var(--hairline);vertical-align:top;padding:6px}.panel table.lines td.neg{color:var(--bad)}.panel .line-row{cursor:pointer}.panel .lines-bar{flex-wrap:wrap;align-items:center;gap:8px 16px;margin:8px 0 4px;display:flex}.panel .chips{flex-wrap:wrap;gap:6px;display:flex}.panel .chip{border:1px solid var(--hairline);border-radius:999px;padding:4px 10px;font-size:13px}.panel .chip.good{color:var(--good)}.panel .chip.warn{color:var(--gold)}.panel .chip.bad{color:var(--bad)}.panel .chip.idle{color:var(--text-dim)}.panel .chip.active{background:color-mix(in srgb, currentColor 18%, transparent);border-color:currentColor}.panel .chip.all.active{color:var(--text)}.panel table.lines th .sort{all:unset;cursor:pointer}.panel table.lines th.sorted .sort{color:var(--text)}.panel table.lines th.sorted .sort:after{content:" ▾"}.panel table.lines .section-row td{border-top:none;padding:14px 6px 6px}.panel table.lines .section-toggle{all:unset;cursor:pointer;font-size:14px;font-weight:700}.panel table.lines .section-total{color:var(--text-dim);margin-left:12px;font-size:13px}.panel table.lines .section-total.neg{color:var(--bad)}.panel table.lines td{white-space:nowrap}.panel table.lines td:first-child{white-space:normal;width:100%}.panel .tag{background:color-mix(in srgb, currentColor 16%, transparent);border-radius:999px;padding:2px 8px;font-size:12px;font-weight:600;display:inline-block}.panel .tag.good{color:var(--good)}.panel .tag.warn{color:var(--gold)}.panel .tag.bad{color:var(--bad)}.panel .tag.idle{color:var(--text-dim)}.panel .line-row:hover{background:var(--accent-soft)}.panel table.lines .route{opacity:.65;font-size:.85em}.panel table.lines .swatch{vertical-align:-2px;display:inline-block}.health.good,.health-line.good{color:var(--good)}.health.warn,.health-line.warn{color:var(--gold)}.health.bad,.health-line.bad{color:var(--bad)}.health.idle,.health-line.idle{color:var(--text-dim)}.panel .health-line{margin:4px 0 0;font-weight:700}.panel .stop-tallies{opacity:.85;margin:4px 0 0;padding-left:18px}.menu{min-width:220px}.menu-heading{letter-spacing:.06em;text-transform:uppercase;color:var(--text-dim);margin:8px 10px 2px;font-size:11px;font-weight:600}.menu-heading:before{content:"";background:var(--hairline);height:1px;margin:0 -10px 8px;display:block}.menu-row{gap:4px;display:flex}.menu-row>button:first-child{flex:1}.menu .menu-row button.small{background:var(--control);border-color:var(--border);justify-content:center;padding-inline:10px;font-size:12px}.menu button.switch-row{justify-content:space-between;gap:16px}.switch{background:var(--control-press);border-radius:999px;flex-shrink:0;width:34px;height:20px;transition:background .15s;position:relative}.switch:after{content:"";background:#fff;border-radius:50%;width:16px;height:16px;transition:transform .15s;position:absolute;top:2px;left:2px;box-shadow:0 1px 3px #0006}[aria-checked=true]>.switch{background:var(--accent)}[aria-checked=true]>.switch:after{transform:translate(14px)}.panel h2 .chip{margin-left:auto}.chip{white-space:nowrap;background:var(--control);border:1px solid var(--border);color:var(--text-dim);border-radius:999px;align-items:center;padding:2px 9px;font-size:11.5px;font-weight:600;display:inline-flex}.chip.good{color:var(--good);background:#7fe0a01f;border-color:#7fe0a04d}.chip.warn{color:var(--gold);background:var(--gold-bg);border-color:var(--gold-border)}.chip.bad{color:var(--bad);background:#ff8a801f;border-color:#ff8a804d}.tabs{background:var(--control);border:1px solid var(--border);border-radius:var(--radius-sm);gap:2px;margin:0 0 12px;padding:3px;display:flex}.tabs .tab{color:var(--text-dim);white-space:nowrap;background:0 0;border-color:#0000;flex:1;justify-content:center;padding:5px 8px;font-size:12.5px}.tabs .tab:hover{color:var(--text)}.tabs .tab.active{background:var(--control-press);border-color:var(--border-strong);color:var(--text);font-weight:600}.tiles{grid-template-columns:repeat(2,1fr);gap:6px;margin:10px 0;display:grid}.tile{background:var(--control);border:1px solid var(--border);border-radius:var(--radius-sm);padding:8px 10px}.tile .label{letter-spacing:.04em;text-transform:uppercase;color:var(--text-dim);font-size:11px;font-weight:600}.tile .value{font-variant-numeric:tabular-nums;font-size:18px;font-weight:600;line-height:1.3}.tile .value.good{color:var(--good)}.tile .value.bad{color:var(--bad)}.tile .sub{color:var(--text-dim);font-size:11px}.tabs.small .tab{padding:3px 6px;font-size:12px}.chart{margin:4px 0 8px}.chart-svg{touch-action:none;cursor:crosshair;width:100%;height:auto;display:block}.chart-svg .grid{stroke:var(--hairline);stroke-width:1px}.chart-svg .zero{stroke:var(--border-strong);stroke-width:1.5px}.chart-svg .tick{fill:var(--text-dim);font:13px var(--font);font-variant-numeric:tabular-nums}.chart-svg .series{fill:none;stroke-width:2.5px;stroke-linejoin:round;stroke-linecap:round}.chart-svg .guide{stroke:var(--text-dim);stroke-width:1px;stroke-dasharray:3 3}.chart-readout{font-variant-numeric:tabular-nums;flex-wrap:wrap;align-content:flex-start;gap:4px 12px;min-height:2.9em;font-size:12.5px;display:flex}.chart-readout b{flex-basis:100%;font-weight:600}.chart-readout span{white-space:nowrap;align-items:center;gap:5px;display:inline-flex}.chart-readout i{border-radius:50%;width:8px;height:8px}.chart-foot{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.chart-foot .chart-note{color:var(--text-dim);flex:200px;font-size:12px}.chart-foot .tabs{margin:0}.modal .continue{border:1px solid var(--accent-strong);border-radius:var(--radius-sm);background:var(--accent-soft);align-items:center;gap:12px;margin:0 0 4px;padding:12px 14px;display:flex}.modal .continue>div{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.modal .continue .hint{font-size:13px}.modal .continue button{flex-shrink:0;padding-inline:20px}.modal h3{text-transform:uppercase;letter-spacing:.08em;color:var(--text-dim);margin:16px 0 8px;font-size:11px;font-weight:700}.levels{flex-direction:column;gap:4px;margin:0 0 12px;padding:0;list-style:none;display:flex}.levels button{text-align:left;justify-content:flex-start;align-items:center;gap:12px;width:100%;padding:8px 12px;display:flex}.levels button.active{border-color:var(--accent);background:var(--accent-soft)}.levels button:disabled{opacity:.45}.levels .level-num{background:var(--control-press);border-radius:50%;flex:0 0 26px;place-items:center;height:26px;font-size:13px;font-weight:700;display:grid}.levels .level-text{white-space:normal;flex-direction:column;flex:1;display:flex}.levels .level-text span{color:var(--text-dim);font-size:12px}.levels .level-stars,.modal .stars{color:var(--gold);letter-spacing:2px;white-space:nowrap}.modal .stars{text-align:center;margin:4px 0;font-size:30px}.modal .star-list{color:var(--text-dim);margin:0 0 12px;padding:0;list-style:none}.modal .star-list li.met{color:var(--text)}.map-corner{z-index:2;pointer-events:none;flex-direction:column;align-items:flex-end;gap:8px;display:flex;position:absolute;bottom:16px;right:16px}.map-corner>*{pointer-events:auto}.turn-row{gap:6px;display:flex}button.turn{background:var(--surface);width:40px;height:40px;-webkit-backdrop-filter:var(--blur);backdrop-filter:var(--blur);border:1px solid var(--border);box-shadow:var(--shadow);border-radius:50%;justify-content:center;padding:0;font-size:20px}.overview{background:var(--surface);-webkit-backdrop-filter:var(--blur);backdrop-filter:var(--blur);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);flex-direction:column;gap:6px;padding:8px;display:flex}.overview[hidden]{display:none}.overview canvas{touch-action:none;cursor:pointer;display:block}.overview-row{gap:6px;display:flex}.overview-row select{flex:1;min-width:0}.overview-row button{padding:4px 10px;font-size:12px}
