/* GestAdmin, tema 3.0 (22/10/2026): aspetto sobrio da gestionale professionale.
   Si carica DOPO stile.css e ne ridefinisce l'aspetto: colori pieni al posto delle sfumature, niente sollevamenti
   al passaggio del mouse, testo più compatto, contorni sottili, moduli con l'intestazione dentro il riquadro.
   Le classi restano quelle di stile.css: qui cambia solo l'aspetto. Non vale per le stampe (layout_stampa). */

:root {
  --perla: #f4f6f9;
  --perla-scura: #eef1f5;
  --grigio-100: #edf0f4;
  --grigio-200: #e1e5eb;
  --grigio-300: #cdd4dd;
  --grigio-400: #8a95a5;
  --grigio-600: #556170;
  --grigio-800: #1f2a37;
  --blu-50: #f0f5fb;
  --blu-100: #dfe9f5;
  --blu-200: #bfd3ea;
  --blu-400: #3f78b8;
  --blu-500: #245c9e;
  --blu-700: #1b4a80;
  --blu-900: #0f2440;
  --testo: #1a2330;
  --ombra-1: 0 1px 2px rgba(16, 24, 40, .05);
  --ombra-2: 0 4px 12px rgba(16, 24, 40, .08);
  --raggio: 8px;
  --raggio-s: 6px;
  --transizione: 120ms ease;
}

body { font-size: 14px; line-height: 1.5; background: var(--perla); -webkit-font-smoothing: antialiased; font-feature-settings: "cv11", "ss01"; }
a { color: var(--blu-500); }
a:hover { color: var(--blu-700); }
h2 { font-size: 1.35rem; font-weight: 650; letter-spacing: -.015em; color: var(--blu-900); padding-left: 0; margin: 0 0 1.1rem; }
h2::before { display: none; }
h3 { font-size: .95rem; font-weight: 650; color: var(--grigio-800); margin: 1.6rem 0 .6rem; }

