/* MalvinStyle Capital — design system a due temi.
   GIORNO "Asset Manager Pro": chiaro freddo, verde profondo, numeri in mono.
   NOTTE "Forest Executive": verde bosco, smeraldo luminoso, numeri serif corsivi.
   Struttura identica, cambiano solo i token. */

@import url('https://fonts.googleapis.com/css2?family=IBM+Plex+Sans:wght@400;500;600;700&family=IBM+Plex+Mono:wght@400;500;600&family=Instrument+Serif:ital@0;1&display=swap');

:root, :root[data-theme="giorno"]{
  --pagina:#F4F6F5; --telefono:#FFFFFF; --card:#FFFFFF; --sezione:#FAFBFA;
  --testo:#0F1720; --sec:#5B6670; --terzo:#98A2AE;
  --primario:#0A7A55; --su-primario:#fff; --su:#0E9F6E; --su-bg:#E7F6EF; --su-testo:#03543F;
  --giu:#C0392B; --giu-bg:#FBEEEC; --giu-testo:#9B1C1C;
  --hair:#E6E9E8; --hair-forte:#D5DBD9;
  --oro:#A8863D; --chip-bg:#F1F4F3; --ombra:0 1px 2px rgba(15,23,32,.05);
  --grafico-area:rgba(10,122,85,.09); --glow:none;
  --font-display:'IBM Plex Sans',sans-serif; --display-style:normal; --display-weight:700;
}
:root[data-theme="notte"]{
  --pagina:#0A1F19; --telefono:#0E2A21; --card:#123328; --sezione:#123328;
  --testo:#F2F5F0; --sec:#9DB5A9; --terzo:#6E8A7C;
  --primario:#2ECC8F; --su-primario:#0A1F19; --su:#2ECC8F; --su-bg:rgba(46,204,143,.14); --su-testo:#7FE7C0;
  --giu:#E07B6E; --giu-bg:rgba(224,123,110,.14); --giu-testo:#F0A99F;
  --hair:rgba(255,255,255,.08); --hair-forte:rgba(255,255,255,.16);
  --oro:#D9C9A3; --chip-bg:rgba(255,255,255,.06); --ombra:0 2px 10px rgba(0,0,0,.25);
  --grafico-area:rgba(46,204,143,.12); --glow:drop-shadow(0 0 6px rgba(46,204,143,.45));
  --font-display:'Instrument Serif',serif; --display-style:italic; --display-weight:400;
}

*{box-sizing:border-box}
html,body{margin:0}
body{
  background:var(--pagina); color:var(--testo);
  font-family:'IBM Plex Sans',system-ui,-apple-system,sans-serif;
  -webkit-font-smoothing:antialiased; padding:22px 12px; line-height:1.5;
  transition:background .25s ease;
}
.tnum{font-family:'IBM Plex Mono',monospace;font-variant-numeric:tabular-nums;letter-spacing:-.01em}
.lab{font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--sec);font-weight:600}

.wrap{
  max-width:460px; margin:0 auto; background:var(--telefono);
  border:1px solid var(--hair); border-radius:22px;
  padding:20px 18px 16px; box-shadow:var(--ombra);
  transition:background .25s ease;
}

/* Trascina-per-aggiornare (PWA: il gesto nativo del browser non esiste) */
#ptr{
  position:fixed; top:-46px; left:50%; transform:translate(-50%,0);
  width:38px; height:38px; border-radius:50%;
  background:var(--card); border:1px solid var(--hair-forte);
  box-shadow:var(--ombra); color:var(--primario);
  display:flex; align-items:center; justify-content:center;
  opacity:0; pointer-events:none; z-index:60;
  transition:opacity .15s ease;
}
#ptr.ptr-visibile{opacity:1}
#ptr.ptr-pronto{background:var(--primario); color:var(--su-primario); border-color:var(--primario)}
#ptr svg{width:18px;height:18px}
#ptr.ptr-carica svg{animation:ptr-gira .8s linear infinite}
@keyframes ptr-gira{to{transform:rotate(360deg)}}

