/* Stile PSH: blu #4354e2, ardesia #5e6a79, Manrope */
:root{--blu:#4354e2;--blu-scuro:#2f3fc4;--blu-chiaro:#eceefc;--ardesia:#5e6a79;--testo:#2a313b;--bg:#f5f6fa;--card:#fff;--bordo:#e1e4ee;--ok:#1f8a5b;--ok-bg:#e6f5ee;--err:#c0392b;--err-bg:#fbeceb;--att:#b7791f;--att-bg:#fdf3df}
*{box-sizing:border-box;margin:0;padding:0}
html{font-size:16px}
body{font-family:"Manrope",system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;background:var(--bg);color:var(--testo);min-height:100vh;display:flex;flex-direction:column;line-height:1.45}
a{color:var(--blu)}
h1{font-size:1.5rem;font-weight:700;color:var(--testo);margin-bottom:4px}
h2{font-size:1.1rem;font-weight:700;margin-bottom:12px}
h3{font-size:.95rem;font-weight:700;margin-bottom:8px;color:var(--ardesia)}
.sotto{color:var(--ardesia);font-size:.92rem;margin-bottom:20px}
.top{background:var(--card);border-top:6px solid var(--blu);border-bottom:1px solid var(--bordo);display:flex;align-items:center;gap:20px;padding:10px 20px;flex-wrap:wrap}
.brand{display:flex;align-items:center;gap:12px;text-decoration:none;color:var(--ardesia);font-weight:500}
.brand img{height:34px;width:auto}
.brand strong{color:var(--blu)}
.nav{display:flex;gap:4px;flex-wrap:wrap;flex:1}
.nav a{display:flex;align-items:center;gap:8px;padding:8px 12px;border-radius:10px;text-decoration:none;color:var(--ardesia);font-weight:600;font-size:.92rem}
.nav a:hover{background:var(--blu-chiaro);color:var(--blu)}
.nav a.attiva{background:var(--blu-chiaro);color:var(--blu)}
.esci{display:flex;align-items:center;gap:10px}
.chi{font-size:.85rem;color:var(--ardesia)}
.pagina{flex:1;width:100%;max-width:1200px;margin:0 auto;padding:28px 16px 56px}
.piede{text-align:center;padding:20px 16px;font-size:.85rem;color:var(--ardesia);border-top:1px solid var(--bordo);background:var(--card)}
.card{background:var(--card);border:1px solid var(--bordo);border-radius:16px;padding:20px 22px;margin-bottom:18px}
.card.stretta{padding:14px 18px}
.griglia{display:grid;gap:18px}
.g2{grid-template-columns:repeat(auto-fit,minmax(340px,1fr))}
.g3{grid-template-columns:repeat(auto-fit,minmax(240px,1fr))}
.g4{grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}
.scheda{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);gap:18px;align-items:start}
@media(max-width:900px){.scheda{grid-template-columns:1fr}}
.kpi{background:var(--card);border:1px solid var(--bordo);border-radius:16px;padding:16px 18px}
.kpi .n{font-size:1.9rem;font-weight:700;color:var(--blu);line-height:1.1}
.kpi .l{font-size:.85rem;color:var(--ardesia);margin-top:4px}
.kpi .s{font-size:.8rem;color:var(--ardesia);margin-top:6px}
.btn,.btn-linea,.btn-sec{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:10px 18px;border-radius:10px;font:600 .95rem "Manrope",sans-serif;cursor:pointer;text-decoration:none;border:1px solid var(--blu);background:var(--blu);color:#fff;transition:background .15s}
.btn:hover{background:var(--blu-scuro)}
.btn-sec{background:var(--blu-chiaro);color:var(--blu);border-color:var(--blu-chiaro)}
.btn-sec:hover{background:#dfe3fa}
.btn-linea{background:transparent;color:var(--ardesia);border-color:var(--bordo);padding:8px 12px}
.btn-linea:hover{border-color:var(--blu);color:var(--blu)}
.btn.grande{padding:16px 28px;font-size:1.1rem;border-radius:14px}
.btn.piccolo,.btn-sec.piccolo,.btn-linea.piccolo{padding:6px 12px;font-size:.85rem}
.btn.pericolo{background:var(--err);border-color:var(--err)}
.azioni{display:flex;gap:10px;flex-wrap:wrap;align-items:center}
label{display:block;font-weight:600;font-size:.88rem;margin:12px 0 4px;color:var(--ardesia)}
input[type=text],input[type=email],input[type=tel],input[type=number],input[type=date],input[type=datetime-local],select,textarea{width:100%;padding:10px 12px;border:1px solid var(--bordo);border-radius:10px;font:500 .95rem "Manrope",sans-serif;background:#fff;color:var(--testo)}
input:focus,select:focus,textarea:focus{outline:2px solid var(--blu);border-color:var(--blu)}
textarea{min-height:84px;resize:vertical}
.riga{display:flex;gap:12px;flex-wrap:wrap}
.riga>*{flex:1;min-width:150px}
.spunta{display:flex;align-items:center;gap:8px;font-weight:500;margin:6px 0;color:var(--testo)}
.spunta input{width:auto}
table{width:100%;border-collapse:collapse;font-size:.92rem}
th{text-align:left;font-size:.78rem;text-transform:uppercase;letter-spacing:.04em;color:var(--ardesia);padding:8px 10px;border-bottom:2px solid var(--bordo);white-space:nowrap}
td{padding:9px 10px;border-bottom:1px solid var(--bordo);vertical-align:top}
tr:hover td{background:#fafbff}
td.n,th.n{text-align:right;font-variant-numeric:tabular-nums}
.tab-scroll{overflow-x:auto}
.avviso{padding:12px 16px;border-radius:10px;margin-bottom:16px;font-weight:600;font-size:.92rem;border:1px solid}
.avviso.ok{background:var(--ok-bg);color:var(--ok);border-color:#bfe3d0}
.avviso.err{background:var(--err-bg);color:var(--err);border-color:#f0c3be}
.avviso.info{background:var(--blu-chiaro);color:var(--blu-scuro);border-color:#d0d5f6}
.avviso.att{background:var(--att-bg);color:var(--att);border-color:#f0dcae}
.badge{display:inline-block;padding:2px 10px;border-radius:99px;font-size:.78rem;font-weight:700;background:var(--blu-chiaro);color:var(--blu)}
.badge.ok{background:var(--ok-bg);color:var(--ok)}.badge.err{background:var(--err-bg);color:var(--err)}.badge.att{background:var(--att-bg);color:var(--att)}.badge.grigio{background:#eceff3;color:var(--ardesia)}
.dati{display:grid;grid-template-columns:150px 1fr;gap:6px 14px;font-size:.93rem}
.dati dt{color:var(--ardesia);font-weight:600}
.dati dd{word-break:break-word}
.barra{height:12px;background:var(--blu-chiaro);border-radius:99px;overflow:hidden}
.barra>span{display:block;height:100%;background:var(--blu);border-radius:99px}
.barra.ok>span{background:var(--ok)}
.chip-esiti{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:8px}
.chip{position:relative}
.chip input{position:absolute;opacity:0}
.chip span{display:block;padding:10px 14px;border:1px solid var(--bordo);border-radius:10px;font-weight:600;font-size:.9rem;cursor:pointer;background:#fff}
.chip input:checked+span{background:var(--blu);color:#fff;border-color:var(--blu)}
.chip input:focus-visible+span{outline:2px solid var(--blu);outline-offset:2px}
.sezione{display:none;border-left:4px solid var(--blu);background:#f8f9ff;padding:4px 16px 14px;margin:14px 0;border-radius:0 10px 10px 0}
.sezione.vis{display:block}
details.script{border:1px solid var(--bordo);border-radius:10px;margin-bottom:8px;background:#fff}
details.script summary{padding:10px 14px;font-weight:700;cursor:pointer;font-size:.92rem}
details.script div{padding:0 14px 12px;font-size:.92rem;white-space:pre-line;color:var(--testo)}
.storico{border-left:3px solid var(--bordo);padding:2px 0 2px 14px;margin-bottom:14px}
.storico .qd{font-size:.8rem;color:var(--ardesia)}
.login{max-width:440px;margin:60px auto}
.login .logo{display:block;margin:0 auto 22px;width:min(260px,70%)}
.copia{display:flex;gap:8px}
.copia input{flex:1;font-size:.8rem}
.barre-giorni{display:flex;align-items:flex-end;gap:6px;height:130px;padding-top:10px}
.barre-giorni .b{flex:1;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;gap:4px;height:100%}
.barre-giorni .b span.v{width:100%;background:var(--blu);border-radius:6px 6px 0 0;min-height:2px}
.barre-giorni .b small{font-size:.7rem;color:var(--ardesia)}
.cal{display:grid;grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:8px}
.cal label{margin:0;border:1px solid var(--bordo);border-radius:10px;padding:10px 12px;cursor:pointer;background:#fff;color:var(--testo);font-weight:600;display:flex;align-items:center;gap:8px}
.cal label:has(input:checked){background:var(--err-bg);border-color:#f0c3be;color:var(--err)}
.cal input{width:auto}
.vuoto{color:var(--ardesia);padding:14px 0}
.paginazione{display:flex;gap:10px;align-items:center;justify-content:center;margin-top:16px}
@media(max-width:700px){.top{gap:10px}.nav a span{display:none}.nav a{padding:10px}.chi{display:none}.dati{grid-template-columns:1fr}.dati dt{margin-top:6px}}
