:root{
  color-scheme:light;
  --ground:#F4F6F8; --panel:#FFFFFF; --panel-2:#FAFBFC; --panel-3:#F0F3F6;
  --ink:#171C24; --ink-2:#4A5462; --ink-3:#6B7582;
  --rule:#DDE3EA; --rule-2:#EDF1F5;
  --accent:#1F5C8F; --accent-soft:#E4EEF7; --accent-ink:#164569;
  --ok:#1F6B4C; --ok-soft:#E1F0E8;
  --warn:#8A5714; --warn-soft:#FBEEDB;
  --stop:#8E3226; --stop-soft:#F8E4E0;
  --idle:#5A6373; --idle-soft:#ECEFF3;
  --shadow:0 1px 2px rgba(23,28,36,.06),0 4px 14px rgba(23,28,36,.05);
  --shadow-lg:0 18px 50px rgba(12,16,21,.24);
}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]){
  color-scheme:dark;
  --ground:#0F1318; --panel:#171C23; --panel-2:#1C222A; --panel-3:#212932;
  --ink:#E8ECF1; --ink-2:#A8B2BF; --ink-3:#8A94A1;
  --rule:#2A323C; --rule-2:#222932;
  --accent:#6BA8DA; --accent-soft:#1B2E3F; --accent-ink:#9CC8EA;
  --ok:#6BC79B; --ok-soft:#162C23; --warn:#E0AC63; --warn-soft:#32250F;
  --stop:#E08A7B; --stop-soft:#331D18; --idle:#9AA4B2; --idle-soft:#222932;
  --shadow:0 1px 2px rgba(0,0,0,.4),0 4px 14px rgba(0,0,0,.3);
  --shadow-lg:0 18px 50px rgba(0,0,0,.6);
}}
*{box-sizing:border-box}
html,body{margin:0}
body{background:var(--ground);color:var(--ink);
  font-family:"IBM Plex Sans",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif;
  font-size:14px;line-height:1.5;-webkit-font-smoothing:antialiased}
[hidden]{display:none!important}
h1,h2,h3{margin:0;text-wrap:balance}
.mono{font-family:"IBM Plex Mono",ui-monospace,Menlo,monospace}
.wrap{max-width:1300px;margin:0 auto;padding:0 16px 72px}
:focus-visible{outline:2px solid var(--accent);outline-offset:2px}

/* accesso */
.accesso{min-height:100vh;display:grid;place-items:center;padding:24px 16px}
.acc-card{width:min(400px,100%);background:var(--panel);border:1px solid var(--rule);border-radius:12px;
  padding:28px 24px;box-shadow:var(--shadow);display:flex;flex-direction:column;gap:14px}
.acc-card form{display:flex;flex-direction:column;gap:12px}
.acc-logo{font-size:22px;font-weight:700;letter-spacing:-.02em}
.acc-logo b,.logo b{color:var(--accent)}
.acc-sub{margin:0;color:var(--ink-2);font-size:13.5px}
#a-codice{font-family:"IBM Plex Mono",monospace;font-size:22px;letter-spacing:.3em;text-align:center}

/* testata */
.top{position:sticky;top:0;z-index:30;background:var(--panel);border-bottom:1px solid var(--rule)}
.top-in{max-width:1300px;margin:0 auto;padding:10px 16px;display:flex;gap:10px 18px;align-items:center;flex-wrap:wrap}
.logo{font-weight:700;font-size:16px;letter-spacing:-.02em}
.tabs{display:flex;gap:4px;flex-wrap:wrap}
.tabs button{font:inherit;font-size:13px;background:none;border:1px solid transparent;border-radius:6px;
  padding:6px 10px;color:var(--ink-2);cursor:pointer}
.tabs button[aria-pressed="true"]{background:var(--accent-soft);color:var(--accent-ink);border-color:var(--accent-soft);font-weight:600}
.io{margin-left:auto;display:flex;align-items:center;gap:8px;font-size:12.5px;flex-wrap:wrap}
.acct{display:inline-flex;align-items:center;gap:6px;font-size:12px;border:1px solid var(--rule);
  border-radius:99px;padding:3px 10px 3px 8px;background:var(--panel-2);color:var(--ink-2)}
.acct .k{width:6px;height:6px;border-radius:99px;background:var(--ok)}
.linkbtn{background:none;border:none;color:var(--accent);font:inherit;font-size:12.5px;cursor:pointer;
  text-decoration:underline;text-underline-offset:2px;padding:2px}

.dash{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:10px;margin:20px 0 8px}
.card{background:var(--panel);border:1px solid var(--rule);border-radius:8px;padding:14px 16px;box-shadow:var(--shadow)}
.card .lab{font-size:10.5px;letter-spacing:.11em;text-transform:uppercase;color:var(--ink-3);font-weight:600}
.card .big{font-size:24px;font-weight:600;letter-spacing:-.025em;margin-top:6px;font-variant-numeric:tabular-nums;line-height:1.1}
.card .sub{font-size:11.5px;color:var(--ink-3);margin-top:4px}
.card.acc .big{color:var(--accent)} .card.ok .big{color:var(--ok)}
.card.warn .big{color:var(--warn)} .card.stop .big{color:var(--stop)}

