/* Palette indipendente, coordinata con il portfolio principale. */

:root {
  --ink: #10131B;
  --brand: #7EA6FF;
  --surface: #FFFFFF;
  --surface-alt: #F2F4F1;
  --positivo: #67C239;
  --negativo: #F46C6C;

  --sfondo: #EAF0FF;
  --testo: var(--ink);
  --testo-tenue: #596174;
  --bordo: #DDE3F0;
  --scheda: var(--surface);

  --raggio: 16px;
  --raggio-piccolo: 10px;
  --ombra: 0 1px 2px rgba(16, 19, 27, .06), 0 8px 24px rgba(16, 19, 27, .06);
}

/* Il tema scuro parte dalla preferenza di sistema ed e' sovrascrivibile con il toggle. */
@media (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]) {
    --sfondo: #0D1018;
    --testo: #F3F6EE;
    --testo-tenue: #A6ADBD;
    --bordo: #293044;
    --scheda: #171B27;
    --surface-alt: #202637;
    --ombra: none;
  }
}

:root[data-theme="dark"] {
  --sfondo: #0D1018;
  --testo: #F3F6EE;
  --testo-tenue: #A6ADBD;
  --bordo: #293044;
  --scheda: #171B27;
  --surface-alt: #202637;
  --ombra: none;
}

* { box-sizing: border-box; }

body {
  margin: 0;
  padding: 0 1rem 4rem;
  background: var(--sfondo);
  color: var(--testo);
  font-family: "Inter", "Segoe UI", system-ui, -apple-system, sans-serif;
  font-size: 16px;
  line-height: 1.5;
  -webkit-font-smoothing: antialiased;
}

/* --- intestazione --- */

.intestazione {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 1rem;
  max-width: 1080px;
  margin: 0 auto;
  padding: 1.5rem 0;
}

.controlli-intestazione { display: flex; align-items: center; gap: .6rem; }

.lingua-switch {
  display: inline-flex;
  gap: .2rem;
  padding: .2rem;
  border: 1px solid var(--bordo);
  border-radius: 999px;
  background: var(--scheda);
}

.lingua-button {
  width: 34px;
  height: 30px;
  border: 0;
  border-radius: 999px;
  background: transparent;
  font-size: 1rem;
  line-height: 1;
  cursor: pointer;
  opacity: .52;
  transition: background .18s, opacity .18s;
}

.lingua-button:hover { opacity: .82; }
.lingua-button[aria-pressed="true"] { background: var(--surface-alt); opacity: 1; }
.lingua-button:focus-visible { outline: 2px solid var(--testo); outline-offset: 2px; }

.tema {
  border: 1px solid var(--bordo);
  background: var(--scheda);
  color: var(--testo);
  border-radius: 999px;
  padding: .45rem 1rem;
  font-size: .85rem;
  cursor: pointer;
}

.tema:hover { border-color: var(--testo-tenue); }

/* --- layout --- */

.contenuto { max-width: 1080px; margin: 0 auto; }

.titolo { margin-bottom: 1.5rem; }
.titolo h1 { font-size: 1.9rem; line-height: 1.2; margin: 0 0 .5rem; letter-spacing: -.02em; }
.titolo p { margin: 0; color: var(--testo-tenue); max-width: 46ch; }

.eyebrow {
  display: block;
  margin-bottom: .55rem;
  font-size: .76rem;
  font-weight: 700;
  letter-spacing: .09em;
  text-transform: uppercase;
}

.vista-switch {
  display: inline-flex;
  gap: .25rem;
  margin: 0 0 1.25rem;
  padding: .25rem;
  border: 1px solid var(--bordo);
  border-radius: 999px;
  background: var(--scheda);
  box-shadow: var(--ombra);
}

.vista-switch button {
  border: 0;
  border-radius: 999px;
  padding: .58rem .9rem;
  background: transparent;
  color: var(--testo-tenue);
  font: inherit;
  font-size: .82rem;
  font-weight: 650;
  cursor: pointer;
}

