/*
 * Nanolink — componenti di Ardesia presenti solo nelle anteprime HTML del design system (anteprima/componenti.html,
 * righe 320-336), non in app/globals.css: campi, interruttori, schede, toast, modale, stato vuoto, scheletro.
 * Copiati alla lettera. DA SEGNALARE al repository abintrax/abintrax-design-system: portarli in globals.css.
 */
.field{display:flex;flex-direction:column;gap:5px;font-size:12.5px;font-weight:500;min-width:220px}
.input{padding:8px 11px;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface);color:var(--text);width:100%}
.input:focus{outline:2px solid var(--focus);outline-offset:1px;border-color:transparent}
.input.err{border-color:var(--err)}.help{font-size:11.5px;color:var(--muted);font-weight:400}.help.err{color:var(--err)}
.toggle{width:40px;height:22px;border-radius:999px;background:var(--surface-3);border:1px solid var(--line);position:relative;transition:background var(--dur-2)}
.toggle::after{content:"";position:absolute;top:2px;left:2px;width:16px;height:16px;border-radius:50%;background:var(--surface);box-shadow:0 1px 2px rgba(0,0,0,.2);transition:transform var(--dur-2) var(--ease)}
.toggle[aria-checked="true"]{background:var(--brand);border-color:var(--brand)}.toggle[aria-checked="true"]::after{transform:translateX(18px);background:var(--brand-ink)}
.cb{display:inline-flex;align-items:center;gap:8px;font-size:13px}.cb i{width:18px;height:18px;border-radius:5px;border:1.5px solid var(--line);display:grid;place-items:center;background:var(--surface)}.cb.on i{background:var(--brand);border-color:var(--brand);color:var(--brand-ink)}.cb i svg{width:12px;height:12px}
.tabs{display:flex;gap:4px;border-bottom:1px solid var(--line-soft)}.tabs button{padding:9px 14px;font-weight:500;color:var(--muted);border-bottom:2px solid transparent;margin-bottom:-1px}.tabs button[aria-selected="true"]{color:var(--text);border-bottom-color:var(--brand);font-weight:600}
.toast{display:inline-flex;align-items:center;gap:10px;padding:10px 14px;border-radius:var(--radius-sm);background:var(--text);color:var(--bg);font-size:13px;box-shadow:var(--shadow-lg)}
.toast i{width:8px;height:8px;border-radius:50%;background:var(--brand)}
.modal{max-width:440px;background:var(--surface);border:1px solid var(--line-soft);border-radius:var(--radius);box-shadow:var(--shadow-lg);padding:20px}
.modal h3{color:var(--text);font-size:16px;margin-bottom:6px}.modal p{margin:0 0 16px;color:var(--text-2);font-size:13px}.modal .acts{display:flex;justify-content:flex-end;gap:8px}
.empty{text-align:center;padding:36px 20px;border:1.5px dashed var(--line);border-radius:var(--radius);color:var(--muted)}
.empty .mark{width:44px;height:44px;border-radius:12px;background:var(--brand-soft);color:var(--text);display:grid;place-items:center;margin:0 auto 10px}.empty .mark svg{width:20px;height:20px}
.skel{height:12px;border-radius:6px;background:linear-gradient(90deg,var(--surface-3) 25%,var(--hover) 50%,var(--surface-3) 75%);background-size:200% 100%;animation:sk 1.4s linear infinite}@keyframes sk{to{background-position:-200% 0}}

/*
 * Nanolink — estensioni a Ardesia. Solo ciò che il design system non ha ancora (pagine di accesso, moduli, elenchi di file,
 * blocchi di codice, schede). Tutto usa i token di ardesia.css: nessun colore nuovo, nessuna variante dei componenti.
 * Da proporre al repository abintrax/abintrax-design-system: .alert.err, .g2, .codeblock, .dropzone, .tabs accessibili.
 */
[hidden]{display:none !important}
.skip{position:absolute;left:12px;top:-60px;z-index:100;padding:8px 14px;border-radius:var(--radius-sm);background:var(--text);color:var(--bg);font-weight:600;transition:top var(--dur-1)}
.skip:focus{top:12px}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.inline{display:contents}
code{font-family:var(--mono);font-size:.92em;background:var(--surface-3);border-radius:5px;padding:1px 5px}
main:focus{outline:none}