.avviso{background:var(--accent-soft);border-left:3px solid var(--accent);border-radius:0 6px 6px 0;
  padding:11px 14px;margin:16px 0 24px;font-size:12.5px;line-height:1.55}
.avviso b{color:var(--accent-ink)}
.lbl{font-size:10.5px;letter-spacing:.13em;text-transform:uppercase;color:var(--ink-3);font-weight:600;
  margin:18px 0 10px;display:flex;align-items:center;gap:10px}
.lbl::after{content:"";flex:1;height:1px;background:var(--rule)}
.chips{display:flex;flex-wrap:wrap;gap:7px;margin-bottom:20px}
.chip{background:var(--panel);border:1px solid var(--rule);border-radius:6px;padding:8px 12px;cursor:pointer;
  font:inherit;font-size:12.5px;color:var(--ink-2);display:flex;gap:8px;align-items:baseline}
.chip b{font-size:16px;font-weight:600;font-variant-numeric:tabular-nums;color:var(--ink)}
.chip:hover{border-color:var(--accent)}
.chip[aria-pressed="true"]{background:var(--accent-soft);border-color:var(--accent);color:var(--accent-ink)}
.chip.rosso[aria-pressed="true"]{background:var(--stop-soft);border-color:var(--stop);color:var(--stop)}
.chip .bar{width:3px;align-self:stretch;border-radius:2px;background:var(--c,var(--idle))}

.bar2{display:flex;flex-wrap:wrap;gap:9px;align-items:center;margin-bottom:12px}
input[type=search],input[type=text],input[type=email],input[type=date],select,textarea{font:inherit;font-size:13px;
  padding:8px 10px;border:1px solid var(--rule);border-radius:6px;background:var(--panel);color:var(--ink);min-width:0;width:100%}
.bar2 input[type=search]{flex:1 1 220px;width:auto}
.bar2 select{width:auto}
textarea{resize:vertical;line-height:1.5}
.reset{background:none;border:none;color:var(--accent);font:inherit;font-size:12.5px;cursor:pointer;text-decoration:underline;padding:6px 2px}
.conta{font-size:12px;color:var(--ink-3);margin-bottom:10px}
.lista{display:grid;gap:8px}
.riga{background:var(--panel);border:1px solid var(--rule);border-radius:8px;padding:12px 14px;display:grid;
  grid-template-columns:auto 1fr auto;gap:12px;align-items:center;cursor:pointer;box-shadow:var(--shadow);
  text-align:left;font:inherit;color:inherit;width:100%}
.riga:hover{border-color:var(--accent)}
.riga .stripe{width:4px;align-self:stretch;border-radius:3px;background:var(--c,var(--idle))}
.riga .nome{font-weight:600;line-height:1.3}
.riga .meta{font-size:11.5px;color:var(--ink-3);margin-top:3px;display:flex;flex-wrap:wrap;gap:4px 12px}
.riga .destra{text-align:right;display:flex;flex-direction:column;gap:5px;align-items:flex-end}
.eur{font-variant-numeric:tabular-nums;font-weight:600;white-space:nowrap}
.pill{display:inline-block;font-size:10.5px;font-weight:600;padding:2px 8px;border-radius:99px;white-space:nowrap}
.p-ok{background:var(--ok-soft);color:var(--ok)} .p-go{background:var(--accent-soft);color:var(--accent-ink)}
.p-wa{background:var(--warn-soft);color:var(--warn)} .p-st{background:var(--stop-soft);color:var(--stop)}
.p-id{background:var(--idle-soft);color:var(--idle)}
.manca{display:flex;flex-wrap:wrap;gap:4px;margin-top:6px}
.manca span{font-size:10px;background:var(--stop-soft);color:var(--stop);border-radius:3px;padding:1px 6px}
.dash-{color:var(--ink-3)}
.vuoto{padding:44px 16px;text-align:center;color:var(--ink-3);background:var(--panel);border:1px dashed var(--rule);border-radius:8px}

.scrim{position:fixed;inset:0;background:rgba(12,16,21,.5);z-index:60;opacity:0;pointer-events:none;transition:opacity .18s}
.scrim.on{opacity:1;pointer-events:auto}
.panel{position:fixed;top:0;right:0;height:100%;width:min(640px,100%);background:var(--panel);border-left:1px solid var(--rule);
  z-index:61;transform:translateX(102%);transition:transform .22s ease;display:flex;flex-direction:column;box-shadow:var(--shadow-lg)}