/* Topbar */
.topbar{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}
.brand{display:flex;align-items:center;gap:11px}
.mark{display:block;width:40px;height:40px}
.wordmark{display:flex;flex-direction:column;line-height:1.1}
.wordmark .nm{font-weight:700;font-size:17px;color:var(--testo);letter-spacing:-.01em}
.wordmark .ct{font-size:10px;letter-spacing:.32em;text-transform:uppercase;color:var(--oro);margin-top:1px}
.tools{display:flex;align-items:center;gap:8px}
.avatar{
  width:32px;height:32px;border-radius:50%;border:1px solid var(--hair-forte);color:var(--sec);
  display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:600;
}
.btn-tema{
  width:32px;height:32px;border-radius:50%;border:1px solid var(--hair-forte);
  background:none;color:var(--sec);cursor:pointer;display:flex;align-items:center;justify-content:center;padding:0;
}
.btn-tema:hover{border-color:var(--primario);color:var(--primario)}
.btn-tema svg{width:16px;height:16px}

/* Tabs */
.tabs{display:flex;gap:20px;margin-top:16px;border-bottom:1px solid var(--hair);padding:0;overflow-x:auto}
.tab{
  background:none;border:0;border-bottom:2px solid transparent;white-space:nowrap;
  color:var(--sec);font-family:inherit;font-size:13px;font-weight:500;padding:0 0 10px;cursor:pointer;
}
.tab.on{color:var(--testo);border-color:var(--primario);font-weight:600}
.tab:hover{color:var(--testo)}
.loading{color:var(--sec);font-size:14px;padding:40px 0;text-align:center}
.foot{font-size:10.5px;color:var(--terzo);letter-spacing:.03em;margin:14px 0 2px;text-align:center}

/* Riga stato: il battito del sistema */
.stato-riga{
  display:flex;align-items:center;gap:7px;margin-top:12px;font-size:11.5px;color:var(--sec);
}
.stato-riga .dot-live{
  width:7px;height:7px;border-radius:50%;background:var(--su);flex:none;
  animation:battito 2.4s ease-out infinite;
}
@keyframes battito{
  0%{box-shadow:0 0 0 0 rgba(46,204,143,.5)}
  70%{box-shadow:0 0 0 7px rgba(46,204,143,0)}
  100%{box-shadow:0 0 0 0 rgba(46,204,143,0)}
}
.stato-riga .tnum{font-size:11.5px}
.stato-riga .giorno{
  margin-left:auto;font-size:9.5px;letter-spacing:.13em;text-transform:uppercase;
  color:var(--terzo);font-weight:600;white-space:nowrap;
}
.stato-riga .giorno b{color:var(--oro);font-weight:700}

/* ---------- DIREZIONE ---------- */
/* micro-indicatori sotto il patrimonio */
.micro{
  display:flex;align-items:stretch;margin-top:11px;
  border-top:1px solid var(--hair);border-bottom:1px solid var(--hair);
}
.micro>div{flex:1;padding:8px 0 7px;min-width:0}
.micro>div+div{border-left:1px solid var(--hair);padding-left:11px}
.micro .lab{font-size:8.5px;letter-spacing:.11em;display:block}
.micro .v{
  font-family:'IBM Plex Mono',monospace;font-variant-numeric:tabular-nums;
  font-size:12px;font-weight:600;margin-top:3px;color:var(--testo);
}
.micro .v small{
  font-family:'IBM Plex Sans',sans-serif;font-size:9.5px;font-weight:500;
  color:var(--terzo);margin-left:4px;letter-spacing:0;
}

/* barra del track record verso la decisione di allocazione */
.track{margin-top:13px}
.track-head{display:flex;align-items:baseline;justify-content:space-between;gap:10px}
.track-head .lab{font-size:9px;letter-spacing:.13em}
.track-head .n{
  font-family:'IBM Plex Mono',monospace;font-size:10px;font-weight:600;
  color:var(--sec);font-variant-numeric:tabular-nums;
}
.track-barra{position:relative;height:5px;border-radius:3px;background:var(--chip-bg);margin-top:6px;overflow:hidden}
.track-fill{
  position:absolute;left:0;top:0;bottom:0;min-width:9px;border-radius:3px;
  background:linear-gradient(90deg,var(--oro),var(--primario));
}
.track-tick{position:absolute;top:0;bottom:0;width:1px;background:var(--hair-forte)}
.track-piedi{
  display:flex;justify-content:space-between;margin-top:5px;
  font-size:8.5px;letter-spacing:.09em;text-transform:uppercase;color:var(--terzo);
}

