/* ============================================================
   GESTIONALE v3 — Design system «Tasca» (restyling 2026-08-28)
   Direzione approvata: B «Tasca» (Revolut) + rail a icone di «Aria».
   Specifica: Desktop\restyling v3\tavole\KIT.md + canvas
   https://claude.ai/code/artifact/11a20883-d9dd-4c8a-8837-5139e134e3c8
   Convivenza col tema «Clinica»: tutte le classi hanno prefisso tk-
   e i token prefisso --tk-. Le viste migrano una alla volta.
   ============================================================ */

:root, [data-theme="light"]{
  --tk-bg:#F3F4F7; --tk-card:#FFFFFF; --tk-chip:#EDEEF3;
  --tk-sep:rgba(16,17,25,.06); --tk-line:rgba(16,17,25,.08); --tk-line-2:rgba(16,17,25,.08); --tk-line-3:rgba(16,17,25,.10);
  --tk-fg:#15161C; --tk-fg2:#666C7C; --tk-fg3:#8B90A0;
  --tk-accent:#5B5FEF; --tk-accent-14:rgba(91,95,239,.10); --tk-accent-16:rgba(91,95,239,.12); --tk-accent-18:rgba(91,95,239,.14);
  --tk-verde:#0FA958; --tk-verde-soft:rgba(15,169,88,.12);
  --tk-rosso:#E5484D; --tk-rosso-14:rgba(229,72,77,.10); --tk-rosso-16:rgba(229,72,77,.12);
  --tk-ambra:#DD8500; --tk-ambra-14:rgba(221,133,0,.10); --tk-ambra-16:rgba(221,133,0,.12);
  --tk-ciano:#0D9BD8; --tk-ciano-14:rgba(13,155,216,.10); --tk-ciano-16:rgba(13,155,216,.12);
  --tk-viola:#6929C4; --tk-viola-soft:rgba(105,41,196,.12);
  --tk-grad:linear-gradient(135deg,#4E5BF2,#8B5CF6);
  --tk-grad-eroe:linear-gradient(135deg,#4E5BF2 0%,#7350F3 55%,#8B5CF6 100%);
  --tk-avatar-grad:linear-gradient(135deg,#E7E8EF,#DDDFE8);
}
[data-theme="dark"]{
  --tk-bg:#0D0E12; --tk-card:#17181E; --tk-chip:#1D1F26;
  --tk-sep:rgba(255,255,255,.05); --tk-line:rgba(255,255,255,.06); --tk-line-2:rgba(255,255,255,.07); --tk-line-3:rgba(255,255,255,.08);
  --tk-fg:#F2F3F7; --tk-fg2:#9BA0AE; --tk-fg3:#6B7080;
  --tk-accent:#9DA0FF; --tk-accent-14:rgba(157,160,255,.14); --tk-accent-16:rgba(157,160,255,.16); --tk-accent-18:rgba(157,160,255,.18);
  --tk-verde:#3ADB84; --tk-verde-soft:rgba(58,219,132,.16);
  --tk-rosso:#FF5C67; --tk-rosso-14:rgba(255,92,103,.14); --tk-rosso-16:rgba(255,92,103,.16);
  --tk-ambra:#FFB13D; --tk-ambra-14:rgba(255,177,61,.14); --tk-ambra-16:rgba(255,177,61,.16);
  --tk-ciano:#4ECBFF; --tk-ciano-14:rgba(78,203,255,.14); --tk-ciano-16:rgba(78,203,255,.16);
  --tk-viola:#B794FF; --tk-viola-soft:rgba(139,92,246,.18);
  --tk-avatar-grad:linear-gradient(135deg,#2A2C36,#1D1F26);
}

/* ─── Layout «Tasca 2560» (tavolazza 2026-08-29): sidebar 240px con etichette
       + colonna centrale + pannello contesto 430px a destra ─── */
.tk-layout{display:grid;grid-template-columns:240px minmax(0,1fr) 430px;min-height:100vh;background:var(--tk-bg);transition:background .25s}
.tk-layout.senza-pan{grid-template-columns:240px minmax(0,1fr)}
.tk-layout .main{min-width:0;grid-column:2}
.tk-side{grid-column:1;grid-row:1 / span 9}
.tk-pan{grid-column:3;grid-row:1 / span 9}

.tk-side{width:240px;flex-shrink:0;position:sticky;top:0;height:100vh;box-sizing:border-box;
  display:flex;flex-direction:column;gap:3px;padding:26px 16px 22px;
  background:var(--tk-bg);border-right:1px solid var(--tk-line);transition:background .25s,border-color .25s}
.tk-side-testa{display:flex;align-items:center;gap:12px;padding:0 10px 0 6px;margin-bottom:24px}
.tk-logo{width:42px;height:42px;border-radius:99px;background:#FFFFFF;border:1px solid var(--tk-line-2);
  display:grid;place-items:center;flex-shrink:0;overflow:hidden;box-sizing:border-box}
.tk-logo img{width:84%;height:auto;display:block}
.tk-side-testa .chi{min-width:0}
.tk-side-testa .chi b{display:block;font-size:15.5px;font-weight:700;letter-spacing:-.01em;color:var(--tk-fg);white-space:nowrap}
.tk-side-testa .chi span{display:block;font-size:11.5px;color:var(--tk-fg3);margin-top:1px;white-space:nowrap}
.tk-side .nav-item{display:flex;align-items:center;gap:13px;height:46px;padding:0 14px;border-radius:14px;
  border:none;background:transparent;color:var(--tk-fg2);font-size:14.5px;font-weight:600;font-family:inherit;
  cursor:pointer;box-sizing:border-box;text-align:left;white-space:nowrap;width:100%;
  transition:background .15s,color .15s}
.tk-side .nav-item svg{width:20px;height:20px;flex-shrink:0}
.tk-side .nav-item:hover{background:var(--tk-chip);color:var(--tk-fg)}
.tk-side .nav-item.active{background:var(--tk-accent-14);color:var(--tk-accent)}
.tk-side .nav-item .puntino{margin-left:auto;width:8px;height:8px;border-radius:99px;background:var(--tk-rosso);flex-shrink:0}
/* intestazioni dei gruppi della sidebar — «Gestione», «Amministrazione» (demo navbar-gruppi.html,
   variante 1 «Etichetta discreta»): stesso maiuscoletto dei gruppi dentro le card */
.tk-side-grp{font-size:11px;font-weight:700;letter-spacing:.09em;text-transform:uppercase;color:var(--tk-fg3);
  padding:18px 14px 6px;white-space:nowrap}
.tk-utente-card{margin-top:auto;display:flex;align-items:center;gap:12px;padding:10px 12px;border-radius:16px;
  background:var(--tk-card);border:1px solid var(--tk-line);box-sizing:border-box;cursor:pointer;font-family:inherit;
  text-align:left;width:100%;transition:border-color .15s,background .25s}
.tk-utente-card:hover{border-color:var(--tk-line-3)}
.tk-avatar{width:40px;height:40px;border-radius:99px;background:var(--tk-avatar-grad);
  border:1px solid var(--tk-line-3);color:var(--tk-fg);display:grid;place-items:center;
  font-weight:700;font-size:14px;flex-shrink:0;padding:0;font-family:inherit}
.tk-utente-card .chi{min-width:0}
.tk-utente-card .chi b{display:block;font-size:14px;font-weight:700;color:var(--tk-fg);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tk-utente-card .chi span{display:block;font-size:11.5px;color:var(--tk-fg3);white-space:nowrap}

/* pannello contesto a destra (430px), per-vista: sezioni .tk-pan-sez, titoli .pan-tit,
   blocco ancorato in fondo = .tk-pan-sez.fondo */
.tk-pan{width:430px;flex-shrink:0;box-sizing:border-box;position:sticky;top:0;height:100vh;overflow-y:auto;
  border-left:1px solid var(--tk-line);padding:32px 32px 34px;display:flex;flex-direction:column;gap:10px;
  background:var(--tk-bg);transition:background .25s,border-color .25s;scrollbar-width:thin}
.tk-pan:empty{display:none}
.tk-pan-sez{display:flex;flex-direction:column;gap:10px}
.tk-pan-sez + .tk-pan-sez{margin-top:14px}
.tk-pan-sez.fondo{margin-top:auto;border-top:1px solid var(--tk-line);padding-top:18px}
.pan-tit{display:flex;align-items:center;gap:9px;font-size:12px;font-weight:700;letter-spacing:.09em;
  text-transform:uppercase;color:var(--tk-fg3)}
.tk-cnt{font-size:12.5px;font-weight:700;border-radius:99px;padding:2px 10px;letter-spacing:0}
.pan-tit .tk-link{margin-left:auto;letter-spacing:0;text-transform:none;font-size:13px}
.tk-pan .tk-piede{margin-top:0}

/* ─── Vista in stile Tasca (contenitore) ─── */
.tk-vista{font-family:'Onest',system-ui,sans-serif;color:var(--tk-fg);display:flex;flex-direction:column;gap:24px}
.tk-num{font-family:'Space Grotesk','Onest',system-ui,sans-serif;font-variant-numeric:tabular-nums}
/* z-index proprio: le animazioni d'ingresso (fill both) fanno di ogni blocco della vista uno
   stacking context, e le card dopo la testata coprirebbero la tendina avvisi e la cerca globale */
.tk-top{display:flex;align-items:center;gap:16px;position:relative;z-index:50}
.tk-top h1{font-size:27px;font-weight:700;margin:0;letter-spacing:-.01em}
.tk-top .sotto{font-size:13.5px;color:var(--tk-fg2);margin-top:2px}
.tk-top .theme-switch{background:var(--tk-card);border-color:var(--tk-line-2)}
.tk-top .theme-switch button{color:var(--tk-fg3)}
.tk-top .theme-switch button.on{background:var(--tk-accent-18);color:var(--tk-accent)}

/* ─── Card ─── */
.tk-kard{background:var(--tk-card);border:1px solid var(--tk-line);border-radius:22px;box-sizing:border-box;
  transition:background .25s,border-color .25s}
.tk-kard.tk-clic{cursor:pointer;transition:transform .15s,border-color .15s,background .25s}
.tk-kard.tk-clic:hover{transform:translateY(-2px);border-color:var(--tk-accent)}
.tk-grad-card{background:var(--tk-grad-eroe);border-radius:24px;padding:30px 34px;box-sizing:border-box;
  color:#FFFFFF;position:relative;overflow:hidden;cursor:pointer;transition:transform .18s,box-shadow .18s}
.tk-grad-card:hover{transform:translateY(-3px);box-shadow:0 18px 44px -18px rgba(78,91,242,.55)}
.tk-grad-card .cer1{position:absolute;right:-40px;top:-50px;width:240px;height:240px;border-radius:99px;background:rgba(255,255,255,.10);animation:tk-fluttua 9s ease-in-out infinite}
.tk-grad-card .cer2{position:absolute;right:40px;bottom:-80px;width:180px;height:180px;border-radius:99px;background:rgba(255,255,255,.07);animation:tk-fluttua 12s ease-in-out infinite reverse}
.tk-k-lbl{font-size:14px;font-weight:600;color:var(--tk-fg2)}
.tk-k-val{font-size:36px;font-weight:700;margin-top:6px;line-height:1.15}
.tk-k-sub{font-size:13.5px;color:var(--tk-fg2);margin-top:4px}
.tk-eroe{display:grid;grid-template-columns:1.6fr 1fr 1fr 1fr;gap:22px}
.tk-eroe .tk-kard{padding:26px 28px;display:flex;flex-direction:column}

/* ─── Pillole e chip ─── */
.tk-pill{display:inline-flex;align-items:center;gap:8px;font-size:13px;font-weight:700;
  padding:8px 15px;border-radius:99px;background:var(--tk-chip);border:1px solid var(--tk-line-3);
  color:var(--tk-fg);cursor:pointer;font-family:inherit;white-space:nowrap;
  transition:transform .15s,border-color .15s,filter .15s}
.tk-pill:hover{transform:translateY(-1px);border-color:var(--tk-line-3);filter:brightness(1.06)}
.tk-pill:active{transform:translateY(0)}
.tk-chip{display:inline-block;font-size:13px;font-weight:700;padding:5px 12px;border-radius:99px;
  background:var(--tk-chip);color:var(--tk-fg);white-space:nowrap}
.tk-t-accent{background:var(--tk-accent-14);color:var(--tk-accent)}
.tk-t-verde{background:var(--tk-verde-soft);color:var(--tk-verde)}
.tk-t-rosso{background:var(--tk-rosso-14);color:var(--tk-rosso)}
.tk-t-rosso16{background:var(--tk-rosso-16);color:var(--tk-rosso)}
.tk-t-ambra{background:var(--tk-ambra-14);color:var(--tk-ambra)}
.tk-t-ciano{background:var(--tk-ciano-14);color:var(--tk-ciano)}
.tk-t-viola{background:var(--tk-viola-soft);color:var(--tk-viola)}
.tk-link{font-size:13.5px;font-weight:600;color:var(--tk-accent);cursor:pointer;background:none;border:none;padding:0;font-family:inherit}

/* ─── Azioni rapide rotonde ─── */
.tk-azioni{display:flex;gap:10px;padding:2px 0}
.tk-azione{display:flex;flex-direction:column;align-items:center;gap:9px;width:106px;
  background:none;border:none;padding:0;cursor:pointer;font-family:inherit}
.tk-pallino{width:60px;height:60px;border-radius:99px;background:var(--tk-chip);
  border:1px solid var(--tk-line-2);display:grid;place-items:center;color:var(--tk-fg);
  transition:transform .18s,box-shadow .18s,border-color .18s}
.tk-azione:hover .tk-pallino{transform:translateY(-3px);border-color:var(--tk-accent);box-shadow:0 10px 26px -14px rgba(9,10,16,.5)}
.tk-azione:active .tk-pallino{transform:translateY(-1px)}
.tk-azione.primaria .tk-pallino{background:var(--tk-grad);border:none;color:#FFFFFF}
.tk-azione:hover.primaria .tk-pallino,.tk-azione.primaria:hover .tk-pallino{box-shadow:0 12px 30px -12px rgba(78,91,242,.6)}
.tk-azione .et{font-size:13px;font-weight:500;color:var(--tk-fg2);text-align:center;line-height:1.25}
.tk-azione.primaria .et{color:var(--tk-fg)}

/* ─── Righe «movimenti» e «da gestire» ─── */
.tk-due{display:grid;grid-template-columns:1.1fr 1fr;gap:22px}
.tk-testa-card{display:flex;align-items:baseline;gap:10px;margin-bottom:6px}
.tk-testa-card b{font-size:17px;font-weight:700}
.tk-mov{display:flex;align-items:center;gap:15px;padding:13px 12px;margin:0 -12px;border-radius:14px;cursor:pointer;transition:background .15s}
.tk-mov + .tk-mov{border-top:1px solid var(--tk-sep)}
.tk-mov:hover{background:var(--tk-chip)}
.tk-avv{width:44px;height:44px;border-radius:99px;display:grid;place-items:center;font-weight:700;font-size:14px;flex-shrink:0}
.tk-mov .chi{font-size:15.5px;font-weight:600;color:var(--tk-fg)}
.tk-mov .come{font-size:13.5px;color:var(--tk-fg2);margin-top:2px}
.tk-mov .qta{font-size:16.5px;font-weight:700;color:var(--tk-verde);margin-left:auto;white-space:nowrap}
.tk-dg{display:flex;align-items:center;gap:15px;padding:12px;margin:0 -12px;border-radius:14px;cursor:pointer;transition:background .15s}
.tk-dg + .tk-dg{border-top:1px solid var(--tk-sep)}
.tk-dg:hover{background:var(--tk-chip)}
.tk-tile{width:44px;height:44px;border-radius:14px;display:grid;place-items:center;flex-shrink:0}
.tk-tile svg{width:20px;height:20px}
.tk-dg .t{font-size:15px;font-weight:600;color:var(--tk-fg)}
.tk-dg .s{font-size:13.5px;color:var(--tk-fg2);margin-top:2px}
.tk-vuoto{color:var(--tk-fg3);font-size:13px;padding:10px 0}
.tk-badge{font-size:12px;font-weight:700;border-radius:99px;padding:2px 9px}

/* ─── Contatori in riga (tile + numero grande + etichetta) ─── */

/* ─── Etichetta di gruppo (MATTINA / POMERIGGIO / UFFICIO…) ─── */
.tk-gruppo{font-size:11px;font-weight:700;letter-spacing:.09em;text-transform:uppercase;color:var(--tk-fg3);padding:8px 0 2px}

/* ─── Varianti delle pillole ─── */
.tk-pill.mini{padding:6px 12px;font-size:12px;gap:6px}
.tk-pill.on{background:var(--tk-accent-14);border-color:transparent;color:var(--tk-accent)}
.tk-pill-grad{background:var(--tk-grad);border:1px solid transparent;color:#FFFFFF}
.tk-pill-verde{background:var(--tk-verde-soft);border-color:transparent;color:var(--tk-verde)}
.tk-pill-rossa{background:var(--tk-rosso-14);border-color:transparent;color:var(--tk-rosso)}
.tk-pill svg{flex-shrink:0}

/* ─── Casella di ricerca a pillola ─── */
.tk-cerca{display:flex;align-items:center;gap:8px;background:var(--tk-card);border:1px solid var(--tk-line-2);
  border-radius:99px;padding:8px 16px;width:260px;color:var(--tk-fg3);box-sizing:border-box}
.tk-cerca input{border:none;background:none;outline:none;color:var(--tk-fg);font-size:13px;font-family:inherit;width:100%;padding:0;min-width:0}
.tk-cerca input::placeholder{color:var(--tk-fg3)}

/* ─── Piede delle card (riassunto sotto la riga di separazione) ─── */
.tk-piede{margin-top:auto;border-top:1px solid var(--tk-sep);padding-top:14px;font-size:13.5px;color:var(--tk-fg2);display:flex;align-items:baseline;gap:10px}

/* ─── Righe dell'elenco noleggi (tavola Noleggi) ─── */
.tk-gg{width:50px;height:50px;border-radius:14px;display:flex;flex-direction:column;align-items:center;justify-content:center;flex-shrink:0;background:var(--tk-chip);color:var(--tk-fg2)}
.tk-gg b{font-size:17px;font-weight:700;line-height:1}
.tk-gg small{font-size:10px;font-weight:600;opacity:.8;line-height:1.6}
.tk-gg svg{width:19px;height:19px}
.tk-icobtn{width:34px;height:34px;border-radius:99px;background:var(--tk-chip);border:1px solid var(--tk-line-2);
  color:var(--tk-fg2);display:grid;place-items:center;cursor:pointer;padding:0}
.tk-icobtn:hover{color:var(--tk-accent);border-color:var(--tk-accent)}
.tk-sel{width:22px;height:22px;border-radius:99px;border:1.5px solid var(--tk-line-3);background:transparent;
  color:transparent;display:grid;place-items:center;cursor:pointer;flex-shrink:0;padding:0}
.tk-sel svg{width:12px;height:12px}
.tk-sel.on{background:var(--tk-accent);border-color:var(--tk-accent);color:#FFFFFF}

/* ─── Fascicolo: eroe con statistiche, griglia a 3 colonne, timeline, voci del conto ─── */
.tk-tre{display:grid;grid-template-columns:1fr 1fr 1fr;gap:22px;align-items:start}
.tk-hero-stats{margin-left:auto;display:flex;align-items:center}
.tk-hero-stats .st{display:flex;flex-direction:column;gap:4px;padding:0 34px}
.tk-hero-stats .st:first-child{padding-left:0}
.tk-hero-stats .st:last-child{padding-right:0}
.tk-hero-stats .st + .st{border-left:1px solid var(--tk-line)}
.tk-hero-stats .eti{font-size:13px;font-weight:600;color:var(--tk-fg2)}
.tk-hero-stats .vl{font-size:32px;font-weight:700;white-space:nowrap}
.tk-tl{display:flex;flex-direction:column;gap:26px;border-left:1px solid var(--tk-line-3);margin-left:8px}
.tk-ev{position:relative;padding-left:24px}
.tk-ev .dot{position:absolute;left:-7px;top:4px;width:12px;height:12px;border-radius:99px;background:var(--tk-accent)}
.tk-ev .dot.vuoto{background:var(--tk-card);border:2px solid var(--tk-ambra);box-sizing:border-box}
.tk-ev .te{font-size:15px;font-weight:600;color:var(--tk-fg)}
.tk-ev .se{font-size:13.5px;color:var(--tk-fg2);margin-top:2px}
@keyframes tk-ev-in{from{opacity:0;transform:translateY(5px)}to{opacity:1;transform:none}}
.tk-tl .tk-ev{animation:tk-ev-in .4s cubic-bezier(.2,.7,.3,1) both}
.tk-tl .tk-ev:nth-child(2){animation-delay:.05s}.tk-tl .tk-ev:nth-child(3){animation-delay:.1s}
.tk-tl .tk-ev:nth-child(4){animation-delay:.15s}.tk-tl .tk-ev:nth-child(5){animation-delay:.2s}
.tk-tl .tk-ev:nth-child(n+6){animation-delay:.25s}
@media (prefers-reduced-motion:reduce){ .tk-tl .tk-ev{animation:none} }
.tk-voce{display:flex;align-items:center;gap:10px;padding:8px 0;font-size:13px}
.tk-voce + .tk-voce{border-top:1px solid var(--tk-sep)}
.tk-voce .txt{flex:1;min-width:0;color:var(--tk-fg2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tk-voce .imp{font-weight:700;white-space:nowrap}
/* comando «disfa» dentro una voce del conto (annullare una proroga): scolorito finché non lo si
   sfiora, così non ruba l'occhio agli importi; da spento resta pallido e il perché sta nel title */
.tk-voce .disfa{flex:none;display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;
  margin:-3px 0;padding:0;border:0;border-radius:8px;background:transparent;color:var(--tk-fg3);cursor:pointer;
  transition:background .15s,color .15s}
.tk-voce .disfa:hover:not(:disabled),.tk-voce .disfa:focus-visible{background:var(--tk-ambra-14);color:var(--tk-ambra)}
.tk-voce .disfa:disabled{opacity:.3;cursor:not-allowed}
.tk-nota-bolla{display:flex;gap:10px;align-items:flex-end}
.tk-nota-bolla .bolla{background:var(--tk-chip);border:1px solid var(--tk-line);border-radius:16px;border-bottom-left-radius:6px;
  padding:9px 13px;font-size:13px;color:var(--tk-fg)}
.tk-nota-bolla.mia{flex-direction:row-reverse}
.tk-nota-bolla.mia .bolla{background:var(--tk-accent-16);border-color:var(--tk-accent-18);border-bottom-left-radius:16px;border-bottom-right-radius:6px}
.tk-nota-bolla .ora{font-size:11px;color:var(--tk-fg3);margin-top:3px}
@media (max-width:1280px){ .tk-tre{grid-template-columns:1fr 1fr} }
@media (max-width:1000px){ .tk-tre{grid-template-columns:1fr} .tk-hero-stats{margin-left:0;flex-wrap:wrap} }

/* ─── Clienti: righe della rubrica, anagrafica, mini-card noleggio ─── */
.tk-cli{display:flex;align-items:center;gap:14px;padding:8px 0;min-height:44px;cursor:pointer}
.tk-cli + .tk-cli{border-top:1px solid var(--tk-sep)}
.tk-cli .chi{font-size:14.5px;font-weight:600;color:var(--tk-fg)}
.tk-cli .dove{font-size:13px;font-weight:500;color:var(--tk-fg2)}
.tk-cli .come{font-size:12.5px;color:var(--tk-fg2);margin-top:2px}
.tk-cli .saldo{font-size:15px;font-weight:700;min-width:64px;text-align:right;flex-shrink:0}
.tk-cli .az{display:flex;gap:6px;align-items:center;flex-shrink:0}
.tk-icobtn.p{width:32px;height:32px}
.tk-icobtn.p svg{width:15px;height:15px}
.tk-fase{font-size:11.5px;font-weight:700;padding:3px 10px;border-radius:99px;background:var(--tk-chip);color:var(--tk-fg2);white-space:nowrap}
.tk-an{display:flex;align-items:flex-start;gap:14px;padding:14px 0;font-size:15px}
.tk-an + .tk-an{border-top:1px solid var(--tk-sep)}
.tk-an .l{width:130px;flex-shrink:0;font-size:13.5px;font-weight:600;color:var(--tk-fg2);padding-top:1px}
.tk-an .v{font-size:15px;font-weight:600;color:var(--tk-fg);min-width:0;overflow-wrap:anywhere}
.tk-an .v2{font-size:13px;font-weight:500;color:var(--tk-fg3);margin-top:2px}
.tk-mini{background:var(--tk-chip);border:1px solid var(--tk-line);border-radius:16px;padding:16px 18px;display:flex;flex-direction:column;gap:7px;cursor:pointer;transition:border-color .15s,transform .15s}
.tk-mini:hover{border-color:var(--tk-accent);transform:translateY(-1px)}

/* ─── Flotta: targhe, card modello ─── */
.tk-targa{display:inline-flex;align-items:center;justify-content:center;min-width:52px;padding:8px 10px;border-radius:12px;
  background:var(--tk-chip);border:1px solid var(--tk-line-2);color:var(--tk-fg);font-weight:700;font-size:13px;flex-shrink:0}
.tk-targa.grande{min-width:74px;padding:14px 14px;font-size:17px;border-radius:16px}
.tk-modcard{background:var(--tk-card);border:1px solid var(--tk-line);border-radius:22px;padding:14px 18px;box-sizing:border-box;
  text-align:left;font-family:inherit;cursor:pointer;position:relative;transition:transform .15s,border-color .15s;color:var(--tk-fg)}
.tk-modcard:hover{transform:translateY(-2px);border-color:var(--tk-accent)}
.tk-modcard.on{border-color:var(--tk-accent);background:var(--tk-accent-14)}
.tk-modcard .nome{font-size:13px;font-weight:600;color:var(--tk-fg2)}
.tk-modcard .avviso{position:absolute;top:12px;right:14px;font-size:11px;font-weight:700;color:var(--tk-rosso)}
.tk-barra{display:block;height:6px;border-radius:99px;background:var(--tk-chip);overflow:hidden}
.tk-barra i{display:block;height:100%;border-radius:99px;background:var(--tk-accent)}

/* ─── Ponte per i componenti «Clinica» non ancora migrati, dentro la shell Tasca:
       i token storici vengono rimappati sui token tk-, così pannelli e modali interni
       (studio Messaggi, Report, Impostazioni, wizard) si fondono col resto. ─── */
.tk-layout .main{
  padding:26px 48px 40px;
  font-family:'Onest',system-ui,sans-serif;
  --bg:var(--tk-bg); --surface:var(--tk-card); --surface-2:var(--tk-chip);
  --fg:var(--tk-fg); --fg-2:var(--tk-fg2); --fg-3:var(--tk-fg3);
  --border:var(--tk-line-3); --border-soft:var(--tk-line);
  --primary:var(--tk-accent); --primary-soft:var(--tk-accent-14);
  --accent:var(--tk-verde); --accent-soft:var(--tk-verde-soft);
  --warn:var(--tk-ambra); --warn-soft:var(--tk-ambra-14);
  --danger:var(--tk-rosso); --danger-soft:var(--tk-rosso-14);
  --viola:var(--tk-viola); --viola-soft:var(--tk-viola-soft);
  --info:var(--tk-ciano); --info-soft:var(--tk-ciano-14);
  --radius:18px; --shadow:none; --elev-1:none; --elev-2:none;
  --elev-3:0 10px 30px -12px rgba(0,0,0,.25);
  --chart-grid:var(--tk-sep);
}
.tk-layout .main .card{border-radius:18px;border:1px solid var(--tk-line)}
.tk-layout .main .num{font-family:'Space Grotesk','Onest',system-ui,sans-serif}

/* ─── Accesso 2560 (tavola AccessoScuro/Chiaro): due metà, brand a sinistra e card a destra ─── */
.tk-login{min-height:100vh;background:var(--tk-bg);display:flex;position:relative;
  overflow:hidden;font-family:'Onest',system-ui,sans-serif;color:var(--tk-fg);transition:background .25s}
.tk-login .tema{position:absolute;top:30px;right:36px;z-index:3}
.tk-login-sx{flex:0 0 46%;position:relative;overflow:hidden;border-right:1px solid var(--tk-line);
  display:flex;flex-direction:column;justify-content:center;padding:0 120px;box-sizing:border-box}
.tk-login-sx .alone1{position:absolute;left:-220px;top:-260px;width:720px;height:720px;border-radius:99px;background:var(--tk-grad);opacity:.14;pointer-events:none}
.tk-login-sx .alone2{position:absolute;right:-200px;bottom:-300px;width:760px;height:760px;border-radius:99px;background:var(--tk-grad);opacity:.10;pointer-events:none}
.tk-login-sx .colonna{position:relative;display:flex;flex-direction:column;gap:34px}
.tk-login-marchio{display:flex;align-items:center;gap:16px}
.tk-login-logo{width:72px;height:72px;border-radius:99px;background:var(--tk-grad);display:grid;place-items:center;font-weight:800;font-size:30px;color:#FFFFFF;flex-shrink:0}
.tk-login-marchio b{display:block;font-size:32px;font-weight:700;letter-spacing:-.01em}
.tk-login-marchio span{display:block;font-size:15px;color:var(--tk-fg2);margin-top:2px}
.tk-login-titolone{font-family:'Space Grotesk','Onest',system-ui,sans-serif;font-size:44px;font-weight:700;
  letter-spacing:-.02em;line-height:1.15;max-width:760px;margin:0}
.tk-login-punti{display:flex;flex-direction:column;gap:20px;max-width:640px}
.tk-login-punti .punto-b{display:flex;align-items:center;gap:13px;font-size:15px;color:var(--tk-fg2)}
.tk-login-punti .punto-b .tk-tile{background:var(--tk-accent-14);color:var(--tk-accent)}
.tk-login-dx{flex:1;display:flex;align-items:center;justify-content:center;position:relative;padding:20px}
.tk-login-corpo{display:flex;flex-direction:column;align-items:center;gap:28px;position:relative;
  animation:tk-su .45s cubic-bezier(.2,.7,.3,1) both}
.tk-login-marchio-mini{display:none;flex-direction:column;align-items:center;gap:12px;text-align:center}
.tk-login-card{width:min(460px,92vw);padding:36px;display:flex;flex-direction:column;gap:18px;box-sizing:border-box}
.tk-login-card h2{margin:0;font-size:23px;font-weight:700;letter-spacing:-.01em}
.tk-login-card .benv{font-size:13.5px;color:var(--tk-fg2);margin-top:3px}
.tk-etich{font-size:13.5px;font-weight:600;color:var(--tk-fg2)}
.tk-campo{display:flex;align-items:center;gap:13px;height:56px;padding:0 18px;border-radius:14px;background:var(--tk-chip);
  border:1px solid var(--tk-line-2);box-sizing:border-box;color:var(--tk-fg3)}
.tk-campo input{flex:1;border:none;background:none;outline:none;color:var(--tk-fg);font-size:15.5px;font-family:inherit;min-width:0}
.tk-campo:focus-within{border-color:var(--tk-accent)}
.tk-campo .occhio{background:none;border:none;padding:0;margin-left:auto;color:var(--tk-fg3);cursor:pointer;display:grid;place-items:center}
.tk-campo .occhio:hover{color:var(--tk-fg)}
.tk-login-btn{display:flex;align-items:center;justify-content:center;height:56px;border-radius:99px;background:var(--tk-grad);
  color:#FFFFFF;font-size:16px;font-weight:700;border:none;cursor:pointer;font-family:inherit;margin-top:8px;width:100%;transition:filter .15s}
.tk-login-btn:hover{filter:brightness(1.05)}
.tk-login-btn:disabled{opacity:.7;cursor:default}
.tk-login-errore{background:var(--tk-rosso-14);border:1px solid var(--tk-rosso-16);color:var(--tk-rosso);
  border-radius:14px;padding:11px 14px;font-size:13px;font-weight:600}
@media (max-width:1500px){ .tk-login-sx{padding:0 60px} .tk-login-titolone{font-size:36px} }
@media (max-width:1100px){
  .tk-login-sx{display:none}
  .tk-login-marchio-mini{display:flex}
  .tk-login-dx .alone1{position:absolute;left:-160px;top:-180px;width:520px;height:520px;border-radius:99px;background:var(--tk-grad);opacity:.14;pointer-events:none}
  .tk-login-dx .alone2{position:absolute;right:-140px;bottom:-220px;width:560px;height:560px;border-radius:99px;background:var(--tk-grad);opacity:.10;pointer-events:none}
}

/* ─── Skeleton di caricamento (riusa l'animazione di Clinica se c'è) ─── */
.tk-skl{background:var(--tk-chip);border-radius:10px;animation:tk-skl 1.2s ease-in-out infinite}
@keyframes tk-skl{0%,100%{opacity:.55}50%{opacity:1}}

/* ─── Adattamenti ─── */
@media (max-width:1380px){ .tk-eroe{grid-template-columns:1fr 1fr} }
@media (max-width:1100px){ .tk-due{grid-template-columns:1fr} }

/* ============================================================
   RIFINITURA 2026-08-28 (canvas «Rifinitura Tasca», scelte: dashboard A
   «Regia», noleggi A «Corsie», da gestire A «Giro del giorno», modali nuove).
   ============================================================ */

/* ─── Controllo segmentato ─── */
.tk-seg{display:inline-flex;background:var(--tk-chip);border:1px solid var(--tk-line-2);border-radius:99px;padding:4px;gap:2px}
.tk-seg .v{border:none;background:transparent;color:var(--tk-fg2);font-weight:600;font-size:13px;padding:8px 16px;
  border-radius:99px;cursor:pointer;font-family:inherit;display:inline-flex;gap:7px;align-items:center;white-space:nowrap}
.tk-seg .v.on{background:var(--tk-card);color:var(--tk-fg);box-shadow:0 1px 5px rgba(9,10,16,.10)}
.tk-seg .v .tk-num{color:var(--tk-fg3);font-weight:700}
.tk-seg .v.on .tk-num{color:var(--tk-accent)}
/* in tema notte card e traccia hanno quasi lo stesso colore: al segmento attivo serve un fondo suo */
[data-theme="dark"] .tk-seg .v.on{background:#262935;box-shadow:0 1px 4px rgba(0,0,0,.4)}

/* ─── Grafico a barre «Andamento» (Casa) ─── */
.tk-barre{display:flex;align-items:flex-end;gap:12px;height:200px;padding-top:16px}
.tk-barre .col{flex:1;display:flex;flex-direction:column;align-items:center;gap:8px;height:100%;justify-content:flex-end;min-width:0}
.tk-barre .b{width:100%;max-width:48px;border-radius:8px 8px 4px 4px;background:var(--tk-accent-14);min-height:3px;flex-shrink:0}
.tk-barre .m{font-size:11px;font-weight:600;color:var(--tk-fg3)}
.tk-barre .col.ora .m{color:var(--tk-accent);font-weight:700}

/* ─── Noleggi 2560: righe a colonne allineate con intestazioni (Giorni · Cliente · Quando · Stato · Dovuto · Saldo) ─── */
.tk-nlg-testa{display:grid;grid-template-columns:26px 50px minmax(0,1fr) 130px 150px 110px 150px;gap:16px;align-items:center;
  font-size:11.5px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--tk-fg3);padding:4px 10px 10px;margin:0 -10px;border-bottom:1px solid var(--tk-line)}
.tk-nlg-testa .c12{grid-column:1 / 3}
.tk-nlg{display:grid;grid-template-columns:26px 50px minmax(0,1fr) 130px 150px 110px 150px;gap:16px;align-items:center;
  padding:12px 10px;margin:0 -10px;border-radius:14px;cursor:pointer;position:relative}
.tk-nlg + .tk-nlg{border-top:1px solid var(--tk-sep)}
.tk-nlg:hover{background:var(--tk-chip)}
.tk-nlg.scelta,.tk-nlg.scelta:hover{background:var(--tk-accent-14)}
.tk-nlg .tk-sel{opacity:.45;transition:opacity .15s}
.tk-nlg:hover .tk-sel,.tk-nlg .tk-sel.on{opacity:1}
.tk-nlg .chi{font-size:15.5px;font-weight:600;color:var(--tk-fg);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tk-nlg .cod{font-size:13px;font-weight:600;color:var(--tk-fg3);white-space:nowrap}
.tk-nlg .sotto{font-size:13.5px;color:var(--tk-fg2);margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tk-nlg .quando{font-size:13.5px;font-weight:600;color:var(--tk-fg2);white-space:nowrap}
.tk-nlg .imp{font-size:16px;font-weight:700;color:var(--tk-fg);text-align:right;white-space:nowrap}
.tk-nlg .saldo{font-size:13.5px;font-weight:700;text-align:right;white-space:nowrap}
/* la pillola delle azioni si apre SOPRA la riga, così non copre mai Dovuto e Saldo della riga letta */
.tk-nlg .az{position:absolute;right:8px;bottom:calc(100% - 10px);z-index:3;display:none;gap:6px;align-items:center;
  padding:5px 7px;border-radius:99px;background:var(--tk-card);border:1px solid var(--tk-line-2);box-shadow:0 8px 24px -10px rgba(9,10,16,.35)}
.tk-nlg:hover .az{display:flex}
.tk-gruppo .tk-badge{margin-left:6px;letter-spacing:0}
/* chip filtro rapido (Tutti · In scadenza · In ritardo · Da consegnare · Da saldare) */
.tch{display:inline-flex;align-items:center;gap:8px;height:46px;padding:0 18px;border-radius:99px;
  background:var(--tk-chip);border:1px solid var(--tk-line-2);color:var(--tk-fg2);font-size:13.5px;font-weight:600;
  white-space:nowrap;cursor:pointer;font-family:inherit;transition:transform .15s,border-color .15s,background .2s,color .2s}
.tch:hover{transform:translateY(-1px);border-color:var(--tk-line-3)}
.tch .n{font-weight:700;color:var(--tk-fg)}
.tch.on{background:var(--tk-accent-14);border-color:var(--tk-accent-18);color:var(--tk-accent)}
.tch.on .n{color:var(--tk-accent)}
@media (max-width:1500px){
  .tk-nlg-testa,.tk-nlg{grid-template-columns:26px 50px minmax(0,1fr) 130px 110px 150px}
  .tk-nlg-testa .cst,.tk-nlg .cst{display:none}
}
@media (max-width:1240px){
  .tk-nlg-testa,.tk-nlg{grid-template-columns:26px 50px minmax(0,1fr) 110px 150px}
  .tk-nlg-testa .cq,.tk-nlg .quando{display:none}
}

/* ─── Da gestire «Giro del giorno»: tappe, settimana, avanzamento ─── */
/* (le vecchie classi del «Giro» 1440 — tk-tappa, tk-sett, tk-prog — sono uscite di scena con la tavolazza 2560) */
.tk-dg.fatta .t{color:var(--tk-fg3);text-decoration:line-through}
.tk-dg.fatta .s{color:var(--tk-fg3)}
.tk-dg.fatta .tk-tile{opacity:.55}

/* ─── Barra della selezione (Noleggi): veste Tasca, comportamento invariato ─── */
.selbar{background:var(--tk-card);border:1px solid var(--tk-line-3);border-radius:99px;
  box-shadow:0 18px 50px -12px rgba(9,10,16,.4);padding:10px 14px 10px 20px}
.selbar .conta{color:var(--tk-fg)}
.selbar .btn{border-radius:99px;background:var(--tk-grad);box-shadow:none;color:#FFFFFF}
.selbar .btn-secondario{background:var(--tk-chip);border:1px solid var(--tk-line-2);color:var(--tk-fg)}
.selbar .btn-pericolo{background:var(--tk-rosso);color:#FFFFFF}

/* ═══════════ MODALI «Tasca» ═══════════
   Un solo linguaggio per tutte: velo sfocato, angoli 26, tessera-famiglia,
   chiudi rotondo, campi a pillola, Annulla fantasma + un solo bottone pieno.
   Le famiglie: Svelta/Pericolo (.tkm), Operativa (.tkm-larga, .modale-mod),
   Guidata (.modale-nuovo), Foglio (.modale-resoconto). */
.velo{background:rgba(9,10,16,.5);backdrop-filter:blur(7px);-webkit-backdrop-filter:blur(7px)}
[data-theme="dark"] .velo{background:rgba(4,5,9,.62)}

/* ponte token: i componenti «Clinica» dentro le modali prendono i colori Tasca */
.tkm,.modale-mod,.modale-nuovo{
  --bg:var(--tk-chip); --surface:var(--tk-card); --surface-2:var(--tk-chip);
  --fg:var(--tk-fg); --fg-2:var(--tk-fg2); --fg-3:var(--tk-fg3);
  --border:var(--tk-line-3); --border-soft:var(--tk-line);
  --primary:var(--tk-accent); --primary-soft:var(--tk-accent-14);
  --accent:var(--tk-verde); --accent-soft:var(--tk-verde-soft);
  --warn:var(--tk-ambra); --warn-soft:var(--tk-ambra-14);
  --danger:var(--tk-rosso); --danger-soft:var(--tk-rosso-14);
  --viola:var(--tk-viola); --viola-soft:var(--tk-viola-soft);
  --info:var(--tk-ciano); --info-soft:var(--tk-ciano-14);
  --ring:var(--tk-accent);
  font-family:'Onest',system-ui,sans-serif;color:var(--tk-fg)}
.modale-mod,.modale-nuovo{background:var(--tk-card);border-color:var(--tk-line);border-radius:26px;
  box-shadow:0 30px 90px -18px rgba(5,6,12,.55)}

.tkm{background:var(--tk-card);border:1px solid var(--tk-line);border-radius:26px;width:100%;max-width:460px;
  max-height:92vh;display:flex;flex-direction:column;overflow:hidden;box-shadow:0 30px 90px -18px rgba(5,6,12,.55)}
.tkm-larga{max-width:640px}
.tkm-testa{display:flex;align-items:flex-start;gap:14px;padding:22px 24px 16px;flex-shrink:0}
.tkm-testa .tk-tile{width:44px;height:44px;border-radius:16px}
.tkm-testa .tk-tile svg{width:21px;height:21px}
.tkm-testa h3{margin:0;font-size:18px;font-weight:700;line-height:1.25}
.tkm-testa .sotto{font-size:12.5px;color:var(--tk-fg2);margin-top:3px}
.tkm-x{margin-left:auto;width:34px;height:34px;border-radius:99px;background:var(--tk-chip);border:1px solid var(--tk-line-2);
  color:var(--tk-fg2);display:grid;place-items:center;cursor:pointer;padding:0;flex-shrink:0}
.tkm-x:hover{color:var(--tk-fg)}
.tkm .m-corpo{padding:0 24px 22px;overflow-y:auto}

/* campi e bottoni delle modali in veste Tasca (markup «Clinica» invariato) */
.tkm .campo label{font-size:12.5px;color:var(--tk-fg2);margin-bottom:7px}
.tkm .campo input,.tkm .campo select,.tkm .campo textarea{background:var(--tk-chip);border:1px solid var(--tk-line-2);
  border-radius:14px;padding:13px 16px;font-size:14.5px;font-weight:600;color:var(--tk-fg)}
.tkm .campo input:focus,.tkm .campo select:focus,.tkm .campo textarea:focus{border-color:var(--tk-accent);
  background:var(--tk-card);box-shadow:0 0 0 3px var(--tk-accent-14);outline:none}
.tkm .m-azioni{display:flex;gap:12px;margin-top:20px;justify-content:stretch}
.tkm .m-azioni .btn{flex:1;height:48px;border-radius:99px;background:var(--tk-grad);color:#FFFFFF;
  font-size:15px;font-weight:700;box-shadow:none;padding:0 20px}
.tkm .m-azioni .btn:hover{filter:brightness(1.05);transform:none}
.tkm .m-azioni .btn-secondario{flex:0 0 auto;background:transparent;border:1px solid var(--tk-line-3);color:var(--tk-fg2)}
.tkm .m-azioni .btn-pericolo,.tkm .btn-pericolo{background:var(--tk-rosso);color:#FFFFFF}
.tkm .scelta-blocco label{border-radius:14px}
.tkm .scelta-blocchetto{border-radius:14px;background:var(--tk-card)}
.tkm .scelta-blocchetto.on{border-color:var(--tk-accent);background:var(--tk-accent-14);color:var(--tk-accent)}

/* pezzi nuovi dentro le modali: pillole rapide, riepilogo a righe, avviso */
.tkm-rapide{display:flex;gap:8px;flex-wrap:wrap}
.tkm-riep{background:var(--tk-chip);border-radius:16px;padding:13px 16px;margin-bottom:16px}
.tkm-riep .r{display:flex;align-items:baseline;gap:10px;font-size:13px;color:var(--tk-fg2);padding:3px 0}
.tkm-riep .r .v{margin-left:auto;font-weight:700;color:var(--tk-fg)}
.tkm-riep .r.tot{border-top:1px solid var(--tk-line-3);margin-top:6px;padding-top:9px;font-weight:700;color:var(--tk-fg)}
.tkm-avviso{border-radius:16px;padding:13px 16px;font-size:13px;font-weight:600;line-height:1.45;margin-bottom:16px}

/* Operativa grande e Guidata: linguette a pillola, passi e piedi in tono */
.mm-tabs{border-bottom:none;gap:6px;padding-bottom:4px}
.mm-tab{border-bottom:none;border-radius:99px;padding:8px 14px;margin-bottom:0}
.mm-tab:hover{background:var(--tk-chip)}
.mm-tab.on{background:var(--tk-accent-14);color:var(--tk-accent)}
.mm-chiudi,.mn-chiudi{border-radius:99px;background:var(--tk-chip);border:1px solid var(--tk-line-2);color:var(--tk-fg2)}
.mm-piede .btn,.mn-piede .btn,.selbar-modale .btn{border-radius:99px}
.passo .cerchio{border-width:2px}
.passo.ora .cerchio{border-color:var(--tk-accent);background:var(--tk-accent);box-shadow:0 0 0 5px var(--tk-accent-14)}
.passo.fatto::before{background:var(--tk-verde)}
.passo.fatto .cerchio{border-color:var(--tk-verde);background:var(--tk-verde)}

/* ─── Guidata: controlli passo per passo (2026-08-30) ───
   Il messaggio sta SOTTO il campo che l'ha provocato e la casella si tinge di rosso: prima
   l'errore era un toast che volava via e si scopriva tutto insieme al «Crea il noleggio».
   Tutto su token, quindi si legge sia di giorno sia di notte. */
.modale-nuovo .avviso-errore.mn-err{margin:7px 0 0;padding:7px 11px;border-radius:10px;
  font-size:12px;font-weight:600;line-height:1.4}
.modale-nuovo .campo-errato,
.modale-nuovo input.campo-errato,.modale-nuovo select.campo-errato,.modale-nuovo textarea.campo-errato{
  border-color:var(--tk-rosso);box-shadow:0 0 0 3px var(--tk-rosso-14)}
.modale-nuovo .campo-errato:focus{border-color:var(--tk-rosso);box-shadow:0 0 0 3px var(--tk-rosso-16)}
/* codice fiscale (o email) già in anagrafica: avvisa, non blocca, e offre quel cliente */
.modale-nuovo .mn-avviso-cli{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-top:7px;
  padding:10px 12px;border-radius:12px;background:var(--tk-ambra-14);color:var(--tk-ambra);
  font-size:12px;font-weight:600;line-height:1.4}
.modale-nuovo .mn-avviso-cli span{flex:1;min-width:180px}
.modale-nuovo .mn-avviso-cli .btn{flex-shrink:0;border-radius:99px;background:var(--tk-ambra);color:#1A1206;
  box-shadow:none;font-size:12px;font-weight:700;padding:7px 14px}
.modale-nuovo .mn-avviso-cli .btn:hover{filter:brightness(1.06);transform:none}
/* al posto del bottone, quando quel cliente non si può adottare (disattivato in anagrafica):
   deve leggersi come una risposta, non come un'altra riga di testo qualsiasi */
.modale-nuovo .mn-avviso-cli .mn-avviso-no{flex:none;min-width:0;font-weight:800;
  padding:7px 12px;border-radius:99px;background:var(--tk-ambra-14);border:1px solid var(--tk-ambra)}
/* Lo stesso codice fiscale (o email, o partita IVA) è invece un ERRORE: l'indice unico rifiuterebbe
   il salvataggio e premere «Avanti» un'altra volta non serve a niente. Ma è un errore che porta con
   sé la soluzione, quindi tiene accanto lo stesso bottone dell'avviso ambra: stessa forma, tinta
   rossa, perché di là si prosegue lo stesso e di qua no. Inchiostro scuro sulla pastiglia accesa,
   come sopra: si legge sia di giorno sia di notte. */
.modale-nuovo .avviso-errore.mn-err-dup{display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:10px 12px}
.modale-nuovo .mn-err-dup>span{flex:1;min-width:180px}
.modale-nuovo .mn-err-dup .btn{flex-shrink:0;border-radius:99px;background:var(--tk-rosso);color:#2B0A0C;
  box-shadow:none;font-size:12px;font-weight:700;padding:7px 14px}
.modale-nuovo .mn-err-dup .btn:hover{filter:brightness(1.06);transform:none}
.modale-nuovo .mn-err-dup .mn-avviso-no{flex:none;min-width:0;font-weight:800;
  padding:7px 12px;border-radius:99px;background:var(--tk-rosso-14);border:1px solid var(--tk-rosso)}

/* su schermi stretti la Svelta scivola dal basso a foglio */
@media (max-width:640px){
  .velo{padding:0;display:flex;align-items:flex-end;justify-content:center}
  .velo .tkm{max-width:none;border-radius:26px 26px 0 0;max-height:94vh}
  .velo .modale-mod,.velo .modale-nuovo{border-radius:26px 26px 0 0;max-height:94vh;align-self:flex-end}
}

/* in stampa (Resoconto) il velo nuovo non deve lasciare tracce: niente fondo scuro, blur o ombra */
@media print{
  .velo-resoconto,[data-theme="dark"] .velo-resoconto{background:transparent;backdrop-filter:none;-webkit-backdrop-filter:none}
  .modale-resoconto{box-shadow:none;border-radius:0}
}

/* ============================================================
   TAVOLAZZA «TASCA 2560» (2026-08-29) — topbar con cerca globale
   e campanella, animazioni, tabelle interattive, responsive.
   ============================================================ */

/* ─── Topbar: cerca globale (340px) ─── */
.tk-cerca-glob{position:relative}
.tk-cerca-glob .campo{display:flex;align-items:center;gap:9px;background:var(--tk-card);border:1px solid var(--tk-line-2);
  border-radius:99px;padding:10px 18px;width:340px;color:var(--tk-fg3);font-size:14px;box-sizing:border-box;
  transition:border-color .18s,box-shadow .18s,width .25s ease}
.tk-cerca-glob .campo:focus-within{border-color:var(--tk-accent);box-shadow:0 0 0 3px var(--tk-accent-14);width:400px}
.tk-cerca-glob input{border:none;background:none;outline:none;color:var(--tk-fg);font-size:14px;font-family:inherit;flex:1;padding:0;min-width:0}
.tk-cerca-glob input::placeholder{color:var(--tk-fg3)}
.tk-cerca-esiti{position:absolute;top:calc(100% + 8px);right:0;width:430px;max-height:420px;overflow-y:auto;z-index:60;
  background:var(--tk-card);border:1px solid var(--tk-line-3);border-radius:20px;padding:10px;
  box-shadow:0 24px 60px -18px rgba(5,6,12,.5);animation:tk-pop .18s cubic-bezier(.2,.7,.3,1.1) both}
.tk-cerca-esiti .tk-gruppo{padding:8px 10px 4px}
.tk-cerca-esiti .esito{display:flex;align-items:center;gap:12px;padding:9px 10px;border-radius:14px;cursor:pointer;width:100%;
  background:none;border:none;font-family:inherit;text-align:left;color:var(--tk-fg)}
.tk-cerca-esiti .esito:hover,.tk-cerca-esiti .esito.su{background:var(--tk-chip)}
.tk-cerca-esiti .esito .t{font-size:14px;font-weight:600;color:var(--tk-fg)}
.tk-cerca-esiti .esito .s{font-size:12.5px;color:var(--tk-fg2);margin-top:1px}
.tk-cerca-esiti .niente{padding:14px 12px;font-size:13px;color:var(--tk-fg3)}

/* ─── Topbar: campanella con pallino ─── */
.tk-campana{position:relative;width:44px;height:44px;border-radius:99px;background:var(--tk-card);border:1px solid var(--tk-line-2);
  display:grid;place-items:center;color:var(--tk-fg2);cursor:pointer;padding:0;flex-shrink:0;transition:color .15s,border-color .15s,transform .15s}
.tk-campana:hover{color:var(--tk-fg);border-color:var(--tk-line-3);transform:translateY(-1px)}
.tk-campana .pallino-avviso{position:absolute;top:9px;right:10px;width:8px;height:8px;border-radius:99px;background:var(--tk-rosso);
  border:1.5px solid var(--tk-bg);animation:tk-batti 2.2s ease-in-out infinite}
.tk-avvisi-pop{position:absolute;top:calc(100% + 8px);right:0;width:400px;max-height:460px;overflow-y:auto;z-index:60;
  background:var(--tk-card);border:1px solid var(--tk-line-3);border-radius:20px;padding:14px;
  box-shadow:0 24px 60px -18px rgba(5,6,12,.5);animation:tk-pop .18s cubic-bezier(.2,.7,.3,1.1) both}
.tk-campana-avvolgi{position:relative}

/* ─── Intestazioni colonna ordinabili (tabelle interattive) ─── */
.tk-ord{cursor:pointer;user-select:none;display:inline-flex;align-items:center;gap:4px;background:none;border:none;
  padding:0;font:inherit;color:inherit;letter-spacing:inherit;text-transform:inherit;transition:color .15s}
.tk-ord:hover{color:var(--tk-fg)}
.tk-ord .fr{width:0;height:0;border-left:4px solid transparent;border-right:4px solid transparent;opacity:0;transition:opacity .15s,transform .15s}
.tk-ord.su .fr{opacity:1;border-bottom:5px solid var(--tk-accent)}
.tk-ord.giu .fr{opacity:1;border-top:5px solid var(--tk-accent)}
.tk-ord.su,.tk-ord.giu{color:var(--tk-accent)}

/* ─── Animazioni d'ingresso e di vita ─── */
@keyframes tk-su{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
@keyframes tk-pop{from{opacity:0;transform:translateY(-6px) scale(.98)}to{opacity:1;transform:none}}
@keyframes tk-fluttua{0%,100%{transform:translate(0,0)}50%{transform:translate(-14px,10px)}}
@keyframes tk-batti{0%,100%{transform:scale(1)}50%{transform:scale(1.35)}}
@keyframes tk-cresci{from{transform:scaleY(0)}to{transform:scaleY(1)}}
.tk-vista>*{animation:tk-su .5s cubic-bezier(.2,.7,.3,1) both}
.tk-vista>*:nth-child(2){animation-delay:.06s}
.tk-vista>*:nth-child(3){animation-delay:.12s}
.tk-vista>*:nth-child(4){animation-delay:.18s}
.tk-vista>*:nth-child(5){animation-delay:.24s}
.tk-vista>*:nth-child(n+6){animation-delay:.3s}
.tk-pan-sez{animation:tk-su .55s cubic-bezier(.2,.7,.3,1) both}
.tk-pan-sez:nth-child(2){animation-delay:.1s}
.tk-pan-sez:nth-child(3){animation-delay:.2s}
.tk-pan-sez:nth-child(n+4){animation-delay:.28s}
.tk-barre .b{transform-origin:bottom;animation:tk-cresci .6s cubic-bezier(.2,.7,.3,1) both}
.tk-barre .col:nth-child(2) .b{animation-delay:.04s}.tk-barre .col:nth-child(3) .b{animation-delay:.08s}
.tk-barre .col:nth-child(4) .b{animation-delay:.12s}.tk-barre .col:nth-child(5) .b{animation-delay:.16s}
.tk-barre .col:nth-child(6) .b{animation-delay:.2s}.tk-barre .col:nth-child(7) .b{animation-delay:.24s}
.tk-barre .col:nth-child(8) .b{animation-delay:.28s}.tk-barre .col:nth-child(9) .b{animation-delay:.32s}
.tk-barre .col:nth-child(10) .b{animation-delay:.36s}.tk-barre .col:nth-child(11) .b{animation-delay:.4s}
.tk-barre .col:nth-child(12) .b{animation-delay:.44s}
.tk-kard.tk-clic:hover{box-shadow:0 14px 34px -20px rgba(9,10,16,.55)}
.tk-modcard:hover{box-shadow:0 14px 34px -20px rgba(9,10,16,.55)}
@media (prefers-reduced-motion:reduce){
  .tk-vista>*,.tk-pan-sez,.tk-barre .b,.tk-cerca-esiti,.tk-avvisi-pop{animation:none}
  .tk-grad-card .cer1,.tk-grad-card .cer2,.tk-campana .pallino-avviso{animation:none}
}

/* ─── Responsive della tavolazza ─── */
@media (max-width:1980px){
  .tk-layout{grid-template-columns:240px minmax(0,1fr) 390px}
  .tk-layout.senza-pan{grid-template-columns:240px minmax(0,1fr)}
  .tk-pan{width:390px}
}
@media (max-width:1660px){
  .tk-layout,.tk-layout.senza-pan{grid-template-columns:240px minmax(0,1fr)}
  .tk-pan{grid-column:2;grid-row:auto;position:static;width:auto;height:auto;overflow:visible;
    border-left:none;border-top:1px solid var(--tk-line);padding:26px 48px 36px;
    display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:14px 36px;align-items:start}
  .tk-pan-sez + .tk-pan-sez{margin-top:0}
  .tk-pan-sez.fondo{margin-top:0;border-top:none;padding-top:0}
  .tk-cerca-glob .campo{width:240px}
  .tk-cerca-glob .campo:focus-within{width:280px}
}
@media (max-width:1500px){
  .tk-layout .main{padding:22px 36px 32px}
  .tk-pan{padding:22px 36px 32px}
  .tk-top h1{font-size:24px}
  .tk-k-val{font-size:31px}
  .tk-pallino{width:56px;height:56px}
  .tk-azione{width:96px}
  .tk-grad-card{padding:26px 28px}
}
@media (max-width:1150px){
  .tk-layout,.tk-layout.senza-pan{grid-template-columns:78px minmax(0,1fr)}
  .tk-side{width:78px;padding:22px 10px 18px;align-items:center}
  .tk-side-testa{padding:0;margin-bottom:18px}
  .tk-side-testa .chi{display:none}
  .tk-side .nav-item{width:46px;height:46px;justify-content:center;padding:0;gap:0}
  .tk-side .nav-item .eti{display:none}
  .tk-side .nav-item .puntino{position:absolute;margin:0;top:7px;right:7px}
  .tk-side .nav-item{position:relative}
  /* nel rail l'etichetta del gruppo non ci sta: al suo posto un trattino */
  .tk-side-grp{padding:0;height:19px;width:100%;font-size:0;display:flex;align-items:center;justify-content:center}
  .tk-side-grp::before{content:'';width:24px;height:1px;background:var(--tk-line-3)}
  .tk-utente-card{padding:0;background:none;border:none;justify-content:center}
  .tk-utente-card .chi{display:none}
  .tk-cerca-glob{display:none}
  .tk-layout .main{padding:18px 24px 28px}
  .tk-pan{padding:18px 24px 28px}
}

/* ─── Casa 2560: griglia a tre (1.15fr) e barre Andamento coi valori sopra ─── */
.casa-tre{display:grid;grid-template-columns:1.15fr 1fr 1fr;gap:22px;align-items:stretch}
@media (max-width:1500px){ .casa-tre{grid-template-columns:1fr 1fr} }
@media (max-width:1000px){ .casa-tre{grid-template-columns:1fr} }
.tk-barre .v{font-size:13px;font-weight:700;color:var(--tk-fg2);white-space:nowrap}
.tk-barre .col.ora .v{font-size:13.5px;color:var(--tk-fg)}
.tk-barre .b.ora{background:var(--tk-accent)}
.tk-anello{transition:stroke-dasharray .8s cubic-bezier(.2,.7,.3,1)}

/* ─── Da gestire 2560: contatori, striscia giorni, tappe del giro, segmentato chiaro ─── */
.dg-conta{display:grid;grid-template-columns:repeat(5,1fr);gap:18px;flex:1;min-width:0}
.dg-conta .tk-kard{padding:20px 22px;display:flex;align-items:center;gap:15px}
.dg-conta .n{font-size:30px;font-weight:700;line-height:1.1}
.dg-conta .l{font-size:13px;color:var(--tk-fg2);margin-top:2px}
@media (max-width:1500px){ .dg-conta{grid-template-columns:repeat(3,1fr)} }
@media (max-width:900px){ .dg-conta{grid-template-columns:repeat(2,1fr)} }
.tk-seg.chiara{background:var(--tk-card);border-color:var(--tk-line-2)}
.tk-seg.chiara .v{font-size:13.5px;padding:9px 20px}
.tk-seg.chiara .v.on{background:var(--tk-accent-16);color:var(--tk-accent);box-shadow:none;font-weight:700}
[data-theme="dark"] .tk-seg.chiara .v.on{background:var(--tk-accent-16)}
.tk-strip{display:flex;gap:12px;align-items:center;flex-wrap:wrap}
.tk-strip .gg7{display:flex;flex-direction:column;align-items:center;gap:4px;width:76px;padding:12px 0 10px;
  border-radius:16px;background:var(--tk-card);border:1px solid var(--tk-line);cursor:pointer;font-family:inherit;
  transition:transform .15s,border-color .15s,background .25s}
.tk-strip .gg7:hover{transform:translateY(-2px);border-color:var(--tk-line-3)}
.tk-strip .gg7 .d{font-size:12.5px;font-weight:600;color:var(--tk-fg2)}
.tk-strip .gg7 .n{font-size:18px;font-weight:700;color:var(--tk-fg)}
.tk-strip .gg7 .c{font-size:11px;font-weight:700;color:var(--tk-fg3)}
/* .on = giorno selezionato (giro+mappa di quel giorno); l'«oggi» non selezionato tiene solo il numero in accento */
.tk-strip .gg7.on{background:var(--tk-accent-14);border-color:var(--tk-accent-18)}
.tk-strip .gg7.on .d,.tk-strip .gg7.on .n,.tk-strip .gg7.on .c{color:var(--tk-accent)}
.tk-strip .gg7.oggi:not(.on) .n{color:var(--tk-accent)}
.tk-tp{display:flex;gap:16px}
.tk-tp .colf{width:14px;flex-shrink:0;display:flex;flex-direction:column;align-items:center}
.tk-tp .colf .punto{width:12px;height:12px;border-radius:99px;margin-top:6px;flex-shrink:0;
  background:var(--tk-card);border:2px solid var(--tk-ambra);box-sizing:border-box}
.tk-tp.fatta .colf .punto{background:var(--tk-verde);border-color:var(--tk-verde)}
.tk-tp .colf .filo{width:2px;flex:1;background:var(--tk-line-3);margin-top:6px;border-radius:99px}
.tk-tp:last-of-type .colf .filo{display:none}
.tk-tp .corpo{flex:1;min-width:0;display:flex;gap:12px;padding-bottom:24px;align-items:flex-start;cursor:pointer}
.tk-tp:last-of-type .corpo{padding-bottom:4px}
.tk-tp .corpo .t{font-size:15.5px;font-weight:600;color:var(--tk-fg)}
.tk-tp .corpo .s{font-size:13.5px;color:var(--tk-fg2);margin-top:2px}
.tk-tp.fatta .corpo .t{text-decoration:line-through;color:var(--tk-fg3)}
.tk-tp.fatta .corpo .s{color:var(--tk-fg3)}
.tk-pill-acc{background:var(--tk-accent-16);border-color:var(--tk-accent-18);color:var(--tk-accent)}
/* riga unita ritiro+scadenza dell'agenda (demo dagestire-riga-unita.html, variante 2 «Due piani»):
   sopra il ritiro con orario e «Fatto», sotto la riga sottile della scadenza con saldo e «Proroga» */
.dg-blocco{padding:12px;margin:0 -12px;border-radius:14px;cursor:pointer;transition:background .15s}
.dg-blocco:hover{background:var(--tk-chip)}
.dg-blocco + .dg-blocco,.dg-blocco + .tk-dg,.tk-dg + .dg-blocco{border-top:1px solid var(--tk-sep)}
.dg-blocco .riga1{display:flex;align-items:center;gap:15px}
.dg-blocco .t{font-size:15px;font-weight:600;color:var(--tk-fg)}
.dg-blocco .s{font-size:13.5px;color:var(--tk-fg2);margin-top:2px}
.dg-sotto{display:flex;align-items:center;gap:10px;margin:8px 0 2px 59px;padding-top:8px;
  border-top:1px dashed var(--tk-line-2);font-size:13.5px;color:var(--tk-fg2)}
.dg-sotto .eti{display:inline-flex;align-items:center;gap:7px;font-weight:600;color:var(--tk-ciano)}
.dg-sotto .eti svg{width:15px;height:15px}
.dg-sotto .tk-pill{margin-left:auto}
/* ─── «Scadenze della settimana» con le azioni della telefonata (demo scadenze-settimana-azioni.html,
       variante 3 «La telefonata» approvata dall'utente): la riga resta compatta, il chevron la apre e
       mostra Chiama / WhatsApp / Proroga / Da ritirare in griglia 2×2 ─── */
.dg-sc{padding:12px;margin:0 -12px;border-radius:14px;transition:background .15s}
.dg-sc + .dg-sc{border-top:1px solid var(--tk-sep)}
.dg-sc:hover,.dg-sc.aperta{background:var(--tk-chip)}
.dg-sc .alto{display:flex;align-items:center;gap:15px;cursor:pointer}
.dg-sc .t{font-size:15px;font-weight:600;color:var(--tk-fg)}
.dg-sc .s{font-size:13.5px;color:var(--tk-fg2);margin-top:2px}
.dg-sc .chev{transition:transform .2s}
.dg-sc.aperta .chev{transform:rotate(90deg)}
.dg-sc .cassetto{display:none;padding:12px 0 2px 59px}
.dg-sc.aperta .cassetto{display:block;animation:dgScApri .22s ease}
@keyframes dgScApri{from{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:none}}
.dg-sc .domanda{font-size:13.5px;color:var(--tk-fg2);margin-bottom:10px}
.dg-sc .domanda b{color:var(--tk-fg)}
.dg-sc .azioni{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.dg-sc .azioni > *{justify-content:center;text-decoration:none}
.tk-pill-ambra{background:var(--tk-ambra-16);border-color:transparent;color:var(--tk-ambra)}
/* ─── Bacheca della squadra: la chat interna accanto alle scadenze, nel ramo «Settimana»
       (demo dagestire-settimana-bacheca.html, variante 3 «Come WhatsApp, coi clienti in scadenza
       a portata» approvata dall'utente). Le note non si cancellano: è lo storico della squadra. ─── */
.bc-corpo{flex:1;min-height:300px;max-height:560px;overflow-y:auto;display:flex;flex-direction:column;gap:12px;
  padding:14px 2px 4px;margin:0 -2px}
.bc-corpo::-webkit-scrollbar{width:8px}
.bc-corpo::-webkit-scrollbar-thumb{background:var(--tk-line-3);border-radius:99px}
.bc-sep{align-self:center;font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;
  color:var(--tk-fg3);background:var(--tk-chip);border-radius:99px;padding:3px 12px}
.bc-nuove{display:flex;align-items:center;gap:10px;font-size:11px;font-weight:800;letter-spacing:.06em;
  text-transform:uppercase;color:var(--tk-rosso)}
.bc-nuove::before,.bc-nuove::after{content:'';flex:1;height:1px;background:var(--tk-rosso-16)}
.bc-avv{width:30px;height:30px;border-radius:99px;display:grid;place-items:center;font-weight:700;font-size:11.5px;flex-shrink:0}
.bc-msg{display:flex;gap:9px;align-items:flex-end;max-width:88%}
.bc-msg.mia{align-self:flex-end;flex-direction:row-reverse}
.bc-msg .bolla{background:var(--tk-chip);border-radius:16px 16px 16px 5px;padding:9px 13px;min-width:0}
.bc-msg.mia .bolla{background:var(--tk-accent);color:#fff;border-radius:16px 16px 5px 16px}
[data-theme="dark"] .bc-msg.mia .bolla{background:var(--tk-accent-18);color:var(--tk-fg)}
.bc-msg .chi{display:flex;align-items:baseline;gap:8px;font-size:12px;margin-bottom:3px}
.bc-msg .chi b{font-weight:700;color:var(--tk-accent)}
.bc-msg.mia .chi b{color:inherit;opacity:.85}
.bc-msg .chi .quando{color:var(--tk-fg3)}
.bc-msg.mia .chi .quando{color:inherit;opacity:.7}
.bc-msg .testo{font-size:14px;white-space:pre-wrap;overflow-wrap:anywhere}
.bc-msg .testo .men{font-weight:700;color:var(--tk-accent)}
.bc-msg.mia .testo .men{color:inherit;text-decoration:underline;text-underline-offset:2px}
.bc-scrivi{border-top:1px solid var(--tk-sep);padding-top:14px;margin-top:6px}
.bc-chips{display:flex;gap:7px;overflow-x:auto;padding-bottom:12px}
.bc-chips::-webkit-scrollbar{height:0}
.bc-chips .eti{font-size:11.5px;color:var(--tk-fg3);flex-shrink:0;align-self:center;margin-right:2px}
.bc-chips button{font-size:12px;font-weight:600;border-radius:99px;padding:5px 12px;flex-shrink:0;font-family:inherit;
  background:var(--tk-chip);border:1px solid var(--tk-line-2);color:var(--tk-fg2);transition:color .15s,border-color .15s}
.bc-chips button:hover{color:var(--tk-accent);border-color:var(--tk-accent)}
.bc-riga{display:flex;gap:10px;align-items:flex-end;background:var(--tk-chip);border:1px solid var(--tk-line-2);
  border-radius:18px;padding:8px 8px 8px 16px}
.bc-riga textarea{flex:1;background:none;border:none;outline:none;resize:none;font-family:inherit;font-size:14px;
  color:var(--tk-fg);line-height:1.45;max-height:150px;padding:6px 0}
.bc-riga textarea::placeholder{color:var(--tk-fg3)}
.bc-invia{width:38px;height:38px;border-radius:99px;border:none;background:var(--tk-accent);color:#fff;
  display:grid;place-items:center;flex-shrink:0;transition:filter .15s,transform .15s}
[data-theme="dark"] .bc-invia{color:#0D0E12}
.bc-invia:hover{filter:brightness(1.08);transform:translateY(-1px)}
.bc-invia:disabled{opacity:.4;cursor:default;transform:none}
.bc-piede{font-size:12px;color:var(--tk-fg3);margin-top:9px;display:flex;gap:8px;align-items:center}
.bc-piede svg{flex-shrink:0}
/* ─── Calendario del mese in «Da gestire» (canvas approvato «Calendario Da gestire», tavola «Mese pieno»):
       griglia 7×6 dal lunedì, cartellini colorati per tipo, storico barrato, spostamento a click ─── */
.dg-cal-tit{font-size:18px;font-weight:700;min-width:190px;text-align:center;text-transform:capitalize}
.dg-cal-leg{margin-left:auto;display:flex;gap:16px;align-items:center;font-size:12.5px;color:var(--tk-fg2)}
.dg-cal-leg .pt{width:9px;height:9px;border-radius:99px;display:inline-block;flex-shrink:0}
.dg-cal-teste{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));margin-top:16px}
.dg-cal-dow{font-size:11px;font-weight:700;letter-spacing:.09em;text-transform:uppercase;color:var(--tk-fg3);padding:6px 10px 10px}
.dg-cal{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));border-top:1px solid var(--tk-line);border-left:1px solid var(--tk-sep)}
.dg-cal .cg{min-height:112px;padding:8px 9px;border-right:1px solid var(--tk-sep);border-bottom:1px solid var(--tk-sep);
  box-sizing:border-box;display:flex;flex-direction:column;gap:4px;background:var(--tk-card);transition:background .15s}
.dg-cal .cg.fuori{background:transparent}
.dg-cal .cg.fuori .ng{color:var(--tk-fg3)}
.dg-cal .ng{font-size:13.5px;font-weight:700;color:var(--tk-fg);width:26px;height:26px;display:grid;place-items:center;border-radius:99px;flex-shrink:0}
.dg-cal .cg.og .ng{background:var(--tk-accent);color:#FFFFFF}
.dg-cal .cg.qui{background:var(--tk-accent-14);box-shadow:inset 0 0 0 2px var(--tk-accent)}   /* giorno sotto il cartellino trascinato */
.evc{display:flex;align-items:center;gap:6px;width:100%;box-sizing:border-box;border:none;text-align:left;
  font-size:12px;font-weight:600;padding:4px 8px;border-radius:8px;background:var(--tk-chip);color:var(--tk-fg);
  overflow:hidden;font-family:inherit;cursor:pointer}
.evc .pt,.evc .pt2{width:8px;height:8px;border-radius:99px;flex-shrink:0}
.evc .pt2{display:none;margin-left:-3px}
.evc .n2{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.evc.c{background:var(--tk-accent-14);color:var(--tk-accent)} .evc.c .pt{background:var(--tk-accent)}
.evc.r,.evc.rs{background:var(--tk-ambra-14);color:var(--tk-ambra)} .evc.r .pt,.evc.rs .pt{background:var(--tk-ambra)}
.evc.rs .pt2{display:inline-block;background:var(--tk-ciano)}
.evc.s{background:var(--tk-ciano-14);color:var(--tk-ciano)} .evc.s .pt{background:var(--tk-ciano)}
.evc.m{background:var(--tk-viola-soft);color:var(--tk-viola)} .evc.m .pt{background:var(--tk-viola)}
.evc.fatta{opacity:.5} .evc.fatta .n2{text-decoration:line-through}
.evc[draggable="true"]{cursor:grab}
.evc[draggable="true"]:active{cursor:grabbing}
.evc.inSp{box-shadow:0 0 0 2px var(--tk-accent);opacity:.6}
@media (max-width:1400px){ .dg-cal .cg{min-height:96px} .dg-cal-leg{display:none} }
/* ─── Mappa VERA (Leaflet + OpenStreetMap, come la v2): marcatori Tasca, finestrelle a card, tema notte ─── */
.tk-mrk-cx{background:none;border:none}
.tk-mrk{width:38px;height:38px;border-radius:99px;display:grid;place-items:center;box-sizing:border-box;
  font-family:'Space Grotesk','Onest',system-ui,sans-serif;font-variant-numeric:tabular-nums;
  font-size:14px;font-weight:700;background:var(--tk-card);border:2px solid var(--tk-ambra);color:var(--tk-ambra);
  box-shadow:0 8px 18px -8px rgba(9,10,16,.5)}
.tk-mrk.ver{background:var(--tk-verde-soft);border-color:var(--tk-verde);color:var(--tk-verde)}
.tk-mrk.org{background:var(--tk-rosso-14);border-color:var(--tk-rosso);border-style:dashed;color:var(--tk-rosso);font-weight:800;font-size:16px}
.tk-mrk.pin{background:var(--tk-accent-14);border-color:var(--tk-accent);color:var(--tk-accent)}
.tk-mrk.pin svg{width:18px;height:18px}
/* ─── Menù dell'account (finestrella della card profilo, restyling Tasca 2026-08-29) ─── */
.tk-menu-utente{position:fixed;z-index:900;width:296px;background:var(--tk-card);border:1px solid var(--tk-line-2);
  border-radius:20px;box-shadow:0 26px 64px -24px rgba(9,10,16,.6);padding:8px;box-sizing:border-box;
  font-family:'Onest',system-ui,sans-serif;color:var(--tk-fg);animation:tk-su .18s cubic-bezier(.2,.7,.3,1) both}
.tk-menu-utente .testa{display:flex;align-items:center;gap:12px;padding:12px 12px 13px;border-bottom:1px solid var(--tk-sep);margin-bottom:6px}
.tk-menu-utente .testa .chi{min-width:0}
.tk-menu-utente .testa .chi b{display:block;font-size:15px;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tk-menu-utente .testa .chi span{display:block;font-size:12.5px;color:var(--tk-fg3);margin-top:1px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tk-menu-utente .riga-tema{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:8px 12px 10px;
  font-size:14px;font-weight:600;color:var(--tk-fg2)}
.tk-menu-utente .theme-switch{background:var(--tk-chip);border:1px solid var(--tk-line-2)}
.tk-menu-utente .voce{display:flex;align-items:center;gap:12px;width:100%;padding:11px 12px;border:none;background:none;
  border-radius:13px;font-family:inherit;font-size:14.5px;font-weight:600;color:var(--tk-fg);cursor:pointer;text-align:left;
  transition:background .15s;box-sizing:border-box}
.tk-menu-utente .voce:hover{background:var(--tk-chip)}
.tk-menu-utente .voce svg{width:18px;height:18px;color:var(--tk-fg2);flex-shrink:0}
.tk-menu-utente .voce.rosso{color:var(--tk-rosso)}
.tk-menu-utente .voce.rosso svg{color:var(--tk-rosso)}
.tk-menu-utente .piede{border-top:1px solid var(--tk-sep);margin-top:6px;padding:10px 12px 6px;font-size:12px;color:var(--tk-fg3)}

/* marcatore a GOCCIA (scelta utente 29/08, demo marcatori-da-organizzare.html proposta B estesa):
   pin classico con la punta ESATTAMENTE sulla coordinata (contenitore 40×46, corpo 30×30 ruotato:
   la punta cade a (20,40) dal vertice in alto a sinistra → iconAnchor [20,40]) e l'icona del tipo dentro */
.tk-goccia{width:40px;height:46px;position:relative}
.tk-goccia .corpo{position:absolute;left:5px;top:4px;width:30px;height:30px;background:var(--tk-card);
  border:2px solid var(--tk-ambra);color:var(--tk-ambra);border-radius:50% 50% 50% 0;transform:rotate(-45deg);
  box-shadow:0 8px 18px -8px rgba(9,10,16,.5);display:grid;place-items:center;box-sizing:border-box}
.tk-goccia .corpo svg{transform:rotate(45deg);width:15px;height:15px}
.tk-goccia.acc .corpo{border-color:var(--tk-accent);color:var(--tk-accent)}
.tk-goccia.ver .corpo{border-color:var(--tk-verde);color:var(--tk-verde)}
.tk-goccia.ros .corpo{border-color:var(--tk-rosso);color:var(--tk-rosso)}
.tk-goccia .ordine{position:absolute;top:-4px;right:0;min-width:17px;height:17px;border-radius:99px;
  background:var(--tk-ambra);color:#FFFFFF;font-size:10px;font-weight:700;display:grid;place-items:center;
  padding:0 3px;border:2px solid var(--tk-card);box-sizing:content-box;line-height:1}
.tk-goccia.acc .ordine{background:var(--tk-accent)}
.tk-goccia.ver .ordine{background:var(--tk-verde)}

.tk-mrk.mini{width:22px;height:22px;box-shadow:0 4px 10px -5px rgba(9,10,16,.5)}
.tk-mrk.ros{background:var(--tk-rosso-14);border-color:var(--tk-rosso);color:var(--tk-rosso)}
.tk-mrk.cia{background:var(--tk-ciano-14);border-color:var(--tk-ciano);color:var(--tk-ciano)}
.tk-mrk.gri{background:var(--tk-chip);border-color:var(--tk-fg3);color:var(--tk-fg3)}
.leaflet-container{background:var(--tk-chip);font-family:'Onest',system-ui,sans-serif}
.leaflet-popup-content-wrapper{background:var(--tk-card);color:var(--tk-fg);border-radius:16px;
  box-shadow:0 18px 44px -16px rgba(9,10,16,.55)}
.leaflet-popup-tip{background:var(--tk-card)}
.leaflet-popup-content{margin:14px 16px;font-size:13.5px;line-height:1.45}
.leaflet-container a.leaflet-popup-close-button{color:var(--tk-fg3)}
.leaflet-control-attribution{font-size:10px}
.tk-pop{min-width:200px}
.tk-pop b{font-size:14.5px}
.tk-pop .r{color:var(--tk-fg2);font-size:13px;margin-top:3px}
.tk-pop .az{display:flex;gap:8px;margin-top:11px}
[data-theme="dark"] .leaflet-tile{filter:invert(1) hue-rotate(180deg) brightness(.92) contrast(.9) saturate(.35)}
[data-theme="dark"] .leaflet-control-attribution{background:rgba(23,24,30,.72);color:var(--tk-fg3)}
[data-theme="dark"] .leaflet-bar a{background:var(--tk-card);color:var(--tk-fg2);border-color:var(--tk-line-3)}
.tk-prog-verde{margin-left:auto;flex:1;max-width:220px;height:8px;border-radius:99px;background:var(--tk-chip);overflow:hidden}
.tk-prog-verde i{display:block;height:100%;border-radius:99px;background:var(--tk-verde);transition:width .4s ease}


/* ─── Clienti 2560: contatori, rubrica a colonne (Cliente · Città · Fase · Saldo · Azioni) ─── */
.cli-stats{display:grid;grid-template-columns:repeat(5,1fr);gap:18px}
@media (max-width:1500px){ .cli-stats{grid-template-columns:repeat(3,1fr)} }
@media (max-width:900px){ .cli-stats{grid-template-columns:repeat(2,1fr)} }
.pillsel{font-size:13.5px;font-weight:600;padding:9px 18px;border-radius:99px;background:var(--tk-chip);
  border:1px solid var(--tk-line-3);color:var(--tk-fg2);cursor:pointer;font-family:inherit;white-space:nowrap;
  transition:background .2s,color .2s,border-color .2s}
.pillsel.on{background:var(--tk-accent-14);border-color:var(--tk-accent-16);color:var(--tk-accent);font-weight:700}
.cli-testa{display:flex;align-items:center;gap:16px;padding:4px 4px 10px;border-bottom:1px solid var(--tk-line);
  font-size:11.5px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--tk-fg3)}
.cli-testa .sp-avv{width:46px;flex-shrink:0}
.cli-testa .c-cli{flex:1}
.cli-testa .c-dove{width:190px;flex-shrink:0}
.cli-testa .c-fase{width:130px;flex-shrink:0}
.cli-testa .c-saldo{width:90px;flex-shrink:0;text-align:right}
.cli-testa .c-az{width:138px;flex-shrink:0;text-align:right}
.tk-cli{gap:16px;padding:13px 10px;margin:0 -10px;border-radius:14px;transition:background .15s}
.tk-cli:hover{background:var(--tk-chip)}
.tk-cli .tk-avv{width:46px;height:46px;font-size:14.5px}
.tk-cli .chi{font-size:15.5px}
.tk-cli .come{font-size:13.5px}
.tk-cli .dove{width:190px;flex-shrink:0;font-size:14px;font-weight:500;color:var(--tk-fg2);
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tk-cli .fascia{width:130px;flex-shrink:0}
.tk-cli .saldo{width:90px;min-width:0;font-size:16px}
.tk-cli .az{width:138px;justify-content:flex-end}
.tk-cli .az .tk-icobtn{width:38px;height:38px}
.tk-cli .az .tk-icobtn svg{width:16px;height:16px}
@media (max-width:1500px){
  .cli-testa .c-dove,.tk-cli .dove{display:none}
}
@media (max-width:1240px){
  .cli-testa .c-fase,.tk-cli .fascia{display:none}
}


/* ─── Fatturazione 2560: casella quadrata di selezione e pilloline ─── */
.casella{width:22px;height:22px;border-radius:7px;border:1.5px solid var(--tk-line-3);background:var(--tk-chip);
  color:transparent;display:grid;place-items:center;cursor:pointer;flex-shrink:0;padding:0;transition:background .15s,border-color .15s,transform .1s}
.casella svg{width:14px;height:14px}
.casella:active{transform:scale(.92)}
.casella.si{border-color:var(--tk-accent);background:var(--tk-accent-18);color:var(--tk-accent)}
.pillolina{font-size:12px;font-weight:600;padding:6px 12px;border-radius:99px;background:var(--tk-chip);
  border:1px solid var(--tk-line-3);color:var(--tk-fg);white-space:nowrap;cursor:pointer;font-family:inherit;
  transition:border-color .15s,color .15s}
.pillolina:hover{border-color:var(--tk-accent);color:var(--tk-accent)}


/* ─── Messaggi 2560: card template con righe e bottoni canale, editor a colonna ─── */
.msg-sez{display:flex;align-items:baseline;gap:7px;padding:0 14px;font-size:11px;font-weight:700;
  letter-spacing:.09em;text-transform:uppercase;color:var(--tk-fg3)}
.msg-sez + .msg-trow{margin-top:2px}
.msg-sez .cnt2{font-size:11px;font-weight:700;color:var(--tk-fg2)}
.msg-trow{display:flex;align-items:center;gap:13px;padding:8px 14px;border-radius:14px;min-height:48px;
  cursor:pointer;transition:background .15s}
.msg-trow:hover{background:var(--tk-chip)}
.msg-trow.on{background:var(--tk-accent-14)}
.msg-trow.on .t{color:var(--tk-accent)}
.msg-trow .t{font-size:15px;font-weight:600;color:var(--tk-fg)}
.msg-trow .s{font-size:13px;color:var(--tk-fg2);margin-top:1px}
.cbtn{position:relative;width:34px;height:34px;border-radius:99px;background:var(--tk-chip);
  border:1px solid var(--tk-line-3);color:var(--tk-fg2);display:grid;place-items:center;cursor:pointer;
  padding:0;flex-shrink:0;transition:color .15s,border-color .15s}
.cbtn:hover{color:var(--tk-fg);border-color:var(--tk-accent)}
.cbtn.on{border-color:var(--tk-accent);color:var(--tk-accent)}
.cbtn svg{width:16px;height:16px}
.cbtn .dot{position:absolute;top:-2px;right:-2px;width:10px;height:10px;border-radius:99px;
  background:var(--tk-fg3);border:1.5px solid var(--tk-card)}
.cbtn .dot.acceso{background:var(--tk-verde)}
.seg-chip{font-size:12.5px;font-weight:700;padding:6px 13px;border-radius:99px;background:var(--tk-chip);
  border:1px solid var(--tk-line-3);color:var(--tk-accent);cursor:pointer;font-family:'Space Grotesk','Onest',system-ui,sans-serif;
  white-space:nowrap;transition:background .15s}
.seg-chip:hover{background:var(--tk-accent-14)}
.ed-testo{width:100%;box-sizing:border-box;background:var(--tk-chip);border:1px solid var(--tk-line-2);
  border-radius:16px;padding:16px 18px;font-size:14.5px;line-height:1.6;color:var(--tk-fg);font-family:inherit;
  resize:vertical;min-height:120px;outline:none}
.ed-testo:focus{border-color:var(--tk-accent);box-shadow:0 0 0 3px var(--tk-accent-14)}
.ed-area-ant{flex:1;min-height:220px;background:var(--tk-bg);border:1px solid var(--tk-line);border-radius:16px;
  padding:16px 18px;display:flex;flex-direction:column;gap:10px;overflow-y:auto}
.bolla-wa{max-width:480px;background:var(--tk-verde-soft);border-radius:14px 14px 14px 4px;padding:12px 14px 9px;
  font-size:14px;line-height:1.5;color:var(--tk-fg)}
.bolla-wa .ora{display:block;text-align:right;font-size:11.5px;color:var(--tk-fg2);margin-top:3px}


/* ─── Correzioni dalla revisione 2560 ─── */
/* la riga «Da fatturare» selezionata non perde l'evidenza al passaggio del mouse */
.tk-dg.rft.scelta,.tk-dg.rft.scelta:hover{background:var(--tk-accent-14)}
/* in tema notte la spunta bianca su accent chiaro non si vedeva: spunta scura */
[data-theme="dark"] .tk-sel.on{color:#15161C}


/* ─── Contabile del bonifico e CRO (2026-08-30) ───────────────────────────────
   La contabile è il PDF (o la foto) della conferma di bonifico che manda il cliente: resta
   archiviata sul server perché il commercialista possa risalire al pagamento, e dal file il
   sistema prova a leggere il CRO — il codice con cui la banca rintraccia il bonifico.
   Due famiglie: il SEGNO compatto (.tk-cro, .tk-cbl) che vive dentro righe già affollate
   — registro incassi, movimenti, storia del noleggio — e il BLOCCO (.cb-*) dentro le modali. */

/* segno compatto: il codice in carattere numerico, tono secondario per non rubare la scena
   all'importo; per esteso resta comunque nel title, perché nelle righe strette va in ellissi */
.tk-cro{font-family:'Space Grotesk','Onest',system-ui,sans-serif;font-variant-numeric:tabular-nums;
  font-size:12px;font-weight:700;letter-spacing:.02em;color:var(--tk-fg3);background:var(--tk-chip);
  border-radius:6px;padding:1px 6px;white-space:nowrap;max-width:170px;overflow:hidden;
  text-overflow:ellipsis;display:inline-block;vertical-align:-2px}
/* nelle colonne strette (pannello di contesto, movimenti della dashboard) il codice si accorcia:
   per esteso resta nel title, la riga non deve andare a capo per un dato di servizio */
.tk-cro.mini{max-width:96px;font-size:11.5px}
/* la graffetta che apre la contabile: bersaglio piccolo ma cliccabile, non naviga la riga sotto */
.tk-cbl{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;
  border-radius:7px;color:var(--tk-fg3);vertical-align:-6px;transition:background .15s,color .15s}
.tk-cbl:hover,.tk-cbl:focus-visible{background:var(--tk-accent-14);color:var(--tk-accent)}
.tk-cbl svg{width:15px;height:15px}
/* bottoncino «Contabile e CRO» sulle righe del registro incassi */
.tk-cbb{flex:none;display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;
  border-radius:10px;background:transparent;border:1px solid transparent;color:var(--tk-fg3);
  cursor:pointer;padding:0;transition:background .15s,color .15s,border-color .15s}
.tk-cbb:hover,.tk-cbb:focus-visible{background:var(--tk-chip);border-color:var(--tk-line-3);color:var(--tk-accent)}
.tk-cbb.piena{color:var(--tk-verde)}

/* blocco dentro le modali: si apre da solo sul bonifico, ma resta raggiungibile con ogni metodo */
.cb-blocco{border:1px solid var(--tk-line-2);border-radius:16px;margin-bottom:18px;overflow:hidden;
  background:var(--tk-card)}
.cb-blocco.on{border-color:var(--tk-accent);background:var(--tk-accent-14)}
.cb-tog{display:flex;align-items:center;gap:9px;width:100%;padding:12px 15px;background:transparent;
  border:0;font-family:inherit;font-size:13.5px;font-weight:700;color:var(--tk-fg);text-align:left}
.cb-tog .nt{margin-left:auto;font-size:12px;font-weight:600;color:var(--tk-fg3)}
.cb-tog .fr{display:inline-flex;color:var(--tk-fg3);transition:transform .18s}
.cb-blocco.on .cb-tog .fr{transform:rotate(180deg)}
.cb-corpo{padding:2px 15px 15px;display:flex;flex-direction:column;gap:12px}
.cb-nota{font-size:12.5px;line-height:1.5;color:var(--tk-fg2)}
.cb-scegli{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;padding:12px;
  border:1px dashed var(--tk-line-3);border-radius:14px;background:var(--tk-chip);font-family:inherit;
  font-size:13.5px;font-weight:700;color:var(--tk-fg2);transition:border-color .15s,color .15s}
.cb-scegli:hover{border-color:var(--tk-accent);color:var(--tk-accent)}
.cb-file{display:flex;align-items:center;gap:11px;padding:11px 13px;border-radius:14px;
  background:var(--tk-chip);border:1px solid var(--tk-line-2);color:var(--tk-fg2)}
.cb-file .n{flex:1;min-width:0;font-size:13.5px;font-weight:700;color:var(--tk-fg);
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cb-file .n span{display:block;font-size:11.5px;font-weight:600;color:var(--tk-fg3)}
.cb-file .x{flex:none;width:28px;height:28px;border-radius:9px;background:transparent;border:0;
  color:var(--tk-fg3);display:grid;place-items:center;padding:0}
.cb-file .x:hover{background:var(--tk-rosso-14);color:var(--tk-rosso)}
/* la contabile già archiviata: aprirla è la cosa che si fa più spesso, quindi è un bottone pieno */
.cb-riga{display:flex;align-items:center;gap:10px;padding:11px 13px;border-radius:14px;
  background:var(--tk-verde-soft);color:var(--tk-fg2);font-size:13px;font-weight:600}
.cb-riga .t{flex:1;min-width:0;color:var(--tk-fg)}
.cb-riga a,.cb-riga button{font-family:inherit;font-size:12.5px;font-weight:700;border-radius:99px;
  padding:6px 13px;border:1px solid var(--tk-line-3);background:var(--tk-card);color:var(--tk-fg2);
  text-decoration:none;white-space:nowrap}
.cb-riga a:hover{border-color:var(--tk-accent);color:var(--tk-accent)}
.cb-riga button:hover{border-color:var(--tk-rosso);color:var(--tk-rosso)}
/* i due codici a confronto quando la contabile ne racconta uno diverso da quello scritto a mano */
.cb-due{display:flex;gap:12px;margin:4px 0 2px}
.cb-due>div{flex:1;min-width:0;border:1px solid var(--tk-line-2);border-radius:14px;padding:11px 13px;
  background:var(--tk-chip)}
.cb-due span{display:block;font-size:11.5px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;
  color:var(--tk-fg3);margin-bottom:4px}
.cb-due b{font-size:14px;word-break:break-all;color:var(--tk-fg)}
