*{box-sizing:border-box}
body{font-family:system-ui,'Segoe UI',Roboto,sans-serif;margin:0;color:#1c2733;background:#f2f5f8}
header.top{display:flex;align-items:center;gap:1rem;background:#12384f;color:#fff;padding:.5rem 1rem;flex-wrap:wrap;position:relative}
header.top .brand a{color:#fff;font-weight:700;text-decoration:none;font-size:1.05rem}
header.top .menu{display:flex;flex:1;align-items:center;gap:1rem;flex-wrap:wrap}
header.top nav{display:flex;gap:.2rem;flex-wrap:wrap}
header.top nav a{color:#cfe3ef;text-decoration:none;padding:.35rem .6rem;border-radius:6px;font-size:.92rem}
header.top nav a:hover{background:#1d4d6b}
header.top nav a.attiva{background:#2b6a8f;color:#fff}
header.top .utente{font-size:.85rem;color:#cfe3ef;margin-left:auto}
header.top .utente a{color:#fff}
header.top .ruolo{background:#2b6a8f;border-radius:4px;padding:0 .35rem;font-size:.75rem}
.hamburger{display:none;flex-direction:column;justify-content:center;gap:4px;background:none;border:0;cursor:pointer;padding:.4rem;width:42px;height:38px}
.hamburger .bar{width:100%;height:3px;background:#fff;border-radius:2px;transition:all .3s ease}
main{max-width:1280px;margin:1rem auto;padding:0 1rem}
h1{font-size:1.35rem;margin:.4rem 0 1rem}
h2{font-size:1.1rem;margin:1.2rem 0 .5rem}
table{border-collapse:collapse;width:100%;background:#fff;font-size:.9rem}
th,td{border:1px solid #d4dde4;padding:.35rem .5rem;text-align:left;vertical-align:top}
th{background:#e8eef3;font-weight:600;white-space:nowrap}
tr:hover td{background:#f6fafc}
td.num{text-align:right;white-space:nowrap}
.flash{padding:.6rem .9rem;border-radius:6px;margin:.6rem 0}
.flash-ok{background:#dcf3e3;color:#14532d}
.flash-err{background:#fde3e1;color:#7f1d1d}
.card{background:#fff;border:1px solid #d4dde4;border-radius:8px;padding:1rem;margin-bottom:1rem}
form.inline{display:flex;gap:.5rem;flex-wrap:wrap;align-items:end}
label{display:block;font-size:.8rem;color:#43586a;margin-bottom:.15rem}
input,select,textarea{font:inherit;padding:.35rem .5rem;border:1px solid #b9c7d2;border-radius:6px;max-width:100%}
textarea{width:100%}
button,.btn{font:inherit;background:#1d6fa5;color:#fff;border:0;border-radius:6px;padding:.4rem .9rem;cursor:pointer;text-decoration:none;display:inline-block}
button:hover,.btn:hover{background:#155a86}
.btn-rosso{background:#b3372f}.btn-rosso:hover{background:#8f2b25}
.btn-pic{padding:.15rem .5rem;font-size:.8rem}
.badge{display:inline-block;border-radius:4px;padding:0 .4rem;font-size:.75rem;font-weight:600}
.b-lav{background:#fff3cd;color:#6b5200}.b-cons{background:#d1e7dd;color:#0f5132}
.b-att{background:#cfe2ff;color:#084298}.b-concl{background:#e2e3e5;color:#41464b}
.b-pass{background:#f8d7da;color:#58151c}.b-gar{background:#e2d9f3;color:#392a5c}
.b-ann{background:#e9ecef;color:#495057;text-decoration:line-through}
.blocco{background:#fff;border:1px solid #d4dde4;border-radius:8px;margin-bottom:1rem;overflow:auto}
.blocco>h3,.blocco summary h3{margin:0;padding:.5rem .8rem;background:#e8eef3;font-size:.95rem;display:flex;justify-content:space-between;align-items:center;gap:.5rem;flex-wrap:wrap}
.blocco summary{cursor:pointer;list-style:none}
.blocco summary::-webkit-details-marker{display:none}
.blocco>h3 .meta{font-weight:400;font-size:.82rem;color:#43586a}
.blocco table{border:0}
.blocco td{border:0;border-bottom:1px solid #eef2f5}
.griglia{display:grid;grid-template-columns:1fr 1fr;gap:1rem}
@media(max-width:900px){.griglia{grid-template-columns:1fr}}
.pager{margin:.8rem 0;display:flex;gap:.5rem;align-items:center}
.sottile{color:#67788a;font-size:.82rem}
.riga-lav{display:grid;grid-template-columns:2fr 70px 80px 130px 30px;gap:.4rem;margin-bottom:.3rem}
.blocco>h3,.blocco summary h3,.card{overflow-wrap:anywhere}
.card{overflow-x:auto}
@media(max-width:720px){
  main{padding:0 .5rem;margin:.6rem auto}
  header.top{padding:.4rem .6rem;gap:.4rem}
  .hamburger{display:flex}
  .hamburger .bar{width:24px}
  header.top.aperto .hamburger .bar:nth-child(1){transform:rotate(45deg) translate(5px,5px)}
  header.top.aperto .hamburger .bar:nth-child(2){opacity:0}
  header.top.aperto .hamburger .bar:nth-child(3){transform:rotate(-45deg) translate(5px,-5px)}
  header.top .menu{display:none;position:absolute;top:100%;left:0;right:0;flex-direction:column;align-items:stretch;gap:0;background:#12384f;padding:.4rem .6rem .7rem;box-shadow:0 8px 16px rgba(0,0,0,.3);z-index:50}
  header.top.aperto .menu{display:flex}
  header.top nav{flex-direction:column;align-items:stretch;gap:.15rem}
  header.top nav a{padding:.6rem .7rem;font-size:1rem;border-radius:6px}
  header.top .utente{margin:0;padding:.6rem .7rem 0;border-top:1px solid #1d4d6b;margin-top:.5rem;font-size:.9rem}
  h1{font-size:1.15rem}
  table{font-size:.82rem}
  th,td{padding:.3rem .4rem}
  form.inline>div{flex:1 1 100%}
  form.inline input,form.inline select{width:100%}
  button,.btn{padding:.5rem 1rem}
  .btn-pic{padding:.3rem .6rem;font-size:.85rem}
  .riga-lav{grid-template-columns:1fr 1fr 1fr}
  .riga-lav>div:first-child{grid-column:1/-1}
}
@media print{
  header.top,.no-print,.btn{display:none!important}
  body{background:#fff}
  main{max-width:none;margin:0;padding:0}
  .blocco{border:1px solid #999;break-inside:avoid}
  table{font-size:10pt}
}