/* ── pagine senza barra: accesso, passaggi obbligatori ── */
.auth-wrap{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:20px;padding:24px 16px}
.auth-top{width:100%;max-width:420px;display:flex;align-items:center;justify-content:space-between;gap:12px}
.auth-top .logo{color:var(--text);display:flex;align-items:center}
.auth-top .logo-intero{height:28px;width:auto;display:block}
.auth-card{width:100%;max-width:420px;padding:26px}
.auth-title{font-size:22px;margin-bottom:6px}
.auth-lead{margin:0 0 18px}
.auth-foot{margin:0}
.auth-alt{margin-top:12px;text-align:center}

/* ── moduli ── */
.stack{display:flex;flex-direction:column;gap:14px}
.field{min-width:0}
.form-card{max-width:520px;padding:22px}
.form-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,230px),1fr));gap:16px 20px;align-items:start}   /* in alto, non in basso: con aiuti di lunghezza diversa le etichette restano sulla stessa riga */
.form-row.has-color{grid-template-columns:repeat(auto-fit,minmax(min(100%,200px),1fr))}
@media (min-width:900px){.form-row.has-color{grid-template-columns:max-content minmax(0,1fr) minmax(0,1fr)}}
.field>label,.field>legend{line-height:1.3}
.field .help{line-height:1.45;margin-top:1px}
.input{min-height:38px;line-height:1.35}
textarea.input{min-height:0;resize:vertical;line-height:1.45}
select.input{padding-right:8px}
.input[type=file]{padding:4px 6px;cursor:pointer}
.input::file-selector-button{margin-right:12px;padding:5px 12px;border:1px solid var(--line);border-radius:6px;background:var(--surface-2);color:var(--text);font:600 12px var(--font);cursor:pointer;transition:background var(--dur-1)}
.input::file-selector-button:hover{background:var(--hover)}
.input::placeholder{color:var(--muted);opacity:1}
.row-actions{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.row-actions.end{justify-content:flex-end}
.row-actions form{margin:0}
select.input{appearance:auto}
.input-sm{padding:5px 8px;font-size:12.5px;width:auto}
.code-input{font-size:18px;letter-spacing:.14em;text-align:center}
.alert.err{background:var(--err-soft);border-color:transparent}
.alert.err .ic{background:var(--err);color:#fff}
.alert.err span{color:var(--text-2)}
.help a{text-decoration:underline}
.g2{grid-template-columns:repeat(2,minmax(0,1fr))}
@media (max-width:900px){.g2{grid-template-columns:1fr}}

/* ── blocchi di codice: password temporanee, chiavi, codici di recupero ── */
.codeblock-row{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin:8px 0 6px}
.codeblock{display:inline-block;font-family:var(--mono);font-size:15px;font-weight:500;letter-spacing:.04em;padding:8px 12px;background:var(--surface-2);border:1px solid var(--line);border-radius:var(--radius-sm);user-select:all;word-break:break-all}
.codes{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.steps-list{margin:0 0 18px;padding-left:20px;display:flex;flex-direction:column;gap:12px}
.steps-list li{padding-left:4px}
.kv{display:grid;grid-template-columns:max-content 1fr;gap:10px 18px;margin:0;align-items:center}
.kv dt{color:var(--muted);font-size:12.5px}
.kv dd{margin:0;display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.secret-card{box-shadow:inset 3px 0 0 var(--info),var(--shadow)}

/* ── tabelle e elenchi ── */
.table-scroll{overflow-x:auto}
.chips{display:flex;flex-wrap:wrap;gap:6px}
.empty-inline{padding:22px 18px;color:var(--muted)}
.feed-pad{padding:4px 18px 8px}
thead th{cursor:default}
.kpi .k-value.k-text{font-size:20px;line-height:1.2;padding-right:0;min-height:28px;display:flex;align-items:center}

/* ── aggiornamenti ── */
.tabs{margin-bottom:16px}
.tabs button:focus-visible{outline-offset:-2px}
.tabpanel{display:flex;flex-direction:column;gap:14px}
.dropzone{display:flex;flex-direction:column;align-items:center;gap:6px;text-align:center;padding:36px 20px;border:1.5px dashed var(--line);border-radius:var(--radius);color:var(--muted);cursor:pointer;background:var(--surface);transition:background var(--dur-1),border-color var(--dur-1)}
.dropzone:hover,.dropzone.over{background:var(--surface-2);border-color:var(--text-2)}
.dropzone:focus-within{outline:2px solid var(--focus);outline-offset:2px}
.dropzone .mark{width:44px;height:44px;border-radius:12px;background:var(--brand-soft);color:var(--text);display:grid;place-items:center}
.dropzone .mark svg{width:20px;height:20px}
.dropzone b{color:var(--text);font-size:15px}
.dropzone input{position:absolute;opacity:0;width:1px;height:1px}
.pkgbox{padding:14px 16px;border-radius:var(--radius);border:1px solid transparent}
.pkgbox>b{display:block;font-size:14px;margin-bottom:2px}
.pkgbox p{margin:4px 0 0;color:var(--text-2);font-size:13px;white-space:pre-line}
.pkgbox.ok{background:var(--ok-soft)}.pkgbox.ok>b{color:var(--ok)}
.pkgbox.warn{background:var(--warn-soft)}.pkgbox.warn>b{color:var(--warn)}
.pkgbox.err{background:var(--err-soft)}.pkgbox.err>b{color:var(--err)}
.pkgbox.info{background:var(--info-soft)}.pkgbox.info>b{color:var(--info)}
.cols{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--gap)}
@media (max-width:900px){.cols{grid-template-columns:1fr}}
.filelist{list-style:none;margin:8px 0 0;padding:0;max-height:260px;overflow:auto;border:1px solid var(--line-soft);border-radius:var(--radius-sm);background:var(--surface)}
.filelist li{display:flex;justify-content:space-between;gap:10px;padding:6px 10px;border-bottom:1px solid var(--line-soft);font-size:12.5px}
.filelist li:last-child{border-bottom:0}
.filelist .mono{word-break:break-all}
.filelist.empty-list li{color:var(--muted)}
.bk-row{display:flex;flex-wrap:wrap;align-items:center;gap:10px;padding:12px 16px;border-bottom:1px solid var(--line-soft)}
.bk-row:last-child{border-bottom:0}
.bk-row .bk-name{font-weight:600}
.bk-row .bk-meta{font-size:12px;color:var(--muted)}
.bk-row .row-actions{margin-left:auto}
.bk-note{flex-basis:100%;padding:10px 12px;border-radius:var(--radius-sm);background:var(--surface-2);font-size:13px;color:var(--text-2)}
.bk-note b{color:var(--text)}
.toast-host{position:fixed;left:50%;bottom:24px;transform:translateX(-50%);z-index:60;display:flex;flex-direction:column;gap:8px;align-items:center}
@media (prefers-reduced-motion:reduce){.skip,.dropzone{transition:none}}

/* Sotto 760 px Ardesia nasconde pallino e nome del «tenant» ma non il suo riquadro: resterebbe vuoto. */
@media (max-width:760px){.tenant{display:none}}

/* Intestazione di pagina: il testo occupa lo spazio, le azioni restano della loro misura (il bottone non va a capo). */
.page-head>div:first-child{flex:1;min-width:0}
.page-head .actions{flex:none}
.page-head .actions .btn{white-space:nowrap}
@media (max-width:760px){.page-head{flex-direction:column;align-items:stretch}.page-head .actions{margin-left:0}}

/* ── accessibilità ── */
/* la prima cella di riga è un'intestazione di riga (th scope=row): stessa resa delle altre celle */
tbody th{text-align:left;font-weight:inherit;padding:10px 12px;border-bottom:1px solid var(--line-soft);vertical-align:middle}
tbody tr:hover th{background:transparent}
/* testo di servizio sul fondo della pagina: --muted su --bg non arriva a 4,5:1 */
.auth-foot{color:var(--text-2)}
/* l'icona dell'avviso d'errore: testo scuro sul rosso chiaro del tema scuro, bianco sul rosso scuro del chiaro */
.alert.err .ic{color:var(--surface)}
/* chi chiede meno movimento non vede nemmeno la barra che scivola o i bottoni che si abbassano */
@media (prefers-reduced-motion:reduce){.app,.collapsed .sidebar,.btn,.seg button,.iconbtn,.nav a,.dropzone{transition:none !important}}
button[aria-disabled="true"]{opacity:.5;pointer-events:none}
form.role-form{display:flex;gap:6px;align-items:center;flex-wrap:wrap}

/* ── link ── */
.filters{display:flex;flex-wrap:wrap;gap:12px;align-items:flex-end;padding:14px 18px;border-bottom:1px solid var(--line-soft)}
.filters .field{min-width:200px;flex:1 1 200px;max-width:340px}
.trunc{display:inline-block;max-width:340px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;vertical-align:bottom}
a.trunc:hover,.link-code:hover,.wrap:hover{text-decoration:underline}
.wrap{word-break:break-all}
.link-code{font-weight:600}
.sub{display:block;font-size:11.5px;color:var(--muted);font-weight:400;max-width:260px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
thead th a{color:inherit}
thead th[aria-sort] a:hover{color:var(--text)}
.pager a{display:inline-grid;place-items:center;min-width:28px;height:28px;border-radius:7px;border:1px solid var(--line);font-size:13px;color:var(--text-2)}
.pager a:hover{background:var(--hover)}
.slug-row{display:flex;align-items:stretch}
.slug-prefix{display:inline-flex;align-items:center;padding:0 10px;border:1px solid var(--line);border-right:0;border-radius:var(--radius-sm) 0 0 var(--radius-sm);background:var(--surface-2);color:var(--text-2);font-family:var(--mono);font-size:13px;white-space:nowrap}
.slug-row .input{border-radius:0 var(--radius-sm) var(--radius-sm) 0}
.fieldset{border:0;padding:0;margin:0;min-width:0}
.fieldset legend{font-size:12.5px;font-weight:500;padding:0;margin-bottom:6px}
.radio{display:flex;gap:10px;align-items:flex-start;font-size:13px;margin:4px 0}
.radio input{margin-top:3px}
.radio b{display:block;font-weight:600}
.radio label{cursor:pointer}
.history{list-style:none;margin:0;padding:4px 18px 8px}
.history>li{display:flex;justify-content:space-between;gap:12px;padding:10px 0;border-bottom:1px solid var(--line-soft);font-size:13px}
.history>li:last-child{border-bottom:0}
.history time{color:var(--muted);font-size:12px;white-space:nowrap}
.diff{list-style:none;margin:6px 0 0;padding:0;font-size:12.5px}
.diff del{color:var(--muted)}.diff ins{text-decoration:none;font-weight:600}
.pre{white-space:pre-wrap}
.sep{border:0;border-top:1px solid var(--line-soft);margin:16px 0}
.email-edit{margin-top:4px;font-size:12px}
.email-edit summary{cursor:pointer;color:var(--muted)}
.email-edit summary:hover{color:var(--text)}
.email-edit form{margin-top:6px;flex-wrap:nowrap}
.email-edit .input{min-width:200px}
/* creazione rapida (panoramica) */
.quick{display:flex;gap:10px;align-items:center;padding:12px}
.quick .input{flex:1;font-size:15px;padding:11px 14px}
.quick .btn{white-space:nowrap}
.quick-msg{min-height:18px;margin:-6px 4px 0}
.quick-msg.err{color:var(--err)}
.toast-btn{color:inherit;background:transparent;border:1px solid currentColor;border-radius:6px;padding:2px 9px;font-size:12px;font-weight:600;opacity:.85;text-decoration:none}
.toast-btn:hover{opacity:1}
.toast .toast-btn+.toast-btn{margin-left:-4px}
@media (max-width:760px){.trunc{max-width:150px}.quick{flex-direction:column;align-items:stretch}.filters .field{max-width:none}}

/* ── accessibilità 0.2.0 ── */
/* il fuoco sul toast (fondo scuro): l'anello di Ardesia (--focus) non si vedrebbe */
.toast :focus-visible{outline:2px solid var(--bg);outline-offset:2px}
.toast-host{width:max-content;max-width:calc(100vw - 32px);position:static;transform:none;margin:8px 0 0;align-items:flex-start}
.toast{flex-wrap:wrap}
.quick-msg{color:var(--text-2)}
.quick-msg.err{color:var(--err)}
/* reflow a 320 px: codici e indirizzi lunghi vanno a capo invece di far scorrere la pagina */
h1.mono,.kv code,.kv dd,.diff del,.diff ins,.history>li>div{overflow-wrap:anywhere;min-width:0}
.history>li{min-width:0}
.slug-row{flex-wrap:nowrap;min-width:0}
.slug-row .input{min-width:0}
.pager a{min-width:36px;height:36px}
.toast-btn{padding:6px 12px}

/* ── QR e divisioni ── */
/* il QR sta sempre su una targa bianca, anche nel tema scuro: un QR chiaro su scuro non lo legge ogni telefono */
.qr-plate{background:#fff;border:1px solid var(--line-soft);border-radius:var(--radius);padding:10px;line-height:0}
.qr-plate>svg{display:block;width:100%;height:auto}   /* «> svg»: l'icona è un <svg> dentro l'SVG del QR e non va deformata */
.qr-mini{width:132px;flex:none}
.qr-row{display:flex;gap:16px;align-items:center;flex-wrap:wrap}
.studio{display:grid;grid-template-columns:minmax(260px,380px) minmax(0,1fr);gap:var(--gap);align-items:start}
.studio-view{position:sticky;top:76px}
.studio-controls{display:flex;flex-direction:column;gap:var(--gap);min-width:0}
.qr-detail{margin:10px 0 4px;font-size:13px;font-weight:600}
@media (max-width:1000px){.studio{grid-template-columns:1fr}.studio-view{position:static}.studio-view .qr-plate{max-width:300px;margin-inline:auto}.studio-view .row-actions{justify-content:center}.studio-view .qr-detail{text-align:center}}
.qr-full{position:fixed;inset:0;z-index:100;background:#fff;color:#1c1b19;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;padding:16px}
.qr-full .btn{position:absolute;top:16px;right:16px;background:#fff;color:#1c1b19;border-color:#dcdad3}
.qr-full :focus-visible{outline:2px solid #2b2a29}
.qr-big{width:min(80vh,88vw);height:min(80vh,88vw);line-height:0}
.qr-big>svg{display:block;width:100%;height:100%}
.qr-big-label{font-size:clamp(18px,3vw,32px);margin:0;color:#1c1b19}
.styles-list{list-style:none;margin:0 0 12px;padding:0}
.style-row{display:flex;gap:12px;justify-content:space-between;align-items:center;padding:9px 0;border-bottom:1px solid var(--line-soft);flex-wrap:wrap}
.style-row:last-child{border-bottom:0}
.style-row .sub{display:block;max-width:none}
.style-row [aria-pressed="true"]{background:var(--surface-3);font-weight:700}
.color-input{padding:3px;height:38px;width:72px;min-width:0;cursor:pointer}
.color-input::-webkit-color-swatch-wrapper{padding:0}
.color-input::-webkit-color-swatch{border:0;border-radius:5px}
.color-input::-moz-color-swatch{border:0;border-radius:5px}
.division{display:flex;flex-direction:column;gap:0}
.division-head{display:flex;gap:14px;align-items:center;flex-wrap:wrap}
.div-icon{width:44px;height:44px;border-radius:12px;display:grid;place-items:center;flex:none;overflow:hidden}
.div-icon svg{width:26px;height:26px}
.division-title{flex:1;min-width:200px}
.division-title h2{font-size:16px;margin-bottom:4px}
.division-qr{display:flex;gap:16px;align-items:center;margin-top:14px;flex-wrap:wrap}
.division-qr>div:last-child{flex:1;min-width:220px}
.retired{opacity:.7}
.edit-division{margin-top:14px}
.edit-division summary{cursor:pointer;font-weight:600;font-size:13px}
@media (prefers-reduced-motion:reduce){.qr-full{transition:none}}

/* ── Statistiche ── */
.period{display:flex;gap:16px;flex-wrap:wrap;align-items:flex-end;justify-content:space-between}
.period-list{display:flex;gap:6px;flex-wrap:wrap}
.period-list .btn.on{background:var(--surface-3);font-weight:700}
.period-form{display:flex;gap:10px;align-items:flex-end;flex-wrap:wrap}
.period-form .field{margin:0}
.data-table{margin-top:12px}
.data-table summary{cursor:pointer;font-weight:600;font-size:13px}
.num-col{text-align:right;font-variant-numeric:tabular-nums}
.heatcal-wrap{display:flex;gap:8px;overflow-x:auto;padding-bottom:6px}
.heatcal-days{display:grid;grid-template-rows:repeat(7,14px);gap:3px;margin-top:17px;font-size:10px;color:var(--text-2);line-height:14px}
.heatcal-days span:nth-child(1){grid-row:1}.heatcal-days span:nth-child(2){grid-row:3}.heatcal-days span:nth-child(3){grid-row:5}.heatcal-days span:nth-child(4){grid-row:7}
.heatcal-main{min-width:0}
.heatcal-months,.heatcal{display:grid;grid-template-columns:repeat(var(--w),14px);gap:3px}
.heatcal-months{font-size:10px;color:var(--text-2);height:14px;margin-bottom:3px}
.heatcal{grid-template-rows:repeat(7,14px);grid-auto-flow:column}
.heatcal i,.heatcal-legend i{width:14px;height:14px;border-radius:3px;display:block;background:var(--surface-3)}
.heatcal i.h-{background:transparent}
.heatcal i.h0,.heatcal-legend i.h0{background:var(--surface-3)}
.heatcal i.h1,.heatcal-legend i.h1{background:var(--seq-1)}.heatcal i.h2,.heatcal-legend i.h2{background:var(--seq-2)}.heatcal i.h3,.heatcal-legend i.h3{background:var(--seq-3)}
.heatcal i.h4,.heatcal-legend i.h4{background:var(--seq-4)}.heatcal i.h5,.heatcal-legend i.h5{background:var(--seq-5)}
.heatcal-legend{display:flex;align-items:center;gap:4px;margin-top:10px;font-size:11px;color:var(--text-2)}
.heatcal-legend span:first-child{margin-right:4px}.heatcal-legend span:last-child{margin-left:4px}
.hbars{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px}
.hbars li{display:grid;grid-template-columns:minmax(90px,1fr) minmax(60px,2fr) auto;gap:10px;align-items:center}
.hb-label{overflow-wrap:anywhere}
.hb-track{height:10px;border-radius:5px;background:var(--surface-3);overflow:hidden;display:block}
.hb-track i{display:block;height:100%;background:var(--viz-single);border-radius:5px}
.hb-n{font-weight:600;min-width:2ch;text-align:right}
@media (max-width:560px){.hbars li{grid-template-columns:1fr auto}.hb-track{display:none}}

.heatcal-wrap:focus-visible{outline:2px solid var(--focus);outline-offset:2px}
.heatcal i:not(.h-){box-shadow:inset 0 0 0 1px var(--line)}
.stat-chart .chart text{font-size:13px}
.table-scroll:focus-visible{outline:2px solid var(--focus);outline-offset:2px}
.period-list .btn.on{border-color:var(--text-2)}
@media (forced-colors:active){.heatcal i,.heatcal-legend i,.hb-track,.hb-track i{forced-color-adjust:none;border:1px solid CanvasText}.hb-track i{background:Highlight}}

/* ── rifiniture di interfaccia ── */
thead th:not([aria-sort]){cursor:default}                      /* Ardesia lo mette su ogni intestazione, ma solo quelle con ordinamento sono cliccabili */
.heatcal-months span{white-space:nowrap}
@media (pointer:coarse){                                       /* telefono allo stand: bersagli più grandi */
  .btn.sm,.seg button,.pager a{min-height:40px}
  .period-list .btn{min-height:40px}
  .input,select.input{min-height:44px}
}

/* ── regole di destinazione e indirizzo (0.5.0) ── */
/* il giallo resta all'azione primaria del modulo: condizioni scelte e giorni si distinguono con filo e inchiostro, non col colore */
.lead-help{margin:-4px 0 14px;font-size:12.5px}
.cond-group{border:0;padding:0;margin:0 0 18px;min-width:0}
.cond-group:last-of-type{margin-bottom:0}
.cond-group>legend{font-size:11px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);padding:0;margin-bottom:8px}
.cond{border:1px solid var(--line-soft);border-radius:var(--radius-sm);padding:10px 12px;background:var(--surface);transition:border-color var(--dur-1)}
.cond+.cond{margin-top:8px}
.cond:has(.cond-toggle input:checked){border-color:var(--line);box-shadow:inset 3px 0 0 var(--text-2)}
.cond.has-err{border-color:var(--err)}
.cond-toggle{display:flex;gap:10px;align-items:flex-start;cursor:pointer}
.cond-toggle input{margin-top:3px;width:16px;height:16px;accent-color:var(--text);flex:none}
.cond-toggle b{font-weight:600;font-size:13px}
.cond-help{margin:2px 0 0 26px}
.radio+.cond-help{margin:-2px 0 0 24px}
.cond-body{margin:12px 0 2px 26px}
.cond:has(.cond-toggle input:not(:checked)) .cond-body{display:none}   /* senza :has() i campi restano visibili: si usa lo stesso */
.cond>.help.err{margin:8px 0 0 26px}
.field.narrow{max-width:260px}
.suffix-row{display:flex;align-items:center;gap:8px}.suffix-row .input{max-width:110px}
.day-picks{display:flex;flex-wrap:wrap;gap:6px}
.day-pick{position:relative;cursor:pointer}
.day-pick input{position:absolute;inset:0;opacity:0;margin:0;cursor:pointer}
.day-pick>span{display:inline-flex;justify-content:center;min-width:52px;padding:6px 10px;border:1px solid var(--line);border-radius:999px;background:var(--surface);font-weight:600;font-size:12.5px;color:var(--text-2);transition:background var(--dur-1),color var(--dur-1)}
.day-pick input:checked+span{background:var(--text);border-color:var(--text);color:var(--bg)}
.day-pick input:focus-visible+span{outline:2px solid var(--focus);outline-offset:2px}
.chk-list{display:flex;flex-wrap:wrap;gap:2px 18px}
.rules-note{padding:12px 18px 0}
.rules-lead{padding:12px 18px 0;margin:0}
.rules{list-style:none;margin:0;padding:0 18px 4px}
.rule-item{display:grid;grid-template-columns:28px minmax(0,1fr) auto;gap:12px;align-items:start;padding:12px 0;border-bottom:1px solid var(--line-soft)}
.rule-item:target{box-shadow:inset 3px 0 0 var(--text-2);padding-left:8px;margin-left:-8px}
.rule-n{width:26px;height:26px;border-radius:50%;display:grid;place-items:center;background:var(--surface-3);color:var(--text-2);font-weight:700;font-size:12px}
.rule-text{margin:2px 0 2px;font-weight:600}
.rule-dest{margin:0 0 6px;font-size:12.5px}
.rule-item.off .rule-text,.rule-item.off .rule-dest{color:var(--muted)}
.rule-else{border-bottom:0}.rule-else .rule-text{font-weight:500;color:var(--text-2)}
.rule-acts{display:flex;flex-wrap:wrap;gap:6px;align-items:center;justify-content:flex-end}
.rule-acts form{margin:0}
.rule-acts .iconbtn{width:32px;height:32px;font-size:15px;font-weight:600}
.iconbtn[disabled]{opacity:.4;cursor:default}
.tester{padding:16px 18px 18px;border-top:1px solid var(--line-soft);background:var(--surface-2)}
.tester h3{color:var(--text);margin-bottom:4px}
.tester-form{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,140px),1fr));gap:12px;align-items:end;margin-top:12px}
.tester-go .btn{width:100%;justify-content:center;min-height:38px}
.tester-out{margin-top:14px;padding:12px 14px;border-radius:var(--radius-sm);background:var(--surface);border:1px solid var(--line-soft)}
.tester-out p{margin:0 0 6px}
.trace{list-style:none;margin:8px 0 0;padding:0;font-size:12.5px;display:flex;flex-direction:column;gap:4px}
.trace li{display:flex;gap:8px;align-items:baseline;flex-wrap:wrap}
.alias-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px;width:100%}
.alias-list li{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.inline-form{display:inline;margin:0}
@media (max-width:760px){.rule-item{grid-template-columns:28px minmax(0,1fr)}.rule-acts{grid-column:2;justify-content:flex-start}}
@media (pointer:coarse){.rule-acts .iconbtn{width:44px;height:44px}.day-pick>span{min-height:40px;align-items:center}}
/* contrasto elevato di Windows: gli sfondi spariscono, il giorno scelto deve restare riconoscibile */
@media (forced-colors:active){.day-pick input:checked+span{forced-color-adjust:none;background:Highlight;color:HighlightText;border-color:Highlight}.cond:has(.cond-toggle input:checked){border-left:3px solid CanvasText}}
/* a 320 px un prefisso lungo (ambiente di prova) non deve far scorrere la pagina */
.slug-row{flex-wrap:wrap}.slug-row .input{min-width:0;flex:1 1 140px}