/* tabella densa delle strategie */
.st-riga{
  display:grid;grid-template-columns:1fr 54px 62px 46px 18px 7px 6px;
  gap:0 6px;align-items:center;padding:8px 12px;border-bottom:1px solid var(--hair);
}
.st-riga.testa{padding-top:9px;padding-bottom:7px}
.st-riga.testa span{
  font-size:8.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--terzo);
  font-weight:600;text-align:right;white-space:nowrap;
}
.st-riga.testa span:first-child{text-align:left}
.st-riga.strat{cursor:pointer;transition:background .12s ease}
.st-riga.strat:hover{background:var(--chip-bg)}
.st-riga.strat:last-of-type{border-bottom:0}
.st-nome{min-width:0}
.st-nome .nm{font-size:12.5px;font-weight:600;line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.st-nome .md{font-size:9.5px;color:var(--terzo);line-height:1.35;margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.st-spark{display:block;width:54px;height:20px}
.st-num{font-family:'IBM Plex Mono',monospace;font-variant-numeric:tabular-nums;text-align:right;white-space:nowrap}
.st-eq{font-size:11px;font-weight:500;color:var(--sec)}
.st-rend{font-size:11.5px;font-weight:600}
.st-rend.zero{color:var(--sec)}
.st-pos{font-size:11px;color:var(--sec)}
.st-pos.vuoto{color:var(--terzo)}
.pallino{width:7px;height:7px;border-radius:50%;display:block}
.p-verde{background:var(--su)}
.p-ambra{background:var(--oro)}
.p-grigio{background:var(--terzo);opacity:.7}
.chev{width:6px;height:10px;color:var(--terzo);display:block}
.piede-panel{
  display:flex;align-items:center;gap:9px;flex-wrap:wrap;
  padding:8px 12px;border-top:1px solid var(--hair);background:var(--sezione);
}
.leg{display:flex;align-items:center;gap:5px;font-size:9px;letter-spacing:.06em;text-transform:uppercase;color:var(--terzo)}
.leg .pallino{width:6px;height:6px}
.piede-panel .tot{
  margin-left:auto;font-family:'IBM Plex Mono',monospace;font-size:9.5px;
  color:var(--terzo);white-space:nowrap;font-variant-numeric:tabular-nums;
}
.note-strat{margin:8px 2px 0;font-size:10.5px;line-height:1.5;color:var(--terzo)}
.note-strat div{display:flex;gap:6px}
.note-strat div+div{margin-top:3px}
.note-strat .k{color:var(--oro);font-weight:600;flex:none;letter-spacing:.04em}

/* linea del tempo delle esecuzioni */
.tl-riga{display:grid;grid-template-columns:40px 14px 1fr;gap:8px;position:relative;padding:9px 12px}
.tl-riga+.tl-riga{border-top:1px solid var(--hair)}
.tl-ora{
  font-family:'IBM Plex Mono',monospace;font-size:10px;color:var(--terzo);
  line-height:1.35;padding-top:3px;font-variant-numeric:tabular-nums;
}
.tl-ora b{display:block;color:var(--sec);font-weight:600;font-size:10.5px}
.tl-rail{position:relative}
.tl-rail::before{
  content:"";position:absolute;left:50%;top:-11px;bottom:-11px;width:1px;
  background:var(--hair-forte);transform:translateX(-.5px);
}
.tl-riga:first-child .tl-rail::before{top:9px}
.tl-riga:last-child .tl-rail::before{bottom:auto;height:9px}
.tl-nodo{
  position:absolute;left:50%;top:6px;width:7px;height:7px;border-radius:50%;
  background:var(--card);border:1.5px solid var(--terzo);transform:translateX(-50%);z-index:1;
}
.tl-riga.ora .tl-nodo{background:var(--primario);border-color:var(--primario);box-shadow:0 0 0 3px var(--su-bg)}
.tl-corpo{min-width:0}
.tl-riga.ora .tl-corpo{
  border:1px solid var(--su-bg);background:var(--su-bg);
  border-radius:10px;padding:7px 9px;margin:-4px 0 -3px;
}
.tl-cap{display:flex;align-items:center;gap:7px}
.tl-tag{
  font-size:8px;letter-spacing:.1em;text-transform:uppercase;font-weight:600;
  color:var(--sec);background:var(--chip-bg);border-radius:5px;padding:1.5px 5px;
}
.tl-riga.ora .tl-tag{color:var(--su-testo)}
.tl-pl{margin-left:auto;font-family:'IBM Plex Mono',monospace;font-size:10.5px;font-weight:600;font-variant-numeric:tabular-nums}
.tl-pl.nulla{color:var(--terzo);font-weight:500}
.tl-testo{font-size:12px;margin-top:4px;line-height:1.4}

/* maturità: quanto track record ha accumulato ogni strategia */
.mat-riga{display:grid;grid-template-columns:14px 78px 1fr 58px;align-items:center;gap:8px;padding:9px 12px}
.mat-riga+.mat-riga{border-top:1px solid var(--hair)}
.mat-n{font-family:'IBM Plex Mono',monospace;font-size:9.5px;color:var(--terzo);font-weight:600;text-align:right}
.mat-nome{min-width:0}
.mat-nome .nm{font-size:12px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.mat-nome .sb{
  font-family:'IBM Plex Mono',monospace;font-size:9px;color:var(--terzo);
  letter-spacing:.02em;margin-top:1px;white-space:nowrap;
}
.mat-bar{position:relative}
.mat-track{height:7px;border-radius:4px;background:var(--chip-bg);position:relative;overflow:hidden;border:1px solid var(--hair)}
.mat-fill{
  position:absolute;left:0;top:0;bottom:0;border-radius:4px;min-width:5px;
  background:linear-gradient(90deg,var(--su-bg),var(--primario));
}
.mat-fill.ferma{background:linear-gradient(90deg,var(--chip-bg),var(--oro));opacity:.9}
.mat-grid{position:absolute;top:0;bottom:0;width:1px;background:var(--hair-forte);opacity:.7}
.mat-gg{position:absolute;right:0;top:-13px;font-family:'IBM Plex Mono',monospace;font-size:8.5px;color:var(--terzo)}
.mat-rend{text-align:right;font-family:'IBM Plex Mono',monospace;font-size:11.5px;font-weight:600;font-variant-numeric:tabular-nums}
.mat-rend small{display:block;font-size:9px;font-weight:500;color:var(--terzo);margin-top:1px}

/* capitale operativo: il conto vero, separato e sobrio */
.operativo{display:flex;align-items:center;gap:9px;margin-top:12px;padding-top:11px;border-top:1px solid var(--hair)}
.operativo .ico{width:16px;height:16px;color:var(--oro);flex:none}
.operativo .t{font-size:10px;letter-spacing:.11em;text-transform:uppercase;color:var(--terzo);font-weight:600}
.operativo .s{font-size:10px;color:var(--terzo);margin-top:1px}
.operativo .v{margin-left:auto;text-align:right;white-space:nowrap}
.operativo .v .n{font-family:'IBM Plex Mono',monospace;font-size:12.5px;font-weight:600;color:var(--sec);font-variant-numeric:tabular-nums}
.operativo .v .u{font-size:9px;letter-spacing:.08em;text-transform:uppercase;color:var(--terzo);margin-top:1px}

@media (max-width:390px){
  .st-riga{grid-template-columns:1fr 42px 58px 42px 16px 7px 6px;padding-left:10px;padding-right:10px}
  .st-spark{width:42px}
  .mat-riga{grid-template-columns:12px 66px 1fr 52px;gap:6px}
}

/* Pannelli e sezioni */
.sec-title{margin:20px 2px 8px;display:flex;align-items:baseline;justify-content:space-between}
.sec-title .lab-r{font-size:10px;letter-spacing:.08em;text-transform:uppercase;color:var(--terzo)}
.panel{background:var(--card);border:1px solid var(--hair);border-radius:14px;overflow:hidden}
.panel-pad{padding:14px}

/* KPI */
.kpi-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr))}
.kpi{padding:12px 12px 11px;border-bottom:1px solid var(--hair)}
.kpi:nth-child(3n+1){border-right:1px solid var(--hair)}
.kpi:nth-child(3n+2){border-right:1px solid var(--hair)}
.kpi:nth-child(n+4){border-bottom:0}
.kpi .lab{font-size:9px;letter-spacing:.1em}
.kpi-v{font-family:var(--font-display);font-style:var(--display-style);font-weight:var(--display-weight);font-size:17px;margin-top:4px;white-space:nowrap;font-variant-numeric:tabular-nums}
.kpi-v.mono{font-family:'IBM Plex Mono',monospace;font-style:normal;font-weight:600;font-size:15px}
.kpi-sotto{font-size:10.5px;margin-top:1px}

