/* IAV Soluzioni - foglio di stile unico. Caratteri di sistema: nessuna richiesta a servizi esterni. */
:root{
  --bg:#F4F5F2; --panel:#FFFFFF; --sunk:#EAEFEF; --ink:#14303D; --muted:#55666D; --line:#D6DFE1;
  --accent:#156082; --accent-ink:#FFFFFF; --accent-soft:#DCEBF2;
  --in:#1E6E46; --in-soft:#E1F1E8; --out:#A8321F; --out-soft:#F7E2DD; --giro:#8A5E00; --giro-soft:#F8EDD2;
  --warn:#8A5E00; --bad:#A8321F; --ok:#1E6E46;
  --display: Georgia, "Times New Roman", serif;
  --text: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
  color-scheme: light;
}
@media (prefers-color-scheme: dark){ :root:not([data-theme="light"]){
  --bg:#0F1A1F; --panel:#162329; --sunk:#1C2C33; --ink:#E3ECEE; --muted:#9DB0B6; --line:#2B3D45;
  --accent:#6FB6D6; --accent-ink:#0B1A21; --accent-soft:#1B3A49;
  --in:#7FCBA0; --in-soft:#163527; --out:#F09A88; --out-soft:#3D1F19; --giro:#E6BE6A; --giro-soft:#3A2E12;
  --warn:#E6BE6A; --bad:#F09A88; --ok:#7FCBA0; color-scheme:dark } }
:root[data-theme="dark"]{
  --bg:#0F1A1F; --panel:#162329; --sunk:#1C2C33; --ink:#E3ECEE; --muted:#9DB0B6; --line:#2B3D45;
  --accent:#6FB6D6; --accent-ink:#0B1A21; --accent-soft:#1B3A49;
  --in:#7FCBA0; --in-soft:#163527; --out:#F09A88; --out-soft:#3D1F19; --giro:#E6BE6A; --giro-soft:#3A2E12;
  --warn:#E6BE6A; --bad:#F09A88; --ok:#7FCBA0; color-scheme:dark }
*{ box-sizing:border-box; }
html{ -webkit-text-size-adjust:100%; }
body{ margin:0; background:var(--bg); color:var(--ink); font-family:var(--text); font-size:15px; line-height:1.45; }
a{ color:var(--accent); }
.wrap{ max-width:1180px; margin:0 auto; padding:20px 16px 56px; display:flex; flex-direction:column; gap:18px; }
h1,h2,h3{ margin:0; text-wrap:balance; }
h1{ font-family:var(--display); font-weight:700; font-size:1.6rem; }
h2{ font-size:1.1rem; font-weight:800; }
h3{ font-size:1rem; font-weight:800; }
p{ margin:0; }
.sub{ color:var(--muted); margin:2px 0 0; }
[hidden]{ display:none !important; }

/* Barra superiore */
.barra{ background:var(--ink); color:var(--bg); }
.barra .in{ max-width:1180px; margin:0 auto; padding:10px 16px; display:flex; flex-wrap:wrap; gap:8px 18px; align-items:center; }
.marchio{ font-family:var(--display); font-weight:700; font-size:1.15rem; letter-spacing:.01em; color:inherit; text-decoration:none; }
.marchio small{ font-family:var(--text); font-weight:600; font-size:.75rem; opacity:.75; margin-left:8px; }
.barra .dx{ margin-left:auto; display:flex; flex-wrap:wrap; gap:8px; align-items:center; font-size:.85rem; }
.barra .btn{ background:transparent; color:var(--bg); border-color:color-mix(in srgb, var(--bg) 40%, transparent); }

.top{ display:flex; flex-wrap:wrap; gap:12px 24px; align-items:flex-end; justify-content:space-between; border-bottom:2px solid var(--ink); padding-bottom:12px; }
.eyebrow{ font-size:.72rem; letter-spacing:.09em; text-transform:uppercase; font-weight:800; color:var(--accent); }
.chip{ display:inline-flex; align-items:center; gap:6px; border-radius:999px; padding:2px 10px; font-size:.78rem; font-weight:700; border:1px solid currentColor; white-space:nowrap; }
.c-ok{ color:var(--ok); } .c-warn{ color:var(--warn); } .c-bad{ color:var(--bad); } .c-mute{ color:var(--muted); }
.tabs{ display:flex; gap:4px; flex-wrap:wrap; border-bottom:1px solid var(--line); }
.tab{ font:inherit; font-weight:700; background:none; border:0; border-bottom:3px solid transparent; padding:8px 12px; color:var(--muted); cursor:pointer; }
.tab[aria-selected="true"]{ color:var(--ink); border-bottom-color:var(--accent); }
.panel{ display:flex; flex-direction:column; gap:16px; }
.card{ background:var(--panel); border:1px solid var(--line); border-radius:10px; padding:16px; display:flex; flex-direction:column; gap:12px; min-width:0; }
.row{ display:flex; flex-wrap:wrap; gap:10px; align-items:end; }
.grid2{ display:grid; grid-template-columns:repeat(auto-fit, minmax(min(100%, 22rem), 1fr)); gap:16px; }
.grid3{ display:grid; grid-template-columns:repeat(auto-fit, minmax(min(100%, 15rem), 1fr)); gap:12px; }
label.f{ display:flex; flex-direction:column; gap:4px; font-size:.82rem; color:var(--muted); font-weight:600; min-width:0; }
input, select, textarea{ font:inherit; color:var(--ink); background:var(--panel); border:1px solid var(--line); border-radius:7px; padding:7px 9px; min-width:0; }
input[type=number]{ text-align:right; font-variant-numeric:tabular-nums; }
button{ font:inherit; cursor:pointer; }
.btn{ border:1px solid var(--line); background:var(--panel); color:var(--ink); border-radius:8px; padding:7px 14px; font-weight:700; text-decoration:none; display:inline-flex; align-items:center; gap:6px; }
.btn.primary{ background:var(--accent); color:var(--accent-ink); border-color:var(--accent); }
.btn.ghost{ background:transparent; }
.btn.danger{ color:var(--bad); }
.btn.small{ padding:4px 10px; font-size:.82rem; }
.btn:disabled{ opacity:.45; cursor:not-allowed; }
:is(.btn,.tab,.tipo,input,select,textarea,a):focus-visible{ outline:2px solid var(--accent); outline-offset:2px; }
.seg{ display:inline-flex; border:1px solid var(--line); border-radius:9px; overflow:hidden; }
.seg button{ border:0; background:var(--panel); color:var(--muted); padding:7px 14px; font-weight:700; }
.seg button[aria-pressed="true"]{ background:var(--accent-soft); color:var(--ink); }
.tipi{ display:grid; grid-template-columns:repeat(3, minmax(0,1fr)); gap:10px; }
.tipo{ border:2px solid var(--line); background:var(--panel); border-radius:10px; padding:12px; text-align:left; display:flex; flex-direction:column; gap:2px; color:var(--ink); }
.tipo b{ font-size:1.02rem; } .tipo span{ font-size:.8rem; color:var(--muted); }
.tipo[data-t="E"][aria-pressed="true"]{ border-color:var(--in); background:var(--in-soft); }
.tipo[data-t="U"][aria-pressed="true"]{ border-color:var(--out); background:var(--out-soft); }
.tipo[data-t="G"][aria-pressed="true"]{ border-color:var(--giro); background:var(--giro-soft); }
.step{ display:flex; flex-direction:column; gap:6px; }
.step .q{ font-weight:800; }
.hint{ font-size:.8rem; color:var(--muted); margin:0; }
.msg-err{ color:var(--bad); font-weight:700; }
.scroll{ overflow-x:auto; }
table{ border-collapse:collapse; width:100%; font-variant-numeric:tabular-nums; }
th, td{ padding:6px 8px; border-bottom:1px solid var(--line); text-align:left; vertical-align:top; }
th{ font-size:.74rem; text-transform:uppercase; letter-spacing:.05em; color:var(--muted); background:var(--sunk); font-weight:800; white-space:nowrap; }
td.n, th.n{ text-align:right; white-space:nowrap; }
td.in{ color:var(--in); font-weight:700; } td.out{ color:var(--out); font-weight:700; }
tr.giro td{ background:var(--giro-soft); }
tr.sec td{ background:var(--accent-soft); font-weight:800; }
tr.tot td{ font-weight:800; border-top:2px solid var(--ink); }
tr.sub td{ background:var(--sunk); font-weight:700; }
.quick td{ background:var(--sunk); }
.quick input, .quick select{ width:100%; }
.empty{ color:var(--muted); padding:18px 8px; }
.kpis{ display:grid; grid-template-columns:repeat(auto-fit, minmax(min(100%, 12rem), 1fr)); gap:12px; }
.kpi{ background:var(--panel); border:1px solid var(--line); border-radius:10px; padding:12px 14px; display:flex; flex-direction:column; gap:2px; }
.kpi .l{ font-size:.78rem; color:var(--muted); font-weight:700; }
.kpi .v{ font-family:var(--display); font-size:1.35rem; font-variant-numeric:tabular-nums; }
.banner{ border-left:4px solid var(--bad); background:var(--out-soft); padding:10px 14px; border-radius:0 8px 8px 0; }
.banner.info{ border-color:var(--accent); background:var(--accent-soft); }
.small{ font-size:.8rem; }
.mono{ font-family:ui-monospace, "SFMono-Regular", Menlo, Consolas, monospace; font-size:.82rem; }
.right{ margin-left:auto; }
.toast{ position:fixed; right:16px; bottom:16px; background:var(--ink); color:var(--bg); padding:9px 14px; border-radius:8px; font-weight:700; z-index:5; max-width:calc(100vw - 32px); }
.piede{ border-top:1px solid var(--line); padding-top:12px; display:flex; flex-wrap:wrap; gap:6px 18px; font-size:.8rem; color:var(--muted); }
.piede a{ color:var(--muted); }

/* Pagina di accesso */
.hero{ display:grid; grid-template-columns:minmax(0,1.25fr) minmax(0,1fr); gap:28px; align-items:start; padding-top:18px; }
.hero h1{ font-size:2.1rem; line-height:1.15; }
.hero .lead{ font-size:1.05rem; color:var(--muted); margin-top:10px; max-width:38rem; }
.punti{ list-style:none; margin:18px 0 0; padding:0; display:flex; flex-direction:column; gap:10px; }
.punti li{ padding-left:18px; position:relative; }
.punti li::before{ content:""; position:absolute; left:0; top:.55em; width:8px; height:8px; border-radius:2px; background:var(--accent); }
.accesso form{ display:flex; flex-direction:column; gap:12px; }
.accesso input{ width:100%; }
.dialogo{ position:fixed; inset:0; background:color-mix(in srgb, var(--ink) 45%, transparent); display:flex; align-items:center; justify-content:center; padding:16px; z-index:6; }
.dialogo .card{ width:min(100%, 34rem); max-height:calc(100vh - 32px); overflow:auto; }
@media (max-width:760px){ .hero{ grid-template-columns:1fr; } .hero h1{ font-size:1.7rem; } }
@media (max-width:640px){ .tipi{ grid-template-columns:1fr; } .hide-s{ display:none; } }
@media print{ .barra, .tabs, .card button, .piede, #card-inserimento{ display:none !important; } body{ background:#fff; } }

/* Portale: riquadri dei servizi */
.moduli{ display:grid; grid-template-columns:repeat(auto-fit, minmax(min(100%, 17rem), 1fr)); gap:14px; }
.modulo{ background:var(--panel); border:1px solid var(--line); border-top:4px solid var(--accent); border-radius:10px; padding:16px; display:flex; flex-direction:column; gap:8px; text-decoration:none; color:var(--ink); min-height:10rem; }
.modulo:hover{ border-color:var(--accent); }
.modulo h2{ font-family:var(--display); font-weight:700; font-size:1.25rem; }
.modulo .stato{ margin-top:auto; font-size:.85rem; color:var(--muted); font-weight:700; }
.modulo.off{ opacity:.55; border-top-color:var(--line); pointer-events:none; }
.mod-chip{ display:inline-flex; gap:4px; align-items:center; margin:0 4px 4px 0; }
.mod-chip input{ margin:0; }
tr.nuovo td{ background:var(--accent-soft); }
tr.scaduta td{ background:var(--out-soft); }
