/* navigazione a tre voci */
.side { overflow-y: auto; }
.nav3 { gap: 4px; }
.nav3 .top { color: var(--side-ink); font-weight: 650; font-size: 14.5px; line-height: 1.2; align-items: flex-start; padding: 10px 12px; }
.nav3 .top .num { font-family: var(--f-mono); font-size: 11px; width: 20px; height: 20px; border-radius: 50%; display: inline-grid; place-items: center; background: var(--side-hi); color: var(--side-muted); flex: none; margin-top: -1px; }
.nav3 .top[aria-current] .num, .nav3 .top.open .num { background: var(--accent); color: var(--accent-ink); }
.nav3 .top[aria-current="page"] { background: var(--side-hi); }
.nav3 .subnav { display: flex; flex-direction: column; gap: 1px; padding: 2px 0 10px 18px; margin-left: 10px; border-left: 1px solid var(--side-hi); }
.nav3 .subnav .side-label { padding: 10px 12px 3px; font-size: 9.5px; }
.nav3 .subnav button { font-size: 13.5px; padding: 6px 10px; }
.setbtn { all: unset; cursor: pointer; color: var(--side-muted); font-size: 13.5px; font-weight: 600; padding: 8px 12px; border-radius: 10px; }
.setbtn:hover, .setbtn[aria-current="page"] { color: var(--side-ink); background: var(--side-hi); }
.setbtn:focus-visible { outline: 2px solid var(--focus); }
.msub { display: none; }
.nav3 .ls { display: none; }
.shell-soci, .app.soci { grid-template-columns: minmax(0, 1fr); }
.app.soci .side { display: none; }

/* componenti comuni */
.linkbtn { all: unset; cursor: pointer; color: var(--ink); text-decoration: underline; text-decoration-color: var(--line); text-underline-offset: 3px; }
.linkbtn:hover { text-decoration-color: currentColor; }
.linkbtn:focus-visible { outline: 2px solid var(--focus); border-radius: 3px; }
.linkbtn.small { font-size: 12.5px; color: var(--ink-2); }
a.linkbtn { color: var(--ink-2); }
.err { color: var(--crit); font-size: 13px; margin: 0; }
.pos { color: var(--good); }
td.wrap { white-space: normal; min-width: 160px; max-width: 360px; }
td.nowrap { white-space: nowrap; }
.inl { display: inline-flex; align-items: center; gap: 6px; flex-wrap: nowrap; }
.inl .in { width: auto; }
.qrow { display: flex; flex-wrap: wrap; gap: 12px; align-items: flex-end; }
.qrow .field { min-width: 140px; }
.qrow .field.grow { flex: 1; min-width: 220px; }
.kpis.k2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.kpi.crit-t { background: var(--crit-bg); border-color: var(--crit); }
.kpi.crit-t .big { color: var(--crit); }
.kpi .note .chip { margin-left: 4px; }
.chip.ghost-chip { border: 1px dashed var(--muted); color: var(--muted); padding: 2px 7px; }
.banner.crit { background: var(--crit-bg); }
.banner.crit b { color: var(--crit); }
.banner.info b { color: var(--good); }
.fields.wide { grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); }
.checks { display: grid; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); gap: 10px 16px; }
.chart-empty { padding: 28px 16px; }

/* ciambelle */
.donut { display: grid; grid-template-columns: minmax(0, 200px) minmax(0, 1fr); gap: 18px; align-items: center; }
.donut .chart svg { max-width: 200px; margin: 0 auto; }
.dleg { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 6px; font-size: 13px; min-width: 0; }
.dleg li { display: grid; grid-template-columns: 12px minmax(0, 1fr) auto auto; gap: 8px; align-items: baseline; }
.dleg li i { width: 10px; height: 10px; border-radius: 3px; display: inline-block; }
.dleg li span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.dleg li b { font-variant-numeric: tabular-nums; }
.dleg li small { color: var(--muted); font-variant-numeric: tabular-nums; min-width: 52px; text-align: right; }

/* clienti */
table.clients-t tr.sel td { background: var(--surface-2); }
table.clients-t td .chip { margin: 1px 0; }
tr.editrow > td { padding: 0 !important; text-align: left; white-space: normal; background: var(--surface-2); }
.editor { padding: 16px; display: flex; flex-direction: column; gap: 14px; border-bottom: 1.5px solid var(--ink); }
.editor .in { background: var(--surface); }
.editor h3 { margin-top: 4px; }

