/* =====================================================================
   Gestione Snodus · stile della pagina (fase 45, ottobre 2026)
   Colori, caratteri, pulsanti, campi, etichette di stato e finestre: ../snodus-ui.css
   Qui solo ciò che è proprio della gestione.
   Scala dei caratteri: 12 · 14 · 16 (base) · 18 · 22 · 28 px (+ titolo di Oggi)
   ===================================================================== */

/* ---- testata (telefono) ---- */
header{background:var(--notte); color:#fff; padding:12px 16px; display:flex; align-items:center; justify-content:space-between; gap:12px; position:sticky; top:0; z-index:5;}
header h1{font-family:var(--font-ui); font-size:var(--t-m); font-weight:700; margin:0; letter-spacing:0; display:flex; align-items:center; gap:8px; min-width:0;}
header h1 .h-logo{height:28px; width:auto; max-width:110px; object-fit:contain; background:#fff; border-radius:6px; padding:2px 5px;}
header h1 .h-logo[hidden]{display:none;}
header h1 .h-nome{white-space:nowrap; overflow:hidden; text-overflow:ellipsis; min-width:0;}
header h1 .h-sub{font-weight:500; color:#C9D3E3; white-space:nowrap;}
header button{background:transparent; color:#fff; border:1px solid rgba(255,255,255,.3); padding:8px 12px; border-radius:var(--r-campo); font:inherit; font-size:var(--t-s); cursor:pointer;}
main{max-width:1180px; margin:0 auto; padding:16px 16px calc(96px + env(safe-area-inset-bottom));}
.row{display:flex; flex-wrap:wrap; gap:8px; align-items:center;}
.grid2{display:grid; grid-template-columns:1fr; gap:0 16px;}
.grid3{display:grid; grid-template-columns:1fr; gap:0 16px;}
@media(min-width:700px){.grid2{grid-template-columns:1fr 1fr;} .grid3{grid-template-columns:repeat(3,minmax(0,1fr));}}
h2{font-size:var(--t-xl); margin:0 0 12px;}
h3{font-size:var(--t-m); margin:6px 0;}
.num{font-weight:700; font-size:var(--t-s); font-variant-numeric:tabular-nums;}
.err{color:var(--red); font-size:var(--t-s); margin-top:8px; min-height:20px;}
#login{max-width:400px; margin:64px auto; padding:24px;}
#login img{display:block; max-width:240px; width:auto; height:auto; margin:0 auto 20px;}
#login h2{text-align:center;}

/* ---- linguette e filtri ---- */
nav.tabs button{font:inherit; cursor:pointer;}
.chips{display:flex; flex-wrap:wrap; gap:8px; margin-bottom:16px;}
.chips button{min-height:40px; padding:6px 14px; border-radius:var(--r-pill); border:1px solid var(--bordo); background:var(--carta); font:inherit; font-size:var(--t-s); font-weight:500; color:var(--inchiostro); cursor:pointer; display:inline-flex; align-items:center; gap:6px;}
.chips button.on{background:var(--notte); color:#fff; border-color:var(--notte);}
.chips button .f-n{font-style:normal; display:inline-block; min-width:20px; padding:0 6px; border-radius:var(--r-pill); background:#EEF0F3; color:var(--inchiostro); font-size:var(--t-xs); font-weight:700; line-height:18px; text-align:center;}
.chips button.on .f-n{background:#fff; color:var(--notte);}
#filtroTipoGestore{max-width:280px !important;}

/* ---- elementi vari della gestione ---- */
.imm{display:flex; justify-content:space-between; align-items:center; gap:8px; padding:10px 0; border-top:1px solid var(--bordo);}
.imm:first-of-type{border-top:none;}
.eco{background:#FAF8F4; border:1px solid var(--bordo); border-radius:12px; padding:4px 12px 12px; margin-top:12px;}
.tot{display:grid; grid-template-columns:repeat(3,1fr); gap:8px; margin-bottom:12px;}
.tot div{background:var(--carta); border:1px solid var(--bordo); border-radius:12px; padding:12px; text-align:center;}
.tot b{display:block; font-family:var(--font-titoli); font-size:var(--t-l);} .tot span{font-size:var(--t-xs); color:var(--muted);}
.chk{display:flex; align-items:center; gap:8px; margin-top:12px; font-weight:600; font-size:var(--t-s);} .chk input{width:20px; flex:none;}
.due{display:grid; grid-template-columns:1fr; gap:16px; align-items:start;}
@media(min-width:860px){.due{grid-template-columns:330px 1fr;} .colg{position:sticky; top:70px; max-height:calc(100vh - 90px); overflow:auto;}}
.gc{background:var(--carta); border:1px solid var(--bordo); border-radius:12px; padding:12px; margin-bottom:8px; cursor:pointer; transition:background .15s;}
.gc.sel{border-color:var(--gold); box-shadow:inset 0 0 0 2px var(--gold);}
.gc.drop{background:#FFF6EC; border-color:var(--gold);}
.gc .nm{font-weight:700;} .gc .meta{font-size:var(--t-xs); color:var(--muted); margin-top:2px;}
.cnt{float:right; background:#EEF0F3; border-radius:var(--r-pill); padding:1px 8px; font-size:var(--t-xs); font-weight:700;}
.ic{background:var(--carta); border:1px solid var(--bordo); border-radius:12px; padding:12px; margin-bottom:8px;}
.ic[draggable=true]{cursor:grab;} .ic.drag{opacity:.45;}
.ic .acts{display:flex; flex-wrap:wrap; gap:8px; margin-top:8px; align-items:center;}
.ic select{width:auto; min-height:40px; padding:6px 36px 6px 10px; font-size:var(--t-s);}
.contatto{display:flex; align-items:center; gap:8px; padding:8px 0; border-top:1px solid var(--bordo); flex-wrap:wrap;}
.contatto input[type=checkbox]{width:20px;} .contatto select{width:auto; min-height:40px; padding:6px 36px 6px 10px; font-size:var(--t-s);}
.wa{background:#1F9D55 !important; color:#fff !important; border-color:#1F9D55 !important;}
.app-box{background:#F3F6FB; border:1px solid #D6E0EE; border-radius:12px; padding:4px 12px 12px; margin-top:12px;}
.tappe{display:flex; flex-wrap:wrap; align-items:center; gap:4px; margin-top:8px; font-size:var(--t-xs);}
.tappa{padding:3px 10px; border-radius:var(--r-pill); background:var(--carta); border:1px solid #D6E0EE; color:var(--muted); font-weight:600;}
.tappa.ok{background:#E3F2E8; border-color:#B9DCC2; color:#1E6B3C;} .tappa.ko{background:#FDE4E1; border-color:#F0BDB6; color:#9B1C12;}
.tappa.ora{background:var(--notte); border-color:var(--notte); color:#fff;} .tappe .sep{color:#9AA7B8;}
details.altre summary{cursor:pointer; font-size:var(--t-s); font-weight:600; padding:6px 2px;}
details summary{cursor:pointer; color:var(--blu); font-weight:600; font-size:var(--t-s); margin-top:8px;}
.timeline{font-size:var(--t-s); color:var(--muted); margin:6px 0 0; padding-left:16px;}
.toast{position:fixed; left:50%; bottom:calc(96px + env(safe-area-inset-bottom)); transform:translateX(-50%); background:var(--notte); color:#fff; padding:12px 16px; border-radius:12px; font-size:var(--t-s); display:none; z-index:20; box-shadow:var(--ombra-sopra); max-width:calc(100vw - 32px);}
.sez-form{margin:20px 0 0; padding-top:12px; border-top:1px solid var(--bordo); font-size:var(--t-s); font-weight:700; color:var(--inchiostro);}
.avviso-ko{border:1.5px solid var(--rosso) !important; background:#FFF8F7;}
.avviso-neutro{background:#EEF3FB; border-color:#D6E0EE; color:var(--inchiostro); font-size:var(--t-s);}
.piede-app{font-size:var(--t-xs); text-align:center; padding:20px 0 8px; color:var(--segnaposto);}
.piede-app a{color:var(--segnaposto);}
.solo-pc{display:inline;}
@media(max-width:600px){.solo-pc{display:none;}}

/* ---- schede delle pratiche: prima cosa succede, poi dove, poi una riga piccola ---- */
.card.pratica{padding:16px 20px;}
.card.pratica .testa{cursor:pointer;}
.card.pratica .pr-top{display:flex; align-items:flex-start; justify-content:space-between; gap:12px;}
.card.pratica .pr-tit{margin:0; font-size:17px; font-weight:700; line-height:1.35; color:var(--inchiostro); min-width:0;}
.card.pratica .pills{display:flex; flex-wrap:wrap; justify-content:flex-end; gap:6px; flex:none; max-width:50%;}
.card.pratica .pr-ind{font-size:var(--t-s); color:var(--inchiostro); margin-top:4px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis;}
.card.pratica .pr-posto{font-size:var(--t-s); color:var(--grigio); margin-top:2px;}
.card.pratica .pr-posto .tel{font-weight:700; white-space:nowrap; color:var(--inchiostro); text-decoration:none;}
.card.pratica .pr-meta{display:flex; flex-wrap:wrap; align-items:center; gap:2px 0; margin-top:8px; font-size:var(--t-xs); color:var(--grigio);}
.card.pratica .pr-meta .sep{font-style:normal; margin:0 8px; color:#B8B2A6;}
.card.pratica .pr-meta .pr-num{font-variant-numeric:tabular-nums; letter-spacing:.01em;}
.card.pratica .pr-meta .lnk{font-size:var(--t-xs);}
.card.pratica .pr-meta .all-btn{max-width:220px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; vertical-align:bottom;}
.card.pratica .freccia{display:inline-block; width:16px; margin-left:-2px; transition:transform .15s; color:var(--grigio); font-size:var(--t-s);}
.card.pratica.aperta .freccia{transform:rotate(90deg);}
.card.pratica:not(.aperta):hover{border-color:#CFC8BA;}
.card.pratica .descr{font-size:var(--t-s); color:var(--grigio); white-space:pre-line; margin:6px 0 4px 16px; line-height:1.5;}
.card.pratica:not(.aperta) .descr{display:none;}
.card.pratica .corpo{display:none; margin-top:12px; padding-top:12px; border-top:1px solid var(--bordo);}
.card.pratica.aperta .corpo{display:block;}
.card.pratica.evidenzia{outline:3px solid var(--gold); outline-offset:2px;}
/* vecchie righe (ancora usate altrove) */
.card.pratica .segn{margin-top:4px; font-size:var(--t-s);} .card.pratica .segn .tel{font-weight:700; white-space:nowrap; color:var(--ink);}
ul.fatti{list-style:none; margin:8px 0 0; padding:8px 12px; border-radius:10px; background:#E9F4EC; color:#1E6B3C; font-size:var(--t-s);} ul.fatti li{margin:2px 0;}
@media(max-width:600px){
  .card.pratica{padding:14px 16px;}
  .card.pratica .pr-top{flex-direction:column-reverse; gap:6px;}
  .card.pratica .pills{justify-content:flex-start; max-width:none;}
  .card.pratica .pr-ind{white-space:normal;}
}

/* ---- menu: barra in basso sul telefono, colonna a sinistra su computer ---- */
nav.tabs{position:fixed; z-index:8; background:var(--notte); margin:0; display:flex; padding:6px 6px calc(8px + env(safe-area-inset-bottom)); gap:2px; left:0; right:0; bottom:0; overflow-x:auto; box-shadow:0 -4px 18px rgba(14,31,58,.25);}
nav.tabs .nav-brand{display:none;}
nav.tabs button{display:flex; flex-direction:column; align-items:center; justify-content:center; gap:3px; flex:1 0 72px; min-height:56px; padding:4px 6px; border:none; border-radius:10px; background:transparent; color:#C9D3E3; font-weight:600; font-size:var(--t-xs); position:relative;}
nav.tabs button.on{background:rgba(255,255,255,.1); color:#fff;} nav.tabs button.on svg{color:var(--gold-chiaro,var(--gold));}
nav.tabs button span{white-space:nowrap;}
nav.tabs #cntRich{position:absolute; top:4px; right:14px; font-style:normal; background:var(--gold); color:var(--gold-testo); border-radius:var(--r-pill); font-size:var(--t-xs); font-weight:700; padding:0 6px; line-height:18px;}
nav.tabs #cntRich:empty{display:none;}
nav.tabs button:focus-visible{outline-offset:-3px;}
@media(min-width:980px){
  nav.tabs{top:0; bottom:0; right:auto; width:236px; flex-direction:column; padding:24px 14px; overflow-y:auto; box-shadow:none;}
  nav.tabs .nav-brand{display:flex; flex-direction:column; align-items:flex-start; gap:2px; color:#fff; padding:0 10px 24px;}
  nav.tabs .nav-brand .nb-nome{font-family:var(--font-titoli); font-weight:800; font-size:var(--t-l); line-height:1.25;}
  nav.tabs .nav-brand .nb-sub{font-size:var(--t-s); font-weight:500; color:#C9D3E3;}
  nav.tabs button{flex:0 0 auto; flex-direction:row; justify-content:flex-start; gap:12px; min-height:44px; padding:0 12px; font-size:var(--t-s); text-align:left;}
  nav.tabs button span{flex:1;}
  nav.tabs #cntRich{position:static; font-size:var(--t-xs); padding:1px 8px;}
  #appView > header, #appView > main{margin-left:236px;}
  #appView > header{display:none;}
  main{padding:16px 32px 40px;}
  .toast{bottom:24px; left:calc(50% + 118px);}
}

/* ---- plancia di Oggi ---- */
.oggi-testa{display:flex; flex-wrap:wrap; justify-content:space-between; align-items:flex-end; gap:12px; margin:4px 0 20px;}
.oggi-testa h1{font-weight:800; font-size:clamp(24px,3vw,32px); margin:2px 0 0;}
.oggi-testa .muted::first-letter{text-transform:uppercase;}
.kpi{display:grid; grid-template-columns:repeat(auto-fit,minmax(170px,1fr)); gap:12px; margin-bottom:20px;}
.kpi a{display:block; background:var(--carta); border:1px solid var(--bordo); border-radius:var(--r-card); padding:16px 20px; color:var(--ink); text-decoration:none; box-shadow:var(--ombra-card);}
.kpi a:hover{border-color:#CFC8BA;}
.kpi span{font-size:var(--t-s); font-weight:600; color:var(--muted);}
.kpi b{display:block; font-family:var(--font-titoli); font-weight:800; font-size:var(--t-xxl); margin:4px 0 2px; line-height:1.2;}
.kpi small{font-size:var(--t-s); color:var(--muted);} .kpi small.ko{color:var(--red); font-weight:600;}
.kpi a.scuro{background:var(--notte); border-color:var(--notte); color:#fff;} .kpi a.scuro span,.kpi a.scuro small{color:#C9D3E3;} .kpi a.scuro small.ko{color:#FFB4A8;}
.oggi-col{display:flex; flex-wrap:wrap; gap:16px; align-items:flex-start;}
.oggi-col > section{min-width:0;}
.blocco{padding:20px; margin:0;} .blocco h2{font-size:var(--t-l); font-family:var(--font-ui); font-weight:700;} .blocco a{color:var(--blu); font-weight:600; font-size:var(--t-s);}
.ag{display:flex; gap:16px; align-items:center; padding:12px 0; border-bottom:1px solid #EFEAE0;} .ag:last-child{border-bottom:none;}
.ag-p{background:#FFF6EC; margin:0 -20px; padding:12px 20px;}
.ag-ora{width:52px; font-weight:700; font-variant-numeric:tabular-nums; align-self:flex-start; padding-top:2px;}
.ag-tit{font-weight:700; margin-top:4px;}
.chip{display:inline-block; font-size:var(--t-xs); font-weight:600; border-radius:var(--r-pill); padding:2px 10px;}
.c-sop{background:#E8EFFB; color:#1F4A93;} .c-lav{background:#F1EAFB; color:#5B3593;} .c-ok{background:#E3F2E8; color:#1E6B3C;} .c-oro{background:var(--gold); color:var(--gold-testo);}
.todo{display:flex; gap:12px; align-items:center; padding:12px 0; border-bottom:1px solid #EFEAE0;} .todo:last-child{border-bottom:none;}
.pallino{width:10px; height:10px; border-radius:50%; flex:none;}
.prossimo{background:var(--notte); color:#fff; border-radius:var(--r-card); padding:16px 20px; margin-bottom:16px;}
.prossimo .p-tit{font-family:var(--font-ui); font-weight:700; font-size:var(--t-l); margin-top:12px;}
.prossimo .p-sub{font-size:var(--t-s); color:#C9D3E3; margin-top:4px;}
.prossimo .p-az{display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:8px; margin-top:16px;}
.prossimo .p-az a{display:flex; align-items:center; justify-content:center; min-height:44px; border-radius:var(--r-campo); background:rgba(255,255,255,.1); color:#fff; text-decoration:none; font-weight:600; font-size:var(--t-s); text-align:center;}
.prossimo .p-az a.oro{background:var(--gold); color:var(--gold-testo); font-weight:700;}
@media(min-width:980px){.prossimo{display:none;}}
@media(max-width:979px){#appView > header h1{white-space:nowrap; overflow:hidden; min-width:0; flex:1 1 auto;} #appView > header button{padding:6px 10px; font-size:var(--t-xs);} #appView > header{flex-wrap:nowrap;}}

/* ---- calendario ---- */
.cal-sett{display:grid; grid-template-columns:repeat(var(--cal-col,7),minmax(0,1fr)); gap:8px;}
.cal-sett .gg{background:var(--carta); border:1px solid var(--bordo); border-radius:12px; min-height:180px; padding:8px; min-width:0;}
.cal-sett .gg.oggi{border-color:var(--gold); box-shadow:inset 0 0 0 2px var(--gold);}
.cal-sett .gg h4{margin:2px 2px 8px; font-size:var(--t-xs); font-weight:700; color:var(--muted); text-transform:capitalize;}
.gg-vuoto{font-size:var(--t-xs); color:#9AA0AA; padding:2px;}
.ev{display:block; width:100%; text-align:left; font:inherit; color:var(--inchiostro); border:0; border-radius:8px; padding:6px 8px; margin-bottom:6px; font-size:var(--t-xs); line-height:1.35; cursor:pointer; border-left:4px solid #7A4BB8; background:#F4EFFB;}
.ev:hover{filter:brightness(.97);}
.ev.sopralluogo{border-left-color:#2F5FB3; background:#EAF0FA;} .ev.svolto{opacity:.55;}
.ev .ev-ora{display:block; font-weight:700; font-variant-numeric:tabular-nums;}
.ev .ev-tit{display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; font-weight:500;}
.ev .ev-chi{display:block; color:var(--grigio); white-space:nowrap; overflow:hidden; text-overflow:ellipsis;}
.cal-giorno{display:none;}
.cal-strip{display:grid; grid-template-columns:repeat(7,minmax(0,1fr)); gap:4px; margin-bottom:12px;}
.cal-strip button{display:flex; flex-direction:column; align-items:center; gap:0; padding:6px 0 8px; border:1px solid var(--bordo); border-radius:12px; background:var(--carta); font:inherit; color:var(--inchiostro); cursor:pointer; position:relative; min-height:56px;}
.cal-strip button small{font-size:var(--t-xs); color:var(--grigio); text-transform:capitalize;}
.cal-strip button b{font-size:var(--t-l);}
.cal-strip button i{position:absolute; bottom:5px; width:6px; height:6px; border-radius:50%; background:var(--gold);}
.cal-strip button.oggi{border-color:var(--gold);}
.cal-strip button.on{background:var(--notte); border-color:var(--notte); color:#fff;} .cal-strip button.on small{color:#C9D3E3;}
.cal-uno h3{font-size:var(--t-m); margin:0 0 8px; text-transform:none;}
.cal-uno h3::first-letter{text-transform:uppercase;}
.cal-uno .ev{font-size:var(--t-s); padding:10px 12px; margin-bottom:8px;}
@media(max-width:860px){.cal-sett{display:none;} .cal-giorno{display:block;}}

/* ---- agenda della squadra ---- */
.sq-switch{display:inline-flex; background:#EAE5DB; border-radius:12px; padding:4px; gap:2px; margin-bottom:12px;}
.sq-switch button{border:none; background:transparent; padding:8px 14px; border-radius:9px; font-weight:600; font-size:var(--t-s); font-family:inherit; color:var(--muted); cursor:pointer; min-height:40px;}
.sq-switch button.on{background:var(--carta); color:var(--ink); box-shadow:0 1px 3px rgba(19,41,75,.12);}
.sq-switch.sm{margin:0;} .sq-switch.sm button{padding:6px 10px; font-size:var(--t-s);}
.sq-testa{justify-content:space-between; flex-wrap:wrap; gap:8px; margin-bottom:12px;}
.sq-riass{font-size:var(--t-s); color:var(--muted); margin:0 0 8px;}
.sq-griglia{background:var(--carta); border:1px solid var(--line); border-radius:12px; overflow:hidden;}
.sq-riga{display:grid; grid-template-columns:170px 1fr; border-top:1px solid var(--line); min-height:64px;}
.sq-riga:first-child{border-top:none; min-height:28px;}
.sq-nome{padding:8px 12px; font-size:var(--t-s); border-right:1px solid var(--line); background:#FBFAF7;}
.sq-occ{font-size:var(--t-xs); margin-top:2px;}
.sq-bar{height:5px; background:#ECE6D8; border-radius:3px; margin-top:5px; overflow:hidden;}
.sq-bar i{display:block; height:100%; background:var(--gold);} .sq-bar i.pieno{background:var(--rosso);} .sq-bar i.vuoto{background:#5FA777;}
.sq-assl{font-size:var(--t-xs); color:var(--grigio); margin-top:4px; font-weight:600;}
.sq-pista{position:relative; background-image:repeating-linear-gradient(90deg,transparent 0,transparent calc(100%/13 - 1px),#F0EBE0 calc(100%/13 - 1px),#F0EBE0 calc(100%/13));}
.sq-pista.drop{background-color:#FFF6EC;}
.sq-ore .sq-pista span{position:absolute; top:5px; font-size:var(--t-xs); color:var(--muted); transform:translateX(-50%);}
.sq-ore .sq-pista span:first-child{transform:none; padding-left:3px;}
.sq-ore .sq-pista span:last-of-type{transform:translateX(-100%); padding-right:3px;}
.sq-adesso{position:absolute; top:0; bottom:-2000px; width:2px; background:var(--rosso); z-index:2; pointer-events:none;}
.sq-blk{position:absolute; top:6px; bottom:6px; border-radius:8px; padding:4px 6px; font-size:var(--t-xs); line-height:1.25; overflow:hidden; cursor:grab;
  background:#F4EFFB; border-left:4px solid #7A4BB8; box-shadow:0 1px 2px rgba(19,41,75,.08); z-index:1;}
.sq-blk.sopralluogo{background:#EAF0FA; border-left-color:#2F5FB3;} .sq-blk.svolto{opacity:.6;}
.sq-blk.accav{outline:2px solid var(--rosso);}
.sq-blk b,.sq-blk span,.sq-blk em{display:block; white-space:nowrap; overflow:hidden; text-overflow:ellipsis;} .sq-blk em{font-style:normal; color:var(--verde); font-weight:600;}
.sq-eff{position:absolute; bottom:0; height:4px; background:var(--verde); border-radius:2px;}
.sq-ass{position:absolute; inset:6px 4px; border-radius:8px; background:repeating-linear-gradient(45deg,#E7E3DA 0,#E7E3DA 8px,#F2EFE8 8px,#F2EFE8 16px);
  color:var(--grigio); font-size:var(--t-xs); font-weight:600; display:flex; align-items:center; justify-content:center; cursor:pointer;}
.sq-sett{width:100%; border-collapse:separate; border-spacing:3px; font-size:var(--t-s);}
.sq-sett th{text-align:left; font-weight:600; padding:6px; white-space:nowrap;} .sq-sett thead th{cursor:pointer; color:var(--muted); font-size:var(--t-xs);}
.sq-c{text-align:center; padding:10px 6px; border-radius:8px; cursor:pointer; background:#FAF8F3; min-width:62px;}
.sq-c.ass{background:repeating-linear-gradient(45deg,#E7E3DA 0,#E7E3DA 6px,#F2EFE8 6px,#F2EFE8 12px); color:var(--grigio); font-weight:600; cursor:default;}
.sq-tot{min-width:120px; font-size:var(--t-xs);}
@media(max-width:700px){.sq-riga{grid-template-columns:96px 1fr;} .sq-nome{font-size:var(--t-xs); padding:6px;} .sq-blk span{display:none;}}
.sq-gps{justify-content:flex-start; gap:8px; flex-wrap:wrap; margin:-2px 0 12px;}
.rm td,.rm th{white-space:nowrap;}

/* ---- marchio della ditta ---- */
nav.tabs .nav-brand .nav-logo{display:block; max-width:170px; max-height:52px; width:auto; height:auto; object-fit:contain; background:#fff; border-radius:8px; padding:5px 8px; margin:0 0 12px;}
nav.tabs .nav-brand .nav-logo[hidden]{display:none;}
.mq-anteprima{display:flex; flex-wrap:wrap; align-items:center; gap:16px; border:1px solid var(--line); border-radius:12px; padding:12px; background:var(--carta); margin-top:8px;}
.mq-anteprima .mq-logo{width:auto; min-width:120px; max-width:100%; padding:4px 10px; height:56px; display:flex; align-items:center; justify-content:center; border:1px dashed var(--line); border-radius:8px; background:#FAF8F4; overflow:hidden;}
.mq-anteprima .mq-logo img{max-width:100%; max-height:100%; object-fit:contain;}
.mq-barra{flex:1; border-radius:8px; padding:10px 12px; font-family:var(--font-ui); font-weight:700;}
.mq-colori{display:flex; flex-wrap:wrap; gap:8px; margin-top:6px;}
.mq-colori button{width:32px; height:32px; border-radius:50%; border:2px solid #fff; box-shadow:0 0 0 1px var(--line); cursor:pointer;}
.mq-colori button.on{box-shadow:0 0 0 2px var(--notte);}

/* ---- navigazione a 5 voci, ricerca, impostazioni ---- */
html.nav5 nav.tabs > button[data-tab]{display:none !important;}
nav.tabs button.grp{position:relative;}
nav.tabs button.grp .corto{display:none;}
nav.tabs button.grp.attivo{background:rgba(255,255,255,.1); color:#fff;} nav.tabs button.grp.attivo svg{color:var(--gold-chiaro,var(--gold));}
nav.tabs button.grp:hover{color:#fff;}
.grp-n{font-style:normal; background:var(--gold); color:var(--gold-testo); border-radius:var(--r-pill); font-size:var(--t-xs); font-weight:700; padding:1px 8px; line-height:18px;}
.grp-n:empty{display:none;}
.grp-punto{position:absolute; top:10px; right:10px; width:9px; height:9px; border-radius:50%; background:var(--arancio);}
.grp-punto[hidden]{display:none;}
.grp-spazio{flex:1 1 auto;}
#avvisiBtn, #datiPagBtn, #marchioBtn, #moduloDipBtn, #nuovaPraticaBtn{display:none !important;}
#salute .card:has(#copiaOra){display:none !important;}
#appView > header > div, #appView > header > #logout{display:none !important;}
.testa-imp{display:flex; align-items:center; justify-content:center; width:44px; height:44px; border:0 !important; border-radius:var(--r-campo); background:rgba(255,255,255,.1) !important; color:#fff !important; padding:0 !important; flex:none;}
.barra-top{display:flex; gap:12px; align-items:center; margin:8px 0 16px; position:relative;}
.barra-top .cerca{flex:1; display:flex; align-items:center; gap:8px; background:var(--carta); border:1px solid var(--bordo); border-radius:12px; padding:0 14px; height:48px; margin:0; color:var(--muted); font-weight:400;}
.barra-top .cerca:focus-within{border-color:var(--notte); outline:3px solid var(--gold); outline-offset:2px;}
.barra-top .cerca input{border:0; outline:0; flex:1; font:inherit; font-size:16px; background:transparent; padding:0; margin:0; min-width:0; min-height:0; color:var(--ink); height:46px;}
.barra-top .cerca input:focus-visible{outline:none;}
.barra-top .sr{position:absolute; left:-9999px;}
#nuovoTop{height:48px; white-space:nowrap;}
.cerca-ris{position:absolute; left:0; right:0; top:56px; background:var(--carta); border:1px solid var(--line); border-radius:12px; box-shadow:var(--ombra-sopra); z-index:20; max-height:60vh; overflow:auto; padding:6px;}
.cerca-ris[hidden]{display:none;}
.cerca-ris button{display:grid; grid-template-columns:78px 1fr; gap:2px 12px; width:100%; text-align:left; border:0; background:var(--carta); padding:10px; border-radius:8px; font:inherit; cursor:pointer; color:var(--ink);}
.cerca-ris button:hover, .cerca-ris button:focus{background:#F5F2EC;}
.cerca-ris em{grid-row:span 2; font-style:normal; font-size:var(--t-xs); font-weight:600; color:var(--muted); align-self:center;}
.cerca-ris b{font-size:var(--t-s);} .cerca-ris span{font-size:var(--t-s); color:var(--muted);}
.cerca-ris .vuoto{padding:12px; color:var(--muted);}
.subnav{display:flex; gap:4px; flex-wrap:wrap; margin:0 0 16px; background:#EAE5DB; border-radius:12px; padding:4px; width:fit-content; max-width:100%;}
.subnav[hidden]{display:none !important;}
.subnav button{border:0; background:transparent; border-radius:9px; padding:8px 14px; font:inherit; font-weight:600; font-size:var(--t-s); color:var(--grigio); cursor:pointer; min-height:40px;}
.subnav button.on{background:var(--carta); color:var(--inchiostro); box-shadow:0 1px 2px rgba(19,41,75,.12);}
.subnav button i{font-style:normal; background:var(--rosso); color:#fff; border-radius:var(--r-pill); padding:0 7px; font-size:var(--t-xs); margin-left:4px;}
.tiles{display:grid; grid-template-columns:repeat(auto-fill,minmax(240px,1fr)); gap:12px; margin-bottom:24px;}
.tile{display:flex; flex-direction:column; align-items:flex-start; gap:4px; text-align:left; background:var(--carta); border:1px solid var(--line); border-radius:var(--r-card); padding:16px; font:inherit; color:var(--ink); cursor:pointer; min-height:96px; box-shadow:var(--ombra-card);}
.tile:hover{border-color:#CFC8BA;}
.tile b{font-size:var(--t-m);} .tile span{font-size:var(--t-s); color:var(--muted); font-weight:400;} .tile em{font-style:normal; font-size:var(--t-xs); font-weight:700; color:#8A5A00; margin-top:4px;}
.tile em.ok{color:var(--green);} .tile em.ko{color:var(--red);}
.imp-h{font-size:var(--t-s); font-weight:700; color:var(--grigio); margin:0 0 12px;}
.imp-copia{display:flex; flex-wrap:wrap; gap:12px; align-items:center; justify-content:space-between; background:#FFF6EC; border-color:#F6D3B5; margin-bottom:20px;}
@media(max-width:979px){
  nav.tabs button.grp .lungo{display:none;} nav.tabs button.grp .corto{display:inline;}
  nav.tabs .grp-imp, nav.tabs .grp-spazio{display:none;}
  nav.tabs .grp-n{position:absolute; top:4px; right:14px; font-size:var(--t-xs); padding:0 6px;}
  #nuovoTop{display:none;}
  #appView > header{display:flex; align-items:center; justify-content:space-between;}
}
@media(min-width:980px){
  #appView > header{display:none;}
  html.nav5 #oggiNuova{display:none;}
  nav.tabs .grp-imp{border-top:1px solid rgba(255,255,255,.12); border-radius:10px;}
}
/* «?» guida: leggero */
.barra-top .aiuto-top{width:48px; height:48px; min-height:0; padding:0; border-radius:50%; font-size:var(--t-l); flex:0 0 auto; text-decoration:none; background:transparent; border-color:transparent; color:var(--grigio);}
.barra-top .aiuto-top:hover{background:#EAE5DB; color:var(--inchiostro); border-color:transparent;}
@media(max-width:600px){.barra-top .aiuto-top{width:44px; height:44px;}}

/* ---- ditte clienti e termini ---- */
.ditte-kpi{display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; margin-bottom:16px;}
.ditte-kpi div{background:var(--carta); border:1px solid var(--line); border-radius:12px; padding:12px 14px;}
.ditte-kpi b{display:block; font-size:var(--t-xl);} .ditte-kpi span{font-size:var(--t-s); color:var(--muted);}
.card.ditta{margin-bottom:12px;}
.termini-ov{position:fixed; inset:0; z-index:200; background:rgba(14,31,58,.55); display:flex; align-items:center; justify-content:center; padding:16px;}
.termini-box{background:var(--carta); border-radius:var(--r-dlg); max-width:560px; width:100%; max-height:92vh; overflow:auto; padding:24px; box-shadow:var(--ombra-sopra);}
.termini-doc{display:flex; flex-direction:column; gap:4px; border:1px solid var(--line); border-radius:12px; padding:12px 14px; margin-bottom:12px;}
.termini-doc span{font-size:var(--t-s); color:var(--muted);} .termini-doc a{font-weight:700; font-size:var(--t-s);}
.termini-chk{display:flex; gap:12px; align-items:flex-start; font-size:var(--t-s); font-weight:500; color:var(--ink); margin-top:12px;}
.termini-chk input{width:20px; height:20px; flex:0 0 auto; margin-top:1px;}

/* ---- clienti ---- */
.cli-cat{display:grid; grid-template-columns:repeat(4, 1fr); gap:12px; margin:12px 0;}
.cli-cat button{display:flex; flex-direction:column; align-items:flex-start; gap:4px; padding:14px; border:1.5px solid var(--line); border-radius:12px; background:var(--carta); font:inherit; text-align:left; cursor:pointer; color:var(--inchiostro);}
.cli-cat button b{font-size:var(--t-m);} .cli-cat button span{font-size:var(--t-xs); color:var(--muted);} .cli-cat button i{font-style:normal; font-size:var(--t-xl);}
.cli-cat button.on{border-color:var(--notte); box-shadow:inset 0 0 0 1.5px var(--notte); background:#F3F6FB;}
.cli-scad{display:flex; align-items:center; justify-content:space-between; gap:12px; width:100%; margin:0 0 12px; padding:12px 16px; border:0; border-radius:12px; background:var(--rosso); color:#fff; font:inherit; font-weight:700; text-align:left; cursor:pointer;}
.cli-scad span{font-weight:500; opacity:.92; font-size:var(--t-s);}
.cli-vuoto{padding:28px 12px; text-align:center; color:var(--muted);}
.cli-testa{display:flex; align-items:center; justify-content:space-between; gap:8px; margin:6px 0 12px;} .cli-testa h3{margin:0;}
.gacc{border:1px solid var(--line); border-radius:12px; background:var(--carta); margin-bottom:8px; overflow:hidden;}
.gacc-h{display:flex; align-items:center; gap:12px; width:100%; min-height:52px; padding:12px 16px; border:0; background:none; font:inherit; text-align:left; cursor:pointer; color:var(--inchiostro);}
.gacc-h .nm{font-weight:700; flex:1; min-width:0;} .gacc-h .meta{font-size:var(--t-xs); color:var(--muted); white-space:nowrap;} .gacc-h .fr{transition:transform .2s; color:var(--muted);}
.gacc.open{border-color:#CFC8BA;} .gacc.open .gacc-h{background:#FAF8F4; border-bottom:1px solid var(--line);} .gacc.open .gacc-h .fr{transform:rotate(90deg);}
.gacc-b{padding:12px 16px 16px;}
.gacc .ic{border:1px solid var(--line); border-radius:12px; padding:12px; margin:8px 0; background:var(--carta);}
.gacc .ic .acts{display:flex; flex-wrap:wrap; gap:8px; margin-top:8px;} .gacc .ic select{max-width:200px;}
.cli-imm-trov{font-size:var(--t-s); margin:-2px 16px 12px; color:var(--muted);}
@media (max-width:760px){ .cli-cat{grid-template-columns:1fr 1fr;} .gacc-h .meta{display:none;} .cli-scad span{display:none;} .su-clienti .barra-top{display:none;} }
.su-clienti .barra-top .cerca{display:none;}
/* GPS e presenze */
.gps-opz{display:grid; gap:8px; margin:6px 0 4px;}
.gps-opz label{display:flex; gap:12px; align-items:flex-start; padding:12px; border:1.5px solid var(--line); border-radius:12px; font-size:var(--t-s); font-weight:500; color:var(--ink); cursor:pointer; margin:0;}
.gps-opz label b{display:block; font-size:var(--t-s);} .gps-opz label span{font-size:var(--t-xs); color:var(--muted);} .gps-opz input{margin-top:3px; flex:0 0 auto;}
.gps-opz label:has(input:checked){border-color:var(--notte); background:#F3F6FB;}
.gps-opz input[type=radio]{width:20px !important; height:20px; padding:0; margin:3px 0 0;}
.chk-norm{display:flex; gap:12px; align-items:flex-start; font-size:var(--t-s) !important; font-weight:500 !important; color:var(--ink) !important; line-height:1.4;}
.chk-norm input{flex:0 0 auto; margin-top:2px; width:20px; height:20px;}

/* ---- nuova pratica: campi obbligatori e PDF ---- */
.obbl{color:var(--rosso); font-weight:700;}
.obbl-nota{margin:16px 0 0; padding:10px 14px; border-radius:12px; background:#F3F6FB; font-size:var(--t-s);}
.campo-err{border-color:var(--rosso) !important; box-shadow:0 0 0 3px rgba(180,35,24,.15) !important;}
.err-campo{color:var(--rosso); font-size:var(--t-s); font-weight:600; margin-top:4px;}
.campo-nota{margin:6px 0 0 !important;}
details.opz{margin-top:20px; border:1px solid var(--line); border-radius:12px; padding:0 16px 16px; background:var(--carta);}
details.opz > summary{cursor:pointer; padding:14px 0 4px; font-weight:700; color:var(--inchiostro); list-style-position:inside; font-size:var(--t-m);}
details.opz > summary .muted{font-weight:400;}
details.opz[open] > summary{margin-bottom:4px;}
.pdf-import{margin-top:20px; padding:16px; border:1.5px dashed #CFC8BA; border-radius:12px; background:#FAF8F4;}
.pdf-import .file-btn{border-color:var(--notte); color:var(--notte); font-weight:700;}
dialog:focus, dialog:focus-visible, .dlg-body:focus, .dlg-body:focus-visible{outline:none;}
@media(max-width:600px){
  .card.pratica .pr-meta{gap:2px 12px;}
  .card.pratica .pr-meta .sep{display:none;}
  .subnav{flex-wrap:nowrap; overflow-x:auto; width:auto; scrollbar-width:none;}
  .subnav button{white-space:nowrap; flex:none;}
}
