/* Nitido · pagine «soldi» nel design editoriale (tavola-editoriale e anteprime sul Desktop).
   Un file per gruppo di pagine, caricato dopo nitido.css (vedi _pagine_css.html): così più gruppi si rifanno
   in parallelo senza toccare lo stesso file. Solo token di colore di nitido.css, classi con lo scope della pagina. */

/* Pagamenti, Contabilità (e i suoi dettagli), Statistiche e Spese per i canali seguono Oggi (sezione 14 di
   nitido.css): testata con il doppio filetto, titolo in DM Serif, cifre a colonne divise da filetti,
   sezioni numerate, tabelle «da giornale» (intestazioni maiuscole spaziate sopra un filetto pieno).
   Scelte di Francesco: 2A i soldi attesi e in ritardo in vino; 3A angoli, ombre e margini come oggi.
   Tutto vive dentro .nx-soldi (le classi nuove hanno il prefisso ns-), tranne .ns-kind (la scelta del
   tipo di rata, che compare anche nella scheda coppia) e le finestre .ns-modal. */

/* ───────────── 0. Ponte e testata ───────────── */
:where(.nx-soldi) :is(p, ul, ol, figure, h1, h2, h3, h4) { margin: 0; }
:where(.nx-soldi) :is(ul, ol) { padding: 0; list-style: none; }
:where(.nx-soldi) a:not(.nx-btn) { color: inherit; text-decoration: none; }
.nx-soldi :is(b, strong) { font-weight: 500 !important; }
.nx-soldi .nx-st { height: auto; line-height: 1.35; align-items: baseline; }
.nx-soldi .nx-st::before { align-self: center; }
.nx-soldi .nx-sh { margin-bottom: 14px; }

.ns-mast .nx-mast-r { flex-wrap: wrap; justify-content: flex-end; row-gap: 4px; }
.ns-years { display: flex; align-items: baseline; flex-wrap: wrap; column-gap: 16px; row-gap: 0; }
.ns-y {
  display: inline-flex; align-items: center; gap: 4px; box-sizing: border-box; min-height: 44px; margin: -12px 0; padding: 12px 0;
  font: 600 var(--nx-t-eb)/1.35 var(--nx-f-ui); letter-spacing: var(--nx-eb-track); text-transform: uppercase;
  color: var(--nx-ink2); white-space: nowrap;
}
.ns-y .nx-i { width: 12px; height: 12px; stroke-width: 2; }
.ns-y.is-on { color: var(--nx-ink); background: linear-gradient(var(--nx-ink), var(--nx-ink)) 0 calc(100% - 10px) / 100% 1px no-repeat; }
.ns-y.is-none { text-transform: none; letter-spacing: 0; font-weight: 400; font-size: 12.5px; }
.ns-flip { transform: scaleX(-1); }

/* titolo, frase e azioni */
.ns-hero { margin-top: 30px; }
.ns-hero .nx-dek { max-width: 70ch; }
.ns-acts { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 12px; margin-top: 22px; }
.ns-acts .nx-ul { margin-left: 10px; }
.ns-back { margin-top: 18px; }
.nx-soldi .ns-figs { margin-top: 30px; }
.nx-soldi .nx-fig-v { white-space: nowrap; }
.nx-soldi .nx-fig-d .ns-info { vertical-align: -3px; }

/* la «i» con la spiegazione: piccola a vista, 44 px al tocco */
.ns-info {
  position: relative; display: inline-grid; place-items: center; width: 18px; height: 18px; margin: -4px 0 -4px 2px; padding: 0; border: 0;
  border-radius: 50%; color: var(--nx-ink2); background: none; cursor: help; vertical-align: -3px;
}
.ns-info::after { content: ""; position: absolute; inset: -13px; }
.ns-info .nx-i { width: 13px; height: 13px; }
.ns-info:focus-visible { outline: 2px solid var(--nx-ink); outline-offset: 1px; }
.nx-eb .ns-info { margin-left: 4px; text-transform: none; }

/* colonna principale e colonna a destra (come la tavola di Oggi) */
.ns-board { display: grid; grid-template-columns: minmax(0, 1fr) 296px; column-gap: 52px; align-items: start; }
.ns-main { min-width: 0; }
.ns-side { min-width: 0; margin-top: var(--nx-gap-sec); padding-left: 32px; box-shadow: inset 1px 0 0 var(--nx-rule); }
.ns-side-blk + .ns-side-blk { margin-top: 36px; }

/* tabelle «da giornale» */
.ns-tbl { width: 100%; border-collapse: collapse; font-size: 13.5px; font-variant-numeric: tabular-nums; }
.ns-tbl thead th {
  padding: 0 12px 9px; vertical-align: bottom; text-align: left; white-space: nowrap;
  font: 600 var(--nx-t-eb)/1.35 var(--nx-f-ui); letter-spacing: var(--nx-eb-track); text-transform: uppercase; color: var(--nx-ink2);
  border-bottom: 1px solid var(--nx-rule-strong);
}
.ns-tbl td { padding: 14px 12px; vertical-align: top; border-bottom: 1px solid var(--nx-rule); }
.ns-tbl :is(th, td):first-child { padding-left: 0; }
.ns-tbl :is(th, td):last-child { padding-right: 0; }
.ns-tbl .is-num { text-align: right; white-space: nowrap; }
.ns-tbl tfoot td { border-bottom: 0; border-top: 1px solid var(--nx-rule-strong); }
.ns-tbl .ns-empty-row td { padding: 22px 0; color: var(--nx-ink2); }
.ns-none { color: var(--nx-mute); }
.ns-cl { display: none; }

/* stato vuoto da pagina, senza riquadro */
.ns-empty { padding: 22px 0 24px; border-top: 1px solid var(--nx-rule-strong); border-bottom: 1px solid var(--nx-rule); }
.ns-empty-t { font: 400 22px/1.2 var(--nx-f-serif); letter-spacing: -.01em; color: var(--nx-ink); }
.ns-empty-x { margin-top: 8px; max-width: 60ch; font-size: 14px; line-height: 1.5; color: var(--nx-ink2); }

/* bottone a filetto che apre e chiude (archivio, tabelle lunghe) */
.ns-toggle { border: 0; cursor: pointer; font-family: var(--nx-f-ui); }
.ns-toggle .ns-caret { transition: transform .2s var(--nx-ease); }
.ns-toggle:not(.collapsed) .ns-caret { transform: rotate(180deg); }
.ns-toggle .ns-when-open, .ns-toggle:not(.collapsed) .ns-when-closed { display: none; }
.ns-toggle:not(.collapsed) .ns-when-open { display: inline; }

