:root{
  --bg:#0e1117; --card:#161b22; --card2:#1c2230; --line:#262d3a;
  --txt:#e6edf3; --mut:#8b96a5; --grn:#3fb950; --red:#f85149; --acc:#58a6ff;
}
*{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--txt);
  font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif}
.topbar{display:flex;justify-content:space-between;align-items:center;
  padding:16px 22px;border-bottom:1px solid var(--line);position:sticky;top:0;background:var(--bg);z-index:5}
.brand{font-weight:700;font-size:16px;display:flex;align-items:center;gap:8px}
.dot{width:9px;height:9px;border-radius:50%;background:var(--grn);display:inline-block}
.asof{color:var(--mut);font-size:13px}
.topbar-right{display:flex;align-items:center;gap:12px}
.icon-btn{background:none;border:1px solid var(--line);color:var(--txt);border-radius:8px;
  width:34px;height:34px;font-size:16px;cursor:pointer;line-height:1}
.icon-btn:hover{border-color:var(--acc);color:var(--acc)}
.icon-btn:disabled{opacity:.55;cursor:not-allowed;border-color:var(--line);color:var(--mut)}
.icon-btn.spin{animation:mi-spin .8s linear infinite}
@keyframes mi-spin{to{transform:rotate(360deg)}}
.pf-select{background:var(--card2);border:1px solid var(--line);color:var(--txt);border-radius:8px;
  padding:7px 10px;font-size:13px;font-weight:600;outline:none;max-width:200px}
.pf-select:focus{border-color:var(--acc)}
/* drawer */
.drawer-overlay{position:fixed;inset:0;background:rgba(0,0,0,.5);opacity:0;pointer-events:none;
  transition:opacity .2s;z-index:20}
.drawer-overlay.show{opacity:1;pointer-events:auto}
.drawer{position:fixed;top:0;left:0;bottom:0;width:340px;max-width:88vw;background:var(--card);
  border-right:1px solid var(--line);transform:translateX(-102%);transition:transform .22s;z-index:21;
  display:flex;flex-direction:column}
.drawer.open{transform:translateX(0)}
.drawer-head{display:flex;justify-content:space-between;align-items:center;padding:16px 18px;border-bottom:1px solid var(--line);flex-shrink:0}
.drawer-body{padding:12px 14px;overflow-y:auto;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;
  display:flex;flex-direction:column;gap:10px;flex:1 1 auto;min-height:0}
/* sezioni collassabili + sottosezioni */
.dsection{border:1px solid var(--line);border-radius:12px;overflow:hidden;background:var(--card2);flex-shrink:0}
.dsection-head{width:100%;text-align:left;background:none;border:none;color:var(--txt);
  font-size:14px;font-weight:700;padding:12px 14px;cursor:pointer;display:flex;align-items:center;gap:8px}
.dsection-head:hover{color:var(--acc)}
.dsection-arrow{display:inline-block;transition:transform .18s;font-size:11px;color:var(--mut)}
.dsection:not(.open) .dsection-arrow{transform:rotate(-90deg)}
.dsection-body{display:none;padding:4px 14px 14px;flex-direction:column;gap:16px}
.dsection.open .dsection-body{display:flex}
.dsub-title{font-size:11px;font-weight:700;color:var(--mut);text-transform:uppercase;letter-spacing:.4px;margin-bottom:7px}
.drawer-title{font-size:13px;font-weight:700;color:var(--mut);text-transform:uppercase;letter-spacing:.4px;margin-bottom:8px}
.drawer-list{display:flex;flex-direction:column;gap:6px;margin-bottom:12px}
.drawer-item{background:var(--card2);border:1px solid var(--line);border-radius:8px;padding:8px 10px;font-size:13px}
.drawer-item.clickable{width:100%;text-align:left;color:var(--txt);cursor:pointer;display:flex;justify-content:space-between;align-items:center;gap:8px}
.drawer-item.clickable:hover{border-color:var(--acc)}
.di-go{color:var(--acc);font-size:11px;opacity:.75}
.drawer-row{display:flex;align-items:stretch;gap:6px}
.drawer-row .drawer-item{flex:1;min-width:0}
.di-del{flex:none;background:var(--card2);border:1px solid var(--line);border-radius:8px;color:var(--mut);
  cursor:pointer;padding:0 11px;font-size:13px;line-height:1}