/* scadenziario */
.sumgrid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)) minmax(0, 1.1fr); gap: 14px; }
.sum .trio { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; }
.sum .trio small { display: block; font-size: 11.5px; color: var(--muted); font-weight: 600; }
.sum .trio b { font-family: var(--f-display); font-size: 24px; font-weight: 700; font-variant-numeric: tabular-nums; letter-spacing: -0.02em; }
.sum.sum-in { border-top: 4px solid var(--s1); } .sum.sum-out { border-top: 4px solid var(--s2); }
table.sc tr.muted td { color: var(--muted); }
.match { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; }
.match .btn.sm { padding: 4px 10px; font-size: 12px; white-space: nowrap; }

/* fatture */
.bozze { border-color: var(--accent); }
.bozza { border: 1.5px dashed var(--line); border-radius: 16px; padding: 14px; display: flex; flex-direction: column; gap: 12px; }
.skel { height: 64px; border-radius: 12px; background: linear-gradient(90deg, var(--surface-2), var(--line), var(--surface-2)); background-size: 200% 100%; animation: sk 1.2s linear infinite; }
@keyframes sk { to { background-position: -200% 0; } }

/* previsioni */
.formula-p .eq { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 10px; }
.formula-p .eq span { background: var(--surface-2); border-radius: 14px; padding: 10px 12px; display: flex; flex-direction: column; min-width: 0; }
.formula-p .eq span small { font-size: 11.5px; color: var(--ink-2); font-weight: 600; }
.formula-p .eq span b { font-family: var(--f-display); font-size: 19px; font-variant-numeric: tabular-nums; }
.formula-p .eq span.res { background: var(--ink); color: var(--bg); }
.formula-p .eq span.res small { color: inherit; opacity: .75; }
.formula-p .eq i { font-style: normal; font-family: var(--f-display); font-size: 22px; color: var(--muted); }
table.ce th small { font-weight: 500; text-transform: none; letter-spacing: 0; font-size: 10px; }
table.ce .prev { background: color-mix(in srgb, var(--surface-2) 70%, transparent); }
table.ce th.prev { background: var(--surface-2); }
.wigrid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px 28px; }
.sl2 { display: flex; flex-direction: column; gap: 4px; }
.sl2 .slh { display: flex; justify-content: space-between; align-items: baseline; gap: 8px; font-size: 13px; font-weight: 600; color: var(--ink-2); }
.sl2 .slh b { font-family: var(--f-display); font-size: 17px; color: var(--ink); white-space: nowrap; font-variant-numeric: tabular-nums; }
.sl2 input[type=range] { width: 100%; accent-color: var(--accent); height: 22px; cursor: pointer; }
.mkgrid { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 12px; }
.kpi.mk { min-height: 170px; }
.kpi.mk .big { font-size: clamp(24px, 2.4vw, 34px); }
.kpi.mk code.k { margin-top: 4px; white-space: normal; font-size: 11px; line-height: 1.35; background: rgba(127,127,127,.12); }
.kpi.hot code.k, .kpi.inv code.k { color: inherit; }

/* Venture Building / Product Launch dentro il cruscotto */
body { margin: 0; }
#slimhost { display: flex; flex-direction: column; gap: 20px; max-width: none; margin: 0; padding: 0; }
.in.w-c { width: 130px; }
#slimhost .head h1 em { color: var(--accent); }