/* ───────────── 1. Pagamenti ───────────── */
/* larghezze fisse: le intestazioni lunghe («Secondo acconto e altro») vanno a capo, la tabella non sborda */
.ns-pay-tbl { table-layout: fixed; }
.ns-pay-tbl thead th { white-space: normal; }
.ns-pay-tbl .ns-c-who { width: 27%; }
.ns-pay-tbl .ns-c-tot { width: 128px; }   /* c'entra anche la nota del contratto, su due righe */
.ns-d1 { display: block; margin-top: 4px; font-size: 13px; color: var(--nx-ink2); }   /* la data, sotto il nome */
.ns-d2 { display: block; margin-top: 2px; font-size: 12.5px; color: var(--nx-ink2); }
.ns-who { font: 400 19px/1.2 var(--nx-f-serif); letter-spacing: -.006em; color: var(--nx-ink); text-wrap: balance; }
.ns-who-s { margin-top: 4px; font-size: 12.5px; line-height: 1.4; color: var(--nx-ink2); }

/* una rata: importo, stato e data; chi modifica la apre con un clic */
.ns-rata {
  display: flex; flex-direction: column; align-items: flex-start; gap: 2px; width: calc(100% + 20px); margin: -8px -10px; padding: 8px 10px;
  border: 0; border-radius: var(--nx-r); background: none; color: inherit; font: inherit; text-align: left;
  transition: background .15s, box-shadow .15s;
}
button.ns-rata { cursor: pointer; }
button.ns-rata:focus-visible { outline: 0; box-shadow: inset 0 0 0 1.5px var(--nx-ink); }
.ns-rata + .ns-rata, .ns-extra-f + .ns-rata, div.ns-extra + .ns-rata { margin-top: 6px; box-shadow: inset 0 1px 0 var(--nx-rule); border-radius: 0; padding-top: 12px; }
.ns-extra-f { margin: 0; }
.ns-rata-t { font-size: 12px; font-weight: 500; color: var(--nx-ink2); }
.ns-rata-v { font-size: 15px; font-weight: 500; color: var(--nx-ink); white-space: nowrap; }
.ns-rata .nx-st { font-size: 12.5px; }
.ns-rata-d { font-size: 12.5px; line-height: 1.35; color: var(--nx-ink2); }
.ns-rata-d.is-due { color: var(--nx-wine); }
.ns-rata-e { display: inline-flex; align-items: center; gap: 5px; margin-top: 4px; font-size: 12px; font-weight: 500; color: var(--nx-ink2); }
.ns-add {
  display: inline-flex; align-items: center; gap: 5px; height: 30px; margin-top: 2px; padding: 0 11px; border: 0; border-radius: var(--nx-r-sm);
  font: 500 12.5px var(--nx-f-ui); color: var(--nx-ink); background: var(--nx-wall); box-shadow: inset 0 0 0 1px var(--nx-line); cursor: pointer;
  transition: box-shadow .15s, background .15s;
}
.ns-add:focus-visible { outline: 0; box-shadow: inset 0 0 0 1.5px var(--nx-ink); }
.ns-rata + .ns-add, .ns-extra-f + .ns-add, div.ns-extra + .ns-add { margin-top: 12px; }
.ns-tot { font-size: 15px; font-weight: 600; color: var(--nx-ink); }
/* il contratto della scheda quando non coincide con le rate (D5): sotto il totale, sottovoce */
.ns-tot-d { display: block; margin-top: 4px; font-size: 12px; line-height: 1.35; color: var(--nx-ink2); }
.ns-tot-d > span { display: block; white-space: nowrap; }
.ns-pay-foot td { padding-top: 14px; padding-bottom: 4px; vertical-align: baseline; }
.ns-foot-l { text-align: right; font: 600 var(--nx-t-eb)/1.35 var(--nx-f-ui); letter-spacing: var(--nx-eb-track); text-transform: uppercase; color: var(--nx-ink); }
.ns-foot-v { font: 400 26px/1 var(--nx-f-serif); letter-spacing: -.02em; color: var(--nx-ink); }