/* Grafici */
.chart{display:block;width:100%;height:auto}
.chart-wrap{padding:12px 10px 6px}
.chart-glow{filter:var(--glow)}
.chart-legend{display:flex;gap:16px;margin:4px 12px 10px;font-size:11px;color:var(--sec)}
.chart-legend .dot{display:inline-block;width:8px;height:8px;border-radius:2px;margin-right:6px;vertical-align:middle}
.chart-stats{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--hair)}
.chart-stats>div{padding:9px 12px}
.chart-stats>div+div{border-left:1px solid var(--hair)}
.chart-stats .lab{font-size:8.5px}
.chart-stats .tnum{font-size:12.5px;font-weight:600;margin-top:2px}

/* I due libri */
.libri-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.libro{background:var(--card);border:1px solid var(--hair);border-radius:14px;padding:12px 13px}
.libro-head{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:8px}
.libro-head .nm{font-size:14px;font-weight:600}
.libro-head .quota{font-size:10px;color:var(--terzo);font-weight:500}
.libro table{width:100%;border-collapse:collapse;font-size:11px}
.libro td{padding:4.5px 0;border-top:1px solid var(--hair);color:var(--sec)}
.libro td:last-child{text-align:right;color:var(--testo);font-weight:500}
.libro-stato{display:flex;align-items:center;gap:6px;margin-top:9px;font-size:10px;letter-spacing:.08em;text-transform:uppercase;font-weight:600}
.libro-stato .pallino{width:6px;height:6px;border-radius:50%;flex:none}

