:root{
  --bg:#EDF4F6;--paper:#FFFFFF;--ink:#16303A;--ink2:#4C626B;--line:#CFE0E5;--soft:#F4F9FA;
  --brand:#1388A5;--brand-ink:#FFFFFF;--brand2:#89C3D2;
  --ok:#127A45;--part:#A86400;--nc:#B3261E;--nv:#6B4FBB;--na:#6F7989;
  --okbg:#E3F3EA;--partbg:#FBF0DC;--ncbg:#FBE5E3;--nvbg:#EEE9FA;--nabg:#ECEEF1;
  --sans:"Barlow",system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;
  --cond:"Exo 2","Barlow",system-ui,Arial,sans-serif;
  box-sizing:border-box;padding-top:env(safe-area-inset-top,0px);padding-bottom:env(safe-area-inset-bottom,0px);
}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){
  --bg:#10151D;--paper:#19202B;--ink:#E7ECF3;--ink2:#A4AFBF;--line:#2D3746;--soft:#141B24;
  --brand:#7CC6D8;--brand-ink:#0C1A20;--brand2:#2E6E7E;
  --ok:#4CC38A;--part:#F0A43A;--nc:#F2726A;--nv:#A996F0;--na:#8F99A8;
  --okbg:#15301F;--partbg:#33260F;--ncbg:#3A1715;--nvbg:#251E3D;--nabg:#222A35;
}}
:root[data-theme="dark"]{
  --bg:#10151D;--paper:#19202B;--ink:#E7ECF3;--ink2:#A4AFBF;--line:#2D3746;--soft:#141B24;
  --brand:#7CC6D8;--brand-ink:#0C1A20;--brand2:#2E6E7E;
  --ok:#4CC38A;--part:#F0A43A;--nc:#F2726A;--nv:#A996F0;--na:#8F99A8;
  --okbg:#15301F;--partbg:#33260F;--ncbg:#3A1715;--nvbg:#251E3D;--nabg:#222A35;
}
html{scroll-padding-top:env(safe-area-inset-top,0px)}
*,*::before,*::after{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--sans);font-size:16px;line-height:1.45}
button,input,select,textarea{font:inherit;color:inherit}
button{cursor:pointer}
:focus-visible{outline:3px solid var(--brand);outline-offset:2px}
h1,h2,h3{font-family:var(--cond);font-weight:700;line-height:1.15;margin:0}
.wrap{max-width:1180px;margin:0 auto;padding:16px}
.muted{color:var(--ink2)}
.small{font-size:.86rem}

/* barra superiore */
.top{position:sticky;top:env(safe-area-inset-top,0px);z-index:20;background:var(--paper);border-bottom:1px solid var(--line)}
.top .wrap{display:flex;align-items:center;gap:14px;flex-wrap:wrap;padding-top:10px;padding-bottom:10px}
.brand{font-family:var(--cond);font-weight:700;font-size:1.15rem;display:flex;align-items:center;gap:10px}
.brand .logo{height:34px;width:auto;display:block}
.brand .logo.d{display:none}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .brand .logo.l{display:none}:root:not([data-theme="light"]) .brand .logo.d{display:block}}
:root[data-theme="dark"] .brand .logo.l{display:none}:root[data-theme="dark"] .brand .logo.d{display:block}
.brand .sep{width:1px;height:26px;background:var(--line)}
.top{border-bottom:3px solid var(--brand)}
.top .spacer{flex:1}
.btn{border:1px solid var(--line);background:var(--paper);border-radius:8px;padding:8px 14px;font-weight:600;min-height:40px}
.btn:hover{border-color:var(--ink2)}
.btn.primary{background:var(--brand);color:var(--brand-ink);border-color:var(--brand)}
.btn.danger{color:var(--nc);border-color:var(--nc)}
.btn.ghost{background:transparent;border-color:transparent}
.btn[disabled]{opacity:.5;cursor:default}