/* commissioni di planner e location */
.ns-fees li { list-style: none; }
.ns-fee { padding: 12px 0; border-bottom: 1px solid var(--nx-rule); }
.ns-fee:last-child { border-bottom: 0; }
.ns-fee-h { display: flex; align-items: baseline; gap: 8px; min-width: 0; font-size: 13.5px; }
.ns-fee-n { min-width: 0; font-weight: 500; color: var(--nx-ink); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ns-fee-h .nx-amt { flex: none; font-weight: 500; }
.ns-fee-s { margin-top: 3px; font-size: 12.5px; line-height: 1.45; color: var(--nx-ink2); }
.ns-fee-s .nx-st { font-size: 12.5px; }
.ns-fee-c { font-size: 15px; color: var(--nx-ink); }
.ns-fee-none { padding: 12px 0; font-size: 13px; color: var(--nx-ink2); }
.ns-fee-f { margin: 6px 0 0; }
.ns-fee-f .form-check { display: flex; align-items: center; gap: 10px; min-height: 36px; margin: 0; padding: 0; }
.ns-fee-f .form-check-input { float: none; flex: none; width: 2.2em; height: 1.25em; margin: 0; cursor: pointer; }
.ns-fee-f .form-check-label { font-size: 13px; font-weight: 500; color: var(--nx-ink); cursor: pointer; }

/* finestre: i bottoni in fondo senza i margini di Bootstrap (sul telefono uscivano dal bordo) */
.ns-modal .modal-footer { flex-wrap: wrap; gap: 8px; }
.ns-modal .modal-footer > * { margin: 0; }
.ns-modal .modal-footer form { display: flex; }

/* finestre: l'interruttore «pagato» su grigio, con l'etichetta accanto */
.ns-modal .ns-paid-switch { display: flex; align-items: center; gap: 12px; min-height: 48px; margin: 0 0 16px; padding: 10px 14px; border-radius: var(--nx-r-md); background: var(--nx-grey); }
.ns-modal .ns-paid-switch .form-check-input { float: none; flex: none; width: 2.2em; height: 1.25em; margin: 0; }
.ns-modal .ns-paid-switch .form-check-label { font-size: 14px; font-weight: 500; }

/* il tipo di una nuova rata (anche nella scheda coppia) */
.ns-kind { min-width: 0; margin: 0 0 16px; padding: 0; border: 0; }
.ns-kind > legend { float: none; width: auto; margin: 0 0 7px; padding: 0; font-size: 13px; font-weight: 500; color: var(--nx-ink2); }
.ns-kind-g { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.ns-kind-o {
  display: flex; align-items: flex-start; gap: 10px; min-width: 0; margin: 0; padding: 12px 14px; border-radius: var(--nx-r-md);
  background: var(--nx-grey); cursor: pointer; transition: background .15s, box-shadow .15s;
}
.ns-kind-o:has(input:checked) { background: var(--nx-wall); box-shadow: inset 0 0 0 1.5px var(--nx-ink); }
.ns-kind-o .form-check-input { flex: none; float: none; margin: 2px 0 0; }
.ns-kind-t { min-width: 0; }
.ns-kind-t b { display: block; font-size: 14px; font-weight: 600; color: var(--nx-ink); }
.ns-kind-t small { display: block; margin-top: 2px; font-size: 12.5px; line-height: 1.4; color: var(--nx-ink2); }

/* ───────────── 2. Contabilità ───────────── */
/* le tre cifre dell'anno: più grandi delle cifre delle sezioni */
.ns-figs--year .nx-fig-v { margin-top: 12px; font-size: var(--nx-t-money); }
.nx-soldi .nx-fig-v.is-neg { color: var(--nx-wine); }
.ns-figs-sm .nx-fig-v { font-size: 30px; }
.nx-soldi .nx-fig-d + .nx-fig-d { margin-top: 6px; }
.ns-tax b { color: var(--nx-ink); }
.ns-goal { display: block; width: min(240px, 100%); height: 3px; margin: 4px 0 10px; border-radius: 2px; background: var(--nx-track); overflow: hidden; }
.ns-goal-bar { display: block; height: 100%; border-radius: 2px; background: var(--nx-ink); transition: width .8s var(--nx-ease); }
.ns-lnk {
  display: inline-flex; align-items: center; box-sizing: border-box; min-height: 44px; margin: -12px 0 -12px 4px; padding: 12px 0; border: 0;
  font: 500 13px var(--nx-f-ui); color: var(--nx-ink); cursor: pointer; white-space: nowrap;
  background: linear-gradient(var(--nx-ink), var(--nx-ink)) 0 calc(100% - 12px) / 100% 1px no-repeat;
}
.ns-more { display: inline-flex; align-items: center; gap: 4px; margin-top: 4px; font-weight: 500; color: var(--nx-ink); }
.ns-note { display: flex; flex-wrap: wrap; align-items: baseline; column-gap: 10px; margin-top: 18px; padding-bottom: 14px; border-bottom: 1px solid var(--nx-rule); font-size: 14px; }
.ns-note > span:first-child { font-weight: 500; }
.ns-note b { flex: none; font-size: 15px; font-weight: 600 !important; }
.ns-note small { flex-basis: 100%; margin-top: 4px; font-size: 12.5px; line-height: 1.45; color: var(--nx-ink2); max-width: 90ch; }
.ns-intro { max-width: 80ch; margin: -2px 0 18px; font-size: 13.5px; line-height: 1.5; color: var(--nx-ink2); }

/* mese per mese: il grafico e, a destra, gli ultimi movimenti */
.ns-chart { position: relative; height: 320px; }
.ns-moves-blk { margin-top: 36px; }
.ns-moves { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 48px; margin-top: 2px; }
.ns-moves > .nx-kv-none { grid-column: 1 / -1; padding: 12px 0; }
.ns-move {
  display: grid; grid-template-columns: 48px minmax(0, 1fr) auto auto; column-gap: 10px; align-items: baseline;
  padding: 10px 0; border-bottom: 1px solid var(--nx-rule); font-size: 13px;
}
.ns-del-x { width: 24px; }
.ns-move-d { color: var(--nx-ink2); white-space: nowrap; }
.ns-move-t { min-width: 0; }
.ns-move-k { display: block; font: 600 10.5px/1.4 var(--nx-f-ui); letter-spacing: var(--nx-eb-track); text-transform: uppercase; color: var(--nx-ink2); }
.ns-move.is-in .ns-move-k { color: var(--nx-paid); }
.ns-move-x { display: block; margin-top: 1px; line-height: 1.4; color: var(--nx-ink); overflow-wrap: anywhere; }
.ns-move-v { font-weight: 500; white-space: nowrap; font-variant-numeric: tabular-nums; color: var(--nx-ink); }
.ns-move.is-in .ns-move-v { color: var(--nx-paid); }
.ns-move > .ns-del { align-self: center; }
.ns-del {
  position: relative; display: inline-grid; place-items: center; width: 28px; height: 28px; margin: -4px -4px -4px 0; padding: 0; border: 0;
  border-radius: var(--nx-r-sm); color: var(--nx-ink2); background: none; cursor: pointer;
}
.ns-del::after { content: ""; position: absolute; inset: -8px; }
.ns-del:focus-visible { outline: 2px solid var(--nx-ink); outline-offset: 0; }

/* trimestri e mesi */
.ns-q-tbl .quarter-detail-row > td { padding: 0; border-bottom: 0; }
.ns-q-row { cursor: pointer; }
.ns-q-row > td { vertical-align: middle; }
.ns-q-btn {
  display: inline-flex; align-items: center; gap: 8px; min-height: 36px; margin: -6px 0; padding: 0; border: 0; background: none;
  font: 500 14.5px var(--nx-f-ui); color: var(--nx-ink); cursor: pointer; white-space: nowrap;
}
.ns-q-btn:focus-visible { outline: 2px solid var(--nx-ink); outline-offset: 2px; border-radius: 4px; }
.ns-q-caret { color: var(--nx-ink2); transition: transform .2s var(--nx-ease); }
.ns-q-btn:not(.collapsed) .ns-q-caret { transform: rotate(90deg); }
.ns-m.is-pos { color: var(--nx-paid); font-weight: 500; }
.ns-m.is-neg { color: var(--nx-wine); font-weight: 500; }
.ns-m.is-zero { color: var(--nx-ink2); }
.ns-q-tbl thead th { white-space: normal; }
.ns-c-perf { width: 140px; }
.ns-perf { display: inline-flex; align-items: center; gap: 10px; }
.ns-perf-bar { width: 72px; height: 4px; border-radius: 2px; background: var(--nx-track); overflow: hidden; }
.ns-perf-bar i { display: block; height: 100%; border-radius: 2px; transition: width .8s var(--nx-ease); }
.ns-perf-bar i.is-good { background: var(--nx-paid); }
.ns-perf-bar i.is-low { background: var(--nx-wine); }
.ns-perf-v { font-size: 13px; color: var(--nx-ink2); white-space: nowrap; }
.ns-m-tbl { margin: 2px 0 10px; background: var(--nx-grey); border-radius: 0 0 var(--nx-r-md) var(--nx-r-md); }
.ns-m-tbl thead th { padding-top: 10px; border-bottom-color: var(--nx-rule); font-size: 10.5px; }
.ns-m-tbl td { padding-top: 9px; padding-bottom: 9px; font-size: 13px; }
.ns-m-tbl :is(th, td):first-child { padding-left: 14px; }
.ns-m-tbl :is(th, td):last-child { padding-right: 14px; }
.ns-m-tbl tbody tr:last-child td { border-bottom: 0; }

/* spese per categoria: tre colonne affiancate */
.ns-cols3 { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 32px 40px; align-items: start; }
.ns-col { min-width: 0; }
.ns-cats li { font-size: 13.5px; }
.ns-cat { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ns-cats .nx-amt { flex: none; }
.nx-kv li.ns-cats-tot { border-top: 1px solid var(--nx-rule-strong); border-bottom: 0; }
.ns-cats li.ns-cats-tot + li, .ns-cats li:has(+ .ns-cats-tot) { border-bottom: 0; }
.ns-col .ns-add { margin-top: 10px; }
.ns-col--private .nx-amt { color: var(--nx-ink2); }

/* margini per evento: una tabella larga che scorre di lato */
.ns-wide { margin-top: 4px; }
.ns-an-tbl { min-width: 1040px; }
.ns-an-tbl thead th, .ns-an-tbl thead th.is-num { white-space: normal; }
.ns-sort { cursor: pointer; user-select: none; }
.ns-an-tbl { font-size: 13px; }
.ns-an-tbl > * > tr > :is(th, td):not(:first-child) { padding-left: 8px; padding-right: 8px; }
.ns-an-tbl > * > tr > :is(th, td):last-child { padding-right: 0; }
.ns-an-n { min-width: 150px; font: 400 16px/1.25 var(--nx-f-serif); color: var(--nx-ink); }
.ns-an-tbl b { font-weight: 600 !important; }
.ns-mute { color: var(--nx-ink2); }
.ns-pct { font-weight: 500; }
.ns-pct.is-good { color: var(--nx-paid); }
.ns-pct.is-low { color: var(--nx-wine); }

/* finestre della Contabilità */
.ns-modal .ns-mode { margin-bottom: 16px; padding: 11px 14px; border-radius: var(--nx-r-md); background: var(--nx-grey); font-size: 13px; line-height: 1.45; color: var(--nx-ink); }
.ns-modal .ns-mode:empty { display: none; }
.ns-modal .ns-mode.is-business { background: var(--nx-veil); }
.ns-modal .ns-rec { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.7fr); gap: 28px 36px; }
.ns-modal .ns-rec .form-check { display: flex; align-items: center; gap: 8px; padding-left: 0; }
.ns-modal .ns-rec .form-check-input { float: none; margin: 0; }
.ns-tag { display: inline-flex; align-items: center; height: 22px; padding: 0 9px; border-radius: var(--nx-r-pill); font-size: 12px; font-weight: 500; color: var(--nx-ink2); background: var(--nx-grey); white-space: nowrap; }
.ns-rec-tbl td { padding-top: 10px; padding-bottom: 10px; vertical-align: middle; }

/* «Documento mancante» (10/10/2026): gli incassi con la fattura da emettere, ognuno con data e «Fattura emessa» */
.ns-doc-sum { display: flex; align-items: baseline; column-gap: 10px; padding-bottom: 12px; border-bottom: 1px solid var(--nx-rule-strong); font-size: 14px; }
.ns-doc-sum > span:first-child { font-weight: 500; color: var(--nx-ink); }
.ns-doc-sum b { flex: none; font-size: 15px; font-weight: 600 !important; color: var(--nx-wine); }
.ns-doc-r {
  display: grid; grid-template-columns: 104px minmax(0, 1fr) auto auto; column-gap: 16px; align-items: center;
  padding: 12px 0; border-bottom: 1px solid var(--nx-rule); font-size: 13.5px;
}
.ns-doc-d { color: var(--nx-ink2); white-space: nowrap; }
.ns-doc-t { min-width: 0; }
.ns-doc-k { display: flex; flex-wrap: wrap; align-items: baseline; column-gap: 10px; row-gap: 2px; font-size: 12.5px; color: var(--nx-ink2); }
.ns-doc-k .nx-st { font-size: 12.5px; }
.ns-doc-x { display: block; margin-top: 2px; line-height: 1.4; color: var(--nx-ink); overflow-wrap: anywhere; }
.ns-doc-v { font-weight: 500; white-space: nowrap; font-variant-numeric: tabular-nums; color: var(--nx-ink); }
.ns-doc-f { display: flex; align-items: center; gap: 8px; margin: 0; }
.ns-doc-f .ns-doc-date { width: 150px; height: 36px; }
.ns-doc-f .nx-btn { flex: none; }
.ns-doc-none { padding: 12px 0; font-size: 13.5px; color: var(--nx-ink2); border-top: 1px solid var(--nx-rule-strong); }

/* l'interruttore «Fattura emessa» dei moduli che registrano un incasso (_fattura.html): in ogni pagina */
.ns-fatt { margin: 4px 0 16px; padding: 10px 14px; border-radius: var(--nx-r-md); background: var(--nx-grey); }
.ns-fatt-s { display: flex; align-items: center; gap: 12px; min-height: 36px; margin: 0; padding: 0; }
.ns-fatt-s .form-check-input { float: none; flex: none; width: 2.2em; height: 1.25em; margin: 0; }
.ns-fatt-s .form-check-label { font-size: 14px; font-weight: 500; color: var(--nx-ink); }
.ns-fatt-d { margin-top: 8px; }
.ns-fatt-d .form-label { font-size: 13px; color: var(--nx-ink2); }
.ns-fatt-d .form-control { background-color: var(--nx-wall); }
.ns-fatt-s:has(input:not(:checked)) + .ns-fatt-d { display: none; }
.ns-fatt-n { margin: 8px 0 0; font-size: 12.5px; line-height: 1.45; color: var(--nx-ink2); }
.ns-fatt-c { align-items: center; font-size: 12.5px; color: var(--nx-ink2); white-space: nowrap; }
form:has(> .ns-fatt-c) { flex-wrap: wrap; align-items: center; column-gap: 12px; row-gap: 6px; }
.ns-fatt-tag { color: var(--nx-wine); }

/* ───────────── 3. Dettagli della Contabilità (spese, altri incassi, prodotti) e Spese per i canali ───────────── */
.ns-list-tbl td { vertical-align: baseline; }
.ns-list-tbl .ns-c-d { width: 112px; white-space: nowrap; color: var(--nx-ink2); }
.ns-list-tbl .ns-c-x b { font-weight: 500 !important; color: var(--nx-ink); }
.ns-list-tbl .ns-c-del { width: 40px; text-align: right; }
.ns-list-tbl td.ns-c-note { max-width: 220px; font-size: 12.5px; color: var(--nx-ink2); }
.ns-list-tbl .ns-c-g b { font-weight: 600 !important; }
.ns-net { color: var(--nx-ink2); }
.ns-tag--private { color: var(--nx-wine); background: var(--nx-veil); }
.ns-prod-n { font-weight: 500; color: var(--nx-ink); }
.ns-prod-tbl { min-width: 760px; }
.ns-stock-tbl { max-width: 720px; }
.ns-stock-tbl thead th, .ns-prod-tbl thead th, .ns-stock-tbl thead th.is-num, .ns-prod-tbl thead th.is-num { white-space: normal; }
.ns-pct.is-mid { color: var(--nx-ink); }

/* spese per i canali: il modulo a sinistra, l'elenco a destra */
.ns-split { display: grid; grid-template-columns: minmax(0, 360px) minmax(0, 1fr); column-gap: 64px; align-items: start; }
.ns-form { display: flex; flex-direction: column; gap: 16px; }
.ns-form .ns-other { margin-top: 8px; }
.ns-form .nx-btn { margin-top: 4px; }

/* ───────────── 4. Statistiche ───────────── */
.ns-filters { display: flex; flex-wrap: wrap; gap: 14px 40px; margin-top: 26px; }
.ns-filter { display: flex; align-items: center; gap: 12px; min-width: 0; }
.ns-pills { display: flex; flex-wrap: wrap; gap: 6px; }
.ns-pills .nx-chip { height: 32px; }
.ns-roi-tbl { min-width: 860px; }
.ns-roi-n { font-weight: 500; color: var(--nx-ink); }
.ns-roi-c { width: 170px; }
.ns-roi { font-weight: 500; }
.ns-roi.is-good { color: var(--nx-paid); }
.ns-roi.is-low { color: var(--nx-wine); }
.ns-roi-tbl b { font-weight: 600 !important; }
.ns-stars { color: var(--nx-wine); letter-spacing: .08em; white-space: nowrap; }
.ns-sortl { display: inline-flex; align-items: center; gap: 4px; color: inherit; }
.ns-sortl.is-on { color: var(--nx-ink); }
.ns-sort-i { font-size: 9px; letter-spacing: 0; color: var(--nx-mute); }
.ns-sortl.is-on .ns-sort-i { color: var(--nx-ink); }
.ns-tbl thead th.is-num .ns-sortl { justify-content: flex-end; }

.ns-src { display: grid; grid-template-columns: 320px minmax(0, 1fr); column-gap: 56px; align-items: center; }
.ns-chart--donut { height: 300px; }
.ns-legend-l li { align-items: center; }
.ns-sw { flex: none; width: 10px; height: 10px; border-radius: 50%; background: var(--nx-track); }
.ns-legend-n { min-width: 0; font-weight: 500; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ns-legend-v { flex: none; font-size: 13px; color: var(--nx-ink2); white-space: nowrap; }
.ns-graphs { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 32px 56px; }
.ns-graph { min-width: 0; margin: 0; }
.ns-graph figcaption { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 2px 12px; padding-bottom: 8px; margin-bottom: 14px; border-bottom: 1px solid var(--nx-rule-strong); }
.ns-graph figcaption .nx-mt { white-space: normal; }
.ns-graph .ns-chart { height: 280px; }
.ns-chart.is-empty canvas { visibility: hidden; }
.ns-chart-none { position: absolute; inset: 0; display: grid; place-items: center; padding: 16px; text-align: center; font-size: 13.5px; color: var(--nx-ink2); }

.ns-export { display: flex; flex-wrap: wrap; align-items: flex-end; gap: 16px 20px; }
.ns-export .nx-field { width: 220px; }
.ns-export-b { display: flex; flex-wrap: wrap; gap: 10px; }
.ns-export-b .nx-btn { height: 44px; }

/* ───────────── larghezze ───────────── */
/* fino a 1279 px la colonna a destra va sotto, le commissioni affiancate */
@media (max-width: 1279px) {
  .ns-board { grid-template-columns: minmax(0, 1fr); }
  .ns-side {
    display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 32px 40px; align-items: start;
    padding: 24px 0 0; box-shadow: inset 0 1px 0 var(--nx-rule);
  }
  .ns-side-blk + .ns-side-blk { margin-top: 0; }
}
@media (max-width: 1180px) {
  .ns-figs--year .nx-fig-v { font-size: 44px; }
  .ns-q-tbl > * > tr > :is(th, td):not(:first-child) { padding-left: 8px; padding-right: 8px; }
  .ns-q-tbl > * > tr > :is(th, td):last-child { padding-right: 0; }
  .ns-c-perf { width: 124px; }
}
@media (max-width: 1100px) {
  .ns-cols3 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .ns-moves { grid-template-columns: minmax(0, 1fr); }
  .ns-split { grid-template-columns: minmax(0, 1fr); }
  .ns-split .ns-costs-f { max-width: 480px; }
  .ns-src { grid-template-columns: 260px minmax(0, 1fr); column-gap: 36px; }
  .ns-chart--donut { height: 260px; }
}

/* sotto i 1024 px (tablet e telefono) le tabelle diventano schede: le rate di ogni lavoro, i trimestri,
   gli elenchi dei dettagli. I titoli di sezione mandano nota e link sotto il titolo. */
@media (max-width: 1023px) {
  .nx-soldi .nx-sh { grid-template-columns: auto minmax(0, 1fr) minmax(16px, auto); }
  .nx-soldi .nx-sh--plain { grid-template-columns: minmax(0, 1fr) minmax(16px, auto); }
  .nx-soldi .nx-sh-t { white-space: normal; text-wrap: balance; }
  .nx-soldi .nx-sh-x { grid-column: 1 / -1; flex-wrap: wrap; justify-content: space-between; row-gap: 6px; margin-top: 8px; }
  .nx-soldi .nx-sh-x .nx-ul { display: inline-flex; }
  .nx-soldi .nx-sh .nx-mt { white-space: normal; }
  .nx-soldi .nx-fig .nx-eb { white-space: normal; }

  /* pagamenti */
  .ns-pay-tbl, .ns-pay-tbl tbody, .ns-pay-tbl tfoot { display: block; }
  .ns-pay-tbl thead { display: none; }
  .ns-pay-tbl tr.ns-pay-row {
    display: grid; grid-template-columns: minmax(0, 1fr) auto; column-gap: 16px;
    grid-template-areas: "who tot" "c1 c1" "c2 c2" "c3 c3";
    padding: 18px 0 14px; border-bottom: 1px solid var(--nx-rule);
  }
  .ns-pay-tbl tr.ns-pay-row:first-child { border-top: 1px solid var(--nx-rule-strong); }
  .ns-pay-tbl tr.ns-pay-row > td { display: block; width: auto; padding: 0; border: 0; }
  .ns-pay-tbl .ns-c-who { grid-area: who; }
  .ns-pay-tbl tr.ns-pay-row > .ns-c-tot { grid-area: tot; align-self: start; display: flex; flex-direction: column-reverse; align-items: flex-end; gap: 3px; }
  .ns-pay-tbl .ns-c-tot .ns-cl { display: block; padding-top: 0; }
  .ns-pay-tbl .ns-c-tot .ns-tot-d { order: -1; margin-top: 0; text-align: right; }   /* in fondo, sotto «Totale» */
  .ns-pay-tbl tr.ns-pay-row > .ns-c-rata { display: grid; grid-template-columns: 116px minmax(0, 1fr); column-gap: 12px; align-items: start; padding: 6px 0; }
  .ns-pay-tbl tr.ns-pay-row > .ns-c-rata:nth-child(2) { grid-area: c1; margin-top: 14px; padding-top: 12px; border-top: 1px solid var(--nx-rule); }
  .ns-pay-tbl tr.ns-pay-row > .ns-c-rata:nth-child(3) { grid-area: c2; }
  .ns-pay-tbl tr.ns-pay-row > .ns-c-rata:nth-child(4) { grid-area: c3; }
  .ns-pay-tbl .ns-c-rata > * { grid-column: 2; }
  .ns-pay-tbl .ns-c-rata > .ns-cl { grid-column: 1; grid-row: 1 / span 6; }
  .ns-cl {
    display: block; padding-top: 3px; font: 600 var(--nx-t-eb)/1.35 var(--nx-f-ui); letter-spacing: var(--nx-eb-track);
    text-transform: uppercase; color: var(--nx-ink2);
  }
  .ns-pay-tbl .ns-rata { flex-direction: row; flex-wrap: wrap; align-items: baseline; column-gap: 10px; row-gap: 1px; width: calc(100% + 16px); margin: -5px -8px; padding: 5px 8px; }
  .ns-pay-tbl .ns-rata-t { flex-basis: 100%; }
  .ns-pay-tbl .ns-rata-e { margin: 0 0 0 auto; }
  .ns-pay-tbl .ns-rata + .ns-rata, .ns-pay-tbl .ns-extra-f + .ns-rata, .ns-pay-tbl div.ns-extra + .ns-rata { margin-top: 6px; padding-top: 9px; }
  .ns-pay-tbl .ns-add { justify-self: start; }
  .ns-pay-tbl tfoot tr { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; padding: 14px 0 4px; border-top: 1px solid var(--nx-rule-strong); }
  .ns-pay-tbl tfoot td { display: block; padding: 0; border: 0; }
  .ns-pay-tbl .ns-empty-row, .ns-pay-tbl .ns-empty-row td { display: block; }

  /* contabilità: le tre cifre dell'anno una sotto l'altra, i trimestri e i mesi come schede */
  .nx-soldi .ns-figs--year { grid-template-columns: minmax(0, 1fr); }
  .nx-soldi .ns-figs--year .nx-fig { padding: 16px 0 18px; box-shadow: none; }
  .nx-soldi .ns-figs--year .nx-fig + .nx-fig { border-top: 1px solid var(--nx-rule); }
  .ns-q-tbl, .ns-q-tbl tbody { display: block; }
  .ns-q-tbl thead { display: none; }
  .ns-q-tbl tr.ns-q-row { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); column-gap: 16px; row-gap: 8px; padding: 14px 0; border-bottom: 1px solid var(--nx-rule); }
  .ns-q-tbl tr.ns-q-row:first-child { border-top: 1px solid var(--nx-rule-strong); }
  .ns-q-tbl tr.ns-q-row > td { display: block; width: auto; padding: 0; border: 0; text-align: left; }
  .ns-q-tbl tr.ns-q-row > td.ns-q-n { grid-column: 1 / -1; }
  .ns-q-tbl tr.ns-q-row > td[data-l]::before, .ns-m-tbl td[data-l]::before {
    content: attr(data-l); display: block; margin-bottom: 2px; font: 600 10.5px/1.35 var(--nx-f-ui); letter-spacing: var(--nx-eb-track);
    text-transform: uppercase; color: var(--nx-ink2);
  }
  .ns-q-tbl .ns-perf-bar { width: 48px; }
  .ns-q-tbl tr.quarter-detail-row, .ns-q-tbl tr.quarter-detail-row > td { display: block; }
  .ns-m-tbl, .ns-m-tbl tbody { display: block; }
  .ns-m-tbl thead { display: none; }
  .ns-m-tbl tr { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); column-gap: 12px; row-gap: 6px; padding: 12px 14px; border-bottom: 1px solid var(--nx-rule); }
  .ns-m-tbl tr:last-child { border-bottom: 0; }
  .ns-m-tbl td { display: block; padding: 0 !important; border: 0; text-align: left; }
  .ns-m-tbl td:first-child { grid-column: 1 / -1; font-weight: 500; }

  /* elenchi dei dettagli: ogni riga è una scheda (data e importo, poi descrizione, poi il resto) */
  .ns-list-tbl, .ns-list-tbl tbody { display: block; }
  .ns-list-tbl thead { display: none; }
  .ns-list-tbl tr.ns-list-row {
    display: grid; grid-template-columns: minmax(0, 1fr) auto auto; column-gap: 12px; row-gap: 4px; align-items: baseline;
    padding: 12px 0; border-bottom: 1px solid var(--nx-rule);
  }
  .ns-list-tbl tr.ns-list-row:first-child { border-top: 1px solid var(--nx-rule-strong); }
  .ns-list-tbl tr.ns-list-row > td { display: block; width: auto; max-width: none; padding: 0; border: 0; text-align: left; }
  .ns-list-tbl .ns-c-d { grid-column: 1; grid-row: 1; font-size: 12.5px; }
  .ns-list-tbl .ns-c-g { grid-column: 2; grid-row: 1; text-align: right; }
  .ns-list-tbl .ns-c-del { grid-column: 3; grid-row: 1 / span 2; align-self: center; width: auto; }
  .ns-list-tbl .ns-c-x { grid-column: 1 / 3; grid-row: 2; font-size: 14px; }
  .ns-list-tbl .ns-c-cat { grid-column: 1 / 3; grid-row: 3; }
  .ns-list-tbl .ns-c-m, .ns-list-tbl .ns-c-note { grid-column: 1 / 3; font-size: 12.5px; color: var(--nx-ink2); }
  .ns-list-tbl .ns-c-note:empty { display: none !important; }
  .ns-list-tbl .ns-c-n { grid-column: 1 / 3; font-size: 12.5px; }
  .ns-list-tbl .ns-c-g .ns-cl { display: none; }
  .ns-list-tbl .ns-c-n .ns-cl { display: inline; padding: 0 6px 0 0; font-size: 10.5px; }
  .ns-list-tbl .ns-empty-row, .ns-list-tbl .ns-empty-row td { display: block; }

  /* statistiche */
  .ns-graphs { grid-template-columns: minmax(0, 1fr); gap: 32px; }
}

/* telefono: margini di 16 px, niente scorrimento di lato */
@media (max-width: 767px) {
  .nx-soldi .nx-mast { flex-wrap: wrap; }
  .nx-soldi .nx-mast-l > i { display: block; }
  .nx-soldi .nx-mast-l > p + i + p { display: block; }
  .nx-soldi .nx-mast-r { width: 100%; justify-content: flex-start; }
  .ns-hero { margin-top: 20px; }
  .nx-soldi .ns-figs { margin-top: 22px; }
  .ns-side { grid-template-columns: minmax(0, 1fr); gap: 28px; }
  .ns-pay-tbl tr.ns-pay-row > .ns-c-rata { grid-template-columns: 100px minmax(0, 1fr); column-gap: 10px; }
  .ns-pay-tbl .ns-c-rata > .ns-cl { font-size: 10.5px; letter-spacing: .07em; overflow-wrap: anywhere; }
  .ns-foot-v { font-size: 22px; }
  .ns-kind-g { grid-template-columns: minmax(0, 1fr); }

  .ns-figs-sm .nx-fig-v { font-size: 26px; }
  .ns-chart { height: 240px; }
  .ns-cols3 { grid-template-columns: minmax(0, 1fr); gap: 28px; }
  .ns-q-tbl tr.ns-q-row { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .ns-q-tbl .ns-perf-bar { width: 64px; }
  .ns-m-tbl tr { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .ns-modal .ns-rec { grid-template-columns: minmax(0, 1fr); }
  .ns-move { grid-template-columns: 44px minmax(0, 1fr) auto auto; }
  .ns-doc-r { grid-template-columns: minmax(0, 1fr) auto; row-gap: 6px; }
  .ns-doc-d { grid-column: 1; grid-row: 1; font-size: 12.5px; }
  .ns-doc-v { grid-column: 2; grid-row: 1; text-align: right; }
  .ns-doc-t { grid-column: 1 / -1; grid-row: 2; }
  .ns-doc-f { grid-column: 1 / -1; grid-row: 3; }
  .ns-doc-f .ns-doc-date { flex: 1 1 auto; width: auto; min-width: 0; }

  /* «Prodotti venduti» e il rendimento dei canali: ogni riga una scheda, la cifra con la sua etichetta (come i trimestri) */
  .nx-soldi .nx-table-wrap:has(.ns-prod-tbl, .ns-roi-tbl) { overflow: visible; margin: 0; padding: 0; }
  .ns-prod-tbl, .ns-roi-tbl { min-width: 0; }
  .ns-prod-tbl, .ns-prod-tbl tbody, .ns-roi-tbl, .ns-roi-tbl tbody { display: block; }
  .ns-prod-tbl thead { display: none; }
  .ns-roi-tbl thead tr { display: flex; flex-wrap: wrap; gap: 4px 16px; padding: 0 0 12px; border-bottom: 1px solid var(--nx-rule-strong); }
  .ns-roi-tbl thead th { display: block; height: auto; padding: 4px 0; border: 0; text-align: left; }
  .ns-roi-tbl thead th.is-num .ns-sortl { justify-content: flex-start; }
  .ns-prod-tbl tbody tr:not(.ns-empty-row), .ns-roi-tbl tbody tr:not(.ns-empty-row) {
    display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 16px; row-gap: 8px; padding: 14px 0; border-bottom: 1px solid var(--nx-rule);
  }
  .ns-prod-tbl tbody td, .ns-roi-tbl tbody td { display: block; width: auto; padding: 0; border: 0; text-align: left; }
  .ns-prod-tbl tbody td.is-num, .ns-roi-tbl tbody td.is-num { text-align: left; }
  .ns-prod-tbl tbody td:first-child, .ns-roi-tbl tbody td:first-child { grid-column: 1 / -1; }
  .ns-prod-tbl td[data-l]::before, .ns-roi-tbl td[data-l]::before {
    content: attr(data-l); display: block; margin-bottom: 2px; font: 600 10.5px/1.35 var(--nx-f-ui); letter-spacing: var(--nx-eb-track);
    text-transform: uppercase; color: var(--nx-ink2);
  }
  .ns-prod-tbl .ns-empty-row, .ns-prod-tbl .ns-empty-row td, .ns-roi-tbl .ns-empty-row, .ns-roi-tbl .ns-empty-row td { display: block; }

  /* statistiche */
  .ns-filter { flex-direction: column; align-items: flex-start; gap: 8px; }
  .ns-src { grid-template-columns: minmax(0, 1fr); row-gap: 20px; }
  .ns-chart--donut { height: 240px; }
  .ns-graph .ns-chart { height: 240px; }
  .ns-export .nx-field { width: 100%; }
  .ns-export-b { width: 100%; }
  .ns-export-b .nx-btn { flex: 1 1 140px; }
}

/* passaggio del mouse (solo puntatori veri) */
@media (hover: hover) and (pointer: fine) {
  button.ns-rata:hover { background: var(--nx-hover); }
  .ns-rata + button.ns-rata:hover, .ns-extra-f + button.ns-rata:hover { box-shadow: none; border-radius: var(--nx-r); }
  .ns-pay-edit .ns-rata-e, button.ns-extra .ns-rata-e { opacity: 0; transition: opacity .15s; }
  button.ns-rata:is(:hover, :focus-visible) .ns-rata-e { opacity: 1; color: var(--nx-ink); }
  .ns-add:hover { box-shadow: inset 0 0 0 1px var(--nx-ink); }
  .ns-who a:hover { text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 3px; text-decoration-color: var(--nx-line); }
  .ns-y:not(.is-on):not(.is-none):hover { color: var(--nx-ink); }
  .ns-kind-o:hover { background: var(--nx-hover); }
  .ns-kind-o:has(input:checked):hover { background: var(--nx-wall); }
}

/* ───────────────────────── Profondità (palette Grafite) ─────────────────────────
   Profondità (palette Grafite): Pagamenti e Contabilità. Riquadri e tabelle come fogli.
   Le regole stanno sotto .nx-crm (il body della cornice): fuori dalla cornice questo file non cambia nulla. */
.nx-crm .ns-side-blk,
.nx-crm .ns-pay-tbl-wrap {
  background: var(--nx-sheet); border-radius: var(--nx-r-sheet); box-shadow: var(--nx-sheet-ring);
}

/* Pagamenti */
.nx-crm .ns-board { column-gap: var(--nx-gap-col); }

.nx-crm .ns-side { padding-left: 0; box-shadow: none; }

.nx-crm .ns-side-blk { padding: var(--nx-sheet-pad); }

.nx-crm .ns-side-blk + .ns-side-blk { margin-top: var(--nx-gap-sheet); }

.nx-crm .ns-pay-tbl-wrap { margin-top: 12px; padding: 6px var(--nx-sheet-padx) 12px; }

.nx-crm .ns-tbl thead th { padding-top: 14px; border-bottom-color: var(--nx-rule); }

.nx-crm .ns-tbl tfoot td { border-top-color: var(--nx-rule); }

.nx-crm .ns-tbl tbody tr:last-child td { border-bottom: 0; }

.nx-crm .ns-tbl.ns-pay-tbl tbody tr:last-child td { border-bottom: 1px solid var(--nx-rule); }

.nx-crm .nx-soldi .ns-figs { margin-top: 24px; }

/* azioni secondarie tranquille: con il mouse attenuate a riposo, accese sulla riga, sul foglio e con la tastiera; al telefono restano accese */
@media (hover: hover) and (pointer: fine) {
  .nx-crm .ns-pay-row .ns-add { opacity: .5; transition: opacity .15s; }
  .nx-crm .ns-pay-row:hover .ns-add,
  .nx-crm .ns-pay-row:focus-within .ns-add { opacity: 1; }
}

/* ───────────────────────── Profondità (palette Grafite): Contabilità, Statistiche, spese e incassi ───────────────────────── */
/* ogni tabella e ogni grafico è un foglio; il titolo della sezione resta sul tavolo, sopra */
.nx-crm .nx-soldi .ns-tbl { margin-top: 8px; border-collapse: separate; border-spacing: 0; overflow: hidden; background: var(--nx-sheet); border-radius: var(--nx-r-sheet); box-shadow: var(--nx-sheet-ring); }
.nx-crm .nx-soldi td .ns-tbl, .nx-crm .nx-soldi .ns-pay-tbl-wrap .ns-tbl { margin-top: 0; border-radius: 0; box-shadow: none; background: none; }
.nx-crm .nx-soldi .ns-tbl :is(th, td):first-child { padding-left: var(--nx-sheet-padx); }
.nx-crm .nx-soldi .ns-tbl :is(th, td):last-child { padding-right: var(--nx-sheet-padx); }
.nx-crm .nx-soldi .ns-tbl thead th { padding-top: 14px; border-bottom: 1px solid var(--nx-rule); }
.nx-crm .nx-soldi .ns-tbl tbody tr:last-child > td { border-bottom: 0; }
.nx-crm .nx-soldi .ns-tbl tfoot td { border-top: 1px solid var(--nx-rule); }
.nx-crm .nx-soldi .ns-chart { margin-top: 8px; padding: 16px var(--nx-sheet-pad); background: var(--nx-sheet); border-radius: var(--nx-r-sheet); box-shadow: var(--nx-sheet-ring); }
.nx-crm .nx-soldi .ns-note { border-bottom: 0; }
.nx-crm .nx-soldi .ns-sec { margin-top: 28px; }
.nx-crm .nx-soldi .ns-doc-none { margin-top: 8px; padding: 14px var(--nx-sheet-padx); border-top: 0; background: var(--nx-sheet); border-radius: var(--nx-r-sheet); box-shadow: var(--nx-sheet-ring); }
@media (hover: hover) and (pointer: fine) {
  .nx-crm .nx-soldi .ns-tbl tbody tr:hover > td { background: var(--nx-hover); }
}
.nx-crm .nx-soldi .ns-moves-blk, .nx-crm .nx-soldi .ns-col { padding: var(--nx-sheet-pad); background: var(--nx-sheet); border-radius: var(--nx-r-sheet); box-shadow: var(--nx-sheet-ring); }
.nx-crm .nx-soldi .ns-moves-blk { margin-top: var(--nx-gap-sheet); }
.nx-crm .nx-soldi .ns-cols3 { column-gap: var(--nx-gap-col); margin-top: 8px; }
.nx-crm .nx-soldi .ns-costs-f { padding: var(--nx-sheet-pad); background: var(--nx-sheet); border-radius: var(--nx-r-sheet); box-shadow: var(--nx-sheet-ring); }
.nx-crm .nx-soldi .ns-split { column-gap: var(--nx-gap-col); }
/* azioni secondarie tranquille: il cestino di una spesa o di un incasso si accende sulla riga */
@media (hover: hover) and (pointer: fine) {
  .nx-crm .ns-tbl tbody tr .ns-del { opacity: .5; transition: opacity .15s; }
  .nx-crm .ns-tbl tbody tr:hover .ns-del, .nx-crm .ns-tbl tbody tr:focus-within .ns-del { opacity: 1; }
}