/* Tabelle dati */
.scroll-x{overflow-x:auto}
.tabella{width:100%;border-collapse:collapse;font-size:11.5px;white-space:nowrap}
.tabella th{
  text-align:right;font-weight:600;font-size:9px;letter-spacing:.1em;text-transform:uppercase;
  color:var(--terzo);padding:10px 10px 8px 0;border-bottom:1px solid var(--hair);
}
.tabella th:first-child{text-align:left;padding-left:12px}
.tabella td{padding:9px 10px 9px 0;border-bottom:1px solid var(--hair);color:var(--sec);text-align:right}
.tabella td:first-child{text-align:left;padding-left:12px}
.tabella tr:last-child td{border-bottom:0}
.tabella b{color:var(--testo);font-weight:600}
.tabella tr[data-sym]{cursor:pointer}
.tabella tr[data-sym]:hover td{background:var(--sezione)}
.o-nome{font-size:9px;letter-spacing:.05em;text-transform:uppercase;color:var(--terzo);display:block;margin-top:1px}

/* Chip e badge */
.chip-pl{
  display:inline-block;font-family:'IBM Plex Mono',monospace;font-size:10.5px;font-weight:600;
  border-radius:6px;padding:2px 6px;
}
.chip-pl.su{background:var(--su-bg);color:var(--su-testo)}
.chip-pl.giu{background:var(--giu-bg);color:var(--giu-testo)}
.v-badge{font-size:8.5px;letter-spacing:.1em;border-radius:6px;padding:2.5px 7px;border:1px solid;font-weight:600}
.b-oro{color:var(--primario);border-color:var(--primario);background:var(--su-bg)}
.b-bronzo{color:var(--sec);border-color:var(--hair-forte)}
.b-verde{color:var(--su-testo);border-color:transparent;background:var(--su-bg)}
.b-muto{color:var(--sec);border-color:var(--hair-forte)}
.b-spento{color:var(--terzo);border-color:var(--hair)}
.up{color:var(--su)}
.down{color:var(--giu)}

/* Classifica momentum */
.rank-riga{display:flex;align-items:center;gap:9px;padding:7px 12px;border-bottom:1px solid var(--hair)}
.rank-riga:last-child{border-bottom:0}
.rank-n{width:16px;font-size:10px;color:var(--terzo);font-weight:600;text-align:right;flex:none}
.rank-sym{width:46px;font-size:12px;font-weight:600;flex:none}
.rank-barra{flex:1;height:5px;border-radius:3px;background:var(--chip-bg);position:relative;overflow:hidden}
.rank-fill{position:absolute;top:0;bottom:0;border-radius:3px}
.rank-val{width:52px;text-align:right;font-family:'IBM Plex Mono',monospace;font-size:10.5px;font-weight:600;flex:none}
.rank-stato{width:86px;text-align:right;font-size:8.5px;letter-spacing:.06em;text-transform:uppercase;color:var(--terzo);flex:none}
.rank-stato.in-port{color:var(--primario);font-weight:700}


