:root{
  --blu:#0a3d91; --blu2:#1259c3; --cielo:#e8f0fe; --ink:#16233b; --grigio:#68758d;
  --bordo:#dbe2ee; --sfondo:#f4f6fb; --ok:#0c7a43; --warn:#b45309; --rosso:#b3261e;
}
*{box-sizing:border-box}
body{margin:0;font:14px/1.45 -apple-system,"Segoe UI",Roboto,sans-serif;color:var(--ink);background:var(--sfondo);display:flex;min-height:100vh}
nav.side{width:210px;background:linear-gradient(180deg,#0a2a66,#0a3d91);color:#fff;display:flex;flex-direction:column;padding:14px 10px;position:sticky;top:0;height:100vh}
nav.side .brand{display:flex;align-items:center;gap:9px;font-size:17px;margin:2px 6px 18px}
nav.side .brand img{width:34px;height:34px;border-radius:8px;background:#fff;padding:2px}
nav.side a{color:#dbe6ff;text-decoration:none;padding:9px 12px;border-radius:9px;margin:2px 0;font-weight:500}
nav.side a:hover{background:rgba(255,255,255,.12)}
nav.side a.on{background:#fff;color:var(--blu)}
nav.side .spacer{flex:1}
main{flex:1;padding:26px 32px;max-width:1250px}
h1{font-size:22px;margin:0 0 4px}
h2{font-size:16px;margin:22px 0 8px}
.sub{color:var(--grigio);margin:0 0 18px}
.riga-top{display:flex;justify-content:space-between;align-items:flex-end;gap:12px;flex-wrap:wrap}
.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:12px;margin:14px 0 8px}
.card{background:#fff;border:1px solid var(--bordo);border-radius:12px;padding:14px 16px}
.card .n{font-size:24px;font-weight:700;color:var(--blu)}
.card .l{color:var(--grigio);font-size:12.5px}
table.el{width:100%;border-collapse:collapse;background:#fff;border:1px solid var(--bordo);border-radius:12px;overflow:hidden}
table.el th{background:var(--cielo);color:var(--blu);text-align:left;padding:8px 10px;font-size:12px;text-transform:uppercase;letter-spacing:.03em}
table.el td{padding:7px 10px;border-top:1px solid var(--bordo);vertical-align:top}
table.el tr:hover td{background:#fafcff}
.num{text-align:right;font-variant-numeric:tabular-nums}
a.btn,button.btn{display:inline-block;background:var(--blu);color:#fff;border:0;border-radius:9px;padding:8px 14px;font-weight:600;font-size:13.5px;cursor:pointer;text-decoration:none}
a.btn.sec,button.btn.sec{background:#fff;color:var(--blu);border:1px solid var(--blu)}
a.btn.mini,button.btn.mini{padding:4px 9px;font-size:12px;border-radius:7px}
button.btn.rosso{background:var(--rosso)}
a.btn:hover,button.btn:hover{filter:brightness(1.08)}
form.inline{display:inline}
.pill{display:inline-block;padding:2px 9px;border-radius:99px;font-size:11.5px;font-weight:600}
.pill.aperto,.pill.aperta,.pill.emessa{background:#e5f0ff;color:var(--blu)}
.pill.fatturato,.pill.esportata,.pill.incassata,.pill.accreditata,.pill.chiusa{background:#e2f6ea;color:var(--ok)}
.pill.in_distinta,.pill.presentata,.pill.anticipata{background:#fef3c7;color:var(--warn)}
.pill.insoluta{background:#fde8e6;color:var(--rosso)}
.box{background:#fff;border:1px solid var(--bordo);border-radius:12px;padding:16px 18px;margin:12px 0}
.griglia{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:10px 14px}
label{display:block;font-size:12px;color:var(--grigio);font-weight:600;margin-bottom:3px}
input,select,textarea{width:100%;padding:7px 9px;border:1px solid var(--bordo);border-radius:8px;font:inherit;background:#fff}
input:focus,select:focus,textarea:focus{outline:2px solid var(--blu2);border-color:transparent}
.azioni{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-top:12px}
.tot-box{background:var(--cielo);border:1px solid #c4d6f5;border-radius:12px;padding:14px 18px;display:flex;gap:28px;flex-wrap:wrap}
.tot-box .v{font-size:18px;font-weight:700;color:var(--blu)}
.tot-box .l{font-size:11.5px;color:var(--grigio)}
.conai{background:#f2fbf5;border:1px solid #bfe6cd;border-radius:12px;padding:12px 16px;margin:12px 0}
.conai h3{margin:0 0 8px;font-size:13.5px;color:var(--ok)}
.login-wrap{margin:auto;width:340px}
.login-wrap .brand{display:flex;align-items:center;gap:10px;justify-content:center;margin-bottom:18px;font-size:20px}
.login-wrap img{width:52px}
.err{background:#fde8e6;color:var(--rosso);padding:8px 12px;border-radius:8px;margin-bottom:10px}
.muted{color:var(--grigio);font-size:12.5px}
.desc-pre{white-space:pre-line}
@media(max-width:820px){body{flex-direction:column}nav.side{width:100%;height:auto;position:static;flex-direction:row;flex-wrap:wrap;align-items:center}nav.side .brand{margin:0 8px 0 0}main{padding:16px}}
