/* Gestionale — stili del modulo «finanze» (pagamenti, finanze, partecipanti ai corsi, stampa).
   Caratteri piu' grandi del resto del gestionale (V7 sez. 18): qui si leggono cifre e nomi. */

/* Colori dei grafici: il periodo in corso in verde, il precedente in grigio. Coppia
   verificata per daltonismo e contrasto sul pannello scuro; in stampa ne vale una per la carta. */
:root { --fin-att:#2f9a62; --fin-prec:#5b675d; }

/* FINANZE e i totali sono del responsabile (V7 test 96). */
.fin-riservato .fin-solo-resp, .mobile-instructor .fin-solo-resp,
.fin-riservato [data-mobile-view="finance"], .mobile-instructor [data-mobile-view="finance"],
.fin-riservato #financeView .heading-actions { display:none !important; }

/* Figli di griglia a larghezza minima zero: senza, una tabella larga allarga tutta la pagina
   invece di scorrere dentro il suo riquadro. */
.fin-corpo { display:grid; grid-template-columns:minmax(0,1fr); gap:12px; }
.fin-corpo > *, .fin-griglia > *, .fin-due > *, #finContenuto { min-width:0; }
.fin-pannello { padding:0 0 12px; overflow:hidden; }
.fin-pannello > *:not(.panel-head) { margin-left:14px; margin-right:14px; }
.fin-pannello .panel-head h2 { font-size:15px; }
.fin-pannello .panel-head p { font-size:var(--fs-xs); line-height:1.45; max-width:80ch; }
.fin-riservata { padding:18px; }
.fin-riservata h2 { font-size:17px; margin:0 0 6px; }
.fin-riservata p { font-size:13px; color:var(--muted); }

/* barra del periodo e schede */
.fin-barra { display:flex; flex-wrap:wrap; gap:10px; align-items:center; justify-content:space-between; }
.fin-tipi button, .fin-schede button, .fin-filtri .segmented button { font-size:13px; padding:8px 12px; min-height:36px; }
.fin-nav { display:flex; align-items:center; gap:6px; }
.fin-nav b { font-size:15px; min-width:150px; text-align:center; }
.fin-nav .ghost-btn { font-size:13px; min-height:36px; min-width:38px; }
.fin-schede { display:flex; flex-wrap:wrap; gap:6px; border-bottom:1px solid var(--line); padding-bottom:8px; }
.fin-schede button { border:1px solid var(--line); background:var(--panel2); color:var(--text); border-radius:10px; font-weight:700; }
.fin-schede button.active { background:var(--sand); color:#173020; border-color:var(--sand); }
.fin-avvertenza { margin:0; padding:8px 11px; border:1px solid rgba(120,168,190,.35); border-radius:10px; background:rgba(120,168,190,.08); color:#cfe2ea; font-size:var(--fs-xs); }

/* indicatori: quelli che aprono un elenco sono pulsanti veri */
.fin-kpi { display:grid; grid-template-columns:repeat(auto-fit,minmax(170px,1fr)); gap:10px; }
.fin-tile { display:flex; flex-direction:column; gap:4px; text-align:left; padding:12px 14px; border:1px solid var(--line); border-radius:13px; background:linear-gradient(145deg,var(--panel2),var(--panel)); color:var(--text); font:inherit; min-height:96px; }
.fin-tile span { font-size:var(--fs-xs); color:var(--muted); }
.fin-tile strong { font-size:24px; line-height:1.1; }
.fin-tile small { font-size:var(--fs-xs); color:var(--muted); }
.fin-tile em { font-style:normal; font-size:var(--fs-xs); color:var(--sand); margin-top:auto; }
.fin-tile.cliccabile { cursor:pointer; }
.fin-tile.cliccabile:hover, .fin-tile.cliccabile:focus-visible { border-color:var(--sand2); }

.fin-griglia { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; align-items:start; }
.fin-largo { grid-column:1/-1; }
.fin-due { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; }
.fin-sotto { font-size:13px; margin:14px 0 6px; }
.fin-nota { font-size:var(--fs-xs); color:var(--muted); line-height:1.5; }
.fin-conteggio { font-size:13px; margin:10px 0 6px; }

/* filtri: una riga sopra l'elenco che filtrano */
.fin-filtri { display:flex; flex-wrap:wrap; gap:8px 12px; align-items:end; margin-top:10px; }
.fin-filtri label { display:grid; gap:3px; font-size:var(--fs-xs); color:var(--muted); }
.fin-filtri select, .fin-filtri input { font-size:13px; min-height:36px; }
.fin-filtri input[type="search"] { min-width:220px; flex:1 1 220px; }
.fin-filtri .ghost-btn { font-size:var(--fs-xs); min-height:36px; }
.fin-filtri label.fin-check { display:flex; align-items:center; gap:6px; font-size:var(--fs-xs); color:var(--text); min-height:36px; }
.fin-check input { width:auto; min-height:0; }
.fin-regola { display:flex; flex-wrap:wrap; gap:8px 12px; align-items:end; margin-top:10px; font-size:var(--fs-xs); }
.fin-regola label { display:grid; gap:3px; color:var(--muted); }
.fin-regola input { width:110px; font-size:13px; min-height:36px; }

/* tabelle tipo foglio di calcolo */
.fin-tabella-box { overflow:auto; border:1px solid var(--line); border-radius:11px; background:#0f1711; }
.fin-tabella th, .fin-tabella td { font-size:var(--fs-xs); padding:7px 10px; }
.fin-tabella th { font-size:var(--fs-xs); padding:0; }
.fin-tabella tbody tr:nth-child(even) td { background:rgba(255,255,255,.018); }
.fin-tabella tbody tr:hover td { background:rgba(239,211,165,.05); }
.fin-tabella .num { text-align:right; font-variant-numeric:tabular-nums; }
.fin-tabella tfoot td { border-top:1px solid var(--line2, #3a4a3e); background:var(--panel2); }
.fin-ord { width:100%; min-width:64px; border:0; background:transparent; color:inherit; font:inherit; text-transform:inherit; letter-spacing:inherit; text-align:inherit; padding:8px 10px; cursor:pointer; white-space:normal; line-height:1.25; }
.fin-tabella th.num .fin-ord { text-align:right; }
.fin-link { border:0; background:transparent; color:var(--sand); font:inherit; font-weight:700; padding:0; cursor:pointer; text-align:left; text-decoration:underline; text-decoration-color:rgba(239,211,165,.35); text-underline-offset:3px; }
.fin-link:hover { text-decoration-color:var(--sand); }
.fin-azioni { white-space:nowrap; }
.fin-azioni .tiny-btn { font-size:var(--fs-xs); }
.fin-motivo { display:inline-block; max-width:220px; overflow:hidden; text-overflow:ellipsis; vertical-align:middle; font-size:var(--fs-xs); }
.fin-ord-mobile { display:none; }
.fin-lista { list-style:none; margin:8px 0 0; padding:0; display:grid; gap:2px; max-height:320px; overflow:auto; }
.fin-lista li { display:flex; flex-wrap:wrap; gap:4px 10px; align-items:baseline; padding:6px 2px; border-bottom:1px solid rgba(239,211,165,.07); font-size:var(--fs-xs); }
.fin-lista li span { color:var(--muted); font-size:var(--fs-xs); }

/* grafici */
.fin-grafico { display:block; max-width:100%; height:auto; margin:8px 0 6px; overflow:visible; }
.fin-g-att { fill:var(--fin-att); }
.fin-g-prec { fill:var(--fin-prec); }
.fin-g-et { fill:var(--muted); font-size:11px; }
.fin-g-val { fill:var(--text); font-size:11px; font-weight:700; }
.fin-g-asse { stroke:var(--line); stroke-width:1; }
.fin-g-griglia { stroke:var(--line); stroke-width:1; opacity:.6; }
.fin-g-hit { fill:transparent; }
.fin-g-hit:hover { fill:rgba(239,211,165,.06); }
.fin-legenda { display:flex; gap:14px; flex-wrap:wrap; margin-top:10px; font-size:var(--fs-xs); color:var(--muted); }
.fin-legenda span { display:inline-flex; align-items:center; gap:6px; }
.fin-legenda i { width:12px; height:12px; border-radius:3px; display:inline-block; }
.fin-legenda i.att { background:var(--fin-att); }
.fin-legenda i.prec { background:var(--fin-prec); height:6px; }

/* scheda cliente: abbonamenti, rate, pagamenti */
.fin-scheda .profile-section h3 { font-size:13px; }
.fin-sez-testa { display:flex; align-items:center; justify-content:space-between; gap:10px; margin-bottom:8px; }
.fin-sez-testa h3 { margin:0; }
.fin-pacchetto { border:1px solid var(--line); border-radius:11px; padding:10px 12px; margin-bottom:8px; background:var(--panel2); }
.fin-pk-testa { display:flex; flex-wrap:wrap; gap:6px; align-items:center; font-size:13.5px; }
.fin-pacchetto p { margin:4px 0 8px; font-size:var(--fs-xs); }
.fin-pacchetto .profile-kv { font-size:var(--fs-xs); }
.fin-rate { display:grid; gap:4px; margin:10px 0 4px; }
.fin-rata { display:grid; grid-template-columns:80px 92px 1fr auto 74px; gap:8px; align-items:center; font-size:var(--fs-xs); padding:5px 0; border-top:1px solid rgba(239,211,165,.07); }
.fin-pag-cliente { display:grid; gap:2px; }
.fin-pag-riga { display:grid; grid-template-columns:86px 1fr auto auto; gap:10px; align-items:center; font-size:var(--fs-xs); padding:6px 0; border-bottom:1px solid rgba(239,211,165,.07); }
.fin-pag-riga.rimborso b, .fin-pag-riga.storno b { color:#ffc979; }

/* modulo del piano rate */
.fin-rate-pagate { display:flex; flex-wrap:wrap; gap:6px; font-size:var(--fs-xs); color:var(--muted); margin-bottom:6px; }
.fin-rata-riga { display:grid; grid-template-columns:24px 1fr 1fr 36px; gap:6px; align-items:center; margin-bottom:6px; font-size:var(--fs-xs); }
.fin-rata-riga input { font-size:13px; min-height:36px; width:100%; }
.fin-rate-somma { font-size:var(--fs-xs); margin:6px 0 0; }

/* partecipanti */
.fin-filtri-part { margin-top:0; }

/* la pagina di stampa non si vede mai a schermo */
#finStampaBox { display:none; }

@media (max-width:1100px) {
  .fin-griglia, .fin-due { grid-template-columns:1fr; }
}

/* Telefono: tutto a portata di pollice, tabelle in schede, niente scorrimento orizzontale. */
@media (max-width:820px) {
  .fin-barra { flex-direction:column; align-items:stretch; }
  .fin-tipi { display:grid; grid-template-columns:repeat(3,1fr); }
  .fin-tipi button, .fin-schede button, .fin-filtri .segmented button { min-height:44px; font-size:14px; }
  .fin-nav { justify-content:space-between; }
  .fin-nav b { min-width:0; flex:1; font-size:15px; }
  .fin-nav .ghost-btn { min-height:44px; min-width:44px; font-size:15px; }
  .fin-schede { display:grid; grid-template-columns:1fr 1fr; }
  .fin-kpi { grid-template-columns:1fr 1fr; gap:8px; }
  .fin-tile { min-height:88px; padding:11px; }
  .fin-tile strong { font-size:20px; }
  .fin-filtri { display:grid; grid-template-columns:1fr; }
  .fin-filtri select, .fin-filtri input:not([type="checkbox"]), .fin-filtri .ghost-btn, .fin-regola input, .fin-regola .ghost-btn { min-height:44px; font-size:15px; width:100%; }
  .fin-filtri label.fin-check { min-height:44px; font-size:14px; }
  .fin-check input { width:22px; height:22px; flex:0 0 auto; }
  .fin-filtri input[type="search"] { min-width:0; }
  .fin-filtri .segmented { display:grid; grid-template-columns:1fr 1fr; }
  .fin-regola { display:grid; grid-template-columns:1fr; }
  .fin-regola input { width:100%; }
  .fin-avvertenza { font-size:13px; }
  .fin-pannello > *:not(.panel-head) { margin-left:10px; margin-right:10px; }
  .fin-ord-mobile { display:grid; gap:3px; font-size:var(--fs-xs); color:var(--muted); margin:8px 0; }
  .fin-ord-mobile select { min-height:44px; font-size:15px; }
  .fin-tabella-box { border:0; background:transparent; overflow:visible; }
  .fin-tabella, .fin-tabella tbody, .fin-tabella tfoot { display:block; width:100%; }
  .fin-tabella thead { display:none; }
  .fin-tabella tr { display:grid; grid-template-columns:1fr 1fr; gap:2px 10px; padding:10px 12px; margin-bottom:8px; border:1px solid var(--line); border-radius:12px; background:var(--panel2); }
  .fin-tabella td { display:block; border:0; padding:3px 0; white-space:normal; font-size:14px; background:transparent !important; overflow-wrap:anywhere; text-align:left; }
  .fin-tabella td.num { text-align:left; }
  .fin-tabella td::before { content:attr(data-l); display:block; font-size:var(--fs-xs); color:var(--muted); }
  .fin-tabella td.nome { grid-column:1/-1; font-size:16px; }
  .fin-tabella td.nome::before { display:none; }
  .fin-tabella td.fin-azioni { grid-column:1/-1; display:flex; flex-wrap:wrap; gap:8px; }
  .fin-tabella td.fin-azioni::before { display:none; }
  .fin-tabella tfoot tr { background:var(--panel3); }
  .fin-tabella tfoot td:empty { display:none; }
  .fin-azioni .tiny-btn, .fin-rata .tiny-btn, .fin-pag-riga .tiny-btn { min-height:44px; font-size:14px; padding:8px 12px; }
  .fin-link { font-size:16px; min-height:var(--h-tocco); min-width:var(--h-tocco); }
  .fin-lista li { font-size:14px; padding:9px 2px; }
  .fin-rata { grid-template-columns:1fr 1fr; font-size:14px; }
  .fin-pag-riga { grid-template-columns:1fr auto; font-size:14px; }
  .fin-pag-riga .fin-azioni { grid-column:1/-1; display:flex; gap:8px; }
  .fin-rata-riga { grid-template-columns:20px 1fr 1fr 44px; }
  .fin-rata-riga input { min-height:44px; font-size:15px; }
  .fin-rata-riga .tiny-btn { min-height:44px; }
}

/* ---------- stampa: «Salva come PDF» del browser ---------- */
@media print {
  @page { size:A4; margin:14mm 12mm; }
  html:has(> body.stampa-finanze) { background:#fff !important; height:auto !important; overflow:visible !important; }
  body.stampa-finanze { background:#fff !important; color:#111 !important; overflow:visible !important; height:auto !important; padding:0 !important; }
  body.stampa-finanze > *:not(#finStampaBox) { display:none !important; }
  body.stampa-finanze #finStampaBox { display:block !important; --fin-att:#2f8055; --fin-prec:#9aa59c; --muted:#555; --text:#111; --line:#bbb; }
  .fin-st { font:10.5pt/1.4 Inter, "Segoe UI", system-ui, sans-serif; color:#111; }
  .fin-st header { border-bottom:2px solid #2f8055; margin-bottom:10px; padding-bottom:6px; }
  .fin-st h1 { font-size:17pt; margin:0 0 4px; }
  .fin-st h2 { font-size:12.5pt; margin:14px 0 5px; break-after:avoid; }
  .fin-st h3 { font-size:10.5pt; margin:9px 0 3px; break-after:avoid; color:#2f8055; }
  .fin-st p { margin:2px 0; }
  .fin-st .fin-st-avv { margin-top:6px; padding:5px 8px; border:1px solid #999; font-size:9.5pt; }
  .fin-st section { break-inside:auto; }
  .fin-st table { width:100%; border-collapse:collapse; font-size:9pt; }
  .fin-st th, .fin-st td { border-bottom:1px solid #ccc; padding:3px 5px; text-align:left; white-space:normal; color:#111; background:none; position:static; text-transform:none; letter-spacing:0; font-size:9pt; }
  .fin-st th { border-bottom:1.5px solid #555; font-weight:700; }
  .fin-st .num { text-align:right; }
  .fin-st tr { break-inside:avoid; }
  .fin-st thead { display:table-header-group; }
  .fin-st .fin-grafico { width:100%; max-width:170mm; }
  .fin-st .fin-g-et { fill:#444; }
  .fin-st .fin-g-val { fill:#111; }
  .fin-st .fin-g-asse, .fin-st .fin-g-griglia { stroke:#bbb; }
  .fin-st .fin-legenda { color:#333; }
  .fin-st .fin-st-vuoto { color:#555; font-style:italic; }
}