.vista-switch button[aria-selected="true"] { background: var(--ink); color: #FFF; }
:root[data-theme="dark"] .vista-switch button[aria-selected="true"] { background: var(--brand); color: var(--ink); }
.vista-switch button:focus-visible { outline: 2px solid var(--ink); outline-offset: 2px; }
:root[data-theme="dark"] .vista-switch button:focus-visible { outline-color: var(--brand); }

[hidden] { display: none !important; }

.griglia { display: grid; gap: 1rem; align-items: start; }

@media (min-width: 860px) {
  .griglia { grid-template-columns: 360px 1fr; }
  .titolo h1 { font-size: 2.4rem; }
  /* Il form resta a vista mentre si scorrono i risultati. Solo da qui in su: su mobile la
     colonna e' unica e un form sticky coprirebbe il breakdown invece di affiancarlo. */
  .modulo { position: sticky; top: 1rem; }
}

@media (min-width: 860px) {
  .griglia-app { grid-template-columns: 400px 1fr; }
  .griglia-app .modulo { position: static; }
}

.scheda {
  background: var(--scheda);
  border: 1px solid var(--bordo);
  border-radius: var(--raggio);
  padding: 1.25rem;
  box-shadow: var(--ombra);
}

.scheda + .scheda, .risultati > * + * { margin-top: 1rem; }

.scheda h2 {
  font-size: .8rem;
  text-transform: uppercase;
  letter-spacing: .08em;
  color: var(--testo-tenue);
  margin: 0 0 1rem;
}

/* --- form --- */

.campo { margin-bottom: 1.1rem; }

.gruppo-form + .gruppo-form {
  border-top: 1px solid var(--bordo);
  padding-top: 1.1rem;
  margin-top: 1.1rem;
}

.gruppo-form h2, .ambiente > summary {
  color: var(--testo);
  font-size: .86rem;
  font-weight: 700;
  letter-spacing: 0;
  text-transform: none;
  margin: 0 0 1rem;
}

.campo label {
  display: block;
  font-size: .85rem;
  font-weight: 600;
  margin-bottom: .4rem;
}

input[type="number"], input[type="text"], input[type="date"], select {
  width: 100%;
  padding: .7rem .85rem;
  border: 1px solid var(--bordo);
  border-radius: var(--raggio-piccolo);
  background: var(--surface-alt);
  color: var(--testo);
  font: inherit;
}

input:disabled { opacity: .75; cursor: not-allowed; }

.input-percentuale { position: relative; }
.input-percentuale input { padding-right: 2rem; }
.input-percentuale span { position: absolute; right: .8rem; top: 50%; transform: translateY(-50%); color: var(--testo-tenue); }

.due-colonne { display: grid; grid-template-columns: 1fr 1fr; gap: .75rem; }

.check {
  display: flex;
  align-items: center;
  gap: .65rem;
  padding: .7rem .8rem;
  margin-bottom: 1rem;
  border: 1px solid var(--bordo);
  border-radius: var(--raggio-piccolo);
  background: var(--surface-alt);
  font-size: .86rem;
  font-weight: 600;
  cursor: pointer;
}

.check input { width: 1rem; height: 1rem; accent-color: var(--ink); }

.campi-coniuge {
  padding: .85rem;
  margin: -.35rem 0 1rem;
  border: 1px solid var(--bordo);
  border-radius: var(--raggio-piccolo);
}

.campi-coniuge .campo { margin-bottom: 0; }

.testa-figli {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: .75rem;
  margin: 1rem 0 .75rem;
}

.testa-figli h3 { margin: 0; font-size: .86rem; }
.testa-figli p { margin: .15rem 0 0; color: var(--testo-tenue); font-size: .74rem; }

.aggiungi-figlio, .rimuovi-figlio {
  border: 1px solid var(--bordo);
  border-radius: 999px;
  background: var(--scheda);
  color: var(--testo);
  font: inherit;
  font-size: .75rem;
  font-weight: 650;
  cursor: pointer;
}

.aggiungi-figlio { flex: 0 0 auto; padding: .45rem .7rem; }
.rimuovi-figlio { padding: .25rem .55rem; color: var(--negativo); }
.aggiungi-figlio:hover, .rimuovi-figlio:hover { border-color: var(--testo-tenue); }

.figli-lista { display: grid; gap: .75rem; }

.figlio-card {
  padding: .85rem;
  border: 1px solid var(--bordo);
  border-radius: var(--raggio-piccolo);
  background: var(--surface-alt);
}

.figlio-card .testa-figlio { display: flex; align-items: center; justify-content: space-between; margin-bottom: .75rem; }
.figlio-card .testa-figlio strong { font-size: .82rem; }
.figlio-card .campo { margin-bottom: .75rem; }
.figlio-card .check { margin: 0; padding: .55rem .65rem; background: var(--scheda); }
.figlio-card .nota-figlio { margin-top: 0; }

.ambiente { border-top: 1px solid var(--bordo); padding-top: 1.1rem; margin: 1.1rem 0; }
.ambiente > summary { cursor: pointer; margin-bottom: 0; }
.ambiente[open] > summary { margin-bottom: .8rem; }

input:focus, select:focus {
  outline: 2px solid var(--ink);
  outline-offset: 1px;
  background: var(--scheda);
}

:root[data-theme="dark"] input:focus,
:root[data-theme="dark"] select:focus { outline-color: var(--brand); }

.input-valuta { position: relative; }
.input-valuta span {
  position: absolute;
  left: .85rem;
  top: 50%;
  transform: translateY(-50%);
  color: var(--testo-tenue);
  pointer-events: none;
}
.input-valuta input { padding-left: 1.9rem; }

.nota-campo {
  margin: .4rem 0 0;
  font-size: .78rem;
  line-height: 1.35;
  color: var(--testo-tenue);
}

.derivato {
  margin: .45rem 0 0;
  font-size: .82rem;
  color: var(--testo-tenue);
  min-height: 1.2em;
}
.derivato.attivo { color: var(--testo); font-weight: 600; }

/* --- autocomplete --- */

.autocomplete { position: relative; }

.suggerimenti {
  position: absolute;
  z-index: 20;
  top: calc(100% + 4px);
  left: 0;
  right: 0;
  margin: 0;
  padding: .25rem;
  list-style: none;
  background: var(--scheda);
  border: 1px solid var(--bordo);
  border-radius: var(--raggio-piccolo);
  box-shadow: 0 12px 28px rgba(17, 21, 10, .16);
  max-height: 17rem;
  overflow-y: auto;
}

.suggerimenti li {
  padding: .5rem .6rem;
  border-radius: 8px;
  cursor: pointer;
  font-size: .9rem;
}

.suggerimenti li small { color: var(--testo-tenue); }
.suggerimenti li[aria-selected="true"], .suggerimenti li:hover { background: var(--surface-alt); }
.suggerimenti .vuoto { color: var(--testo-tenue); cursor: default; }

/* --- bottone --- */

.calcola {
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: .6rem;
  padding: .85rem 1rem;
  border: 0;
  border-radius: var(--raggio-piccolo);
  background: var(--ink);
  color: #FFF;
  font: inherit;
  font-weight: 600;
  cursor: pointer;
}

.calcola:hover { opacity: .9; }
.calcola:disabled { opacity: .55; cursor: progress; }
:root[data-theme="dark"] .calcola { background: var(--brand); color: var(--ink); }

.errore {
  margin: .8rem 0 0;
  padding: .6rem .75rem;
  border-radius: var(--raggio-piccolo);
  background: rgba(244, 108, 108, .14);
  color: var(--negativo);
  font-size: .87rem;
}

/* --- risultati --- */

.pannello-vista > * + * { margin-top: 1rem; }

.raccomandazione { border-color: var(--ink); }
:root[data-theme="dark"] .raccomandazione { border-color: var(--brand); }
.raccomandazione > h2 { color: var(--testo); font-size: 1.65rem; letter-spacing: -.025em; text-transform: none; margin: .65rem 0 .35rem; }
.raccomandazione > p { color: var(--testo-tenue); margin: 0 0 1.25rem; }
.raccomandazione .nota-risparmio { margin: .75rem 0 0; font-size: .74rem; }
.badge { display: inline-block; padding: .25rem .55rem; border-radius: 999px; background: var(--brand); color: var(--ink); font-size: .72rem; font-weight: 700; }

.metriche { display: grid; grid-template-columns: repeat(3, 1fr); gap: .7rem; }
.metriche > div { padding: .8rem; border-radius: var(--raggio-piccolo); background: var(--surface-alt); }
.metriche span { display: block; color: var(--testo-tenue); font-size: .73rem; margin-bottom: .25rem; }
.metriche strong { display: block; font-size: 1.25rem; letter-spacing: -.02em; }
.metriche-baseline { grid-template-columns: repeat(4, 1fr); }

.tabella-wrap { overflow-x: auto; margin: 0 -.25rem; padding: 0 .25rem; }
.confronto { width: 100%; border-collapse: collapse; font-size: .82rem; white-space: nowrap; }
.confronto th, .confronto td { padding: .75rem .55rem; text-align: right; border-bottom: 1px solid var(--bordo); font-variant-numeric: tabular-nums; }
.confronto th:first-child { text-align: left; }
.confronto thead th { color: var(--testo-tenue); font-size: .7rem; text-transform: uppercase; letter-spacing: .04em; }
.confronto tbody tr:last-child th, .confronto tbody tr:last-child td { border-bottom: 0; }
.confronto .consigliato { background: rgba(197, 221, 161, .28); }
.nota-tabella, .nota-fonte { margin: .8rem 0 0; color: var(--testo-tenue); font-size: .76rem; }

.testa-grafico { display: flex; align-items: flex-start; justify-content: space-between; gap: 1rem; margin-bottom: 1.15rem; }
.testa-grafico h2 { margin: .3rem 0 0; }
.testa-grafico > div { text-align: right; }
.testa-grafico span { display: block; color: var(--testo-tenue); font-size: .72rem; }
.testa-grafico strong { display: block; font-size: 1.55rem; letter-spacing: -.025em; }

.costo-stack {
  display: flex;
  width: 100%;
  height: 52px;
  overflow: hidden;
  border-radius: var(--raggio-piccolo);
  background: var(--surface-alt);
}

.segmento-costo {
  display: flex;
  align-items: center;
  justify-content: center;
  min-width: 3px;
  color: var(--ink);
  font-size: .7rem;
  font-weight: 750;
  white-space: nowrap;
  cursor: help;
}

.segmento-costo:focus-visible {
  position: relative;
  z-index: 2;
  outline: 3px solid var(--testo);
  outline-offset: -3px;
}

.grafico-tooltip {
  position: fixed;
  z-index: 100;
  max-width: min(240px, calc(100vw - 24px));
  padding: .55rem .7rem;
  border: 1px solid var(--bordo);
  border-radius: 9px;
  background: var(--ink);
  color: #FFF;
  box-shadow: 0 8px 24px rgba(17, 21, 10, .2);
  font-size: .78rem;
  line-height: 1.35;
  pointer-events: none;
}

.grafico-tooltip[hidden] { display: none; }
.grafico-tooltip strong { display: block; margin-bottom: .1rem; font-size: .82rem; }
:root[data-theme="dark"] .grafico-tooltip { background: #E8EEE0; color: var(--ink); }

.segmento-ral { background: var(--ink); color: #FFF; }
.segmento-contributi { background: var(--positivo); }
.segmento-inail { background: var(--negativo); }
.segmento-tfr { background: var(--brand); }
:root[data-theme="dark"] .segmento-ral { background: #E8EEE0; color: var(--ink); }

.legenda-costo { display: grid; grid-template-columns: repeat(2, 1fr); gap: .7rem 1rem; margin-top: 1rem; }
.voce-legenda { display: grid; grid-template-columns: 10px 1fr auto; align-items: center; gap: .5rem; font-size: .8rem; }
.voce-legenda i { width: 9px; height: 9px; border-radius: 3px; }
.voce-legenda span { color: var(--testo-tenue); }
.voce-legenda strong { font-variant-numeric: tabular-nums; }
.voce-legenda .colore-ral { background: var(--ink); }
.voce-legenda .colore-contributi { background: var(--positivo); }
.voce-legenda .colore-inail { background: var(--negativo); }
.voce-legenda .colore-tfr { background: var(--brand); border: 1px solid rgba(17, 21, 10, .12); }
.voce-legenda .colore-benefit { background: #87937A; }
:root[data-theme="dark"] .voce-legenda .colore-ral { background: #E8EEE0; }

.testa-confronto-costi { display: flex; justify-content: space-between; align-items: flex-start; gap: 1.5rem; }
.testa-confronto-costi h2 { margin-bottom: .3rem; }
.testa-confronto-costi p { margin: 0; color: var(--testo-tenue); font-size: .82rem; max-width: 46ch; }
.incremento-costo { flex: 0 0 auto; text-align: right; padding: .65rem .8rem; border-radius: var(--raggio-piccolo); background: rgba(103, 194, 57, .13); }
.incremento-costo span, .incremento-costo em { display: block; color: var(--testo-tenue); font-size: .7rem; font-style: normal; }
.incremento-costo strong { display: block; color: var(--positivo); font-size: 1.45rem; line-height: 1.2; }

.grafico-verticale { display: grid; grid-template-columns: repeat(2, minmax(120px, 1fr)); gap: clamp(2rem, 10vw, 6rem); align-items: end; max-width: 480px; margin: 1.5rem auto 0; }
.colonna-costo { display: grid; grid-template-rows: auto 260px auto; gap: .55rem; text-align: center; min-width: 0; }
.colonna-costo > strong { font-size: 1.05rem; font-variant-numeric: tabular-nums; }
.colonna-costo > span { color: var(--testo-tenue); font-size: .78rem; font-weight: 650; }
.area-barra-verticale { height: 260px; display: flex; align-items: flex-end; justify-content: center; border-bottom: 1px solid var(--bordo); background-image: linear-gradient(to top, var(--bordo) 1px, transparent 1px); background-size: 100% 25%; }
.barra-costo-verticale { display: flex; flex-direction: column-reverse; width: min(112px, 72%); overflow: hidden; border-radius: 9px 9px 3px 3px; box-shadow: 0 0 0 1px rgba(17, 21, 10, .06); transition: height .35s ease; }
.barra-costo-verticale .segmento-costo { width: 100%; min-height: 2px; }
.segmento-benefit { background: #87937A; color: #FFF; }
.segmento-netto { background: var(--positivo); }
.segmento-contributi-dipendente { background: var(--ink); color: #FFF; }
.segmento-irpef { background: var(--negativo); }
.segmento-addizionali { background: #E9A178; }
:root[data-theme="dark"] .segmento-contributi-dipendente { background: #E8EEE0; color: var(--ink); }
.voce-legenda .colore-netto { background: var(--positivo); }
.voce-legenda .colore-contributi-dipendente { background: var(--ink); }
.voce-legenda .colore-irpef { background: var(--negativo); }
.voce-legenda .colore-addizionali { background: #E9A178; }
:root[data-theme="dark"] .voce-legenda .colore-contributi-dipendente { background: #E8EEE0; }
.incremento-valore { background: rgba(197, 221, 161, .22); }
.legenda-confronto { margin-top: 1.25rem; }

.allocazione { display: grid; gap: .9rem; }
.voce-allocazione > div:first-child { display: flex; align-items: baseline; justify-content: space-between; gap: 1rem; font-size: .86rem; }
.traccia { height: 9px; margin-top: .35rem; border-radius: 999px; background: var(--surface-alt); overflow: hidden; }
.traccia i { display: block; height: 100%; border-radius: inherit; background: var(--positivo); }

.dettaglio-fiscale { margin-top: 1rem; border-top: 1px solid var(--bordo); padding-top: 1rem; }
.dettaglio-fiscale summary { cursor: pointer; font-size: .83rem; font-weight: 600; }
.dettaglio-fiscale dl { margin: .7rem 0 0; }

@media (max-width: 620px) {
  .metriche, .metriche-baseline { grid-template-columns: 1fr 1fr; }
  .due-colonne { grid-template-columns: 1fr; gap: 0; }
  .vista-switch { display: flex; }
  .vista-switch button { flex: 1; padding-inline: .65rem; }
  .testa-grafico { align-items: flex-end; }
  .legenda-costo { grid-template-columns: 1fr; }
  .testa-confronto-costi { display: block; }
  .incremento-costo { display: inline-block; margin-top: 1rem; text-align: left; }
  .grafico-verticale { gap: 1.2rem; }
  .colonna-costo { grid-template-rows: auto 220px auto; }
  .area-barra-verticale { height: 220px; }
}

.evidenza { display: grid; gap: 1rem; grid-template-columns: 1fr 1fr; }
.evidenza-dipendente { grid-template-columns: repeat(3, 1fr); }
.evidenza-dipendente .numero-grande { display: flex; flex-direction: column; }
.evidenza-dipendente .numero-grande .etichetta { min-height: 2.65rem; }
.evidenza-dipendente .numero-grande strong { margin-top: auto; }
.incremento-mensile { padding-left: 1rem; border-left: 1px solid var(--bordo); }
.incremento-mensile strong { color: var(--positivo); }
.caffe-easter-egg { padding: 0; overflow: hidden; }
.caffe-trigger { width: 100%; padding: 1rem 1.15rem; display: flex; align-items: center; gap: .75rem; border: 0; background: transparent; color: var(--testo); text-align: left; cursor: pointer; }
.caffe-trigger > span { display: grid; width: 38px; height: 38px; place-items: center; border-radius: 50%; background: var(--surface-alt); font-size: 1.25rem; transition: transform .25s; }
.caffe-trigger:hover > span, .caffe-trigger[aria-expanded="true"] > span { transform: rotate(-10deg) scale(1.08); }
.caffe-trigger strong { font-size: .88rem; }
.caffe-trigger small { margin-left: auto; color: var(--testo-tenue); font-size: .72rem; }
.caffe-confronto { padding: 0 1.15rem 1.15rem; border-top: 1px dashed var(--bordo); }
.caffe-titolo { padding: 1.1rem 0; }
.caffe-titolo > span { color: var(--positivo); font-family: monospace; font-size: .68rem; font-weight: 700; letter-spacing: .12em; }
.caffe-titolo h2 { margin: .35rem 0 0; font-size: 1.1rem; }
.caffe-metriche { display: grid; grid-template-columns: repeat(3, 1fr); gap: .65rem; }
.caffe-metriche > div { padding: .9rem; border-radius: var(--raggio-piccolo); background: var(--surface-alt); }
.caffe-metriche span, .caffe-metriche small { display: block; color: var(--testo-tenue); font-size: .7rem; }
.caffe-metriche strong { display: block; margin: .25rem 0; font-size: 1.45rem; letter-spacing: -.03em; }
.caffe-metriche .caffe-guadagno strong { color: var(--positivo); }
.caffe-confronto > p { margin: .85rem 0 0; color: var(--testo-tenue); font-size: .72rem; }
.numero-grande .etichetta em { display: block; margin-top: .12rem; font-size: .67rem; color: var(--testo-tenue); }

.numero-grande .etichetta {
  display: block;
  font-size: .8rem;
  color: var(--testo-tenue);
  margin-bottom: .25rem;
}

.numero-grande em { font-style: normal; }

.numero-grande strong {
  display: block;
  font-size: clamp(1.7rem, 5vw, 2.4rem);
  letter-spacing: -.03em;
  line-height: 1.1;
}

/* --- waterfall: barre proporzionali, nessuna libreria --- */

.waterfall { display: grid; gap: .55rem; }

.riga-waterfall {
  display: grid;
  grid-template-columns: minmax(9rem, 1.1fr) 3fr minmax(6.5rem, auto);
  gap: .75rem;
  align-items: center;
  font-size: .87rem;
}

.riga-waterfall .voce { color: var(--testo-tenue); }
.riga-waterfall .importo { text-align: right; font-variant-numeric: tabular-nums; }

.barra { background: var(--surface-alt); border-radius: 6px; height: 22px; position: relative; }

.barra i {
  position: absolute;
  top: 0;
  bottom: 0;
  border-radius: 6px;
  min-width: 2px;
}

.barra i.inizio, .barra i.fine { background: var(--ink); }
.barra i.sottrazione { background: var(--negativo); }
.barra i.aggiunta { background: var(--positivo); }

:root[data-theme="dark"] .barra i.inizio,
:root[data-theme="dark"] .barra i.fine { background: var(--brand); }

.riga-waterfall.totale { font-weight: 700; }
.riga-waterfall.totale .voce { color: var(--testo); }

@media (max-width: 520px) {
  .caffe-trigger small { display: none; }
  .caffe-metriche { grid-template-columns: 1fr; }
  .riga-waterfall { grid-template-columns: 1fr auto; }
  .riga-waterfall .barra { grid-column: 1 / -1; }
  .evidenza { grid-template-columns: 1fr; }
  .evidenza-dipendente .numero-grande .etichetta { min-height: 0; }
  .incremento-mensile { padding: 1rem 0 0; border-left: 0; border-top: 1px solid var(--bordo); }
}

/* --- TFR e dettaglio --- */

.tfr strong { display: block; font-size: 1.6rem; letter-spacing: -.02em; }
.tfr p { margin: .5rem 0 0; font-size: .84rem; color: var(--testo-tenue); }

.dettaglio dl { margin: 0; display: grid; gap: .1rem; }

.dettaglio .voce-dettaglio {
  display: flex;
  justify-content: space-between;
  gap: 1rem;
  padding: .55rem 0;
  border-bottom: 1px solid var(--bordo);
  font-size: .89rem;
}

.dettaglio .voce-dettaglio:last-child { border-bottom: 0; }
.dettaglio dt { color: var(--testo-tenue); }
.dettaglio dd { margin: 0; font-variant-numeric: tabular-nums; }
.dettaglio .nota { font-size: .78rem; color: var(--testo-tenue); display: block; }

/* --- ipotesi e disclaimer --- */

.ipotesi { margin-top: 1.5rem; }
.ipotesi summary { cursor: pointer; font-weight: 600; }
.ipotesi ul { margin: 1rem 0 0; padding-left: 1.1rem; color: var(--testo-tenue); font-size: .88rem; }
.ipotesi li { margin-bottom: .5rem; }

.disclaimer {
  margin: 1.25rem 0 0;
  text-align: center;
  font-size: .82rem;
  color: var(--testo-tenue);
}