/* ---------- Cornice ---------- */
.banner { background: #fdf6e3; color: #7a5a00; border-bottom: 1px solid #f1e2b3; font-size: .74rem; font-weight: 500; letter-spacing: .01em; padding: .25rem 1rem; }
header.testata { background: var(--blu-900); height: 54px; padding: 0 1.25rem; box-shadow: none; border-bottom: 1px solid rgba(255,255,255,.06); }
header.testata h1 { font-size: 1.02rem; font-weight: 650; letter-spacing: 0; gap: .65rem; }
header.testata h1 .logo img { height: 34px; filter: none; }
header.testata h1 .logo:hover { transform: none; opacity: .85; }
header.testata h1 .sottotitolo { font-size: .66rem; font-weight: 500; color: #8fa6c4; letter-spacing: .09em; margin-left: .75rem; padding-left: .75rem; border-left: 1px solid rgba(255,255,255,.18); }
form.uscita { gap: .5rem; }
form.uscita .chip { background: transparent; border: 1px solid transparent; padding: .25rem .6rem .25rem .25rem; font-size: .84rem; border-radius: var(--raggio-s); }
form.uscita .chip:hover { background: rgba(255,255,255,.08); text-decoration: none; }
form.uscita .chip strong { font-weight: 500; }
form.uscita .chip .iniziale { width: 28px; height: 28px; background: var(--blu-400); color: #fff; font-size: .8rem; font-weight: 600; }
form.uscita button { padding: .35rem .8rem; font-size: .8rem; font-weight: 500; border-color: rgba(255,255,255,.25); }
form.uscita button:hover { background: rgba(255,255,255,.1); color: #fff; border-color: rgba(255,255,255,.45); }

nav.aree { padding: 0 1rem; box-shadow: none; border-bottom: 1px solid var(--grigio-200); gap: 0; }
nav.aree a { font-size: .84rem; font-weight: 500; color: var(--grigio-600); padding: .85rem .85rem .8rem; }
nav.aree a::after { height: 2px; left: .85rem; right: .85rem; border-radius: 0; background: var(--blu-700); }
nav.aree a:hover { background: transparent; color: var(--grigio-800); }
nav.aree a:hover::after { transform: scaleX(0); }
nav.aree a.attiva { color: var(--blu-900); font-weight: 600; }
nav.aree a.attiva::after { transform: scaleX(1); }

.corpo { min-height: calc(100vh - 54px - 44px - 40px); }
aside.laterale { width: 212px; flex-basis: 212px; background: #fff; border-right: 1px solid var(--grigio-200); padding: 1.1rem .65rem 1.5rem; }
aside.laterale h2 { font-size: .66rem; letter-spacing: .1em; color: var(--grigio-400); font-weight: 600; margin: 0 .6rem .55rem; }
aside.laterale ul { gap: 1px; }
aside.laterale li, aside.laterale li:hover, aside.laterale li.attiva { box-shadow: none; }
aside.laterale li a { font-size: .84rem; padding: .4rem .6rem; color: var(--grigio-800); }
aside.laterale li:hover { background: var(--perla); }
aside.laterale li.attiva { background: var(--blu-50); }
aside.laterale li.attiva::before { display: none; }
aside.laterale li.attiva a { color: var(--blu-700); font-weight: 600; }

.corpo main { padding: 1.5rem 2rem 2.5rem; }
footer { background: transparent; border-top: 1px solid var(--grigio-200); color: var(--grigio-400); font-size: .72rem; padding: .8rem 1rem; }

/* ---------- Avvisi e note ---------- */
.avviso, .errore, ul.errori { border-radius: var(--raggio-s); border-left-width: 3px; font-size: .88rem; }
.avviso { background: #fdf8ea; border-color: #f0e2b8; border-left-color: #c89211; color: #5c4300; }
.vuoto { color: var(--grigio-600); font-style: normal; font-size: .86rem; }
td .vuoto, dd .vuoto { color: var(--grigio-400); }

/* ---------- Pulsanti: pieni e piatti ---------- */
button, .bottone, a.bottone, .azioni a.bottone { font-size: .84rem; font-weight: 600; padding: .5rem .9rem; border-radius: var(--raggio-s); line-height: 1.15; box-shadow: none; }
button::after, .bottone::after { display: none; }
button:active, .bottone:active { transform: none; }
button { background: var(--blu-700); color: #fff; border-color: var(--blu-700); }
button:hover { background: var(--blu-900); border-color: var(--blu-900); box-shadow: none; transform: none; }
button.secondario, a.bottone.secondario { background: #fff; color: var(--grigio-800); border-color: var(--grigio-300); }
button.secondario:hover, a.bottone.secondario:hover { background: var(--perla); color: var(--grigio-800); border-color: var(--grigio-400); }
.bottone, a.bottone, .azioni a.bottone { background: #fff; color: var(--grigio-800); border-color: var(--grigio-300); box-shadow: 0 1px 1px rgba(16,24,40,.04); }
.bottone:hover, a.bottone:hover { background: var(--perla); color: var(--blu-900); border-color: var(--grigio-400); box-shadow: 0 1px 1px rgba(16,24,40,.04); transform: none; }
button.pericolo, a.bottone.pericolo, .bottone.pericolo { background: #fff; color: var(--rosso); border-color: #ecc5c0; }
button.pericolo:hover, a.bottone.pericolo:hover, .bottone.pericolo:hover { background: var(--rosso-chiaro); color: var(--rosso); border-color: #e0a59d; }
button.piccolo, a.bottone.piccolo, .bottone.piccolo { padding: .28rem .55rem; font-size: .76rem; font-weight: 500; }
button:focus-visible, .bottone:focus-visible, a:focus-visible { outline: 2px solid var(--blu-400); outline-offset: 2px; }
.azioni { gap: .5rem; }

/* ---------- Moduli: riquadro con intestazione interna ---------- */
label { font-size: .8rem; font-weight: 600; color: var(--grigio-800); margin: .7rem 0 .3rem; }
small.aiuto { font-size: .74rem; }
input[type=text], input[type=password], input[type=date], input[type=number], input[type=email], input[type=search], input[type=file], select, textarea {
  font-size: .88rem; padding: .48rem .65rem; border-color: var(--grigio-300); border-radius: var(--raggio-s); box-shadow: 0 1px 1px rgba(16,24,40,.03);
}
input:focus, select:focus, textarea:focus { border-color: var(--blu-400); box-shadow: 0 0 0 3px rgba(63,120,184,.15); }
form.modulo { max-width: 1040px; }
form.modulo fieldset { border-radius: var(--raggio); border-color: var(--grigio-200); padding: 0 1.25rem 1.2rem; margin: 0 0 1rem; box-shadow: var(--ombra-1); }
form.modulo legend {
  float: left; width: calc(100% + 2.5rem); margin: 0 -1.25rem .4rem; padding: .8rem 1.25rem .7rem; border-bottom: 1px solid var(--grigio-100);
  font-size: .9rem; font-weight: 650; letter-spacing: 0; text-transform: none; color: var(--grigio-800);
}
form.modulo legend + * { clear: both; }
.griglia { grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: .1rem 1.1rem; }
.ricerca { border-radius: var(--raggio); padding: .5rem 1rem .9rem; box-shadow: var(--ombra-1); }

/* ---------- Tabelle ---------- */
table { border-radius: var(--raggio); border-color: var(--grigio-200); box-shadow: var(--ombra-1); font-size: .84rem; }
th, td { padding: .55rem .75rem; border-bottom-color: var(--grigio-100); }
th { background: #f8fafc; color: var(--grigio-600); font-size: .68rem; font-weight: 600; letter-spacing: .05em; border-bottom-color: var(--grigio-200); }
tbody tr:nth-child(even) td { background: transparent; }
tbody tr:hover td { background: #f6f9fd; }
.totali td { background: #f8fafc !important; border-top: 1px solid var(--grigio-300); }
td.num, th.num { font-variant-numeric: tabular-nums; }

/* ---------- Schede e riquadri ---------- */
dl.scheda { border-radius: var(--raggio); box-shadow: var(--ombra-1); font-size: .88rem; }
dl.scheda dt { font-size: .8rem; font-weight: 500; color: var(--grigio-600); background: #fafbfc; padding: .55rem 1.1rem; }
dl.scheda dd { padding: .55rem 1.1rem; }
dl.scheda h3 { background: #f8fafc; color: var(--grigio-600); font-size: .68rem; border-color: var(--grigio-100); }
.riquadro { border-radius: var(--raggio); box-shadow: var(--ombra-1); padding: .9rem 1.1rem .85rem; }
.riquadro::before { display: none; }
.riquadro:hover { box-shadow: var(--ombra-1); transform: none; }
.riquadro h3 { font-size: .68rem; font-weight: 600; letter-spacing: .07em; color: var(--grigio-600); margin-bottom: .35rem; }
.riquadro p strong, .numero-grande { color: var(--blu-900); font-weight: 650; letter-spacing: -.01em; font-variant-numeric: tabular-nums; }
.numero-grande { font-size: 1.6rem; }
.riquadro.ok, .riquadro.attenzione, .riquadro.da-versare { background: #fff; border-color: var(--grigio-200); }
.riquadro.ok { box-shadow: inset 3px 0 0 var(--verde), var(--ombra-1); }
.riquadro.attenzione, .riquadro.da-versare { box-shadow: inset 3px 0 0 #c89211, var(--ombra-1); }
.riquadro.da-versare .numero-grande { color: #8a5d00; }
.blocco, .pannello { border-radius: var(--raggio); box-shadow: var(--ombra-1); }
.blocco h3, .pannello h3 { font-size: .68rem; font-weight: 600; letter-spacing: .08em; color: var(--grigio-600); }
dl.campi dt { font-size: .68rem; font-weight: 500; letter-spacing: .04em; color: var(--grigio-400); }
dl.campi dd { font-size: .88rem; }
.testata-scheda .fatti { padding-left: 0; font-size: .84rem; }
.bollino, .etichetta-ruolo { font-size: .72rem; font-weight: 500; padding: .1rem .5rem; border-radius: 4px; }
.etichetta-ruolo { background: var(--blu-50); color: var(--blu-700); border: 1px solid var(--blu-100); margin: 1px 2px 1px 0; }

/* ---------- Pagina iniziale ---------- */
.benvenuto { background: var(--blu-900); border-radius: var(--raggio); box-shadow: none; padding: 1.3rem 1.5rem; }
.benvenuto .saluto { font-size: .74rem; color: #8fa6c4; }
.benvenuto h2.nome { font-size: 1.6rem; font-weight: 650; }
.benvenuto .orologio .ora { font-size: 2.2rem; font-weight: 300; }
.lista-compiti a { background: #fff; border-color: var(--grigio-200); }
.lista-compiti a:hover { transform: none; background: var(--perla); border-color: var(--grigio-300); }
.lista-compiti .conteggio { border-radius: var(--raggio-s); height: 1.9rem; font-size: .86rem; }
.kpi > div { background: #fafbfc; border-color: var(--grigio-100); }
.kpi .valore { font-size: 1.4rem; font-weight: 650; }
ul.barre progress::-webkit-progress-value { background: var(--blu-500); }
ul.barre progress::-moz-progress-bar { background: var(--blu-500); }
ul.barre.incassi progress::-webkit-progress-value { background: var(--verde); }
ul.barre.incassi progress::-moz-progress-bar { background: var(--verde); }

/* ---------- Scrivania amministrativa: tessere chiare ---------- */
.scrivania .tessera { background: #fff; color: var(--grigio-800); border: 1px solid var(--grigio-200); box-shadow: var(--ombra-1); min-height: 4rem; }
.scrivania .tessera::after { display: none; }
.scrivania .tessera:hover { transform: none; border-color: var(--blu-200); background: var(--blu-50); box-shadow: var(--ombra-1); }
.scrivania .titolo { font-size: .88rem; font-weight: 600; letter-spacing: 0; text-transform: none; color: var(--blu-900); }
.scrivania .rif { color: var(--grigio-600); font-size: .76rem; }
.scrivania .tessera.attenuata { background: var(--perla); }
.scrivania .tessera.attenuata .titolo { color: var(--grigio-400); }

/* ---------- Paginazione ---------- */
.paginazione a { border-radius: var(--raggio-s); box-shadow: none; font-size: .8rem; color: var(--grigio-800); border-color: var(--grigio-300); }
.paginazione a:hover { background: var(--perla); color: var(--blu-900); border-color: var(--grigio-400); }

/* ---------- Accesso ---------- */
body.accesso { background: var(--perla); }
form.login { border-radius: 10px; box-shadow: var(--ombra-2); border-color: var(--grigio-200); }

@media (max-width: 900px) {
  header.testata h1 .sottotitolo { display: none; }
  aside.laterale { width: auto; flex: none; border-right: 0; }
  .corpo main { padding: 1rem; }
}

/* Invito a filtrare al posto dell'elenco completo (regola del 22/10/2026). */
.invito-filtri { display: flex; align-items: center; justify-content: space-between; gap: 1rem; flex-wrap: wrap; background: #fff; border: 1px dashed var(--grigio-300); border-radius: var(--raggio); padding: .9rem 1.1rem; margin: 1rem 0; color: var(--grigio-600); font-size: .88rem; }
.invito-filtri p { margin: 0; }
.invito-filtri strong { color: var(--blu-900); }
