:root{--court:#0b1410;--court-deep:#071009;--panel:#12211a;--panel-soft:#16291f;--line:#23402f;--chalk:#e8f5e9;--chalk-dim:#9db8a6;--grass:#4ade80;--grass-deep:#1b7a4b;--shuttle:#f5f7f2;--warn:#f0a35e;--fail:#ef7d7d;--china-red:#d8232a;--china-gold:#e7bf61}*{box-sizing:border-box}html,body{background:var(--court);color:var(--chalk);-webkit-font-smoothing:antialiased;margin:0;padding:0;font-family:PingFang SC,Hiragino Sans GB,Microsoft YaHei,system-ui,sans-serif;font-size:15px;line-height:1.6}body{background-image:linear-gradient(#4ade800f,#0000 40%),repeating-linear-gradient(90deg,#e8f5e909 0 1px,#0000 1px 96px);min-height:100vh}#app{max-width:1040px;margin:0 auto;padding:1.25rem 1rem 3rem}.screen{flex-direction:column;gap:.9rem;display:flex}h1,h2,h3{margin:0;line-height:1.25}h1{letter-spacing:.02em;font-size:1.5rem}h2{letter-spacing:.14em;text-transform:uppercase;color:var(--chalk-dim);margin-bottom:.6rem;font-size:.82rem}h3{color:var(--grass);font-size:.9rem}.identity{border:1px solid var(--line);border-left:3px solid var(--china-red);background:linear-gradient(135deg, var(--panel-soft), var(--court-deep));border-radius:14px;justify-content:space-between;align-items:flex-start;gap:1rem;padding:1rem 1.1rem;display:flex}.identity h1{color:var(--shuttle)}.identity-tags{flex-wrap:wrap;gap:.4rem;margin:.45rem 0 0;padding:0;display:flex}.identity-tags span{border:1px solid var(--line);color:var(--chalk-dim);background:#4ade8012;border-radius:999px;padding:.1rem .5rem;font-size:.78rem}.identity-tags .ladder{border-color:var(--china-gold);color:var(--china-gold);background:#e7bf6117}.identity-seed{color:var(--chalk-dim);font-variant-numeric:tabular-nums;white-space:nowrap;margin:0;font-size:.75rem}.panel{border:1px solid var(--line);background:var(--panel);border-radius:14px;padding:.95rem 1.1rem 1.1rem}.actions{gap:.6rem;display:flex}button{font:inherit;cursor:pointer;border:1px solid #0000;border-radius:12px;padding:.7rem 1.1rem;transition:transform 80ms,background .15s}button:active{transform:translateY(1px)}button.primary{background:var(--grass);color:#062012;flex:1;font-weight:650}button.primary:hover{background:#6ee79a}button.ghost{border-color:var(--line);color:var(--chalk-dim);background:0 0}button.ghost:hover{border-color:var(--grass-deep);color:var(--chalk)}.attr-group+.attr-group{margin-top:.9rem}.attr-list,.life-grid{gap:.35rem 1rem;margin-top:.5rem;display:grid}.attr{grid-template-columns:6.2rem 1fr 2.2rem;align-items:center;gap:.55rem;display:grid}.attr-name{color:var(--chalk-dim);font-size:.85rem}.attr-bar{background:#e8f5e917;border-radius:999px;height:6px;overflow:hidden}.attr-bar i{background:linear-gradient(90deg, var(--grass-deep), var(--grass));border-radius:999px;height:100%;display:block}.attr-value{text-align:right;font-variant-numeric:tabular-nums;font-weight:600}.training-targets{font-variant-numeric:tabular-nums}.attr-flag{border:1px solid var(--grass-deep);color:var(--grass-deep);border-radius:4px;margin-left:.3rem;padding:0 .28rem;font-size:.66rem;font-style:normal;line-height:1.3}.attr.is-capped .attr-bar i{background:linear-gradient(90deg, var(--grass-deep), var(--china-gold))}.life-grid{grid-template-columns:repeat(auto-fill,minmax(8.5rem,1fr))}.life{color:var(--chalk-dim);background:#e8f5e90a;border-radius:8px;justify-content:space-between;gap:.5rem;padding:.3rem .55rem;font-size:.85rem;display:flex}.life b{color:var(--chalk);font-variant-numeric:tabular-nums}.check{border-left:3px solid var(--grass);background:#4ade8012;border-radius:8px;padding:.6rem .75rem}.check+.check{margin-top:.5rem}.check.is-fail{border-left-color:var(--fail);background:#ef7d7d14}.check header{flex-wrap:wrap;align-items:baseline;gap:.5rem;display:flex}.check-label{font-weight:600}.check-dice{color:var(--chalk-dim);font-variant-numeric:tabular-nums;font-size:.85rem}.check-result{color:var(--grass);margin-left:auto;font-size:.8rem}.check.is-fail .check-result{color:var(--fail)}.check-sources{flex-wrap:wrap;gap:.4rem;margin:.45rem 0 0;padding:0;list-style:none;display:flex}.check-sources li{border:1px dashed var(--line);color:var(--chalk-dim);border-radius:999px;padding:.05rem .5rem;font-size:.78rem}.check-sources b{color:var(--chalk);font-variant-numeric:tabular-nums}.news{gap:.45rem;margin:0;padding:0;list-style:none;display:grid}.news li{background:#e8f5e90a;border-radius:8px;padding:.5rem .7rem;font-size:.9rem}.news-when{color:var(--grass);letter-spacing:.04em;font-size:.75rem;display:block}.hint{color:var(--chalk-dim);margin:0;font-size:.88rem}.field-notes{color:var(--chalk-dim);gap:.25rem;margin:0;padding:0;font-size:.78rem;line-height:1.5;list-style:none;display:grid}.notice{color:var(--warn);background:#f0a35e1a;border:1px solid #f0a35e66;border-radius:10px;margin:0;padding:.6rem .8rem;font-size:.85rem}.creation{gap:.9rem;display:grid}.field{border:0;gap:.4rem;margin:0;padding:0;display:grid}.field>span{color:var(--chalk-dim);font-size:.85rem}.field input[type=text],.field input[type=number]{border:1px solid var(--line);background:var(--court-deep);width:100%;color:var(--chalk);font:inherit;border-radius:10px;padding:.6rem .75rem}.name-row{grid-template-columns:1fr auto;align-items:center;gap:.5rem;display:grid}.field input:focus-visible,button:focus-visible{outline:2px solid var(--grass);outline-offset:2px}.choice{gap:.6rem;display:flex}.choice label{border:1px solid var(--line);background:var(--court-deep);cursor:pointer;border-radius:10px;flex:1;justify-content:center;align-items:center;gap:.4rem;padding:.55rem;display:flex}.choice label:has(input:checked){border-color:var(--grass);color:var(--grass)}@media (width>=40rem){.attr-list{grid-template-columns:1fr 1fr}}.identity-side{flex-direction:column;align-items:flex-end;gap:.4rem;display:flex}button.icon{border-radius:999px;padding:.3rem .6rem;font-size:.78rem}button:disabled{opacity:.45;cursor:not-allowed}.field select{border:1px solid var(--line);background:var(--court-deep);width:100%;color:var(--chalk);font:inherit;border-radius:10px;padding:.6rem .75rem}.chips{gap:.5rem;display:flex}.chip{border:1px solid var(--line);background:var(--court-deep);cursor:pointer;border-radius:10px;flex:1;justify-content:center;align-items:center;padding:.55rem;display:flex;position:relative}.chip input,.card input{opacity:0;pointer-events:none;position:absolute}:is(.chip:has(input:checked),.card:has(input:checked)){border-color:var(--grass);color:var(--grass);background:#4ade801a}.cards{gap:.5rem;display:grid}.card{border:1px solid var(--line);background:var(--court-deep);cursor:pointer;border-radius:10px;gap:.15rem;padding:.6rem .75rem;display:grid;position:relative}.card-title{font-weight:600}.card-note{color:var(--chalk-dim);font-size:.82rem}.card-cost{color:var(--warn);font-size:.78rem}.card-meta{color:var(--grass);font-variant-numeric:tabular-nums;font-size:.75rem}.ovr{flex-wrap:wrap;align-items:center;gap:1rem;display:flex}.ovr-total{align-items:baseline;gap:.4rem;display:flex}.ovr-number{color:var(--grass);font-variant-numeric:tabular-nums;font-size:2.6rem;font-weight:700;line-height:1}.ovr-label{color:var(--chalk-dim);font-size:.8rem}.ovr-parts{flex-wrap:wrap;flex:1;gap:.35rem;min-width:12rem;margin:0;padding:0;list-style:none;display:flex}.ovr-parts li{border:1px solid var(--line);color:var(--chalk-dim);font-variant-numeric:tabular-nums;border-radius:999px;padding:.15rem .55rem;font-size:.78rem}.ovr-parts b{color:var(--chalk)}.talents{gap:.6rem;display:grid}.talent{border:1px solid var(--line);background:var(--court-deep);border-left-width:3px;border-radius:10px;gap:.45rem;padding:.75rem .85rem;display:grid}.talent header{align-items:baseline;gap:.5rem;display:flex}.talent-tier{border:1px solid;border-radius:999px;padding:.05rem .45rem;font-size:.72rem}.talent.tier-common{border-left-color:var(--chalk-dim)}.talent.tier-excellent{border-left-color:#7fb2f0}.talent.tier-excellent .talent-tier{color:#7fb2f0}.talent.tier-legendary{border-left-color:var(--china-gold)}.talent.tier-legendary .talent-tier{color:var(--china-gold)}.talent.tier-doubleEdged{border-left-color:var(--fail)}.talent.tier-doubleEdged .talent-tier{color:var(--fail)}.talent.tier-common .talent-tier{color:var(--chalk-dim)}.talent.is-chosen{background:#4ade8014}.talent-blurb{color:var(--chalk-dim);margin:0;font-size:.88rem}.talent-effects{flex-wrap:wrap;gap:.35rem;margin:0;padding:0;list-style:none;display:flex}.talent-effects li{font-variant-numeric:tabular-nums;background:#e8f5e90d;border-radius:999px;padding:.1rem .5rem;font-size:.78rem}.talent-effects li.up{color:var(--grass)}.talent-effects li.down{color:var(--fail)}.talent-chosen{color:var(--grass);margin:0;font-size:.82rem}.origin-grid{gap:.35rem;display:grid}.origin{background:#e8f5e90a;border-radius:8px;grid-template-columns:6.5rem 1fr;gap:.5rem;padding:.3rem .55rem;font-size:.85rem;display:grid}.origin span{color:var(--chalk-dim)}.origin b{font-weight:500}.modal{z-index:10;background:#040a07b8;justify-content:center;align-items:flex-end;padding:0;display:flex;position:fixed;inset:0}.modal-card{border:1px solid var(--line);background:var(--panel);border-bottom:0;border-radius:16px 16px 0 0;flex-direction:column;width:100%;max-width:44rem;max-height:86vh;display:flex}.modal-head{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:1rem;padding:.9rem 1.1rem;display:flex}.modal-head h2{margin:0}.modal-body{overscroll-behavior:contain;gap:.9rem;padding:.9rem 1.1rem 1.4rem;display:grid;overflow-y:auto}.help-section h3{margin-bottom:.25rem}.help-section p{color:var(--chalk-dim);margin:0;font-size:.9rem}@media (width>=40rem){.modal{align-items:center;padding:1.5rem}.modal-card{border-bottom:1px solid var(--line);border-radius:16px}.cards,.origin-grid{grid-template-columns:1fr 1fr}}.ladder-now{color:var(--chalk);margin:0;font-size:1rem;font-weight:600}.ladder-track{flex-wrap:wrap;gap:.35rem;margin:.5rem 0 0;padding:0;list-style:none;display:flex}.ladder-track li{border:1px solid var(--line);color:var(--chalk-dim);border-radius:999px;padding:.15rem .55rem;font-size:.75rem}.ladder-track li.is-done{border-color:var(--grass-deep);color:var(--grass-deep)}.ladder-track li.is-now{border-color:var(--grass);color:var(--chalk);background:#4ade801f}.decision{border-left:3px solid var(--grass-deep)}.verdict{color:var(--chalk);margin:0;font-size:.95rem;font-weight:600}.verdict.is-fail{color:var(--warn)}.decision-terms{gap:.3rem;margin:.55rem 0 0;padding:0;list-style:none;display:grid}.decision-terms li{border-bottom:1px dashed var(--line);grid-template-columns:1fr auto auto auto;align-items:baseline;gap:.5rem;padding-bottom:.25rem;font-size:.85rem;display:grid}.decision-terms span{color:var(--chalk-dim)}.decision-terms b,.decision-terms em{color:var(--chalk);font-variant-numeric:tabular-nums}.decision-terms i{color:var(--chalk-dim);font-size:.78rem;font-style:normal}.decision-terms em{text-align:right;min-width:3ch;font-style:normal}.reports{gap:.6rem;display:grid}.report{border-left:3px solid var(--grass-deep);background:var(--panel-soft);border-radius:8px;padding:.6rem .75rem}.report.kind-fastTrack{border-left-color:var(--warn)}.report.kind-demoted,.report.kind-exitOffer{border-left-color:var(--fail)}.report header{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:.4rem;display:flex}.report-kind{color:var(--chalk);font-size:.85rem;font-weight:600}.report-when{color:var(--chalk-dim);font-size:.75rem}.report-copy{color:var(--chalk);margin:.4rem 0 0;font-size:.88rem;line-height:1.6}.report-legendary{color:var(--chalk);background:#f0a35e14;border:1px solid #f0a35e66;border-radius:8px;margin:.4rem 0 0;padding:.4rem .55rem;font-size:.85rem;line-height:1.6}.report-legendary b{color:var(--warn);letter-spacing:.06em;margin-right:.4rem;font-size:.75rem}.report-facts{flex-wrap:wrap;gap:.4rem;margin:.45rem 0 0;padding:0;list-style:none;display:flex}.report-facts li{border:1px dashed var(--line);color:var(--chalk-dim);border-radius:999px;padding:.05rem .5rem;font-size:.75rem}.exit{background:#ef7d7d12;border:1px solid #ef7d7d66}.exit h2{color:var(--fail)}.training-budget{color:var(--chalk-dim);margin:.2rem 0 .7rem;font-size:.85rem}.training-budget b{color:var(--chalk);font-size:1rem}.training-budget.is-full b{color:var(--grass)}.training-actions{gap:.6rem;margin-bottom:.8rem;display:flex}.training-list{gap:.5rem;display:grid}.training-item{border:1px solid var(--line);border-left:3px solid var(--grass-deep);background:var(--panel-soft);border-radius:10px;padding:.55rem .7rem}.training-item.is-on{border-color:var(--grass-deep);background:#4ade8012}.training-item.risk-none{border-left-color:var(--chalk-dim)}.training-item.risk-low{border-left-color:var(--grass)}.training-item.risk-medium{border-left-color:var(--warn)}.training-item.risk-high{border-left-color:var(--fail)}.training-head{justify-content:space-between;align-items:baseline;gap:.5rem;display:flex}.training-name{font-weight:650}.training-risk{color:var(--chalk-dim);letter-spacing:.04em;white-space:nowrap;font-size:.72rem}.training-item.risk-medium .training-risk{color:var(--warn)}.training-item.risk-high .training-risk{color:var(--fail)}.training-blurb,.training-targets{color:var(--chalk-dim);margin:.15rem 0 0;font-size:.78rem}.training-targets{color:var(--grass);opacity:.75}.training-slots{align-items:center;gap:.5rem;margin-top:.4rem;display:flex}.training-slots b{text-align:center;font-variant-numeric:tabular-nums;min-width:3rem}button.step{padding:.15rem .7rem;font-size:1rem;line-height:1.4}.training-allocations{flex-wrap:wrap;gap:.4rem;margin:.6rem 0 0;padding:0;list-style:none;display:flex}.training-allocations li{border:1px dashed var(--line);color:var(--chalk-dim);border-radius:999px;gap:.35rem;padding:.05rem .5rem;font-size:.75rem;display:flex}.training-setback{color:var(--fail);background:#ef7d7d1a;border-radius:8px;margin:.6rem 0 0;padding:.45rem .6rem;font-size:.82rem}.training-trait{color:var(--grass);background:#4ade801a;border-radius:8px;margin:.6rem 0 0;padding:.45rem .6rem;font-size:.82rem}.traits{gap:.5rem;display:grid}.trait{border:1px solid var(--grass-deep);background:#4ade800f;border-radius:10px;padding:.55rem .7rem}.trait h3{margin:0;font-size:.95rem}.trait-blurb{color:var(--chalk-dim);margin:.2rem 0 0;font-size:.8rem}.event-card{border-left:3px solid var(--chalk-dim)}.event-card.rarity-rare{border-left-color:#7fb2f0}.event-card.rarity-legendary{border-left-color:var(--china-gold)}.event-meta{color:var(--chalk-dim);text-align:right;font-size:.78rem}.event-card.rarity-rare .event-meta{color:#7fb2f0}.event-card.rarity-legendary .event-meta{color:var(--china-gold)}.event-body{color:var(--chalk);margin:0;font-size:.95rem}.event-options{gap:.55rem;display:grid}button.event-option{text-align:left;border:1px solid var(--line);background:var(--court-deep);width:100%;color:var(--chalk);border-radius:10px;gap:.3rem;padding:.7rem .85rem;display:grid}button.event-option:hover{border-color:var(--grass-deep);background:var(--panel-soft)}button.event-option.is-gamble{border-left:3px solid var(--warn)}button.event-option.is-locked,button.path.is-locked{cursor:not-allowed;opacity:.55;border-style:dashed}button.path.is-locked span,.event-option-blocked{color:var(--warn)}.event-option-blocked{font-size:.78rem}.event-option-label{font-weight:620}.event-option-odds{color:var(--warn);font-variant-numeric:tabular-nums;font-size:.8rem}.event-option-effects{color:var(--chalk-dim);font-variant-numeric:tabular-nums;font-size:.8rem}.event-option-outcome{font-variant-numeric:tabular-nums;font-size:.8rem}.event-option-outcome.is-success{color:var(--grass)}.event-option-outcome.is-fail{color:var(--fail)}.event-trait{color:var(--china-gold);font-size:.8rem}.event-list{gap:.5rem;margin-top:.5rem;display:grid}.event-done{border:1px solid var(--line);border-left:3px solid var(--chalk-dim);background:var(--court-deep);border-radius:10px;padding:.55rem .7rem}.event-done.rarity-rare{border-left-color:#7fb2f0}.event-done.rarity-legendary{border-left-color:var(--china-gold)}.event-done header{flex-wrap:wrap;align-items:baseline;gap:.45rem;display:flex}.event-name{font-weight:620}.event-choice{color:var(--chalk-dim);font-size:.82rem}.event-verdict{border:1px solid;border-radius:999px;margin-left:auto;padding:.05rem .45rem;font-size:.72rem}.event-verdict.is-pass{color:var(--grass)}.event-verdict.is-fail{color:var(--fail)}.event-done .hint{font-variant-numeric:tabular-nums;margin:.25rem 0 0}.match-card{border-left:3px solid var(--grass-deep);max-width:52rem}.match-meta{color:var(--chalk-dim);text-align:right;font-size:.78rem}.match-stakes{color:var(--chalk);margin:0;font-size:.95rem}.match-pace{color:var(--warn);font-variant-numeric:tabular-nums;margin:0;font-size:.82rem}.scoreboard{border:1px solid var(--line);background:var(--court-deep);border-radius:10px;grid-template-columns:1fr auto 1fr;align-items:center;gap:.6rem;padding:.6rem .8rem;display:grid}.score-side{gap:.1rem;display:grid}.score-side.is-them{text-align:right}.score-side span{color:var(--chalk-dim);font-size:.8rem}.score-side b{font-variant-numeric:tabular-nums;font-size:1.7rem;line-height:1.1}.score-side.is-me b{color:var(--grass)}.score-side.is-them b{color:var(--fail)}.score-side i{color:var(--chalk-dim);font-size:.72rem;font-style:normal}.score-game{border:1px solid var(--line);color:var(--chalk-dim);white-space:nowrap;border-radius:999px;padding:.15rem .55rem;font-size:.75rem}.match-guidance,.match-scouting{border-left:3px solid var(--chalk-dim);background:var(--court-deep);border-radius:0 8px 8px 0;margin:0;padding:.5rem .7rem;font-size:.85rem}.match-scouting.is-seen{color:#7fb2f0;border-left-color:#7fb2f0}.match-scouting.is-blind{color:var(--chalk-dim)}.match-games{gap:.4rem;margin:0;padding:0;list-style:none;display:grid}.match-games li{border:1px solid var(--line);border-left:3px solid var(--chalk-dim);background:var(--court-deep);border-radius:8px;gap:.15rem;padding:.45rem .65rem;font-size:.8rem;display:grid}.match-games li.is-won{border-left-color:var(--grass)}.match-games li.is-lost{border-left-color:var(--fail)}.match-deck{gap:.55rem;display:grid}.match-deck .hint{margin:0}.match-known{color:#7fb2f0;margin:0;font-size:.82rem}.match-budget{color:var(--warn);font-variant-numeric:tabular-nums;margin:0;font-size:.82rem}.match-last-roll{border-left:3px solid var(--shuttle);background:var(--court-deep);color:var(--chalk);font-variant-numeric:tabular-nums;border-radius:0 8px 8px 0;margin:0;padding:.4rem .7rem;font-size:.82rem}.tactics,.key-points{gap:.5rem;display:grid}@media (width>=40rem){.tactics,.key-points{grid-template-columns:repeat(2,minmax(0,1fr))}}button.tactic,button.key-point{text-align:left;border:1px solid var(--line);background:var(--court-deep);color:var(--chalk);border-radius:10px;gap:.3rem;padding:.7rem .85rem;display:grid}button.tactic:hover,button.key-point:hover:not(:disabled){border-color:var(--grass-deep);background:var(--panel-soft)}button.key-point:disabled{opacity:.55;cursor:not-allowed}.tactic-label,.key-point-label{font-weight:620}.tactic-blurb,.key-point-blurb{color:var(--chalk-dim);font-size:.8rem}.tactic-power,.key-point-odds{color:var(--warn);font-variant-numeric:tabular-nums;font-size:.76rem}.key-point-outcome{font-variant-numeric:tabular-nums;font-size:.76rem}.key-point-outcome.is-success{color:var(--grass)}.key-point-outcome.is-fail{color:var(--fail)}.key-point-blocked{color:var(--fail);font-size:.76rem}.match-timeline{color:var(--chalk-dim);gap:.25rem;margin:0;padding-left:1.2rem;font-size:.85rem;display:grid}button.ghost.danger{border-color:var(--fail);color:var(--fail)}button.ghost.danger:hover{border-color:var(--fail);color:var(--chalk);background:#ef7d7d1f}.match-report,.key-matches,.trial-result,.teammates,.trials{gap:.6rem;display:grid}.match-when,.match-result{color:var(--chalk-dim);margin:0;font-size:.85rem}.match-result{font-weight:620}.outcome-won{color:var(--grass)}.outcome-lost{color:var(--fail)}.outcome-retired{color:var(--warn)}.match-report .game{border:1px solid var(--line);border-left:3px solid var(--chalk-dim);background:var(--court-deep);border-radius:10px;padding:.55rem .7rem}.match-report .game.is-won{border-left-color:var(--grass)}.match-report .game.is-lost{border-left-color:var(--fail)}.match-report .game header{flex-wrap:wrap;align-items:baseline;gap:.45rem;display:flex}.match-report .game-score{font-weight:620}.match-report .game-tactics,.match-report .game-key-point{color:var(--chalk-dim);font-size:.8rem}.match-report .game-power{color:var(--warn);font-variant-numeric:tabular-nums;margin:.15rem 0 0;font-size:.76rem}.match-report .game-power.is-them{color:var(--chalk-dim)}.match-line{color:var(--chalk-dim);margin:0;font-size:.85rem}.match-records,.trial-records{gap:.35rem;margin:0;padding:0;list-style:none;display:grid}.match-records li,.trial-records li{border:1px solid var(--line);border-left:3px solid var(--chalk-dim);background:var(--court-deep);border-radius:8px;flex-wrap:wrap;align-items:baseline;gap:.5rem;padding:.4rem .6rem;font-size:.8rem;display:flex}.match-records li.outcome-won,.trial-records li.outcome-won{border-left-color:var(--grass)}.match-records li.outcome-lost,.trial-records li.outcome-lost{border-left-color:var(--fail)}.match-records li.outcome-retired,.trial-records li.outcome-retired{border-left-color:var(--warn)}.record-when,.record-opponent{color:var(--chalk-dim)}.record-event{font-weight:620}.record-score{font-variant-numeric:tabular-nums}.record-outcome{border:1px solid;border-radius:999px;margin-left:auto;padding:.05rem .45rem;font-size:.72rem}.teammate-rows{gap:.35rem;margin:0;padding:0;list-style:none;display:grid}.mate{border:1px solid var(--line);border-left:3px solid var(--chalk-dim);background:var(--court-deep);border-radius:8px;flex-wrap:wrap;align-items:baseline;gap:.5rem;padding:.4rem .6rem;font-size:.8rem;display:flex}.mate.band-friend{border-left-color:var(--grass)}.mate.band-rival{border-left-color:var(--fail)}.mate.band-neutral{border-left-color:var(--warn)}.mate.is-contender{background:var(--panel-soft)}.mate-rank{min-width:1.4rem;color:var(--chalk-dim);font-variant-numeric:tabular-nums}.mate-name{font-weight:620}.mate-strength,.mate-relation{font-variant-numeric:tabular-nums}.mate-strength{color:var(--warn)}.mate-relation{color:var(--chalk-dim)}.mate-stakes{color:var(--chalk-dim);font-size:.74rem}.mate-quota{color:var(--grass);border:1px solid;border-radius:999px;margin-left:auto;padding:.05rem .45rem;font-size:.72rem}.trial-draw{border:1px solid var(--line);border-left:3px solid var(--warn);background:var(--court-deep);border-radius:10px;gap:.2rem;padding:.55rem .7rem;display:grid}.trial-draw-line{margin:0;font-weight:620}.trial-draw-mate{color:var(--warn);font-variant-numeric:tabular-nums;margin:0;font-size:.82rem}.trial-verdict{margin:0;font-weight:640}.trial-verdict.quotaWon,.trial-records li.quotaWon .record-outcome{color:var(--grass)}.trial-verdict.quotaLost,.trial-records li.quotaLost .record-outcome{color:var(--fail)}.trial-result.quotaWon{border-left:3px solid var(--grass)}.trial-result.quotaLost{border-left:3px solid var(--fail)}.record-kind{border:1px solid var(--line);color:var(--chalk-dim);border-radius:999px;padding:.05rem .4rem;font-size:.7rem}.match-records li.kind-trial .record-kind{border-color:var(--warn);color:var(--warn)}.station-rows{gap:.35rem;margin:0;padding:0;list-style:none;display:grid}.station{border:1px solid var(--line);border-left:3px solid var(--chalk-dim);background:var(--court-deep);border-radius:8px;flex-wrap:wrap;align-items:baseline;gap:.5rem;padding:.4rem .6rem;font-size:.8rem;display:flex}.station.role-rung{border-left-color:var(--warn)}.station.role-international{border-left-color:var(--grass-deep)}.station.is-on{background:var(--panel-soft)}.station.is-absent,.station.is-pending{opacity:.68}.entry-stakes,.entry-worth{color:var(--chalk-dim);flex-basis:100%;margin:0;font-size:.76rem}.entry-worth{color:var(--warn)}.entry-controls{flex-basis:100%;align-items:baseline;gap:.5rem;display:flex}.entry-controls i{color:var(--chalk-dim);font-size:.74rem;font-style:normal}.entry-actions{flex-wrap:wrap;gap:.5rem;margin-top:.6rem;display:flex}.hint.warn{color:var(--warn)}.station-rounds{color:var(--chalk-dim);font-variant-numeric:tabular-nums;flex-basis:100%;gap:.1rem;margin:.2rem 0 0;padding:0;font-size:.74rem;list-style:none;display:grid}.station-rounds li.is-won{color:var(--grass)}.station-rounds li.is-lost{color:var(--fail)}.record-outcome.placement-champion{color:var(--grass)}.record-outcome.placement-runnerUp,.record-outcome.placement-semifinal{color:var(--warn)}.season-list{gap:.7rem;display:grid}.season-year header{flex-wrap:wrap;gap:.45rem;margin-bottom:.3rem;display:flex}.derby-brief{border:1px solid var(--line);border-left:3px solid var(--warn);background:var(--court-deep);border-radius:10px;gap:.25rem;padding:.55rem .7rem;display:grid}.derby-brief-line{margin:0;font-weight:620}.derby-brief-mate{color:var(--warn);font-variant-numeric:tabular-nums;margin:0;font-size:.82rem}.derby-brief-options{color:var(--chalk-dim);font-variant-numeric:tabular-nums;gap:.2rem;margin:.15rem 0 0;padding:0;font-size:.76rem;list-style:none;display:grid}.derby-brief-options b{color:var(--chalk);font-weight:620}.station-rounds li.is-thrown{color:var(--warn);font-style:italic}.derby-status .station-rows{gap:.35rem}.derby-status .chain.is-done{opacity:.68}.treatment-brief{border:1px solid var(--line);border-left:3px solid var(--warn);background:var(--court-deep);border-radius:10px;gap:.25rem;padding:.55rem .7rem;display:grid}.treatment-brief-line{margin:0;font-weight:620}.treatment-brief-options{color:var(--chalk-dim);font-variant-numeric:tabular-nums;gap:.2rem;margin:.15rem 0 0;padding:0;font-size:.76rem;list-style:none;display:grid}.treatment-brief-options b{color:var(--chalk);font-weight:620}.panel.injury{border-left:3px solid var(--warn)}.injury-now{color:var(--warn);margin:0;font-weight:620}.injury-shadows,.injury-history{color:var(--chalk-dim);font-variant-numeric:tabular-nums;gap:.2rem;margin:.35rem 0 0;padding:0;font-size:.78rem;list-style:none;display:grid}.injury-shadows li{border-left:2px solid var(--line);padding-left:.6rem}.injury-history li{opacity:.82;font-size:.74rem}.fold{border:1px solid var(--line);background:var(--panel);border-radius:14px}.fold>summary{cursor:pointer;color:var(--chalk-dim);padding:.8rem 1.1rem;font-size:.9rem;list-style:none}.fold>summary::-webkit-details-marker{display:none}.fold>summary:before{content:"▸ ";color:var(--china-gold)}.fold[open]>summary:before{content:"▾ "}.fold[open]>summary{border-bottom:1px solid var(--line);color:var(--chalk)}.fold>.panel{background:0 0;border:0;border-radius:0}.fold>.panel>h2:first-of-type{display:none}.hero{border:1px solid var(--line);border-left:3px solid var(--china-red);background:linear-gradient(135deg, var(--panel-soft), var(--panel));border-radius:14px;align-items:center;gap:1rem;padding:1rem 1.1rem;display:flex}.hero-score{background:var(--court-deep);border-radius:12px;flex-direction:column;justify-content:center;align-items:center;min-width:5.5rem;padding:.3rem .6rem;display:flex}.hero-number{color:var(--china-gold);font-size:2.1rem;font-weight:750;line-height:1.1}.hero-label{letter-spacing:.08em;color:var(--chalk-dim);font-size:.72rem}.hero-facts{flex:1;grid-template-columns:repeat(2,minmax(0,1fr));gap:.3rem .9rem;margin:0;display:grid}.hero-facts div{align-items:baseline;gap:.4rem;min-width:0;display:flex}.hero-facts dt{color:var(--chalk-dim);font-size:.72rem}.hero-facts dd{text-overflow:ellipsis;white-space:nowrap;margin:0;font-size:.88rem;font-weight:600;overflow:hidden}.panel.summary h2{margin-bottom:.5rem}.summary-grid{grid-template-columns:1fr;gap:.3rem;margin:0;padding:0;list-style:none;display:grid}.summary-grid li{border-bottom:1px dashed var(--line);justify-content:space-between;align-items:baseline;gap:.8rem;padding:.34rem 0;display:flex}.summary-grid li:last-child{border-bottom:0}.summary-grid span{color:var(--chalk-dim);font-size:.78rem}.summary-grid b{text-align:right;font-size:.9rem}.tabs{scrollbar-width:none;gap:.35rem;padding-bottom:.2rem;display:flex;overflow-x:auto}.tabs::-webkit-scrollbar{display:none}button.tab{border:1px solid var(--line);background:var(--panel);color:var(--chalk-dim);border-radius:999px;flex:none;padding:.45rem .8rem;font-size:.82rem}button.tab.is-on{border-color:var(--grass-deep);background:var(--grass-deep);color:var(--shuttle);font-weight:650}.tab-body{gap:.8rem;display:grid}button.big{padding:1rem 1.2rem;font-size:1.02rem}.actions.cta{flex-direction:column;align-items:stretch}.actions.ghost-row{flex-direction:row}.actions.ghost-row button{flex:1}.panel.retirement{border-left:3px solid var(--china-gold)}.retirement-reason{color:var(--chalk-dim);margin:0 0 .6rem;font-size:.9rem}.rating{gap:.6rem;display:grid}.rating-grade{flex-wrap:wrap;align-items:baseline;gap:.55rem;display:flex}.rating-letter{color:var(--china-gold);font-variant-numeric:tabular-nums;font-size:2.6rem;font-weight:700;line-height:1}.rating-word{color:var(--chalk);font-size:1.1rem;font-weight:620}.rating-average{color:var(--chalk-dim);font-variant-numeric:tabular-nums;font-size:.78rem}.paths{gap:.55rem;display:grid}button.path{text-align:left;border:1px solid var(--line);background:var(--court-deep);width:100%;color:var(--chalk);border-radius:10px;gap:.3rem;padding:.75rem .9rem;display:grid}button.path:hover:not(:disabled){border-color:var(--china-gold);background:var(--panel-soft)}button.path b{font-size:.98rem;font-weight:620}button.path span{color:var(--chalk-dim);font-size:.8rem}.path-score{float:right;color:var(--china-gold);font-variant-numeric:tabular-nums;font-size:.74rem;font-style:normal;font-weight:500}.ending-note{border-left:2px solid var(--china-gold);color:var(--chalk);margin:0;padding-left:.7rem;font-size:1rem;line-height:1.75}@media (width>=40rem){.hero-facts{grid-template-columns:repeat(4,minmax(0,1fr))}.summary-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:.3rem 1.4rem}.actions.cta{flex-direction:row;align-items:center}.actions.cta button.big{flex:1}}.finance-lines,.finance-totals{gap:.28rem;margin:0;padding:0;list-style:none;display:grid}.finance-lines li,.finance-totals li{border-bottom:1px dashed var(--line);justify-content:space-between;align-items:baseline;gap:.8rem;padding:.3rem 0;display:flex}.finance-lines li:last-child,.finance-totals li:last-child{border-bottom:0}.finance-lines span{color:var(--chalk);font-size:.82rem}.finance-lines i{color:var(--chalk-dim);font-size:.72rem;font-style:normal;display:block}.finance-lines b,.finance-totals b{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap;font-size:.9rem}.finance-totals{border-top:1px solid var(--line);margin-top:.5rem;padding-top:.4rem}.finance-totals span{color:var(--chalk-dim);font-size:.78rem}.finance-totals .net b{font-size:1rem}.finance-totals .net.pos b{color:var(--grass)}.finance-totals .net.neg b{color:var(--fail)}.finance-balance{border-top:1px solid var(--line);color:var(--chalk-dim);margin:.6rem 0 0;padding-top:.5rem;font-size:.86rem}.finance-balance b{color:var(--china-gold);font-variant-numeric:tabular-nums;font-size:1.05rem}.settlement{border-top:1px solid var(--line);margin-top:.9rem;padding-top:.7rem}.settlement h3{color:var(--china-gold);margin-bottom:.4rem;font-size:.95rem}.toasts{z-index:30;pointer-events:none;flex-direction:column;gap:.35rem;width:min(26rem,100vw - 1.5rem);display:flex;position:fixed;top:.7rem;left:50%;transform:translate(-50%)}.toast{pointer-events:auto;border:1px solid var(--line);border-left:3px solid var(--chalk-dim);color:var(--chalk);font:inherit;text-align:left;cursor:pointer;background:#09140ef5;border-radius:10px;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:.55rem;padding:.45rem .75rem;font-size:.84rem;animation:2.6s ease-out forwards toast-life;display:grid;box-shadow:0 8px 22px #00000073}.toast b{font-size:.9rem}.toast span{color:var(--chalk-dim);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.toast i{font-variant-numeric:tabular-nums;color:var(--chalk-dim);white-space:nowrap;font-style:normal}.toast.is-success{border-left-color:var(--grass)}.toast.is-success b{color:var(--grass)}.toast.is-fail{border-left-color:var(--fail)}.toast.is-fail b{color:var(--fail)}@keyframes toast-life{0%{opacity:0;transform:translateY(-8px)}9%{opacity:1;transform:translateY(0)}84%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(-6px)}}@media (prefers-reduced-motion:reduce){.toast{animation:none}}.stale-build{z-index:40;border-top:1px solid var(--line);color:var(--chalk-dim);background:#09140ef7;flex-wrap:wrap;justify-content:center;align-items:center;gap:.35rem .7rem;padding:.55rem .9rem;font-size:.82rem;display:flex;position:fixed;bottom:0;left:0;right:0;box-shadow:0 -8px 22px #00000073}.stale-build p{flex:16rem;margin:0}.stale-build b{color:var(--grass);font-variant-numeric:tabular-nums}.stale-build button{flex:none;padding:.35rem .8rem}body.has-stale-build .modal{padding-bottom:var(--stale-build-h,0px)}body.has-stale-build #app{padding-bottom:calc(3rem + var(--stale-build-h,0px))}