@media (max-width: 1100px) {
  .mkgrid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .sumgrid { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 860px) {
  .nav3 { flex-direction: row; }
  .nav3 .subnav { display: none; }
  .nav3 .top { font-size: 13px; padding: 7px 11px; white-space: nowrap; align-items: center; }
  .nav3 .top .num { display: none; }
  .msub { display: flex; flex-direction: column; gap: 4px; }
  .nav3 .lf { display: none; } .nav3 .ls { display: inline; }
  .side-foot .setbtn { padding: 6px 10px; }
  .msub .side-label { color: var(--muted); padding: 0; }
  .wigrid { grid-template-columns: minmax(0, 1fr); }
  .donut { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 520px) {
  .mkgrid, .kpis.k2 { grid-template-columns: minmax(0, 1fr); }
  .sum .trio b { font-size: 19px; }
}
/* dashboard */
.secgrid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
.secard { gap: 12px; }
.secard .sec-h { all: unset; cursor: pointer; display: flex; align-items: center; gap: 10px; }
.secard .sec-h:focus-visible { outline: 2px solid var(--focus); border-radius: 8px; }
.secard .sec-h .num { font-family: var(--f-mono); font-size: 11px; width: 22px; height: 22px; border-radius: 50%; display: inline-grid; place-items: center; background: var(--accent); color: var(--accent-ink); flex: none; }
.secard .sec-h .arr { margin-left: auto; font-size: 18px; color: var(--muted); transition: transform .15s; }
.secard .sec-h:hover .arr { transform: translateX(3px); color: var(--ink); }
.secard .stats { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.secard .stat b { font-size: 19px; }
.secard .row-actions { margin-top: auto; }
.toplist { display: flex; flex-direction: column; gap: 7px; }
.toplist .tl { display: grid; grid-template-columns: minmax(0, 130px) minmax(0, 1fr) 48px; gap: 10px; align-items: center; font-size: 13px; }
.toplist .tl span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.toplist .tl i { height: 10px; border-radius: 99px; display: block; }
.toplist .tl b { text-align: right; font-variant-numeric: tabular-nums; }
.gauge { display: flex; flex-direction: column; gap: 10px; }
.gauge .g { display: grid; grid-template-columns: 120px minmax(0, 1fr) 56px; gap: 10px; align-items: center; font-size: 13px; }
.gauge .g b { text-align: right; font-variant-numeric: tabular-nums; }
.tlink { all: unset; cursor: pointer; text-decoration: underline; text-decoration-color: rgba(255,255,255,.3); text-underline-offset: 3px; }
.tlink:hover { text-decoration-color: currentColor; }
.tlink:focus-visible { outline: 2px solid var(--focus); }
@media (max-width: 1100px) { .secgrid { grid-template-columns: minmax(0, 1fr); } }
@media (max-width: 520px) { .secard .stats { grid-template-columns: minmax(0, 1fr); } .toplist .tl { grid-template-columns: minmax(0, 90px) minmax(0, 1fr) 44px; } }

/* panoramica */
.area { display: flex; flex-direction: column; gap: 14px; }
.area-h { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; }
.area-h > div { flex: 1; min-width: 200px; }
.area-h p { margin: 2px 0 0; }
.area-h .num { font-family: var(--f-mono); font-size: 12px; width: 26px; height: 26px; border-radius: 50%; display: inline-grid; place-items: center; background: var(--ink); color: var(--bg); flex: none; }
.area.a2, .area.a3 { border-radius: var(--r-tile); padding: 18px 20px; }
.area.a2 { background: var(--t1); color: var(--tile-ink); } .area.a3 { background: var(--t2); color: var(--tile-ink); }
.area.a2 h2, .area.a3 h2 { color: var(--tile-ink); }
.areas2 { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
.hlist { display: flex; flex-direction: column; gap: 6px; }
.hrow { all: unset; cursor: pointer; box-sizing: border-box; display: grid; grid-template-columns: 12px minmax(0, 1fr) minmax(0, 110px) minmax(0, 110px); gap: 12px; align-items: center; background: rgba(255,255,255,.6); border-radius: 14px; padding: 10px 14px; color: var(--tile-ink); }
.hrow:hover { background: rgba(255,255,255,.85); }
.hrow:focus-visible { outline: 2px solid var(--focus); }
.hrow .hn { display: flex; flex-direction: column; min-width: 0; } .hrow .hn b { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } .hrow small { font-size: 11.5px; opacity: .7; }
.hrow .hv { display: flex; flex-direction: column; text-align: right; } .hrow .hv b { font-variant-numeric: tabular-nums; font-size: 14px; }
.hrow .neg { color: #A1201B; }
.area .chart-empty { background: rgba(255,255,255,.45); border-color: rgba(0,0,0,.12); color: var(--tile-ink); }
.dotv { display: inline-block; width: 10px; height: 10px; border-radius: 50%; vertical-align: 0; }
.dotv.good { background: var(--good); } .dotv.warn { background: var(--warn); } .dotv.crit { background: var(--crit); }
@media (max-width: 1100px) { .areas2 { grid-template-columns: minmax(0, 1fr); } }
@media (max-width: 520px) { .hrow { grid-template-columns: 12px minmax(0, 1fr) minmax(0, 90px); } .hrow .hv:last-child { display: none; } }