.tl-riga{display:flex;gap:10px;padding:9px 12px;border-bottom:1px solid var(--hair);align-items:flex-start}
.tl-riga:last-child{border-bottom:0}
.tl-ora{font-family:'IBM Plex Mono',monospace;font-size:10px;color:var(--terzo);width:34px;flex:none;padding-top:2px}
.tl-icona{width:22px;height:22px;border-radius:7px;background:var(--su-bg);color:var(--primario);display:flex;align-items:center;justify-content:center;flex:none}
.tl-icona svg{width:12px;height:12px}
.tl-testo{font-size:12px;color:var(--testo);line-height:1.45}
.tl-testo small{display:block;color:var(--sec);font-size:10.5px}

/* Diario */
.chips{display:flex;gap:6px;margin:0 0 8px}
.chip{
  background:none;border:1px solid var(--hair-forte);border-radius:8px;color:var(--sec);
  font-family:inherit;font-size:11px;font-weight:500;padding:5px 11px;cursor:pointer;
}
.chip.on{color:var(--su-primario);background:var(--primario);border-color:var(--primario);font-weight:600}
.chip:not(.on):hover{color:var(--testo)}
.diario{max-height:480px;overflow-y:auto}
.voce{padding:11px 12px;border-bottom:1px solid var(--hair)}
.voce:last-child{border-bottom:0}
.voce-head{display:flex;align-items:center;gap:7px;flex-wrap:wrap}
.voce-sym{font-size:10.5px;letter-spacing:.06em;color:var(--sec);font-weight:600}
.voce-t{margin-left:auto;font-family:'IBM Plex Mono',monospace;font-size:9.5px;color:var(--terzo)}
.voce-titolo{font-size:12.5px;font-weight:600;margin-top:6px}
.voce-motivo{color:var(--sec);font-size:11.5px;line-height:1.55;margin:3px 0 0}
.voce-dati{font-family:'IBM Plex Mono',monospace;font-size:9.5px;color:var(--terzo);margin-top:5px}
.v-pl{font-family:'IBM Plex Mono',monospace;font-size:10.5px;font-weight:600}

/* Tesi Scout */
.tesi-card .conv{font-size:12px;font-weight:600;color:var(--primario);border:1px solid var(--primario);border-radius:6px;padding:1px 7px}
.invalidanti{margin-top:7px;background:var(--sezione);border:1px solid var(--hair);border-radius:8px;padding:7px 10px}
.invalidanti ul{margin:4px 0 0;padding-left:16px;color:var(--sec);font-size:11px;line-height:1.6}

/* Regole */
.regole{margin:2px 0 10px;padding-left:16px;color:var(--sec);font-size:12px;line-height:1.75}
.regole b{color:var(--testo);font-weight:600}
.regole-titolo{font-size:9.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--primario);font-weight:700;margin:10px 0 5px}
.nota{color:var(--terzo);font-size:11px;line-height:1.55;margin:8px 2px 2px}

/* Bottoni */
.pill{
  font-family:inherit;font-size:12px;font-weight:600;padding:8px 15px;border-radius:10px;cursor:pointer;
  border:1px solid var(--hair-forte);background:none;color:var(--testo);
}
.pill.buy{background:var(--primario);border-color:var(--primario);color:var(--su-primario)}
.pill:hover{border-color:var(--primario)}
.actions{display:flex;gap:8px}
.agent-bar{
  display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:14px;
  background:var(--card);border:1px solid var(--hair);border-radius:14px;padding:12px 14px;
}
.agent-sub{font-size:11px;color:var(--sec);margin-top:3px}
.wl{display:flex;flex-wrap:wrap;gap:5px;margin-top:8px}
.wl-chip{
  background:none;border:1px solid var(--hair);border-radius:7px;color:var(--sec);
  font-family:'IBM Plex Mono',monospace;font-size:9.5px;font-weight:500;padding:3px 7px;cursor:pointer;
}
.wl-chip:hover{border-color:var(--primario);color:var(--primario)}

