/* Stile condiviso dalle pagine di servizio del portale
   (login, gestione accessi, cassaforte). La home ha il suo, dentro index.html. */
:root{
  --brand:#00609C; --brand-navy:#002460; --brand-cyan:#0090D8;
  --brand-tint:#E6F1FB; --brand-tint2:#CCE4F0;
  --page:#F5F8FC; --card:#FFFFFF; --border:#E2E9F1;
  --text:#1B2733; --muted:#6B7A8D; --ok:#1D9E75; --warn:#E0A21B; --danger:#C0392B;
  --shadow:0 1px 2px rgba(0,36,96,.05),0 6px 20px rgba(0,36,96,.06);
}
*{box-sizing:border-box;margin:0;padding:0}
body{
  font-family:'Segoe UI',system-ui,-apple-system,Roboto,Helvetica,Arial,sans-serif;
  background:var(--page);color:var(--text);min-height:100vh;-webkit-font-smoothing:antialiased;
}
a{color:var(--brand)}
.topbar{height:4px;background:linear-gradient(90deg,var(--brand-navy),var(--brand),var(--brand-cyan))}
header{
  background:var(--card);border-bottom:1px solid var(--border);padding:14px 28px;
  display:flex;align-items:center;justify-content:space-between;gap:20px;flex-wrap:wrap;
}
header .brand{display:flex;align-items:center;gap:14px}
header .brand img{height:40px;width:auto;display:block}
header .brand .sub{font-size:12px;color:var(--muted);border-left:1px solid var(--border);padding-left:14px;line-height:1.4}
header .brand .sub b{color:var(--brand);font-weight:600;display:block;font-size:13px}
.azioni-testata{display:flex;align-items:center;gap:10px;font-size:12.5px;color:var(--muted)}
.wrap{max-width:1000px;margin:0 auto;padding:26px 28px 60px}
h1{font-size:21px;color:var(--brand-navy);margin-bottom:6px}
.sottotitolo{font-size:13px;color:var(--muted);line-height:1.5;margin-bottom:22px;max-width:70ch}
.scheda{background:var(--card);border:1px solid var(--border);border-radius:14px;box-shadow:var(--shadow);padding:22px 24px;margin-bottom:18px}
.scheda h2{font-size:15px;color:var(--brand-navy);margin-bottom:4px}
.scheda .nota{font-size:12.5px;color:var(--muted);line-height:1.5;margin-bottom:16px}
label{display:block;font-size:12.5px;font-weight:600;color:var(--brand-navy);margin-bottom:5px}
input[type=text],input[type=password],select,textarea{
  width:100%;font:inherit;font-size:14px;color:var(--text);background:#fff;
  border:1px solid var(--border);border-radius:10px;padding:9px 12px;outline:none;
}
input:focus,select:focus,textarea:focus{border-color:var(--brand);box-shadow:0 0 0 3px var(--brand-tint)}
textarea{min-height:90px;resize:vertical;font-family:inherit}
.campo{margin-bottom:14px}
.riga{display:flex;gap:12px;flex-wrap:wrap}
.riga>*{flex:1 1 180px;min-width:0}
button{
  font:inherit;font-size:13.5px;font-weight:600;cursor:pointer;border-radius:10px;
  padding:9px 16px;border:1px solid var(--brand);background:var(--brand);color:#fff;
  transition:filter .14s ease,transform .14s ease;
}
button:hover{filter:brightness(1.07)}
button:active{transform:translateY(1px)}
button:disabled{opacity:.55;cursor:default}
button.chiaro{background:#fff;color:var(--brand-navy);border-color:var(--border)}
button.chiaro:hover{border-color:var(--brand)}
button.pericolo{background:#fff;color:var(--danger);border-color:#F0D4D0}
button.piccolo{font-size:12.5px;padding:6px 11px}
table{width:100%;border-collapse:collapse;font-size:13.5px}
th{text-align:left;font-size:11px;text-transform:uppercase;letter-spacing:.07em;color:var(--muted);padding:0 10px 8px;font-weight:700}
td{padding:11px 10px;border-top:1px solid var(--border);vertical-align:middle}
tr:hover td{background:#FAFCFE}
.pill{display:inline-block;font-size:11px;font-weight:700;padding:3px 9px;border-radius:20px}
.pill.ok{background:#E1F1E9;color:#12795A}
.pill.no{background:#FBF1DA;color:#8A6407}
.pill.admin{background:var(--brand-tint);color:var(--brand)}
.avviso{border-radius:11px;padding:11px 14px;font-size:13px;line-height:1.5;margin-bottom:16px}
.avviso.err{background:#FBE9E7;color:#8C2F22;border:1px solid #F0D4D0}
.avviso.ok{background:#E1F1E9;color:#12795A;border:1px solid #C6E4D6}
.avviso.attenzione{background:#FBF3DF;color:#7A5A08;border:1px solid #EFE0BC}
.vuoto{color:var(--muted);font-size:13.5px;padding:22px 2px}
footer{text-align:center;color:var(--muted);font-size:11.5px;padding:26px 0;border-top:1px solid var(--border)}
footer b{color:var(--brand)}
@media(max-width:560px){
  header{padding:12px 16px}.wrap{padding:20px 16px 50px}
  table,thead,tbody,tr,td,th{display:block}
  th{display:none}
  td{border-top:none;padding:4px 0}
  tr{border-top:1px solid var(--border);padding:12px 0}
}
