:root{
  --acc:#17394D; --acc-2:#24536e; --testo:#1A1A1A; --grigio:#5A5A5A; --filetto:#C8C8C8;
  --sfondo:#F6F7F8; --carta:#FFFFFF; --tenue:#EEF1F3;
  --rosso:#B42318; --rosso-bg:#FEF3F2; --ambra:#B54708; --ambra-bg:#FFFAEB;
  --blu:#1D4E89; --blu-bg:#EFF4FA; --verde:#067647; --verde-bg:#ECFDF3;
}
*{box-sizing:border-box}
html{font-size:15px}
body{margin:0;background:var(--sfondo);color:var(--testo);
  font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Calibri,Roboto,Helvetica,Arial,sans-serif;line-height:1.45}
a{color:var(--acc);text-decoration:none} a:hover{text-decoration:underline}
h1{font-size:1.45rem;margin:0 0 .2rem;color:var(--acc);font-weight:650}
h2{font-size:1.05rem;margin:0 0 .6rem;font-weight:650}
.sub{color:var(--grigio);margin:0 0 1.2rem}
/* testata */
.top{background:var(--acc);color:#fff}
.top .wrap{display:flex;align-items:center;gap:1.4rem;height:54px}
.brand{font-weight:650;font-size:1.02rem;color:#fff;letter-spacing:.2px;white-space:nowrap}
.brand small{display:block;font-weight:400;opacity:.75;font-size:.74rem;margin-top:-1px}
.nav{display:flex;gap:.2rem;flex:1;overflow-x:auto}
.nav a{color:#dfe8ee;padding:.45rem .75rem;border-radius:6px;white-space:nowrap}
.nav a:hover{background:rgba(255,255,255,.08);text-decoration:none}
.nav a.on{background:rgba(255,255,255,.14);color:#fff}
.user{color:#dfe8ee;font-size:.85rem;white-space:nowrap}
.user a{color:#fff;margin-left:.6rem}
.wrap{max-width:1320px;margin:0 auto;padding:0 20px}
main.wrap{padding-top:22px;padding-bottom:50px}
/* card */
.card{background:var(--carta);border:1px solid #E3E6E8;border-radius:10px;padding:18px 20px;margin-bottom:18px}
.card.flat{padding:0;overflow:hidden}
.card.flat>.hd{padding:14px 18px;border-bottom:1px solid var(--tenue);display:flex;align-items:center;gap:.8rem;flex-wrap:wrap}
.card.flat>.hd h2{margin:0;flex:1}
/* indicatori */
.kpi{display:grid;grid-template-columns:repeat(5,1fr);gap:14px;margin-bottom:18px}
.kpi a{display:block;background:var(--carta);border:1px solid #E3E6E8;border-radius:10px;padding:14px 16px;color:var(--testo)}
.kpi a:hover{border-color:var(--acc);text-decoration:none}
.kpi .n{font-size:1.9rem;font-weight:650;line-height:1.1;font-variant-numeric:tabular-nums}
.kpi .l{color:var(--grigio);font-size:.85rem}
.kpi .scaduta .n{color:var(--rosso)} .kpi .vicina .n{color:var(--ambra)}
/* tabelle */
table.t{width:100%;border-collapse:collapse;font-size:.92rem}
table.t th{text-align:left;font-weight:400;color:var(--grigio);text-transform:uppercase;font-size:.72rem;letter-spacing:.4px;
  padding:9px 10px;border-bottom:1px solid var(--filetto);border-top:2px solid var(--acc);white-space:nowrap;background:#fff;position:sticky;top:0}
table.t td{padding:8px 10px;border-bottom:1px solid var(--tenue);vertical-align:top}
table.t tr:last-child td{border-bottom:2px solid var(--acc)}
table.t tbody tr:hover td{background:#FAFBFC}
table.t .r{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}
table.t .c{text-align:center}
.tw{overflow-x:auto}
.mono{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.85rem}
.targa{font-weight:650;letter-spacing:.5px;white-space:nowrap}
.muted{color:var(--grigio)}
/* chip scadenza */
.chip{display:inline-block;padding:1px 8px;border-radius:20px;font-size:.82rem;font-variant-numeric:tabular-nums;white-space:nowrap;border:1px solid transparent}
.chip.scaduta{background:var(--rosso-bg);color:var(--rosso);border-color:#FECDCA}
.chip.vicina{background:var(--ambra-bg);color:var(--ambra);border-color:#FEDF89}
.chip.prossima{background:var(--blu-bg);color:var(--blu);border-color:#C9DAF0}
.chip.ok{background:#F4F5F6;color:#344054}
.chip.nd{color:var(--grigio)}
.tag{display:inline-block;padding:0 7px;border-radius:4px;font-size:.75rem;background:var(--tenue);color:#344054}
.tag.sospesa{background:var(--ambra-bg);color:var(--ambra)}
/* form */
form.filtri{display:flex;gap:.6rem;flex-wrap:wrap;align-items:flex-end}
label{display:block;font-size:.8rem;color:var(--grigio);margin-bottom:3px}
input,select,textarea{font:inherit;padding:7px 9px;border:1px solid #CFD4D8;border-radius:7px;background:#fff;color:var(--testo);width:100%}
input:focus,select:focus,textarea:focus{outline:2px solid #9DB8C9;border-color:var(--acc)}
textarea{min-height:70px}
.grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px 16px}
.grid .s2{grid-column:span 2} .grid .s4{grid-column:1/-1}
.btn{display:inline-block;font:inherit;padding:7px 14px;border-radius:7px;border:1px solid var(--acc);background:var(--acc);color:#fff;cursor:pointer;white-space:nowrap}
.btn:hover{background:var(--acc-2);text-decoration:none}
.btn.sec{background:#fff;color:var(--acc);border-color:#CFD4D8}
.btn.sec:hover{border-color:var(--acc);background:#fff}
.btn.pic{padding:3px 9px;font-size:.82rem}
.btn.dan{background:#fff;color:var(--rosso);border-color:#FECDCA}
.azioni{display:flex;gap:.5rem;align-items:center;flex-wrap:wrap}
.flash{padding:10px 14px;border-radius:8px;margin-bottom:14px}
.flash.ok{background:var(--verde-bg);color:var(--verde)} .flash.errore{background:var(--rosso-bg);color:var(--rosso)}
/* scheda */
.testata{display:flex;align-items:flex-start;gap:1rem;margin-bottom:16px;flex-wrap:wrap}
.testata .t1{flex:1;min-width:260px}
.dl{display:grid;grid-template-columns:repeat(4,1fr);gap:12px 18px}
.dl div span{display:block;color:var(--grigio);font-size:.75rem;text-transform:uppercase;letter-spacing:.3px}
.cols{display:grid;grid-template-columns:2fr 1fr;gap:18px}
.vuoto{color:var(--grigio);padding:16px 18px}
.login{max-width:380px;margin:9vh auto}
.login .card{padding:28px}
footer{color:var(--grigio);font-size:.78rem;text-align:center;padding:20px}
@media (max-width:900px){
  .kpi{grid-template-columns:repeat(2,1fr)} .grid,.dl{grid-template-columns:1fr 1fr} .cols{grid-template-columns:1fr}
  .top .wrap{height:auto;flex-wrap:wrap;padding-top:8px;padding-bottom:8px;gap:.6rem}
  .nav{order:3;flex-basis:100%} .wrap{padding:0 16px}
}
@media print{.top,.no-print,form.filtri{display:none} body{background:#fff} .card{border:0}}
/* archivio documenti */
ul.arch{list-style:none;margin:0;padding:0}
ul.arch li{display:flex;justify-content:space-between;gap:1rem;padding:7px 18px;border-bottom:1px solid var(--tenue);align-items:baseline}
ul.arch li a{word-break:break-word}
ul.arch li.sel{background:var(--blu-bg)} ul.arch li.sel a{font-weight:600}
ul.arch .meta{color:var(--grigio);font-size:.78rem;white-space:nowrap}
details.arch-gr>summary{cursor:pointer;padding:8px 18px;background:#FAFBFC;border-bottom:1px solid var(--tenue);font-size:.88rem}
details.arch-gr ul.arch li{padding-left:34px}
.arch-wrap{max-height:420px;overflow:auto}
.tag.cat-libretto{background:#EEF4FF;color:#3538CD} .tag.cat-polizza{background:var(--verde-bg);color:var(--verde)}
.tag.cat-revisione{background:var(--ambra-bg);color:var(--ambra)} .tag.cat-contratto{background:#F4F3FF;color:#5925DC}
.viewer{display:grid;grid-template-columns:380px 1fr;gap:18px;align-items:start}
.vlist{max-height:calc(100vh - 150px);overflow:auto;margin:0} .vlist ul.arch li{flex-direction:column;gap:2px}
.vpane{margin:0;min-height:70vh}
.vframe{width:100%;height:calc(100vh - 200px);border:0;display:block;background:#525659}
.vimg{padding:12px;text-align:center;background:#F4F5F6} .vimg img{max-width:100%;max-height:calc(100vh - 220px)}
@media (max-width:900px){.viewer{grid-template-columns:1fr} .vlist{max-height:40vh}}
.cols-2{grid-template-columns:1fr 1fr}
form.carica{padding:14px 18px;border-top:1px solid var(--tenue);background:#FAFBFC}
.tag.cat-collaudo{background:#F0F9FF;color:#026AA2} .tag.cat-licenza{background:#FDF2FA;color:#C11574}
