:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;-webkit-font-smoothing:antialiased;--bg:#f7f5f0;--surface:#fff;--border:#ddd8ce;--text:#2b2620;--text-dim:#7a7268;--accent:#2f6f4f;--accent-soft:#e3efe8;font-family:system-ui,Segoe UI,Roboto,sans-serif}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial;--bg:#1a1916;--surface:#242320;--border:#3a3833;--text:#ece8e1;--text-dim:#a39c90;--accent:#6fbf95;--accent-soft:#24352c}}body{background:var(--bg);color:var(--text);margin:0}.app-shell{flex-direction:column;max-width:720px;min-height:100svh;margin:0 auto;display:flex}.top-bar{z-index:10;background:var(--surface);border-bottom:1px solid var(--border);align-items:center;gap:16px;padding:10px 16px;display:flex;position:sticky;top:0}.resource{font-variant-numeric:tabular-nums;align-items:center;gap:6px;font-weight:600;display:inline-flex}.tick-bump{animation:.3s ease-out tick-bump;display:inline-block}@keyframes tick-bump{0%{transform:scale(1.18)}to{transform:scale(1)}}.badge{line-height:0;animation:.25s ease-out badge-pop;position:absolute;top:4px;right:6px}@keyframes badge-pop{0%{transform:scale(0)}70%{transform:scale(1.3)}to{transform:scale(1)}}.tab-bar{background:var(--surface);border-bottom:1px solid var(--border);display:flex}.tab{font:inherit;color:var(--text-dim);cursor:pointer;background:0 0;border:none;border-bottom:3px solid #0000;flex:1;justify-content:center;align-items:center;gap:8px;padding:12px 8px;font-weight:600;display:inline-flex;position:relative}.tab:hover{color:var(--text)}.tab-active{color:var(--text);border-bottom-color:var(--accent);background:var(--accent-soft)}.screen{flex:1;padding:16px}.build-tag{text-align:center;letter-spacing:.02em;color:var(--text-dim);opacity:.65;-webkit-user-select:text;user-select:text;padding:8px 16px 12px;font-family:ui-monospace,SF Mono,Cascadia Code,Menlo,monospace;font-size:11px}.stub-note{color:var(--text-dim)}.btn{font:inherit;border:1px solid var(--border);background:var(--surface);color:var(--text);cursor:pointer;border-radius:8px;padding:6px 12px;font-size:14px;font-weight:600}.btn:hover:not(:disabled){border-color:var(--accent)}.btn:disabled{opacity:.45;cursor:default}.btn-primary{background:var(--accent);border-color:var(--accent);color:#fff}.btn-danger{color:#c0392b;border-color:#c0392b}.btn-danger:hover:not(:disabled){color:#fff;background:#c0392b;border-color:#c0392b}.save-block{flex-direction:column;gap:6px;margin-bottom:16px;display:flex}.save-block .btn{align-self:flex-start}.save-label{color:var(--text-dim);font-size:13px}.save-text{font:inherit;box-sizing:border-box;width:100%;color:var(--text);background:var(--bg);border:1px solid var(--border);resize:vertical;word-break:break-all;border-radius:8px;padding:8px 10px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px}.save-feedback{margin:0;font-size:13px;font-weight:600}.save-feedback-error{color:#c0392b}.save-feedback-ok{color:var(--accent)}.confirm-row{flex-wrap:wrap;align-items:center;gap:8px;display:inline-flex}.confirm-prompt{font-size:14px;font-weight:600}.roster-grid{grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:10px;margin-bottom:20px;display:grid}.hero-card{font:inherit;color:var(--text);background:var(--surface);border:2px solid var(--border);cursor:pointer;border-radius:12px;flex-direction:column;align-items:center;gap:6px;padding:12px 8px;display:flex}.hero-card:hover{border-color:var(--accent)}.hero-card-selected{border-color:var(--accent);background:var(--accent-soft)}.hero-card-name{font-weight:700}.hero-card-meta{color:var(--text-dim);align-items:center;gap:6px;font-size:13px;display:inline-flex}.hero-detail{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:16px}.hero-detail-header{align-items:center;gap:12px;display:flex}.hero-detail-header h3{align-items:center;gap:8px;margin:0;display:flex}.hero-detail-sub{color:var(--text-dim);margin:2px 0 0;font-size:14px}.stat-list{gap:8px;margin:16px 0;display:flex}.stat{text-align:center;background:var(--bg);border:1px solid var(--border);border-radius:8px;flex:1;padding:8px 4px}.stat dt{color:var(--text-dim);letter-spacing:.05em;font-size:11px;font-weight:700}.stat dd{font-variant-numeric:tabular-nums;margin:2px 0 0;font-size:18px;font-weight:700}.trait-list{gap:12px;margin:0 0 8px;padding:0;font-size:14px;list-style:none;display:flex}.trait-list li{align-items:center;gap:4px;display:inline-flex}.hero-detail h4{text-transform:uppercase;letter-spacing:.06em;color:var(--text-dim);margin:16px 0 8px;font-size:13px}.slot-list,.inventory-list{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.slot-row,.inventory-row{background:var(--bg);border:1px solid var(--border);border-radius:8px;align-items:center;gap:10px;padding:8px 10px;display:flex}.slot-label{width:64px;color:var(--text-dim);font-size:13px;font-weight:700}.slot-empty{color:var(--text-dim);font-size:14px}.gear-line{flex:1;align-items:center;gap:6px;min-width:0;display:inline-flex}.gear-name{font-size:14px;font-weight:600}.gear-bonuses{color:var(--text-dim);font-size:13px}.gear-upgrade{color:var(--accent);font-size:12px;font-weight:700}.gear-family{text-transform:uppercase;letter-spacing:.04em;color:var(--text-dim);border:1px solid var(--border);border-radius:6px;padding:1px 5px;font-size:11px;font-weight:700}.upgrade-finder{background:var(--accent-soft);border:1px solid var(--border);border-radius:12px;margin:4px 0 16px;padding:10px 12px}.upgrade-finder h4{margin-top:0}.upgrade-list{flex-direction:column;gap:6px;margin:0;padding:0;list-style:none;display:flex}.upgrade-slot{background:var(--surface);border:1px solid var(--border);border-left:3px solid #0000;border-radius:8px;flex-wrap:wrap;align-items:flex-start;gap:6px 10px;padding:8px 10px;display:flex}.upgrade-slot[data-verdict=upgrade],.upgrade-slot[data-verdict=empty]{border-left-color:var(--accent)}.upgrade-slot[data-verdict=best]{background:0 0;border-style:dashed}.upgrade-body{flex-direction:column;flex:220px;gap:4px;min-width:0;display:flex}.upgrade-none{color:var(--text-dim);font-size:13px}.upgrade-more{color:var(--text-dim);font-size:12px}.hero-corpus{margin-top:10px}.hero-corpus>summary{cursor:pointer;color:var(--text-dim);font-size:13px;font-weight:600;list-style:none}.hero-corpus>summary::-webkit-details-marker{display:none}.hero-corpus>summary:before{content:"▸";color:var(--text-dim);margin-right:6px;transition:transform .15s;display:inline-block}.hero-corpus[open]>summary:before{transform:rotate(90deg)}.hero-dismiss{margin:12px 0 4px}.hero-dismiss>summary{cursor:pointer;color:var(--text-dim);font-size:13px;font-weight:600;list-style:none}.hero-dismiss>summary::-webkit-details-marker{display:none}.hero-dismiss>summary:before{content:"▸";color:var(--text-dim);margin-right:6px;transition:transform .15s;display:inline-block}.hero-dismiss[open]>summary:before{transform:rotate(90deg)}.gear-card-info{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.gear-card-name{align-items:center;gap:8px;font-size:14px;font-weight:600;display:inline-flex}.gear-card-tags{color:var(--text-dim);align-items:center;gap:4px;font-size:12px;display:inline-flex}.gear-affix-list{flex-direction:column;gap:1px;margin:2px 0 0;padding:0;list-style:none;display:flex}.gear-affix{color:var(--text-dim);font-size:12px}.gear-affix-burdened{color:#c0392b}.gear-compare{color:var(--accent);white-space:nowrap;font-size:12px}.gear-upgrade-progress{color:var(--text-dim);white-space:nowrap;font-size:13px}.inventory-row-ineligible{opacity:.5}.craft-group-heading{text-transform:uppercase;letter-spacing:.05em;color:var(--text-dim);margin:12px 0 6px;font-size:12px;font-weight:700}.gear-owner{color:var(--accent);white-space:nowrap;font-size:12px;font-weight:600}.craft-row-locked{opacity:.7}.market-row-sold{opacity:.55}.inventory-actions{gap:6px;margin-left:auto;display:inline-flex}.slot-row .btn,.upgrade-slot>.btn{margin-left:auto}.town-grid{grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:10px;margin-bottom:20px;display:grid}.building-card{font:inherit;color:var(--text);background:var(--surface);border:2px solid var(--border);cursor:pointer;border-radius:12px;flex-direction:column;align-items:center;gap:6px;padding:12px 8px;display:flex;position:relative}.building-card:hover:not(:disabled){border-color:var(--accent)}.building-card-selected{border-color:var(--accent);background:var(--accent-soft)}.building-card-locked{opacity:.45;cursor:default}.building-card-name{font-size:14px;font-weight:700}.building-card-meta{color:var(--text-dim);align-items:center;gap:4px;font-size:13px;display:inline-flex}.building-panel{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:16px}.building-panel-header{align-items:center;gap:12px;display:flex}.building-panel-header h3{margin:0}.building-tier{color:var(--text-dim);font-size:13px;font-weight:600}.building-description{color:var(--text-dim);margin:2px 0 0;font-size:14px}.upgrade-btn{white-space:nowrap;margin-left:auto}.building-fixed-note{white-space:nowrap;color:var(--text-dim);margin-left:auto;font-size:13px;font-style:italic}.building-panel h4{text-transform:uppercase;letter-spacing:.06em;color:var(--text-dim);margin:16px 0 8px;font-size:13px}.blacksmith-section{margin:16px 0 8px}.blacksmith-section>summary{cursor:pointer;text-transform:uppercase;letter-spacing:.06em;color:var(--text-dim);font-size:13px;font-weight:600;list-style:none}.blacksmith-section>summary::-webkit-details-marker{display:none}.blacksmith-section[open]>summary{margin-bottom:8px}.blacksmith-section>summary:before{content:"▸";color:var(--text-dim);margin-right:6px;transition:transform .15s;display:inline-block}.blacksmith-section[open]>summary:before{transform:rotate(90deg)}.offer-list,.craft-list{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.offer-row,.craft-row{background:var(--bg);border:1px solid var(--border);border-radius:8px;align-items:center;gap:10px;padding:8px 10px;display:flex}.hero-picker{flex-wrap:wrap;gap:6px;margin:0 0 10px;padding:0;list-style:none;display:flex}.hero-chip{align-items:center;gap:5px;padding:5px 10px;font-size:13px;display:inline-flex}.hero-chip-selected{border-color:var(--accent);background:var(--accent-soft)}.offer-info{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.offer-name{align-items:center;gap:8px;font-size:14px;font-weight:600;display:inline-flex}.offer-class{color:var(--text-dim);align-items:center;gap:4px;font-size:13px;font-weight:400;display:inline-flex}.offer-traits{color:var(--text-dim);gap:10px;font-size:13px;display:inline-flex}.offer-traits>span{align-items:center;gap:3px;display:inline-flex}.offer-recruit,.craft-row .btn{white-space:nowrap}.offer-decline{color:var(--text-dim);padding:6px 9px}.offer-decline:hover:not(:disabled){color:#c0392b;border-color:#c0392b}.craft-result{background:var(--accent-soft);border-radius:8px;margin:0 0 8px;padding:8px 10px;font-size:14px}.panel-footnote{color:var(--text-dim);margin:10px 0 0;font-size:13px}.event-node{background:var(--accent-soft);border:1px solid var(--accent);border-radius:10px;align-items:center;gap:12px;padding:12px 14px;display:flex}.event-node-body{flex-direction:column;flex:1;gap:4px;min-width:0;font-size:14px;display:flex}.event-node-forks{flex-wrap:wrap;gap:8px;display:flex}.node-reward{white-space:nowrap;align-items:center;gap:3px;display:inline-flex}.callout{background:var(--accent-soft);border:1px solid var(--accent);border-radius:10px;align-items:center;gap:10px;margin-bottom:14px;padding:10px 14px;font-size:14px;display:flex}.callout-text{flex:1}.callout-dismiss{font:inherit;color:var(--text-dim);cursor:pointer;background:0 0;border:none;padding:2px 8px;font-size:18px;line-height:1}.callout-dismiss:hover{color:var(--text)}.region-tabs{flex-wrap:wrap;gap:8px;margin-bottom:16px;display:flex}.region-tab{font:inherit;color:var(--text);background:var(--surface);border:2px solid var(--border);cursor:pointer;border-radius:10px;align-items:center;gap:8px;padding:8px 14px;font-weight:600;display:inline-flex}.region-tab:hover:not(:disabled){border-color:var(--accent)}.region-tab-selected{border-color:var(--accent);background:var(--accent-soft)}.region-tab-locked{opacity:.55;cursor:default}.region-tab-name{font-size:14px}.region-tab-lock{color:var(--text-dim);align-items:center;gap:3px;font-size:12px;font-weight:500;display:inline-flex}.region-header{align-items:center;gap:8px;display:flex}.region-tier{color:var(--text-dim);font-size:13px;font-weight:600}.mission-list{flex-direction:column;gap:8px;margin-bottom:20px;display:flex}.mission-card{font:inherit;text-align:left;color:var(--text);background:var(--surface);border:2px solid var(--border);cursor:pointer;border-radius:10px;align-items:center;gap:10px;padding:10px 12px;display:flex}.mission-card:hover{border-color:var(--accent)}.mission-card-selected{border-color:var(--accent);background:var(--accent-soft)}.mission-reward{color:var(--text-dim);align-items:center;gap:4px;font-size:13px;display:inline-flex}section h4{text-transform:uppercase;letter-spacing:.06em;color:var(--text-dim);margin:16px 0 8px;font-size:13px}.launch-bar{align-items:center;gap:12px;margin-top:16px;display:flex}.launch-btn{padding:10px 20px;font-size:16px}.combat-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;display:flex}.combat-controls{align-items:center;gap:6px;display:flex}.combat-controls .btn{padding:5px 10px;font-size:13px}.combat-retreat{margin-left:8px}.arena{background:var(--surface);border:1px solid var(--border);border-radius:12px;flex-direction:column;gap:28px;margin-bottom:12px;padding:20px 16px;display:flex}.arena-row{flex-wrap:wrap;justify-content:center;gap:14px;display:flex}.combatant-card{width:76px;font:inherit;color:var(--text);background:0 0;border:2px solid #0000;border-radius:10px;flex-direction:column;align-items:center;gap:5px;padding:8px 4px;display:flex}.combatant-card:disabled{cursor:default}.combatant-active{border-color:var(--accent);background:var(--accent-soft)}.combatant-targetable{cursor:pointer;border-color:#c9a227}.combatant-targetable:hover{background:var(--accent-soft)}.combatant-downed{opacity:.5}.hp-bar{background:var(--border);border-radius:4px;width:56px;height:7px;overflow:hidden}.hp-fill{background:var(--accent);border-radius:4px;height:100%;transition:width .25s ease-out;display:block}.hp-low{background:#c0392b}.combatant-statuses{gap:2px;min-height:16px;display:inline-flex}.action-bar{background:var(--surface);border:1px solid var(--border);border-radius:10px;flex-wrap:wrap;align-items:center;gap:10px;min-height:38px;margin-bottom:12px;padding:10px 12px;display:flex}.action-bar-idle{color:var(--text-dim)}.action-prompt{font-size:14px;font-weight:700}.action-options{flex-wrap:wrap;gap:6px;display:flex}.action-skill{align-items:center;gap:5px;display:inline-flex;position:relative}.cooldown-badge{color:var(--text-dim);font-size:11px;font-weight:700}.combat-log{color:var(--text-dim);background:var(--surface);border:1px solid var(--border);border-radius:10px;flex-direction:column;gap:2px;margin:0;padding:8px 12px;font-size:13px;list-style:none;display:flex}.combat-log li:last-child{color:var(--text);font-weight:600}.mission-summary{background:var(--surface);border:1px solid var(--border);text-align:center;border-radius:12px;padding:20px}.mission-summary h3{margin:0 0 4px;font-size:24px}.summary-sub{color:var(--text-dim);margin:0 0 16px}.summary-loot{flex-direction:column;align-items:center;gap:6px;margin:0 0 16px;padding:0;font-weight:600;list-style:none;display:flex}.summary-loot li{align-items:center;gap:6px;display:inline-flex}.summary-injured{color:var(--text-dim);margin:0 0 16px}.expedition-active-list{flex-direction:column;gap:8px;margin:0 0 16px;padding:0;list-style:none;display:flex}.expedition-active-row{border:1px solid var(--border);border-radius:8px;align-items:center;gap:10px;padding:8px 10px;display:flex}.expedition-active-row .offer-name{flex:1}.expedition-log-beats{color:var(--text-dim);text-align:left;flex-direction:column;gap:4px;margin:0 0 16px;padding:0;list-style:none;display:flex}.expedition-casualties{border-top:1px solid var(--border);text-align:left;margin:0 0 16px;padding-top:12px}.expedition-casualties h4{color:var(--text-dim);align-items:center;gap:6px;margin:0 0 8px;display:flex}.expedition-casualties>ul{flex-direction:column;gap:10px;margin:0;padding:0;list-style:none;display:flex}.expedition-casualty-items{color:var(--text-dim);flex-direction:column;gap:2px;margin:4px 0 0;padding:0 0 0 26px;font-size:13px;list-style:none;display:flex}.chain-screen{flex-direction:column;gap:1rem;display:flex}.chain-header{align-items:center;gap:.75rem;display:flex}.chain-header h2{margin:0;line-height:1.2}.chain-status{color:var(--text-dim);margin:.15rem 0 0;font-size:.9rem}.chain-pips{flex-wrap:wrap;gap:.4rem;margin:0;padding:0;list-style:none;display:flex}.chain-pip{border:1px solid var(--border);background:var(--surface);min-width:1.9rem;height:1.9rem;color:var(--text-dim);border-radius:.5rem;justify-content:center;align-items:center;padding:0 .35rem;font-size:.85rem;display:inline-flex}.chain-pip-done{background:var(--accent-soft);color:var(--accent);border-color:var(--accent)}.chain-pip-current{outline:2px solid var(--accent);color:var(--text);font-weight:700}.chain-pip-boss{border-style:dashed}.chain-party{flex-direction:column;gap:.5rem;display:flex}.chain-party-active,.chain-party-bench{flex-wrap:wrap;align-items:center;gap:.4rem;display:flex}.chain-party-label{color:var(--text-dim);text-transform:uppercase;letter-spacing:.04em;margin-right:.25rem;font-size:.8rem}.chain-party-chip{border:1px solid var(--border);background:var(--surface);color:var(--text);cursor:pointer;border-radius:999px;align-items:center;gap:.35rem;padding:.3rem .55rem;font-size:.85rem;display:inline-flex}.chain-party-chip:hover{border-color:var(--accent)}.chain-party-lvl{color:var(--text-dim);font-size:.75rem}.chain-controls{gap:.5rem;display:flex}.chain-viewer-placeholder{border:1px dashed var(--border);color:var(--text-dim);border-radius:.5rem;padding:.75rem;font-size:.9rem}.chain-feed-title{text-transform:uppercase;letter-spacing:.04em;color:var(--text-dim);margin:.75rem 0 .35rem;font-size:.8rem;font-weight:600}.chain-feed{border:1px solid var(--border);background:var(--surface);border-radius:.6rem;flex-direction:column;gap:.3rem;max-height:16rem;margin:0;padding:.5rem .75rem;font-size:.88rem;list-style:none;display:flex;overflow-y:auto}.chain-feed-empty{color:var(--text-dim);font-style:italic}.chain-viewer{border:1px solid var(--border);background:var(--surface);border-radius:.6rem;margin-top:.5rem;overflow:hidden}.chain-viewer-bar{border-bottom:1px solid var(--border);background:var(--accent-soft);justify-content:space-between;align-items:center;gap:.5rem;padding:.5rem .75rem;display:flex}.chain-viewer-title{font-weight:600}.chain-viewer-speeds{gap:.35rem;display:flex}.chain-viewer-speeds .btn{padding:.2rem .5rem;font-size:.8rem}.chain-viewer-arena{justify-content:space-around;align-items:center;gap:.5rem;padding:.75rem;display:flex}.chain-viewer-side{flex-wrap:wrap;flex:1;justify-content:center;gap:.4rem;display:flex}.chain-viewer-vs{color:var(--text-dim);font-size:.85rem}.chain-viewer-log{border-top:1px solid var(--border);height:calc(var(--chain-viewer-log-lines,8) * (1.2em + .2rem) - .2rem);flex-direction:column;gap:.2rem;margin:0;padding:.5rem .75rem;font-size:.85rem;line-height:1.2;list-style:none;display:flex;overflow-y:hidden}.chain-viewer-log li{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.away-summary{flex-direction:column;gap:.9rem;max-width:34rem;margin:0 auto;display:flex}.away-elapsed{color:var(--text-dim);margin:0}.away-path{margin:0;font-size:1.05rem}.away-ledger h3,.away-walls h3{margin:0 0 .3rem;font-size:.95rem}.away-ledger ul,.away-walls ul{flex-direction:column;gap:.15rem;margin:0;padding-left:1.1rem;display:flex}.away-beats{color:var(--text-dim);margin:0;padding-left:1.1rem;font-style:italic}.away-continue{align-self:flex-start}.war-room-panel{flex-direction:column;gap:.75rem;display:flex}.war-room-row{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.war-room-label{min-width:9rem;color:var(--text-dim);text-transform:uppercase;letter-spacing:.03em;font-size:.85rem}.war-room-value{font-size:.95rem}.war-room-hint{color:var(--accent);font-style:italic}.war-room-select{border:1px solid var(--border);background:var(--surface);color:var(--text);border-radius:.4rem;padding:.35rem .5rem}.trait-rank{color:var(--accent);font-weight:700}.ascension-block{margin:4px 0 20px}.ascension-block h4{align-items:center;gap:6px;display:inline-flex}.ascend-forecast{background:var(--accent-soft);border-radius:8px;margin:0 0 10px;padding:10px 12px}.ascend-forecast-line{margin:0;font-size:14px}.ascend-forecast-line+.ascend-forecast-line{margin-top:4px}.ascend-forecast-delta{color:var(--text-dim);font-size:12px}.ascend-ledger{grid-template-columns:1fr 1fr;gap:12px;margin-bottom:12px;display:grid}@media (width<=480px){.ascend-ledger{grid-template-columns:1fr}}.ascend-keeps,.ascend-resets{border:1px solid var(--border);background:var(--bg);border-radius:8px;padding:8px 10px}.ascend-ledger-head{margin-bottom:4px;font-size:13px;font-weight:700;display:block}.ascend-keeps .ascend-ledger-head{color:var(--accent)}.ascend-resets .ascend-ledger-head{color:#c0392b}.ascend-ledger ul{color:var(--text-dim);flex-direction:column;gap:2px;margin:0;padding-left:18px;font-size:13px;display:flex}.ascend-ledger .ascend-reset-warn{color:#c0392b;font-weight:600}.ascend-confirm{border:1px solid #c0392b;border-radius:8px;flex-direction:column;gap:8px;padding:12px;display:flex}.ascend-heir .hero-picker{margin-bottom:4px}.ascend-result{border:1px solid var(--accent);background:var(--accent-soft);border-radius:8px;flex-direction:column;align-items:flex-start;gap:8px;padding:12px;display:flex}.ascend-result-line{margin:0;font-size:14px}.legacy-tree-locked{opacity:.6}.legacy-pips{gap:3px}.legacy-pip{border:1px solid var(--border);border-radius:50%;width:8px;height:8px;display:inline-block}.legacy-pip-on{background:var(--accent);border-color:var(--accent)}.legacy-rank-label{color:var(--text-dim);margin-left:4px;font-size:12px}.mettle-tree .legacy-rank-label{font-variant-numeric:tabular-nums}.mettle-effect{color:var(--accent);font-variant-numeric:tabular-nums;margin-left:6px;font-size:12px;font-weight:600}.mettle-eta{opacity:.75;font-variant-numeric:tabular-nums;font-size:12px}.roster-summary,.roster-upgrades{margin-bottom:12px}.roster-heading{text-transform:uppercase;letter-spacing:.04em;color:var(--text-dim);flex-wrap:wrap;align-items:baseline;gap:6px;margin:16px 0 8px;font-size:14px;display:flex}.roster-count{color:var(--text);font-variant-numeric:tabular-nums;font-weight:700}.roster-note{text-transform:none;letter-spacing:0;font-size:12px;font-weight:400}.hero-card-mettle,.hero-card-upgrades{color:var(--accent);font-variant-numeric:tabular-nums;align-items:center;gap:2px;margin-top:2px;font-size:11px;font-weight:600;display:inline-flex}.gear-screen h3{margin:18px 0 8px;font-size:15px}.gear-count{color:var(--text-dim);border:1px solid var(--border);border-radius:8px;margin-left:6px;padding:1px 6px;font-size:12px;font-weight:600}.loadout-list,.loadout-slots{margin:0;padding:0;list-style:none}.loadout-list{flex-direction:column;gap:10px;display:flex}.loadout-hero{border:1px solid var(--border);background:var(--bg);border-radius:10px;padding:8px 10px}.loadout-hero-header{align-items:center;gap:8px;margin-bottom:6px;display:flex}.loadout-hero-name{font-size:14px;font-weight:700}.loadout-hero-sub{color:var(--text-dim);font-size:12px}.loadout-slots{flex-direction:column;gap:4px;display:flex}.loadout-slot{align-items:center;gap:10px;padding:4px 2px;display:flex}.gear-controls{flex-wrap:wrap;align-items:center;gap:8px 12px;margin:6px 0 10px;display:flex}.gear-control{color:var(--text-dim);align-items:center;gap:4px;font-size:12px;display:inline-flex}.gear-control select{font:inherit;color:var(--text);background:var(--bg);border:1px solid var(--border);border-radius:6px;padding:3px 6px}.gear-control-check{gap:5px}.gear-clear-filters{padding:3px 8px;font-size:12px}.gear-shown{color:var(--text-dim);margin:0 0 6px;font-size:12px}.gear-triage-banner{border:1px solid var(--accent);border-radius:8px;margin:0 0 10px;padding:8px 10px;font-size:13px}.triage-bar{border:1px solid var(--border);background:var(--bg);border-radius:8px;flex-direction:column;gap:6px;margin:0 0 10px;padding:8px 10px;display:flex}.triage-quick,.triage-actions,.triage-confirm{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.triage-quick .btn,.triage-actions .btn,.triage-confirm .btn{padding:3px 8px;font-size:12px}.triage-count,.triage-hint,.triage-confirm span{color:var(--text-dim);font-size:12px}.triage-result{color:var(--accent);margin:0 0 8px;font-size:12px}.gear-select{flex:none}.inventory-row-selected{border-color:var(--accent)}.away-review-gear{padding:1px 8px;font-size:12px}.gear-disclosure{flex:1;min-width:0}.gear-disclosure>summary{cursor:pointer;align-items:center;gap:10px;list-style:none;display:flex}.gear-disclosure>summary::-webkit-details-marker{display:none}.gear-disclosure>summary:before{content:"▸";color:var(--text-dim);flex:none;transition:transform .15s}.gear-disclosure[open]>summary:before{transform:rotate(90deg)}.gear-detail{flex-direction:column;gap:2px;margin:4px 0 2px 30px;display:flex}.gear-power{color:var(--text-dim);font-variant-numeric:tabular-nums;flex:none;font-size:13px;font-weight:700}.commission{margin-top:1.25rem}.commission-gaps{flex-wrap:wrap;gap:.35rem;margin:0 0 .5rem;padding:0;list-style:none;display:flex}.commission-form{flex-wrap:wrap;gap:.5rem .75rem;margin:.5rem 0 .75rem;display:flex}.commission-form label{color:var(--text-dim);flex-direction:column;gap:.15rem;font-size:.75rem;display:flex}.commission-form select{font:inherit;border:1px solid var(--border);background:var(--surface);color:var(--text);border-radius:6px;padding:.25rem .4rem;font-size:.85rem}.memorial-roll>summary{cursor:pointer;color:var(--text-dim);padding:4px 0;font-size:13px;font-weight:600;list-style:none}.memorial-roll>summary::-webkit-details-marker{display:none}.memorial-roll>summary:before{content:"▸";color:var(--text-dim);margin-right:6px;transition:transform .15s;display:inline-block}.memorial-roll[open]>summary:before{transform:rotate(90deg)}.memorial-roll>.memorial-list{max-height:320px;margin:0;padding:0;list-style:none;overflow:hidden auto}.memorial-row{border-bottom:1px solid var(--border-subtle,#8080802e);align-items:center;gap:10px;padding:6px 0;display:flex}.memorial-row:last-child{border-bottom:none}