.panel.on{transform:none}
.ph{padding:16px 20px 14px;border-bottom:1px solid var(--rule);background:var(--panel-2);display:flex;gap:14px;align-items:flex-start}
.ph h2{font-size:17px;font-weight:600;line-height:1.3}
.ph .cod{font-size:11.5px;color:var(--ink-3);margin-bottom:4px}
.x{margin-left:auto;background:none;border:1px solid var(--rule);border-radius:5px;width:30px;height:30px;cursor:pointer;color:var(--ink-2);font-size:17px;flex:none}
.pb{padding:18px 20px;overflow-y:auto;flex:1;display:flex;flex-direction:column;gap:22px}
.pf{padding:12px 20px;border-top:1px solid var(--rule);display:flex;gap:10px;align-items:center;flex-wrap:wrap;background:var(--panel-2)}
.btn{font:inherit;font-size:13.5px;font-weight:600;background:var(--panel);color:var(--ink);border:1px solid var(--rule);border-radius:6px;padding:8px 15px;cursor:pointer}
.btn:hover{border-color:var(--accent);color:var(--accent)}
.btn.pri{background:var(--accent);border-color:var(--accent);color:#fff}
.btn.pri:hover{filter:brightness(1.08);color:#fff}
.btn.okb{background:var(--ok);border-color:var(--ok);color:#fff}
.btn.sm{font-size:12.5px;padding:6px 11px}
.btn.largo{width:100%;padding:10px}
.btn:disabled{opacity:.5;cursor:not-allowed}
.msg{font-size:12.5px;color:var(--ink-3);margin:0}
.msg.err{color:var(--stop)} .msg.ok{color:var(--ok)}
.grp{font-size:10px;letter-spacing:.13em;text-transform:uppercase;color:var(--ink-3);font-weight:600;margin-bottom:10px}
.campi{display:grid;grid-template-columns:repeat(auto-fit,minmax(168px,1fr));gap:12px}
label.f{display:flex;flex-direction:column;gap:5px;font-size:10.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-3);font-weight:600}
label.f input,label.f select,label.f textarea{text-transform:none;letter-spacing:0;font-weight:400}
label.f.wide{grid-column:1/-1}
.kv{display:grid;grid-template-columns:auto 1fr;gap:6px 16px;font-size:13px;margin:0}
.kv dt{color:var(--ink-3)} .kv dd{margin:0;text-align:right;font-variant-numeric:tabular-nums}
.nota{font-size:12.5px;color:var(--ink-2);background:var(--panel-2);border:1px solid var(--rule-2);border-radius:6px;padding:10px 12px;white-space:pre-wrap}
.punto{background:var(--warn-soft);border-left:3px solid var(--warn);border-radius:0 6px 6px 0;padding:9px 12px;margin-bottom:7px;font-size:12.5px}
.punto b{display:block;font-size:9.5px;letter-spacing:.09em;text-transform:uppercase;color:var(--warn);margin-bottom:2px}
.punto.rosso{background:var(--stop-soft);border-left-color:var(--stop)} .punto.rosso b{color:var(--stop)}
.bloccato{font-size:12px;color:var(--ink-3);background:var(--panel-3);border-radius:6px;padding:9px 11px}
.cf{border:1px solid var(--rule);border-radius:8px;overflow:hidden}
.cf-h{display:grid;grid-template-columns:repeat(3,1fr);border-bottom:1px solid var(--rule);background:var(--panel-2)}
.cf-h div{padding:9px 12px;font-size:11.5px;color:var(--ink-3);border-right:1px solid var(--rule-2);line-height:1.35}
.cf-h div:last-child{border-right:none}
.cf-h div b{display:block;font-size:12.5px;color:var(--ink-2)}
.cf-h div.fatto b{color:var(--ok)} .cf-h div.ora{background:var(--accent-soft)} .cf-h div.ora b{color:var(--accent-ink)}
.cf-b{padding:14px;display:flex;flex-direction:column;gap:14px}
.conf{display:flex;gap:9px;align-items:flex-start;font-size:13px;cursor:pointer}
.conf input{margin-top:3px;flex:none;width:16px;height:16px;accent-color:var(--accent)}
.tab-wrap{overflow-x:auto;border:1px solid var(--rule-2);border-radius:6px;background:var(--panel)}
table.sch{border-collapse:collapse;width:100%;font-size:12.5px}
table.sch th,table.sch td{padding:7px 10px;border-bottom:1px solid var(--rule-2);text-align:left;vertical-align:top}
table.sch thead th{color:var(--ink-3);font-weight:600;background:var(--panel-2)}
table.sch tbody th{color:var(--ink-3);font-weight:500;width:36%}
table.sch td.dv{color:var(--warn);font-weight:600}
.riga-az{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.sotto{font-size:12px;color:var(--ink-3);line-height:1.5}
.acc-box{background:var(--panel);border:1px solid var(--rule);border-radius:8px;padding:14px 16px;margin:20px 0;box-shadow:var(--shadow)}
.acc-box h3{font-size:14px;font-weight:600;margin-bottom:10px}
@media (max-width:620px){
  .riga{grid-template-columns:auto 1fr}
  .riga .destra{grid-column:2;align-items:flex-start;text-align:left;flex-direction:row;flex-wrap:wrap}
  .io{margin-left:0}
  .card .big{font-size:20px}
}
@media (prefers-reduced-motion:reduce){*{transition:none!important}}