.di-del:hover{border-color:#e5484d;color:#e5484d}
.di-edit{flex:none;background:var(--card2);border:1px solid var(--line);border-radius:8px;color:var(--mut);
  cursor:pointer;padding:0 11px;font-size:13px;line-height:1}
.di-edit:hover{border-color:var(--acc);color:var(--acc)}
.di-edit-input{flex:1;min-width:0;background:var(--card2);border:1px solid var(--acc);border-radius:8px;
  padding:8px 10px;font-size:13px;color:var(--txt)}
.di-save,.di-cancel{flex:none;background:var(--card2);border:1px solid var(--line);border-radius:8px;
  cursor:pointer;padding:0 11px;font-size:13px;line-height:1}
.di-save{color:#30a46c}.di-save:hover{border-color:#30a46c}
.di-cancel{color:var(--mut)}.di-cancel:hover{border-color:#e5484d;color:#e5484d}
.stk-tag{color:#bc8cff;font-size:11px;font-weight:600;margin-left:4px}
.drawer-form{display:flex;flex-direction:column;gap:8px}
.drawer-form input,.drawer-form select{background:var(--card2);border:1px solid var(--line);color:var(--txt);
  border-radius:8px;padding:8px 10px;font-size:13px;outline:none}
.drawer-form input:focus,.drawer-form select:focus{border-color:var(--acc)}
.dfield-label{font-size:11px;color:var(--mut);margin:2px 0 -3px}
.m-grid{display:grid;grid-template-columns:1fr 1fr 1fr;gap:6px}
.m-grid input{width:100%}
.drawer-subtitle{font-size:12px;font-weight:600;color:var(--mut);margin:14px 0 6px}
.chk{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--mut)}
.chk input{width:auto}
.wrap{max-width:1080px;margin:0 auto;padding:22px;display:flex;flex-direction:column;gap:18px}
.card{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:18px 20px}
.hero{background:linear-gradient(135deg,#161b22,#1c2637)}
.hero-label{color:var(--mut);font-size:13px;letter-spacing:.3px}
.hero-nav{font-size:42px;font-weight:750;margin-top:4px;letter-spacing:-1px}
.hero-change{margin-top:6px;font-size:14px;font-weight:600}
.hero-pnls{margin-top:10px;display:flex;flex-wrap:wrap;gap:10px}
.pnl-chip{font-size:14px;font-weight:600;padding:5px 12px;border-radius:20px;background:var(--card2);border:1px solid var(--line)}
.pnl-chip.up{color:var(--grn);border-color:rgba(63,185,80,.35)}
.pnl-chip.down{color:var(--red);border-color:rgba(248,81,73,.35)}
.pnl-chip b{font-weight:700;opacity:.7;margin-right:4px;font-size:12px;text-transform:uppercase;letter-spacing:.3px}
.live-dot{display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--grn);vertical-align:middle;
  box-shadow:0 0 0 0 rgba(63,185,80,.6);animation:pulse 2s infinite}
@keyframes pulse{0%{box-shadow:0 0 0 0 rgba(63,185,80,.5)}70%{box-shadow:0 0 0 6px rgba(63,185,80,0)}100%{box-shadow:0 0 0 0 rgba(63,185,80,0)}}
.up{color:var(--grn)} .down{color:var(--red)}
.kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}
.kpi-label{color:var(--mut);font-size:12px}
.kpi-val{font-size:22px;font-weight:700;margin-top:6px}
.card-title{font-size:14px;font-weight:600;color:var(--mut);margin-bottom:14px}
.chart-card canvas{width:100%!important}
.alloc-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.table-wrap{overflow-x:auto}
table{width:100%;border-collapse:collapse;font-size:14px}
th{text-align:left;color:var(--mut);font-weight:600;font-size:12px;padding:8px 10px;border-bottom:1px solid var(--line)}
td{padding:10px;border-bottom:1px solid var(--line)}
tr:last-child td{border-bottom:none}
.num{text-align:right}
.sym{font-weight:700}
.foot{color:var(--mut);font-size:12px;text-align:center;padding:8px 0 24px}

/* ---- Tabs / navigazione ---- */
.tabs{display:flex;gap:4px;padding:0 22px;border-bottom:1px solid var(--line);
  position:sticky;top:53px;background:var(--bg);z-index:4;overflow-x:auto}
.tab{background:none;border:none;color:var(--mut);font-size:14px;font-weight:600;
  padding:12px 14px;cursor:pointer;border-bottom:2px solid transparent;white-space:nowrap}
.tab:hover{color:var(--txt)}
.tab.active{color:var(--acc);border-bottom-color:var(--acc)}
.view{display:flex;flex-direction:column;gap:18px}
.hidden{display:none!important}

/* ---- Layout a due colonne ---- */
.two-col{display:grid;grid-template-columns:1fr 1fr;gap:18px}

/* ---- Filtri / bottoni ---- */
.filters{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin-bottom:14px}
#tx-export{margin-left:auto}
.filters select,.filters input{background:var(--card2);border:1px solid var(--line);color:var(--txt);
  border-radius:8px;padding:8px 10px;font-size:14px;outline:none}
.filters input:focus,.filters select:focus{border-color:var(--acc)}
.btn{background:var(--card2);border:1px solid var(--line);color:var(--txt);border-radius:8px;
  padding:8px 14px;font-size:14px;font-weight:600;cursor:pointer}
.btn:hover:not(:disabled){border-color:var(--acc);color:var(--acc)}
.btn:disabled{opacity:.4;cursor:default}
.btn-sm{padding:4px 10px;font-size:12px}
.btn-ghost{background:transparent;color:var(--mut)}
.btn-ghost:hover:not(:disabled){border-color:var(--red);color:var(--red)}
.count{color:var(--mut);font-size:13px;margin-left:auto}
.pager{display:flex;align-items:center;gap:14px;justify-content:center;margin-top:14px;color:var(--mut);font-size:13px;flex-wrap:wrap}
.pager-rows{display:flex;align-items:center;gap:7px;margin-left:8px}
.pager-rows select{background:var(--card2);border:1px solid var(--line);color:var(--txt);
  border-radius:8px;padding:6px 8px;font-size:13px;font-weight:600;outline:none;cursor:pointer}
.pager-rows select:focus{border-color:var(--acc)}

/* ---- Badge tipo transazione ---- */
.badge{display:inline-block;padding:2px 8px;border-radius:20px;font-size:11px;font-weight:600;white-space:nowrap}
.b-buy{background:rgba(88,166,255,.15);color:#58a6ff}
.b-sell{background:rgba(255,123,114,.15);color:#ff7b72}
.b-dividend{background:rgba(63,185,80,.15);color:#3fb950}
.b-payment_in_lieu{background:rgba(126,231,135,.15);color:#7ee787}
.b-withholding_tax{background:rgba(210,153,34,.15);color:#d29922}
.b-interest{background:rgba(57,197,207,.15);color:#39c5cf}
.b-deposit_withdrawal{background:rgba(188,140,255,.15);color:#bc8cff}
.b-hold{background:rgba(219,166,64,.15);color:#dba640}
.b-bond{background:rgba(57,197,207,.15);color:#39c5cf}
/* Obbligazioni: form a 2 colonne + riga rateo sotto il nome */
#bond-form .m-grid{grid-template-columns:1fr 1fr}
.b-datelbl{display:flex;flex-direction:column;gap:3px;font-size:11px;color:var(--mut)}
.b-accrued{display:block;margin-top:2px;font-size:11px;color:var(--mut)}

/* ---- Tabelle interattive ---- */
.tbl-toolbar{display:flex;justify-content:flex-end;margin-bottom:8px}
.tbl-search{background:var(--card2);border:1px solid var(--line);color:var(--txt);border-radius:8px;
  padding:6px 10px;font-size:13px;outline:none;min-width:180px}
.tbl-search:focus{border-color:var(--acc)}
th.sortable{cursor:pointer;user-select:none;white-space:nowrap}
th.sortable:hover{color:var(--txt)}
.sort-arrow{margin-left:4px;font-size:10px;color:var(--acc)}
.filter-row td{padding:4px 6px;border-bottom:1px solid var(--line)}
.col-filter{width:100%;background:var(--bg);border:1px solid var(--line);color:var(--txt);
  border-radius:6px;padding:3px 6px;font-size:12px;outline:none}
.col-filter:focus{border-color:var(--acc)}
.price-meta{margin-top:10px;color:var(--mut);font-size:11px;line-height:1.4}
.src-updated{margin-top:4px;color:var(--mut);font-size:11px;line-height:1.4}
.src-updated b{color:var(--txt);font-weight:600}
.est{color:#d29922;cursor:help;font-weight:700}
/* C3 — scorporo impatto FX */
.fx-split{display:flex;flex-direction:column;gap:10px;margin-top:4px}
.fx-row{display:grid;grid-template-columns:130px 1fr 120px;align-items:center;gap:10px}
.fx-lab{color:var(--mut);font-size:13px}
.fx-track{height:10px;border-radius:6px;background:rgba(255,255,255,.06);overflow:hidden}
.fx-bar{height:100%;border-radius:6px;background:currentColor;min-width:2px}
.fx-val{font-weight:600;text-align:right}
@media(max-width:520px){.fx-row{grid-template-columns:90px 1fr 96px;gap:6px}}
/* D1 — costi nascosti (TER): riga totale della tabella */
#costsTable .tot td{border-top:2px solid var(--line)}
#costsTable .mut{font-weight:400}

/* D2 — Overlap analysis (look-through) */
.ov-lead{font-size:13.5px;color:var(--txt);margin:-4px 0 4px}
.ov-h{font-size:11px;font-weight:700;color:var(--mut);text-transform:uppercase;letter-spacing:.4px;margin:18px 0 6px}
#ovTable .ov-hd td{color:var(--mut);font-weight:600;font-size:12px;border-bottom:1px solid var(--line);padding:6px 10px}
#ovTable tr.ov-multi td{background:rgba(88,166,255,.06)}
.ov-cnt{display:inline-block;min-width:22px;padding:1px 7px;border-radius:11px;background:var(--card2);border:1px solid var(--line);font-size:12px;font-weight:600;color:var(--mut);text-align:center}
.ov-cnt-hot{color:var(--acc);border-color:rgba(88,166,255,.45)}
.ov-mtx{width:auto;border-collapse:separate;border-spacing:3px;font-size:12px}
.ov-mtx td{padding:0;border:none}
.ov-col,.ov-row{color:var(--mut);font-weight:600;font-size:11px;white-space:nowrap;padding:2px 5px}
.ov-col{text-align:center}
.ov-row{text-align:right}
.ov-cell{width:48px;height:30px;text-align:center;border-radius:6px;color:var(--txt);font-variant-numeric:tabular-nums}
.ov-diag,.ov-corner{background:transparent;color:var(--mut)}
/* B2 — validazione ticker */
.px-warn{color:#d29922;cursor:help;font-weight:700;margin-left:2px}
.m-status{font-size:12px;line-height:1.45;margin:-2px 0 2px;min-height:0}
.m-status:empty{display:none}
.m-status.checking{color:var(--mut)}
.m-status.ok{color:var(--grn)}
.m-status.err{color:#d29922}
.m-status .px-warn{margin:0 3px 0 0}
.m-sugg{display:block;color:var(--mut);font-size:11px;margin-top:1px}

/* B4 — ricerca titoli di mercato (autocomplete) */
.m-results{display:none}
.m-results.open{display:flex;flex-direction:column;gap:2px;margin:-2px 0 2px;padding:4px;
  border:1px solid var(--line);border-radius:8px;background:var(--card2);max-height:220px;overflow-y:auto}
.m-res{display:flex;flex-direction:column;gap:1px;width:100%;text-align:left;cursor:pointer;
  background:none;border:none;border-radius:6px;padding:6px 8px;color:var(--txt)}
.m-res:hover{background:var(--card)}
.m-res-sym{font-size:12px;font-weight:700}
.m-res-name{font-size:12px;color:var(--txt);line-height:1.3}
.m-res-meta{font-size:11px;color:var(--mut)}

/* C4 — chip metalli preziosi (ledger manuale) */
.m-metals{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin:-2px 0 2px}
.m-metals-lbl{font-size:11px;color:var(--mut)}
.m-metal{cursor:pointer;font-size:12px;padding:3px 10px;border-radius:999px;
  border:1px solid var(--line);background:var(--card2);color:var(--txt)}
.m-metal:hover{background:var(--card);border-color:var(--mut)}
.m-metals-hint{flex-basis:100%;font-size:11px;color:var(--mut);line-height:1.35}

/* B3 — Area Impostazioni (separatori) */
.set-error{font-size:12px;line-height:1.5;color:var(--red);margin:2px 0}
.set-error:empty{display:none}
.set-error.err{border:1px solid var(--red);border-radius:8px;padding:8px 10px;
  background:rgba(248,81,73,.08)}
.field-err{border-color:var(--red)!important;background:rgba(248,81,73,.06)!important}
.set-preview{font-size:13px;color:var(--txt);font-weight:600;margin:2px 0}
.set-preview:empty{display:none}

/* C7: import Excel — link template come bottone + lista errori di validazione */
a.btn{text-decoration:none;display:inline-block;text-align:center}
#imp-template{margin-right:8px}
.imp-errors{display:none}
.imp-errors.show{display:block;margin-top:8px;border:1px solid var(--red);border-radius:8px;
  padding:8px 10px;background:rgba(248,81,73,.08);font-size:12px;line-height:1.5;
  max-height:260px;overflow:auto}
.imp-err-head{color:var(--red);font-weight:700;margin-bottom:6px}
.imp-err-row{padding:4px 0;border-top:1px solid var(--line)}
.imp-err-row:first-of-type{border-top:none}
.imp-err-loc{color:var(--mut);font-weight:600;margin-right:6px}

.hint{color:var(--mut);font-size:12px;margin-top:12px;line-height:1.5}
.muted{color:var(--mut);text-align:center;padding:16px}
.subtle{color:var(--mut);font-size:11px;font-weight:400;margin-top:2px}
.sstats{display:flex;flex-wrap:wrap;gap:26px;margin-bottom:16px}
.sstats>div{display:flex;flex-direction:column;gap:3px}
.sstat-label{color:var(--mut);font-size:12px}
.sstat-val{font-size:18px;font-weight:700}

/* ---- Highlight staking (hero) ---- */
.hero-stake{margin-top:10px;display:inline-block;font-size:13px;font-weight:600;
  color:#bc8cff;background:rgba(188,140,255,.12);border:1px solid rgba(188,140,255,.35);
  border-radius:20px;padding:4px 12px}
.badge.b-staking{background:rgba(188,140,255,.15);color:#bc8cff;margin-left:6px}

/* ---- Albero portafogli ---- */
.pf-row{display:flex;align-items:center;gap:12px;padding:10px 8px;border-bottom:1px solid var(--line)}
.pf-row:last-child{border-bottom:none}
.pf-group{font-weight:700}
.pf-name{flex:0 0 40%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pf-bar{flex:1;height:8px;background:var(--card2);border-radius:6px;overflow:hidden}
.pf-bar>span{display:block;height:100%;background:linear-gradient(90deg,#58a6ff,#3fb950);border-radius:6px}
.pf-val{flex:0 0 auto;font-variant-numeric:tabular-nums;font-weight:600}
.pf-pct{flex:0 0 52px;text-align:right;color:var(--mut);font-size:13px}
@media(max-width:720px){ .pf-bar{display:none} .pf-name{flex:1} }

@media(max-width:720px){
  .kpis{grid-template-columns:repeat(2,1fr)}
  .alloc-grid{grid-template-columns:1fr}
  .two-col{grid-template-columns:1fr}
  .hero-nav{font-size:34px}
  .count{margin-left:0}
}

/* ---- C5 — Calendario dividendi & cash flow ---- */
.dv-cal-head,.dv-chart-head{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap}
.dv-legend{display:flex;gap:14px;font-size:12px;font-weight:600;color:var(--mut)}
.dv-lg{display:inline-flex;align-items:center;gap:6px}
.dv-lg::before{content:"";width:11px;height:11px;border-radius:3px;box-sizing:border-box}
.dv-lg-paid::before{background:rgba(63,185,80,.55)}
.dv-lg-est::before{background:rgba(217,153,34,.35);border:1px dashed #d29922}
.dv-cal-t{border-collapse:separate;border-spacing:4px;width:100%;min-width:640px}
.dv-cal-t th{font-size:11px;color:var(--mut);font-weight:600;text-align:center;padding:2px}
.dv-cal-t th.dv-y{text-align:right;padding-right:8px;font-size:12px;color:var(--txt)}
.dv-c{text-align:center;border-radius:6px;font-size:11px;height:30px;min-width:44px;
  background:rgba(var(--dv-col,88,96,105),var(--dv-a,0));color:var(--txt)}
.dv-c-empty{background:var(--card2);opacity:.35}
.dv-c-est{border:1px dashed rgba(217,153,34,.85)}
.dv-tot{font-weight:700;background:var(--card2)}
.dv-tot.up{color:var(--grn)}.dv-tot.down{color:var(--red)}
.dv-toggle{display:inline-flex;border:1px solid var(--line);border-radius:8px;overflow:hidden}
.dv-tg{background:var(--card2);border:none;color:var(--mut);font-size:12px;font-weight:600;
  padding:5px 12px;cursor:pointer}
.dv-tg.active{background:var(--acc);color:#0b1220}
.dv-tg:not(.active):hover{color:var(--txt)}

/* C6 — selettore periodo performance storica + utility muted */
.mut{color:var(--mut);font-weight:500}
.perf-head{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:8px}
.pf-toggle{display:inline-flex;border:1px solid var(--line);border-radius:8px;overflow:hidden;flex-wrap:wrap}
.pf-tg{background:var(--card2);border:none;color:var(--mut);font-size:12px;font-weight:600;
  padding:5px 11px;cursor:pointer}
.pf-tg.active{background:var(--acc);color:#0b1220}
.pf-tg:not(.active):hover{color:var(--txt)}

/* D3 — Rebalancing tool */
.rb-ctl{display:flex;flex-wrap:wrap;align-items:flex-end;gap:14px;margin-bottom:12px}
.rb-f{display:flex;flex-direction:column;gap:4px;font-size:12px;color:var(--mut);font-weight:600}
.rb-f input{background:var(--card2);border:1px solid var(--line);color:var(--txt);border-radius:8px;
  padding:8px 10px;font-size:14px;outline:none;width:150px}
.rb-f input:focus{border-color:var(--acc)}
.rb-mode{display:inline-flex;border:1px solid var(--line);border-radius:8px;overflow:hidden;margin-left:auto}
#rbTable .rb-hd td{color:var(--mut);font-weight:600;font-size:12px;border-bottom:1px solid var(--line);padding:6px 10px}
#rbTable td{vertical-align:middle}
#rbTable tr.rb-ob td{background:rgba(248,81,73,.06)}
.rb-tgt-cell{white-space:nowrap;color:var(--mut)}
.rb-tgt{width:74px;background:var(--card2);border:1px solid var(--line);color:var(--txt);border-radius:8px;
  padding:6px 8px;font-size:14px;text-align:right;outline:none;font-variant-numeric:tabular-nums}
.rb-tgt:focus{border-color:var(--acc)}
.rb-cpct{font-size:12px}
.rb-ob-txt{color:var(--red);font-weight:600}
.rb-foot{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-top:12px}
.rb-add select{background:var(--card2);border:1px solid var(--line);color:var(--txt);border-radius:8px;
  padding:7px 9px;font-size:13px;font-weight:600;outline:none;cursor:pointer}
.rb-add select:disabled{opacity:.5;cursor:not-allowed}
.rb-save-wrap{display:flex;align-items:center;gap:12px;margin-left:auto}
.rb-btn{background:var(--acc);border:1px solid var(--acc);color:#0b1220;border-radius:8px;
  padding:8px 16px;font-size:13px;font-weight:700;cursor:pointer}
.rb-btn:disabled{opacity:.5;cursor:not-allowed}
.rb-over{color:var(--red);font-weight:700}

/* D5 — Stress test */
.st-ctl{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:14px}
.st-scen{display:flex;flex-wrap:wrap;gap:8px}
.st-ctl .pf-tg{border:1px solid var(--line);border-radius:8px}
.st-hero{background:var(--card2);border:1px solid var(--line);border-radius:10px;
  padding:12px 14px;margin-bottom:12px}
.st-hero-lbl{font-size:12px;color:var(--mut);font-weight:600}
.st-hero-val{font-size:24px;font-weight:800;margin-top:2px;font-variant-numeric:tabular-nums}
.st-hero-nav{font-size:12px;margin-top:2px}
#stTable .st-hd td{color:var(--mut);font-weight:600;font-size:12px;border-bottom:1px solid var(--line);padding:6px 10px}
#stTable td{vertical-align:middle}
.st-shock-cell{white-space:nowrap;color:var(--mut)}
.st-shock{width:74px;background:var(--card2);border:1px solid var(--line);color:var(--txt);border-radius:8px;
  padding:6px 8px;font-size:14px;text-align:right;outline:none;font-variant-numeric:tabular-nums}
.st-shock:focus{border-color:var(--acc)}