/* indicatore conformità */
.meter{display:flex;align-items:center;gap:10px}
.meter .pct{font-family:var(--cond);font-weight:700;font-size:1.6rem;min-width:4ch;text-align:right}
.meter .bar{width:120px;height:10px;border-radius:5px;background:var(--nabg);overflow:hidden}
.meter .bar i{display:block;height:100%;background:var(--ok);width:0}
.chip{display:inline-block;border-radius:999px;padding:2px 10px;font-size:.8rem;font-weight:600;background:var(--nabg);color:var(--ink2);white-space:nowrap}
.chip.g-buono{background:var(--okbg);color:var(--ok)}
.chip.g-acc{background:var(--partbg);color:var(--part)}
.chip.g-ins,.chip.g-crit{background:var(--ncbg);color:var(--nc)}
.timer{font-variant-numeric:tabular-nums;font-weight:600}
.timer.over{color:var(--nc)}
.savestate{font-size:.8rem;color:var(--ink2)}

/* layout audit */
.layout{display:grid;grid-template-columns:250px minmax(0,1fr);gap:18px;align-items:start}
.nav{position:sticky;top:76px;background:var(--paper);border:1px solid var(--line);border-radius:10px;padding:6px;max-height:calc(100vh - 96px);overflow:auto}
.nav button{display:grid;grid-template-columns:26px 1fr auto;gap:8px;align-items:center;width:100%;text-align:left;border:0;background:transparent;border-radius:7px;padding:8px}
.nav button:hover{background:var(--soft)}
.nav button.on{background:var(--brand);color:var(--brand-ink)}
.nav button.on .muted{color:inherit;opacity:.85}
.nav .sid{font-family:var(--cond);font-weight:700}
.nav .sp{font-variant-numeric:tabular-nums;font-size:.85rem;font-weight:600}
.nav .sname{font-size:.92rem;line-height:1.2}
.nav .scount{display:block;font-size:.75rem}
@media (max-width:860px){
  .layout{grid-template-columns:minmax(0,1fr)}
  .nav{position:static;display:flex;overflow-x:auto;max-height:none;gap:4px}
  .nav button{grid-template-columns:auto auto;min-width:max-content}
  .nav .sname{display:none}
  .meter .bar{display:none}
}

.panel{background:var(--paper);border:1px solid var(--line);border-radius:10px;padding:18px}
.sechead{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;align-items:baseline;margin-bottom:6px}
.sechead h2{font-size:1.6rem}
.sechead .budget{font-size:.85rem;color:var(--ink2)}
.intro{color:var(--ink2);margin:0 0 14px;max-width:75ch}

