:root{--bg:#f4f6f9;--card:#fff;--ink:#1c2330;--muted:#667085;--line:#e3e7ee;--brand:#1f3864;--brand2:#2e5aa8;
--ok:#1e7f4f;--okbg:#e6f4ec;--warn:#9a6700;--warnbg:#fff4d6;--err:#b42318;--errbg:#fde8e7;--grey:#8a93a3;--chat:#e9eef7;--mine:#dbe8ff;--sys:#fff;}
@media (prefers-color-scheme:dark){:root{--bg:#11151c;--card:#1a202a;--ink:#e7ebf1;--muted:#9aa4b2;--line:#2a3340;--brand:#8fb1ff;--brand2:#8fb1ff;
--ok:#5ad19a;--okbg:#173527;--warn:#f0c454;--warnbg:#3a2f12;--err:#ff8a80;--errbg:#3d1c1a;--chat:#161c25;--mine:#22314d;--sys:#1d2430;}}
*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}
body{margin:0;font:15px/1.45 -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;background:var(--bg);color:var(--ink)}
a{color:var(--brand2);text-decoration:none}a:hover{text-decoration:underline}
h1{font-size:1.35rem;margin:.2rem 0 .8rem}h2{font-size:1.05rem;margin:1.2rem 0 .5rem}h3{font-size:.95rem;margin:.6rem 0 .3rem}
.top{position:sticky;top:0;z-index:20;background:var(--brand);color:#fff;display:flex;align-items:center;gap:.6rem;padding:.55rem 1rem}
@media (prefers-color-scheme:dark){.top{background:#1a2a4a}}
.top .logo{font-weight:700;letter-spacing:.02em;color:#fff}.top .sp{flex:1}.top a{color:#dfe8ff}.top .chi{font-size:.85rem;opacity:.85}
.nav{display:none}
.wrap{max-width:1180px;margin:0 auto;padding:1rem 1rem 6rem}
.bnav{position:fixed;bottom:0;left:0;right:0;z-index:30;background:var(--card);border-top:1px solid var(--line);display:flex;justify-content:space-around;padding:.35rem .2rem calc(.35rem + env(safe-area-inset-bottom))}
.bnav a{display:flex;flex-direction:column;align-items:center;font-size:.72rem;color:var(--muted);padding:.2rem .4rem;min-width:56px}
.bnav a b{font-size:1.25rem;line-height:1.2;font-weight:400}.bnav a.on{color:var(--brand2);font-weight:600}
@media (min-width:900px){.bnav{display:none}.nav{display:flex;gap:.2rem;flex-wrap:wrap}.nav a{color:#dfe8ff;padding:.3rem .55rem;border-radius:6px}
.nav a.on,.nav a:hover{background:rgba(255,255,255,.15);text-decoration:none}.wrap{padding-bottom:2rem}}
.card{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:.9rem 1rem;margin:0 0 .9rem}
.grid{display:grid;gap:.9rem;grid-template-columns:minmax(0,1fr)}@media (min-width:800px){.grid.c2{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.grid.c3{grid-template-columns:repeat(3,minmax(0,1fr))}}
.muted{color:var(--muted)}.small{font-size:.85rem}.pre{white-space:pre-wrap}
.badge{display:inline-block;font-size:.75rem;padding:.08rem .45rem;border-radius:99px;background:var(--line);color:var(--ink);white-space:nowrap}
.b-ok{background:var(--okbg);color:var(--ok)}.b-warn{background:var(--warnbg);color:var(--warn)}.b-err{background:var(--errbg);color:var(--err)}.b-grey{opacity:.65}
.av{margin:.15rem 0;font-size:.88rem}.av.errore{color:var(--err)}.av.attenzione{color:var(--warn)}
.btn,button{display:inline-block;font:inherit;font-size:.9rem;border:1px solid var(--line);background:var(--card);color:var(--ink);padding:.45rem .8rem;border-radius:8px;cursor:pointer;text-decoration:none;line-height:1.2}
.btn:hover,button:hover{text-decoration:none;filter:brightness(.97)}
.primario{background:var(--brand2);border-color:var(--brand2);color:#fff}.pericolo{background:var(--err);border-color:var(--err);color:#fff}
.secondario{background:transparent}
.azioni{display:flex;flex-wrap:wrap;gap:.4rem;margin-top:.5rem}.azioni form{display:inline}
input,select,textarea{font:inherit;color:var(--ink);background:var(--card);border:1px solid var(--line);border-radius:8px;padding:.45rem .55rem;max-width:100%}
textarea{width:100%}
form.campi p{margin:.45rem 0;display:flex;flex-direction:column;gap:.2rem}form.campi label{font-size:.85rem;color:var(--muted)}
form.campi .helptext{font-size:.78rem;color:var(--muted)}form.campi input[type=checkbox]{align-self:flex-start}
.filtri{display:flex;flex-wrap:wrap;gap:.45rem;align-items:end;margin-bottom:.8rem}.filtri label{font-size:.8rem;color:var(--muted);display:flex;flex-direction:column}
table{width:100%;border-collapse:collapse;font-size:.9rem}th,td{text-align:left;padding:.4rem .45rem;border-bottom:1px solid var(--line);vertical-align:top}
th{font-size:.78rem;color:var(--muted);font-weight:600}.tab{overflow-x:auto}
.msgs-flash{list-style:none;padding:0;margin:0 0 .8rem}.msgs-flash li{padding:.5rem .8rem;border-radius:8px;margin-bottom:.35rem;background:var(--okbg);color:var(--ok)}
.msgs-flash li.warning,.msgs-flash li.info{background:var(--warnbg);color:var(--warn)}.msgs-flash li.error{background:var(--errbg);color:var(--err)}
/* chat */
.chatwrap{display:flex;gap:1rem}.chatlist{display:none}
@media (min-width:900px){.chatlist{display:block;width:230px;flex:none}}
.chatlist a{display:block;padding:.4rem .6rem;border-radius:8px;color:var(--ink)}.chatlist a.on{background:var(--mine);font-weight:600}
.chat{flex:1;display:flex;flex-direction:column;background:var(--chat);border:1px solid var(--line);border-radius:12px;height:calc(100vh - 190px);min-height:380px}
.flusso{flex:1;overflow-y:auto;padding:.8rem;display:flex;flex-direction:column;gap:.5rem}
.m{max-width:min(640px,92%);padding:.5rem .7rem;border-radius:12px;background:var(--card);border:1px solid var(--line);white-space:pre-wrap;word-wrap:break-word}
.m.mio{align-self:flex-end;background:var(--mine)}.m.sys{align-self:flex-start;background:var(--sys);border-left:3px solid var(--brand2)}
.m .chi{font-size:.75rem;color:var(--muted);margin-bottom:.15rem;white-space:normal}.m .azioni{white-space:normal}
.scrivi{display:flex;gap:.5rem;padding:.6rem;border-top:1px solid var(--line);background:var(--card);border-radius:0 0 12px 12px}
.scrivi textarea{flex:1;resize:none;min-height:44px;max-height:160px}
.esempi{font-size:.8rem;color:var(--muted);padding:.2rem .7rem .5rem}
.servizio{border-left:4px solid var(--line)}.servizio.CONFERMATO{border-left-color:var(--ok)}.servizio.BOZZA{border-left-color:var(--warn)}.servizio.ANNULLATO{opacity:.55}
.riga{display:flex;justify-content:space-between;gap:.6rem;flex-wrap:wrap;align-items:baseline}
.copia{cursor:pointer;border-bottom:1px dashed var(--muted)}
.login{max-width:360px;margin:12vh auto;padding:0 1rem}
.dim{color:var(--grey)}.st-NON_COMUNICABILE{background:var(--warnbg)}.st-DIMESSO{opacity:.55}.st-PROBLEMA{background:var(--errbg)}

@media (max-width:640px){.top .chi{display:none}.top .logo{font-size:.95rem}}
@media (min-width:900px){.solo-mobile{display:none}}
.turno{display:flex;flex-wrap:wrap;gap:.35rem .6rem;align-items:center;padding:.5rem 0;border-bottom:1px solid var(--line)}
.turno .nome{flex:1 1 180px;min-width:0}.turno form{display:flex;gap:.3rem;flex-wrap:wrap;align-items:center}
.turno input[type=time]{width:6.6rem}.turno select{max-width:9rem}
.prossimi a{display:flex;justify-content:space-between;padding:.35rem 0;border-bottom:1px solid var(--line);color:var(--ink)}
.banner{background:var(--warnbg);color:var(--warn);border-radius:10px;padding:.55rem .8rem;margin:0 0 .8rem;font-size:.9rem}
.banner.err{background:var(--errbg);color:var(--err)}
.allegato{display:inline-block;margin-top:.3rem;font-size:.85rem}
.scrivi label.clip{cursor:pointer;font-size:1.25rem;padding:.3rem .2rem;align-self:center}
.scrivi input[type=file]{display:none}
.nomefile{font-size:.75rem;color:var(--muted);padding:0 .7rem}
.kpi{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.6rem;margin:.6rem 0 1rem}
@media (min-width:800px){.kpi{grid-template-columns:repeat(6,minmax(0,1fr))}}
.kpi .card{margin:0;display:flex;flex-direction:column;gap:.15rem;color:var(--ink);text-decoration:none}
.kpi .card b{font-size:1.35rem}.kpi .card span{font-size:.8rem;color:var(--muted)}
.kpi .card.warn{border-color:var(--warn)}.kpi .card.err{border-color:var(--err)}
.top.piattaforma{background:#3a2d5c}
.banner{background:var(--warnbg);color:var(--warn);padding:.55rem .8rem;border-radius:8px;margin-bottom:.8rem}
.banner.err{background:var(--errbg);color:var(--err)}

.navp{display:flex;gap:.15rem;flex-wrap:wrap}.navp a{color:#dfe8ff;padding:.3rem .55rem;border-radius:6px}
.navp a.on,.navp a:hover{background:rgba(255,255,255,.15);text-decoration:none}
.top.piattaforma{flex-wrap:wrap}
@media (max-width:899px){.solo-pc{display:none}.top.piattaforma .navp{order:3;width:100%}.top.piattaforma .sp{display:none}}
.banner.installa{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center;justify-content:space-between;background:var(--card);color:var(--ink);border:1px solid var(--line)}
.banner.installa[hidden]{display:none}
@media (max-width:640px){input,select,textarea{font-size:16px}}  /* niente zoom automatico sui campi in iPhone */
@media (display-mode: standalone){.top{padding-top:calc(.55rem + env(safe-area-inset-top))}}
/* pagina «Scarica l'app» */
.scarica{max-width:440px;margin:0 auto;padding:max(2rem,env(safe-area-inset-top)) 1rem 2rem;text-align:center}
.scarica .icona-app{border-radius:20px;box-shadow:0 6px 18px rgba(31,56,100,.25);margin-bottom:.4rem}
.scarica h1{margin:.2rem 0 .3rem}
.scarica h2{font-size:1rem;margin:0 0 .5rem}
.box-app{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:1rem;margin:1rem 0;text-align:left}
.box-app[hidden]{display:none}
.box-app .grande,.scarica .grande{display:block;width:100%;text-align:center;font-size:1.05rem;padding:.8rem 1rem;border-radius:10px}
.box-app .fatto{font-weight:600;color:var(--ok,#1a7f37);margin:0 0 .7rem;text-align:center}
.passi{margin:0;padding-left:1.3rem;line-height:1.55}.passi li{margin:.35rem 0}
.ico{width:1.15em;height:1.15em;vertical-align:-.2em;fill:none;stroke:var(--brand2);stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}
.box-app .qr{text-align:center;margin:.4rem 0 .6rem}.box-app .qr svg{max-width:220px;height:auto;border-radius:8px}
@media (display-mode: standalone){.solo-browser{display:none}}