/* Panoramica (patrimonio reale) */
.hero{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-top:18px}
.hero-left{flex:1;min-width:0}
.total{font-family:var(--font-display);font-style:var(--display-style);font-weight:var(--display-weight);font-size:clamp(34px,7.5vw,44px);line-height:1.05;margin-top:6px;font-variant-numeric:tabular-nums;letter-spacing:-.01em}
.total .eur{color:var(--primario);font-size:.55em;vertical-align:.15em;margin-right:.14em}
.period{margin-top:10px}
.period .v{font-size:14px}
.badge-live{color:var(--su);font-size:11px;font-weight:500;white-space:nowrap}
.badge-demo{color:var(--terzo);font-size:9.5px;letter-spacing:.07em;text-transform:uppercase}
.alloc{display:flex;align-items:center;gap:14px}
.legend{font-size:11.5px;line-height:1.9;color:var(--sec)}
.legend .dot{display:inline-block;width:8px;height:8px;border-radius:2px;margin-right:7px;vertical-align:middle}
.legend .pc{color:var(--terzo)}
.sec-grid{display:grid;grid-template-columns:1fr;gap:10px}
.card{background:var(--card);border:1px solid var(--hair);border-radius:14px;padding:14px}
.card.muted{opacity:.75;border-style:dashed}
.card-head{display:flex;align-items:center;gap:10px}
.card-head .nm{font-size:14px;font-weight:600}
.card-head .sub{font-size:9px;letter-spacing:.08em;text-transform:uppercase;color:var(--terzo);margin-top:2px}
.card .val{font-family:var(--font-display);font-style:var(--display-style);font-weight:var(--display-weight);font-size:22px;margin-top:10px;font-variant-numeric:tabular-nums}
.card .tot{font-size:11px;color:var(--sec);margin-top:3px}
.empty{color:var(--sec);font-size:12px;margin:8px 0 12px;line-height:1.5}
.holdings{margin:10px 0 12px}
.holding{display:flex;justify-content:space-between;gap:10px;font-size:12px;padding:6px 0;border-bottom:1px solid var(--hair)}
.holding span:first-child{color:var(--testo);font-weight:500}
.holding span{color:var(--sec)}
.sec-sola{max-width:460px;margin-top:18px}

/* Modal */
.modal{position:fixed;inset:0;background:rgba(4,12,9,.55);display:flex;align-items:center;justify-content:center;padding:16px;z-index:50}
.modal[hidden]{display:none}
.modal-card{background:var(--telefono);border:1px solid var(--hair);border-radius:16px;padding:20px;max-width:380px;width:100%}
.modal-card.wide{max-width:680px}
.modal-title{font-size:17px;font-weight:600;margin:0 0 8px}
.modal-body{color:var(--sec);font-size:13px;margin:0 0 14px;line-height:1.55}
.modal-extra{margin:0 0 14px}
.modal-extra:empty{display:none}
.btn-close{
  background:var(--primario);color:var(--su-primario);border:0;border-radius:10px;padding:9px 18px;
  font-family:inherit;font-size:13px;font-weight:600;cursor:pointer;
}

/* PIN: la porta del conto vero */
.chiusa{text-align:center;padding:28px 18px}
.chiusa-titolo{font-size:15px;font-weight:600;margin:0 0 6px}
.chiusa-testo{color:var(--sec);font-size:12.5px;line-height:1.55;margin:0 0 16px}
.pin-riga{display:flex;gap:8px}
.pin-input{
  flex:1;background:transparent;color:var(--testo);border:1px solid var(--hair);border-radius:10px;
  padding:10px 12px;font-family:'IBM Plex Mono',monospace;font-size:16px;letter-spacing:.18em;
}
.pin-input:focus{outline:none;border-color:var(--primario)}
.pin-btn{
  background:var(--primario);color:var(--su-primario);border:0;border-radius:10px;padding:0 16px;
  font-family:inherit;font-size:13px;font-weight:600;cursor:pointer;
}
.pin-btn:disabled{opacity:.6;cursor:default}
.pin-esito{color:var(--giu-testo,var(--sec));font-size:12px;margin:8px 0 0;min-height:16px}

/* Responsive */
@media (max-width:390px){
  body{padding:12px 8px}
  .wrap{padding:16px 12px 12px;border-radius:16px}
  .kpi-v{font-size:15px}
  .rank-stato{display:none}
}
@media (min-width:700px){
  .wrap{max-width:640px}
}
@media (prefers-reduced-motion:reduce){
  *{transition:none!important;animation:none!important}
}