/* domande */
.q{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px 16px;padding:12px 0;border-top:1px solid var(--line);align-items:start}
.q:first-of-type{border-top:0}
.q .qid{font-family:var(--cond);font-weight:700;color:var(--brand);margin-right:6px}
.q .qtxt{font-weight:500}
.q .qmeta{font-size:.82rem;color:var(--ink2);margin-top:2px}
.peso{display:inline-block;font-weight:700;font-size:.72rem;border:1px solid currentColor;border-radius:4px;padding:0 5px;margin-left:6px}
.peso.p3{color:var(--nc)}.peso.p2{color:var(--part)}.peso.p1{color:var(--na)}
.q.off{opacity:.55}
.q.off .seg,.q.off .notebtn{display:none}
.q .offtxt{font-size:.82rem;color:var(--na);font-weight:600}
.seg{display:flex;border:1px solid var(--line);border-radius:8px;overflow:hidden}
.seg button{border:0;border-left:1px solid var(--line);background:var(--paper);min-width:44px;min-height:40px;padding:0 8px;font-weight:700;font-size:.85rem;color:var(--ink2)}
.seg button:first-child{border-left:0}
.seg button.on.v-C{background:var(--ok);color:#fff}
.seg button.on.v-P{background:var(--part);color:#fff}
.seg button.on.v-NC{background:var(--nc);color:#fff}
.seg button.on.v-NV{background:var(--nv);color:#fff}
.seg button.on.v-NA{background:var(--na);color:#fff}
.seg button.auto.v-C{background:var(--okbg);color:var(--ok);box-shadow:inset 0 0 0 2px var(--ok)}
.seg button.auto.v-P{background:var(--partbg);color:var(--part);box-shadow:inset 0 0 0 2px var(--part)}
.seg button.auto.v-NC{background:var(--ncbg);color:var(--nc);box-shadow:inset 0 0 0 2px var(--nc)}
.st14.s-V{color:var(--nc)}.st14.s-NV{color:var(--nv)}.st14.s-S{color:var(--part)}.st14.s-C{color:var(--ok)}.st14.s-NA{color:var(--na)}
.autotxt{font-size:.82rem;color:var(--brand);margin-top:4px;font-weight:500}
table.req{border-collapse:collapse;width:100%;font-size:.92rem}
table.req td{border-top:1px solid var(--line);padding:8px 6px;vertical-align:top}
table.req td:first-child{font-weight:600;width:28%}
table.req td:last-child{color:var(--ink2);font-size:.82rem;width:22%}
.turno{display:grid;grid-template-columns:80px repeat(3,minmax(0,1fr)) minmax(0,1.4fr);gap:8px;align-items:end;margin-top:8px}
.turno .tl{font-family:var(--cond);font-weight:700;padding-bottom:10px}
.turno .ts{font-size:.85rem;padding-bottom:10px}
.ts.n{color:var(--nc);font-weight:600}.ts.p{color:var(--part);font-weight:600}
@media (max-width:640px){.turno{grid-template-columns:1fr 1fr}.turno .tl{grid-column:1/-1;padding:0}.turno .ts{grid-column:1/-1}}
.qtools{display:flex;gap:6px;align-items:center;justify-content:flex-end}
.notebtn{border:1px solid var(--line);background:var(--paper);border-radius:8px;min-height:40px;padding:0 10px;font-size:.85rem;color:var(--ink2)}
.notebtn.has{color:var(--brand);border-color:var(--brand)}
.qnote{grid-column:1 / -1}
.qnote input{width:100%}
@media (max-width:640px){.q{grid-template-columns:minmax(0,1fr)}.qtools{justify-content:flex-start;flex-wrap:wrap}}

/* form */
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:12px 16px}
label.f{min-width:0;display:flex;flex-direction:column;gap:4px;font-size:.85rem;color:var(--ink2);font-weight:600}
input[type=text],input[type=date],input[type=number],input[type=time],select,textarea{background:var(--soft);border:1px solid var(--line);border-radius:8px;padding:9px 10px;min-height:42px;color:var(--ink);font-weight:500;width:100%}
textarea{min-height:80px;resize:vertical}
fieldset{border:0;padding:0;margin:20px 0 0}
legend{font-family:var(--cond);font-weight:700;font-size:1.15rem;padding:0;margin-bottom:10px}
.filt{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:center;padding:8px 0;border-top:1px solid var(--line)}
.yn{display:flex;border:1px solid var(--line);border-radius:8px;overflow:hidden}
.yn button{border:0;background:var(--paper);min-width:52px;min-height:38px;font-weight:700;color:var(--ink2)}
.yn button+button{border-left:1px solid var(--line)}
.yn button.on{background:var(--brand);color:var(--brand-ink)}
.hint{font-size:.82rem;color:var(--ink2);margin:4px 0 0}

/* lavoratori */
.worker{border:1px solid var(--line);border-radius:10px;margin-top:14px;overflow:hidden}
.worker>summary{list-style:none;cursor:pointer;display:flex;gap:12px;align-items:center;padding:12px 14px;background:var(--soft)}
.worker>summary::-webkit-details-marker{display:none}
.worker>summary .wn{font-family:var(--cond);font-weight:700;font-size:1.1rem}
.worker>summary .ws{margin-left:auto;font-variant-numeric:tabular-nums;font-weight:600}
.worker .wbody{padding:14px}
.checks{display:flex;flex-wrap:wrap;gap:8px 18px;margin-top:10px}
.checks label{display:flex;gap:6px;align-items:center;font-size:.92rem}
.checks input{width:20px;height:20px}

/* aggiuntivi */
.extra{margin-top:22px;padding-top:14px;border-top:2px solid var(--line)}
.addrow{display:grid;grid-template-columns:minmax(0,2fr) minmax(0,1fr) 110px auto;gap:8px;margin-top:10px}
@media (max-width:640px){.addrow{grid-template-columns:1fr}}
.delx{border:0;background:transparent;color:var(--nc);font-weight:700;font-size:.85rem}

/* archivio */
.hero{padding:26px 0 10px}
.hero h1{font-size:2.1rem}
.list{display:grid;gap:10px;margin-top:16px}
.card{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;align-items:center;background:var(--paper);border:1px solid var(--line);border-radius:10px;padding:14px 16px}
.card h3{font-size:1.2rem}
.card .acts{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}
.empty{background:var(--paper);border:1px dashed var(--line);border-radius:10px;padding:28px;text-align:center;color:var(--ink2)}

/* tabella azioni */
.tblwrap{overflow-x:auto;margin-top:10px}
table.act{border-collapse:collapse;width:100%;min-width:760px;font-size:.9rem}
.iss{border:1px solid var(--line);border-radius:10px;padding:12px 14px;margin-top:10px;background:var(--paper)}
.iss .ih{display:flex;gap:8px;align-items:baseline;flex-wrap:wrap}
.iss .ih b{font-family:var(--cond)}
.iss .pr{font-size:.8rem;font-weight:600;color:var(--ink2);margin:4px 0 6px}
.pa{display:grid;grid-template-columns:auto minmax(0,1fr);gap:4px 10px;padding:8px 0;border-top:1px dashed var(--line);align-items:start}
.pa input[type=checkbox]{width:22px;height:22px;margin-top:2px}
.pa .pf{grid-column:2;display:grid;grid-template-columns:minmax(0,1fr) 170px;gap:8px}
.pa .pf input{min-height:36px;padding:6px 8px}
.pa.on .pt{font-weight:600;color:var(--brand)}
.padd{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;margin-top:8px}
@media (max-width:640px){.pa .pf{grid-template-columns:1fr}}
table.act th,table.act td{border-bottom:1px solid var(--line);padding:8px;text-align:left;vertical-align:top}
table.act th{font-size:.8rem;color:var(--ink2)}
table.act input{min-height:36px;padding:6px 8px}
.ev{display:inline-block;font-weight:700;font-size:.78rem;border-radius:4px;padding:1px 6px;color:#fff}
.ev.v-C{background:var(--ok)}.ev.v-P{background:var(--part)}.ev.v-NC{background:var(--nc)}.ev.v-NV{background:var(--nv)}.ev.v-NA{background:var(--na)}
.btnrow{display:flex;gap:8px;flex-wrap:wrap;margin-top:14px}
.summary{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:12px;margin:10px 0}
.summary .box{background:var(--soft);border:1px solid var(--line);border-radius:8px;padding:12px}
.summary .big{font-family:var(--cond);font-weight:700;font-size:1.8rem}
.preview{margin-top:20px;border:1px solid var(--line);border-radius:10px;background:#fff;color:#111;padding:0 0 12px;overflow:hidden}

.toast{position:fixed;left:50%;bottom:calc(20px + env(safe-area-inset-bottom,0px));transform:translateX(-50%);background:var(--ink);color:var(--paper);padding:10px 16px;border-radius:8px;font-weight:600;z-index:50;opacity:0;pointer-events:none;transition:opacity .2s}
.toast.show{opacity:1}
@media (prefers-reduced-motion:reduce){.toast{transition:none}}

@media print{
  @page{size:A4;margin:0}
  body{background:#fff}
  .top,.nav,.noprint,.toast{display:none!important}
  .layout{display:block}
  #printArea{display:block!important;border:0;padding:0;margin:0;background:#fff}
  .wrap{padding:0;max-width:none}
}
