:root{--ui:system-ui,-apple-system,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;--mono:ui-monospace,SFMono-Regular,"SF Mono",Menlo,Consolas,"Liberation Mono",monospace;--bg:#fbfbf8;--panel:#fff;--ink:#16181c;--ink-soft:#3d424a;--muted:#6f757e;--line:#d8d8d0;--line-soft:#ebebe4;--btn-bg:#fff;--btn-hover:#f1f1ea;--btn-active:#e7e7de;--off-ink:#8a9099;--off-bg:#f6f6f2;--flash:#fdf0b8;--pos:#2c7a4b;--neg:#a63a26;--accent:#996333;--veil:#fbfbf8eb}body.ai{--bg:#050706;--panel:#090c0a;--ink:#a9e7b9;--ink-soft:#86c898;--muted:#5f9370;--line:#17301f;--line-soft:#101c14;--btn-bg:#0a0f0c;--btn-hover:#101a13;--btn-active:#16261b;--off-ink:#55805f;--off-bg:#070a08;--flash:#16331e;--pos:#63d68a;--neg:#d1795f;--accent:#5ec982;--veil:#050706eb}body.p1{--bg:#efece6;--panel:#f8f7f4;--btn-bg:#f8f7f4;--line:#c9c0b1;--line-soft:#ddd8d0;--btn-hover:#eae6df;--btn-active:#e0dbd1;--off-bg:#e9e6df;--flash:#eedba0;--veil:#efece6eb}body.p2{--bg:#edf1f8;--panel:#fafbfd;--btn-bg:#fafbfd;--line:#b6c4d8;--line-soft:#d5dce7;--btn-hover:#e4e9f2;--btn-active:#d3dce9;--off-bg:#e8ecf2;--flash:#bfd7f8;--accent:#205fb6;--veil:#edf1f8eb}body.p3{--bg:#ecf6f4;--panel:#fafcfc;--btn-bg:#fafcfc;--line:#abcec7;--line-soft:#d0e2de;--btn-hover:#e1efec;--btn-active:#d1e6e2;--off-bg:#e6efee;--flash:#b1f1e4;--accent:#1b7e6a;--veil:#ecf6f4eb}body.ai.p5{--bg:#0a0605;--panel:#0f0808;--ink:#ebaaa8;--ink-soft:#d28b89;--muted:#9d5a58;--line:#371615;--line-soft:#210d0d;--btn-bg:#120a0a;--btn-hover:#1e1110;--btn-active:#2b1817;--off-ink:#835554;--off-bg:#0d0807;--flash:#411716;--accent:#dc6e6a;--veil:#0a0605eb}body.ai.p6{--bg:#0a0705;--panel:#0f0b08;--ink:#ebbf98;--ink-soft:#d2a379;--muted:#9b7050;--line:#362112;--line-soft:#22150b;--btn-bg:#130d0a;--btn-hover:#1e1510;--btn-active:#2c1f17;--off-ink:#82654f;--off-bg:#0d0a07;--flash:#3f2612;--accent:#e48f4e;--veil:#0a0705eb}body.ai.p7{--bg:#0a0905;--panel:#0f0d08;--ink:#ecd98d;--ink-soft:#d0bc6c;--muted:#9a894c;--line:#322b10;--line-soft:#211c0a;--btn-bg:#131109;--btn-hover:#1f1b0f;--btn-active:#2c2716;--off-ink:#81754b;--off-bg:#0d0c07;--flash:#403611;--accent:#e9c235;--veil:#0a0905eb}body.ai.p8{--bg:#08060c;--panel:#0c0911;--ink:#c5b3ef;--ink-soft:#aa95da;--muted:#7860a9;--line:#241740;--line-soft:#180f2a;--btn-bg:#0e0a15;--btn-hover:#171122;--btn-active:#201830;--off-ink:#6c5991;--off-bg:#0a080f;--flash:#28174a;--accent:#a487e8;--veil:#08060ceb}*,*:before,*:after{box-sizing:border-box}[hidden]{display:none!important}html,body{margin:0;padding:0}body{background:var(--bg);color:var(--ink);font-family:var(--ui);-webkit-font-smoothing:antialiased;font-size:13px;line-height:1.45}.app{max-width:1440px;margin:0 auto;padding:18px 22px 48px}.topbar{display:flex;border-bottom:1px solid var(--line);align-items:baseline;gap:18px;padding-bottom:10px}.hd-title{font-family:var(--mono);letter-spacing:.22em;font-size:15px;font-weight:600}.hd-phase{color:var(--accent);font-weight:500}.hd-gen,.hd-clock{color:var(--muted);font-family:var(--mono);font-variant-numeric:tabular-nums}.hd-clock{margin-left:auto}.goal{display:flex;border-bottom:1px solid var(--line-soft);align-items:baseline;gap:10px;padding:7px 0 8px;font-size:12px}.goal-tag{letter-spacing:.18em;color:var(--muted);font-size:10px;font-weight:600}.goal-text{color:var(--ink-soft);white-space:nowrap;font-weight:500}.goal-parts{font-family:var(--mono);font-variant-numeric:tabular-nums;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1;font-size:11px}.goal-track{position:relative;background:var(--off-bg);border:1px solid var(--line-soft);flex:0 0 180px;align-self: center;height:4px}.goal-fill{position:absolute;background:var(--accent);width:0%;top:0;bottom:0;left:0}.cols{display:grid;grid-template-columns:250px minmax(0,1fr)330px;align-items: start;gap:26px;padding-top:18px}.col-left,.col-right{position:sticky;top:16px}.click-btn{display:block;font-family:var(--ui);letter-spacing:.02em;color:var(--ink);background:var(--btn-bg);border:1px solid var(--accent);cursor:pointer;user-select:none;width:100%;padding:18px 10px;font-size:15px}.ck-label{display:block}.ck-sub{display:block;font-family:var(--mono);font-variant-numeric:tabular-nums;color:var(--pos);margin-top:4px;font-size:11px}.click-btn:hover{background:var(--btn-hover)}.click-btn:active{background:var(--btn-active)}.resources{border-top:1px solid var(--line-soft);margin-top:18px}.res{display:grid;grid-template-columns:minmax(0,1fr)auto;grid-template-areas:"name value" "rate rate";border-bottom:1px solid var(--line-soft);column-gap:10px;padding:7px 1px 6px}.res-name{grid-area:name;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.res-val{grid-area:value;font-family:var(--mono);font-variant-numeric:tabular-nums;color:var(--ink);font-size:13px}.res-rate{grid-area:rate;font-family:var(--mono);font-variant-numeric:tabular-nums;color:var(--pos);justify-self:end;min-height:15px;font-size:11px}.res-rate.neg{color:var(--neg)}.tip{position:fixed;z-index:60;background:var(--panel);border:1px solid var(--line);font-family:var(--mono);font-variant-numeric:tabular-nums;color:var(--ink-soft);pointer-events:none;max-width:300px;padding:8px 10px;font-size:11px;line-height:1.55;box-shadow:0 4px 18px #0000002e}.tip-title{font-family:var(--ui);color:var(--ink);margin-bottom:4px;font-weight:500}.tip-line.good{color:var(--pos)}.tip-line.costly{color:var(--neg)}.reset-btn{display:block;font-family:var(--ui);color:var(--muted);border:1px solid var(--line-soft);cursor:pointer;background:0 0;margin-top:14px;padding:3px 8px;font-size:11px}.reset-btn:hover{color:var(--neg);border-color:var(--line)}.suggest-btn{display:block;font-family:var(--ui);color:var(--muted);border:1px solid var(--line-soft);cursor:pointer;background:0 0;margin-top:8px;padding:3px 8px;font-size:11px}.suggest-btn:hover{color:var(--ink);border-color:var(--line)}.suggest{position:fixed;z-index:70;display:flex;background:var(--veil);justify-content:center;align-items: center;inset:0}.sug-box{display:flex;background:var(--panel);border:1px solid var(--line);flex-direction:column;gap:8px;width:340px;padding:14px}.sug-title{font-weight:500}.sug-text{resize:vertical;font-family:var(--ui);color:var(--ink);background:var(--bg);border:1px solid var(--line);height:110px;padding:6px;font-size:12px}.sug-contact{color:var(--ink);background:var(--bg);border:1px solid var(--line);padding:5px 6px;font-size:12px}.sug-row{display:flex;align-items: center;gap:8px}.sug-send,.sug-cancel{color:var(--ink);background:var(--btn-bg);border:1px solid var(--line);cursor:pointer;padding:4px 12px}.sug-status{color:var(--muted);font-size:11px}.phase-sec{margin-bottom:26px}.sec-head{display:flex;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-soft);border-bottom:1px solid var(--line);align-items:baseline;gap:8px;margin:0 0 10px;padding-bottom:5px;font-size:11px;font-weight:600}.sec-num{font-family:var(--mono);color:var(--accent)}.group{margin-bottom:14px}.group-head{letter-spacing:.18em;text-transform:uppercase;color:var(--muted);margin:0 0 6px;font-size:10px;font-weight:500}.items{display:grid;grid-template-columns:repeat(auto-fill,minmax(215px,1fr));gap:8px}.item-card{display:flex;align-items:stretch}.item-card>.item{flex:auto;min-width:0}.item-max{font-family:var(--mono);color:var(--muted);background:var(--btn-bg);border:1px solid var(--line);cursor:pointer;border-left:0;flex:0 0 34px;padding:0;font-size:10px}.item-max:hover:not(:disabled){background:var(--btn-hover);color:var(--ink)}.item-max:active:not(:disabled){background:var(--btn-active)}.item-max:disabled{color:var(--off-ink);background:var(--off-bg);border-color:var(--line-soft);cursor:default}.item{display:block;text-align:left;font-family:var(--ui);color:var(--ink);background:var(--btn-bg);border:1px solid var(--line);cursor:pointer;width:100%;padding:8px 10px 7px;font-size:13px}.item:hover:not(:disabled){background:var(--btn-hover)}.item:active:not(:disabled){background:var(--btn-active)}.item:disabled{color:var(--off-ink);background:var(--off-bg);border-color:var(--line-soft);cursor:default}.item-top{display:flex;justify-content:space-between;align-items:baseline;gap:8px}.item-name{font-weight:500}.item-owned{font-family:var(--mono);font-variant-numeric:tabular-nums;color:var(--muted);font-size:12px}.item:disabled .item-owned{color:var(--off-ink)}.item-desc{display:block;color:var(--muted);margin:2px 0 5px;font-size:11px;line-height:1.35}.item:disabled .item-desc{color:var(--off-ink)}.item-effect{display:block;font-family:var(--mono);font-variant-numeric:tabular-nums;color:var(--pos);margin:0 0 3px;font-size:11px}.item-effect .fx-drain{color:var(--neg)}.item-effect .fx-drain:not(:empty):before{content:" · ";color:var(--muted)}.item:disabled .item-effect,.item:disabled .item-effect .fx-drain{color:var(--off-ink)}.item-cost{display:block;font-family:var(--mono);font-variant-numeric:tabular-nums;color:var(--ink-soft);font-size:11px}.item:disabled .item-cost{color:var(--off-ink)}.item-upg{border-style:dashed}.log-head{margin-bottom:8px}.log{overflow-y:auto;max-height:calc(100vh - 110px);padding-right:4px}.line{display:flex;border-bottom:1px solid var(--line-soft);gap:9px;padding:5px 4px;transition:background-color .9s ease-out}.line.fresh{background:var(--flash);transition:none}.line-t{font-family:var(--mono);font-variant-numeric:tabular-nums;color:var(--muted);flex:none;padding-top:1px;font-size:11px}.line-m{color:var(--ink-soft)}body.frozen{overflow:hidden}.ceremony{position:fixed;z-index:50;display:flex;background:var(--veil);justify-content:center;align-items: center;padding:24px;inset:0}.cer-box{overflow-y:auto;background:var(--panel);border:1px solid var(--ink-soft);width:min(560px,100%);max-height:100%;padding:26px 26px 22px}.cer-title{letter-spacing:.16em;text-transform:uppercase;color:var(--ink-soft);margin:0;font-size:11px;font-weight:600}.cer-prompt{color:var(--ink);margin:10px 0 20px;font-size:14px}.cer-smash{display:block;font-family:var(--mono);letter-spacing:.08em;color:var(--ink);background:var(--btn-bg);border:1px solid var(--line);cursor:pointer;overflow:hidden;user-select:none;width:100%;padding:26px 14px;font-size:13px}.cer-smash-text{display:block;transition:transform 60ms linear,opacity 60ms linear}.cer-smash:hover{background:var(--btn-hover)}.cer-smash:active{background:var(--btn-active)}.cer-smash[data-crack="2"]{border-style:dashed}.cer-smash[data-crack="3"]{border-style:dashed;border-color:var(--neg)}.cer-smash[data-crack="4"]{border-style:dotted;border-color:var(--neg);letter-spacing:.22em}.cer-hold{display:block;font-family:var(--mono);letter-spacing:.08em;color:var(--ink);background:var(--btn-bg);border:1px solid var(--ink-soft);cursor:pointer;user-select:none;touch-action:none;width:100%;padding:26px 14px;font-size:13px}.cer-hold:hover{background:var(--btn-hover)}.cer-hold.held{background:var(--btn-active);border-color:var(--pos)}.cer-context{color:var(--ink-soft);margin:0 0 16px;font-size:13px;line-height:1.5}.cer-type{display:flex;flex-wrap:wrap;align-items: center;gap:10px}.cer-phrase{font-family:var(--mono);letter-spacing:.24em;color:var(--ink);font-size:15px}.cer-input{font-family:var(--mono);letter-spacing:.12em;color:var(--ink);background:var(--btn-bg);border:1px solid var(--line);flex:160px;min-width:0;padding:9px 10px;font-size:14px}.cer-input:focus{outline:none;border-color:var(--ink-soft)}.cer-submit{font-family:var(--ui);color:var(--ink);background:var(--btn-bg);border:1px solid var(--ink-soft);cursor:pointer;flex:none;padding:9px 16px;font-size:13px}.cer-submit:hover{background:var(--btn-hover)}.cer-type.shake{animation:cer-shake .2s steps(4,end)2}@keyframes cer-shake{0%{transform:translate(0)}25%{transform:translate(-5px)}75%{transform:translate(5px)}to{transform:translate(0)}}.cer-meter{background:var(--line-soft);height:3px;margin-top:18px}.cer-bar{background:var(--ink-soft);width:0;height:100%}.cer-count{font-family:var(--mono);font-variant-numeric:tabular-nums;color:var(--muted);margin-top:6px;font-size:11px}.cer-stage{display:block}.cer-plate{font-family:var(--mono);letter-spacing:.1em;color:var(--ink-soft);border:1px solid var(--line);padding:12px 14px;font-size:12px}.cer-plate[data-crack="2"]{border-style:dashed}.cer-plate[data-crack="3"]{border-style:dashed;border-color:var(--neg);color:var(--ink)}.cer-plate[data-crack="4"]{border-style:dotted;border-color:var(--neg);letter-spacing:.2em;color:var(--ink)}.cer-score{font-family:var(--mono);font-variant-numeric:tabular-nums;color:var(--ink);margin:18px 0 4px;font-size:46px;line-height:1}.cer-readout{font-family:var(--mono);font-variant-numeric:tabular-nums;letter-spacing:.06em;color:var(--ink-soft);font-size:11px}.cer-strip{font-family:var(--mono);font-variant-numeric:tabular-nums;color:var(--muted);margin-top:6px;font-size:11px}.cer-run,.cer-press{display:block;font-family:var(--mono);letter-spacing:.1em;color:var(--ink);background:var(--btn-bg);border:1px solid var(--ink-soft);cursor:pointer;user-select:none;width:100%;margin-top:18px;padding:18px 14px;font-size:13px}.cer-run:hover,.cer-press:hover{background:var(--btn-hover)}.cer-run:active,.cer-press:active{background:var(--btn-active)}.cer-hold-wide{margin-top:18px}.cer-regions{border-top:1px solid var(--line-soft);margin-top:16px}.cer-region{display:flex;font-family:var(--mono);color:var(--muted);border-bottom:1px solid var(--line-soft);justify-content:space-between;gap:12px;padding:7px 2px;font-size:12px}.cer-region.live{color:var(--ink)}.cer-region.done{color:var(--pos)}.cer-region-state{font-variant-numeric:tabular-nums;white-space:nowrap}.cer-steps{margin:16px 0 18px}.cer-step{display:flex;font-family:var(--mono);color:var(--off-ink);border-bottom:1px solid var(--line-soft);justify-content:space-between;gap:12px;padding:6px 2px;font-size:12px}.cer-step.live{color:var(--ink)}.cer-step.done{color:var(--pos)}.cer-step-state{font-variant-numeric:tabular-nums;white-space:nowrap}.cer-tool{border-top:1px solid var(--line-soft);padding-top:14px}.cer-pips{display:flex;gap:6px;margin-top:12px}.cer-pip{background:var(--off-bg);border:1px solid var(--line);flex:1 1 0;height:8px}.cer-pip.live{border-color:var(--ink-soft)}.cer-pip.done{background:var(--ink-soft);border-color:var(--ink-soft)}.cer-handles{display:flex;gap:10px;margin-top:16px}.cer-handle{font-family:var(--mono);letter-spacing:.1em;color:var(--ink);background:var(--btn-bg);border:1px solid var(--ink-soft);cursor:pointer;user-select:none;flex:1 1 0;padding:22px 10px;font-size:12px}.cer-handle:hover{background:var(--btn-hover)}.cer-handle:active{background:var(--btn-active)}.cer-doc{border-top:1px solid var(--line-soft);margin-top:6px}.cer-doc-row{display:grid;grid-template-columns:62px minmax(0,1fr)124px;text-align:left;font-family:var(--ui);color:var(--off-ink);border:0;border-bottom:1px solid var(--line-soft);cursor:pointer;user-select:none;touch-action:none;background:0 0;align-items:baseline;gap:10px;width:100%;padding:9px 4px;font-size:13px}.cer-doc-row.live{color:var(--ink);background:var(--off-bg)}.cer-doc-row.held{background:var(--btn-active)}.cer-doc-row.done{color:var(--pos)}.cer-doc-by,.cer-doc-state{font-family:var(--mono);letter-spacing:.08em;font-variant-numeric:tabular-nums;font-size:11px}.cer-doc-state{text-align:right}.cer-doc-text{line-height:1.45}.cer-charge{position:relative;background:var(--off-bg);border:1px solid var(--line);height:26px;margin:18px 0 8px}.cer-band{position:absolute;border-left:1px solid var(--pos);border-right:1px solid var(--pos);background:var(--line-soft);top:0;bottom:0}.cer-level{position:relative;background:var(--ink-soft);width:0;height:100%}.cer-level.inband{background:var(--pos)}.cer-poll{border-top:1px solid var(--line-soft);margin:16px 0 10px}.cer-station{display:grid;grid-template-columns:minmax(0,1fr)88px 62px;color:var(--off-ink);border-bottom:1px solid var(--line-soft);align-items: center;gap:10px;padding:7px 2px}.cer-station.arming,.cer-station.live{color:var(--ink)}.cer-station.live{background:var(--off-bg)}.cer-station.done{color:var(--pos)}.cer-station.shake{animation:cer-shake .2s steps(4,end)2}.cer-station-head{display:flex;flex-direction:column;min-width:0}.cer-station-name{font-family:var(--mono);letter-spacing:.12em;font-size:12px}.cer-station-note{color:var(--muted);font-size:11px;line-height:1.35}.cer-station-state{font-family:var(--mono);letter-spacing:.1em;text-align:right;font-variant-numeric:tabular-nums;font-size:11px}.cer-go{font-family:var(--mono);letter-spacing:.14em;color:var(--off-ink);background:var(--btn-bg);border:1px solid var(--line-soft);cursor:pointer;user-select:none;padding:9px 0;font-size:12px}.cer-station.live .cer-go{color:var(--ink);border-color:var(--ink-soft)}.cer-station.live .cer-go:hover{background:var(--btn-hover)}.cer-station.live .cer-go:active{background:var(--btn-active)}.cer-station.done .cer-go{visibility:hidden}.ending{position:fixed;z-index:60;display:flex;background:var(--bg);justify-content:center;align-items: center;padding:24px;inset:0}.end-box{overflow-y:auto;border:1px solid var(--line);background:var(--panel);width:min(620px,100%);max-height:100%;padding:34px 30px 30px}.end-title{letter-spacing:.2em;text-transform:uppercase;color:var(--accent);margin:0;font-size:11px;font-weight:600}.end-stats-head{letter-spacing:.14em;text-transform:uppercase;color:var(--muted);margin:16px 0 6px;font-size:11px}.end-stats{border-top:1px solid var(--line-soft)}.end-stat{display:flex;color:var(--ink-soft);border-bottom:1px solid var(--line-soft);justify-content:space-between;gap:16px;padding:7px 2px;font-size:13px}.end-stat-value{font-family:var(--mono);font-variant-numeric:tabular-nums;color:var(--ink)}.end-lines{margin-top:26px}.end-instruction{font-family:var(--mono);letter-spacing:.04em;color:var(--ink);border-left:2px solid var(--accent);background:var(--off-bg);margin:0 0 22px;padding:12px 14px;font-size:13px}.end-line{color:var(--ink);margin:0 0 14px;font-size:14px;line-height:1.6}.end-line:last-child{color:var(--accent)}.end-reset{font-family:var(--ui);color:var(--ink);background:var(--btn-bg);border:1px solid var(--ink-soft);cursor:pointer;margin-top:22px;padding:11px 22px;font-size:13px}.end-reset:hover{background:var(--btn-hover)}@media (max-width:1080px){.cols{grid-template-columns:220px minmax(0,1fr)}.col-right{grid-column:1/-1;position:static}.log{max-height:320px}}@media (max-width:720px){.cols{grid-template-columns:minmax(0,1fr)}.col-left{position:static}}
