/* V301: carattere Inter incluso nel programma (funziona anche senza internet e uguale su tutti i computer) */
@font-face{font-family:Inter;font-style:normal;font-weight:400;font-display:swap;src:url(font/inter-400.woff) format('woff')}
@font-face{font-family:Inter;font-style:normal;font-weight:500;font-display:swap;src:url(font/inter-500.woff) format('woff')}
@font-face{font-family:Inter;font-style:normal;font-weight:600;font-display:swap;src:url(font/inter-600.woff) format('woff')}
@font-face{font-family:Inter;font-style:normal;font-weight:700;font-display:swap;src:url(font/inter-700.woff) format('woff')}
@font-face{font-family:Inter;font-style:normal;font-weight:800;font-display:swap;src:url(font/inter-800.woff) format('woff')}
/* ============================================================
   Officina Rossi · officina.css — UNICO foglio di stile (V260)
   Prima erano 5 file (base, agenda, v215, v220, tema) aggiunti versione dopo versione;
   ora sono uniti qui, nello stesso ordine (le regole sotto vincono su quelle sopra).
   Sezioni:  1 BASE · 2 AGENDA · 3 V215 · 4 V220 · 5 TEMA (stile unico, va sempre in fondo)
   Confine unico: sotto 900 px telefono/tablet verticale, da 900 px computer.
   ============================================================ */


/* ############################################################
   1 · BASE  (era css/base.css)
   ############################################################ */
/* ============================================================
   Officina Rossi — Gestionale · stile unico (nessuna versione sovrapposta)
   ============================================================ */
:root{
  --primary:var(--blue-500);--primary-700:var(--blue);--primary-100:var(--blue-bg);--primary-50:var(--blue-bg);
  --ink:#101828;--ink-2:var(--n-700);--muted:var(--n-500);--muted-2:var(--n-400);
  --line:var(--n-200);--line-strong:var(--n-300);--bg:var(--n-100);--surface:#fff;
  --sidebar:#071727;--sidebar-2:#0b2238;--navy:#0b1d33;
  --green:#0d9f62;--green-bg:#e8f8f0;--orange:#e07a0b;--orange-bg:#fff4e5;--red:#d92d20;--red-bg:#fef0ef;
  --violet:#6d4fe6;--violet-bg:#f1edff;--blue:#0865f2;--blue-bg:#eaf2ff;--gray:#667085;--gray-bg:#f2f4f7;--teal:#0e9384;--teal-bg:#e6f6f4;
  --c1:var(--blue-500);--c2:var(--green);--c3:var(--orange-500);--c4:var(--violet-400);--c5:var(--red-500);--c6:var(--blue-500);
  --radius:12px;--radius-sm:8px;--shadow:0 1px 2px rgba(16,24,40,.05),0 6px 20px rgba(16,24,40,.06);--shadow-lg:0 18px 50px rgba(16,24,40,.22);
  --sidebar-w:248px;--sidebar-c:72px;--topbar-h:64px;--gutter:16px;
}
*{box-sizing:border-box}
html,body{height:100%;margin:0}
body{font-family:Inter,"Segoe UI",system-ui,-apple-system,Roboto,Arial,sans-serif;background:var(--bg);color:var(--ink);font-size:13px;line-height:1.42;overflow:hidden;-webkit-font-smoothing:antialiased}
button,input,select,textarea{font:inherit;color:inherit}
button{cursor:pointer;background:none;border:0;padding:0}
a{color:inherit;text-decoration:none}
svg.ic{width:18px;height:18px;flex:0 0 auto}
h1,h2,h3,h4{margin:0;letter-spacing:-.01em}
h4{font-size:13px;margin:14px 0 8px;color:var(--ink-2)}
small{font-size:12px}
hr{border:0;border-top:1px solid var(--line);margin:6px 0}
.mono{font-family:ui-monospace,SFMono-Regular,Consolas,"Liberation Mono",monospace;letter-spacing:.02em}
.muted{color:var(--muted)}.small{font-size:12px}.strong{font-weight:700}.nowrap{white-space:nowrap}.grow{flex:1}
.text-red{color:var(--red)!important}.text-green{color:var(--green)!important}.text-orange{color:var(--orange)!important}.text-violet{color:var(--violet)!important}
.ellipsis{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}
[hidden]{display:none!important}

/* ---------- caricamento ---------- */
.boot{position:fixed;inset:0;display:grid;place-items:center;background:var(--bg);color:var(--muted);font-size:15px}
.boot-error{max-width:560px;margin:10vh auto;padding:24px;background:#fff;border-radius:12px;box-shadow:var(--shadow)}

/* ---------- struttura ---------- */
.app-shell{height:100%;display:flex;min-width:0}
.workspace{flex:1;min-width:0;display:flex;flex-direction:column;height:100%}
.app-content{flex:1;min-height:0;position:relative;outline:none}
.sidebar{width:var(--sidebar-w);flex:0 0 auto;background:linear-gradient(180deg,var(--sidebar),var(--sidebar-2));color:var(--blue-line);display:flex;flex-direction:column;z-index:30;transition:width .18s}
.brand{height:var(--topbar-h);display:flex;align-items:center;gap:12px;padding:0 18px;border-bottom:1px solid rgba(255,255,255,.08);flex:0 0 auto}
.brand-mark{width:34px;height:34px;border-radius:10px;background:linear-gradient(145deg,#fff,var(--blue-line));color:var(--primary);display:grid;place-items:center;flex:0 0 auto}
.brand-mark svg{width:20px;height:20px}
.brand-name{font-size:17px;font-weight:800;white-space:nowrap}.brand-name span{color:var(--blue-400)}
.brand-sub{font-size:11px;letter-spacing:2.4px;color:var(--blue-400);text-transform:uppercase}
.nav-scroll{flex:1;overflow-y:auto;overflow-x:hidden;padding:10px 10px 16px;scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.18) transparent}
.nav-section{margin-top:8px}
.nav-section-title{font-size:11px;font-weight:700;letter-spacing:1.4px;text-transform:uppercase;color:var(--blue-500);padding:10px 12px 6px}
.nav-link{display:flex;align-items:center;gap:11px;width:100%;padding:9px 12px;border-radius:9px;color:var(--n-300);font-weight:600;font-size:13px;text-align:left;position:relative}
.nav-link:hover{background:rgba(255,255,255,.07);color:#fff}
.nav-link.active{background:var(--primary);color:#fff;box-shadow:0 6px 16px rgba(8,101,242,.35)}
.nav-label{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.nav-badge{min-width:22px;height:20px;padding:0 6px;border-radius:10px;background:rgba(255,255,255,.14);font-size:11px;display:grid;place-items:center}
.nav-link.active .nav-badge{background:rgba(255,255,255,.25)}
.nav-caret{width:15px;height:15px;transition:transform .15s;opacity:.7}
.nav-group.open>.nav-parent .nav-caret{transform:rotate(180deg)}
.nav-children{display:none;padding-left:12px;border-left:1px solid rgba(255,255,255,.08);margin-left:20px}
.nav-group.open>.nav-children{display:block}
.nav-link.depth-1,.nav-link.depth-2,.nav-children .nav-parent{font-size:13px;padding:7px 10px}
.nav-link.depth-2 svg{width:16px;height:16px}
.sidebar-footer{padding:14px 18px;border-top:1px solid rgba(255,255,255,.08);font-size:12px;color:var(--blue-400)}
.sidebar-footer-copy{display:flex;flex-direction:column;gap:1px}.sidebar-footer-copy strong{color:var(--blue-line)}
body.sidebar-collapsed .sidebar{width:var(--sidebar-c)}
body.sidebar-collapsed .brand-copy,body.sidebar-collapsed .nav-label,body.sidebar-collapsed .nav-caret,body.sidebar-collapsed .nav-section-title,body.sidebar-collapsed .sidebar-footer,body.sidebar-collapsed .nav-badge{display:none}
body.sidebar-collapsed .nav-link{justify-content:center;padding:11px}
body.sidebar-collapsed .nav-children{margin-left:0;padding-left:0;border:0}
body.sidebar-collapsed .brand{justify-content:center;padding:0}
.nav-backdrop{display:none}

.topbar{height:var(--topbar-h);flex:0 0 auto;display:flex;align-items:center;gap:10px;padding:0 var(--gutter);background:#fff;border-bottom:1px solid var(--line);position:relative;z-index:20}
.page-heading{min-width:0;flex:0 1 auto;margin-right:auto}
.page-heading h1{font-size:17px;font-weight:800;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.crumb{font-size:12px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.clock{display:flex;align-items:center;gap:12px;border:1px solid var(--line);border-radius:10px;padding:5px 12px;flex:0 0 auto}
.clock-day{display:flex;flex-direction:column;font-size:11px;font-weight:800;color:var(--primary);text-transform:uppercase;letter-spacing:.6px;line-height:1.2}
.clock-day b{color:var(--ink);font-size:12px;text-transform:none;letter-spacing:0}
.clock-time{font-size:20px;font-weight:800;color:var(--navy);font-variant-numeric:tabular-nums}
.global-search{display:flex;align-items:center;gap:8px;border:1px solid var(--line-strong);border-radius:10px;padding:0 12px;height:40px;width:clamp(220px,28vw,420px);background:#fff}
.global-search:focus-within{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-100)}
.global-search svg{color:var(--muted)}
.global-search input{border:0;outline:0;flex:1;min-width:0;background:transparent;height:100%}
.search-toggle{display:none}
.icon-btn{width:40px;height:40px;border-radius:10px;display:grid;place-items:center;color:var(--ink-2);position:relative;flex:0 0 auto}
.icon-btn:hover{background:var(--gray-bg)}
.bell-count{position:absolute;top:4px;right:3px;min-width:17px;height:17px;padding:0 4px;border-radius:9px;background:var(--red);color:#fff;font-size:11px;font-weight:700;display:grid;place-items:center}
.save-state{width:28px;height:28px;border-radius:50%;display:grid;place-items:center;color:var(--green);flex:0 0 auto}
.save-state svg{width:16px;height:16px}
.save-state[data-state=saving]{color:var(--muted)}.save-state[data-state=error]{color:#fff;background:var(--red)}
.user-chip{display:flex;align-items:center;gap:8px;padding:4px;border-radius:24px;flex:0 0 auto}
.user-chip:hover{background:var(--gray-bg)}
.user-name{font-weight:700;font-size:13px;padding-right:8px;white-space:nowrap}
.menu-btn{display:grid;flex:0 0 auto}
.avatar{width:34px;height:34px;border-radius:50%;background:var(--primary);color:#fff;font-weight:800;font-size:12px;display:inline-grid;place-items:center;flex:0 0 auto}
.avatar.sm{width:28px;height:28px;font-size:11px}.avatar.xs{width:24px;height:24px;font-size:11px;vertical-align:middle}.avatar.sq{border-radius:7px;background:var(--violet)}

/* ---------- pagine ---------- */
.page{height:100%;padding:var(--gutter);display:flex;flex-direction:column;gap:12px;min-height:0}
.page-scroll{overflow-y:auto;overflow-x:hidden}
.page-fit{overflow:hidden}
.page-fit>.fill{flex:1;min-height:0}
.page-head{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;flex-wrap:wrap}
.page-title{font-size:20px;font-weight:800}
.page-sub{margin:2px 0 0;color:var(--muted);font-size:13px}
.page-actions{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.page-actions .select{width:auto;height:38px}
.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);min-width:0}
.card-head{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:14px 16px;border-bottom:1px solid var(--line);flex-wrap:wrap}
.card-head h3{font-size:15px;font-weight:800;display:flex;align-items:center;gap:8px}
.card-body{padding:16px}
.kicker{font-size:11px;font-weight:800;color:var(--primary);letter-spacing:1px;text-transform:uppercase}
.head-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.grid-2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.grid-2.wide-right{grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr)}
.empty-state{display:flex;flex-direction:column;align-items:center;gap:8px;color:var(--muted);text-align:center;padding:32px 16px}
.empty-state svg{width:30px;height:30px;color:var(--muted-2)}.empty-state p{margin:0;max-width:420px}
.empty-state.small{padding:18px 12px}.empty-state.small svg{width:22px;height:22px}

/* ---------- pulsanti ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;height:38px;padding:0 14px;border-radius:9px;border:1px solid var(--line-strong);background:#fff;font-weight:700;font-size:13px;color:var(--ink-2);white-space:nowrap;transition:background .12s,border-color .12s}
.btn:hover{background:var(--gray-bg)}
.btn svg{width:17px;height:17px}
.btn-primary{background:var(--primary);border-color:var(--primary);color:#fff}.btn-primary:hover{background:var(--primary-700)}
.btn-success{background:var(--green);border-color:var(--green);color:#fff}.btn-success:hover{filter:brightness(.95)}
.btn-danger{background:var(--red);border-color:var(--red);color:#fff}
.btn-danger-ghost{color:var(--red);border-color:var(--red-line)}.btn-danger-ghost:hover{background:var(--red-bg)}
.btn-light{background:#fff;color:var(--primary);border-color:#fff}
.btn-ghost-light{background:rgba(255,255,255,.1);border-color:rgba(255,255,255,.3);color:#fff}.btn-ghost-light:hover{background:rgba(255,255,255,.18)}
.btn-sm{height:32px;padding:0 10px;font-size:12px}
.btn-lg{height:44px;padding:0 18px;font-size:13px}
.btn.is-on{background:var(--primary-100);border-color:var(--blue-line);color:var(--primary)}
.btn:disabled,.bar-btn:disabled{opacity:.45;cursor:not-allowed}
.action-btn{width:32px;height:32px;border-radius:8px;display:inline-grid;place-items:center;color:var(--muted);border:1px solid transparent}
.action-btn:hover{background:var(--primary-50);color:var(--primary);border-color:var(--blue-line)}
.action-btn.danger:hover{background:var(--red-bg);color:var(--red);border-color:var(--red-line)}
.action-btn svg{width:17px;height:17px}
.link{color:var(--primary);font-weight:700;text-decoration:underline;cursor:pointer}
.badge{display:inline-flex;align-items:center;gap:5px;height:24px;padding:0 9px;border-radius:12px;font-size:11px;font-weight:700;white-space:nowrap}
.badge::before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor}
.tone-blue.badge{background:var(--blue-bg);color:var(--blue)}.tone-green.badge{background:var(--green-bg);color:var(--green)}.tone-orange.badge{background:var(--orange-bg);color:var(--orange)}.tone-red.badge{background:var(--red-bg);color:var(--red)}.tone-violet.badge{background:var(--violet-bg);color:var(--violet)}.tone-gray.badge{background:var(--gray-bg);color:var(--gray)}
.badge-btn{display:inline-flex;align-items:center;gap:2px;border-radius:12px}
.badge-btn svg{width:14px;height:14px;color:var(--muted)}
.badge-btn:hover .badge{box-shadow:0 0 0 2px var(--line-strong)}
.code-chip{display:inline-block;padding:3px 8px;border-radius:7px;background:var(--primary-50);border:1px solid var(--blue-line);color:var(--primary);font-weight:800;font-family:ui-monospace,Consolas,monospace;font-size:12px}
.code-chip.lg{font-size:15px;padding:4px 10px}
.mini-chip{display:inline-flex;gap:3px;align-items:center;padding:2px 7px;border-radius:7px;border:1px solid var(--line);font-size:11px;color:var(--ink-2);background:#fff;white-space:nowrap}
.mini-chip b{color:var(--primary)}
.count-pill{min-width:36px;height:36px;border-radius:10px;background:var(--primary-100);color:var(--primary);font-weight:800;font-size:17px;display:grid;place-items:center;padding:0 8px}
.count-pill.sm{min-width:26px;height:24px;font-size:12px;border-radius:7px;display:inline-grid}
.stock-pill{display:inline-block;padding:2px 8px;border-radius:7px;font-weight:800;font-size:12px}
.stock-pill.green{background:var(--green-bg);color:var(--green)}.stock-pill.orange{background:var(--orange-bg);color:var(--orange)}.stock-pill.red{background:var(--red-bg);color:var(--red)}.stock-pill.blue{background:var(--blue-bg);color:var(--blue)}.stock-pill.gray{background:var(--gray-bg);color:var(--gray)}

/* targa italiana: bande blu ai lati, testo sempre leggibile */
.plate{display:inline-flex;align-items:stretch;height:26px;border:2px solid var(--blue-700);border-radius:5px;background:#fff;overflow:hidden;flex:0 0 auto;vertical-align:middle}
.plate::before,.plate::after{content:"";width:7px;background:var(--blue)}
.plate-txt{padding:0 7px;font-weight:800;font-size:12px;letter-spacing:.6px;display:flex;align-items:center;color:#0b1220;white-space:nowrap;font-family:"Arial Narrow","Roboto Condensed",Arial,sans-serif}
.plate.plate-sm{height:22px}.plate.plate-sm .plate-txt{font-size:11px;padding:0 5px}.plate.plate-sm::before,.plate.plate-sm::after{width:5px}
.plate.plate-lg{height:36px}.plate.plate-lg .plate-txt{font-size:17px;padding:0 10px}.plate.plate-lg::before,.plate.plate-lg::after{width:10px}
.plates{display:flex;gap:4px;align-items:center;flex-wrap:wrap}

/* ---------- campi ---------- */
.input,.select{width:100%;height:38px;border:1px solid var(--line-strong);border-radius:9px;padding:0 11px;background:#fff;outline:0;min-width:0}
textarea.input{height:auto;padding:9px 11px;resize:vertical;line-height:1.4}
.input:focus,.select:focus{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-100)}
.input[readonly]{background:var(--gray-bg)}
.input.invalid,.select.invalid,.select.needs{border-color:var(--red);box-shadow:0 0 0 3px var(--red-bg)}
.select{appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23667085' stroke-width='2'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 9px center;background-size:16px;padding-right:30px}
.field{display:flex;flex-direction:column;gap:5px;min-width:0}
.field-label{font-size:12px;font-weight:700;color:var(--ink-2)}
.field-hint{font-size:11px;color:var(--muted)}
.req{color:var(--red);font-style:normal}
.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 14px}
.form-grid.cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}
.form-grid.cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}
.form-grid.cols-5{grid-template-columns:repeat(5,minmax(0,1fr))}
.span-2{grid-column:span 2}.span-3{grid-column:span 3}.span-4{grid-column:1/-1}.span-all{grid-column:1/-1}
.form-sep{font-weight:800;font-size:13px;padding-top:8px;border-top:1px dashed var(--line);margin-top:4px}
.form-sep small{display:block;font-weight:500;color:var(--muted)}
.form-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:6px}
.check{display:inline-flex;align-items:center;gap:8px;cursor:pointer;font-weight:600;font-size:13px;user-select:none}
.check input{width:17px;height:17px;accent-color:var(--primary)}
.check.sm{font-size:12px}
.static{height:38px;display:flex;align-items:center;gap:6px}
.dt{display:grid;grid-template-columns:1fr 110px;gap:6px}
.qty{display:flex;align-items:center;gap:5px}.qty span{color:var(--muted);font-size:12px}
.notice{display:flex;gap:9px;align-items:flex-start;padding:10px 12px;border-radius:9px;background:var(--orange-bg);color:var(--orange-700);font-size:13px;flex-wrap:wrap}
.notice svg{width:17px;height:17px;flex:0 0 auto;margin-top:1px}
.notice.info{background:var(--primary-50);color:var(--blue)}
.notice .check{margin-left:auto}
.inline-new{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.inline-new .input{flex:1;min-width:150px}
.file-pick{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--muted)}
.file-pick input{max-width:220px}
.sum-line{text-align:right;font-size:13px}

/* tendine di ricerca (flottanti sopra tutto) */
.combo{position:relative}
.combo .input{padding-right:34px}
.combo-ic{position:absolute;right:10px;top:50%;transform:translateY(-50%);color:var(--muted-2);pointer-events:none;width:16px;height:16px}
.combo-lg .input{height:46px;font-size:15px;border-width:2px}
.combo-drop{position:fixed;z-index:200;max-height:min(360px,60vh);overflow:auto;background:#fff;border:1px solid var(--line-strong);border-radius:10px;box-shadow:var(--shadow-lg);padding:5px}
.combo-item{display:flex;align-items:center;gap:10px;width:100%;padding:8px 10px;border-radius:7px;text-align:left}
.combo-item>span:not(.avatar):not(.plate):not(.mono){display:flex;flex-direction:column;min-width:0}
.combo-item small{color:var(--muted)}
.combo-item:hover,.combo-item.active{background:var(--primary-50)}
.combo-item .mono{min-width:78px;font-size:12px;color:var(--ink-2)}
.combo-create{color:var(--primary);font-weight:700;border-top:1px dashed var(--line);margin-top:3px}
.combo-empty{padding:12px;color:var(--muted);font-size:13px}
.combo-group{font-size:11px;font-weight:800;letter-spacing:1px;text-transform:uppercase;color:var(--muted);padding:8px 10px 3px}
.search-drop .combo-item svg{color:var(--primary)}

/* ---------- toolbar / filtri ---------- */
.toolbar{display:flex;align-items:center;gap:8px;padding:10px 12px;flex-wrap:wrap}
.toolbar .select{width:auto;min-width:130px;height:36px}
.toolbar-fill{flex:1 1 240px;min-width:200px;display:flex;align-items:center;gap:10px}
.tb-title{font-size:15px}
.search-box{position:relative;flex:1;min-width:0}
.search-box svg{position:absolute;left:10px;top:50%;transform:translateY(-50%);color:var(--muted-2);width:16px;height:16px}
.search-box .input{padding-left:34px;height:36px}
.search-box.sm .input{height:34px}
.filter-field{display:flex;align-items:center;gap:6px;font-size:12px;font-weight:700;color:var(--muted)}
.filter-field .select,.filter-field .input{width:auto;height:36px}
.seg{display:inline-flex;background:var(--gray-bg);border-radius:10px;padding:3px;gap:2px;flex-wrap:wrap}
.seg-btn{height:30px;padding:0 10px;border-radius:8px;font-weight:700;font-size:12px;color:var(--ink-2);display:inline-flex;align-items:center;gap:6px;white-space:nowrap}
.seg-btn.active{background:#fff;color:var(--primary);box-shadow:0 1px 3px rgba(16,24,40,.12)}
.seg-count{min-width:20px;height:18px;border-radius:9px;background:var(--line);font-size:11px;display:grid;place-items:center;padding:0 5px}
.seg-btn.active .seg-count{background:var(--primary);color:#fff}

/* ---------- KPI ---------- */
.kpi-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:12px}
.kpi{display:flex;align-items:center;gap:12px;background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:13px 14px;box-shadow:var(--shadow);min-width:0;height:100%}
.kpi-btn{display:block;text-align:left;border-radius:var(--radius)}
.kpi-btn:hover .kpi{border-color:var(--blue-line)}
.kpi-ic{width:40px;height:40px;border-radius:11px;display:grid;place-items:center;flex:0 0 auto;background:var(--blue-bg);color:var(--blue)}
.tone-green .kpi-ic{background:var(--green-bg);color:var(--green)}.tone-orange .kpi-ic{background:var(--orange-bg);color:var(--orange)}.tone-red .kpi-ic{background:var(--red-bg);color:var(--red)}.tone-violet .kpi-ic{background:var(--violet-bg);color:var(--violet)}
.kpi-body{min-width:0}
.kpi-label{font-size:11px;font-weight:800;letter-spacing:.5px;text-transform:uppercase;color:var(--muted)}
.kpi-value{font-size:20px;font-weight:800;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.kpi-sub{font-size:12px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

/* ---------- tabelle ---------- */
.table-card{display:flex;flex-direction:column;overflow:hidden}
.table-wrap{overflow:auto;min-height:0;flex:1}
.table{width:100%;border-collapse:separate;border-spacing:0;font-size:13px}
.table th{position:sticky;top:0;z-index:2;background:var(--navy);color:var(--blue-bg);text-align:left;font-size:11px;font-weight:800;letter-spacing:.3px;text-transform:uppercase;padding:11px 12px;white-space:nowrap}
.table th.sortable{cursor:pointer;user-select:none}.table th.sortable:hover{background:#13304f}
.table th.sorted{background:var(--primary)}
.sort-ic{margin-left:5px;opacity:.65;font-size:11px}
.table td{padding:9px 12px;border-bottom:1px solid var(--line);vertical-align:middle}
.table tbody tr{transition:background .1s}
.table tbody tr[data-act]{cursor:pointer}
.table tbody tr:hover{background:var(--primary-50)}
.table tr.row-late td:first-child{box-shadow:inset 3px 0 0 var(--red)}
.table tr.empty-row:hover{background:none}
.table tfoot td{font-weight:800;background:var(--gray-bg);border-bottom:0}
.table .money,.table .num{text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}
.table th.money,.table th.num{text-align:right}
.table .col-actions{white-space:nowrap;text-align:right;width:1%}
.table.mini th{position:static;background:var(--gray-bg);color:var(--ink-2)}
.cell-2{display:flex;flex-direction:column;min-width:0}
.cell-2 strong{font-weight:700;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:220px}
.cell-2 small{color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:220px}
.cell-2.clamp strong,.cell-2.clamp small{max-width:200px}
.table .mono,.table .code-chip,.table .badge,.table .plate{white-space:nowrap}
.clamp-1{display:block;max-width:220px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ops{display:flex;align-items:center;gap:4px;white-space:nowrap}
.plan-cell{display:flex;flex-direction:column;text-align:left;padding:3px 6px;border-radius:7px;border:1px solid var(--blue-line);background:var(--primary-50)}
.plan-cell strong{color:var(--primary);font-size:12px}.plan-cell small{color:var(--muted)}
.table-foot{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:9px 12px;border-top:1px solid var(--line);font-size:12px;color:var(--muted);flex-wrap:wrap}
.pager{display:flex;gap:4px;align-items:center}
.page-btn{min-width:32px;height:32px;border-radius:8px;border:1px solid var(--line);background:#fff;font-weight:700;font-size:12px}
.page-btn.active{background:var(--primary);border-color:var(--primary);color:#fff}
.page-btn:disabled{opacity:.4;cursor:default}
.page-gap{padding:0 3px;color:var(--muted)}
.sub-row td{background:var(--blue-bg);padding:0 12px 12px}
.sub-hist{border:1px solid var(--line);border-radius:9px;overflow:hidden;background:#fff}
.hist-btn{display:inline-flex;align-items:center;gap:6px;text-align:left;font-size:12px;font-weight:700}
.hist-btn span{display:flex;flex-direction:column;white-space:nowrap}.hist-btn small{color:var(--muted);font-weight:500}
.hist-btn svg{width:15px;height:15px;transition:transform .15s}.hist-btn.open svg{transform:rotate(180deg)}
.mv-btns{display:flex;gap:4px}
.mv-btn{height:26px;padding:0 8px;border-radius:7px;font-size:11px;font-weight:800;white-space:nowrap}
.mv-btn.in{background:var(--green-bg);color:var(--green)}.mv-btn.out{background:var(--orange-bg);color:var(--orange)}

/* ---------- dashboard ---------- */
.hero{display:flex;align-items:center;gap:22px;flex-wrap:wrap;background:linear-gradient(120deg,#0b1d33,var(--blue-700) 55%,var(--blue));color:#fff;border-radius:var(--radius);padding:18px 22px;box-shadow:var(--shadow)}
.hero-kicker{font-size:11px;font-weight:800;letter-spacing:1.4px;text-transform:uppercase;color:var(--blue-line)}
.hero-date{font-size:17px;font-weight:800}
.hero-main{flex:1;min-width:220px;border-left:1px solid rgba(255,255,255,.18);padding-left:22px}
.hero-big{font-size:26px;font-weight:800}
.hero-sub{color:var(--blue-line);font-size:13px}
.hero-actions{display:flex;gap:8px;flex-wrap:wrap}
.tiles-card{display:flex;gap:16px;padding:12px;flex-wrap:wrap}
.tiles-group{flex:1 1 380px;min-width:0}
.tiles-group:first-child{flex-basis:560px}
.tiles-title{font-size:11px;font-weight:800;letter-spacing:.8px;text-transform:uppercase;color:var(--muted);margin:0 0 8px 2px}
.tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(104px,1fr));gap:8px}
.tile{display:flex;flex-direction:column;align-items:flex-start;gap:2px;padding:10px 11px;border:1px solid var(--line);border-radius:10px;text-align:left;background:#fff;min-width:0}
.tile:hover{border-color:var(--blue-line)}
.tile.active{border-color:var(--primary);background:var(--primary-50);box-shadow:0 0 0 2px var(--primary-100)}
.tile-ic svg{width:17px;height:17px;color:var(--primary)}
.tone-orange .tile-ic svg{color:var(--orange)}.tone-green .tile-ic svg{color:var(--green)}.tone-violet .tile-ic svg{color:var(--violet)}
.tile-n{font-size:20px;font-weight:800;line-height:1.1}
.tile-l{font-size:11px;font-weight:700;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}
.dash-grid{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(300px,1fr);gap:12px;align-items:start}
.dash-list,.team-list{display:flex;flex-direction:column}
.dash-row{display:flex;align-items:center;gap:12px;padding:11px 16px;border-bottom:1px solid var(--line);text-align:left;width:100%}
.dash-row:hover{background:var(--primary-50)}
.dash-time{display:flex;flex-direction:column;width:96px;flex:0 0 auto}
.dash-time b{font-size:17px}.dash-time small{font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.4px}
.dash-row.tone-red .dash-time{color:var(--red)}.dash-row.tone-orange .dash-time{color:var(--orange)}.dash-row.tone-blue .dash-time{color:var(--primary)}.dash-row.tone-violet .dash-time{color:var(--violet)}
.dash-main{flex:1;min-width:0;display:flex;flex-direction:column}
.dash-main strong,.dash-main small,.dash-op strong,.dash-op small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.dash-main small,.dash-op small{color:var(--muted)}
.dash-op{width:170px;display:flex;flex-direction:column;flex:0 0 auto}
.team-row{display:flex;align-items:center;gap:11px;padding:11px 16px;border-bottom:1px solid var(--line);text-align:left;width:100%}
.team-row:hover{background:var(--primary-50)}
.team-main{flex:1;min-width:0;display:flex;flex-direction:column;gap:3px}
.team-main small{color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.load{display:block;height:5px;border-radius:3px;background:var(--line);overflow:hidden;width:100%}
.load>span{display:block;height:100%;background:var(--primary);border-radius:3px}
.load.over>span{background:var(--red)}

/* ---------- nuovo lavoro / documenti ---------- */
.form-head{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.form-title{display:flex;align-items:center;gap:10px;flex:1;min-width:0;flex-wrap:wrap}
.form-title h2{font-size:20px;font-weight:800;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}
.dirty{font-size:12px;font-weight:700;color:var(--orange);background:var(--orange-bg);padding:3px 8px;border-radius:7px}
.wf-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.25fr);gap:12px;align-items:start}
.wf-col{display:flex;flex-direction:column;gap:12px;min-width:0}
.wf-footer{grid-column:1/-1}
.step{width:22px;height:22px;border-radius:50%;background:var(--primary);color:#fff;font-size:12px;display:inline-grid;place-items:center}
.wf-sub{font-size:11px;font-weight:800;letter-spacing:.8px;text-transform:uppercase;color:var(--muted);margin:14px 0 6px}
.entity-box{border:1px solid var(--line);border-radius:10px;padding:12px;display:flex;flex-direction:column;gap:10px;background:var(--blue-bg)}
.entity-top{display:flex;align-items:center;gap:11px}
.entity-title{flex:1;min-width:0;display:flex;flex-direction:column}
.entity-title strong{font-size:15px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.entity-title small{color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.entity-actions{display:flex;gap:2px}
.entity-empty{display:flex;align-items:center;gap:10px;flex-wrap:wrap;border:1px dashed var(--line-strong);border-radius:10px;padding:12px;color:var(--muted);font-size:13px}
.entity-empty>svg{color:var(--muted-2)}
.combo-inline{flex:1 1 200px}
.facts{display:grid;grid-template-columns:repeat(auto-fit,minmax(110px,1fr));gap:8px}
.facts span{display:flex;flex-direction:column;font-size:13px}.facts small{color:var(--muted);font-size:11px}
.km-field{max-width:260px}
.pick-list{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}
.pick-title{width:100%;font-size:12px;font-weight:700;color:var(--muted)}
.pick-item{display:flex;align-items:center;gap:7px;padding:5px 9px 5px 5px;border:1px solid var(--line);border-radius:9px;background:#fff;font-size:12px;font-weight:600}
.pick-item:hover{border-color:var(--primary);background:var(--primary-50)}
.lines-wrap{overflow-x:auto}
.client-row{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);gap:10px;align-items:end;border:1px solid var(--line);border-radius:10px;padding:10px 12px;background:var(--blue-bg)}
.client-row.linked{border-color:var(--green-line);background:var(--green-bg)}
.client-row .field{margin:0}
.client-state{grid-column:1/-1;display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.labor-code{display:inline-flex;align-items:center;gap:6px;padding:9px 0;white-space:nowrap;font-family:ui-monospace,Consolas,monospace;font-size:12px;font-weight:800;color:var(--primary)}
.lines-table .code-combo{width:132px}
.lines-table input[name=price]{width:84px;min-width:0}
.lines-table td[data-label=Totale]{white-space:nowrap}
.lines-table .code-combo .input{font-family:ui-monospace,Consolas,monospace;text-transform:uppercase}
.lines-table td[data-label=Descrizione]{min-width:150px;width:100%}
.labor-code svg{width:15px;height:15px}
.lines-table th.th-wrap{white-space:normal;line-height:1.15}
.work-form .lines-table .qty .input{width:58px;flex:0 0 58px}
.btn-warning{background:var(--orange-bg);border-color:var(--orange-400);color:var(--orange-700)}.btn-warning:hover{background:var(--orange-line)}
.deliver-box{display:flex;flex-direction:column;gap:12px}
.deliver-head{display:flex;align-items:center;gap:10px}.deliver-head div{display:flex;flex-direction:column}.deliver-head small{color:var(--muted)}
.deliver-total{display:flex;justify-content:space-between;align-items:baseline;padding:10px 12px;border-radius:9px;background:var(--primary-50)}
.deliver-total b{font-size:20px}
.deliver-q{margin:0;font-size:15px;font-weight:800}
@media (max-width:699px){.client-row{grid-template-columns:1fr}}
.lines-table td{vertical-align:top;padding:8px 8px}
.lines-table th{position:static}
.lines-table .input,.lines-table .select{height:36px}
.lines-table .qty .input{width:68px;flex:0 0 68px}
.lines-table input[name=price]{min-width:76px}
.lines-table input[name=discount]{min-width:56px}
.lines-table td:first-child{width:1%}
.line-kind{display:inline-flex;align-items:center;gap:5px;font-size:11px;font-weight:800;color:var(--ink-2);padding:8px 0;white-space:nowrap}
.line-kind svg{width:15px;height:15px;color:var(--muted)}
.line-kind.labor svg{color:var(--primary)}
.line-sub{display:block;color:var(--muted);font-size:11px;margin-top:3px}
.line-labor{background:var(--blue-bg)}
.lines-table .money{padding-top:16px}
.totals{display:flex;justify-content:flex-end;gap:22px;flex-wrap:wrap;padding:12px 16px;border-top:1px solid var(--line)}
.totals span{display:flex;flex-direction:column;align-items:flex-end}
.totals small{color:var(--muted);font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.4px}
.totals b{font-size:15px}
.totals .grand b{font-size:20px;color:var(--primary)}
.wf-footer{display:flex;align-items:flex-end;gap:12px;padding:12px 14px;flex-wrap:wrap;position:sticky;bottom:0;z-index:5;box-shadow:0 -6px 20px rgba(16,24,40,.08)}
.wf-footer .field{flex:0 1 auto}
.wf-footer .dt{grid-template-columns:150px 110px}
.wf-total{margin-left:auto;display:flex;flex-direction:column;align-items:flex-end}
.wf-total small{color:var(--muted);font-size:11px;font-weight:700}.wf-total strong{font-size:20px;color:var(--primary)}
.wf-buttons{display:flex;gap:8px}
.doc-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;align-items:start}
.doc-totals{display:flex;gap:16px;align-items:flex-end;justify-content:space-between;flex-wrap:wrap;padding:12px 16px;border-top:1px solid var(--line)}
.doc-totals .form-grid{flex:1 1 420px}
.doc-totals .totals{border:0;padding:0}
.form-foot{display:flex;gap:8px;align-items:center;position:sticky;bottom:0;background:linear-gradient(transparent,var(--bg) 30%);padding-top:10px}
.owner-chip{display:flex;align-items:center;gap:9px;padding:6px 6px 6px 8px;border:1px solid var(--line);border-radius:10px;background:var(--blue-bg);min-height:38px}
.owner-chip>span:not(.avatar):not(.plate):not(.mono){flex:1;min-width:0;display:flex;flex-direction:column}
.owner-chip small{color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.owner-pick{display:flex;gap:8px;align-items:center}.owner-pick .combo{flex:1}
.check-list{display:flex;flex-direction:column;gap:4px;max-height:300px;overflow:auto}
.check-row{display:flex;align-items:center;gap:10px;padding:8px 10px;border:1px solid var(--line);border-radius:9px;cursor:pointer}
.check-row:hover{background:var(--primary-50)}
.check-row input{width:17px;height:17px;accent-color:var(--primary)}
.compare{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:12px}
.compare span{display:flex;flex-direction:column;padding:9px 11px;border-radius:9px;background:var(--gray-bg)}
.compare small{color:var(--muted);font-size:11px;font-weight:700}
.compare .good{background:var(--green-bg);color:var(--green)}.compare .bad{background:var(--red-bg);color:var(--red)}

/* ---------- finestre ---------- */
.modal-backdrop{position:fixed;inset:0;background:rgba(10,20,35,.48);z-index:100;display:flex;align-items:flex-start;justify-content:center;padding:5vh 16px;overflow-y:auto;animation:fade .15s}
.modal{background:#fff;border-radius:14px;box-shadow:var(--shadow-lg);width:100%;max-width:640px;display:flex;flex-direction:column;max-height:90vh}
.modal form{display:flex;flex-direction:column;min-height:0;max-height:90vh}
.modal-sm{max-width:440px}.modal-lg{max-width:920px}.modal-xl{max-width:1180px}
.modal-head{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:14px 18px;border-bottom:1px solid var(--line)}
.modal-head h2{font-size:17px;font-weight:800}
.modal-body{padding:18px;overflow-y:auto;min-height:0}
.modal-foot{display:flex;gap:8px;justify-content:flex-end;align-items:center;padding:12px 18px;border-top:1px solid var(--line);flex-wrap:wrap}
.confirm-text{margin:0;font-size:15px}
.detail-grid{display:flex;flex-direction:column;gap:12px}
.detail-facts{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:10px 16px}
.detail-facts div{display:flex;flex-direction:column}.detail-facts small{color:var(--muted);font-size:11px;font-weight:700;text-transform:uppercase}
.detail-grid .kpi-row{grid-template-columns:repeat(auto-fit,minmax(160px,1fr))}
.history{display:flex;flex-direction:column;gap:4px}
.history-row{display:flex;align-items:center;gap:10px;padding:7px 10px;border:1px solid var(--line);border-radius:9px;font-size:13px;text-align:left;width:100%;flex-wrap:wrap}
button.history-row:hover{background:var(--primary-50)}
.doc-preview{font-size:13px}
.doc-preview .ph,.doc-preview .pg{display:flex;justify-content:space-between;gap:20px;border-bottom:1px solid var(--line);padding-bottom:10px;margin-bottom:10px;flex-wrap:wrap}
.doc-preview table{width:100%;border-collapse:collapse}.doc-preview th,.doc-preview td{padding:6px;border-bottom:1px solid var(--line);text-align:left}.doc-preview .r{text-align:right}
.doc-preview h1{font-size:17px}.doc-preview h2{font-size:15px}.doc-preview h3{font-size:13px;margin:8px 0 2px}

/* popover */
.popover{position:fixed;z-index:150;background:#fff;border:1px solid var(--line-strong);border-radius:12px;box-shadow:var(--shadow-lg);animation:fade .12s;max-width:calc(100vw - 16px)}
.menu-list{display:flex;flex-direction:column;padding:6px;min-width:220px;max-height:70vh;overflow:auto}
.menu-title{font-size:11px;font-weight:800;letter-spacing:.7px;text-transform:uppercase;color:var(--muted);padding:6px 8px}
.menu-item{display:flex;align-items:center;gap:9px;padding:8px;border-radius:8px;text-align:left;font-weight:600;font-size:13px}
.menu-item:hover{background:var(--primary-50)}
.menu-item.active{background:var(--primary-100)}
.menu-item small{margin-left:auto;color:var(--muted)}
.pop-wide .menu-list{width:min(420px,calc(100vw - 16px))}
.alert-item{align-items:flex-start}.alert-item svg{width:17px;height:17px;margin-top:1px}
.alert-item.tone-red svg{color:var(--red)}.alert-item.tone-orange svg{color:var(--orange)}

/* messaggi */
#toastRoot{position:fixed;left:50%;bottom:18px;transform:translateX(-50%);z-index:300;display:flex;flex-direction:column;gap:8px;align-items:center;width:min(560px,calc(100vw - 24px));pointer-events:none}
.toast{pointer-events:auto;display:flex;align-items:center;gap:10px;background:#101828;color:#fff;padding:10px 10px 10px 14px;border-radius:11px;box-shadow:var(--shadow-lg);font-size:13px;animation:up .2s;width:100%}
.toast>span{flex:1}
.toast-success{background:#0b3d2a}.toast-warning{background:var(--orange-700)}.toast-danger{background:var(--red-700)}
.toast-action{background:rgba(255,255,255,.16);color:#fff;font-weight:800;border-radius:8px;padding:6px 12px;white-space:nowrap}
.toast-action:hover{background:rgba(255,255,255,.26)}
.toast-x{color:#fff;opacity:.6;width:26px;height:26px;display:grid;place-items:center}.toast-x svg{width:15px;height:15px}
.toast.out{opacity:0;transform:translateY(8px);transition:.2s}
@keyframes fade{from{opacity:0}to{opacity:1}}
@keyframes up{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}

/* ---------- grafici ---------- */
.bar-chart{display:flex;gap:8px;height:var(--h)}
.bc-axis{display:flex;flex-direction:column;justify-content:space-between;font-size:11px;color:var(--muted);text-align:right;padding-bottom:22px;white-space:nowrap}
.bc-plot{flex:1;display:flex;gap:6px;align-items:stretch;border-left:1px solid var(--line);border-bottom:1px solid var(--line);background:repeating-linear-gradient(to top,transparent 0,transparent calc(50% - 1px),var(--line) calc(50% - 1px),var(--line) 50%);min-width:0}
.bc-group{flex:1;display:flex;flex-direction:column;min-width:0}
.bc-bars{flex:1;display:flex;align-items:flex-end;justify-content:center;gap:3px;padding:0 4%}
.bc-bar{flex:1;max-width:30px;border-radius:5px 5px 0 0;min-height:1px}
.bc-label{height:22px;font-size:11px;color:var(--muted);text-align:center;padding-top:5px;white-space:nowrap;overflow:hidden}
.c1{background:var(--c1)}.c2{background:var(--c2)}.c3{background:var(--c3)}.c4{background:var(--c4)}.c5{background:var(--c5)}.c6{background:var(--c6)}
.legend{display:flex;gap:16px;flex-wrap:wrap;margin-top:10px;font-size:12px;color:var(--ink-2)}
.legend i{display:inline-block;width:11px;height:11px;border-radius:3px;margin-right:6px;vertical-align:-1px}
.hbars{display:flex;flex-direction:column;gap:10px}
.hbar{display:grid;grid-template-columns:minmax(120px,190px) minmax(0,1fr) auto;gap:10px;align-items:center;font-size:13px}
.hbar>div{height:10px;background:var(--gray-bg);border-radius:5px;overflow:hidden}
.hbar>div i{display:block;height:100%;border-radius:5px}
.hbar b{white-space:nowrap;font-size:12px}
.cat-list{display:flex;flex-direction:column;gap:10px}
.cat-row{display:flex;gap:10px;align-items:flex-start}
.cat-n{width:26px;height:26px;border-radius:7px;background:var(--primary-50);color:var(--primary);font-weight:800;font-size:11px;display:grid;place-items:center;flex:0 0 auto}
.cat-main{flex:1;min-width:0}
.cat-top{display:flex;justify-content:space-between;gap:10px}
.cat-bar{height:8px;background:var(--gray-bg);border-radius:4px;overflow:hidden;margin:5px 0 3px}.cat-bar i{display:block;height:100%;border-radius:4px}
.cat-main small{color:var(--muted)}
.day-bars{display:flex;gap:3px;height:170px;align-items:stretch}
.day-bar{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;gap:3px;min-width:0}
.day-bar span{width:100%;max-width:22px;background:var(--c1);border-radius:4px 4px 0 0;min-height:2px}
.day-bar.empty span{background:var(--line)}
.day-bar small{font-size:11px;color:var(--muted)}
.day-bar:hover span{background:var(--primary-700)}
.nav-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px}
.nav-card{display:flex;align-items:center;gap:12px;background:#fff;border:1px solid var(--line);border-top:3px solid var(--blue);border-radius:var(--radius);padding:14px;box-shadow:var(--shadow);text-align:left}
.nav-card.tone-green{border-top-color:var(--green)}.nav-card.tone-violet{border-top-color:var(--violet)}.nav-card.tone-orange{border-top-color:var(--orange)}.nav-card.tone-red{border-top-color:var(--red)}
.nav-card>span:nth-child(2){flex:1;display:flex;flex-direction:column;min-width:0}
.nav-card small{font-weight:700;color:var(--muted)}.nav-card b{font-size:17px}.nav-card em{font-style:normal;color:var(--muted);font-size:12px}
.nav-card:hover{border-color:var(--blue-line)}
.trend-tabs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.trend-tab{display:flex;align-items:center;gap:10px;padding:12px 14px;border:1px solid var(--line);border-radius:var(--radius);background:#fff;text-align:left}
.trend-tab span{display:flex;flex-direction:column}.trend-tab small{color:var(--muted)}
.trend-tab.active{border-color:var(--primary);box-shadow:0 0 0 2px var(--primary-100)}
.trend-tab svg{color:var(--primary)}
.kpi-row.five{grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}

/* ---------- impostazioni ---------- */
.settings-grid{display:grid;grid-template-columns:240px minmax(0,1fr);gap:12px;align-items:start}
.settings-nav{display:flex;flex-direction:column;padding:8px;gap:2px}
.settings-tab{display:flex;align-items:center;gap:10px;padding:10px;border-radius:9px;font-weight:700;text-align:left;color:var(--ink-2)}
.settings-tab:hover{background:var(--gray-bg)}.settings-tab.active{background:var(--primary-100);color:var(--primary)}
.days-pick{display:flex;flex-wrap:wrap;gap:12px}
.op-list{display:flex;flex-direction:column;gap:6px;margin:10px 0}
.op-row{display:flex;align-items:center;gap:8px}.op-row .input{max-width:320px}
.op-row.off{opacity:.55}
.backup-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px;margin-bottom:12px}
.backup-card{border:1px solid var(--line);border-radius:var(--radius);padding:16px;display:flex;flex-direction:column;gap:8px;align-items:flex-start}
.backup-card>svg{width:24px;height:24px;color:var(--primary)}
.backup-card p{margin:0;color:var(--muted);font-size:13px;flex:1}
.backup-card.danger>svg{color:var(--red)}

/* ============================================================
   RESPONSIVE
   ============================================================ */
@media (max-width:1599px){
  .hide-lg{display:none!important}
}
@media (max-width:1399px){
  .hide-md{display:none!important}
  .wf-grid{grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr)}
  .clock{display:none}
}
@media (max-width:1199px){
  .dash-grid{grid-template-columns:1fr}
  .wf-grid{grid-template-columns:1fr}
  .doc-grid{grid-template-columns:1fr}
  .grid-2,.grid-2.wide-right{grid-template-columns:1fr}
}
@media (max-width:1099px){
  .sidebar{position:fixed;left:0;top:0;bottom:0;transform:translateX(-100%);transition:transform .2s;width:min(284px,86vw)!important;box-shadow:var(--shadow-lg)}
  body.nav-open .sidebar{transform:none}
  body.nav-open .nav-backdrop{display:block;position:fixed;inset:0;background:rgba(10,20,35,.45);z-index:25}
  body.sidebar-collapsed .brand-copy,body.sidebar-collapsed .nav-label,body.sidebar-collapsed .nav-caret,body.sidebar-collapsed .nav-section-title,body.sidebar-collapsed .sidebar-footer,body.sidebar-collapsed .nav-badge{display:revert}
  body.sidebar-collapsed .nav-link{justify-content:flex-start;padding:9px 12px}
  .menu-btn{display:grid}
  .global-search{width:clamp(180px,32vw,320px)}
}
@media (max-width:899px){
  :root{--gutter:12px;--topbar-h:58px}
  .settings-grid{grid-template-columns:1fr}
  .settings-nav{flex-direction:row;overflow-x:auto}
  .settings-tab span{white-space:nowrap}
  .trend-tabs{grid-template-columns:1fr}
  .hero-main{border-left:0;padding-left:0}
  .form-grid.cols-4{grid-template-columns:repeat(2,minmax(0,1fr))}
  .form-grid.cols-4 .span-3{grid-column:1/-1}
}
@media (max-width:699px){
  .hide-sm{display:none!important}
  .global-search{display:none;position:absolute;left:8px;right:8px;top:calc(var(--topbar-h) - 2px);width:auto;box-shadow:var(--shadow-lg);z-index:30}
  body.search-open .global-search{display:flex}
  .search-toggle{display:grid}
  .user-name{display:none}
  .page-heading h1{font-size:15px}
  .page-title{font-size:17px}
  .kpi-row{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
  .kpi{padding:10px;gap:9px}.kpi-ic{width:34px;height:34px}.kpi-value{font-size:17px}
  .form-grid,.form-grid.cols-3,.form-grid.cols-4{grid-template-columns:1fr}
  .span-2,.span-3{grid-column:auto}
  .toolbar .select,.filter-field{flex:1 1 140px}.filter-field .select{width:100%}
  .page-fit{overflow-y:auto}
  .page-fit>.fill{flex:none;min-height:420px}
  .dash-op{display:none}.dash-time{width:72px}
  .hero{padding:14px}.hero-big{font-size:17px}
  .wf-footer{position:static}
  .wf-total{margin-left:0}
  .lines-table thead{display:none}
  .lines-table,.lines-table tbody,.lines-table tr,.lines-table td{display:block;width:auto!important}
  .lines-table tr{border-bottom:1px solid var(--line);padding:8px 4px;position:relative}
  .lines-table td{border:0;padding:4px 8px}
  .lines-table td[data-label]::before{content:attr(data-label);display:block;font-size:11px;font-weight:700;color:var(--muted)}
  .lines-table td.col-actions{position:absolute;top:6px;right:4px}
  .lines-table .money{padding-top:4px;text-align:left}
  .compare{grid-template-columns:1fr}
  .hbar{grid-template-columns:1fr auto}.hbar>div{grid-column:1/-1;order:3}
  .modal-backdrop{padding:0;align-items:stretch}
  .modal,.modal form{max-height:100vh;border-radius:0;max-width:none!important}
}

/* ---------- stampa ---------- */
.print-frame{position:fixed;width:0;height:0;border:0;right:0;bottom:0}
@media print{
  body{overflow:visible;background:#fff}
  .sidebar,.topbar,#toastRoot,.page-actions,.toolbar,.pager,.col-actions,.ag-tools,.dock,.nav-backdrop{display:none!important}
  .app-shell,.workspace,.app-content,.page,.page-fit,.page-scroll,.table-wrap,.cal-scroll{height:auto!important;overflow:visible!important;display:block}
  .card{box-shadow:none;break-inside:avoid}
  .table th{background:var(--n-100)!important;color:#000!important;position:static}
}

/* ---------- selettore veicolo a colonne ---------- */
[data-upper]{text-transform:uppercase}
.plate-input{font-size:17px;font-weight:800;letter-spacing:1px;height:42px}
.vp-top{display:grid;grid-template-columns:minmax(180px,240px) minmax(0,1fr) auto;gap:14px;align-items:end;margin-bottom:12px}
.vp-mode .seg-btn{min-width:74px;justify-content:center;font-weight:800;letter-spacing:.5px}
.vp-box{margin-bottom:6px}
.vp-cols{display:grid;grid-template-columns:repeat(var(--n),minmax(175px,1fr));gap:10px;overflow-x:auto;padding-bottom:2px}
.vp-col{display:flex;flex-direction:column;height:300px;border:1px solid var(--line-strong);border-radius:12px;overflow:hidden;background:#fff;min-width:0;transition:opacity .15s,border-color .15s}
.vp-col.done{border-color:var(--blue-line)}
.vp-col.off{opacity:.55}
.vp-head{background:var(--navy);color:#fff;padding:0 6px 0 12px;display:flex;align-items:center;gap:6px;height:54px;flex:0 0 54px}
.vp-head-txt{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}
.vp-title{font-size:11px;font-weight:800;letter-spacing:.6px;text-transform:uppercase;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.vp-head .req{color:var(--red-400);font-style:normal}
.vp-chosen{font-size:12px;color:var(--blue-400);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;height:16px;line-height:16px}
.vp-add{width:32px;height:32px;border-radius:8px;display:grid;place-items:center;background:rgba(255,255,255,.12);color:#fff;flex:0 0 auto}
.vp-add:hover:not(:disabled){background:var(--primary)}
.vp-add:disabled{opacity:.35;cursor:not-allowed}
.vp-add svg{width:17px;height:17px}
.vp-search{position:relative;border-bottom:1px solid var(--line);flex:0 0 auto}
.vp-search svg{position:absolute;left:10px;top:50%;transform:translateY(-50%);width:15px;height:15px;color:var(--muted-2)}
.vp-search .input{border:0;border-radius:0;height:38px;padding-left:32px;box-shadow:none!important;font-size:13px}
.vp-search .input:disabled{background:var(--n-100)}
.vp-search.adding{background:var(--primary-50)}.vp-search.adding .input{background:var(--primary-50)}.vp-search.adding svg{color:var(--primary)}
.vp-list{flex:1;overflow-y:auto;padding:4px 6px 6px;overscroll-behavior:contain;overflow-anchor:none}
.vp-item{display:flex;align-items:center;gap:6px;width:100%;height:36px;flex:0 0 36px;padding:0 6px 0 10px;border-radius:7px;font-size:13px;text-transform:uppercase;border-bottom:1px solid var(--n-100);cursor:pointer;user-select:none}
.vp-item:hover,.vp-item:focus{background:var(--primary-50);outline:0}
.vp-item.sel{background:var(--primary-100);color:var(--primary);font-weight:800;box-shadow:inset 3px 0 0 var(--primary)}
.vp-item.inactive .vp-txt{color:var(--muted-2);text-decoration:line-through}
.vp-txt{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.vp-n{font-size:11px;font-weight:800;color:var(--muted);background:var(--gray-bg);border-radius:9px;padding:1px 7px;flex:0 0 auto}
.vp-tag{font-size:11px;font-weight:800;color:var(--violet);background:var(--violet-bg);border-radius:6px;padding:1px 5px;text-transform:uppercase;flex:0 0 auto}
.vp-acts{display:none;gap:2px;flex:0 0 auto}
.vp-item:hover .vp-acts,.vp-item.sel .vp-acts,.vp-item:focus-within .vp-acts{display:flex}
.vp-act{width:26px;height:24px;border-radius:6px;display:grid;place-items:center;color:var(--muted)}
.vp-act:hover{background:#fff;color:var(--primary)}.vp-act.danger:hover{color:var(--red)}.vp-act.ok{color:var(--green)}
.vp-act svg{width:15px;height:15px}
.vp-item.editing{cursor:default;background:#fff;box-shadow:inset 0 0 0 2px var(--primary)}
.vp-edit{height:30px;font-size:13px;text-transform:uppercase}
.vp-item.add{color:var(--primary);font-weight:800;text-transform:none;border:1px dashed var(--blue-line);margin-bottom:4px}
.vp-item.add svg{width:15px;height:15px}
.vp-empty{padding:14px 10px;color:var(--muted);font-size:12px;text-align:center}
.vp-path{display:flex;align-items:center;gap:8px;height:30px;padding:0 2px;font-size:13px;font-weight:700;color:var(--ink-2);white-space:nowrap;overflow:hidden}
.vp-path svg{width:16px;height:16px;color:var(--primary);flex:0 0 auto}
.vp-path span{overflow:hidden;text-overflow:ellipsis}
.vp-path i{color:var(--muted-2);font-style:normal;margin:0 3px}
.vp-tech{border-top:1px solid var(--line);margin-top:8px;padding-top:12px}
.vp-tech-title{font-size:11px;font-weight:800;letter-spacing:.6px;text-transform:uppercase;color:var(--primary);margin-bottom:8px}
.vp-tech-title small{text-transform:none;letter-spacing:0;color:var(--muted);font-weight:500;margin-left:6px}
.vp-more{border-top:1px solid var(--line);margin-top:12px;padding-top:10px}
.vp-more summary{cursor:pointer;font-weight:700;font-size:13px;color:var(--ink-2);display:flex;align-items:center;gap:6px;list-style:none;margin-bottom:6px}
.vp-more summary::-webkit-details-marker{display:none}
.vp-more summary svg{width:16px;height:16px;transition:transform .15s;transform:rotate(-90deg)}
.vp-more[open] summary svg{transform:none}
.vp-more-h{font-weight:700;font-size:13px;color:var(--ink-2);margin-bottom:8px}
/* pagina Catalogo veicoli */
.catalog-page .vp-page{flex:1;min-height:300px;display:flex;flex-direction:column;padding:12px}
.catalog-page .vp-box{flex:1;display:flex;flex-direction:column;min-height:0;margin:0}
.catalog-page .vp-cols{flex:1;min-height:0}
.catalog-page .vp-col{height:auto;min-height:240px}
.cat-panel{padding:14px 16px;flex:0 0 auto}
.cat-help{display:flex;gap:12px;align-items:flex-start;font-size:13px}
.cat-help>svg{width:20px;height:20px;color:var(--primary);flex:0 0 auto;margin-top:2px}
.cat-help ol{margin:6px 0;padding-left:20px;display:flex;flex-wrap:wrap;gap:4px 26px}
.cat-help li{color:var(--muted)}.cat-help li.ok{color:var(--green);font-weight:700}
.cat-tech-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;flex-wrap:wrap;margin-bottom:10px}
.cat-tech-head>div:first-child{display:flex;flex-direction:column}
@media (max-width:899px){
  .vp-top{grid-template-columns:1fr}
  .form-grid.cols-5{grid-template-columns:repeat(2,minmax(0,1fr))}
  .vp-col{height:260px}
  .catalog-page .vp-col{min-height:260px}
}

/* ===== V167 ===== */
.back-btn{flex:0 0 auto;border:1px solid var(--line);background:#fff}
.back-btn:hover{border-color:var(--primary);color:var(--primary)}
.page-head{align-items:center;min-height:0}
.page-head .page-sub{flex:1;min-width:200px}
.page-size{display:inline-flex;align-items:center;gap:6px;margin-left:auto;margin-right:8px}
.page-size .select{height:30px;padding:0 26px 0 8px;font-size:12px;width:auto}
.wf-sub small{font-weight:600;text-transform:none;letter-spacing:0;color:var(--muted-2)}
.wf-notes .card-head h3{display:flex;align-items:center;gap:7px}.wf-notes .card-head h3 svg{width:16px;height:16px;color:var(--muted)}
.wf-notes .card-head{gap:10px;flex-wrap:wrap}
.wf-notes .card-body{padding-top:10px}
.wf-notes textarea{width:100%;resize:vertical;background:var(--orange-bg);border-color:var(--orange-line)}
.owner-hint{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:8px;padding:8px 10px;border-radius:9px;background:var(--gray-bg);font-size:13px}
.owner-hint svg{width:16px;height:16px;color:var(--muted)}.owner-hint .btn{margin-left:auto}
.lines-table select.is-fixed{background-color:var(--orange-bg);border-color:var(--orange-400);color:var(--orange-700);font-weight:700}
.totals{align-items:flex-end}
.totals .disc{align-items:flex-end}.totals .disc i{font-style:normal;font-weight:600;font-size:12px}
.link-btn{border:0;background:none;padding:0;color:var(--primary);font-size:11px;font-weight:700;cursor:pointer;text-decoration:underline}
.tot-edit{display:flex;gap:6px;align-items:center}
.tot-edit .input{width:120px;height:40px;text-align:right;font-size:17px;font-weight:800;color:var(--primary);border-color:var(--blue-line);background:var(--primary-50)}
.tot-edit .input:focus{background:#fff}
.wf-adv{padding:10px 16px 14px;border-top:1px dashed var(--line)}
.adv-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.adv-label{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:800;text-transform:uppercase;letter-spacing:.4px;color:var(--muted);margin-right:4px}
.adv-label svg{width:15px;height:15px}
.adv-chip{display:inline-flex;align-items:center;gap:5px;padding:4px 6px 4px 10px;border-radius:999px;background:var(--green-bg);color:var(--green-700);font-size:12px}
.adv-x{border:0;background:none;padding:2px;display:inline-flex;color:inherit;cursor:pointer;border-radius:50%}.adv-x svg{width:13px;height:13px}.adv-x:hover{background:rgba(0,0,0,.08)}
.print-flag{display:inline-flex;align-items:center;gap:6px;padding:0 10px;height:40px;border:1px solid var(--line);border-radius:10px;background:#fff;font-weight:700;font-size:13px;cursor:pointer}
.print-flag span{display:inline-flex;align-items:center;gap:5px}.print-flag svg{width:16px;height:16px}
.print-flag:has(input:checked){border-color:var(--blue-line);background:var(--primary-50);color:var(--primary)}
.wf-total #wfDue{font-weight:600;text-transform:none;font-size:12px;color:var(--ink-2)}
.wf-buttons{align-items:center;flex-wrap:wrap}
/* consegna */
.deliver-sums{display:flex;gap:10px;flex-wrap:wrap}
.deliver-sums span{flex:1 1 120px;display:flex;flex-direction:column;padding:9px 12px;border-radius:9px;background:var(--gray-bg)}
.deliver-sums small{font-size:11px;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.3px}
.deliver-sums b{font-size:17px}
.deliver-sums .em{background:var(--primary-50)}.deliver-sums .em b{color:var(--primary);font-size:20px}
.deliver-sums.small b{font-size:15px}
.pay-rows{display:flex;flex-direction:column;gap:8px}
.pay-row{display:grid;grid-template-columns:minmax(0,1fr) 140px 34px;gap:8px;align-items:center}
.pay-row .input{text-align:right;font-weight:700}
/* crediti */
.cr-work{border:1px solid var(--blue-line);background:var(--primary-50);border-radius:12px;padding:12px 14px;margin-bottom:14px}
.cr-work-main{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:2px 0}
.cr-code{font-size:20px;font-weight:800;letter-spacing:.5px}
.cr-title{font-weight:700;color:var(--ink-2)}
.cr-work small{color:var(--muted);font-size:12px}
.input-suffix{position:relative}.input-suffix .input{padding-right:28px;text-align:right}.input-suffix span{position:absolute;right:10px;top:50%;transform:translateY(-50%);color:var(--muted);font-size:12px}
.input[readonly]{background:var(--gray-bg);color:var(--ink-2)}
.input.strong{font-weight:800}
.cr-pay-head{display:flex;align-items:center;gap:8px;margin:18px 0 10px;padding-top:14px;border-top:1px solid var(--line)}
.cr-pay-head svg{width:18px;height:18px;color:var(--primary)}.cr-pay-head h4{margin:0;font-size:15px}
.cr-tiles{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-bottom:10px}
.cr-tile{border-radius:10px;padding:10px 14px;border:1px solid}
.cr-tile small{display:block;font-size:11px;font-weight:700}.cr-tile b{font-size:20px}
.cr-tile.blue{background:var(--primary-50);border-color:var(--blue-line);color:var(--blue)}
.cr-tile.green{background:var(--green-bg);border-color:var(--green-line);color:var(--green-700)}
.cr-tile.red{background:var(--red-bg);border-color:var(--red-line);color:var(--red)}
.cr-pays{border:1px solid var(--line);border-radius:10px;overflow:hidden}
.cr-pay{display:grid;grid-template-columns:100px 110px minmax(0,1fr) 110px 34px;gap:10px;align-items:center;padding:9px 12px;font-size:13px;border-bottom:1px solid var(--line)}
.cr-pay:last-child{border-bottom:0}.cr-pay b{text-align:right}
.cr-none{padding:12px}
.btn-soft{background:var(--primary-50);border-color:var(--blue-line);color:var(--primary)}
/* incassi */
.kpi-row.nine{grid-template-columns:repeat(auto-fit,minmax(122px,1fr));gap:8px}
.kpi-row.nine .kpi{padding:9px 10px;gap:8px;align-items:flex-start}.kpi-row.nine .kpi-ic{width:28px;height:28px;flex:0 0 28px}.kpi-row.nine .kpi-ic svg{width:15px;height:15px}
.kpi-row.nine .kpi-label{font-size:10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.kpi-row.nine .kpi-value{font-size:15px;white-space:nowrap}.kpi-row.nine .kpi-sub{font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.kpi-row.nine .kpi-body{min-width:0}
.table td.col-info,.table th.col-info{background:var(--blue-bg);color:var(--ink-2)}
.table th.col-info{color:var(--muted)}
.table td.col-total{border-right:2px solid var(--line)}
.cell-2.r{align-items:flex-end}
.rd-head{display:flex;align-items:center;gap:16px;flex-wrap:wrap;padding:14px 16px;border:1px solid var(--line);border-radius:12px;background:var(--blue-bg);margin-bottom:14px}
.rd-head .field{flex:0 0 200px;margin:0}
.rd-check{display:flex;gap:16px;flex:1;justify-content:center;flex-wrap:wrap}
.rd-check span{display:flex;flex-direction:column;align-items:center;font-size:12px}
.rd-check small{color:var(--muted);font-weight:700;text-transform:uppercase;font-size:11px;letter-spacing:.4px}.rd-check b{font-size:15px}.rd-check i{font-style:normal;color:var(--muted);font-size:11px}
.rd-total{display:flex;flex-direction:column;align-items:flex-end;margin-left:auto}
.rd-total small{font-size:11px;font-weight:800;letter-spacing:.8px;text-transform:uppercase;color:var(--muted)}
.rd-total b{font-size:28px;color:var(--primary);font-weight:800}
.rd-tiles{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-bottom:14px}
.rd-tile{display:flex;flex-direction:column;gap:8px;padding:12px 14px;border:1px solid var(--line);border-top:3px solid var(--line);border-radius:12px;background:#fff}
.rd-tile.tone-green{border-top-color:var(--green)}.rd-tile.tone-blue{border-top-color:var(--primary)}.rd-tile.tone-violet{border-top-color:var(--violet)}.rd-tile.tone-orange{border-top-color:var(--orange)}.rd-tile.tone-red{border-top-color:var(--red)}
.rd-label{display:flex;align-items:center;gap:8px;font-weight:800;font-size:13px}.rd-label svg{width:17px;height:17px}
.rd-input{text-align:right;font-weight:700;font-size:15px}
.rd-hint{font-size:11px;color:var(--ink-2)}
.rd-foot{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,2fr);gap:12px}
@media (max-width:899px){.rd-tiles{grid-template-columns:repeat(2,minmax(0,1fr))}.rd-foot{grid-template-columns:1fr}.cr-pay{grid-template-columns:90px 1fr 90px 30px}.cr-pay span.muted{display:none}}
@media (max-width:599px){.rd-tiles{grid-template-columns:1fr}.cr-tiles{grid-template-columns:1fr}.rd-total{margin-left:0;align-items:flex-start}.pay-row{grid-template-columns:1fr 110px 30px}.page-size span{display:none}}

.vp-top.no-owner{grid-template-columns:minmax(180px,260px) 1fr}.vp-top.no-owner .vp-mode-field{justify-self:end}

/* V168: barra date/stato sotto Manodopera e ricambi, larga come la colonna */
.wf-col .wf-footer{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 12px;align-items:end;padding:12px 14px}
.wf-col .wf-footer .dt{grid-template-columns:minmax(0,1fr) 112px}
.wf-col .wf-footer .field{margin:0;min-width:0}
.wf-col .wf-total{grid-column:1/-1;margin-left:0;flex-direction:row;align-items:baseline;justify-content:space-between;gap:10px;flex-wrap:wrap;padding-top:8px;border-top:1px solid var(--line)}
.wf-col .wf-total #wfDue{flex-basis:100%;text-align:right}
.wf-col .wf-buttons{grid-column:1/-1;justify-content:flex-end}
.combo-create span{display:inline-flex;align-items:center;gap:8px}
.cell-plate{display:flex;align-items:center;gap:8px;min-width:0}

/* V169 */
.wf-col .wf-footer{position:static;box-shadow:var(--shadow)}
.select.sel-tone{font-weight:800}
.select.sel-tone.tone-orange{background-color:var(--orange-bg);color:var(--orange);border-color:var(--orange-400)}
.select.sel-tone.tone-blue{background-color:var(--blue-bg);color:var(--blue);border-color:var(--blue-line)}
.select.sel-tone.tone-violet{background-color:var(--violet-bg);color:var(--violet);border-color:var(--violet-line)}
.select.sel-tone.tone-green{background-color:var(--green-bg);color:var(--green);border-color:var(--green-400)}
.select.sel-tone.tone-red{background-color:var(--red-bg);color:var(--red);border-color:var(--red-line)}
.select.sel-tone.tone-gray{background-color:var(--gray-bg);color:var(--gray)}
.select.sel-tone option{background:#fff;color:var(--ink);font-weight:600}
.plate-input.input{height:46px;text-align:center;font-family:"Arial Narrow","Roboto Condensed",Arial,sans-serif;font-size:20px;font-weight:800;letter-spacing:2px;color:#0b1220;border:2px solid var(--blue-700);border-radius:6px;padding:0 26px;background:linear-gradient(90deg,var(--blue) 0 16px,#fff 16px calc(100% - 16px),var(--blue) calc(100% - 16px))}
.plate-input.input:focus{box-shadow:0 0 0 3px rgba(21,70,181,.25);border-color:var(--blue-700)}
.plate-input.input::placeholder{color:var(--n-300);letter-spacing:2px}
/* ===== V170 Spese ===== */
.sp-types{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-bottom:12px}
.sp-type{display:flex;align-items:center;gap:12px;padding:12px 14px;border:1px solid var(--line);border-radius:12px;background:#fff;text-align:left}
.sp-type svg{width:22px;height:22px;color:var(--muted);flex:0 0 auto}
.sp-type span{display:flex;flex-direction:column}.sp-type b{font-size:13px}.sp-type small{color:var(--muted);font-size:12px}
.sp-type.active{border:2px solid var(--primary);background:var(--primary-50)}.sp-type.active svg{color:var(--primary)}
.sp-type:disabled:not(.active){opacity:.45}
.sp-grid{display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:12px;align-items:start}
.sp-doc{grid-column:1;grid-row:1;align-self:stretch}.sp-pay{grid-column:2;grid-row:1;align-self:stretch;border-top:3px solid var(--primary)}
.sp-lines{grid-column:1/-1;grid-row:2}
.sp-sum{grid-column:2;grid-row:3}
.sp-foot{grid-column:1/-1}
.sp-table td[data-label=Descrizione]{min-width:220px;width:100%}
.sp-table input[name=discount]{width:58px;min-width:0}
.sp-table select[name=vat]{width:78px}
.sp-table input:disabled{background:var(--gray-bg)}
.sp-hint{display:flex;align-items:center;gap:6px;margin:0;padding:10px 16px;font-size:12px;color:var(--muted);border-top:1px solid var(--line)}.sp-hint svg{width:15px;height:15px}
.sp-sum-rows>div{display:flex;justify-content:space-between;padding:5px 0;font-size:13px}
.sp-sum-rows .sep{border-top:1px solid var(--line);margin-top:6px;padding-top:9px}
.sp-sum-rows .grand{border-top:2px solid var(--ink);margin-top:6px;padding-top:9px;font-size:15px}.sp-sum-rows .grand b{font-size:20px;color:var(--primary)}
.seg.sm .seg-btn{height:30px;font-size:12px}
.pay-log-row{display:flex;gap:10px;align-items:center;padding:5px 0;font-size:12px;border-bottom:1px solid var(--line)}
.role-pick{display:flex;gap:16px}
.roles{display:flex;gap:4px;flex-wrap:wrap}
@media (max-width:1099px){.sp-grid{grid-template-columns:1fr}.sp-sum,.sp-pay,.sp-doc,.sp-lines{grid-column:1;grid-row:auto}.sp-types{grid-template-columns:1fr}}
/* ===== V170 accesso e operatori ===== */
body.locked .app-shell{filter:blur(3px);pointer-events:none}
#loginRoot{position:fixed;inset:0;z-index:500;background:rgba(9,22,44,.72);display:grid;place-items:center;padding:16px;overflow:auto}
.login-card{width:min(560px,100%);background:#fff;border-radius:18px;box-shadow:0 30px 80px rgba(0,0,0,.35);padding:22px}
.login-brand{display:flex;align-items:center;gap:12px;margin-bottom:16px}
.login-brand .brand-mark{width:44px;height:44px;border-radius:12px;background:var(--primary);color:#fff;display:grid;place-items:center}.login-brand .brand-mark svg{width:22px;height:22px}
.login-brand strong{display:block;font-size:17px}.login-brand small{color:var(--muted)}
.login-users{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:8px}
.login-user{display:flex;align-items:center;gap:10px;padding:10px;border:1px solid var(--line);border-radius:12px;background:#fff;text-align:left}
.login-user:hover,.login-user.sel{border-color:var(--primary);background:var(--primary-50)}
.login-user span:last-child{display:flex;flex-direction:column;min-width:0}.login-user b{font-size:13px}.login-user small{color:var(--muted);font-size:11px}
.login-pin{display:flex;align-items:center;gap:10px;margin-top:14px;padding:12px;border-radius:12px;background:var(--gray-bg);flex-wrap:wrap}
.login-pin label{font-size:13px}.pin-input{width:140px;letter-spacing:6px;text-align:center;font-size:17px;font-weight:800}
.login-foot{margin:14px 0 0;color:var(--muted);font-size:12px}
.ro-banner{display:flex;align-items:center;gap:8px;padding:7px 16px;background:var(--orange-bg);color:var(--orange-700);font-size:13px;font-weight:700;border-bottom:1px solid var(--orange-line)}
.ro-banner svg{width:16px;height:16px}
.menu-user{display:flex;align-items:center;gap:10px;padding:6px 10px}.menu-user span:last-child{display:flex;flex-direction:column}.menu-user small{color:var(--muted)}
.perm-row{display:flex;gap:3px}
.perm{display:inline-grid;place-items:center;width:20px;height:20px;border-radius:5px;font-size:11px;font-weight:800}
.perm.edit{background:var(--green-bg);color:var(--green)}.perm.view{background:var(--blue-bg);color:var(--blue)}.perm.none{background:var(--gray-bg);color:var(--muted-2)}
.perm-legend{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;font-size:11px;color:var(--muted)}
.perm-legend b{color:var(--ink)}.perm-legend .perm{margin:0 3px 0 8px}
.perm-table td,.perm-table th{padding:7px 10px}.perm-table .c{text-align:center;width:90px}
.perm-table input{width:17px;height:17px;accent-color:var(--primary)}
.op-order{display:flex;flex-direction:column;gap:6px;max-width:560px}
.op-ord{display:flex;align-items:center;gap:8px;padding:6px 8px;border:1px solid var(--line);border-radius:9px}
.op-ord.off{opacity:.6}.op-ord>b{width:20px;color:var(--primary)}
.op-flag{padding:10px 12px;border-radius:10px;background:var(--green-bg)}
/* ===== V171 gomme ===== */
.tire-form .vp-cols{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.tire-form .vp-col{height:260px}
.tire-specs{margin-top:14px}
.chip-row{display:inline-flex;gap:6px;margin-top:4px}
.tc-season{display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:14px}
.tire-form .wf-footer .wf-buttons{width:100%}
/* ===== V172 righe spese ===== */
.sp-table td{vertical-align:top}
.sp-table td[data-label=Descrizione]{min-width:200px}
.sp-table input[name=qty]{width:62px}
.sp-table input[name=price]{width:96px}
.sp-table input[name=discount]{width:60px}
.sp-table input[name=gross]{width:104px;text-align:right}
.sp-table .c{text-align:center}.sp-table td.c input{width:18px;height:18px;margin-top:9px;accent-color:var(--red)}
.vat-chip{display:flex;align-items:center;gap:4px;margin-top:4px;font-size:11px;font-weight:700;color:var(--muted)}
.vat-chip .select{height:26px;padding:0 20px 0 6px;font-size:11px;width:auto}
.sell-in{display:flex;flex-direction:column;gap:2px;margin-top:4px;font-size:11px;font-weight:700;color:var(--muted)}
.sell-in .input{height:28px;width:110px}
tr.is-reso td{background:var(--red-bg)}
tr.is-reso td.money{color:var(--red)}
.sp-table .money{padding-top:16px;white-space:nowrap}
/* ===== V173 ===== */
.span-all-f{grid-column:1/-1}
.dlv-info{border:1px solid var(--green-line);background:var(--green-bg);border-radius:10px;padding:10px 12px;display:flex;flex-direction:column;gap:6px}
.dlv-head{display:flex;align-items:center;gap:8px}.dlv-head svg{width:16px;height:16px;color:var(--green)}.dlv-head .btn{margin-left:auto}
.dlv-rows{display:flex;gap:12px;flex-wrap:wrap;font-size:13px}
.badge-btn svg{width:12px;height:12px}
.use-bar{position:relative;height:12px;background:var(--gray-bg);border-radius:6px;overflow:hidden}
.use-bar span{position:absolute;left:0;top:0;bottom:0;border-radius:6px}
.use-bar .o{background:var(--blue-line)}.use-bar .a{background:var(--primary)}
.lg-dot{display:inline-block;width:10px;height:10px;border-radius:3px;margin:0 4px 0 10px;vertical-align:-1px}.lg-dot.o{background:var(--blue-line)}.lg-dot.a{background:var(--primary)}
.use-table tbody tr{cursor:pointer}

/* V174: consegna prevista in ritardo */
.late-due{color:var(--red,var(--red-500))!important;font-weight:800;display:inline-flex;align-items:center;gap:3px}
.late-due svg{width:12px;height:12px}
.plan-cell.is-late{border-color:var(--red-line);background:var(--red-bg)}.plan-cell.is-late strong,.plan-cell.is-late small{color:var(--red,var(--red-500))!important}.plan-cell strong svg,.cell-2.is-late strong svg{width:13px;height:13px;margin-right:3px;vertical-align:-2px}
.sp-types-lbl{font-size:11px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin:0 0 6px 2px}

/* V174: riepilogo importi del lavoro vicino al totale */
.wf-sum{grid-column:1/-1;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:6px 18px;align-items:center;padding:12px 14px;border:1px solid var(--blue-line);border-radius:12px;background:linear-gradient(180deg,var(--blue-bg),var(--blue-bg))}
.wf-sum-lines{display:flex;flex-direction:column;gap:4px;min-width:0}
.ws-row{display:flex;align-items:baseline;justify-content:space-between;gap:10px;font-size:13px;padding:2px 0;border-bottom:1px dashed var(--blue-line)}
.ws-row:last-child{border-bottom:0}
.ws-row span{color:var(--ink-2);font-weight:600}.ws-row small{color:var(--muted);font-weight:600;margin-left:4px}
.ws-row b{font-variant-numeric:tabular-nums}.ws-row.disc i{font-style:normal;font-weight:600;font-size:12px}
.ws-row .link-btn{margin-left:6px;font-size:11px}
.wf-sum-total{display:flex;flex-direction:column;align-items:flex-end;gap:4px;padding-left:18px;border-left:1px solid var(--blue-line)}
.wf-sum-total>small:first-child{color:var(--muted);font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.4px}
.wf-sum .tot-edit .input{width:130px;height:44px;font-size:20px;background:#fff}
.tot-eur{font-size:17px;font-weight:800;color:var(--primary);margin-left:-2px}
.wf-due{font-size:12px;color:var(--ink-2);text-align:right}
.wf-sum .wf-adv{grid-column:1/-1;padding:8px 0 0;border-top:1px dashed var(--blue-line);margin-top:2px}
@media (max-width:600px){.wf-sum{grid-template-columns:1fr}.wf-sum-total{border-left:0;padding-left:0;align-items:stretch}}

/* V174: menu laterale nascondibile (☰) e riducibile a icone (« in fondo) */
body.sidebar-hidden .sidebar{width:0;overflow:hidden}
.sidebar-footer{display:flex;align-items:flex-end;gap:8px}.sidebar-footer-copy{flex:1;min-width:0}
.side-collapse{flex:0 0 auto;width:30px;height:30px;border-radius:8px;border:1px solid rgba(255,255,255,.14);background:rgba(255,255,255,.06);color:var(--n-300);display:grid;place-items:center;cursor:pointer}
.side-collapse:hover{background:rgba(255,255,255,.14);color:#fff}.side-collapse svg{width:16px;height:16px}
body.sidebar-collapsed .sidebar-footer{display:flex!important;justify-content:center;padding:10px 0}
body.sidebar-collapsed .sidebar-footer-copy{display:none}
@media (max-width:1099px){body.sidebar-hidden .sidebar{width:min(284px,86vw)!important;overflow:visible}body.sidebar-collapsed .sidebar-footer-copy{display:flex}}

/* V175: importo da saldare in evidenza */
.amt-cell{display:flex;flex-direction:column;align-items:flex-end;gap:2px}
.topay{display:inline-flex;align-items:center;gap:4px;padding:2px 8px;border-radius:999px;background:var(--red-bg);color:var(--red);font-size:11px;font-weight:700;white-space:nowrap}
.topay b{font-weight:900}.topay.ok{background:var(--green-bg);color:var(--green-700)}.topay svg{width:12px;height:12px}
.wf-due{display:flex;flex-direction:column;align-items:stretch;gap:3px;min-width:220px;margin-top:4px}
.ws-mini{display:flex;justify-content:space-between;gap:10px;font-size:12px;color:var(--ink-2)}
.topay-box{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:8px 12px;border-radius:10px;background:var(--red-bg);border:1px solid var(--red-line);color:var(--red)}
.topay-box span{font-size:11px;font-weight:900;text-transform:uppercase;letter-spacing:.5px}
.topay-box b{font-size:20px;font-weight:900;font-variant-numeric:tabular-nums}
.topay-box.ok{background:var(--green-bg);border-color:var(--green-400);color:var(--green-700)}.topay-box.ok b{font-size:15px}

/* V176: menu a colori per gruppo (colori in Impostazioni › Interfaccia) */
.nav-section{--sec:var(--blue-500);position:relative;margin:8px 8px 0;padding:2px 4px 6px;border-radius:12px;background:linear-gradient(180deg,color-mix(in srgb,var(--sec) 9%,transparent),transparent 70%);border-left:3px solid color-mix(in srgb,var(--sec) 70%,transparent)}
.nav-section-title{color:var(--sec);padding:8px 8px 5px;font-weight:800}
.nav-section .nav-link svg{color:var(--sec)}
.nav-section .nav-link:hover{background:color-mix(in srgb,var(--sec) 16%,transparent);color:#fff}
.nav-section .nav-link.active{background:var(--sec);color:#fff;box-shadow:0 6px 16px color-mix(in srgb,var(--sec) 40%,transparent);text-shadow:0 1px 1px rgba(0,0,0,.25)}
.nav-section .nav-link.active svg{color:#fff}
.nav-section .nav-link.active .nav-badge{background:rgba(255,255,255,.3);color:#fff}
.nav-section .nav-badge{background:color-mix(in srgb,var(--sec) 22%,rgba(255,255,255,.06));color:#fff}
.nav-section .nav-children{border-left-color:color-mix(in srgb,var(--sec) 45%,transparent)}
.nav-section.plain{background:none;border-left-color:transparent}
.nav-section.plain .nav-section-title{color:var(--blue-500)}.nav-section.plain .nav-link svg{color:inherit}
.nav-section.plain .nav-link.active{background:var(--primary);box-shadow:0 6px 16px rgba(8,101,242,.35)}
body.sidebar-collapsed .nav-section{margin:6px 6px 0;padding:4px 0;border-left-width:0;box-shadow:inset 0 3px 0 color-mix(in srgb,var(--sec) 70%,transparent)}
.menu-colors{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:8px}
.menu-color{display:flex;align-items:center;gap:10px;padding:8px 10px;border:1px solid var(--line);border-radius:10px;background:#fff;font-weight:700;font-size:13px}
.menu-color input[type=color]{width:40px;height:30px;border:0;padding:0;background:none;cursor:pointer}
.menu-color .sw{flex:1}
/* V175: catalogo gomme con misura in 4 colonne */
.tp-grid{display:grid;grid-template-columns:minmax(150px,1.25fr) minmax(150px,1.25fr) repeat(5,minmax(88px,.7fr));gap:10px}
.tp-sizebar{grid-column:1/-1;display:flex;align-items:baseline;gap:10px;flex-wrap:wrap;padding:8px 12px;border-radius:10px;background:var(--primary-50);border:1px solid var(--blue-line)}
.tp-sizebar span{font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.5px;color:var(--muted)}
.tp-sizebar b{font-family:var(--mono,monospace);font-size:17px;color:var(--primary);letter-spacing:.5px}
.tp-sizebar .link-btn{margin-left:auto}
.tp-part .vp-head{background:var(--blue-700)}.tp-part .vp-txt{font-family:var(--mono,monospace);font-weight:800;font-size:13px}
.tp-part .vp-search .input{font-size:12px}
.tire-form .tp-grid{grid-template-columns:repeat(4,minmax(0,1fr))}
.tire-form .tp-grid>#tpc_brand,.tire-form .tp-grid>#tpc_model{grid-column:span 2}
.tire-form .tp-grid .vp-col{height:230px}
.catalog-page .tp-grid{flex:1;min-height:0;grid-template-rows:auto minmax(0,1fr)}
.catalog-page .vp-box{display:flex;flex-direction:column;min-height:0}
@media (max-width:1199px){.tp-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.tp-grid>#tpc_brand,.tp-grid>#tpc_model{grid-column:span 2}.catalog-page .tp-grid{grid-template-rows:auto}}
/* V176: dati pneumatico come un lavoro */
.tire-size{display:inline-flex;align-items:center;padding:6px 12px;border-radius:9px;background:#10233f;color:#fff;font-family:var(--mono,monospace);font-weight:800;font-size:17px;letter-spacing:.5px;white-space:nowrap;box-shadow:inset 0 0 0 2px var(--blue)}
.tire-size.sm{font-size:12px;padding:3px 8px;border-radius:6px}
.tire-box .entity-top{align-items:center}
.tire-empty{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.tp-bm{font-style:normal;font-weight:800;color:var(--ink);margin-right:10px}.tp-bm.muted{font-weight:600;color:var(--muted)}
.tm-top{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:10px}
.tp-modal .tp-grid .vp-col{height:340px}
@media (max-width:1199px){.tp-modal .tp-grid .vp-col{height:240px}}
@media (max-width:640px){.tp-grid,.tire-form .tp-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.tp-grid>#tpc_brand,.tp-grid>#tpc_model,.tire-form .tp-grid>#tpc_brand,.tire-form .tp-grid>#tpc_model{grid-column:span 1}.tp-modal .tp-grid .vp-col{height:210px}}
/* V176: articoli – carichi e lavori */
.pu-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:12px 0}
.pu-box{border:1px solid var(--line);border-radius:12px;overflow:hidden;background:#fff}
.pu-head{display:flex;align-items:center;gap:8px;padding:9px 12px;background:var(--blue-bg);border-bottom:1px solid var(--line)}
.pu-head svg{width:16px;height:16px;color:var(--primary)}.pu-head span{margin-left:auto;color:var(--muted);font-size:12px}
.pu-list{max-height:220px;overflow:auto;padding:6px}
.pu-row{display:flex;align-items:center;gap:8px;width:100%;padding:6px 8px;border-radius:8px;font-size:12px;text-align:left;border:0;background:none}
.pu-row .grow{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pu-work{cursor:pointer}.pu-work:hover{background:var(--primary-50)}
.pu-chips{display:flex;gap:4px;flex-wrap:wrap;align-items:center}
.pu-chip{border:1px solid var(--blue-line);background:var(--primary-50);color:var(--primary);font-family:var(--mono,monospace);font-weight:800;font-size:11px;padding:2px 7px;border-radius:6px;cursor:pointer}
.pu-chip:hover{background:var(--primary);color:#fff}
.cell-2.r{align-items:flex-end;text-align:right}
@media (max-width:760px){.pu-grid{grid-template-columns:1fr}}

.pay-quick{display:flex;gap:8px;flex-wrap:wrap}
.tire-form .tire-specs{grid-template-columns:repeat(2,minmax(0,1fr))}
.tire-form .tire-specs .span-2,.tire-form .tire-specs .span-4{grid-column:1/-1}
.tire-form .tire-specs .seg{flex-wrap:wrap}
.nav-section{margin:6px 6px 0;padding:2px 2px 6px}
.nav-section .nav-children{margin-left:14px;padding-left:8px}
@media (max-width:600px){.wf-col .wf-footer{grid-template-columns:1fr}.wf-col .wf-footer .dt{grid-template-columns:minmax(0,1fr) 120px}}

/* V177: progressivo nella barra in alto (accanto al titolo) */
.ph-row{display:flex;align-items:center;gap:8px;min-width:0}
.ph-row h1{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.page-tag{flex:0 0 auto;display:inline-flex;align-items:center;gap:6px}
.page-tag .code-chip{font-size:13px;padding:2px 8px}
/* V177: durata/costo deposito e lordo/netto */
.plan-pick{display:flex;gap:8px;flex-wrap:wrap}
.plan-btn{display:flex;flex-direction:column;align-items:flex-start;gap:1px;min-width:120px;padding:8px 14px;border:1px solid var(--line-strong);border-radius:10px;background:#fff;cursor:pointer;text-align:left}
.plan-btn b{font-size:13px}.plan-btn span{color:var(--muted);font-weight:700;font-size:12px}
.plan-btn:hover{border-color:var(--blue-line)}
.plan-btn.active{border-color:var(--primary);background:var(--primary-50);box-shadow:0 0 0 2px rgba(8,101,242,.15)}.plan-btn.active span{color:var(--primary)}
.entry-seg .seg-btn{white-space:nowrap}
.form-head.compact{margin-bottom:8px}

/* V177: dimensione interfaccia (zoom) */
.app-shell,#modalRoot{zoom:var(--uiz,1)}
/* V178: stagione gomme con icone */
.season-tag{display:inline-flex;align-items:center;gap:4px;padding:2px 8px 2px 6px;border-radius:999px;font-size:11px;font-weight:800;white-space:nowrap;width:max-content}
.season-tag svg{width:13px;height:13px}
.season-tag.s-snow{background:var(--blue-bg);color:var(--blue-500)}.season-tag.s-sun{background:var(--orange-line);color:var(--orange-700)}.season-tag.s-allseason{background:var(--green-line);color:var(--green-700)}
.season-seg .seg-btn{display:inline-flex;align-items:center;gap:6px}.season-seg .seg-btn svg{width:16px;height:16px}
.season-seg .seg-btn.s-snow svg{color:var(--blue-500)}.season-seg .seg-btn.s-sun svg{color:var(--orange-500)}.season-seg .seg-btn.s-allseason svg{color:var(--green)}
.season-seg .seg-btn.active.s-snow{background:var(--blue-bg);color:var(--blue-500)}.season-seg .seg-btn.active.s-sun{background:var(--orange-line);color:var(--orange-700)}.season-seg .seg-btn.active.s-allseason{background:var(--green-line);color:var(--green-700)}
.tire-box .entity-title{display:flex;flex-direction:column;gap:3px}
.tm-help{margin:0 0 10px}

.prog-ro{display:inline-flex;align-items:center;gap:6px;height:38px;padding:0 12px;border:1px dashed var(--line-strong);border-radius:9px;background:var(--blue-bg);font-weight:800;color:var(--ink-2)}
.prog-ro svg{width:13px;height:13px;color:var(--muted)}

.clear-filters{border-color:var(--red-line);background:var(--red-bg);color:var(--red);font-weight:700}.clear-filters:hover{background:var(--red-line)}

.ws-row.pre-round span{color:var(--muted)}.ws-row.pre-round b{color:var(--ink-2)}

/* V178: Report */
.rep-grid{display:grid;grid-template-columns:250px minmax(0,1fr);gap:12px;align-items:start}
.rep-nav{position:sticky;top:0}
.rep-group+.rep-group{margin-top:8px;padding-top:8px;border-top:1px solid var(--line)}
.rep-gt{font-size:11px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);padding:4px 10px}
.rep-main{display:flex;flex-direction:column;gap:12px;min-width:0}
.rep-tools{flex-wrap:wrap}
.rep-title{display:flex;align-items:center;gap:8px;font-size:15px;margin-right:6px}.rep-title svg{width:18px;height:18px;color:var(--primary)}
.rep-kpis{grid-template-columns:repeat(auto-fit,minmax(190px,1fr))!important;display:grid}
.rep-chart2{margin-top:14px;padding-top:10px;border-top:1px dashed var(--line)}
.rep-bar{display:inline-block;width:90px;height:7px;border-radius:5px;background:var(--blue-line);vertical-align:middle;margin-right:6px;overflow:hidden}.rep-bar span{display:block;height:100%;background:var(--primary)}
@media (max-width:1099px){.rep-grid{grid-template-columns:1fr}.rep-nav{position:static;display:flex;flex-wrap:wrap;gap:4px}.rep-group+.rep-group{border-top:0;margin-top:0;padding-top:0}}
.rep-kpis .kpi-value{font-size:17px;white-space:normal;overflow:visible;text-overflow:clip;line-height:1.2}
.rep-kpis .kpi-sub{white-space:normal}
/* V179: Home a icone */
.home{display:flex;flex-direction:column;gap:16px}
.home-hero{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;padding:20px 24px;border-radius:16px;background:linear-gradient(120deg,#0b1f3a,var(--blue-700) 60%,var(--blue-500));color:#fff;box-shadow:var(--shadow)}
.home-hello{font-size:26px;font-weight:800;letter-spacing:-.3px}
.home-date{opacity:.8;font-weight:600;margin-top:2px}
.home-pills{display:flex;gap:8px;flex-wrap:wrap}
.home-pill{display:inline-flex;align-items:center;gap:6px;padding:7px 12px;border-radius:999px;background:rgba(255,255,255,.14);color:#fff;font-weight:700;font-size:13px;border:1px solid rgba(255,255,255,.2);cursor:pointer;text-decoration:none}
.home-pill svg{width:15px;height:15px}.home-pill.red{background:var(--red-500);border-color:var(--red-500)}.home-pill.green{background:var(--green);border-color:var(--green-500)}
.home-quick{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:10px}
.hq-btn{display:flex;align-items:center;gap:10px;padding:14px 16px;border-radius:14px;background:#fff;border:1px solid var(--line);box-shadow:var(--shadow-sm,0 1px 2px rgba(16,24,40,.06));font-weight:800;font-size:13px;color:var(--ink);text-decoration:none;cursor:pointer;text-align:left;transition:transform .12s,box-shadow .12s,border-color .12s}
.hq-btn svg{width:22px;height:22px;padding:7px;box-sizing:content-box;border-radius:10px;background:var(--primary);color:#fff;flex:0 0 auto}
.hq-btn:hover{transform:translateY(-2px);border-color:var(--blue-line);box-shadow:0 8px 20px rgba(16,24,40,.1)}
.home-sec h3{display:flex;align-items:center;gap:8px;font-size:12px;font-weight:800;text-transform:uppercase;letter-spacing:.08em;color:var(--sec);margin:4px 2px 10px}
.home-sec h3 span{width:10px;height:10px;border-radius:3px;background:var(--sec);box-shadow:0 0 0 3px color-mix(in srgb,var(--sec) 22%,transparent)}
.home-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:10px}
.home-tile{position:relative;display:flex;align-items:center;gap:12px;padding:14px;border-radius:14px;background:#fff;border:1px solid var(--line);text-decoration:none;color:var(--ink);overflow:hidden;transition:transform .12s,box-shadow .12s,border-color .12s}
.home-tile::before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:var(--sec)}
.home-tile:hover{transform:translateY(-2px);border-color:color-mix(in srgb,var(--sec) 50%,#fff);box-shadow:0 10px 24px color-mix(in srgb,var(--sec) 18%,transparent)}
.ht-ic{position:relative;flex:0 0 auto;width:48px;height:48px;border-radius:13px;display:grid;place-items:center;background:color-mix(in srgb,var(--sec) 14%,#fff);color:color-mix(in srgb,var(--sec) 85%,#000)}
.ht-ic svg{width:24px;height:24px}
.ht-badge{position:absolute;top:-6px;right:-8px;min-width:20px;height:20px;padding:0 5px;border-radius:999px;background:var(--sec);color:#fff;font-size:11px;font-weight:800;display:grid;place-items:center;box-shadow:0 0 0 2px #fff}
.ht-txt{display:flex;flex-direction:column;gap:2px;min-width:0}
.ht-txt b{font-size:15px;line-height:1.2}
.ht-txt small{color:var(--muted);font-size:12px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ht-txt .ht-pre{color:color-mix(in srgb,var(--sec) 75%,#000);font-weight:700;font-size:11px;text-transform:uppercase;letter-spacing:.04em}
.ht-txt .ht-warn{color:var(--red);font-weight:800}
.brand[data-act]{cursor:pointer}
@media (max-width:600px){.home-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.home-tile{flex-direction:column;align-items:flex-start;padding:12px}.home-quick{grid-template-columns:repeat(2,minmax(0,1fr))}.home-hello{font-size:20px}}

/* V180: deposito gomme - anticipo / pagato */
.pay-seg .seg-btn.active.t-orange{background:var(--orange-line);color:var(--orange-700)}.pay-seg .seg-btn.active.t-blue{background:var(--primary-50);color:var(--primary)}.pay-seg .seg-btn.active.t-green{background:var(--green-bg);color:var(--green-700)}
.td-paysum{display:flex;flex-direction:column;gap:4px;padding:10px 12px;border:1px solid var(--line);border-radius:10px;background:var(--n-50)}
.tps{display:flex;justify-content:space-between;font-size:13px}.tps span{color:var(--ink-2)}
.tps.due{margin-top:4px;padding-top:6px;border-top:1px solid var(--line);font-size:15px}.tps.due b{color:var(--red);font-size:17px}.tps.due.ok b{color:var(--green-700)}

/* V180: Home - sezione Crea */
.home-create{background:#fff;border:1px solid var(--line);border-radius:16px;padding:14px 16px 16px;box-shadow:var(--shadow-sm,0 1px 2px rgba(16,24,40,.06))}
.hc-h{display:flex;align-items:center;gap:8px;margin:0 0 12px;font-size:15px}.hc-h svg{width:18px;height:18px;padding:4px;box-sizing:content-box;border-radius:8px;background:var(--primary);color:#fff}
.hc-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:12px}
.hc-group{border-radius:12px;padding:10px;background:color-mix(in srgb,var(--sec) 7%,#fff);border:1px solid color-mix(in srgb,var(--sec) 22%,#fff)}
.hc-title{display:flex;align-items:center;gap:7px;font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.07em;color:color-mix(in srgb,var(--sec) 80%,#000);margin:0 2px 8px}
.hc-title span{width:9px;height:9px;border-radius:3px;background:var(--sec)}
.hc-btns{display:flex;flex-direction:column;gap:6px}
.hc-btn{display:flex;align-items:center;gap:10px;width:100%;padding:9px 10px;border-radius:10px;border:1px solid var(--line);background:#fff;font-weight:700;font-size:13px;color:var(--ink);cursor:pointer;text-align:left;transition:border-color .12s,transform .12s,box-shadow .12s}
.hc-btn>svg:first-child{width:18px;height:18px;padding:6px;box-sizing:content-box;border-radius:8px;background:color-mix(in srgb,var(--sec) 15%,#fff);color:color-mix(in srgb,var(--sec) 85%,#000);flex:0 0 auto}
.hc-btn span{flex:1}
.hc-btn .hc-plus{width:16px;height:16px;color:var(--sec);opacity:.8}
.hc-btn:hover{border-color:var(--sec);transform:translateY(-1px);box-shadow:0 6px 14px color-mix(in srgb,var(--sec) 18%,transparent)}

.toolbar .tb-sep{width:1px;align-self:stretch;background:var(--line);margin:0 2px}

/* V181: righe dei documenti emessi con larghezze corrette */
.doc-lines{table-layout:fixed;width:100%}
.doc-lines .c-qty{width:96px}.doc-lines .c-price{width:130px}.doc-lines .c-disc{width:96px}.doc-lines .c-tot{width:130px}.doc-lines .c-act{width:52px}
.doc-lines td:first-child{width:auto}
.doc-lines td .input,.doc-lines td .combo,.doc-lines td .combo .input{width:100%;min-width:0}
.doc-lines input[name=price],.doc-lines input[name=discount],.doc-lines input[name=qty]{min-width:0;width:100%;text-align:right}
.doc-lines td.money,.doc-lines th.money{text-align:right;white-space:nowrap}

/* V181: pulsante Home fisso nella barra in alto, uguale in tutte le pagine */
.home-btn{display:grid;flex:0 0 auto;color:var(--primary);background:var(--primary-50);border:1px solid var(--blue-line)}
.home-btn:hover{background:var(--primary);color:#fff}
.home-btn.on{background:var(--primary);color:#fff;border-color:var(--primary)}
.check-row{display:grid;grid-template-columns:auto auto auto minmax(0,1fr) auto;gap:6px;align-items:center;font-size:12px}
.check-row > *{white-space:nowrap}

/* V182: Genera documento a sinistra nel piede della scheda lavoro */
.work-form .wf-buttons{justify-content:flex-start}
.work-form .wf-buttons .grow{flex:1}
.btn-gen-doc{border-color:var(--blue-line);background:var(--primary-50);color:var(--primary);font-weight:700}
.btn-gen-doc:hover{background:var(--primary);color:#fff}

/* V183: nuovi stati lavoro (Attesa ricambi = teal, Sospeso = ardesia) */
:root{--teal2:#0e8f86;--teal2-bg:#dff6f3;--slate:#4b5565;--slate-bg:#e8ebf0}
.tone-teal.badge{background:var(--teal2-bg);color:var(--teal2)}.tone-slate.badge{background:var(--slate-bg);color:var(--slate)}
.select.sel-tone.tone-teal{background-color:var(--teal2-bg);color:var(--teal2);border-color:var(--blue-400)}.select.sel-tone.tone-slate{background-color:var(--slate-bg);color:var(--slate);border-color:var(--n-300)}
.tone-teal .kpi-ic,.tone-teal .tile-ic{background:var(--teal2-bg);color:var(--teal2)}.tone-slate .kpi-ic,.tone-slate .tile-ic{background:var(--slate-bg);color:var(--slate)}
.tone-teal .tile-ic svg{color:var(--teal2)}.tone-slate .tile-ic svg{color:var(--slate)}

/* V183: arrotonda − / + e Reset */
.round-btns{display:flex;gap:4px;justify-content:flex-end;flex-wrap:wrap}
.round-btns .btn{padding:0 9px}.round-btns svg{width:14px;height:14px}

/* V183: scheda lavoro organizzata in sezioni 4 Tempi e stato / 5 Importi / barra azioni fissa in basso */
.wf-col .wf-footer .wf-ch{grid-column:1/-1;margin:-12px -14px 2px;padding:10px 14px;border-bottom:1px solid var(--line)}
.wf-col .wf-footer .wf-ch h3{font-size:15px}
.wf-col .wf-money{display:block}
.wf-col .wf-money .wf-ch{margin:-12px -14px 12px}
.wf-col .wf-footer.wf-actions{display:block;position:static;margin-top:-12px;padding:10px 14px;box-shadow:none;border-top:1px solid var(--line);border-top-left-radius:0;border-top-right-radius:0;background:var(--gray-bg,var(--blue-bg))}
.wf-col .wf-money{border-bottom-left-radius:0;border-bottom-right-radius:0;border-bottom:0}
.wf-col .wf-actions .wf-buttons{justify-content:flex-start}
.rb-lbl{font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.4px;color:var(--muted);align-self:center;margin-right:2px}


/* V185: finestra Consegna veicolo riordinata */
.dl-q{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}
.dl-choice{display:flex;gap:8px}
.dl-all{border-color:var(--green-400);background:var(--green-bg);color:var(--green-700);font-weight:800}.dl-all:hover{background:var(--green);color:#fff}
.dl-none{border-color:var(--red-line);background:var(--red-bg);color:var(--red);font-weight:800}.dl-none:hover{background:var(--red-500);color:#fff;border-color:var(--red-500)}
.dl-rows-box{border:1px solid var(--line);border-radius:12px;padding:10px 12px;background:var(--blue-bg);display:flex;flex-direction:column;gap:8px}
.dl-rows-head{display:grid;grid-template-columns:minmax(0,1fr) 150px 34px;gap:8px;font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.4px;color:var(--muted)}
.dl-rows-box .pay-row{grid-template-columns:minmax(0,1fr) 150px 34px}
.dl-amt{position:relative;display:block}.dl-amt .input{padding-right:24px}.dl-amt i{position:absolute;right:9px;top:50%;transform:translateY(-50%);font-style:normal;color:var(--muted);font-weight:700}
.dl-add{align-self:flex-start;display:inline-flex;align-items:center;gap:4px;font-weight:700}.dl-add svg{width:14px;height:14px}
.dl-result{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.dl-result>div{display:flex;justify-content:space-between;align-items:baseline;padding:10px 12px;border-radius:10px;background:var(--gray-bg)}
.dl-result small{font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.3px;color:var(--muted)}.dl-result b{font-size:17px}
.dl-result>div.neg{background:var(--red-bg)}.dl-result>div.neg small{color:var(--red)}
.dl-note{display:flex;align-items:center;gap:6px;margin:0}.dl-note svg{width:14px;height:14px}
@media (max-width:599px){.dl-rows-head,.dl-rows-box .pay-row{grid-template-columns:1fr 110px 30px}.dl-result{grid-template-columns:1fr}}

/* V185: menu laterale più ordinato */
.nav-section{margin:6px 8px 0;padding:2px 3px 5px}
.nav-section .nav-link{padding:8px 10px;border-radius:9px}
.nav-section .nav-link.depth-1,.nav-section .nav-children .nav-parent{padding:6px 9px}
.nav-section .nav-link.has-tone svg{color:var(--tone)}
.nav-section .nav-children .nav-link.has-tone::after{content:"";position:absolute;left:-9px;top:50%;width:6px;height:6px;margin-top:-3px;border-radius:50%;background:var(--tone)}
.nav-section .nav-link.has-tone.active{background:color-mix(in srgb,var(--tone) 32%,transparent);box-shadow:inset 3px 0 0 var(--tone)}
.nav-section .nav-link.has-tone.active svg{color:#fff}
.nav-section .nav-badge{min-width:22px;text-align:center;font-variant-numeric:tabular-nums}
.nav-section .nav-group.open>.nav-parent{color:#fff;background:color-mix(in srgb,var(--sec) 10%,transparent)}
.nav-section-title{padding:7px 8px 4px}

/* V186: pagato in più */
.topay.over{background:var(--violet-bg);color:var(--violet-700);font-weight:800}.topay.over svg{color:var(--violet-500)}
.topay-box.over{background:var(--violet-bg);border-color:var(--violet-line);color:var(--violet-700)}
.over-note{display:flex;align-items:flex-start;gap:5px;font-size:12px;font-weight:700;color:var(--violet-700);max-width:280px;text-align:left}.over-note svg{width:14px;height:14px;flex:0 0 auto;margin-top:1px}
.wf-col .wf-actions .wf-buttons{flex-wrap:nowrap;gap:6px}
.wf-col .wf-actions .btn,.wf-col .wf-actions .print-flag{padding:0 10px;white-space:nowrap;flex:0 0 auto}
.wf-col .wf-actions .btn-lg{padding:0 14px}
@media (max-width:1250px){.wf-col .wf-actions .wf-buttons{flex-wrap:wrap}}

/* V186: Home - Crea con i 5 inserimenti principali */
.hc-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:10px}
.hc-big{display:flex;align-items:center;gap:12px;padding:14px;border-radius:14px;border:1px solid color-mix(in srgb,var(--sec) 30%,#fff);background:color-mix(in srgb,var(--sec) 8%,#fff);font-weight:800;font-size:15px;color:var(--ink);cursor:pointer;text-align:left;transition:transform .12s,box-shadow .12s,border-color .12s}
.hcb-ic{width:42px;height:42px;border-radius:12px;display:grid;place-items:center;background:var(--sec);color:#fff;flex:0 0 auto;box-shadow:0 4px 10px color-mix(in srgb,var(--sec) 35%,transparent)}
.hcb-ic svg{width:22px;height:22px}
.hc-big>span:nth-child(2){flex:1}
.hc-big .hc-plus{width:18px;height:18px;color:color-mix(in srgb,var(--sec) 80%,#000)}
.hc-big:hover{transform:translateY(-2px);border-color:var(--sec);box-shadow:0 10px 22px color-mix(in srgb,var(--sec) 22%,transparent)}

/* V187: riga articolo esclusa dal totale */
.excl-flag{display:flex;align-items:center;justify-content:flex-end;gap:4px;margin-top:4px;font-size:11px;font-weight:700;color:var(--muted);cursor:pointer;white-space:nowrap}
.excl-flag input{width:14px;height:14px;accent-color:var(--red)}
.line-part.is-excluded td{background:var(--red-bg)}
.line-part.is-excluded .input{color:var(--muted)}
.line-part.is-excluded .excl-flag{color:var(--red)}
.excl-tag{display:block;font-size:11px;font-weight:800;color:var(--red);text-transform:uppercase;letter-spacing:.3px}

/* V188: Importi e acconti riorganizzati */
.wf-sum2{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:10px}
.ws-box{border:1px solid var(--blue-line);border-radius:12px;background:var(--blue-bg);padding:10px 12px;min-width:0}
.ws-title{font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.45px;color:var(--muted);margin-bottom:6px}
.ws-total{display:flex;flex-direction:column;align-items:stretch;gap:6px;background:#fff;border-color:var(--blue-line)}
.ws-total .tot-edit{justify-content:flex-end}
.ws-total .tot-edit .input{width:100%;max-width:220px;height:46px;font-size:26px;text-align:right;background:var(--primary-50)}
.ws-total .round-btns{justify-content:flex-end}
.ws-hint{color:var(--muted);font-size:11px;text-align:right;line-height:1.4}.ws-hint b{color:var(--ink-2);font-family:var(--mono,monospace);font-weight:700}
.ws-pay{grid-column:1/-1;background:#fff}
.ws-pay-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(220px,300px);gap:14px;align-items:start}
.ws-pay .wf-adv{padding:0;border:0;display:flex;flex-direction:column;gap:8px}
.adv-list{display:flex;flex-direction:column;gap:4px}
.adv-item{display:grid;grid-template-columns:52px minmax(0,1fr) auto 24px;gap:8px;align-items:center;padding:6px 8px;border-radius:8px;background:var(--green-bg);color:var(--green-700);font-size:12px}
.adv-item .adv-d{font-weight:700}.adv-item .adv-m{display:flex;flex-direction:column;min-width:0}.adv-item .adv-m small{color:var(--green);font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.adv-item b{font-variant-numeric:tabular-nums}
.adv-none{padding:6px 2px}
.adv-add{align-self:flex-start}
.ws-pay .wf-due{margin:0;min-width:0}
.line-acts{white-space:nowrap}.line-acts .action-btn{margin-left:2px}
.excl-btn{color:var(--muted)}.excl-btn.on{background:var(--red-bg);color:var(--red);border-color:var(--red-line)}
@media (max-width:1250px){.wf-sum2{grid-template-columns:1fr}.ws-pay-grid{grid-template-columns:1fr}}

/* V189: costo fornitore (sola lettura) e prezzo di vendita nelle righe del lavoro */
.cost-cell{white-space:nowrap;vertical-align:top}
.cost-ro{display:inline-flex;align-items:center;gap:5px;height:36px;padding:0 9px;border:1px dashed var(--line-strong);border-radius:8px;background:var(--blue-bg);color:var(--ink-2);font-variant-numeric:tabular-nums}
.cost-ro svg{width:12px;height:12px;color:var(--muted)}
.lines-table .line-acts .action-btn{width:30px;height:30px}

.cost-wrap{display:flex;align-items:center;gap:4px}.cost-eye{width:30px;height:30px;color:var(--primary)}
/* V189: righe lavoro più compatte (costo + vendita + azioni nella card) */
.work-form .lines-table td,.work-form .lines-table th{padding-left:6px;padding-right:6px}
.work-form .lines-table .code-combo{width:112px}
.work-form .lines-table td[data-label=Descrizione]{min-width:110px}
.work-form .lines-table .qty .input{width:50px;flex:0 0 50px}
.work-form .lines-table input[name=price]{width:72px;min-width:0}
.work-form .cost-ro{height:auto;padding:4px 6px;border:0;background:transparent;font-size:13px}
.work-form .cost-ro svg{width:11px;height:11px}
.work-form .cost-eye{width:26px;height:26px}
.work-form .lines-table .line-acts .action-btn{width:26px;height:26px}
.work-form .lines-table td.col-actions{width:1%}

/* V190: anteprima articolo in tabelle */
.pp{display:flex;flex-direction:column;gap:14px}
.pp-head{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.pp-code{font-size:15px;font-weight:800;padding:3px 9px;border-radius:7px;background:#10233f;color:#fff}
.pp-chips{display:flex;gap:6px;flex-wrap:wrap}.pp-chips .chip{display:inline-flex;align-items:center;gap:4px;padding:3px 9px;border-radius:999px;background:var(--gray-bg);font-size:12px;font-weight:700;color:var(--ink-2)}.pp-chips svg{width:13px;height:13px}
.pp-prices{border:1px solid var(--line);border-radius:12px;overflow:hidden}
.pp-prices th{font-size:11px;text-align:center;line-height:1.2}.pp-prices td{text-align:center;font-size:15px;padding:10px 6px}
.pp-prices td small{display:block;font-size:11px;color:var(--muted);font-weight:600}
.pp-hl{background:var(--orange-line)!important;color:var(--orange-700)}.pp-prices th.pp-hl{background:var(--orange-400)!important;color:#3d2b00}
.pp-prices td.pp-hl b{font-size:17px;color:var(--orange-700)}
.pp-table th.pp-hl{background:var(--orange-400)!important;color:#3d2b00}
.pp-sec{display:flex;flex-direction:column;gap:6px}
.pp-title{display:flex;align-items:center;gap:7px;font-weight:800;font-size:13px}.pp-title svg{width:16px;height:16px;color:var(--primary)}.pp-title small{color:var(--muted);font-weight:600;font-size:12px}
.pp-table td{vertical-align:middle}
.pp-link{cursor:pointer}.pp-link:hover td{background:var(--primary-50)}.pp-link:hover td.pp-hl{background:var(--orange-line)!important}
.pp-empty{margin:0;padding:6px 2px}
/* V193: Paga tutto / Non paga nella barra in basso, accanto a Consegna */
.modal-foot:has(.dl-choice){flex-wrap:nowrap;gap:6px}
.modal-foot:has(.dl-choice) .btn{padding:0 10px;white-space:nowrap;flex:0 0 auto}
.modal-foot .dl-choice{gap:6px}
@media (max-width:599px){.modal-foot:has(.dl-choice){flex-wrap:wrap}}
/* V194: scheda articolo e scheda credito (pagine dedicate) */
.part-page,.credit-page{display:flex;flex-direction:column;gap:12px}
.ps-head{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:14px 16px;flex-wrap:wrap}
.ps-id{display:flex;align-items:center;gap:14px;min-width:0}
.ps-id h2{margin:0;font-size:20px;line-height:1.2}
.ps-code{font-size:15px;font-weight:800;padding:6px 12px;border-radius:9px;background:#10233f;color:#fff;white-space:nowrap}
.ps-chips{display:flex;gap:6px;flex-wrap:wrap;margin-top:6px;align-items:center}.ps-chips .chip{display:inline-flex;align-items:center;gap:4px;padding:3px 9px;border-radius:999px;background:var(--gray-bg);font-size:12px;font-weight:700;color:var(--ink-2)}.ps-chips svg{width:13px;height:13px}
.ps-prices{padding:0;overflow:hidden}.ps-prices .pp-prices{border:0;border-radius:0}
.ps-tabs-card{padding:12px 14px;display:flex;flex-direction:column;gap:12px}
.ps-tabs{flex-wrap:wrap}.ps-tabs .seg-btn{display:inline-flex;align-items:center;gap:6px}.ps-tabs svg{width:15px;height:15px}
.ps-body{min-height:120px}
.ps-hint{margin:0}
.ps-sum{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:10px}.ps-sum span{padding:6px 11px;border-radius:9px;background:var(--gray-bg);font-size:13px}
.ps-two{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:16px}.ps-two>div{display:flex;flex-direction:column;gap:8px;min-width:0}
.ps-spark{border:1px solid var(--line);border-radius:12px;padding:10px 12px;background:var(--blue-bg);color:var(--primary)}
.ps-spark svg{width:100%;height:110px;display:block;overflow:visible}.ps-spark circle{fill:#fff;stroke:currentColor;stroke-width:2}
.ps-spark-l{display:flex;gap:14px;font-size:12px;color:var(--muted);margin-top:4px}.ps-spark-l b{color:var(--ink)}
.ps-delta{font-weight:800;white-space:nowrap}.ps-delta.up{color:var(--red)}.ps-delta.down{color:var(--green-700)}.ps-delta small{font-weight:600}
@media (max-width:1099px){.ps-two{grid-template-columns:1fr}}
.cp-bar{padding:10px 14px;display:flex;align-items:center;gap:12px}.cp-bar small{white-space:nowrap;color:var(--muted);font-weight:700}
.cp-bar-track{flex:1;height:10px;border-radius:99px;background:var(--red-bg);overflow:hidden}.cp-bar-track span{display:block;height:100%;background:linear-gradient(90deg,var(--green-500),var(--green-500));border-radius:99px}
.cp-grid{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(0,1fr);gap:12px;align-items:start}
.cp-grid .card-head h3{display:flex;align-items:center;gap:7px}.cp-grid .card-head h3 svg{width:16px;height:16px;color:var(--primary)}
.cp-grid>section>.table-wrap,.cp-grid>section>.pp-empty{padding:0 4px 8px}
.cp-notes{display:flex;gap:8px;align-items:flex-start;margin:8px 14px 12px;padding:10px 12px;border-radius:10px;background:var(--orange-line);font-size:13px}.cp-notes svg{width:16px;height:16px;flex:none}
.cp-tl{padding:12px 16px;display:flex;flex-direction:column;gap:0}
.cp-ev{display:flex;gap:10px;position:relative;padding-bottom:14px}.cp-ev:not(:last-child)::before{content:'';position:absolute;left:13px;top:28px;bottom:0;width:2px;background:var(--line)}
.cp-ev b{display:block;font-size:13px}.cp-ev small{color:var(--muted)}.cp-ev.future{opacity:.75}
.cp-dot{width:28px;height:28px;border-radius:50%;display:grid;place-items:center;flex:none;background:var(--gray-bg)}.cp-dot svg{width:15px;height:15px}
.cp-ev.tone-green .cp-dot{background:var(--green-bg);color:var(--green-700)}.cp-ev.tone-blue .cp-dot{background:var(--primary-50);color:var(--primary)}.cp-ev.tone-red .cp-dot{background:var(--red-bg);color:var(--red)}.cp-ev.tone-orange .cp-dot{background:var(--orange-line);color:var(--orange)}
.cp-work,.cp-client{padding:12px 16px;display:flex;flex-direction:column;gap:8px}.cp-work p,.cp-client p{margin:0}
.cp-work-h{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
@media (max-width:1099px){.cp-grid{grid-template-columns:1fr}}
/* V194: importazione fatture XML (Aruba) */
.xi{display:flex;flex-direction:column;gap:12px}
.xi-zone{position:relative;display:flex;flex-direction:column;align-items:center;gap:6px;text-align:center;padding:26px 18px;border:2px dashed var(--blue-400);border-radius:14px;background:var(--blue-bg);cursor:pointer;transition:background .15s,border-color .15s}
.xi-zone:hover,.xi-zone.over{border-color:var(--primary);background:var(--primary-50)}
.xi-zone.has{padding:12px 18px;flex-direction:row;justify-content:center;text-align:left}.xi-zone.has small{display:none}
.xi-zone input{position:absolute;inset:0;opacity:0;cursor:pointer}
.xi-ic{width:44px;height:44px;border-radius:12px;display:grid;place-items:center;background:var(--primary-50);color:var(--primary)}.xi-ic svg{width:22px;height:22px}
.xi-zone.has .xi-ic{width:32px;height:32px}
.xi-zone small{max-width:620px;color:var(--muted)}
.xi-opts{display:flex;gap:16px;flex-wrap:wrap;align-items:center}
.xi-sum{font-size:13px}
.xi-wrap{max-height:46vh;overflow:auto;border:1px solid var(--line);border-radius:12px}
.xi-table td{vertical-align:top}.xi-sub{display:block;color:var(--muted);font-size:11px;font-weight:500;margin-top:2px}
.xi-table .xi-off td{opacity:.55}.xi-err td{background:var(--red-bg)}.xi-err svg{width:14px;height:14px;vertical-align:-2px}
.xi-dir{height:30px;padding:0 8px;font-weight:700;font-size:12px;min-width:96px}
.xi-dir.tone-violet{background:var(--violet-bg);color:var(--violet-500);border-color:var(--violet-line)}.xi-dir.tone-blue{background:var(--primary-50);color:var(--primary);border-color:var(--blue-line)}
/* V194: layout documenti stile Aruba (dati documento a sinistra, cliente/fornitore a destra) */
.ar-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:12px;align-items:stretch}
.ar-grid>.ar-doc{grid-column:1;border-top:3px solid var(--primary)}
.ar-grid>.ar-party{grid-column:2;border-top:3px solid var(--green-500)}
.ar-grid>.ar-lines,.ar-grid>.ar-foot{grid-column:1/-1}
.ar-grid>.ar-pay{grid-column:1}.ar-grid>.ar-sum{grid-column:2}
.ar-grid .card-head h3{display:flex;align-items:center;gap:7px}.ar-grid .card-head h3>svg{width:17px;height:17px;color:var(--primary)}
.ar-party .card-head h3>svg{color:var(--green-500)}
.ar-num{font-size:12px;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.04em}.ar-num b{font-size:13px;color:var(--ink);text-transform:none;letter-spacing:0;padding:3px 9px;border-radius:7px;background:var(--primary-50);color:var(--primary)}
.ar-party .card-body{display:flex;flex-direction:column;gap:10px}
.ar-pc{border:1px solid var(--green-line);background:var(--green-bg);border-radius:12px;padding:10px 12px}
.ar-pc-top{display:flex;align-items:center;gap:10px}.ar-pc-top .avatar{flex:none}
.ar-pc-name{flex:1;min-width:0}.ar-pc-name b{display:block;font-size:15px;line-height:1.2}.ar-pc-name small{color:var(--muted);font-size:12px}
.ar-pc-act{display:flex;gap:2px}
.ar-pc-dl{display:grid;grid-template-columns:1fr 1fr;gap:6px 14px;margin:10px 0 0}
.ar-pc-dl>div{min-width:0}.ar-pc-dl>div.w{grid-column:1/-1}
.ar-pc-dl dt{font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.05em;color:var(--muted)}
.ar-pc-dl dd{margin:1px 0 0;font-size:13px;font-weight:600;overflow-wrap:anywhere}
.ar-hint{display:flex;align-items:center;gap:7px;margin:0;padding:10px 12px;border-radius:10px;background:var(--gray-bg);color:var(--muted);font-size:13px}.ar-hint svg{width:15px;height:15px;flex:none}
.ar-hint.new{background:var(--violet-bg);color:var(--violet-500)}
.ar-veh{margin:0}
.ar-sum .sp-sum-rows .grand b{font-size:20px}
.ar-sum .field{margin-bottom:10px}
.ar-foot{display:flex;align-items:center;gap:8px}
.doc-lines .c-n{width:38px}.ar-n{color:var(--muted);font-weight:700;text-align:center;font-size:12px}
.lines-table tr.ar-blank td{background:var(--blue-bg)}
.addr-row{display:grid;grid-template-columns:90px minmax(0,1fr) 70px;gap:10px}.addr-row .field{margin:0}
@media (max-width:1099px){.ar-grid{grid-template-columns:1fr}.ar-grid>*{grid-column:1!important}}
.lines-table td.ar-n{vertical-align:middle}
@media (max-width:699px){.ps-prices{overflow-x:auto}.ps-prices .pp-prices{min-width:620px}.ps-code{font-size:13px}.ps-id{align-items:flex-start}}
.part-page>*,.credit-page>*{flex-shrink:0}
/* V195: campi dei documenti più compatti */
.ar-form .ar-grid{gap:10px}
.ar-grid>.card>.card-head{padding:9px 14px;min-height:44px}
.ar-grid>.card>.card-body{padding:10px 14px 12px}
.ar-grid .form-grid{gap:8px 10px}
.ar-grid .field{gap:3px}
.ar-grid .field-label{font-size:11px}
.ar-grid .field-hint{font-size:11px}
.ar-grid .input,.ar-grid .select{height:34px;font-size:13px}
.ar-grid .lines-table td{padding-top:4px;padding-bottom:4px}
.ar-grid .lines-table .input,.ar-grid .lines-table .select{height:32px}
.ar-grid .lines-table thead th{padding-top:8px;padding-bottom:8px}
.ar-grid .form-grid.cols-4>.span-3{grid-column:span 3}
.ar-party .card-body{gap:8px}
.ar-pc{padding:8px 12px}
.ar-pc-top .avatar{width:30px;height:30px;font-size:12px}
.ar-pc-name b{font-size:15px}
.ar-pc-dl{grid-template-columns:repeat(3,minmax(0,1fr));gap:4px 12px;margin-top:6px}
.ar-pc-dl>div.w{grid-column:span 2}
.ar-pc-dl dd{font-size:13px}
.ar-hint{padding:8px 10px;font-size:12px}
.ar-sum .sp-sum-rows>div{padding:3px 0}
.ar-sum .sp-sum-rows .grand{margin-top:4px;padding-top:7px}
.ar-num b{padding:2px 8px}
.ar-grid .compare{margin-top:8px}
.ar-grid .check-list{max-height:170px;overflow:auto}
@media (max-width:1399px){.ar-pc-dl{grid-template-columns:repeat(2,minmax(0,1fr))}.ar-pc-dl>div.w{grid-column:1/-1}}
@media (max-width:1250px) and (min-width:700px){.ar-doc .form-grid.cols-4,.ar-pay .form-grid.cols-4{grid-template-columns:repeat(2,minmax(0,1fr))}.ar-doc .form-grid.cols-4 .span-4,.ar-pay .form-grid.cols-4 .span-4{grid-column:1/-1}}
.ar-grid .lines-table td{vertical-align:middle}
.ar-grid .file-pick{position:relative;height:34px;border:1px dashed var(--line-strong);border-radius:9px;padding:0 10px;gap:6px;background:#fff;cursor:pointer;overflow:hidden;color:var(--ink-2);font-weight:600}
.ar-grid .file-pick:hover{border-color:var(--primary);color:var(--primary)}
.ar-grid .file-pick.has{border-style:solid;background:var(--primary-50);color:var(--primary)}
.ar-grid .file-pick input{position:absolute;inset:0;opacity:0;cursor:pointer;max-width:none}
.ar-grid .file-pick svg{width:15px;height:15px;flex:none}.ar-grid .file-pick span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ar-pc-empty{display:flex;align-items:center;gap:6px;width:100%;margin-top:8px;padding:7px 10px;border:1px dashed var(--green-400);border-radius:9px;background:#fff;color:var(--green-700);font-weight:700;font-size:12px;cursor:pointer;text-align:left}.ar-pc-empty svg{width:14px;height:14px}
.ar-pc-empty:hover{background:var(--green-bg)}
@media (max-width:1250px) and (min-width:700px){.ar-pay .form-grid.cols-3{grid-template-columns:repeat(2,minmax(0,1fr))}.ar-pay .form-grid.cols-3 .span-3{grid-column:1/-1}}
/* V196: codice articolo largo quanto il contenuto */
.lines-table .code-combo,.work-form .lines-table .code-combo{width:calc(var(--cw,8ch) + 44px)}
.lines-table .code-combo .input{font-family:ui-monospace,Consolas,monospace}
.lines-table .code-in{width:calc(var(--cw,8ch) + 24px);font-family:ui-monospace,Consolas,monospace;text-transform:uppercase}
.lines-table .code-combo{font-family:ui-monospace,Consolas,monospace}
.xi-warn{align-items:flex-start}.xi-warn>div{display:flex;flex-direction:column;gap:8px;font-size:13px}
.xi-me{display:flex;gap:6px;flex-wrap:wrap}.xi-me .btn{height:30px;font-weight:600}.xi-me svg{width:14px;height:14px;color:var(--green-500)}
.xi-dir.unsure{box-shadow:0 0 0 2px var(--orange-500)}
.xi-warn p{margin:0}
/* V197: righe di nota nei documenti (solo testo) */
.lines-table tr.is-note td{background:var(--orange-bg)}
.note-cell{display:flex;align-items:center;gap:8px}.note-cell svg{width:15px;height:15px;color:var(--orange);flex:none}
.note-cell .input{font-style:italic;color:var(--orange-700);background:transparent;border-color:var(--orange-400)}
@media (max-width:699px){.lines-table tr.is-note td[data-label]::before{display:none}}
/* V198: barra standard delle pagine (filtri a sinistra, azioni a destra, va a capo solo se serve) */
.toolbar.tb-std{gap:8px;row-gap:8px}
.toolbar.tb-std>*{flex:0 0 auto}
.toolbar.tb-std>.toolbar-fill{flex:1 1 220px;min-width:180px}
.toolbar.tb-std .select{min-width:0;max-width:200px}
.toolbar .tb-actions{display:flex;align-items:center;gap:6px;margin-left:auto;flex-wrap:wrap;justify-content:flex-end}
.toolbar .tb-actions .btn{height:36px}
.tb-info{font-size:12px;color:var(--muted);white-space:nowrap;margin-right:4px}
.kpi-row.nine{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:8px}
.kpi-row.nine .kpi{padding:9px 11px}.kpi-row.nine .kpi-ic{display:none}.kpi-row.nine .kpi-value{font-size:17px;white-space:nowrap}.kpi-row.nine .kpi-label{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
@media (max-width:699px){.toolbar .tb-actions{margin-left:0;width:100%;justify-content:flex-start}.tb-info{white-space:normal}}
/* V198: colonna "Nello stato da" e storico stati */
.since-cell{display:flex;flex-direction:column;align-items:flex-start;gap:1px;padding:3px 7px;border-radius:8px;border:1px solid transparent;background:none;text-align:left;white-space:nowrap;cursor:pointer}
.since-cell:hover{border-color:var(--line);background:var(--gray-bg)}
.since-cell strong{font-size:13px}.since-cell small{font-size:11px;color:var(--muted)}
.since-cell.warn small{color:var(--orange);font-weight:700}.since-cell.old small{color:var(--red);font-weight:800}
.pop-wide{min-width:420px;max-width:560px}
.sh-pop{padding-bottom:8px}.sh-table td{vertical-align:middle;white-space:nowrap}.sh-table tr.cur td{background:var(--primary-50)}
.sh-tot{display:flex;flex-wrap:wrap;gap:6px 12px;padding:8px 10px 0;font-size:12px}
/* V198: tabella lavori uguale per tutte le pagine, più compatta */
.works-table .table th,.works-table .table td{padding-left:8px;padding-right:8px}
.works-table td[data-label="Intervento"] .cell-2{max-width:210px}
.works-table td[data-label="Proprietario"] .cell-2{max-width:160px}
.works-table td[data-label="Proprietario"] strong{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block}
.works-table .ops{display:flex;align-items:center;gap:3px}.works-table .ops-n{font-size:12px;white-space:nowrap;margin-left:3px}
.works-table td[data-label="Targa"] .plate{white-space:nowrap}
.works-table .badge-btn .badge{white-space:nowrap}
.kpi-row.nine{grid-template-columns:repeat(auto-fit,minmax(118px,1fr))}
.works-table .table th,.works-table .table td{padding-left:6px;padding-right:6px}
.works-table td[data-label="Intervento"] .cell-2{max-width:170px}
.works-table td[data-label="Proprietario"] .cell-2{max-width:140px}
.works-table th{white-space:nowrap}
.pay-cell{display:flex;flex-direction:column;align-items:flex-start;gap:2px;background:none;border:0;padding:2px 0;cursor:pointer;text-align:left}.pay-cell small{font-size:11px;color:var(--muted);white-space:nowrap}
.works-table td[data-label="Intervento"] .cell-2{max-width:150px}
.works-table td[data-label="Proprietario"] .cell-2{max-width:125px}
.pop-wide{min-width:460px;max-width:680px}.sh-table th,.sh-table td{padding:6px 8px}
/* V200: righe della lista lavori tutte della stessa altezza (max 2 righe di testo per cella) */
.works-table tbody tr:not(.empty-row) td{height:56px;max-height:56px;vertical-align:middle}
.works-table td .cell-2>*{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block}
.works-table td .cell-2.clamp>*{-webkit-line-clamp:unset}
.works-table .amt-cell{display:flex;flex-direction:column;align-items:flex-end;gap:1px;white-space:nowrap}
.amt-sub{font-size:11px;font-weight:700}.amt-sub.due{color:var(--red)}.amt-sub.ok{color:var(--green-700)}.amt-sub.over{color:var(--orange)}
.works-table .plan-cell{white-space:nowrap}
.topay-box.zero{background:var(--gray-bg);color:var(--muted)}.topay-box.zero b{color:var(--ink-2)}
.works-table .pay-cell{gap:0;padding:0}.works-table .pay-cell .badge{line-height:1.3;padding-top:1px;padding-bottom:1px}.works-table .amt-cell b{line-height:1.25}
/* V201: icona piccola per lo storico stati (non sposta l'allineamento) */
.sh-ic{display:inline-grid;place-items:center;width:18px;height:18px;margin-left:4px;padding:0;border:0;border-radius:5px;background:transparent;color:var(--muted);vertical-align:middle;cursor:pointer;line-height:1}
.sh-ic svg{width:13px;height:13px}.sh-ic:hover{background:var(--primary-50);color:var(--primary)}
.field-label .sh-ic{margin-top:-3px;margin-bottom:-3px}
.cell-2.since.warn small{color:var(--orange);font-weight:700}.cell-2.since.old small{color:var(--red);font-weight:800}
/* V201: veicolo e cliente nel lavoro: in archivio (verde) o nuovo (viola) */
.entity-box.is-known{border-color:var(--green-line);background:var(--green-bg)}
.entity-box.is-new{border-color:var(--violet-line);background:var(--violet-bg)}
.entity-state{display:flex;align-items:center;gap:8px;margin-bottom:8px}.entity-state small{color:var(--muted);font-size:12px}
.entity-state .badge svg,.client-state .badge svg{width:12px;height:12px;vertical-align:-2px}
.client-row.is-new{border-color:var(--violet-line);background:var(--violet-bg)}
.entity-state{margin:0}
/* V203: dashboard, elenco a colonne allineate (ora, targa, lavoro, operatore, stato) */
.dash-row{display:grid;grid-template-columns:88px 112px minmax(0,1fr) 180px 132px;gap:12px;align-items:center}
.dash-time{width:auto}.dash-op{width:auto;min-width:0}.dash-plate{display:flex;min-width:0}.dash-st{display:flex;justify-content:flex-start;min-width:0}
.dash-st .badge{white-space:nowrap}
.tiles-group:last-child .tiles{grid-template-columns:repeat(auto-fit,minmax(86px,1fr))}
@media (max-width:699px){.dash-row{grid-template-columns:72px 100px minmax(0,1fr)}.dash-st{display:none}}
.tiles-group:last-child .tile-l{white-space:normal;overflow:visible;text-overflow:clip;line-height:1.15}
/* V204: riquadri della dashboard: 6 in riga, altrimenti 3+3 (mai un riquadro da solo sotto) */
.tiles-group{container-type:inline-size}
.tiles,.tiles-group:last-child .tiles{grid-template-columns:repeat(6,minmax(0,1fr))}
@container (max-width:620px){.tiles,.tiles-group:last-child .tiles{grid-template-columns:repeat(3,minmax(0,1fr))}}
@container (max-width:300px){.tiles,.tiles-group:last-child .tiles{grid-template-columns:repeat(2,minmax(0,1fr))}}
/* V204: priorità dentro lo stato del lavoro: bordo spesso a sinistra del badge */
.prio-mark .badge{border-left:4px solid transparent;border-top-left-radius:4px;border-bottom-left-radius:4px}
.prio-mark.p-alta .badge{border-left-color:var(--red-500)}.prio-mark.p-media .badge{border-left-color:var(--orange-500)}.prio-mark.p-bassa .badge{border-left-color:var(--green)}
.prio-key{display:flex;gap:10px;align-items:center;font-size:12px;color:var(--muted);flex-wrap:wrap}.prio-key i{display:inline-block;width:4px;height:12px;border-radius:2px;margin-right:4px;vertical-align:-2px}
/* V204: colonna importo larga quanto il contenuto */
.works-table th.col-fit,.works-table td.col-fit{width:1%;white-space:nowrap}
.line-labor.is-excluded td{background:var(--red-bg)}.line-labor.is-excluded .input,.line-labor.is-excluded .select{color:var(--muted)}
/* V205: incassi, riquadri importi colorati */
.kpi-row.nine .kpi{--k:var(--blue-500);--kb:var(--blue-bg);position:relative;overflow:hidden;border:1px solid color-mix(in srgb,var(--k) 22%,#fff);background:linear-gradient(160deg,var(--kb) 0%,#fff 78%);box-shadow:0 1px 2px rgba(16,24,40,.04)}
.kpi-row.nine .kpi::before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:var(--k)}
.kpi-row.nine .kpi-label{color:var(--k);letter-spacing:.04em}
.kpi-row.nine .kpi-value{color:#0f1b2d}
.kpi-row.nine .kpi-sub{color:color-mix(in srgb,var(--k) 55%,var(--n-500))}
.kpi-row.nine .kpi.tone-green{--k:var(--green-500);--kb:var(--green-bg)}.kpi-row.nine .kpi.tone-teal{--k:var(--blue-700);--kb:var(--blue-line)}
.kpi-row.nine .kpi.tone-blue{--k:var(--blue-500);--kb:var(--blue-bg)}.kpi-row.nine .kpi.tone-violet{--k:var(--violet-500);--kb:var(--violet-bg)}
.kpi-row.nine .kpi.tone-orange{--k:var(--orange-500);--kb:var(--orange-bg)}.kpi-row.nine .kpi.tone-red{--k:var(--red-500);--kb:var(--red-bg)}
.kpi-row.nine .kpi.tone-slate{--k:var(--n-600);--kb:var(--n-100)}.kpi-row.nine .kpi.tone-indigo{--k:var(--violet);--kb:var(--blue-bg)}
/* V205: dashboard, i due gruppi di riquadri occupano metà spazio ciascuno e si comportano uguale */
.tiles-group,.tiles-group:first-child{flex:1 1 320px;min-width:0}
@container (max-width:560px){.tiles,.tiles-group:last-child .tiles{grid-template-columns:repeat(3,minmax(0,1fr))}}
/* V205: tabelle adattive. Le colonne brevi restano su una riga e prendono la larghezza del contenuto;
   le colonne di testo (descrizione, fornitore, cliente…) si prendono lo spazio rimasto e vanno a capo al massimo su 2 righe */
.table td{white-space:nowrap}
.table td.col-text{white-space:normal;min-width:150px}
.table td.col-text .tx{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden;overflow-wrap:break-word;line-height:1.3}
.table td.col-text .cell-2 strong,.table td.col-text .cell-2 small{max-width:none}
.table td.col-text .cell-2{display:block}.table td.col-text .cell-2>*{display:block}
.table td.col-text .cell-2 strong{white-space:normal;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:1;overflow:hidden}
.table td.col-text .cell-2 small{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.table td .plate{min-width:86px;justify-content:center;text-align:center}
.mv-btn.sq{width:28px;height:26px;padding:0;font-size:15px;font-weight:800;display:inline-grid;place-items:center}
/* tabella lavori: ha già le sue larghezze calibrate, il testo resta su una riga */
/* spazi interni delle celle più stretti sugli schermi medi: più spazio al contenuto */
@media (max-width:1599px){.table th,.table td{padding-left:9px;padding-right:9px}}
@media (max-width:1399px){.table th,.table td{padding-left:7px;padding-right:7px}.table th{letter-spacing:.1px}}
@media (max-width:1399px){.works-table td[data-label="Intervento"] .cell-2{max-width:122px}.works-table td[data-label="Proprietario"] .cell-2{max-width:108px}.works-table .table th,.works-table .table td{padding-left:5px;padding-right:5px}}
@media (max-width:1199px){.hide-tab{display:none!important}}
/* V205: conto fornitori */
.sa-kpis{grid-template-columns:repeat(auto-fit,minmax(170px,1fr))!important}
.sa-bar{display:block;height:4px;border-radius:3px;background:var(--n-200);margin-top:4px;overflow:hidden;min-width:60px}.sa-bar i{display:block;height:100%;background:linear-gradient(90deg,var(--green-500),var(--green-500));border-radius:3px}
.sa-grid{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(320px,1fr);gap:14px;align-items:start}
@media (max-width:1199px){.sa-grid{grid-template-columns:1fr}}
.sa-main .table-card{max-height:none}
.sa-side{display:flex;flex-direction:column;gap:14px;min-width:0}
.sa-card{padding:0;overflow:hidden}.sa-card-head{display:flex;align-items:center;gap:8px;padding:11px 14px;border-bottom:1px solid var(--line);flex-wrap:wrap}
.sa-card-head h3{margin:0;font-size:13px;display:flex;align-items:center;gap:7px;flex:1}.sa-card-head h3 svg{width:16px;height:16px;color:var(--primary)}
.sa-card .table td,.sa-card .table th{padding:7px 10px}
.sa-pays{max-height:360px;overflow:auto}
.sa-pay{padding:9px 14px;border-bottom:1px solid var(--line)}.sa-pay:last-child{border-bottom:0}
.sa-pay-top{display:flex;align-items:center;gap:6px}
.sa-chips{display:flex;flex-wrap:wrap;gap:4px;margin-top:6px}
.sa-chip{font-size:11px;background:var(--blue-bg);color:var(--blue-700);border:1px solid var(--blue-line);border-radius:999px;padding:2px 8px;white-space:nowrap}
.sa-note,.sa-alert{display:flex;gap:8px;align-items:flex-start;padding:10px 14px;background:var(--orange-bg);border-top:1px solid var(--orange-line);font-size:12px;color:var(--orange-700)}
.sa-note svg,.sa-alert svg{width:16px;height:16px;flex:none;margin-top:1px}
.sa-alert{align-items:center;border:1px solid var(--violet-line);background:var(--violet-bg);color:var(--violet);border-radius:12px;margin-bottom:12px}.sa-alert span{flex:1}
.sa-sel{min-width:220px;font-weight:700}
.table tr.row-partial td:first-child{box-shadow:inset 3px 0 0 var(--violet-500)}
.sp-docs-head{display:flex;align-items:center;gap:10px;margin:16px 0 8px;flex-wrap:wrap}
.sp-docs{max-height:300px;border:1px solid var(--line);border-radius:10px}
.sp-docs tr.is-sel td{background:var(--blue-bg)}
.sp-docs .sp-a{width:110px;text-align:right;height:30px}
.sp-docs .d-block,.d-block{display:block}
.sp-empty{padding:16px;border:1px dashed var(--line);border-radius:10px;color:var(--muted);display:flex;gap:8px;align-items:center}.sp-empty svg{width:16px;height:16px}
.sp-sum{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin-top:12px}
.sp-sum>div{background:var(--gray-bg);border-radius:10px;padding:8px 12px;display:flex;flex-direction:column}
.sp-sum small{color:var(--muted);font-size:11px}.sp-sum b{font-size:15px;font-variant-numeric:tabular-nums}
.sp-sum .is-warn{background:var(--violet-bg)}.sp-sum .is-warn b{color:var(--violet)}.sp-sum .is-bad{background:var(--red-bg)}.sp-sum .is-bad b{color:var(--red-500)}.sp-sum .is-ok b{color:var(--green-500)}
@media (max-width:699px){.sp-sum{grid-template-columns:repeat(2,minmax(0,1fr))}}
.sa-paid{display:inline-flex;flex-direction:column;align-items:flex-end;gap:3px}.sa-paid .sa-bar{width:64px;margin-top:0}
.sa-paid{display:inline-flex;flex-direction:column;align-items:flex-end;gap:3px}.sa-paid .sa-bar{width:64px;margin-top:0}
.cell-2>.badge{align-self:flex-start}
/* V206: barra compatta su una riga (lavori, magazzino, spese) */
.toolbar.tb-compact{flex-wrap:nowrap;position:relative}
.toolbar.tb-compact>.seg{flex:0 1 auto;min-width:0;overflow-x:auto;scrollbar-width:none;flex-wrap:nowrap}
.toolbar.tb-compact>.seg::-webkit-scrollbar{display:none}
.toolbar.tb-compact>.seg .seg-btn{white-space:nowrap;flex:none}
.toolbar.tb-compact>.toolbar-fill{flex:1 1 200px;min-width:150px}
.toolbar.tb-compact .tb-actions{flex-wrap:nowrap;margin-left:0}
.toolbar.tb-compact .btn.icon-only{width:36px;padding:0;justify-content:center}
.toolbar.tb-compact .btn.icon-only span{display:none}
.toolbar.tb-compact .clear-filters span{display:none}.toolbar.tb-compact .clear-filters{width:36px;height:36px;padding:0;justify-content:center}
.tb-filters{position:relative;flex:none}
.tb-filters-btn{height:36px;gap:6px}
.tb-filters-btn.has-active{border-color:var(--blue-400);background:var(--primary-50);color:var(--primary)}
.tb-filters-n{min-width:18px;height:18px;border-radius:9px;background:var(--primary);color:#fff;font-size:11px;display:inline-grid;place-items:center;padding:0 5px}
.tb-filters-pop{display:none;position:absolute;top:calc(100% + 6px);left:0;z-index:40;min-width:260px;background:#fff;border:1px solid var(--line);border-radius:12px;box-shadow:var(--shadow-lg,0 12px 32px rgba(16,24,40,.16));padding:12px;flex-direction:column;gap:10px}
.tb-filters.open .tb-filters-pop{display:flex}
.tb-filters-pop .filter-field{display:flex;flex-direction:column;align-items:stretch;gap:4px;margin:0}
.tb-filters-pop .filter-field>span{font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.4px;color:var(--muted)}
.tb-filters-pop .select{width:100%;max-width:none!important;min-width:0}
@media (max-width:1199px){.toolbar.tb-compact{flex-wrap:wrap}.toolbar.tb-compact>.seg{max-width:100%}}
.toolbar.tb-compact>.seg .seg-btn{padding-left:9px;padding-right:9px}
.toolbar.tb-compact>.seg .seg-count{margin-left:4px}
.tb-filters-pop{left:auto;right:0}
@media (max-width:1399px){.toolbar.tb-compact>.seg .seg-btn{padding-left:7px;padding-right:7px;font-size:12px}.toolbar.tb-compact>.toolbar-fill{flex-basis:150px;min-width:120px}}
.l-short{display:none}
@media (max-width:1799px){.tb-compact .l-full{display:none}.tb-compact .l-short{display:inline}}
@media (max-width:1399px){.toolbar.tb-compact .tb-filters-btn span{display:none}.toolbar.tb-compact .tb-filters-btn{padding:0 10px}}
@media (max-width:1399px){.toolbar.tb-compact>.seg .seg-btn{padding-left:6px;padding-right:6px}.toolbar.tb-compact>.toolbar-fill{min-width:130px}}
@media (max-width:1399px){.toolbar.tb-compact>.seg{gap:0}.toolbar.tb-compact{gap:6px}}
/* V206: entrate e uscite */
.tx-dir{display:inline-flex;align-items:center;gap:4px;font-weight:800;font-size:12px;padding:3px 8px;border-radius:999px}
.tx-dir svg{width:13px;height:13px}
.tx-dir.in{background:var(--green-bg);color:var(--green-500)}.tx-dir.out{background:var(--red-bg);color:var(--red)}
.table tr.tx-in td:first-child{box-shadow:inset 3px 0 0 var(--green-500)}.table tr.tx-out td:first-child{box-shadow:inset 3px 0 0 var(--red-500)}
.tx-kpis{grid-template-columns:repeat(auto-fit,minmax(180px,1fr))!important}
.text-green{color:var(--green-500)}.text-red{color:var(--red-500)}
.tone-indigo.badge{background:var(--blue-bg);color:var(--violet)}
.toolbar .tx-month{min-width:150px}
.doc-lines td.dl-code .input{font-family:var(--mono,ui-monospace,monospace);text-transform:uppercase;font-size:12px}
/* V207: pagamenti con ora, fonte e metodi */
.pay-cell small.pay-src{font-size:11px;color:var(--violet-500);font-weight:700;text-transform:uppercase;letter-spacing:.3px}
.pay-pop{min-width:300px;max-width:380px}
.menu-note{display:flex;gap:8px;align-items:flex-start;padding:8px 12px;font-size:12px;color:var(--ink-2,var(--n-700));background:var(--gray-bg);border-radius:8px;margin:4px 6px}
.menu-note svg{width:15px;height:15px;flex:none;margin-top:1px}
.menu-item.danger{color:var(--red-500)}
.sp-pays{margin-top:12px;border:1px solid var(--line);border-radius:12px;padding:10px 12px;display:flex;flex-direction:column;gap:6px;background:var(--blue-bg)}
.sp-pays #spPays{display:flex;flex-direction:column;gap:6px}
.sp-pays .dl-rows-head{display:grid;grid-template-columns:minmax(0,1fr) 140px 34px;gap:8px;font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.4px;color:var(--muted)}
.sp-pays .dl-add{align-self:flex-start}
.pay-row .select.needs{border-color:var(--red-line)}
.cash-box{padding:10px 12px;margin-bottom:12px}
.cash-head{display:flex;align-items:center;gap:8px;margin-bottom:8px}.cash-head svg{width:16px;height:16px;color:var(--primary)}
.cash-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:8px}
.cash-tile{display:flex;flex-direction:column;align-items:flex-start;gap:2px;padding:8px 12px;border:1px solid var(--line);border-radius:10px;background:#fff;cursor:pointer;text-align:left}
.cash-tile:hover{border-color:var(--blue-400);background:var(--primary-50)}
.cash-tile.active{border-color:var(--primary);box-shadow:0 0 0 2px var(--blue-line);background:var(--primary-50)}
.cash-m{font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.4px;color:var(--muted)}
.cash-tile b{font-size:15px;font-variant-numeric:tabular-nums}.cash-tile small{font-size:11px}
.doc-round{display:flex;align-items:center;justify-content:flex-end;gap:6px;margin:6px 0 4px}.doc-round .rb-lbl{margin-right:auto;font-size:11px;font-weight:800;letter-spacing:.4px;text-transform:uppercase;color:var(--muted)}
.doc-grand .tot-edit{display:inline-flex;align-items:center;gap:6px}.doc-grand .tot-edit .input{width:130px;text-align:right;font-weight:800;font-size:15px;color:var(--primary)}
.doc-round-row{display:flex;justify-content:space-between;align-items:center;font-size:13px}
.table tr.is-round td{background:var(--red-bg)}
.pay-cell.one{padding:0}
.sp-fixed{display:flex;align-items:center;gap:8px;height:38px;padding:0 12px;border:1px solid var(--line);border-radius:10px;background:var(--gray-bg)}.sp-fixed svg{width:16px;height:16px;color:var(--primary)}
.dt-pair{display:grid;grid-template-columns:minmax(0,1fr) 110px;gap:6px}
.spe-pay-top{display:flex;align-items:center;gap:10px;margin-bottom:8px;font-size:13px}
.spe-pays{display:flex;flex-direction:column;gap:6px;margin-bottom:8px}
.spe-pay{display:grid;grid-template-columns:100px minmax(0,1fr) auto;gap:8px;align-items:center;padding:7px 10px;border:1px solid var(--line);border-radius:9px;background:#fff;text-align:left;cursor:pointer;font-size:13px}
.spe-pay:hover{border-color:var(--blue-400);background:var(--primary-50)}.spe-pay small{color:var(--muted);font-size:11px}
.spe-pay-actions{display:flex;gap:6px;margin:6px 0 10px;flex-wrap:wrap}
.ar-pay .notice{margin-bottom:8px}
.sa-head{display:flex;align-items:center;gap:12px;padding:12px 16px;margin-bottom:12px;flex-wrap:wrap}
.sa-av{width:44px;height:44px;border-radius:12px;background:linear-gradient(135deg,var(--blue-500),var(--violet));color:#fff;font-weight:800;display:grid;place-items:center;font-size:15px;flex:none}
.sa-name{display:flex;flex-direction:column;min-width:0}.sa-name small{font-size:11px;font-weight:800;letter-spacing:.6px;text-transform:uppercase;color:var(--primary)}
.sa-name h2{margin:0;font-size:20px;line-height:1.2}
.sa-flag{padding:6px 10px;border:1px solid var(--line);border-radius:10px;background:var(--gray-bg);font-size:12px;font-weight:700}
/* V209: righe documento/lavoro: le celle vanno a capo (niente scorrimento laterale), la descrizione prende lo spazio */
.lines-table td{white-space:normal}
.lines-table td .line-sub,.lines-table td small{white-space:normal;overflow-wrap:anywhere}
.lines-table td.money,.lines-table td[data-label=Totale]{white-space:nowrap}
.work-form .lines-table td[data-label=Descrizione]{min-width:0}
.work-form .lines-table td[data-label=Descrizione] .select,.work-form .lines-table td[data-label=Descrizione] .input{min-width:0;width:100%}
/* V209: tasti arrotonda colorati (in meno = sconto, in più = arrotondamento, reset) */
.round-btns .btn[data-d="-1"]{background:var(--orange-bg);border-color:var(--orange-400);color:var(--orange)}
.round-btns .btn[data-d="-1"]:hover{background:var(--orange-line)}
.round-btns .btn[data-d="1"]{background:var(--green-bg);border-color:var(--green-400);color:var(--green-700)}
.round-btns .btn[data-d="1"]:hover{background:var(--green-line)}
.round-btns .btn[data-act="wfResetRate"],.round-btns .btn[data-act="docRoundOff"]{background:var(--n-100);border-color:var(--n-300);color:var(--n-700)}
.round-btns .btn[data-act="wfResetRate"]:not(:disabled):hover{background:var(--n-200)}
.round-btns .btn[data-act="wfResetRate"]:not(:disabled){background:var(--blue-bg);border-color:var(--blue-line);color:var(--blue)}
.cb-sup{color:var(--violet,var(--violet));font-weight:700}
.opt-date-chk{display:flex;align-items:center;gap:6px;margin-bottom:4px}.opt-date-chk .field-label{margin:0}
.opt-date .input:disabled{background:var(--gray-bg);color:transparent}
/* V209: modale pagamento: importo unico, Tutto/Nessuno, metodi, assegnazione automatica */
.sp-amount-row{display:grid;grid-template-columns:200px auto auto minmax(0,1fr);gap:8px 10px;align-items:end;margin-top:12px;padding:12px;border:1px solid var(--line);border-radius:12px;background:var(--blue-bg)}
.sp-amount-in{display:flex;align-items:center;gap:6px}.sp-amount-in .input{font-size:17px;font-weight:800;text-align:right;color:var(--primary);height:42px}
.sp-amount-in span{font-weight:800;color:var(--primary)}
.sp-all,.sp-none{height:42px}.sp-all{background:var(--green-bg);border-color:var(--green-400);color:var(--green-700)}.sp-none{background:var(--n-100);border-color:var(--n-300)}
.sp-methods{display:flex;flex-direction:column;gap:6px;min-width:0}
.sp-methods .pay-row.one{grid-template-columns:minmax(0,1fr)}
.sp-rest{display:flex;align-items:center;justify-content:flex-end;height:36px;padding:0 10px;font-weight:800;border:1px dashed var(--line);border-radius:9px;color:var(--muted)}
.sp-auto{margin-top:10px;font-weight:700}
.sp-auto.flash{animation:spflash .8s 2}@keyframes spflash{50%{background:var(--orange-line)}}
.sp-auto-note{display:flex;gap:8px;align-items:center;padding:8px 12px;margin-top:6px;border-radius:9px;background:var(--blue-bg);color:var(--blue);font-size:12px}.sp-auto-note svg{width:15px;height:15px}
.seg.seg-xs{margin-left:8px;padding:2px;vertical-align:middle}.seg.seg-xs .seg-btn{height:22px;font-size:11px;padding:0 8px}
.sp-supmode{display:inline-flex}
.sp-change{margin-left:auto}
@media (max-width:899px){.sp-amount-row{grid-template-columns:1fr 1fr}.sp-methods{grid-column:1/-1}}
/* V209: nuovi articoli nelle spese: etichetta dentro la cella del codice, l'altezza della riga non cambia */
.sp-table td[data-label=Articolo],.sp-table td:has(.code-combo){position:relative}
.code-tag{position:absolute;top:4px;right:10px;font-size:10px;font-weight:800;letter-spacing:.3px;padding:1px 5px;border-radius:5px;pointer-events:none;line-height:1.3}
.code-tag:empty{display:none}
.code-tag.is-new{background:var(--violet-bg);color:var(--violet);border:1px solid var(--violet-line)}
.code-tag.is-stock{background:var(--green-bg);color:var(--green-500);border:1px solid var(--green-line)}
.sp-table td:has(.code-tag.is-new) .code-combo .input{border-color:var(--violet-line);background:var(--violet-bg)}
.sell-in .input:disabled{background:var(--gray-bg)}
.code-cell{display:flex;gap:4px;align-items:center;position:relative}
.code-cell .sell-inl{width:74px;flex:none;text-align:right;font-size:12px}
.code-cell .code-tag{top:-7px;right:82px}
.inv-pays-box .field-label{display:flex;align-items:center;gap:8px}
.menu-item.static{cursor:default}.menu-item.static .action-btn{margin-left:auto}
.link-btn.danger{color:var(--red-500)}
.inv-pay-info{font-size:13px;color:var(--ink-2,var(--n-700));margin-bottom:6px}
.ip-row{grid-template-columns:170px auto auto 150px}.ip-row .sp-methods{grid-column:1/-1}
.lock-banner{display:flex;gap:10px;align-items:center;padding:10px 14px;margin-bottom:12px;border-radius:12px;background:var(--orange-bg);border:1px solid var(--orange-line);color:var(--orange-700);font-size:13px}
.lock-banner svg{width:18px;height:18px;flex:none}
form.is-locked .input:disabled,form.is-locked .select:disabled,form.is-locked textarea:disabled{background:var(--n-50);color:var(--ink-2,var(--n-700));opacity:1}
.rd-split{width:100%;border-collapse:collapse;font-size:12px;margin-top:6px;grid-column:1/-1}
.rd-split th{font-size:11px;text-transform:uppercase;letter-spacing:.4px;color:var(--muted);text-align:left;padding:3px 6px;border-bottom:1px solid var(--line)}
.rd-split td{padding:3px 6px;border-bottom:1px dashed var(--line)}.rd-split .r{text-align:right}
.rd-check{flex-wrap:wrap}
.rd-ddt-bar{display:flex;align-items:center;gap:8px;margin-bottom:8px;flex-wrap:wrap}.rd-ddt-bar .select{width:auto;height:32px}
.rd-ddt-wrap{max-height:280px;border:1px solid var(--line);border-radius:10px}
.rd-ddt-wrap tr.is-sel td{background:var(--blue-bg)}

/* ============================================================
   V211 — blocchi a zone, permessi per funzione, WhatsApp, scadenze veicoli,
   import XML, documenti importati bloccati, incassi con verifica, statistiche, menu
   ============================================================ */
/* --- menu: gruppi richiudibili --- */
.nav-section-title{display:flex;align-items:center;gap:6px;width:100%;text-align:left;cursor:pointer;border-radius:8px}
.nav-section-title:hover{background:color-mix(in srgb,var(--sec) 12%,transparent)}
.nav-sec-caret{width:13px;height:13px;margin-left:auto;opacity:.7;transition:transform .15s}
.nav-section.closed .nav-sec-caret{transform:rotate(-90deg)}
.nav-section.closed{padding-bottom:2px}
body.sidebar-collapsed .nav-section.closed .nav-sec-body{grid-template-rows:1fr;opacity:1}

/* --- comandi senza permesso --- */
.perm-off{opacity:.42!important;cursor:not-allowed!important;filter:grayscale(.6)}
.fn-count{font-weight:800;font-variant-numeric:tabular-nums;color:var(--ink-2)}
.fn-groups{display:flex;flex-direction:column;gap:6px}
.fn-group{border:1px solid var(--line);border-radius:10px;background:#fff}
.fn-group>summary{display:flex;align-items:center;gap:10px;padding:8px 12px;cursor:pointer;list-style:none}
.fn-group>summary::-webkit-details-marker{display:none}
.fn-group[open]>summary{border-bottom:1px solid var(--line);background:var(--blue-bg);border-radius:10px 10px 0 0}
.fn-n{font-size:11px;font-weight:800;color:var(--primary);background:var(--primary-100);border-radius:10px;padding:1px 8px}
.fn-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:4px 16px;padding:10px 12px}
.fn-item{align-items:flex-start}.fn-item.blocked span{color:var(--muted-2)}
.fn-item input{margin-top:2px}

/* --- presenza e zone bloccate --- */
.presence-bar{display:flex;align-items:flex-start;gap:9px;padding:9px 14px;border-radius:10px;background:linear-gradient(90deg,var(--blue-bg),var(--violet-bg));border:1px solid var(--blue-line);color:var(--blue-700);font-size:13px;margin-bottom:10px}
.presence-bar svg{flex:0 0 auto;color:var(--primary);margin-top:1px}
[data-zone]{position:relative;transition:box-shadow .2s}
.zone-busy,.zone-denied{box-shadow:0 0 0 2px var(--orange-400) inset!important;background:repeating-linear-gradient(135deg,var(--orange-bg),var(--orange-bg) 10px,var(--orange-bg) 10px,var(--orange-bg) 20px)!important}
.zone-denied{box-shadow:0 0 0 1px var(--line-strong) inset!important;background:repeating-linear-gradient(135deg,var(--n-50),var(--n-50) 10px,var(--n-100) 10px,var(--n-100) 20px)!important}
.zone-busy input,.zone-busy select,.zone-busy textarea,.zone-denied input,.zone-denied select,.zone-denied textarea{background:transparent!important}
.zone-tag{display:flex;align-items:center;gap:8px;margin:8px 10px 0;padding:6px 10px;border-radius:8px;background:var(--orange-line);color:var(--orange-700);font-size:12px;font-weight:600}
.zone-denied .zone-tag{background:var(--gray-bg);color:var(--gray)}
.zone-tag svg{width:15px;height:15px}.zone-tag .link-btn{margin-left:auto;font-weight:700}
.zone-conflict{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:8px 12px 0;padding:7px 10px;border-radius:8px;background:var(--red-bg);color:var(--red-700);font-size:12px}
.zone-conflict svg{width:15px;height:15px}.zone-conflict .link-btn{margin-left:auto;font-weight:700}

/* --- scheda lavoro: importi nascosti per permesso --- */
.wf-grid.no-costs .lines-table th:nth-child(4),.wf-grid.no-costs .lines-table td:nth-child(4){display:none}
.wf-grid.no-amounts .lines-table th:nth-child(n+4):nth-child(-n+6),.wf-grid.no-amounts .lines-table td:nth-child(n+4):nth-child(-n+6){display:none}
.wf-grid.no-amounts .wf-sum2{display:none}

/* --- WhatsApp --- */
.wa-btn{color:var(--green-700)}.wa-btn svg{color:var(--green)}
.btn.wa-btn{border-color:var(--green-line);background:var(--green-bg)}
.wa-box{display:flex;flex-direction:column;gap:12px}
.wa-to{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:10px;background:var(--green-bg);border:1px solid var(--green-line)}
.wa-to svg{width:26px;height:26px;color:var(--green)}.wa-to small{display:block;color:var(--muted)}
.wa-last{display:flex;flex-direction:column;gap:4px;padding-top:6px;border-top:1px dashed var(--line)}
.wa-last>div{display:flex;align-items:center;gap:8px;font-size:12px}
.btn.wa-go{background:var(--green);border-color:var(--green)}

/* --- documenti importati bloccati --- */
.imp-lock{display:flex;align-items:center;gap:12px;padding:11px 14px;border-radius:12px;margin-bottom:12px;border:2px solid var(--blue-line);background:var(--blue-bg);color:var(--blue-700)}
.imp-lock>svg{width:24px;height:24px;flex:0 0 auto}
.imp-lock b{display:block;font-size:13px}.imp-lock small{color:var(--blue)}
.imp-lock.off{border-color:var(--orange-400);background:var(--orange-bg);color:var(--orange-700)}.imp-lock.off small{color:var(--orange)}
.lock-switch{display:inline-flex;align-items:center;gap:9px;padding:7px 12px;border-radius:10px;background:#fff;border:1px solid var(--line-strong);font-weight:800;font-size:13px;white-space:nowrap;box-shadow:var(--shadow)}
.lock-switch:hover{border-color:var(--primary)}
.ls-track{position:relative;width:38px;height:22px;border-radius:11px;background:var(--blue-500);transition:background .15s}
.ls-knob{position:absolute;top:3px;left:19px;width:16px;height:16px;border-radius:50%;background:#fff;transition:left .15s;box-shadow:0 1px 2px rgba(0,0,0,.3)}
.lock-switch.is-off .ls-track{background:var(--orange-500)}.lock-switch.is-off .ls-knob{left:3px}
.is-locked-sec{position:relative}
.is-locked-sec::after{content:"";position:absolute;inset:0;border-radius:inherit;background:rgba(238,243,252,.35);pointer-events:none}

/* --- stampa / esporta e importa --- */
.btn.tb-out svg:last-child,.btn[data-act="docOutMenu"] svg:last-child{width:14px;height:14px;opacity:.7}
.btn-import{border-color:var(--blue-line);background:var(--blue-bg);color:var(--primary-700)}

/* --- import XML --- */
.xi-progress{display:flex;align-items:center;gap:14px;padding:14px 16px;border-radius:12px;background:var(--blue-bg);border:1px solid var(--blue-line);margin:10px 0}
.xi-progress .xi-pc{font-size:20px;color:var(--primary);font-variant-numeric:tabular-nums}
.xi-bar{height:8px;border-radius:5px;background:var(--blue-line);overflow:hidden;margin-top:7px}
.xi-bar span{display:block;height:100%;background:linear-gradient(90deg,var(--blue-500),var(--violet-400));border-radius:5px;transition:width .2s}
.xi-spin{width:28px;height:28px;border-radius:50%;border:3px solid var(--blue-line);border-top-color:var(--primary);animation:xispin .8s linear infinite;flex:0 0 auto}
.xi-spin.sm{width:15px;height:15px;border-width:2px;border-color:rgba(255,255,255,.4);border-top-color:#fff}
@keyframes xispin{to{transform:rotate(360deg)}}
@media (prefers-reduced-motion:reduce){.xi-spin{animation-duration:3s}}
.xi-zone.busy{pointer-events:none;opacity:.6}
.xi-sum{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.xi-sum.done{padding:10px 12px;border-radius:10px;background:var(--green-bg);color:var(--green-700);gap:8px}
.xi-table th.sortable{cursor:pointer;user-select:none}.xi-table th .sort-ic{margin-left:4px;opacity:.5}.xi-table th.sorted .sort-ic{opacity:1;color:var(--primary)}
.xi-table tr.xi-ok td{background:var(--green-bg)}.xi-table tr.xi-err td{background:var(--red-bg)}
.link-btn.danger{color:var(--red)}

/* --- incassi con verifica --- */
.rd-head{gap:14px}
.rd-total small:last-child{display:block;font-size:12px;color:var(--muted);font-weight:600;text-transform:none;letter-spacing:0}
.rd-summary{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:8px;margin-bottom:14px}
.rd-summary>div{display:flex;flex-direction:column;gap:1px;padding:9px 11px;border-radius:10px;background:var(--blue-bg);border:1px solid var(--line)}
.rd-summary small{font-size:11px;text-transform:uppercase;letter-spacing:.4px;font-weight:800;color:var(--muted)}
.rd-summary b{font-size:15px}.rd-summary span{font-size:11px;color:var(--muted)}
.rd-summary .out{background:var(--red-bg);border-color:var(--red-line)}.rd-summary .out b{color:var(--red)}
.rd-tiles.v211{grid-template-columns:repeat(4,minmax(0,1fr))}
.rd-tiles.rd-check2{grid-template-columns:repeat(2,minmax(0,1fr))}
.rd-tile.with-exp{gap:6px}
.rd-exp{border-top:1px dashed var(--line);padding-top:6px;display:flex;flex-direction:column;gap:5px}
.rd-exp-head{display:flex;justify-content:space-between;gap:6px;align-items:center;font-size:12px;flex-wrap:wrap}
.rd-exp-list{display:flex;flex-direction:column;gap:3px;max-height:190px;overflow:auto}
.rd-exp-it{display:flex;align-items:center;gap:7px;padding:4px 6px;border-radius:7px;background:var(--blue-bg);font-size:12px;text-align:left}
.rd-exp-it svg{width:14px;height:14px;color:var(--muted)}.rd-exp-it small{display:block;color:var(--muted);font-size:11px}
.rd-exp-none{font-size:12px;color:var(--muted-2);font-style:italic}
.rd-diff{display:inline-flex;align-items:center;gap:4px;font-weight:800;font-size:12px;white-space:nowrap}
.rd-diff svg{width:13px;height:13px}
.rd-diff.ok{color:var(--green)}.rd-diff.plus{color:var(--orange)}.rd-diff.minus{color:var(--red)}
@media (max-width:1099px){.rd-tiles.v211{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:599px){.rd-tiles.v211,.rd-tiles.rd-check2{grid-template-columns:1fr}}

/* --- statistiche --- */
.st-tools{gap:8px}
.st-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;align-items:start}
.st-card[data-w="ecoParts"],.st-card[data-w="ecoTrend"],.st-card[data-w="wkTrend"],.st-card[data-w="crTrend"],.st-card[data-w="opResa"],.st-card[data-w="opUse"]{grid-column:1/-1}
.st-card .card-head{flex-wrap:wrap;row-gap:2px}.st-card .card-head small{order:3;flex-basis:100%}
.st-card .card-head .action-btn{opacity:.4}.st-card:hover .card-head .action-btn{opacity:1}
.st-kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:8px;margin-bottom:12px}
.st-k{display:flex;flex-direction:column;gap:2px;padding:10px 12px;border-radius:10px;background:var(--blue-bg);border:1px solid var(--line);border-left:3px solid var(--c1)}
.st-k small{font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.35px;color:var(--muted)}
.st-k b{font-size:17px;font-variant-numeric:tabular-nums}.st-k b span{font-size:inherit}.st-k>span{font-size:11px;color:var(--muted)}
.st-k.tone-green{border-left-color:var(--green)}.st-k.tone-red{border-left-color:var(--red)}.st-k.tone-orange{border-left-color:var(--orange)}.st-k.tone-violet{border-left-color:var(--violet)}.st-k.tone-blue{border-left-color:var(--blue)}.st-k.tone-slate{border-left-color:var(--gray)}
.st-table td.r,.st-table th.r{text-align:right;font-variant-numeric:tabular-nums}
.st-table tfoot td{border-top:2px solid var(--line-strong)}
.st-top{font-size:11px;color:var(--ink-2)}
.st-pick{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:4px 14px;margin-bottom:6px}
@media (max-width:1099px){.st-grid{grid-template-columns:1fr}}
@media print{.st-card .card-head .action-btn,.st-tools{display:none!important}}

/* --- V211b: conto fornitori a cascata --- */
.sa-tools{gap:8px;flex-wrap:wrap}
.seg-btn.seg-late .seg-count{background:var(--red);color:#fff}
.sa-casc{padding:0;overflow:hidden}
.sa-casc-bar{display:flex;align-items:center;gap:10px;padding:10px 14px;border-bottom:1px solid var(--line);flex-wrap:wrap}
.sa-table td{vertical-align:middle}
.sa-table tr.sa-g td{background:var(--blue-bg);border-top:2px solid var(--line-strong)}
.sa-table tr.sa-g.noinv td{background:var(--orange-bg)}
.sa-table tr.sa-g.nc td{background:var(--violet-bg)}
.sa-table tr.sa-g.is-late td:first-child{box-shadow:inset 4px 0 0 var(--red)}
.sa-table tr.sa-g .cell-2 strong{display:flex;align-items:center;gap:6px}
.sa-table tr.sa-g .cell-2 strong svg{width:16px;height:16px;color:var(--primary)}
.sa-table tr.sa-k td{background:#fff;font-size:13px}
.sa-table tr.sa-k.is-late td:first-child{box-shadow:inset 4px 0 0 var(--red-400)}
.sa-kid{position:relative;padding-left:22px}
.sa-kid::before{content:"";position:absolute;left:6px;top:-12px;bottom:50%;width:11px;border-left:2px solid var(--line-strong);border-bottom:2px solid var(--line-strong);border-bottom-left-radius:6px}
.sa-kid span{display:inline-flex;align-items:center;gap:5px}.sa-kid svg{width:14px;height:14px;color:var(--muted)}
.sa-toggle{width:26px;height:26px;border-radius:7px;display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--line-strong);background:#fff;transform:rotate(-90deg);transition:transform .15s}
.sa-toggle.open{transform:none}.sa-toggle svg{width:15px;height:15px}
.sa-table tfoot td{background:var(--blue-bg);font-weight:800;border-top:2px solid var(--line-strong)}
.sa-more td{padding-top:2px;padding-bottom:6px}
.sa-table .cell-2 small,.sa-table .cell-2 strong{white-space:normal;overflow:visible;text-overflow:clip}
.sa-table td:nth-child(2){min-width:200px}
.sa-grid{grid-template-columns:minmax(0,1.8fr) minmax(300px,1fr)}
.sa-side{position:sticky;top:0}
.sa-side .sa-pays{max-height:calc(100vh - 260px);overflow:auto}
@media (max-width:1199px){.sa-grid{grid-template-columns:1fr}.sa-side{position:static}}
/* --- V211b: statistiche senza buchi e report con i gruppi in alto --- */
.st-flow{display:flex;flex-direction:column;gap:12px}
.st-cols{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;align-items:start}
.st-col{display:flex;flex-direction:column;gap:12px;min-width:0}
.st-note{display:flex;align-items:center;gap:6px;margin:0}.st-note svg{width:15px;height:15px}
@media (max-width:1099px){.st-cols{grid-template-columns:1fr}}
.rep-hnav{display:flex;flex-wrap:wrap;gap:10px 18px;padding:10px 14px;margin-bottom:12px}
.rep-hgroup{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.rep-hgt{font-size:11px;font-weight:800;letter-spacing:.6px;text-transform:uppercase;color:var(--muted)}
.rep-hbtns{display:flex;gap:4px;flex-wrap:wrap}
.rep-hbtn{display:inline-flex;align-items:center;gap:6px;height:32px;padding:0 11px;border-radius:9px;border:1px solid var(--line);background:#fff;font-weight:700;font-size:12px;color:var(--ink-2);white-space:nowrap}
.rep-hbtn svg{width:15px;height:15px;color:var(--muted)}
.rep-hbtn:hover{border-color:var(--primary);color:var(--primary)}
.rep-hbtn.active{background:var(--primary);border-color:var(--primary);color:#fff}.rep-hbtn.active svg{color:#fff}
.rep-full{display:flex;flex-direction:column;gap:12px;min-width:0}
.rep-full .rep-kpis{grid-template-columns:repeat(auto-fit,minmax(170px,1fr))}
.rep-tools{flex-wrap:wrap;gap:8px}

/* --- V213: menu che si apre e chiude senza scatti --- */
.nav-section .nav-sec-body,.nav-group .nav-children{display:grid!important;grid-template-rows:1fr;transition:grid-template-rows .2s ease,opacity .2s ease;opacity:1}
.nav-section .nav-sec-body>*,.nav-group .nav-children>*{min-height:0}
.nav-sec-body{overflow:hidden}.nav-children{overflow:hidden}
.nav-section.closed .nav-sec-body,.nav-group:not(.open)>.nav-children{grid-template-rows:0fr;opacity:0}
.nav-sec-body>.nav-sec-inner{display:flex;flex-direction:column;min-height:0}
.nav-children>.nav-children-inner{display:flex;flex-direction:column;min-height:0}
.nav-group .nav-caret{transition:transform .2s}
@media (prefers-reduced-motion:reduce){.nav-sec-body,.nav-children{transition:none}}

/* --- V213: note del documento sotto il gruppo degli articoli --- */
.doc-notes{display:flex;align-items:flex-start;gap:10px;padding:10px 14px;border-top:1px dashed var(--line);background:var(--orange-bg)}
.doc-notes>svg{width:17px;height:17px;color:var(--orange);margin-top:8px;flex:0 0 auto}
.doc-notes .field{flex:1;margin:0}
.sa-pay .cell-2 strong,.sa-pay .cell-2 small{white-space:normal;overflow:visible;text-overflow:clip}

/* --- V214: note del documento come riquadro a sé --- */
.ar-grid>.ar-notes{grid-column:1/-1;border-top:3px solid var(--orange-500)}
.ar-notes .card-head h3>svg{color:var(--orange)!important}
.ar-notes .card-head{flex-wrap:wrap;gap:4px 10px}
.ar-notes textarea{width:100%;resize:vertical;background:var(--orange-bg)}
.dl-links{display:flex;align-items:center;gap:16px;flex-wrap:wrap}
/* --- V214: pagamento fornitore con la stessa disposizione della consegna lavori --- */
.sp-box{gap:12px}
.sp-head{display:flex;align-items:flex-start;gap:14px;flex-wrap:wrap}
.sp-head-f{display:grid;grid-template-columns:150px minmax(180px,240px);gap:10px}
.sp-head-f .field{margin:0}
.sp-who{display:flex;align-items:center;gap:10px}.sp-who strong{display:block;font-size:15px}.sp-who small{color:var(--muted)}
.sp-q{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.sp-q .deliver-q{margin:0}
.sp-docs{max-height:260px;overflow:auto}
.sp-result{grid-template-columns:repeat(3,minmax(0,1fr))}
@media (max-width:699px){.sp-head-f{grid-template-columns:1fr}}
.deliver-head.sp-head .sp-head-f{display:grid}.deliver-head.sp-head .sp-who{flex-direction:row}
/* V214 · operatori e permessi spiegati */
.role-help{padding:8px 10px;border-radius:8px;background:var(--bg-soft,var(--n-100));font-size:12px;line-height:1.4;color:var(--text-2,var(--n-600))}
.perm-table td .cell-2 small{white-space:normal;font-size:11px}
.perm-table th small.perm-th-help{display:block;font-weight:400;font-size:11px;color:var(--muted,var(--n-400));text-transform:none;letter-spacing:0;max-width:130px;margin:2px auto 0;white-space:normal;line-height:1.25}
.fn-item .fn-txt{display:flex;flex-direction:column;gap:1px;min-width:0}
.fn-item .fn-txt b{font-weight:600}
.fn-item .fn-help{font-size:11px;color:var(--muted,var(--n-400));line-height:1.35;white-space:normal}
.fn-item .fn-block{font-size:11px;color:var(--orange)}
.fn-item{align-items:flex-start}
.fn-item input{margin-top:3px}
.fn-list{gap:8px 18px}


/* ############################################################
   2 · AGENDA  (era css/agenda.css)
   ############################################################ */
/* Officina Rossi · stile della pagina Agenda (orizzontale e verticale) */
/* ============================================================
   AGENDA
   ============================================================ */
.agenda{display:grid;grid-template-columns:minmax(0,1fr);grid-template-rows:minmax(0,1fr);gap:12px;padding:12px}
.agenda.with-dock{grid-template-columns:250px minmax(0,1fr)}
.agenda:not(.with-dock) .dock{display:none}
.cal-card{display:flex;flex-direction:column;min-height:0;overflow:hidden}
.ag-tools{display:flex;align-items:center;gap:8px;padding:9px 10px;border-bottom:1px solid var(--line);flex-wrap:wrap}
.ag-op,.ag-nav,.ag-team{display:flex;align-items:center;gap:5px}
.ag-op .select{width:auto;max-width:200px;height:34px;font-weight:700}
.ag-op small{color:var(--muted)}
.ag-range{font-weight:800;font-size:13px;margin-left:4px;white-space:nowrap}
.ag-team span{font-weight:700;font-size:13px;white-space:nowrap}
.ag-field{display:flex;align-items:center;gap:6px;font-size:11px;font-weight:800;color:var(--muted);text-transform:uppercase;letter-spacing:.3px}
.ag-field .select,.ag-field .input{width:auto;height:34px;text-transform:none;letter-spacing:0;font-weight:600;color:var(--ink)}
.ag-tools .action-btn{border:1px solid var(--line)}
.move-banner{display:flex;align-items:center;gap:10px;padding:8px 12px;background:var(--violet-bg);color:var(--violet);font-weight:700;font-size:13px}
.move-banner span{flex:1}
.cal-scroll{flex:1;min-height:0;overflow:auto;position:relative;overscroll-behavior:contain}
.cal-grid{display:grid;grid-template-rows:auto auto;min-width:min-content;position:relative}
.cal-corner{position:sticky;top:0;left:0;z-index:6;background:var(--navy);color:var(--n-300);font-size:11px;font-weight:800;text-transform:uppercase;display:flex;align-items:center;justify-content:center;border-right:1px solid var(--blue-700)}
.ch{position:sticky;top:0;z-index:5;background:var(--navy);color:#fff;padding:7px 8px 6px;border-left:1px solid var(--blue-700);display:flex;flex-direction:column;gap:5px;min-width:0}
.ch.is-today{box-shadow:inset 0 -3px 0 var(--blue-400)}
.ch.is-today .ch-num{background:#fff;color:var(--navy);border-radius:50%;width:22px;height:22px;display:inline-grid;place-items:center;font-size:12px}
.cal-col.is-today{background-color:var(--blue-bg)}
.ch.is-closed{background:var(--blue-700)}
.ch-title{display:flex;align-items:center;gap:6px;min-width:0;font-size:13px}
.ch-day{font-size:11px;font-weight:800;text-transform:uppercase;color:var(--blue-400)}
.today-pill{font-size:10px;font-weight:800;background:var(--primary);color:#fff;border-radius:6px;padding:1px 5px;text-transform:uppercase}
.ch-closed{font-size:11px;color:var(--blue-line)}
.ch-load{display:flex;align-items:center;gap:6px}
.ch-load .load{background:rgba(255,255,255,.18);height:4px}
.ch-load .load>span{background:var(--blue-400)}
.ch-load small{font-size:11px;color:var(--blue-line);white-space:nowrap}
.ch-ot{display:flex;gap:4px;flex-wrap:wrap}
.ot{display:inline-flex;align-items:center;gap:2px;background:rgba(255,255,255,.08);border-radius:7px;padding:1px 2px 1px 5px;font-size:11px}
.ot-l{color:var(--blue-400);font-weight:700;margin-right:1px}
.ot-v{min-width:24px;text-align:center;font-weight:800;color:var(--blue-line)}
.ot.plus{background:rgba(240,140,26,.28)}.ot.plus .ot-v{color:var(--orange-400)}
.ot.minus{background:rgba(229,72,77,.28)}.ot.minus .ot-v{color:var(--red-line)}
.ot-b{width:22px;height:22px;border-radius:5px;color:#fff;font-weight:800;font-size:13px;line-height:1;display:grid;place-items:center}
.ot-b:hover{background:rgba(255,255,255,.2)}
.cal-times{position:sticky;left:0;z-index:4;background:#fff;border-right:1px solid var(--line)}
.tmark{position:absolute;right:6px;transform:translateY(-50%);font-size:11px;font-weight:700;color:var(--muted);background:#fff;padding:0 2px}
.tmark.minor{transform:none;top:2px!important;font-size:11px;color:var(--muted-2)}
.cal-col{position:relative;border-left:1px solid var(--line);background-color:#fff;background-image:linear-gradient(to bottom,var(--n-100) 1px,transparent 1px);background-size:100% var(--hour,72px);background-position-y:var(--off,0)}
.cal-col.drop-target{background-color:var(--blue-bg);box-shadow:inset 0 0 0 2px var(--primary)}
.band{position:absolute;left:0;right:0;pointer-events:none;display:flex;align-items:center;justify-content:center;overflow:hidden}
.band span{font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.4px;text-align:center;padding:0 4px;line-height:1.2}
.band.off{background:repeating-linear-gradient(135deg,var(--n-100) 0 6px,var(--n-200) 6px 12px);color:var(--n-400)}
.band.pause{background:repeating-linear-gradient(135deg,var(--orange-bg) 0 7px,var(--orange-line) 7px 14px);color:var(--orange);border-top:1px dashed var(--orange-400);border-bottom:1px dashed var(--orange-400)}
.band.closed{background:repeating-linear-gradient(135deg,var(--n-100) 0 8px,var(--n-200) 8px 16px);color:var(--n-500);align-items:flex-start;padding-top:40px}
.band.closed span{writing-mode:vertical-rl;transform:rotate(180deg)}
.band.ot-on{background:rgba(240,140,26,.08);border-top:1px dashed var(--orange-400);border-bottom:1px dashed var(--orange-400);color:var(--orange);align-items:flex-start;justify-content:flex-end;padding:2px 5px}
.band.ot-on span{font-size:10px}
.now-line{position:absolute;left:0;right:0;height:2px;background:var(--red);z-index:1;pointer-events:none;opacity:.85}
.now-tag{position:absolute;right:2px;transform:translateY(-50%);background:var(--red);color:#fff;font-size:11px;font-weight:800;border-radius:5px;padding:1px 4px;z-index:2}
.ev{container-type:inline-size;position:absolute;z-index:2;border-radius:7px;padding:4px 7px;font-size:11px;line-height:1.25;overflow:hidden;cursor:grab;user-select:none;-webkit-user-select:none;border:1px solid;border-left-width:4px;box-shadow:0 1px 2px rgba(16,24,40,.08);touch-action:pan-x pan-y;transition:box-shadow .12s}
.ev:hover{box-shadow:0 4px 14px rgba(16,24,40,.18);z-index:3}
.ev-l1{display:flex;align-items:center;gap:5px;min-width:0}
.ev-plate{font-weight:800;font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;letter-spacing:.2px}
.ev-t{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;opacity:.85}
.ev-time{margin-left:auto;font-size:11px;font-weight:700;opacity:.7;flex:0 0 auto}
.ev-l2,.ev-l3{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ev-l2{font-weight:700;opacity:.85}
.ev-l3{opacity:.9}
.ev-l4{display:flex;gap:6px;flex-wrap:wrap;margin-top:3px;font-size:11px;font-weight:700;opacity:.75}
.ev-cont{font-size:11px;font-weight:800;text-transform:uppercase;opacity:.75;white-space:nowrap}
@container (max-width:150px){.ev-time{display:none}.ev-l4{display:none}}
@container (max-width:95px){.ev-t,.ev-cont{display:none}}
.ev-xs{padding:1px 6px;border-left-width:3px;display:flex;align-items:center}
.ev-xs .ev-l1{width:100%}.ev-xs .ev-plate{font-size:11px}.ev-xs .ev-t,.ev-xs .ev-time{font-size:11px}
.ev-sm{padding:3px 6px}
.ev.is-cont{border-style:dashed;border-left-style:solid;opacity:.92}
.ev.has-next{border-bottom-left-radius:2px;border-bottom-right-radius:2px}
.ev-lock{position:absolute;right:3px;bottom:1px;font-size:11px;opacity:.75}
.ev.is-locked{cursor:default;background-image:repeating-linear-gradient(135deg,transparent 0 8px,rgba(16,24,40,.04) 8px 10px)}
.ev-resize{position:absolute;left:0;right:0;bottom:0;height:8px;cursor:ns-resize}
.ev-resize::after{content:"";position:absolute;left:50%;bottom:2px;width:22px;height:3px;margin-left:-11px;border-radius:2px;background:currentColor;opacity:0;transition:opacity .12s}
.ev:hover .ev-resize::after{opacity:.45}
.ev.is-late{box-shadow:0 0 0 2px var(--red)}
.ev.is-focus{animation:pulse 1.2s ease-in-out 2;z-index:4}
.ev.is-dragging{opacity:.3}
@keyframes pulse{0%,100%{box-shadow:0 0 0 0 rgba(8,101,242,.0)}50%{box-shadow:0 0 0 5px rgba(8,101,242,.45)}}
.st-wait{background:var(--blue-bg);border-color:var(--blue-line);color:var(--blue-700)}
.st-work{background:var(--blue-bg);border-color:var(--blue-400);color:var(--blue-700)}
.st-check{background:var(--violet-bg);border-color:var(--violet-line);color:var(--violet-500)}
.st-ready{background:var(--green-bg);border-color:var(--green-400);color:var(--green-700)}
.st-done{background:var(--n-100);border-color:var(--n-300);color:var(--n-600)}
.st-free{background:var(--blue-line);border-color:var(--blue-400);color:var(--blue-700)}
.st-wait{border-left-color:var(--n-500)}.st-work{border-left-color:var(--blue)}.st-check{border-left-color:var(--violet)}.st-ready{border-left-color:var(--green)}.st-done{border-left-color:var(--gray)}.st-free{border-left-color:var(--teal)}
body.ag-dragging,body.ag-dragging *{cursor:grabbing!important;user-select:none!important}
.drag-ghost{position:fixed;z-index:250;pointer-events:none;border-radius:8px;border:2px solid;border-left-width:5px;padding:5px 8px;font-size:12px;box-shadow:var(--shadow-lg);opacity:.95;display:flex;flex-direction:column;gap:2px;overflow:hidden}
.drag-where{font-size:11px;font-weight:700;white-space:nowrap}
.drag-tip{position:fixed;z-index:250;pointer-events:none;background:#101828;color:#fff;font-size:12px;font-weight:700;border-radius:7px;padding:5px 8px}
/* barra comandi del blocco */
.pop-evbar{width:min(340px,calc(100vw - 16px))}
.evbar{padding:10px}
.evbar-head{display:flex;align-items:center;gap:9px;padding:2px 2px 10px;border-bottom:1px solid var(--line);margin-bottom:8px}
.evbar-head>div{flex:1;min-width:0;display:flex;flex-direction:column}
.evbar-head strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.evbar-head small{color:var(--muted)}
.evbar-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}
.bar-btn{display:flex;align-items:center;gap:8px;height:42px;padding:0 10px;border:1px solid var(--line);border-radius:9px;font-weight:700;font-size:13px;text-align:left;background:#fff}
.bar-btn:hover:not(:disabled){background:var(--primary-50);border-color:var(--blue-line);color:var(--primary)}
.bar-btn.wide{grid-column:1/-1}
.bar-btn.danger{color:var(--red)}
.bar-btn svg{width:18px;height:18px;flex:0 0 auto}
/* pannello Lavori fissi */
.dock{display:flex;flex-direction:column;min-height:0;overflow:hidden}
.dock-head{display:flex;align-items:flex-start;gap:8px;padding:12px;background:var(--navy);color:#fff}
.dock-head>div{flex:1;display:flex;flex-direction:column}
.dock-head small{color:var(--blue-400)}
.dock-close{color:#fff}.dock-close:hover{background:rgba(255,255,255,.12);color:#fff}
.dock .search-box{margin:10px 10px 0;flex:0 0 auto}
.dock-drop{margin:10px;border:2px dashed var(--blue-line);border-radius:10px;padding:9px;display:flex;gap:8px;align-items:center;font-size:12px;color:var(--primary);background:var(--primary-50)}
.dock-drop svg{width:18px;height:18px;flex:0 0 auto}
body.dock-hover .dock-drop{background:var(--primary-100);border-color:var(--primary)}
.dock-list{flex:1;overflow:auto;padding:0 10px 10px;display:flex;flex-direction:column;gap:7px}
.dock-item{border:1px solid var(--line);border-left:4px solid var(--orange);border-radius:9px;padding:8px 9px;cursor:grab;display:flex;flex-direction:column;gap:2px;background:#fff;user-select:none;touch-action:pan-y}
.dock-item:hover{border-color:var(--blue-line);box-shadow:var(--shadow)}
.dock-item strong{font-size:13px}.dock-item small{color:var(--muted);font-size:11px}
.dock-l1{display:flex;align-items:center;justify-content:space-between;gap:6px}
.dock-dur{display:inline-flex;align-items:center;gap:3px;font-size:11px;font-weight:800;color:var(--ink-2)}.dock-dur svg{width:13px;height:13px}
.dock-tag{font-size:11px;font-weight:800;color:var(--violet)}
.dock-empty{text-align:center;color:var(--muted);padding:18px 6px;font-size:13px}

@media (max-width:1299px){
  .agenda,.agenda.with-dock{grid-template-columns:minmax(0,1fr)}
  .agenda .dock,.agenda:not(.with-dock) .dock{position:fixed;left:8px;top:calc(var(--topbar-h) + 8px);bottom:8px;width:min(320px,calc(100vw - 16px));z-index:40;box-shadow:var(--shadow-lg);display:none}
  body.dock-open .agenda .dock{display:flex}
}
@media (max-width:899px){
  .agenda,.agenda.with-dock{padding:8px}
}
@media (max-width:699px){
  .ag-range{font-size:12px}
  .ag-op .select{max-width:140px}
}

/* ===== V168 ===== */
.ch-title .ch-abs{margin-left:auto}
.ch-abs{display:inline-flex;align-items:center;gap:3px;height:20px;padding:0 6px;border-radius:6px;font-size:11px;font-weight:800;color:var(--blue-line);background:rgba(255,255,255,.08);white-space:nowrap;flex:0 0 auto}
.ch-abs svg{width:11px;height:11px}
.ch-abs:hover{background:rgba(255,255,255,.2);color:#fff}
.ch-abs.on{background:var(--orange-500);color:#3b2300}
.ch.is-absent{background:var(--orange-700)}
.band.absent{background:repeating-linear-gradient(135deg,var(--orange-bg) 0 8px,var(--orange-line) 8px 16px);color:var(--orange-700);align-items:flex-start;padding-top:30px}
.band.absent span{writing-mode:vertical-rl;transform:rotate(180deg);font-size:11px}
.ev.is-nominal{border-style:dashed}
.ag-undo{display:flex;gap:2px;padding-right:6px;margin-right:2px;border-right:1px solid var(--line)}
.ag-undo .action-btn:disabled{opacity:.35;cursor:default}
.cal-scroll.vdays{display:flex;flex-direction:column;gap:10px;padding:8px;background:var(--gray-bg)}
.vday{background:#fff;border:1px solid var(--line);border-radius:10px;overflow:hidden;flex:0 0 auto}
.vday .cal-grid{min-width:min-content}
.vday .ch,.vday .cal-corner{position:static}
.vday-title{display:flex;align-items:center;gap:10px;padding:7px 12px;font-size:13px;border-bottom:1px solid var(--line);background:var(--blue-bg)}
.vday.is-today{border-color:var(--blue-400);box-shadow:0 0 0 2px rgba(90,162,255,.25)}
.vday.is-today .vday-title{background:var(--blue-bg)}
.vday.is-closed .vday-title{background:repeating-linear-gradient(135deg,var(--n-100) 0 8px,var(--n-100) 8px 16px);border-bottom:0}
.vday-title .muted{margin-left:auto}
.vday-more{display:flex;align-items:center;justify-content:center;gap:8px;flex:0 0 auto;height:40px;border:2px dashed var(--blue-line);border-radius:10px;background:var(--primary-50);color:var(--primary);font-weight:800;font-size:13px}
.vday-more svg{width:16px;height:16px}
.vday-more:hover{background:var(--primary-100,var(--blue-line))}
.team-row{border:1px solid var(--line);border-radius:10px;padding:10px;margin-bottom:10px}
.team-head{display:flex;gap:8px;align-items:center;margin-bottom:8px}
.team-ops{display:flex;flex-wrap:wrap;gap:6px}
.chip-check{display:inline-flex;align-items:center;gap:6px;padding:5px 10px;border:1px solid var(--line);border-radius:999px;font-size:12px;font-weight:600;cursor:pointer}
.chip-check:has(input:checked){background:var(--primary-50);border-color:var(--blue-line);color:var(--primary)}
.abs-list{margin-top:12px}
.abs-row{display:grid;grid-template-columns:100px 1fr auto 34px;gap:8px;align-items:center;padding:6px 0;border-bottom:1px solid var(--line);font-size:13px}
/* ===== V169 ===== */
.st-abs{background:repeating-linear-gradient(135deg,var(--orange-bg) 0 8px,var(--orange-line) 8px 16px);border-color:var(--orange-400);color:var(--orange-700);border-left-color:var(--orange-500)}
.st-abs .ev-plate svg{width:12px;height:12px;vertical-align:-2px}
.evbar-head small{display:block;line-height:1.35}
.abs-ic{width:34px;height:34px;border-radius:9px;background:var(--orange-line);color:var(--orange);display:grid;place-items:center;flex:0 0 auto}.abs-ic svg{width:18px;height:18px}
.team-n{width:24px;height:24px;border-radius:50%;background:var(--primary-50);color:var(--primary);display:grid;place-items:center;font-weight:800;font-size:12px;flex:0 0 auto}
.team-head .input{flex:1}
.team-order{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin-top:8px;padding-top:8px;border-top:1px dashed var(--line)}
.team-order small{color:var(--muted);font-weight:700;margin-right:2px}
.ord-chip{display:inline-flex;align-items:center;gap:4px;padding:3px 4px 3px 8px;border-radius:8px;background:var(--gray-bg);font-size:12px;font-weight:700}
.ord-chip b{color:var(--primary)}
.ord-chip button{width:20px;height:20px;border-radius:5px;font-weight:800}.ord-chip button:hover:not(:disabled){background:var(--blue-line)}.ord-chip button:disabled{opacity:.3}
/* divisioni */
.dv-head{display:flex;align-items:center;gap:12px;padding:14px;border:1px solid var(--violet-line);background:var(--violet-bg);border-radius:12px;margin-bottom:12px}
.dv-head strong{display:block;font-size:15px}.dv-head small{color:var(--muted)}
.dv-ic{width:42px;height:42px;border-radius:10px;background:var(--violet-500);color:#fff;display:grid;place-items:center;flex:0 0 auto}.dv-ic svg{width:20px;height:20px}
.dv-box{border:1px solid var(--line);border-radius:12px;padding:14px;margin-bottom:12px;background:var(--blue-bg)}
.dv-box-head{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:12px}
.dv-bar{display:flex;align-items:stretch;gap:0;padding:6px;border:1px solid var(--blue-line);border-radius:10px;background:#fff;min-height:70px}
.dv-part{min-width:70px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;border:1px solid var(--blue-line);border-radius:8px;background:var(--blue-bg);color:var(--blue-700);padding:6px;transition:flex .1s}
.dv-part.alt{background:var(--blue-bg)}
.dv-part b{font-size:13px}.dv-part span{font-size:12px;font-weight:800}.dv-part small{font-size:10px;font-weight:700;text-transform:uppercase;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}
.dv-part.sel{background:var(--violet-bg);border:2px solid var(--violet-500);color:var(--violet)}
.dv-join{position:relative;width:22px;flex:0 0 22px;display:flex;flex-direction:column;align-items:center;justify-content:space-between}
.dv-join::before{content:"";position:absolute;top:0;bottom:0;left:50%;width:2px;margin-left:-1px;background:var(--orange-500)}
.dv-x,.dv-h{position:relative;z-index:1;width:20px;height:20px;border-radius:50%;display:grid;place-items:center;color:#fff;font-size:12px;font-weight:800}
.dv-x{background:var(--red-500);margin-top:-12px}.dv-x svg{width:11px;height:11px}
.dv-h{background:var(--orange-500);border-radius:6px;cursor:ew-resize;margin-bottom:-10px;touch-action:none}
.dv-legend{display:flex;gap:16px;flex-wrap:wrap;margin-top:10px;font-size:11px;font-weight:700;color:var(--muted)}
.dv-legend span{display:inline-flex;align-items:center;gap:4px}.dv-legend svg{width:12px;height:12px}
.dv-secs{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:14px}
.dv-sec{border-radius:10px;padding:12px 14px;border:1px solid}
.dv-sec small{display:block;font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.5px;color:var(--muted)}
.dv-sec b{display:block;font-size:20px;margin:2px 0}.dv-sec i{font-style:normal;font-size:12px;font-weight:700;color:var(--ink-2)}
.dv-sec.a{background:var(--blue-bg);border-color:var(--blue-line)}.dv-sec.a b{color:var(--blue)}
.dv-sec.b{background:var(--violet-bg);border-color:var(--violet-line);text-align:right}.dv-sec.b b{color:var(--violet-500)}
.dv-slider{position:relative;height:50px;border-radius:12px;background:linear-gradient(90deg,var(--blue-line) 0,var(--blue-line) var(--p),var(--violet-line) var(--p),var(--violet-line) 100%);border:1px solid var(--blue-line)}
.dv-slider input{position:absolute;inset:0;width:100%;height:100%;margin:0;opacity:0;cursor:ew-resize}
.dv-slider::after{content:"↔";position:absolute;top:50%;left:var(--p);transform:translate(-50%,-50%);width:32px;height:32px;border-radius:50%;background:var(--blue-700);color:#fff;display:grid;place-items:center;font-weight:800;box-shadow:0 0 0 3px #fff;pointer-events:none}
.dv-scale{display:flex;justify-content:space-between;align-items:center;margin-top:8px;font-size:11px;font-weight:800;text-transform:uppercase;color:var(--muted)}
.dv-scale b{background:var(--primary-50);color:var(--primary);padding:3px 10px;border-radius:999px;font-size:11px}
.div-foot{display:flex;gap:8px;align-items:center;width:100%}
.btn-danger-soft{background:var(--red-bg);border-color:var(--red-line);color:var(--red)}
/* ===== V171 ===== */
.dv-bar{overflow-x:auto}
.dv-part{flex-basis:0;min-width:96px;flex-shrink:0}
.dv-join{flex-shrink:0}
.dv-list{display:grid;gap:4px;margin-top:10px;max-height:190px;overflow:auto}
.dv-li{display:grid;grid-template-columns:40px minmax(0,1fr) minmax(0,1.4fr) 80px 18px 30px;cursor:pointer;gap:8px;align-items:center;padding:6px 10px;border:1px solid var(--line);border-radius:8px;background:#fff;font-size:12px;text-align:left}
.dv-li b{color:var(--violet-500)}.dv-li .r{text-align:right;font-weight:800}
.dv-li.sel{border-color:var(--violet-500);background:var(--violet-bg)}
.abs-presets{display:flex;gap:6px;flex-wrap:wrap}
.chip-btn{height:30px;padding:0 12px;border:1px solid var(--line);border-radius:999px;background:#fff;font-size:12px;font-weight:700}
.chip-btn:hover,.chip-btn.active{border-color:var(--primary);background:var(--primary-50);color:var(--primary)}
.tb{display:flex;gap:12px;align-items:flex-start;overflow-x:auto;padding-bottom:6px}
.tb-col{flex:0 0 220px;border:1px solid var(--line);border-radius:12px;background:var(--blue-bg);display:flex;flex-direction:column}
.tb-col.free{background:var(--n-100)}
.tb-col.all{background:var(--blue-bg);border-color:var(--blue-line)}
.tb-col.is-def{box-shadow:0 0 0 2px var(--primary)}
.tb-sub{display:flex;align-items:center;gap:6px;flex-wrap:wrap;padding:6px 8px 0}.tb-sub small{font-size:11px}
.tb-def{border:1px solid var(--line);background:#fff;border-radius:999px;padding:3px 9px;font-size:11px;font-weight:700;color:var(--muted);cursor:pointer}
.tb-def.on{background:var(--orange-line);border-color:var(--orange-400);color:var(--orange-700)}
.tb-head{display:flex;align-items:center;gap:4px;padding:8px;border-bottom:1px solid var(--line)}
.tb-head strong{flex:1;font-size:13px}.tb-head .input{height:32px;font-weight:700}
.tb-head .action-btn{width:28px;height:28px;font-weight:800}
.tb-drop{min-height:140px;padding:8px;display:flex;flex-direction:column;gap:6px;border-radius:0 0 12px 12px;transition:background .1s}
.tb-drop.over{background:var(--primary-50);box-shadow:inset 0 0 0 2px var(--primary)}
.tb-chip{display:flex;align-items:center;gap:8px;padding:7px 9px;border:1px solid var(--line);border-radius:9px;background:#fff;cursor:grab;font-size:13px;font-weight:700;user-select:none}
.tb-chip:hover{border-color:var(--blue-line)}.tb-chip.dragging{opacity:.4}
.tb-grip{margin-left:auto;color:var(--muted-2);letter-spacing:-2px}
.tb-empty{color:var(--muted);font-size:12px;text-align:center;padding:20px 6px;border:2px dashed var(--line);border-radius:9px}
.tb-count{padding:0 10px 8px;color:var(--muted);font-size:11px}
.tb-add{flex:0 0 160px;height:120px;border:2px dashed var(--blue-line);border-radius:12px;background:var(--primary-50);color:var(--primary);font-weight:800;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px}
.dv-join.other::before{background:var(--line-strong);width:1px}
.dv-op{display:flex;align-items:center;gap:10px;margin-bottom:12px;flex-wrap:wrap;font-weight:700;font-size:13px}
.dv-op .select{width:auto;min-width:180px}
.add-kinds{grid-template-columns:repeat(4,minmax(0,1fr))!important}
.add-kinds .sp-type{padding:10px}

/* V174: indicatore lavoro diviso */
.ev-div{display:inline-flex;align-items:center;gap:2px;flex:0 0 auto;padding:0 4px;border-radius:5px;background:var(--violet-500);color:#fff;font-size:10px;font-weight:800;line-height:15px}
.ev-div svg{width:10px;height:10px}
.ev.is-div{box-shadow:inset 3px 0 0 var(--violet-500)}
.dv-li .action-btn{width:28px;height:28px}

.ag-team{display:flex;align-items:center;gap:4px}.ag-team .icon-btn,.ag-team .action-btn{flex:0 0 auto}

/* V177: data unica in Agenda (giorno + data numerica = Vai al) */
.ag-daypick{display:flex;align-items:center;gap:6px;padding:2px 2px 2px 10px;border:1px solid var(--line-strong);border-radius:10px;background:#fff}
.ag-dname{font-weight:800;font-size:13px;min-width:74px;color:var(--ink)}
.ag-daypick .input{height:32px;border:0;background:var(--primary-50);font-weight:700;width:148px;padding:0 8px}

/* V178: parti in Lavori fissi nella gestione divisioni */
.dv-fixed{margin-top:10px;padding:8px;border:1px dashed var(--orange-400);border-radius:10px;background:var(--orange-bg);display:flex;flex-direction:column;gap:6px}
.dv-fixed-head{display:flex;align-items:center;gap:8px;flex-wrap:wrap;color:var(--orange-700)}.dv-fixed-head svg{width:16px;height:16px}.dv-fixed-head small{color:var(--muted)}
.dv-li.fixed{background:#fff;cursor:default}.dv-li.fixed b{color:var(--orange)}


/* V179: linea di inizio durante il trascinamento */
.drop-guide{position:absolute;left:0;right:0;height:0;border-top:1px dashed rgba(220,38,38,.55);z-index:6;pointer-events:none}
.drop-line{position:absolute;left:-2px;right:-2px;height:0;border-top:3px solid var(--red-500);z-index:30;pointer-events:none;box-shadow:0 0 0 1px rgba(255,255,255,.7)}
.drop-line::before{content:"";position:absolute;left:-1px;top:-7px;width:11px;height:11px;border-radius:50%;background:var(--red-500);box-shadow:0 0 0 2px #fff}
.drop-line span{position:absolute;right:4px;top:-22px;background:var(--red-500);color:#fff;font-size:11px;font-weight:800;padding:2px 7px;border-radius:6px;white-space:nowrap;box-shadow:0 2px 6px rgba(0,0,0,.2)}

.st-parts{background:var(--blue-line);border-color:var(--blue-400);color:var(--blue-700);border-left-color:var(--blue-700)}
.st-susp{background:repeating-linear-gradient(135deg,var(--n-100) 0 8px,var(--n-200) 8px 16px);border-color:var(--n-300);color:var(--n-700);border-left-color:var(--n-600)}
/* V198: intestazione colonna compatta (carico + straordinari in una riga) */
.ch-meta{display:flex;align-items:center;gap:5px;min-width:0}
.ch-meta .ch-load{flex:1;min-width:0}
.ch-meta .ch-load .load{flex:1;min-width:18px}
.ch-load small b{color:#fff}
.ch-load .ch-free{color:var(--green-400)}.ch-load .ch-over{color:var(--red-line);font-weight:800}
.ch-otb{flex:0 0 auto;display:inline-flex;align-items:center;gap:3px;height:20px;padding:0 5px;border-radius:6px;background:rgba(255,255,255,.08);color:var(--blue-400);font-size:11px;font-weight:800;white-space:nowrap}
.ch-otb svg{width:12px;height:12px}
.ch-otb:hover{background:rgba(255,255,255,.22);color:#fff}
.ch-otb.plus{background:rgba(240,140,26,.35);color:var(--orange-400)}.ch-otb.minus{background:rgba(229,72,77,.35);color:var(--red-line)}
.otm{min-width:250px}
.otm-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:6px 8px}
.otm-row>span{display:flex;flex-direction:column;font-weight:700;font-size:13px}.otm-row small{font-weight:500;color:var(--muted);font-size:11px}
.otm .ot{background:var(--gray-bg);padding:2px;gap:4px;border-radius:9px}
.otm .ot-b{width:30px;height:30px;color:var(--ink);font-size:17px;border-radius:7px;background:#fff;border:1px solid var(--line)}
.otm .ot-b:hover{background:var(--primary-50);color:var(--primary)}
.otm .ot-v{min-width:44px;color:var(--ink);font-size:13px}
.otm .ot.plus{background:var(--orange-line)}.otm .ot.plus .ot-v{color:var(--orange)}.otm .ot.minus{background:var(--red-bg)}.otm .ot.minus .ot-v{color:var(--red)}
.otm-h{margin:2px 8px 4px}
/* V198: intestazione colonne compatta (ore e straordinari) */
.ch{gap:3px;padding:6px 7px 0}
.ch-title{min-height:22px}
.ch-title .ch-otb.sm{margin-left:auto;height:20px;padding:0 4px}
.ch-title .ch-abs+.ch-otb.sm{margin-left:4px}
.ch-otb.sm span{font-size:11px}
.ch-meta2{display:flex;align-items:baseline;gap:6px;min-width:0;white-space:nowrap;overflow:hidden}
.ch-meta2 small{font-size:11px;color:var(--blue-line)}.ch-meta2 small b{color:#fff;font-size:11px}
.ch-meta2 .ch-free{color:var(--green-400)}.ch-meta2 .ch-over{color:var(--red-line);font-weight:800}.ch-meta2 .ch-full{color:var(--orange-400)}
.ch-bar{display:block;height:3px;margin:3px -7px 0;background:rgba(255,255,255,.14)}.ch-bar>span{display:block;height:100%;background:var(--blue-400)}.ch-bar.over>span{background:var(--red-400)}
/* V198: barra dell'agenda adattiva: i gruppi restano vicini e vanno a capo solo quando manca spazio */
.ag-tools{gap:6px 10px;justify-content:flex-start}
.ag-tools>*{flex:0 0 auto}
.ag-right{display:flex;align-items:center;gap:6px;flex-wrap:nowrap}
.ag-tools .ag-field{display:flex;align-items:center;gap:5px}
/* V201: allungamento con anteprima animata del blocco */
.ev{transition:height .12s ease-out,box-shadow .15s}
.ev.is-resizing{z-index:6;box-shadow:0 0 0 2px var(--primary),0 10px 24px rgba(8,101,242,.25)}
.ev.is-resizing .ev-resize::after{opacity:.85}
/* V202: intestazione con ore "7,5/9" accanto al nome, lavori affiancati */
.ch{gap:2px;padding-bottom:0}
.ch-title{gap:5px}
.ch-hrs{margin-left:auto;font-size:11px;color:var(--blue-line);white-space:nowrap;font-variant-numeric:tabular-nums}.ch-hrs b{color:#fff;font-size:12px}.ch-hrs.over b{color:var(--red-line)}
.ch-title .ch-hrs+.ch-otb.sm{margin-left:2px}
.ch-title .ch-closed{margin-left:auto;font-size:11px}
.ch-title strong.ellipsis{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ch-title>*{flex:0 0 auto}.ch-title strong.ellipsis{flex:0 1 auto}
.ch{min-width:0;overflow:hidden}
.ev.is-parallel{border-style:dashed}
.ev.is-parallel::after{content:"⇆";position:absolute;right:4px;bottom:2px;font-size:11px;opacity:.7}
.bar-btn.is-on{background:var(--primary-50);color:var(--primary);border-color:var(--blue-line)}
/* V204: domenica / giorno chiuso più evidente */
.ch.is-closed{background:var(--red-700);color:var(--red-line)}.ch.is-closed .ch-day,.ch.is-closed .ch-closed{color:var(--red-line);font-weight:800}
.band.closed{background:repeating-linear-gradient(135deg,var(--red-bg) 0 8px,var(--red-line) 8px 16px);color:var(--red);border-left:2px solid var(--red-400);border-right:2px solid var(--red-400)}
.band.closed span{font-weight:800;letter-spacing:.08em}
.vday.is-closed .vday-title{background:repeating-linear-gradient(135deg,var(--red-bg) 0 8px,var(--red-line) 8px 16px);color:var(--red)}
.cal-grid .ch .today-pill{display:none}
/* V206: anteprima lavoro in Agenda: targa, veicolo, intervento, diagnosi / lavori / note, poi comandi a icona */
.pop-evp{width:min(380px,calc(100vw - 16px))}
.evp{padding:12px}
.evp-top{display:flex;align-items:center;gap:8px;margin-bottom:6px}
.evp-top .plate{font-size:15px}
.evp-veh{display:flex;flex-direction:column;min-width:0}
.evp-veh strong{font-size:15px;line-height:1.25}
.evp-veh small{color:var(--muted);font-size:12px;line-height:1.35}
.evp-title,.evp-when{display:flex;align-items:flex-start;gap:6px;font-size:12px;margin-top:6px;color:var(--ink-2,var(--n-700))}
.evp-title{font-weight:700;color:var(--ink,#101828)}
.evp-title svg,.evp-when svg{width:14px;height:14px;flex:none;margin-top:1px;color:var(--muted)}
.evp-notes{display:flex;flex-direction:column;gap:6px;margin-top:10px;max-height:220px;overflow:auto}
.evp-sec{background:var(--gray-bg,var(--n-100));border-radius:9px;padding:7px 10px}
.evp-sec small{display:block;font-size:11px;font-weight:800;letter-spacing:.5px;text-transform:uppercase;color:var(--muted);margin-bottom:2px}
.evp-sec p{margin:0;font-size:12px;line-height:1.4;white-space:pre-line;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:4;overflow:hidden}
.evp-sec.is-note{background:var(--orange-bg);border:1px solid var(--orange-line)}.evp-sec.is-note small{color:var(--orange)}
.evp-empty{margin-top:10px;font-size:12px;color:var(--muted);font-style:italic}
.evp-actions{border-top:1px solid var(--line);margin-top:10px;padding-top:10px;display:flex;flex-direction:column;gap:8px}
.evp-open{width:100%;justify-content:center}
.evp-icons{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px}
.bar-ic{display:flex;flex-direction:column;align-items:center;gap:3px;padding:7px 4px;border:1px solid var(--line);border-radius:10px;background:#fff;font-size:11px;font-weight:700;color:var(--ink-2,var(--n-700));cursor:pointer}
.bar-ic svg{width:17px;height:17px}
.bar-ic:hover{background:var(--primary-50);border-color:var(--blue-line);color:var(--primary)}
.bar-ic.is-on{background:var(--blue-bg);border-color:var(--blue-line);color:var(--violet)}
.bar-ic.danger{color:var(--red-500)}.bar-ic.danger:hover{background:var(--red-bg);border-color:var(--red-line)}
.bar-ic:disabled{opacity:.45;cursor:not-allowed}


/* ############################################################
   3 · V215  (era css/v215.css)
   ############################################################ */
/* ============================================================
   Officina Rossi — V215: stili delle novità
   ============================================================ */

/* ---------- requisiti per fatturare ---------- */
.bill-warn{display:flex;align-items:flex-start;gap:7px;width:100%;margin-top:8px;padding:8px 10px;border:1px solid var(--red-line);border-radius:9px;background:var(--red-bg);color:var(--red);font-size:12px;text-align:left;cursor:pointer;line-height:1.35}
.bill-warn svg{width:15px;height:15px;flex:0 0 auto;margin-top:1px}
.bill-warn:hover{border-color:var(--red)}
.bill-miss p{margin:0 0 10px}
.bill-miss ul,.bill-miss-list{list-style:none;margin:0 0 10px;padding:0;display:grid;gap:6px}
.bill-miss li,.bill-miss-list li{display:flex;gap:8px;align-items:center;padding:7px 10px;border-radius:8px;background:var(--red-bg);color:var(--red);font-weight:600;font-size:13px}
.bill-miss li svg,.bill-miss-list li svg{width:15px;height:15px;flex:0 0 auto}
.sdi-row{display:flex;flex-wrap:wrap;align-items:center;gap:8px 14px}
.sdi-row>.input{width:130px;flex:0 0 auto}
.sdi-row .input[readonly]{background:var(--gray-bg);color:var(--muted)}
.sdi-flag small{margin-left:3px;color:var(--muted)}
.sdi-row .country-f{display:flex;align-items:center;gap:6px;margin:0}
.sdi-row .country-f .field-label{margin:0}

/* ---------- numero documento ---------- */
.doc-num-in{display:flex;align-items:center;gap:8px}
.doc-num-in .input{max-width:120px;font-size:15px}
.doc-num-in small,.doc-num-in .link-btn{font-size:11px;white-space:nowrap}

/* ---------- scheda credito: due colonne indipendenti (niente spazi vuoti) ---------- */
.cp-col{display:flex;flex-direction:column;gap:12px;min-width:0}

/* ---------- avvisi (campanella) ---------- */
.pop-alerts{min-width:min(520px,calc(100vw - 16px));max-width:min(560px,calc(100vw - 16px));padding:0}
.al-v215{width:auto!important;padding:0}
.al-head{display:flex;align-items:center;gap:10px;padding:12px 14px 8px;border-bottom:1px solid var(--line)}
.al-head b{font-size:13px}
.al-head .link-btn{display:inline-flex;align-items:center;gap:4px;font-size:12px}
.al-head .link-btn svg{width:14px;height:14px}
.al-chips{display:flex;flex-wrap:wrap;gap:6px;padding:8px 14px;border-bottom:1px solid var(--line);background:var(--blue-bg)}
.al-chip{padding:4px 10px;border-radius:999px;border:1px solid var(--line-strong);background:#fff;font-size:12px;font-weight:600;color:var(--ink-2)}
.al-chip b{margin-left:3px;color:var(--muted)}
.al-chip.on{background:var(--primary);border-color:var(--primary);color:#fff}.al-chip.on b{color:var(--blue-line)}
.al-body{max-height:min(62vh,560px);overflow:auto;padding:6px 8px 10px}
.al-group{border-radius:10px;margin-top:4px}
.al-gh{display:flex;align-items:center;gap:4px}
.al-gt{flex:1;display:flex;align-items:center;gap:9px;padding:8px 8px;border-radius:9px;font-weight:700;text-align:left}
.al-gt:hover{background:var(--gray-bg)}
.al-gt svg{width:17px;height:17px;color:var(--primary)}
.al-gt b{margin-left:auto;min-width:24px;height:20px;padding:0 7px;border-radius:10px;background:var(--gray-bg);font-size:11px;display:grid;place-items:center}
.al-gt .al-caret{width:15px;height:15px;color:var(--muted);transition:transform .15s}
.al-group.open .al-caret{transform:rotate(180deg)}
.al-items{display:none;padding:2px 0 6px 10px}
.al-group.open .al-items{display:block}
.al-item{display:flex;align-items:center;gap:4px;border-left:3px solid var(--line-strong);margin:3px 0;border-radius:0 8px 8px 0}
.al-item.tone-red{border-left-color:var(--red)}.al-item.tone-orange{border-left-color:var(--orange)}
.al-go{flex:1;display:flex;align-items:center;gap:8px;padding:6px 8px;text-align:left;font-size:12px;border-radius:8px;min-width:0}
.al-go:hover{background:var(--primary-50)}
.al-go svg{width:15px;height:15px;flex:none;color:var(--muted)}
.al-go span{min-width:0}
.al-more{padding:4px 10px}

/* ---------- allegati ---------- */
.att-box{display:flex;flex-direction:column;gap:6px}
.att-item{display:flex;align-items:center;gap:8px;padding:6px 8px;border:1px solid var(--line);border-radius:9px;background:#fff}
.att-item .att-ic svg{width:16px;height:16px;color:var(--primary)}
.att-name{flex:1;min-width:0;text-align:left;font-weight:600;color:var(--primary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.att-name:hover{text-decoration:underline}
.att-item.legacy{background:var(--orange-bg);color:var(--orange-700);border-color:var(--orange-line);font-size:12px}
.att-item.legacy svg{width:15px;height:15px}
.att-add{position:relative;height:36px;border:1px dashed var(--line-strong);border-radius:9px;padding:0 12px;gap:7px;background:#fff;cursor:pointer;color:var(--ink-2);font-weight:600}
.att-add:hover{border-color:var(--primary);color:var(--primary)}
.att-add input{position:absolute;inset:0;opacity:0;cursor:pointer;max-width:none}
.att-add svg{width:15px;height:15px}
.att-jump{height:34px}

/* ---------- categorie spese ---------- */
.cat-pick{display:flex;gap:6px;align-items:center}.cat-pick .select{flex:1;min-width:0}
.cat-list{display:flex;flex-direction:column;gap:5px;margin-bottom:10px}
.cat-row{display:flex;align-items:center;gap:6px;padding:4px 6px;border:1px solid var(--line);border-radius:9px;background:#fff}
.cat-row .input{flex:1;height:32px}
.cat-row small{white-space:nowrap}
.cat-grip{cursor:grab;color:var(--muted-2);display:grid}.cat-grip svg{width:16px;height:16px}
.cat-row.dragging{opacity:.4}.cat-row.drop-on{border-color:var(--primary);box-shadow:0 0 0 2px var(--primary-100)}
.cat-add{display:flex;gap:8px}.cat-add .input{flex:1}

/* ---------- righe documento: nota a destra, prezzo di vendita ---------- */
.action-btn.note-add{color:var(--orange)}
.action-btn.note-add:hover{background:var(--orange-line);color:var(--orange-700)}
.doc-lines .c-act{width:86px}
.sp-table .sell-td .input{width:96px;text-align:right}
.sp-table .sell-th{min-width:96px}

/* ---------- pagamento fornitore: come assegnare ---------- */
.sp-mode{margin:12px 0 8px}
.sp-mode .deliver-q{margin:0 0 8px}
.sp-mode-opts{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.sp-mode-opt{display:flex;gap:10px;align-items:flex-start;text-align:left;padding:10px 12px;border:2px solid var(--line);border-radius:12px;background:#fff}
.sp-mode-opt svg{width:20px;height:20px;flex:none;color:var(--muted);margin-top:2px}
.sp-mode-opt b{display:block;font-size:13px}.sp-mode-opt small{color:var(--muted);line-height:1.3}
.sp-mode-opt:hover{border-color:var(--primary-100)}
.sp-mode-opt.on{border-color:var(--primary);background:var(--primary-50)}.sp-mode-opt.on svg{color:var(--primary)}
.sp-mode.flash{animation:spflash .8s 2}
.sp-pick-bar{display:flex;align-items:center;gap:8px;padding:8px 10px;margin-bottom:6px;border-radius:10px;background:var(--blue-bg);font-size:13px}
.sp-docs.is-auto tr.is-sel{background:none}
@media (max-width:700px){.sp-mode-opts{grid-template-columns:1fr}}

/* ---------- incassi: solo oggi ---------- */
.rd-today{padding:18px;max-width:760px}
.rd-today-h{display:flex;align-items:center;gap:12px;margin-bottom:14px}
.rd-today-h>svg{width:28px;height:28px;color:var(--green)}
.rd-today-v{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:10px;margin-bottom:10px}
.rd-today-v>div{padding:10px 12px;border:1px solid var(--line);border-radius:10px}
.rd-today-v small{display:block;color:var(--muted)}.rd-today-v b{font-size:17px}
.rd-today-v .tot{background:var(--green-bg);border-color:var(--green-line)}

/* ---------- operatori: lavori visibili ---------- */
.ws-pick{display:flex;flex-wrap:wrap;gap:6px 14px}

/* ---------- menu laterale ---------- */
.nav-parent-row{display:flex;align-items:center;gap:2px}
.nav-parent-row>.nav-link{flex:1;min-width:0}
.nav-caret-btn{flex:0 0 28px;height:32px;display:grid;place-items:center;color:var(--blue-400);border-radius:8px}
.nav-caret-btn:hover{background:rgba(255,255,255,.08);color:#fff}
.nav-group-link.open>.nav-parent-row .nav-caret{transform:rotate(180deg)}
.nav-group-link>.nav-children{margin-left:22px}
body.sidebar-collapsed .nav-caret-btn{display:none}
body.sidebar-collapsed .nav-group-link>.nav-children{margin-left:0}
/* solo icone: la barra di scorrimento non deve coprire le icone */
body.sidebar-collapsed .nav-scroll{scrollbar-width:none;padding-left:6px;padding-right:6px}
body.sidebar-collapsed .nav-scroll::-webkit-scrollbar{width:0;height:0}
body.sidebar-collapsed .nav-link{width:100%}
/* menu "come sui tablet": nascosto, si apre sopra la pagina con ☰ e si chiude toccando fuori */
body.nav-overlay .sidebar{position:fixed;left:0;top:0;bottom:0;transform:translateX(-100%);transition:transform .22s ease;width:min(284px,86vw)!important;box-shadow:var(--shadow-lg)}
body.nav-overlay.nav-open .sidebar{transform:none}
body.nav-overlay.nav-open .nav-backdrop{display:block;position:fixed;inset:0;background:rgba(10,20,35,.45);z-index:25}
body.nav-overlay .menu-btn{display:grid}

/* ---------- Agenda ---------- */
/* Lavori fissi a sinistra come un menu laterale, con apertura/chiusura animata */
.agenda{transition:grid-template-columns .3s ease}
.agenda:not(.with-dock){grid-template-columns:0px minmax(0,1fr)}
.agenda:not(.with-dock) .dock{display:flex!important;opacity:0;pointer-events:none;min-width:0;border-width:0}
.agenda .dock{transition:opacity .25s ease}
.agenda.with-dock .dock{opacity:1}
.agenda.dock-anim .cal-card{overflow:hidden}
.ag-dock-btn{gap:6px;border-color:var(--line-strong);font-weight:700}
.ag-dock-btn svg{width:16px;height:16px}
.ag-dock-btn.is-on{background:var(--navy);border-color:var(--navy);color:#fff}
.ag-dock-n{min-width:20px;height:18px;padding:0 6px;border-radius:9px;background:var(--orange);color:#fff;font-size:11px;display:grid;place-items:center}
.ag-dock-btn.is-on .ag-dock-n{background:var(--orange-400)}
.ag-spacer{flex:1 1 auto!important;min-width:4px}
.ag-op .action-btn[data-act=agOrder]{margin-left:2px}
@media (max-width:1299px){
  .agenda .dock{transform:translateX(-105%);transition:transform .28s ease,opacity .2s}
  body.dock-open .agenda .dock{display:flex!important;transform:none;opacity:1;pointer-events:auto;border-width:1px}
}
/* lavoro cercato da "Vedi in Agenda": molto evidente */
.cal-scroll.ag-spot .ev:not(.is-focus){opacity:.28;filter:saturate(.4);transition:opacity .4s,filter .4s}
.ev.is-focus{animation:agFocus 1.1s ease-in-out 4!important;z-index:6!important;outline:3px solid var(--red-500);outline-offset:2px;box-shadow:0 0 0 7px rgba(255,59,48,.28),0 12px 30px rgba(16,24,40,.35)!important}
@keyframes agFocus{0%,100%{transform:scale(1);box-shadow:0 0 0 4px rgba(255,59,48,.35),0 10px 26px rgba(16,24,40,.3)}50%{transform:scale(1.06);box-shadow:0 0 0 14px rgba(255,59,48,.12),0 16px 36px rgba(16,24,40,.4)}}
/* anteprima del blocco: pulsanti colorati */
.bar-ic.c-violet{color:var(--violet);background:var(--violet-bg);border-color:var(--violet-line)}.bar-ic.c-violet:hover{background:var(--violet-bg);border-color:var(--violet-line);color:var(--violet-700)}
.bar-ic.c-amber{color:var(--orange);background:var(--orange-bg);border-color:var(--orange-line)}.bar-ic.c-amber:hover{background:var(--orange-line);color:var(--orange-700)}.bar-ic.c-amber.is-on{background:var(--orange-500);border-color:var(--orange-500);color:#422006}
.bar-ic.c-teal{color:var(--blue-700);background:var(--blue-bg);border-color:var(--blue-line)}.bar-ic.c-teal:hover{background:var(--blue-line);color:var(--blue-700)}.bar-ic.c-teal.is-on{background:var(--blue);border-color:var(--blue-500);color:#fff}
.bar-ic.c-orange{color:var(--orange);background:var(--orange-bg);border-color:var(--orange-line)}.bar-ic.c-orange:hover{background:var(--orange-line);color:var(--orange-700)}
.bar-ic.c-red{background:var(--red-bg);border-color:var(--red-line)}
.evp-open{background:linear-gradient(135deg,var(--blue-500),var(--blue-500))}
/* touch attivo: i blocchi si trascinano anche con il dito */
.agenda.ag-touch .ev,.agenda.ag-touch .dock-item{touch-action:none}
/* ordine operatori */
.op-row .op-n{width:20px;text-align:center;color:var(--muted)}
.op-row.off{opacity:.6}
.agenda{column-gap:0}
.agenda.with-dock{column-gap:12px}
@media (min-width:1300px){.agenda{transition:grid-template-columns .3s ease,column-gap .3s ease}}
@media (max-width:1299px){.agenda,.agenda.with-dock,.agenda:not(.with-dock){grid-template-columns:minmax(0,1fr);column-gap:0}}

/* ---------- impostazioni ---------- */
.set-block{margin-bottom:18px}
.set-bar{display:flex;align-items:center;gap:12px;margin-bottom:10px}.set-bar p{margin:0;flex:1}
.big-check{align-items:flex-start;gap:10px;padding:10px 12px;border:1px solid var(--line);border-radius:10px;background:#fff}
.big-check small{font-weight:400;margin-top:2px}
.set-cats{gap:18px}
.msg-types{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:10px;margin-bottom:8px}
.msg-type{border:1px solid var(--line);border-radius:10px;padding:8px;background:#fff;display:flex;flex-direction:column;gap:6px}
.msg-type-h{display:flex;align-items:center;gap:6px}.msg-type-h .input{flex:1}
.print-row .print-pick{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.print-pick .select{flex:1;min-width:220px}
.pr-copies{display:flex;align-items:center;gap:5px;font-size:12px;color:var(--muted)}.pr-copies .input{width:46px;text-align:center}
/* editor Home */
.he{display:flex;flex-direction:column;gap:12px}
.he-copy{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:8px 10px;border-radius:10px;background:var(--blue-bg)}
.he-copy .select{max-width:260px}
.he-sec{border-left:4px solid var(--sec,var(--primary));padding:4px 0 4px 12px}
.he-h{display:flex;align-items:center;gap:10px;margin-bottom:6px}.he-h b{display:flex;align-items:center;gap:6px}.he-h svg{width:15px;height:15px}
.he-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:6px 12px}
.he-list .check span{display:flex;align-items:center;gap:6px}.he-list .check svg{width:15px;height:15px;color:var(--muted)}
.he-to .menu-item.check{display:flex;gap:8px;align-items:center;cursor:pointer}

/* ---------- Dipendenti ---------- */
.dp-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:12px;margin-bottom:14px}
.dp-card{background:#fff;border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:12px;display:flex;flex-direction:column;gap:10px}
.dp-card.ok{border-color:var(--green-line)}
.dp-top{display:flex;align-items:center;gap:10px}.dp-top small{display:block;color:var(--muted)}
.dp-nums{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}.dp-nums small{display:block;color:var(--muted);font-size:11px}.dp-nums b{font-size:15px}
.dp-bar{height:6px;border-radius:4px;background:var(--gray-bg);overflow:hidden}.dp-bar i{display:block;height:100%;background:var(--green)}
.dp-pays{display:flex;flex-direction:column;gap:4px}
.dp-pay{display:flex;align-items:center;gap:8px;padding:4px 6px;border-radius:8px;font-size:12px;text-align:left}.dp-pay:hover{background:var(--primary-50)}.dp-pay b{margin-left:auto}

/* ---------- elenchi: stessa altezza di riga e stessa targa in tutte le pagine ---------- */
.table-card .table tbody tr:not(.empty-row):not(.sa-k):not(.sa-g) td{height:56px;vertical-align:middle}
.table-card .table .plate,.table-card .table .plate.plate-sm,.table-card .table .plate.plate-lg{height:26px}
.table-card .table .plate .plate-txt{font-size:12px;padding:0 7px;letter-spacing:.6px}
.table-card .table .plate::before,.table-card .table .plate::after{width:7px}
.table-card .table td .cell-2{line-height:1.3}
/* codice articolo: senza il prezzo di vendita accanto, l'etichetta (pz / NUOVO) sta sul bordo in alto a destra del campo */
.sp-table .code-cell .code-tag{top:-8px;right:4px;left:auto}

/* ---------- spazio usato ---------- */
.store-meter{display:flex;flex-direction:column;gap:6px;padding:12px;border:1px solid var(--line);border-radius:10px;margin:12px 0;background:#fff}
.store-meter .sm-h{display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap}
.sm-bar{height:10px;border-radius:6px;background:var(--gray-bg);overflow:hidden}.sm-bar i{display:block;height:100%;background:var(--green)}
.store-meter.warn .sm-bar i{background:var(--orange)}.store-meter.bad .sm-bar i{background:var(--red)}
.store-meter .btn{align-self:flex-start}

/* ---------- V216: menu "solo icone, si apre passando sopra" ---------- */
@media (min-width:1100px){
  body.nav-auto .sidebar{position:fixed;left:0;top:0;bottom:0;z-index:35;transition:width .2s ease,box-shadow .2s}
  body.nav-auto .workspace{margin-left:var(--sidebar-c)}
  body.nav-auto.nav-auto-open .sidebar{width:var(--sidebar-w);box-shadow:var(--shadow-lg)}
  body.nav-auto .menu-btn{display:grid}
}
.ag-choose{min-width:280px}.ag-choose .menu-item svg{width:18px;height:18px;color:var(--primary)}
.dp-box .deliver-sums{margin-top:10px}

/* ===== V218 ===== */
.perm-hide{display:none!important}
.party-hist{border:1px solid var(--line,var(--n-200));border-radius:10px;padding:8px 12px;background:var(--surface-2,var(--blue-bg))}
.party-hist summary{cursor:pointer;display:flex;align-items:center;gap:8px;list-style:none}
.party-hist summary svg{width:16px;height:16px}
.ph-list{display:flex;flex-direction:column;gap:8px;margin-top:10px;max-height:260px;overflow:auto}
.ph-row{display:grid;grid-template-columns:150px 1fr;gap:10px;padding-top:8px;border-top:1px dashed var(--line,var(--n-200))}
.ph-when{font-weight:600;font-size:13px}.ph-when small{display:block;font-weight:400;color:var(--muted,var(--n-500))}
.ph-ch>div{display:flex;align-items:center;gap:6px;flex-wrap:wrap;font-size:13px}
.ph-ch small{min-width:120px;color:var(--muted,var(--n-500))}
.ph-ch svg{width:13px;height:13px;color:var(--muted,var(--n-500))}
.ph-old{text-decoration:line-through;color:var(--muted,var(--n-500))}
.old-name-i{display:inline-flex;margin-left:6px;vertical-align:middle;color:var(--accent,var(--blue-400));cursor:help}
.old-name-i svg{width:14px;height:14px}
.col-code{width:64px}
.doc-orig-name{font-size:12px;color:var(--muted,var(--n-500));display:flex;align-items:center;gap:4px}
.doc-orig-name svg{width:13px;height:13px}
/* V218: nelle pagine che scorrono le sezioni non si schiacciano (la testata con i pulsanti finiva sotto le schede) */
.page-scroll>*{flex-shrink:0}
/* V218: in Tutti i lavori le schede degli stati vanno su una riga loro quando lo spazio non basta */
@media (max-width:1700px){
  .toolbar.tb-many{flex-wrap:wrap;row-gap:8px}
  .toolbar.tb-many>.seg{flex:1 1 100%;max-width:100%;overflow-x:auto}
  .toolbar.tb-many>.seg .seg-btn{flex:1 1 auto;justify-content:center}
  .toolbar.tb-many>.toolbar-fill{min-width:220px}
}
.inv-from-work{display:flex;align-items:center;gap:6px;font-size:13px;margin:4px 0 6px;padding:6px 10px;border-radius:8px;background:var(--surface-2,var(--blue-bg))}
.inv-from-work svg{width:14px;height:14px;flex:none;color:var(--muted,var(--n-500))}
/* V218: le colonne secondarie si nascondono fino a 1499px (a 1440 le tabelle uscivano a destra) */
@media (max-width:1799px){.hide-md{display:none!important}}
@media (max-width:1799px){.hide-lg{display:none!important}}
@media (max-width:2199px){.hide-xl{display:none!important}}
@media (max-width:1320px){
  .toolbar.tb-wrap-sm{flex-wrap:wrap;row-gap:8px}
  .toolbar.tb-wrap-sm>.seg{flex:1 1 100%;max-width:100%;overflow-x:auto}
  .toolbar.tb-wrap-sm>.toolbar-fill{min-width:220px}
}

/* ===== V219 ===== */
/* Archivio XML */
.xa-grid{display:grid;grid-template-columns:230px minmax(0,1fr);gap:14px;align-items:start}
.xa-tree{padding:8px;position:sticky;top:0;display:flex;flex-direction:column;gap:2px}
.xa-y{display:flex;align-items:center;gap:8px;width:100%;padding:8px 10px;border-radius:8px;font-size:13px}
.xa-y:hover{background:var(--surface-2,var(--blue-bg))}
.xa-y svg{width:14px;height:14px}.xa-y .seg-count{margin-left:auto}
.xa-months{display:flex;flex-direction:column;gap:2px;padding:2px 0 6px 18px}
.xa-m{display:flex;justify-content:space-between;gap:8px;padding:6px 10px;border-radius:7px;font-size:13px;text-align:left}
.xa-m span{color:var(--muted,var(--n-500));font-variant-numeric:tabular-nums}
.xa-m:hover{background:var(--surface-2,var(--blue-bg))}
.xa-m.active{background:var(--blue,var(--blue-500));color:#fff}.xa-m.active span{color:#fff}
.xa-main{display:flex;flex-direction:column;gap:12px;min-width:0}
.xa-head{display:flex;align-items:baseline;gap:12px}.xa-head h3{margin:0}
.xa-group{background:#fff;border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden}
.xa-gh{display:flex;align-items:center;gap:8px;padding:10px 14px;border-bottom:1px solid var(--line)}
.xa-gh svg{width:16px;height:16px;color:var(--muted,var(--n-500))}
.xa-file{display:flex;flex-direction:column}.xa-file .link{text-align:left;word-break:break-all}
@media (max-width:899px){.xa-grid{grid-template-columns:1fr}.xa-tree{position:static}}
/* Documenti emessi: codice come nei DDT, costo d'acquisto accanto alla vendita */
.doc-lines .c-cost{width:118px}
.doc-lines .dl-cost .cost-wrap{display:flex;flex-direction:column;gap:2px}
.doc-lines .dl-cost .cost-ro{display:inline-flex;align-items:center;gap:4px;color:var(--muted,var(--n-500));font-size:13px}
.doc-lines .dl-cost .cost-ro svg{width:12px;height:12px}
.doc-lines .dl-cost small{font-size:11px}
.doc-lines .dl-code{position:relative}
.doc-lines td:has(.code-tag.is-new) .code-combo .input{border-color:var(--violet-line);background:var(--violet-bg)}
.doc-lines .code-cell .code-tag{top:-7px;right:6px}.doc-lines .code-cell .combo{flex:1;min-width:0}
/* Agenda: le parti dello stesso blocco (prima e dopo la pausa) si illuminano insieme */
.ev.is-linked{box-shadow:0 0 0 2px rgba(8,101,242,.55),0 6px 16px rgba(16,24,40,.18);z-index:5}
.ev.is-cont.is-focus{opacity:1}
/* Qualità ISO 9001 */
.q-tabs{align-self:flex-start;flex-wrap:wrap}
.q-tabs .seg-btn{display:inline-flex;align-items:center;gap:6px}.q-tabs .seg-btn svg{width:15px;height:15px}
.q-origin{font-size:12px}
.q-rule{white-space:nowrap}
.nc-form{display:flex;flex-direction:column;gap:12px}
.nc-steps{display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.nc-step{font-size:12px;padding:4px 10px;border-radius:99px;background:var(--surface-2,var(--n-100));color:var(--muted,var(--n-500));font-weight:600}
.nc-step.done{background:var(--green-line);color:var(--green-700)}
.nc-sec{border:1px solid var(--line);border-radius:10px;padding:10px 12px 12px}
.nc-sec h4{display:flex;align-items:center;gap:6px;margin:0 0 8px;font-size:13px}.nc-sec h4 svg{width:15px;height:15px;color:var(--muted,var(--n-500))}
.form-grid.cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}
.form-grid.cols-4 .span-3{grid-column:span 3}.form-grid.cols-4 .span-4{grid-column:1/-1}
.q-bar{display:grid;grid-template-columns:minmax(110px,38%) 1fr auto;gap:10px;align-items:center;font-size:13px;padding:3px 0}
.q-bar>div{height:10px;background:var(--surface-2,var(--blue-bg));border-radius:5px;overflow:hidden}
.q-bar i{display:block;height:100%;background:var(--blue);border-radius:5px}
.q-money{display:flex;justify-content:space-between;gap:10px;padding:6px 0;border-bottom:1px dashed var(--line);font-size:13px}
.q-money.total{border-bottom:0;border-top:2px solid var(--line);margin-top:4px;font-size:15px}
.q-sum .card-body{display:flex;flex-direction:column}
.claim-cover{margin:0}
.wf-buttons .btn-gen-doc[data-act=wfQuality] svg{color:var(--blue-700)}
/* EBITDA */
.eb-tb{flex-wrap:wrap;row-gap:8px}.eb-tb .seg{flex-wrap:wrap}
.eb-grid{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);gap:14px;align-items:start}
.eb-side{display:flex;flex-direction:column;gap:14px;min-width:0}
.eb-ce .card-body{display:flex;flex-direction:column}
.eb-row{display:grid;grid-template-columns:1fr auto 64px;gap:10px;align-items:baseline;padding:7px 0;border-bottom:1px solid var(--line);font-size:13px}
.eb-row b{font-variant-numeric:tabular-nums;text-align:right}.eb-row em{font-style:normal;text-align:right;color:var(--muted,var(--n-500));font-size:12px;font-variant-numeric:tabular-nums}
.eb-row.sub{font-weight:700;background:var(--surface-2,var(--blue-bg));padding:8px 8px;margin:2px -8px;border-radius:6px;border-bottom:0}
.eb-row.total{font-weight:800;font-size:15px;padding:11px 10px;margin:6px -10px;border-radius:8px;background:var(--green-bg);border:1px solid var(--green-line)}
.eb-row.total b.text-red{color:var(--red-500)}.eb-row .eb-sign{display:inline-block;width:16px;font-style:normal;color:var(--muted,var(--n-500))}
.eb-note{display:flex;gap:6px;align-items:center;font-size:12px;color:var(--muted,var(--n-500));margin:10px 0 0}.eb-note svg,.eb-foot svg{width:14px;height:14px;vertical-align:-2px}
.eb-chart{position:relative;padding-left:78px}
.eb-svg{width:100%;height:170px;display:block;overflow:visible}
.eb-svg rect.pos{fill:var(--green-500)}.eb-svg rect.neg{fill:var(--red-500)}.eb-svg rect:hover{opacity:.8}
.eb-zero{stroke:var(--n-400);stroke-width:.6;vector-effect:non-scaling-stroke}
.eb-xl{display:flex;font-size:11px;color:var(--muted,var(--n-500))}.eb-xl span{flex:1;text-align:center;white-space:nowrap;overflow:hidden}
.eb-yl{position:absolute;left:0;top:0;height:170px;display:flex;flex-direction:column;justify-content:space-between;font-size:11px;color:var(--muted,var(--n-500));width:72px;text-align:right}
.eb-table .eb-tot td{font-weight:700;border-top:2px solid var(--line)}
.eb-excl{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px 14px}
@media (max-width:1100px){.eb-grid{grid-template-columns:1fr}}
.q-page .toolbar{flex-wrap:wrap;row-gap:8px}

/* ===== V219 · telefono (fino a 699px) ===== */
@media (max-width:699px){
  /* barra in alto: titolo che si accorcia, icone che non si sovrappongono */
  .topbar{gap:2px;padding:0 6px}
  .topbar>*{flex:none}
  .topbar .page-heading{flex:1 1 0;min-width:0;margin-right:0;padding-left:4px}
  .topbar .page-heading h1{font-size:15px}
  .topbar .crumb,.topbar .page-tag,.topbar .save-state{display:none!important}
  .topbar .icon-btn{width:36px;height:36px}
  .topbar:has(#backBtn:not([hidden])) .home-btn{display:none}
  .topbar .user-chip{padding:2px}
  .topbar .avatar{width:32px;height:32px;font-size:12px}
  /* pagine: margini stretti */
  .app-content{--gutter:10px}
  .page{padding:10px;gap:10px}
  .page-head{flex-direction:column;align-items:stretch}
  .page-actions{flex-wrap:wrap;gap:6px}.page-actions .btn{flex:1 1 auto;justify-content:center}
  /* schede e filtri che scorrono in orizzontale invece di uscire dallo schermo */
  .seg{max-width:100%;overflow-x:auto;flex-wrap:nowrap;scrollbar-width:none}.seg::-webkit-scrollbar{display:none}
  .seg .seg-btn{flex:none}
  .page-fit>.fill{min-height:0}
  .pager{flex-wrap:wrap;gap:6px;justify-content:center}
  /* moduli e finestre */
  .modal-foot{flex-wrap:wrap;gap:6px}.modal-foot .grow{display:none}.modal-foot .btn{flex:1 1 auto;justify-content:center}
  .form-foot,.wf-buttons{flex-wrap:wrap;gap:6px}
  .grid-2,.xa-grid,.eb-grid,.q-sum{grid-template-columns:1fr!important}
  .form-grid.cols-4{grid-template-columns:repeat(2,minmax(0,1fr))}.form-grid.cols-4 .span-2,.form-grid.cols-4 .span-3,.form-grid.cols-4 .span-4{grid-column:1/-1}
  .eb-row{grid-template-columns:1fr auto 48px;font-size:12px}
  .eb-chart{padding-left:58px}.eb-yl{width:54px;font-size:10px}
  .eb-xl span{font-size:10px}
  .nc-steps .nc-step{font-size:11px}
  .q-bar{grid-template-columns:minmax(90px,40%) 1fr auto}
  .xa-tree{flex-direction:row;overflow-x:auto}.xa-year{flex:none}.xa-months{flex-direction:row;padding:0 0 4px}
  .xa-gh{flex-wrap:wrap}
  /* avvisi in basso: non coprono i pulsanti */
  #toastRoot{left:8px;right:8px;bottom:8px}
}

/* V219 · telefono e tablet (fino a 899px): elenchi a schede, barre che vanno a capo */
@media (max-width:899px){
  .toolbar{flex-wrap:wrap;row-gap:8px}.toolbar>.toolbar-fill{flex:1 1 100%;min-width:0}
  .toolbar .tb-actions{flex-wrap:wrap!important;gap:6px}.toolbar .tb-actions>*{max-width:100%}.toolbar>*{max-width:100%}
  /* elenchi: ogni riga diventa una scheda (etichetta sopra il valore) */
  .table-card .table,.xa-table{border-collapse:separate}
  .table-card .table thead,.xa-table thead{display:none}
  .table-card .table tbody,.xa-table tbody{display:block}
  .table-card .table tr,.xa-table tr{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px 12px;padding:10px 12px;border-bottom:1px solid var(--line);position:relative}
  .table-card .table td,.xa-table td{display:block;border:0!important;padding:0!important;min-width:0;height:auto!important;text-align:left!important;white-space:normal}
  .table-card .table td[data-label]::before,.xa-table td::before{content:attr(data-label);display:block;font-size:11px;font-weight:700;letter-spacing:.3px;text-transform:uppercase;color:var(--muted);margin-bottom:1px}
  .table-card .table td.col-actions{grid-column:1/-1;display:flex;justify-content:flex-end;gap:6px;width:auto!important;max-width:none!important;min-width:0!important}
  .table-card .table td.col-actions::before{display:none}
  .table-card .table td:first-child{grid-column:1/-1}
  .table-card .table .tx,.table-card .table .clamp-1{white-space:normal;max-width:none}
  .table-card .table tr.row-late{box-shadow:inset 3px 0 0 var(--red)}
  .table-card .table tr.empty-row{display:block}
  .table-card{overflow:visible}.table-card .table-wrap{overflow:visible}
  .page-fit{overflow-y:auto}.page-fit>.fill{flex:none;min-height:0}
}
@media (min-width:700px) and (max-width:899px){.table-card .table tr,.xa-table tr{grid-template-columns:repeat(3,minmax(0,1fr))}}
/* V219: i pulsanti delle barre vanno a capo invece di uscire dallo schermo */
.toolbar .tb-actions{flex-wrap:wrap;row-gap:6px;min-width:0;flex-shrink:1;justify-content:flex-end}
.q-table td .clamp-1{white-space:normal;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.q-table td[data-label="Origine"]{white-space:normal;min-width:110px;max-width:170px}
.q-table td[data-label="Descrizione"],.q-table td[data-label="Difetto"]{max-width:420px}
.q-table td[data-label="Riferimento"],.q-table td[data-label="Lavoro in garanzia"]{white-space:normal;min-width:150px}


/* ############################################################
   4 · V220  (era css/v220.css)
   ############################################################ */
/* Officina Rossi · V220 */

/* ===== avvisi (toast): sempre dentro lo schermo ===== */
@media (max-width:699px){
  #toastRoot{left:8px;right:8px;bottom:calc(8px + env(safe-area-inset-bottom,0px));transform:none;width:auto;align-items:stretch}
}

/* ===== telefono/tablet: pulsanti divisi in righe uguali (js: balanceWraps) ===== */
.bal-measure>*{flex:none!important;width:auto!important;max-width:none!important;min-width:0!important}
.bal{display:flex!important;flex-wrap:wrap!important;gap:var(--bal-gap,6px)!important;justify-content:stretch!important;grid-template-columns:none!important}
.bal>*{flex:1 1 calc((100% - (var(--bal) - 1) * var(--bal-gap,6px)) / var(--bal))!important;min-width:0!important;max-width:100%!important;margin-left:0!important;margin-right:0!important}
.bal>.btn,.bal>button.btn,.bal>a.btn,.bal>.home-pill{justify-content:center;text-align:center}
.bal>.btn,.bal>button.btn,.bal>a.btn{padding-left:9px;padding-right:9px;white-space:normal;height:auto;min-height:38px;line-height:1.15;text-align:center}
.bal>.btn span{white-space:normal;overflow-wrap:anywhere}

/* ===== telefono: barre ordinate e simmetriche ===== */
@media (max-width:699px){
  .toolbar{gap:8px;padding:10px}
  .toolbar>.seg{flex:1 1 100%;max-width:100%}
  .toolbar>.toolbar-fill{flex:1 1 160px!important;min-width:0}
  .toolbar>.tb-filters{flex:0 0 auto}
  .toolbar>select,.toolbar>.select,.toolbar>.filter-field,.toolbar>label.filter-field{flex:1 1 calc(50% - 4px);min-width:0;max-width:100%}
  .toolbar>.filter-field{display:flex;align-items:center;gap:6px}.toolbar>.filter-field>span{flex:none}.toolbar>.filter-field>.input,.toolbar>.filter-field>.select{flex:1;min-width:0;width:auto}
  .toolbar>.btn{flex:1 1 auto;justify-content:center}
  .toolbar .tb-actions{flex:1 1 100%!important;margin-left:0!important;justify-content:stretch}
  .toolbar .tb-actions>*{flex:1 1 auto;justify-content:center}
  .toolbar .tb-actions .dropdown,.toolbar .tb-actions .menu-wrap{display:flex}.toolbar .tb-actions .dropdown>.btn,.toolbar .tb-actions .menu-wrap>.btn{flex:1;justify-content:center}
  .kpi-row{gap:8px}
  .kpi{min-width:0}
  .kpi .kpi-value{font-size:17px}
  .kpi .kpi-label{white-space:normal;line-height:1.2}
  .home-pills{width:100%}
  .home-create .hc-row{display:flex;flex-wrap:wrap;gap:8px}
  .home-create .hc-big{flex:1 1 calc(50% - 4px);min-width:0}
  .card-head{flex-wrap:wrap;gap:6px}
  .modal-foot .btn{min-width:0}
  .page-head{gap:8px}
}

/* ===== impostazioni: gruppi colorati ===== */
.settings.v220 .settings-grid{grid-template-columns:290px minmax(0,1fr)}
.settings.v220 .settings-nav{padding:8px;gap:0;position:sticky;top:0;max-height:calc(100vh - var(--topbar-h,64px) - 30px);overflow:auto}
.set-cur{display:none}
.set-groups{display:flex;flex-direction:column;gap:6px}
.set-group{display:flex;flex-direction:column;gap:2px;padding:6px;border-radius:12px;background:color-mix(in srgb,var(--sg) 5%,#fff);border:1px solid color-mix(in srgb,var(--sg) 16%,#fff)}
.set-gh{font-size:11px;font-weight:800;letter-spacing:.7px;text-transform:uppercase;color:var(--sg);padding:4px 6px 2px}
.settings.v220 .settings-tab{gap:10px;padding:7px 8px;border-radius:9px;align-items:center}
.settings.v220 .settings-tab:hover{background:color-mix(in srgb,var(--sg) 10%,#fff)}
.settings.v220 .settings-tab.active{background:var(--sg);color:#fff;box-shadow:0 4px 12px color-mix(in srgb,var(--sg) 35%,transparent)}
.settings.v220 .settings-tab.active .set-ic{background:rgba(255,255,255,.22);color:#fff}
.settings.v220 .settings-tab.active small{color:rgba(255,255,255,.85)}
.set-ic{width:30px;height:30px;border-radius:9px;display:grid;place-items:center;background:color-mix(in srgb,var(--sg) 14%,#fff);color:var(--sg);flex:none}
.set-ic svg{width:16px;height:16px}
.set-ic.big{width:44px;height:44px;border-radius:12px}.set-ic.big svg{width:22px;height:22px}
.set-tx{display:flex;flex-direction:column;min-width:0;line-height:1.2}
.set-tx b{font-size:13px}
.set-tx small{font-size:11px;color:var(--muted);font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.set-card{border-top:4px solid var(--sg);overflow:hidden}
.set-head{display:flex;align-items:center;justify-content:flex-start!important;gap:14px;text-align:left;background:linear-gradient(90deg,color-mix(in srgb,var(--sg) 9%,#fff),#fff 70%)}
.set-head small{font-size:11px;font-weight:800;letter-spacing:.6px;text-transform:uppercase;color:var(--sg)}
.set-head h3{margin:1px 0 2px;font-size:17px}
.set-head p{margin:0;color:var(--muted);font-size:13px}
.set-card .form-sep{color:var(--sg);border-color:color-mix(in srgb,var(--sg) 30%,#fff)}
/* V301: Salva sempre blu (stile unico): niente colore del gruppo sui pulsanti */
.set-tile{border:1px solid var(--line);border-radius:12px;padding:12px;display:flex;flex-direction:column;gap:10px;background:#fff}
.set-tile.on{border-color:color-mix(in srgb,var(--sg) 45%,#fff);background:color-mix(in srgb,var(--sg) 6%,#fff)}
@media (max-width:1100px){.settings.v220 .settings-grid{grid-template-columns:240px minmax(0,1fr)}.set-tx small{display:none}}
@media (max-width:899px){
  .settings.v220 .settings-grid{grid-template-columns:1fr}
  .settings.v220 .settings-nav{position:static;max-height:none;padding:6px;flex-direction:column;overflow:visible}
  .set-cur{display:flex;align-items:center;gap:10px;width:100%;padding:6px;border-radius:10px;text-align:left}
  .set-cur b{display:block;font-size:15px}.set-cur small{display:block;font-size:11px;font-weight:800;letter-spacing:.6px;text-transform:uppercase;color:var(--sg)}
  .set-cur-more{display:inline-flex;align-items:center;gap:4px;font-size:12px;font-weight:700;color:var(--primary);white-space:nowrap}
  .set-cur-more svg{width:14px;height:14px;transition:transform .2s}
  .settings-nav.open .set-cur-more svg{transform:rotate(180deg)}
  .settings.v220 .set-groups{display:none;margin-top:6px}
  .settings.v220 .settings-nav.open .set-groups{display:flex}
  .settings.v220 .set-group{display:grid;grid-template-columns:1fr 1fr;gap:4px}
  .settings.v220 .set-gh{grid-column:1/-1}
  .settings.v220 .set-group .settings-tab{flex-direction:column;align-items:flex-start;gap:6px;padding:8px;min-height:64px;border:1px solid color-mix(in srgb,var(--sg) 14%,#fff)}
  .settings.v220 .set-group .settings-tab:not(.active){background:#fff}
  .settings.v220 .set-group .settings-tab:last-child:nth-child(even){grid-column:1/-1}
  .set-head{padding:12px}.set-head h3{font-size:15px}
}

/* metodi di pagamento */
.pm-intro{margin-bottom:12px}
.pm-list{display:flex;flex-direction:column;border:1px solid var(--line);border-radius:12px;overflow:hidden}
.pm-row{display:grid;grid-template-columns:44px minmax(130px,1fr) minmax(150px,.9fr) minmax(220px,1.2fr) 96px 86px auto;gap:10px;align-items:center;padding:8px 10px;border-bottom:1px solid var(--line);border-left:5px solid var(--pm,var(--n-200));background:#fff}
.pm-row:last-child{border-bottom:0}
.pm-row.off{background:var(--n-50)}.pm-row.off .input{color:var(--muted)}
.pm-head{background:var(--surface-2,var(--blue-bg));font-size:11px;font-weight:800;letter-spacing:.4px;text-transform:uppercase;color:var(--muted);border-left-color:transparent}
.pm-color{position:relative;width:32px;height:32px;border-radius:9px;overflow:hidden;border:2px solid #fff;box-shadow:0 0 0 1px var(--line);cursor:pointer}
.pm-color input{position:absolute;inset:-6px;width:calc(100% + 12px);height:calc(100% + 12px);border:0;padding:0;cursor:pointer}
.pm-use{font-size:12px}
.pm-acts{display:flex;gap:2px;justify-content:flex-end}
.switch-l{display:flex;align-items:center;gap:8px;font-size:13px;cursor:pointer}
.switch-l input{width:18px;height:18px;accent-color:var(--pm,var(--blue-500))}
.pm-add{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin-top:12px;padding:10px;border:1px dashed var(--line-strong,var(--n-300));border-radius:12px}
.pm-add .input{flex:1 1 220px}.pm-add .select{flex:0 1 230px;width:auto}
@media (max-width:1100px){
  .pm-row{grid-template-columns:40px minmax(0,1fr) auto;grid-template-areas:"c n a" "x x x";row-gap:6px}
  .pm-head{display:none}
  .pm-row>:nth-child(1){grid-area:c}.pm-row>:nth-child(2){grid-area:n}.pm-row>:nth-child(7){grid-area:a}
  .pm-row>:nth-child(3),.pm-row>:nth-child(4),.pm-row>:nth-child(5),.pm-row>:nth-child(6){grid-column:1/-1}
  .pm-row>:nth-child(4){max-width:100%}
}

/* categorie obsolete */
.cat-row.off{opacity:.7;background:var(--n-50)}
.cat-row .badge{flex:none}

/* ===== Gestione incassi V220: composizione per metodo ===== */
.badge.tone-amber{background:var(--orange-line);color:var(--orange-700)}.badge.tone-amber::before{background:var(--orange-500)}
.text-amber{color:var(--orange)!important}
.rd-tiles.v220{display:grid;grid-template-columns:repeat(var(--n,4),minmax(0,1fr));gap:12px;margin-bottom:14px}
.rd-tile.rd-m,.rd-tile.rd-x{border-top:4px solid var(--pm);gap:8px}
.rd-mic{width:26px;height:26px;border-radius:8px;display:grid;place-items:center;background:color-mix(in srgb,var(--pm) 14%,#fff);color:var(--pm)}
.rd-mic svg{width:15px!important;height:15px!important}
.rd-tile .rd-label{color:#0f1b2d}
.rd-inrow{display:flex;gap:6px;align-items:stretch}
.rd-inrow .rd-input{flex:1;min-width:0}
.rd-use{flex:none;padding:0 10px;gap:5px;font-weight:700;color:var(--pm,var(--blue-500));border-color:color-mix(in srgb,var(--pm,var(--blue-500)) 35%,#fff);background:color-mix(in srgb,var(--pm,var(--blue-500)) 6%,#fff)}
.rd-use:hover{background:color-mix(in srgb,var(--pm,var(--blue-500)) 14%,#fff)}
.rd-use svg{width:14px;height:14px}
.rd-input.flash{animation:rdFlash .7s ease}
@keyframes rdFlash{0%{background:color-mix(in srgb,var(--pm,var(--blue-500)) 22%,#fff)}100%{background:#fff}}
.rd-exp-v{font-size:13px}
.rd-comp{display:flex;flex-direction:column;gap:3px}
.rd-cat{border-radius:8px;background:var(--blue-bg);font-size:12px}
.rd-cat>summary,.rd-cat.empty{display:flex;align-items:center;gap:7px;padding:5px 8px;list-style:none;cursor:pointer}
.rd-cat>summary::-webkit-details-marker{display:none}
.rd-cat svg{width:14px;height:14px;color:var(--pm,var(--n-500));flex:none}
.rd-cat>summary>svg:last-child{color:var(--muted);transition:transform .2s}
.rd-cat[open]>summary>svg:last-child{transform:rotate(180deg)}
.rd-cat small{display:inline-grid;place-items:center;min-width:18px;height:16px;padding:0 5px;border-radius:8px;background:color-mix(in srgb,var(--pm,var(--n-500)) 16%,#fff);color:var(--pm,var(--n-700));font-size:11px;font-weight:800;margin-left:3px}
.rd-cat.empty{cursor:default;color:var(--muted);background:transparent;padding-top:3px;padding-bottom:3px}
.rd-cat.empty svg{color:var(--muted-2,var(--blue-400))}
.rd-cat .rd-exp-list{padding:0 6px 6px;max-height:220px}
.rd-cat .rd-exp-it{background:#fff;border:1px solid var(--line);width:100%;cursor:pointer}
.rd-cat .rd-exp-it:hover{border-color:color-mix(in srgb,var(--pm,var(--blue-500)) 45%,#fff)}
.rd-corr{font-size:12px;align-self:flex-start;margin-top:2px;color:var(--orange)}
.rd-corr svg{width:13px;height:13px}
.rd-summary .adv{background:var(--blue-bg);border-color:var(--blue-line)}.rd-summary .adv b{color:var(--blue)}
.rd-summary .corr{background:var(--orange-line);border-color:var(--orange-400)}
.rd-open{padding:0;overflow:hidden;border-left:4px solid var(--orange-500)}
.rd-open-h{display:flex;gap:10px;align-items:flex-start;padding:10px 14px;background:var(--orange-bg)}
.rd-open-h>svg{width:20px;height:20px;color:var(--orange-500);flex:none;margin-top:2px}
.rd-open-h b{display:block}.rd-open-h small{display:block;color:var(--ink-2);font-size:12px}
.rd-open-list{display:flex;flex-wrap:wrap;gap:8px;padding:10px 14px}
.rd-open-day{display:flex;align-items:center;gap:10px;padding:7px 10px;border:1px solid var(--orange-400);border-radius:10px;background:#fff;text-align:left}
.rd-open-day:hover{background:var(--orange-bg);border-color:var(--orange-500)}
.rd-open-day span{display:flex;flex-direction:column;line-height:1.15}.rd-open-day small{color:var(--muted);font-size:11px}
.rd-open-day svg{width:15px;height:15px;color:var(--orange-500)}
.kpi[data-act]{cursor:pointer}
@media (max-width:1099px){.rd-tiles.v220{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:599px){.rd-tiles.v220{grid-template-columns:1fr}}

/* ===== Cassa IN/OUT ===== */
.tx-page{gap:10px}
.tx-in-groups{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:8px}
.tx-ig{display:flex;flex-direction:column;align-items:flex-start;gap:3px;padding:8px 12px;border:1px solid var(--line);border-radius:10px;background:#fff;text-align:left}
.tx-ig b{font-size:15px;font-variant-numeric:tabular-nums}.tx-ig small{font-size:11px;color:var(--muted)}
.tx-ig:hover{border-color:var(--blue-400)}.tx-ig.active{border-color:var(--primary);box-shadow:0 0 0 2px var(--blue-line)}
.tx-ig.zero{opacity:.65}
.cash-tile.v220{position:relative;padding:0;border-left:4px solid var(--pm);cursor:default;flex-direction:row;align-items:stretch}
.cash-tile.v220 .cash-pick{flex:1;display:flex;flex-direction:column;align-items:flex-start;gap:2px;padding:8px 10px 8px 12px;text-align:left;min-width:0}
.cash-tile.v220 .cash-m{color:var(--pm)}
.cash-corr{flex:none;width:34px;border-left:1px solid var(--line);font-size:17px;font-weight:800;color:var(--orange);background:var(--orange-bg);border-radius:0 9px 9px 0}
.cash-corr:hover{background:var(--orange-line)}
.cash-head .grow{flex:1}
.tx-m{display:inline-flex;align-items:center;gap:6px}.tx-m::before{content:"";width:8px;height:8px;border-radius:50%;background:var(--pm)}
tr.tx-adj td{background:var(--orange-bg)}
.tx-reco{padding:0;overflow:hidden}
.tx-reco>summary{display:flex;align-items:center;gap:8px;padding:10px 14px;cursor:pointer;list-style:none}
.tx-reco>summary::-webkit-details-marker{display:none}
.tx-reco>summary svg{width:16px;height:16px;color:var(--primary)}.tx-reco>summary svg:last-child{color:var(--muted);transition:transform .2s}
.tx-reco[open]>summary svg:last-child{transform:rotate(180deg)}
.tx-reco-sum{font-size:12px;color:var(--muted)}
.tx-reco-rows{padding:4px 14px 12px;display:flex;flex-direction:column}
.tx-reco-rows>div{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:6px 0;border-bottom:1px dashed var(--line);font-size:13px}
.tx-reco-rows>div.sub{padding-left:14px;color:var(--ink-2)}
.tx-reco-rows>div.warn{color:var(--orange)}
.tx-reco-rows>div.tot{font-weight:800;border-bottom:2px solid var(--line)}
.tx-reco-rows b{font-variant-numeric:tabular-nums;white-space:nowrap}
.ca-box{display:flex;flex-direction:column;gap:12px}
.ca-sign{display:grid!important;grid-template-columns:1fr 1fr;gap:8px;background:none;padding:0;max-width:none;overflow:visible!important;border:0}
.ca-sign .seg-btn{display:flex!important;flex-direction:column;align-items:flex-start;gap:0;height:auto!important;min-height:58px;white-space:normal;padding:9px 12px;border:1.5px solid var(--line);border-radius:10px;background:#fff;cursor:pointer;font-weight:700}
.ca-sign .seg-btn b{font-size:20px;line-height:1}
.ca-sign .seg-btn small{font-weight:500;color:var(--muted);font-size:11px}
.ca-sign .ca-plus.active{border-color:var(--green);background:var(--green-bg);color:var(--green)}
.ca-sign .ca-minus.active{border-color:var(--red);background:var(--red-bg);color:var(--red)}
.ca-result{display:flex;flex-wrap:wrap;justify-content:space-between;gap:8px;padding:10px 12px;border-radius:10px;background:var(--blue-bg);font-size:13px}
.ca-result:empty{display:none}
@media (max-width:699px){.tx-in-groups{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* ===== Non conformità V220: gruppi colorati ===== */
.nc-form.v220{gap:12px}
.nc-top{display:grid;grid-template-columns:auto 180px auto minmax(0,1fr);gap:14px;align-items:center;padding:12px 14px;border:1px solid var(--line);border-radius:12px;background:linear-gradient(90deg,var(--n-50),#fff)}
.nc-top .field{margin:0}
.nc-num{display:flex;flex-direction:column;gap:1px;padding:6px 14px;border-radius:10px;background:#0f1b2d;color:#fff;min-width:150px}
.nc-num small{font-size:11px;font-weight:800;letter-spacing:.6px;text-transform:uppercase;color:var(--blue-400)}
.nc-num b{font-size:20px;letter-spacing:.5px}
.nc-num span{display:flex;align-items:center;gap:4px;font-size:11px;color:var(--blue-400)}.nc-num svg{width:11px;height:11px}
.nc-num.sm{min-width:0;padding:5px 12px;align-self:end}.nc-num.sm b{font-size:15px}
.nc-state{display:flex;align-items:center}
.nc-steps.v220{display:flex;gap:4px;justify-content:flex-end;flex-wrap:wrap}
.nc-steps.v220 .nc-step{display:inline-flex;align-items:center;gap:5px;padding:5px 10px;border-radius:99px;background:var(--n-100);color:var(--muted);font-weight:700;font-size:12px;border:1px solid transparent}
.nc-steps.v220 .nc-step svg{width:13px;height:13px}
.nc-steps.v220 .nc-step.done{background:color-mix(in srgb,var(--nc) 12%,#fff);color:var(--nc);border-color:color-mix(in srgb,var(--nc) 30%,#fff)}
.nc-sec.v220{border:1px solid color-mix(in srgb,var(--nc) 22%,#fff);border-left:5px solid var(--nc);border-radius:12px;padding:0 14px 14px;background:linear-gradient(180deg,color-mix(in srgb,var(--nc) 5%,#fff),#fff 60px)}
.nc-sec.v220>h4{display:flex;align-items:center;gap:8px;margin:0 -14px 10px;padding:10px 14px;font-size:15px;color:var(--nc);border-bottom:1px solid color-mix(in srgb,var(--nc) 15%,#fff)}
.nc-sec.v220>h4 svg{width:17px;height:17px;color:var(--nc)}
.nc-sec.v220>h4 small{display:block;font-size:11px;font-weight:500;color:var(--muted)}
.nc-n{width:24px;height:24px;border-radius:50%;display:grid;place-items:center;background:var(--nc);color:#fff;font-size:12px;font-weight:800;flex:none}
.nc-sec.v220.now{box-shadow:0 0 0 3px color-mix(in srgb,var(--nc) 18%,transparent)}
.nc-sec.v220.done>h4 .nc-n{background:#fff;color:var(--nc);border:2px solid var(--nc)}
.nc-sec.v220 .form-grid{gap:10px 12px}
.nc-chips-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:14px;margin-bottom:10px}
.nc-chips{display:flex;flex-wrap:wrap;gap:6px}
.nc-chip{display:inline-flex;align-items:center;gap:6px;padding:6px 11px;border-radius:99px;border:1.5px solid var(--line);background:#fff;font-size:12px;font-weight:700;color:var(--ink-2);cursor:pointer;user-select:none}
.nc-chip svg{width:14px;height:14px}
.nc-chip:hover{border-color:color-mix(in srgb,var(--nc) 50%,#fff)}
.nc-chip.on{background:var(--nc);border-color:var(--nc);color:#fff}
.nc-chip.sev-bassa.on{background:var(--n-500);border-color:var(--n-500)}
.nc-chip.sev-media.on{background:var(--orange-500);border-color:var(--orange-500)}
.nc-chip.sev-alta.on{background:var(--red-500);border-color:var(--red-500)}
.nc-chip.res-ok.on{background:var(--green-500);border-color:var(--green-500)}
.nc-chip.res-ko.on{background:var(--red-500);border-color:var(--red-500)}
.nc-chip.res-wait.on{background:var(--n-500);border-color:var(--n-500)}
.nc-sub{margin-top:10px;padding:10px 12px;border-radius:10px;background:#fff;border:1px dashed color-mix(in srgb,var(--nc) 30%,#fff)}
.nc-sub-h{display:flex;align-items:center;gap:6px;font-weight:800;font-size:12px;color:var(--ink-2);margin-bottom:8px}.nc-sub-h svg{width:14px;height:14px}.nc-sub-h small{font-weight:500;color:var(--muted)}
.nc-done{display:flex;align-items:center;gap:8px;padding:8px 12px;border-radius:10px;border:1.5px solid var(--line);cursor:pointer;font-weight:700;background:#fff;min-height:40px}
.nc-done input{display:none}.nc-done svg{width:18px;height:18px;color:var(--muted-2,var(--blue-400))}
.nc-done small{display:block;font-weight:500;color:var(--muted);font-size:11px}
.nc-done.on{border-color:var(--nc);background:color-mix(in srgb,var(--nc) 8%,#fff);color:var(--nc)}.nc-done.on svg{color:var(--nc)}
.nc-att{padding-bottom:12px}
/* elenco: schede di stato colorate */
.q-page .toolbar .seg .seg-btn[data-key=qNc][data-value=open].active{background:var(--red-bg);color:var(--red)}
.q-page .toolbar .seg .seg-btn[data-key=qNc][data-value=late].active{background:var(--orange-bg);color:var(--orange)}
.q-page .toolbar .seg .seg-btn[data-key=qNc][data-value=closed].active{background:var(--green-bg);color:var(--green)}
.q-tabs .seg-btn:nth-child(1).active{background:var(--red-500);color:#fff}
.q-tabs .seg-btn:nth-child(2).active{background:var(--violet-500);color:#fff}
.q-tabs .seg-btn:nth-child(3).active{background:var(--green-500);color:#fff}
.q-tabs .seg-btn:nth-child(4).active{background:var(--blue-500);color:#fff}
.q-tabs .seg-btn.active .seg-count{background:rgba(255,255,255,.25);color:#fff}
@media (max-width:899px){
  .nc-top{grid-template-columns:1fr 1fr}.nc-steps.v220{grid-column:1/-1;justify-content:flex-start}
  .nc-chips-row{grid-template-columns:1fr}
}

/* ===== Dipendenti come Conto fornitori ===== */
.kpi-row.bal>.kpi,.kpi-row.bal>.kpi-btn{height:auto!important;align-self:stretch}
.dp-table .dp-r.extra td{background:var(--violet-bg)}
.dp-table .dp-r.extra strong svg{color:var(--violet-500)}
.dp-table strong svg{width:14px;height:14px;vertical-align:-2px;color:var(--muted)}
.dp-table .dp-r.is-late td:first-child{box-shadow:inset 3px 0 0 var(--orange-500)}
.dp-tx .sa-pay-top{align-items:flex-start}
.dp-tx .cell-2 small .badge{font-size:11px;padding:1px 7px;margin-right:3px}
@media (max-width:899px){
  .sa-head{gap:10px}.sa-head .sa-name h2{font-size:17px}
}

/* ===== Agenda: Lavori fissi senza scatti (solo transform, una sola ridisposizione) ===== */
@media (min-width:1300px){
  .agenda,.agenda .dock{transition:none!important}
  .agenda{position:relative}
  .agenda.dock-anim{overflow:hidden}
  .agenda.dock-anim .dock{position:absolute;left:12px;top:12px;bottom:12px;width:250px;z-index:8;display:flex!important;opacity:1;pointer-events:none;border-width:1px;will-change:transform,opacity}
  .agenda.dock-anim .cal-card{will-change:transform;grid-column:2;grid-row:1}
  .agenda.dock-anim.dock-opening .cal-card{box-shadow:320px 0 0 0 #fff,var(--shadow)}
}
.tp-edit{height:30px;font-size:13px;text-transform:uppercase;flex:1;min-width:0}
.bal>.tb-info{flex:1 1 100%!important;order:-1}
@media (max-width:899px){
  .table-card .table td .cell-plate{flex-wrap:wrap;min-width:0;max-width:100%}
  .table-card .table td .cell-plate>.cell-2{min-width:0;max-width:100%}
  .table-card .table td{overflow-wrap:anywhere}
}
@media (max-width:899px){
  .toolbar.tb-compact .tb-actions .btn.icon-only{width:auto;padding:0 12px}
  .toolbar.tb-compact .tb-actions .btn.icon-only span{display:inline}
}

/* ===== Agenda su telefono: comandi in righe ordinate ===== */
@media (max-width:699px){
  .ag-tools{display:grid!important;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:8px;padding:8px}
  .ag-tools>.ag-spacer{display:none!important}
  .ag-tools>.ag-dock-btn{width:100%;justify-content:center;height:36px;order:-2}
  .ag-tools:not(:has(>.ag-field))>.ag-dock-btn{grid-column:1/-1}
  .ag-tools>.ag-field{display:flex;align-items:center;gap:6px;min-width:0;margin:0;order:-1}
  .ag-tools>.ag-field>span{flex:none}
  .ag-tools>.ag-field .select{flex:1;min-width:0;width:auto}
  .ag-tools>.ag-nav,.ag-tools>.ag-op,.ag-tools>.ag-right,.ag-tools>.ag-team{grid-column:1/-1;display:flex;align-items:center;gap:6px;min-width:0;width:100%}
  .ag-tools .ag-daypick{flex:1;min-width:0;display:flex}
  .ag-tools .ag-daypick .input,.ag-tools .ag-daypick input{min-width:0;flex:1}
  .ag-tools .ag-op .select,.ag-tools .ag-team .select{flex:1;max-width:none;min-width:0}
  .ag-tools .ag-right>.btn-primary{flex:1;justify-content:center}
  .ag-tools .ag-right .ag-undo{display:flex;gap:4px}
}

/* ===== V221 ===== */
.ag-phone-ops{display:flex;align-items:center;gap:6px}
.ag-phone-lbl{flex:1;min-width:0;text-align:center;font-weight:800;font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ag-per{flex:none}.ag-per .seg-btn{min-width:30px;justify-content:center}
/* selettore veicolo: se le colonne non stanno, due livelli (marca e modello sopra; telaio, motorizzazione e anno sotto) */
.vp-box{container-type:inline-size}
@container (max-width:960px){
  .vp-cols.n5{grid-template-columns:repeat(6,minmax(0,1fr));overflow:visible}
  .vp-cols.n5>.vp-col:nth-child(-n+2){grid-column:span 3}
  .vp-cols.n5>.vp-col:nth-child(n+3){grid-column:span 2}
  .vp-cols.n5>.vp-col{height:250px}
}
@container (max-width:740px){
  .vp-cols.n4{grid-template-columns:repeat(2,minmax(0,1fr));overflow:visible}
  .vp-cols.n4>.vp-col{height:240px;min-height:0}
}
@container (max-width:560px){
  .vp-cols.n5{grid-template-columns:repeat(2,minmax(0,1fr))}
  .vp-cols.n5>.vp-col{grid-column:auto!important;height:230px}
  .vp-cols.n5>.vp-col:last-child{grid-column:1/-1!important;height:190px}
  .vp-cols.n3{grid-template-columns:repeat(2,minmax(0,1fr));overflow:visible}
  .vp-cols.n3>.vp-col{height:230px}
  .vp-cols.n3>.vp-col:last-child{grid-column:1/-1;height:190px}
}
@media (max-width:699px){
  .vp-top,.vp-top.no-owner{grid-template-columns:1fr;gap:10px}
  .vp-top .vp-mode-field{justify-self:stretch!important}
  .vp-top .vp-mode-field .seg{width:100%}.vp-top .vp-mode-field .seg-btn{flex:1;justify-content:center}
}

/* elenchi a schede (telefono/tablet): nessuna larghezza o altezza fissa ereditata dalla tabella */
@media (max-width:899px){
  .table-card .table td{width:auto!important;min-width:0!important;max-width:none!important;height:auto!important;max-height:none!important;box-shadow:none!important}
  .table-card .table td .cell-2{max-width:none!important}
  .table-card .table td .amt-cell{align-items:flex-start}
  .table-card .table tr{gap:6px 14px;padding:12px 14px}
  .table-card .table td[data-label]::before{font-size:10px;letter-spacing:.4px;color:var(--muted-2,var(--n-400));margin-bottom:2px}
}
/* conto fornitori e dipendenti: righe a schede sul telefono */
@media (max-width:699px){
  .sa-table,.sa-table tbody,.sa-table tfoot{display:block}
  .sa-table thead{display:none}
  .sa-table tr{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px 10px;padding:10px 12px;position:relative;border-bottom:1px solid var(--line)}
  .sa-table td{display:block;padding:0!important;border:0!important;text-align:left!important;min-width:0;white-space:normal}
  .sa-table td::before{display:block;font-size:10px;font-weight:700;letter-spacing:.4px;text-transform:uppercase;color:var(--muted-2,var(--n-400));margin-bottom:2px}
  .sa-table:not(.dp-table) td:nth-child(1){position:absolute;right:8px;top:8px}
  .sa-table:not(.dp-table) td:nth-child(2){grid-column:1/-1;padding-right:44px!important}
  .sa-table:not(.dp-table) tbody td:nth-child(3)::before{content:'Scadenza'}
  .sa-table:not(.dp-table) tbody td:nth-child(4)::before{content:'Totale'}
  .sa-table:not(.dp-table) tbody td:nth-child(5)::before{content:'Pagato'}
  .sa-table:not(.dp-table) tbody td:nth-child(6)::before{content:'Da pagare'}
  .sa-table:not(.dp-table) tbody td:nth-child(7)::before{content:'Stato'}
  .sa-table:not(.dp-table) td:nth-child(8){position:absolute;right:8px;bottom:8px;display:flex;gap:2px}
  .sa-table:not(.dp-table) tbody td:nth-child(3):empty,.sa-table:not(.dp-table) tbody td:nth-child(7):empty{display:none}
  .sa-table tr.sa-k{padding-left:24px;background:var(--blue-bg)}
  .sa-table tr.sa-k td:nth-child(2) .sa-kid{padding-left:0}
  .sa-table tr.sa-g td{background:none!important;border-top:0!important}
  .sa-table tr.sa-g{background:var(--blue-bg);border-top:2px solid var(--line-strong)}
  .sa-table tr.sa-g.noinv{background:var(--orange-bg)}
  .sa-table tr.is-late{box-shadow:inset 4px 0 0 var(--red)}
  .sa-table tr.empty-row,.sa-table tr.sa-more{display:block}
  .sa-table tfoot tr{grid-template-columns:repeat(3,minmax(0,1fr))}
  .sa-table tfoot td:empty{display:none}
  .sa-table tfoot td[colspan]{grid-column:1/-1}
  .dp-table td:nth-child(1){grid-column:1/-1;padding-right:44px!important}
  .dp-table tbody td:nth-child(2)::before{content:'Costo'}
  .dp-table tbody td:nth-child(3)::before{content:'Pagato'}
  .dp-table tbody td:nth-child(4)::before{content:'Da pagare'}
  .dp-table tbody td:nth-child(5){grid-column:1/-1}
  .dp-table td:nth-child(6){position:absolute;right:8px;top:8px}
  .sa-casc-bar{flex-wrap:wrap}
}
@media (max-width:699px){
  .sa-casc .table-wrap{overflow:visible}
  .sa-table,.sa-table tbody,.sa-table tfoot,.sa-table tr{width:100%!important;min-width:0!important;box-sizing:border-box}
  .sa-table td{box-shadow:none!important}
  .dp-table .dp-r.is-late{box-shadow:inset 4px 0 0 var(--orange-500)}
}
@media (max-width:699px){.sa-table td{width:auto!important;max-width:none!important;min-width:0!important}.sa-table td.col-actions{display:flex!important;gap:2px}}
/* Cassa IN/OUT più compatta: più spazio alla tabella */
.tx-page{gap:8px}
.tx-page .tx-kpis{gap:8px}
.tx-page .tx-kpis .kpi{padding:6px 10px!important;min-height:0}
.tx-page .tx-kpis .kpi-value{font-size:15px!important}
.tx-page .tx-kpis .kpi-label{font-size:10px}
.tx-page .tx-kpis .kpi-sub{font-size:11px}
.tx-in-groups{gap:6px;grid-template-columns:repeat(auto-fit,minmax(130px,1fr))}
.tx-ig{flex-direction:row;flex-wrap:wrap;align-items:center;gap:2px 8px;padding:4px 8px;border-radius:8px}
.tx-ig .badge{font-size:11px;padding:1px 7px}
.tx-ig b{font-size:13px}.tx-ig small{font-size:11px;margin-left:auto}
.tx-page .cash-box{padding:6px 10px;margin-bottom:0}
.tx-page .cash-head{margin-bottom:5px;font-size:13px}
.tx-page .cash-grid{grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:6px}
.tx-page .cash-tile.v220 .cash-pick{padding:4px 8px}
.tx-page .cash-tile b{font-size:13px}.tx-page .cash-tile small{font-size:11px}
.tx-page .cash-m{font-size:11px}
.tx-page .cash-corr{width:28px;font-size:15px}
.tx-page .tx-reco>summary{padding:6px 12px;font-size:13px}
/* scheda persona (Operatori e permessi) */
.stf{display:flex;flex-direction:column;gap:12px}
.stf-head{display:flex;align-items:center;gap:12px;padding:10px 12px;border-radius:12px;background:linear-gradient(90deg,var(--blue-bg),#fff);border:1px solid var(--line)}
.stf-head b{display:block;font-size:15px}.stf-head .badge{margin-right:3px}
.stf-tabs{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px}
.stf-tab{display:flex;align-items:center;gap:8px;padding:8px 10px;border-radius:10px;border:1.5px solid var(--line);background:#fff;text-align:left;min-width:0}
.stf-tab svg{width:18px;height:18px;color:var(--c);flex:none}
.stf-tab span{display:flex;flex-direction:column;min-width:0;line-height:1.2}.stf-tab b{font-size:13px}
.stf-tab small{font-size:11px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.stf-tab:hover{border-color:color-mix(in srgb,var(--c) 45%,#fff)}
.stf-tab.active{border-color:var(--c);background:color-mix(in srgb,var(--c) 9%,#fff);box-shadow:0 0 0 2px color-mix(in srgb,var(--c) 18%,transparent)}
.stf-tab.active b{color:var(--c)}
.stf-pane{display:none;border-top:3px solid var(--c);padding-top:12px}
.stf[data-tab=persona] .stf-pane[data-p=persona],.stf[data-tab=accesso] .stf-pane[data-p=accesso],.stf[data-tab=costo] .stf-pane[data-p=costo],.stf[data-tab=permessi] .stf-pane[data-p=permessi]{display:block}
.stf-switch{display:flex;flex-direction:column;gap:2px;padding:9px 12px;border:1px solid var(--line);border-radius:10px;background:var(--blue-bg)}
.stf-switch small{color:var(--muted);font-size:12px;padding-left:26px}
.stf-extra{border:1px solid var(--line);border-radius:12px;padding:10px 12px;display:flex;flex-direction:column;gap:8px}
.stf-extra-f{display:none!important}
.stf-extra.on{border-color:var(--green-400);background:var(--green-bg)}.stf-extra.on .stf-extra-f{display:grid!important}
@media (max-width:699px){.stf-tabs{grid-template-columns:1fr 1fr}.stf-tab small{display:none}}
.stf-extra .big-check{border:0!important;padding:0!important;background:none!important;box-shadow:none!important}
/* ===== Fatturazione: impostazioni, fattura, RiBa ===== */
.bil{display:flex;flex-direction:column;gap:16px}
.bil-sec{border:1px solid color-mix(in srgb,var(--c) 22%,#fff);border-left:5px solid var(--c);border-radius:12px;padding:0 14px 14px}
.bil-sec>h4{display:flex;align-items:center;gap:8px;margin:0 -14px 12px;padding:10px 14px;color:var(--c);border-bottom:1px solid color-mix(in srgb,var(--c) 15%,#fff);background:color-mix(in srgb,var(--c) 5%,#fff);font-size:15px;flex-wrap:wrap}
.bil-sec>h4 svg{width:17px;height:17px}.bil-sec>h4 small{font-weight:500;color:var(--muted);font-size:12px}
.bil-rows{display:flex;flex-direction:column;gap:10px;margin-bottom:10px}
.bil-bank{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1.6fr) 120px 150px auto;gap:10px;align-items:start;padding:10px;border:1px solid var(--line);border-radius:10px}
.bil-bank.def{border-color:var(--blue-400);background:var(--blue-bg)}
.bil-bank .field{margin:0}.bil-bank-a{display:flex;align-items:center;gap:6px;padding-bottom:6px}
.bil-terms{display:flex;flex-direction:column;border:1px solid var(--line);border-radius:10px;overflow:hidden;margin-bottom:10px}
.bil-term{display:grid;grid-template-columns:44px minmax(160px,1.4fr) minmax(150px,1fr) 120px 56px 64px minmax(120px,.9fr) 40px;gap:8px;align-items:center;padding:7px 10px;border-bottom:1px solid var(--line)}
.bil-term:last-child{border-bottom:0}.bil-term.off{opacity:.6;background:var(--n-50)}
.bil-term.head{background:var(--blue-bg);font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.4px;color:var(--muted)}
.bil-term-d{grid-column:2/-1;font-size:11px;margin-top:-3px}
.bil-def{display:flex;justify-content:center}
.bil-list{margin-bottom:12px}.bil-lh{display:flex;gap:8px;align-items:baseline;margin-bottom:6px}
.bil-chips{display:flex;flex-wrap:wrap;gap:6px}
.bil-chip{display:inline-flex;align-items:center;gap:2px;border:1px solid var(--line);border-radius:99px;padding:2px 2px 2px 4px;background:#fff}
.bil-chip .input{height:28px;border:0;width:auto;min-width:80px;max-width:200px;field-sizing:content;padding:0 6px;background:transparent}
.bil-chip.add{border-style:dashed}
.bil-chip .action-btn{width:26px;height:26px}
.bil-carrier{display:grid;grid-template-columns:minmax(0,1.3fr) 150px minmax(0,1.5fr) 36px;gap:8px;margin-bottom:6px}
.ipc{display:flex;flex-direction:column;gap:12px}
.ipc-cbank{display:flex;flex-direction:column;gap:1px;padding:6px 10px;border-radius:8px;font-size:13px}
.ipc-cbank.ok{background:var(--green-bg)}.ipc-cbank.miss{background:var(--red-bg)}
.ipc-inst{border:1px solid var(--line);border-radius:10px;padding:8px 10px}
.ipc-ih{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:6px}.ipc-ih b{display:inline-flex;gap:6px;align-items:center}.ipc-ih svg{width:15px;height:15px}
.ipc-rows{display:flex;flex-direction:column;gap:6px}
.ipc-row{display:grid;grid-template-columns:24px 160px minmax(0,1fr) 150px auto 34px;gap:8px;align-items:center}
.ipc-n{width:22px;height:22px;border-radius:50%;background:var(--blue-bg);display:grid;place-items:center;font-size:11px;font-weight:800}
.ipc-tr{border:1px dashed var(--line-strong,var(--n-300));border-radius:10px;padding:8px 10px}
.ipc-tr.on{border-style:solid;border-color:var(--orange-400);background:var(--orange-bg)}
.ipc-trf{margin-top:8px}
.riba-bar{display:none;align-items:center;gap:10px;flex-wrap:wrap;padding:8px 12px;border-left:4px solid var(--primary)}
.riba-bar.on{display:flex}.riba-bar .filter-field{margin:0}.riba-bar svg{width:15px;height:15px;vertical-align:-2px}
.riba-page .col-check{width:34px}
.cbi-errs{margin:0 0 8px;padding-left:18px;color:var(--red)}
.riba-batches .rb-row{display:flex;align-items:center;gap:10px;padding:8px 0;border-bottom:1px solid var(--line)}
.pr-inst{border-collapse:collapse;margin:4px 0 8px;font-size:12px}.pr-inst td,.pr-inst th{border:1px solid var(--n-300);padding:3px 8px}
@media (max-width:1100px){.bil-bank{grid-template-columns:1fr 1fr}.bil-term{grid-template-columns:36px minmax(0,1fr) minmax(0,1fr);}.bil-term.head{display:none}.bil-term>:nth-child(4),.bil-term>:nth-child(5),.bil-term>:nth-child(6){grid-column:auto}.bil-term-d{grid-column:1/-1}.bil-carrier{grid-template-columns:1fr 1fr}}
@media (max-width:699px){.ipc-row{grid-template-columns:22px 1fr 1fr;}.ipc-row>select{grid-column:2/-1}.ipc-row .dl-amt{grid-column:2/3}.bil-bank{grid-template-columns:1fr}}
.static.ipc-cbank{text-align:left;align-items:flex-start;justify-content:center;min-height:38px}.ipc-cbank .link-btn{align-self:flex-start;font-size:12px}
html.rz *,html.rz *::before,html.rz *::after{transition:none!important} /* V260: niente animation:none, altrimenti finestre e pagine si "riaprono" quando la tastiera del tablet cambia l'altezza */
.settings.v220 .set-card>.card-body{animation:setIn .16s ease-out}
@keyframes setIn{from{opacity:.4;transform:translateY(4px)}to{opacity:1;transform:none}}
.settings.v220 .settings-tab{transition:background-color .12s,color .12s}
.set-head{flex-wrap:nowrap!important}
@media (max-width:699px){
  .bil-sec{padding:0 10px 10px}.bil-sec>h4{margin:0 -10px 10px;padding:10px}
  .bil-term{grid-template-columns:28px minmax(0,1fr) minmax(0,1fr) 34px;gap:6px}
  .bil-term>:nth-child(2){grid-column:2/4}
  .bil-term>:nth-child(8){grid-column:4;grid-row:1}
  .bil-term>:nth-child(3){grid-column:2/3}.bil-term>:nth-child(4){grid-column:3/5}
  .bil-term>:nth-child(5){grid-column:2/3}.bil-term>:nth-child(6){grid-column:3/5}.bil-term>:nth-child(7){grid-column:2/5}
  .bil-term-d{grid-column:2/-1}
  .bil-carrier{grid-template-columns:1fr 34px}.bil-carrier>:nth-child(2),.bil-carrier>:nth-child(3){grid-column:1}
}
/* V222 */
.cbi-steps{margin:0;padding-left:20px;display:flex;flex-direction:column;gap:5px;font-size:13px}
.cbi-chks{display:flex;flex-direction:column;gap:6px;margin-bottom:10px}
.cbi-chk{display:flex;align-items:center;gap:8px;padding:7px 10px;border-radius:9px;font-size:13px}
.cbi-chk svg{width:16px;height:16px;flex:none}
.cbi-chk.ok{background:var(--green-bg);color:var(--green-700)}.cbi-chk.ko{background:var(--orange-bg);color:var(--orange-700)}
.cbi-chk .link-btn{margin-left:auto}
.dp-cost-v{display:inline-flex;align-items:center;gap:2px}.dp-cost-v .action-btn{width:26px;height:26px;opacity:.55}.dp-cost-v .action-btn:hover{opacity:1}
.dp-adj{color:var(--orange);font-size:11px}
.dp-cost-box{display:flex;flex-direction:column;gap:10px}.dp-cost-th{display:flex;justify-content:space-between;padding:8px 12px;border-radius:9px;background:var(--blue-bg)}
.stf-dev-row{display:flex;flex-direction:column;gap:6px;padding:8px 12px;border:1px solid var(--line);border-radius:10px;background:var(--blue-bg)}
.sup-fav{display:flex;flex-wrap:wrap;align-items:center;gap:5px;margin-top:6px}
.sup-fav-l{display:inline-flex;align-items:center;gap:4px;font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.4px;color:var(--orange)}
.sup-fav-l svg,.sup-fav-tg svg{width:13px;height:13px}
.sup-fav-chip{padding:3px 9px;border-radius:99px;border:1px solid var(--orange-400);background:var(--orange-bg);font-size:12px;font-weight:700;color:var(--orange-700);max-width:180px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.sup-fav-chip:hover{background:var(--orange-line)}.sup-fav-chip.on{background:var(--orange-500);border-color:var(--orange-500);color:#fff}
.sup-fav-tg{margin-left:auto;font-size:12px;display:inline-flex;align-items:center;gap:4px;color:var(--orange)}
.q-work-pick{min-width:0}
/* ===== V223: titolo della pagina in alto più evidente e mai tagliato se c'è spazio ===== */
.topbar .ph-row{display:flex!important;grid-template-columns:none!important;padding-top:0!important;border-top:0!important;gap:8px;align-items:center}
.topbar .page-heading{flex:0 1 auto;min-width:0;padding:4px 14px 4px 12px;border-radius:10px;border-left:4px solid var(--ph,var(--blue-500));background:linear-gradient(90deg,color-mix(in srgb,var(--ph,var(--blue-500)) 14%,#fff),color-mix(in srgb,var(--ph,var(--blue-500)) 3%,#fff))}
.topbar .page-heading h1{color:#0f1b2d;max-width:none}
.topbar .crumb{color:color-mix(in srgb,var(--ph,var(--blue-500)) 70%,var(--n-700));font-weight:700;letter-spacing:.2px}
@media (max-width:1300px){.topbar .page-heading h1{font-size:17px}}
@media (max-width:699px){.topbar .page-heading{padding:3px 8px;border-left-width:3px;flex:1 1 0}.topbar .page-heading h1{overflow:hidden;text-overflow:ellipsis}}
#devBlock{position:fixed;inset:0;z-index:2000;display:grid;place-items:center;padding:20px;background:linear-gradient(160deg,#0f1b2d,var(--blue-700))}
#devBlock .devb-card{background:#fff;border-radius:18px;padding:28px 24px;max-width:420px;width:100%;text-align:center;display:flex;flex-direction:column;gap:10px;align-items:center;box-shadow:0 20px 50px rgba(0,0,0,.35)}
#devBlock .devb-ic{width:64px;height:64px;border-radius:18px;display:grid;place-items:center;background:var(--blue-bg);color:var(--blue-500)}#devBlock .devb-ic svg{width:32px;height:32px}
#devBlock h2{margin:0;font-size:20px}
html.dev-blocked body>.app-shell{display:none}
#loginRoot{z-index:2100}
.combo-drop.fit .combo-item{white-space:normal;min-width:0}
.combo-drop.fit .combo-item>span{min-width:0}
.combo-drop.fit .combo-item strong,.combo-drop.fit .combo-item small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
/* garanzia: ricambi usati */
.cl-parts{border:1px solid var(--line);border-radius:10px;padding:8px 10px;display:flex;flex-direction:column;gap:6px}
.cl-parts.empty{flex-direction:row;align-items:center;gap:6px;color:var(--muted);font-size:13px}.cl-parts.empty svg{width:15px;height:15px}
.cl-parts-h{display:flex;gap:8px;align-items:baseline;flex-wrap:wrap}.cl-parts-h b{display:inline-flex;align-items:center;gap:6px}.cl-parts-h svg{width:15px;height:15px;color:var(--violet-500)}
.cl-parts-list{display:flex;flex-direction:column;gap:4px;max-height:210px;overflow:auto}
.cl-part{display:flex;align-items:center;gap:10px;padding:6px 10px;border:1px solid var(--line);border-radius:8px;cursor:pointer;font-size:13px}
.cl-part.on{border-color:var(--violet-400);background:var(--violet-bg)}
.cl-part .mono{min-width:90px;font-weight:700}.cl-part .grow{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.cl-sup{font-size:12px;color:var(--violet);font-weight:700;white-space:nowrap}
.cl-sups{display:flex;flex-wrap:wrap;gap:5px;align-items:center}
.cl-sup-chip{padding:2px 9px;border-radius:99px;border:1px solid var(--violet-line);background:var(--violet-bg);font-size:12px;font-weight:700;color:var(--violet-700)}

.bil-term .check.dis{opacity:.35}
.riba-tabs{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:8px}
.riba-tab{display:grid;grid-template-columns:auto 1fr auto;grid-template-rows:auto auto;column-gap:8px;align-items:center;padding:8px 12px;border:1.5px solid var(--line);border-left:4px solid var(--c);border-radius:10px;background:#fff;text-align:left}
.riba-tab svg{width:17px;height:17px;color:var(--c);grid-row:1/3}
.riba-tab span{font-weight:800;font-size:13px}.riba-tab b{font-size:13px;color:var(--c)}
.riba-tab small{grid-column:2/4;font-size:11px;color:var(--muted)}
.riba-tab:hover{background:color-mix(in srgb,var(--c) 5%,#fff)}
.riba-tab.active{background:color-mix(in srgb,var(--c) 10%,#fff);border-color:var(--c);box-shadow:0 0 0 2px color-mix(in srgb,var(--c) 20%,transparent)}
.al-row{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.al-in{width:130px;flex:none}
.al-quick{display:flex;flex-wrap:wrap;gap:4px}.al-quick .btn.on{background:var(--primary);border-color:var(--primary);color:#fff}
/* ===== V225 ===== */
.nc-st-btn{display:inline-flex;align-items:center;gap:4px;border:1px solid transparent;background:none;padding:2px 4px;border-radius:999px;cursor:pointer;font:inherit;color:var(--muted)}
.nc-st-btn:hover{border-color:var(--border);background:var(--surface-2,var(--n-100))}
.nc-st-btn svg{width:13px;height:13px}
.nc-st-btn.big{padding:4px 8px;border-color:var(--border);background:var(--surface,#fff)}
.nc-st-btn.chg{box-shadow:0 0 0 2px var(--primary)}
.nc-man{font-style:normal;font-size:11px;font-weight:700;width:15px;height:15px;border-radius:50%;display:inline-grid;place-items:center;background:var(--n-500);color:#fff}
.nc-state{display:flex;flex-direction:column;align-items:flex-start;gap:2px}.nc-state small{font-size:11px;color:var(--muted)}
.nc-close-btn{margin-right:6px}
.ws225{display:grid;grid-template-columns:repeat(auto-fill,minmax(330px,1fr));gap:6px}.ws-row .check .badge{white-space:nowrap}
.ws-row{display:flex;align-items:center;gap:8px;justify-content:space-between;border:1px solid var(--border);border-radius:10px;padding:5px 6px 5px 8px;background:var(--surface,#fff)}
.ws-row .check{flex:1;min-width:0}
.ws-row .ws-days{width:150px;flex:none;min-width:0;height:32px;padding:2px 26px 2px 8px;font-size:12px}
.ws-row.off{opacity:.55}.ws-row.off .ws-days{pointer-events:none}
.al-ops{display:flex;flex-wrap:wrap;gap:6px}
.al-op{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--border);border-radius:999px;padding:4px 10px;font-size:13px}.al-op svg{width:14px;height:14px;color:var(--muted)}.al-op i{font-style:normal;color:var(--primary);font-weight:600}
@media (max-width:640px){.ws225{grid-template-columns:1fr}}
/* ===== V226 ===== */
.login-switch{display:flex;align-items:center;gap:12px;border:1px solid var(--border);border-radius:14px;padding:12px 14px;margin:0 0 12px;cursor:pointer;background:var(--surface,#fff);border-left:5px solid var(--green-500)}
.login-switch.off{border-left-color:var(--red-500);background:var(--red-bg)}
.login-switch input{position:absolute;opacity:0;pointer-events:none}
.login-switch>svg{width:22px;height:22px;color:var(--green-500);flex:none}.login-switch.off>svg{color:var(--red-500)}
.login-switch b{display:block;font-size:15px}.login-switch small{display:block;color:var(--muted);font-size:12px;line-height:1.35}
.ls-knob{flex:none;width:44px;height:24px;border-radius:999px;background:var(--n-300);position:relative;transition:background .15s}
.ls-knob::after{content:'';position:absolute;top:3px;left:3px;width:18px;height:18px;border-radius:50%;background:#fff;box-shadow:0 1px 3px rgba(0,0,0,.25);transition:transform .15s}
.login-switch.on .ls-knob{background:var(--green-500)}.login-switch.on .ls-knob::after{transform:translateX(20px)}
/* ===== V227: chiusura incassi più larga, righe del dettaglio su una riga ===== */
.modal-xl:has(form[data-form=receiptDay]){max-width:min(1520px,97vw)}
.rd-cat .rd-exp-it{gap:8px;padding:5px 8px}
.rd-cat .rd-exp-it .grow{min-width:0}
.rd-cat .rd-exp-it b{white-space:nowrap}
.rd-cat .rd-exp-it small{display:block;min-width:0;height:auto;padding:0;margin:0;border-radius:0;background:none;color:var(--muted);font-size:11px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-transform:none}
.rd-cat .rd-exp-it>b{flex:none}
.rd-exp-it:has(.rx-ref){display:grid;grid-template-columns:minmax(0,1fr) auto;column-gap:8px;row-gap:1px;align-items:baseline}
.rx-ref{min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.rx-time{font-style:normal;font-weight:600;color:var(--muted);font-size:11px;margin-left:6px}
.rx-amt{white-space:nowrap;text-align:right}
.rd-exp-it .rx-sub{grid-column:1/-1}
.rd-cat>summary>.grow{min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.rd-cat>summary>b{white-space:nowrap;flex:none}
.rd-cat>summary{gap:5px}.rd-cat>summary>small{flex:none;margin-left:0}
/* ===== V228: targhe da foto e Infotarga ===== */
.plate-row{display:flex;gap:6px;align-items:stretch}.plate-row .plate-input{flex:1;min-width:0}
.plate-tools{display:flex;gap:4px;flex:none}
.plate-tools .btn{height:auto;padding:0 10px}.plate-tools .btn svg{width:17px;height:17px}
.pt-ocr{color:var(--blue-500);border-color:var(--blue-400);background:var(--blue-bg)}.pt-it{color:var(--orange);border-color:var(--orange-line);background:var(--orange-bg);font-weight:700}
.pt-ocr:hover{background:var(--blue-line)}.pt-it:hover{background:var(--orange-line)}
#itBox:empty{display:none}#itBox{margin:2px 0 10px}
.it-wait{display:flex;align-items:center;gap:8px;padding:10px 12px;border-radius:10px;background:var(--n-100);color:var(--muted);font-size:13px}
.it-wait svg{width:18px;height:18px;animation:itPulse 1s ease-in-out infinite}.it-wait.big{padding:28px;justify-content:center;font-size:15px}
@keyframes itPulse{50%{opacity:.35}}
.ocr-strip{display:flex;gap:10px;align-items:center;padding:8px;border:1px solid var(--blue-400);background:var(--blue-bg);border-radius:12px}
.ocr-strip img{width:110px;height:70px;object-fit:cover;border-radius:8px;flex:none}
.ocr-strip b{font-size:13px}
.ocr-cands{display:flex;flex-wrap:wrap;gap:6px;margin-top:6px}
.ocr-cand{display:inline-flex;flex-direction:column;align-items:center;gap:2px;padding:4px 6px;border:1px solid var(--line);border-radius:9px;background:#fff;cursor:pointer}
.ocr-cand small{font-size:11px;color:var(--muted)}.ocr-cand.on{border-color:var(--blue-500);box-shadow:0 0 0 2px var(--blue-400)}
.it-card{border:1px solid var(--orange-line);background:var(--orange-bg);border-radius:12px;padding:10px 12px;display:flex;flex-direction:column;gap:8px}
.it-card-h{display:flex;align-items:center;gap:7px;color:var(--orange)}.it-card-h svg{width:16px;height:16px}.it-card-h small{font-weight:500;color:var(--muted)}
.it-facts{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:6px 14px}
.it-facts>div{display:flex;flex-direction:column;min-width:0}.it-facts small{font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.03em}
.it-facts b{font-size:13px;font-weight:600;overflow-wrap:anywhere}
.it-info.compact .it-facts{grid-template-columns:repeat(auto-fill,minmax(150px,1fr))}
.it-st{display:flex;flex-wrap:wrap;gap:4px}
.it-prev{border:1px dashed var(--orange-line);border-radius:10px;padding:6px 10px;margin:6px 0;background:var(--orange-bg)}
.it-prev>summary{cursor:pointer;display:flex;align-items:center;gap:6px;font-size:13px;color:var(--orange);font-weight:600;list-style:none}
.it-prev>summary svg{width:15px;height:15px}.it-prev[open]>summary{margin-bottom:8px}
.scan-photo{position:relative;border-radius:12px;overflow:hidden;background:var(--n-900);margin-bottom:10px}
.scan-photo img{display:block;width:100%;max-height:360px;object-fit:contain}
.scan-photo i{position:absolute;border:3px solid var(--blue-500);border-radius:4px;box-shadow:0 0 0 2000px rgba(15,23,42,.25)}
.scan-list{display:flex;flex-direction:column;gap:6px}
.scan-row{display:flex;align-items:center;gap:10px;padding:8px 10px;border:1px solid var(--line);border-radius:12px;flex-wrap:wrap}
.scan-row .grow{min-width:160px}.scan-row b{display:block}.scan-row small{color:var(--muted);font-size:12px}
.pl-set{display:flex;flex-direction:column;gap:14px}
.pl-sec{border:1px solid var(--line);border-top:4px solid var(--c);border-radius:14px;padding:12px 14px 14px;background:#fff}
.pl-sec>h4{display:flex;align-items:center;gap:8px;margin:0 0 10px;font-size:15px}
.pl-sec>h4>svg{width:20px;height:20px;color:var(--c)}.pl-sec>h4 small{display:block;font-size:12px;color:var(--muted);font-weight:500}
.pl-steps{background:color-mix(in srgb,var(--c) 6%,#fff);border-radius:10px;padding:8px 12px;margin-bottom:12px;font-size:13px}
.pl-steps ol{margin:4px 0 4px 18px;padding:0}.pl-steps li{margin:2px 0}.pl-steps small{color:var(--muted)}
.pl-inrow{display:flex;gap:6px}.pl-inrow .input{flex:1;min-width:0}
.pl-try{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.ocr-test{display:inline-flex;align-items:center;gap:8px;flex-wrap:wrap}.ocr-test img{height:44px;border-radius:6px}
.pl-svcs{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:6px}
.pl-svc{display:flex;gap:8px;align-items:flex-start;border:1px solid var(--line);border-radius:10px;padding:7px 9px;cursor:pointer}
.pl-svc svg{width:16px;height:16px;color:var(--orange-500);flex:none;margin-top:2px}.pl-svc b{display:block;font-size:13px}.pl-svc small{color:var(--muted);font-size:11px}
.pl-svc input{margin-top:3px}.pl-svc.na{opacity:.6}
.pl-checks{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:4px 14px}
.pl-chips{display:flex;flex-wrap:wrap;gap:4px;margin-top:6px}
.pl-chips .chip{font:600 11px var(--mono,monospace);padding:3px 7px;border-radius:7px;border:1px solid var(--line);background:var(--n-50);cursor:pointer}
.pl-chips .chip:hover{border-color:var(--orange-500);color:var(--orange)}
.svc-card{display:flex;gap:10px;align-items:flex-start;padding:10px 12px;border-radius:12px;border:1px solid var(--line)}
.svc-card>svg{width:20px;height:20px;flex:none;margin-top:1px}.svc-card b{display:block}.svc-card small{display:block;color:var(--muted);font-size:12px}
.svc-card.ok{background:var(--green-bg);border-color:var(--green-line)}.svc-card.ok>svg{color:var(--green-500)}
.svc-card.mid{background:var(--blue-bg);border-color:var(--blue-line)}.svc-card.mid>svg{color:var(--blue-500)}
.svc-card.ko{background:var(--red-bg);border-color:var(--red-line)}.svc-card.ko>svg{color:var(--red-500)}
.it-bar-card{padding:12px 14px;margin-bottom:14px}
.it-bar{position:relative;height:14px;border-radius:999px;background:var(--blue-bg);overflow:visible}
.it-bar>i{display:block;height:100%;border-radius:999px;background:var(--blue-500)}.it-bar>i.warn{background:var(--orange-500)}.it-bar>i.over{background:var(--red-500)}
.it-bar>b{position:absolute;top:-3px;bottom:-3px;width:2px;background:var(--n-900);opacity:.5}
.it-bar-l{display:flex;justify-content:space-between;font-size:12px;color:var(--muted);margin-top:4px}
.it-days{display:flex;align-items:flex-end;gap:3px;height:120px}
.it-days>span{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;height:100%;min-width:0}
.it-days i{display:flex;flex-direction:column-reverse;width:100%;max-width:22px;background:var(--blue-500);border-radius:4px 4px 0 0;min-height:1px;overflow:hidden}
.it-days em{display:block;background:var(--orange-500);width:100%}
.it-days small{font-size:10px;color:var(--muted);margin-top:3px}
@media (max-width:640px){.plate-tools .pt-it span{display:none}.ocr-strip img{width:80px;height:56px}.it-days small{display:none}}
.it-confirm{position:fixed;inset:0;z-index:4000;background:rgba(15,23,42,.45);display:grid;place-items:center;padding:16px}
.it-confirm-box{background:#fff;border-radius:16px;box-shadow:0 20px 60px rgba(0,0,0,.3);padding:16px 18px;width:min(420px,100%);display:flex;flex-direction:column;gap:10px}
.it-confirm-h{display:flex;align-items:center;gap:8px;color:var(--orange);font-size:15px}.it-confirm-h svg{width:20px;height:20px}
.it-confirm-box p{margin:0;display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.it-confirm-cost{border-radius:10px;padding:8px 10px;font-weight:600;font-size:13px}
.it-confirm-cost.inc{background:var(--green-bg);color:var(--green)}.it-confirm-cost.extra{background:var(--orange-bg);color:var(--orange)}.it-confirm-cost.test{background:var(--violet-bg);color:var(--violet)}
.it-confirm-f{display:flex;justify-content:flex-end;gap:8px}
.vp-top:has(.plate-tools){grid-template-columns:minmax(290px,340px) minmax(0,1fr) auto}
@media (max-width:899px){.vp-top:has(.plate-tools){grid-template-columns:1fr}}
.plate-row .plate-input{min-width:120px}
/* ===== V231: lettura targhe nel browser ===== */
.pl-engs{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:8px}
.pl-eng{display:flex;gap:10px;align-items:flex-start;border:2px solid var(--line);border-radius:12px;padding:10px 12px;cursor:pointer;background:#fff;transition:border-color .15s,background .15s}
.pl-eng>svg{width:22px;height:22px;color:var(--blue-500);flex:none;margin-top:2px}
.pl-eng b{display:block;font-size:13px}.pl-eng small{display:block;color:var(--ink-2,var(--n-700));font-size:12px;margin-top:2px}.pl-eng em{display:block;font-style:normal;color:var(--muted);font-size:11px;margin-top:4px}
.pl-eng.on{border-color:var(--blue-500);background:var(--blue-bg)}
.pl-eng-dot{width:18px;height:18px;border-radius:50%;border:2px solid var(--n-300);flex:none;margin-top:2px}
.pl-eng.on .pl-eng-dot{border-color:var(--blue-500);background:radial-gradient(var(--blue-500) 45%,transparent 50%)}
.pl-br,.pl-svc-box{margin-top:12px}.pl-common{margin-top:12px}
/* ===== V232: fotocamera accanto alla ricerca del Nuovo lavoro ===== */
.wf-search-row{display:flex;gap:8px;align-items:stretch}.wf-search-row>.combo{flex:1;min-width:0}
.cam-btn{position:relative;flex:none;width:52px;border-radius:12px;border:2px solid var(--n-300);background:var(--n-100);color:var(--n-400);display:grid;place-items:center;cursor:pointer;transition:background .45s,border-color .45s,color .45s,box-shadow .45s,transform .2s}
.cam-btn svg{width:24px;height:24px}
.cam-dot{position:absolute;top:5px;right:5px;width:9px;height:9px;border-radius:50%;background:var(--n-300);transition:background .45s}
.cam-btn.st-loading .cam-dot{background:var(--orange-500);animation:camBlink 1s ease-in-out infinite}
.cam-btn.st-loading{cursor:progress}
.cam-btn.st-ready{background:var(--green-bg);border-color:var(--green);color:var(--green-700)}
.cam-btn.st-ready .cam-dot{background:var(--green)}
.cam-btn.st-ready:hover{background:var(--green-line);transform:translateY(-1px)}
.cam-btn.st-error{background:var(--red-bg);border-color:var(--red-line);color:var(--red-500)}.cam-btn.st-error .cam-dot{background:var(--red-500)}
.cam-btn.pop{animation:camPop 1.1s cubic-bezier(.2,.9,.3,1.3)}
@keyframes camBlink{50%{opacity:.25}}
@keyframes camPop{0%{transform:scale(.9);box-shadow:0 0 0 0 rgba(16,185,129,.55)}35%{transform:scale(1.12)}60%{transform:scale(.98);box-shadow:0 0 0 12px rgba(16,185,129,0)}100%{transform:scale(1);box-shadow:0 0 0 0 rgba(16,185,129,0)}}
@media (prefers-reduced-motion:reduce){.cam-btn.pop,.cam-btn.st-loading .cam-dot{animation:none}}
/* ===== V233: veicolo e cliente con la stessa struttura (stato + azioni in alto a destra) ===== */
.wf-vehicle .entity-state,.wf-vehicle .client-state{display:flex;align-items:center;gap:8px;min-height:32px;margin:0 0 8px;flex-wrap:nowrap}
.wf-vehicle .entity-state>small{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}
.wf-vehicle .entity-state .entity-actions{margin-left:auto;display:flex;gap:2px;flex:none}
.wf-vehicle .client-state:empty{display:none}
.wf-vehicle .client-row{padding:12px;border-radius:12px;row-gap:8px}
.wf-vehicle .client-row .client-state{margin:0}
.wf-vehicle .entity-box{padding:12px;border-radius:12px}
.wf-vehicle .entity-top{margin-top:2px}
.wf-vehicle .client-row,.wf-vehicle .entity-box{min-width:0}
.wf-vehicle .entity-state{min-width:0}
.wf-vehicle .entity-state>.badge{flex:none;white-space:nowrap}
.wf-vehicle .entity-state>small{flex:1 1 0}
@media (max-width:699px){.wf-vehicle .client-row{grid-template-columns:minmax(0,1fr)}.wf-vehicle .entity-state>small{display:none}}
/* ===== V234: targa grande e correggibile nell'anteprima ===== */
.pf-wrap{display:flex;flex-direction:column;gap:10px}
.pf-wrap .scan-photo:empty{display:none}
.pf-why{display:flex;gap:8px;align-items:flex-start;margin:0;font-size:13px;color:var(--ink-2,var(--n-700))}.pf-why svg{width:18px;height:18px;flex:none;color:var(--orange-500);margin-top:1px}
.pf-plate{display:flex;align-items:stretch;align-self:center;width:min(100%,460px);height:clamp(64px,17vw,88px);border:3px solid var(--n-900);border-radius:12px;background:#fff;overflow:hidden;box-shadow:0 4px 14px rgba(15,23,42,.15);cursor:text}
.pf-plate:focus-within{box-shadow:0 0 0 4px rgba(37,99,235,.35),0 4px 14px rgba(15,23,42,.15)}
.pf-eu{flex:none;width:clamp(30px,8vw,42px);background:var(--blue);color:#fff;font:700 clamp(14px,4vw,18px)/1 var(--font,system-ui);display:flex;align-items:flex-end;justify-content:center;padding-bottom:8px}
.pf-eu.r{background:var(--blue)}
.pf-in{flex:1;min-width:0;border:0;outline:0;background:transparent;text-align:center;font:800 clamp(30px,10vw,52px)/1 ui-monospace,"Roboto Mono",Menlo,Consolas,monospace;letter-spacing:.06em;color:var(--n-900);text-transform:uppercase;padding:0 6px}
.pf-in::placeholder{color:var(--n-300)}
.pf-info{text-align:center;font-size:13px;min-height:20px}
.pf-info svg{width:15px;height:15px;vertical-align:-3px;margin-right:4px}
.pf-known{color:var(--green-700)}.pf-new{color:var(--violet)}.pf-new i{font-style:normal;color:var(--muted)}
.pf-alt{display:flex;flex-wrap:wrap;gap:6px;align-items:center;justify-content:center}.pf-alt>small{color:var(--muted);width:100%;text-align:center}
.pf-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.pf-actions .btn-lg{padding:12px 22px;font-size:15px}
@media (max-width:640px){.pf-actions{flex-direction:column-reverse;align-items:stretch}.pf-actions .grow{display:none}.pf-actions .btn{justify-content:center}.pf-wrap .scan-photo img{max-height:200px}}
/* ===== V235: crediti Info Targa ===== */
.it-cred{display:inline-flex;align-items:center;gap:5px;height:34px;padding:0 11px;border-radius:999px;border:1.5px solid var(--line);background:#fff;cursor:pointer;font:inherit;white-space:nowrap;flex:none;transition:background .3s,border-color .3s}
.it-cred svg{width:15px;height:15px}.it-cred b{font-size:13px;font-variant-numeric:tabular-nums}.it-cred small{font-size:11px;color:var(--muted)}
.it-cred.tone-green{border-color:var(--green-400);background:var(--green-bg);color:var(--green)}
.it-cred.tone-orange{border-color:var(--orange-400);background:var(--orange-bg);color:var(--orange)}
.it-cred.tone-red{border-color:var(--red-line);background:var(--red-bg);color:var(--red)}
.it-cred.tone-gray{color:var(--n-500)}
.it-cred.pulse{animation:credPulse .9s ease}
@keyframes credPulse{40%{transform:scale(1.12)}}
@media (max-width:640px){.it-cred small{display:none}.it-cred{padding:0 8px;height:30px}}
.cred-pop{min-width:240px}.cred-pop-n{display:flex;flex-direction:column;align-items:center;padding:8px 0 10px}.cred-pop-n b{font-size:28px;line-height:1.1;font-variant-numeric:tabular-nums}.cred-pop-n small{color:var(--muted)}
.cred-pop-n.tone-green b{color:var(--green)}.cred-pop-n.tone-orange b{color:var(--orange)}.cred-pop-n.tone-red b{color:var(--red)}
.cred-pop-r{display:flex;justify-content:space-between;gap:12px;padding:3px 12px;font-size:13px}.cred-pop-r span{color:var(--muted)}
.it-cred-mini{margin-left:auto;display:inline-flex;align-items:center;gap:4px;font-size:12px;font-weight:700;padding:3px 9px;border-radius:999px;background:var(--n-100);color:var(--n-700)}
.it-cred-mini svg{width:13px;height:13px}.it-cred-mini.tone-green{background:var(--green-line);color:var(--green)}.it-cred-mini.tone-orange{background:var(--orange-line);color:var(--orange)}.it-cred-mini.tone-red{background:var(--red-bg);color:var(--red)}
.cred-hero{display:flex;gap:18px;align-items:center;flex-wrap:wrap;border:1px solid var(--line);border-left:6px solid var(--n-400);border-radius:14px;background:#fff;padding:14px 18px;margin-bottom:14px}
.cred-hero.tone-green{border-left-color:var(--green-500)}.cred-hero.tone-orange{border-left-color:var(--orange-500)}.cred-hero.tone-red{border-left-color:var(--red-500)}
.cred-hero-n{display:flex;align-items:center;gap:12px}.cred-hero-n>svg{width:30px;height:30px;color:var(--violet-500)}
.cred-hero-n small{display:block;color:var(--muted);font-size:12px;text-transform:uppercase;letter-spacing:.04em}.cred-hero-n b{font-size:28px;line-height:1;font-variant-numeric:tabular-nums}
.cred-hero.tone-green .cred-hero-n b{color:var(--green)}.cred-hero.tone-orange .cred-hero-n b{color:var(--orange)}.cred-hero.tone-red .cred-hero-n b{color:var(--red)}
.cred-hero-bar{flex:1;min-width:220px}
.cred-delta{font-weight:800;font-variant-numeric:tabular-nums}.cred-delta.minus{color:var(--red)}.cred-delta.plus{color:var(--green)}
.cred-top{display:inline-flex;align-items:center;gap:5px;color:var(--green);font-weight:600}.cred-top svg{width:14px;height:14px}
.it-cred-big{font-size:26px;font-weight:800}.it-cred-big.tone-green{color:var(--green)}.it-cred-big.tone-orange{color:var(--orange)}.it-cred-big.tone-red{color:var(--red)}
.notice.danger{background:var(--red-bg);border-color:var(--red-line);color:var(--red-700)}
/* ===== V236: righe del lavoro su telefono come schede ordinate ===== */
@media (max-width:699px){
  .work-form .lines-table tbody{display:flex!important;flex-direction:column;gap:10px;padding:10px}
  .work-form .lines-table tr:not(.empty-row){display:grid!important;grid-template-columns:minmax(0,1fr) minmax(0,1.15fr) minmax(0,1fr);grid-template-areas:"art art act" "desc desc desc" "qty price tot" "cost cost cost";gap:6px 10px;align-items:end;border:1px solid var(--line);border-radius:12px;padding:10px 12px;background:#fff;box-shadow:0 1px 2px rgba(15,23,42,.05)}
  .work-form .lines-table tr.line-labor{background:var(--blue-bg);border-color:var(--blue-line)}
  .work-form .lines-table tr.is-excluded{opacity:.75;background:repeating-linear-gradient(135deg,#fff,#fff 8px,var(--n-50) 8px,var(--n-50) 16px)}
  .work-form .lines-table td{padding:0!important;min-width:0!important;border:0}
  .work-form .lines-table td[data-label]::before{font-size:11px;letter-spacing:.03em;text-transform:uppercase;margin-bottom:3px}
  .work-form .lines-table td[data-label="Articolo"]{grid-area:art;align-self:center}
  .work-form .lines-table td[data-label="Articolo"]::before,.work-form .lines-table td[data-label="Descrizione"]::before{display:none}
  .work-form .lines-table td[data-label="Descrizione"]{grid-area:desc}
  .work-form .lines-table td[data-label="Q.tà"]{grid-area:qty}
  .work-form .lines-table td[data-label^="Prezzo"]{grid-area:price}
  .work-form .lines-table td[data-label="Totale"]{grid-area:tot;text-align:right;align-self:end}
  .work-form .lines-table td[data-label="Totale"] span{font-size:17px;font-weight:800;line-height:36px;display:block}
  .work-form .lines-table td[data-label^="Costo"]{grid-area:cost;display:flex!important;align-items:center;gap:6px;font-size:12px;color:var(--muted);border-top:1px dashed var(--line)!important;padding-top:6px!important}
  .work-form .lines-table td[data-label^="Costo"]::before{display:inline!important;margin:0}
  .work-form .lines-table td[data-label="Costo"]{display:none!important}
  .work-form .lines-table td.col-actions{grid-area:act;position:static!important;display:flex!important;justify-content:flex-end;gap:4px;align-self:center}
  .work-form .lines-table td.col-actions .action-btn{width:34px!important;height:34px!important}
  .work-form .lines-table .code-combo{width:100%!important;max-width:220px}
  .work-form .lines-table .qty{display:flex;align-items:center;gap:4px}
  .work-form .lines-table .qty .input{width:100%!important;flex:1 1 auto!important;min-width:0}
  .work-form .lines-table input[name=price]{width:100%!important}
  .work-form .lines-table .input,.work-form .lines-table .select{height:40px;font-size:15px}
  .work-form .lines-table .line-sub{display:block;margin-top:3px;font-size:11px}
  .work-form .lines-table .labor-code{display:inline-flex;align-items:center;gap:5px;font-weight:800}
  .work-form .lines-wrap{overflow:visible}
}
@media (max-width:699px){
  .work-form .lines-table td[data-label^="Prezzo"]::before{content:'Prezzo €';white-space:nowrap}
  .work-form .lines-table td[data-label="Q.tà"]::before{content:'Quantità'}
  .work-form .lines-table td[data-label="Totale"]::before{text-align:right}
  .work-form .lines-table tr.empty-row td{padding:12px!important}
}
@media (max-width:699px){.work-form .lines-table td[data-label]::before{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}}
/* ===== V237: ogni gruppo del lavoro con il suo colore ===== */
.work-form .wf-vehicle{--g:var(--blue-500);--gb:var(--blue-bg)}
.work-form .wf-job{--g:var(--green-500);--gb:var(--green-bg)}
.work-form .wf-lines{--g:var(--orange-500);--gb:var(--orange-bg)}
.work-form .wf-when{--g:var(--violet-500);--gb:var(--violet-bg)}
.work-form .wf-notes{--g:var(--orange);--gb:var(--orange-bg)}
.work-form .wf-money{--g:var(--blue-500);--gb:var(--green-bg)}
.work-form .wf-actions{--g:var(--n-500);--gb:var(--n-50)}
.work-form section.card[class*="wf-"]{border:1px solid color-mix(in srgb,var(--g) 28%,var(--line));border-left:5px solid var(--g);overflow:visible}
.work-form section.card[class*="wf-"]>.card-head{background:linear-gradient(90deg,var(--gb),#fff 70%);border-bottom-color:color-mix(in srgb,var(--g) 18%,var(--line))}
.work-form section.card[class*="wf-"] .card-head .step{background:var(--g)}
.work-form section.card[class*="wf-"] .card-head h3{color:color-mix(in srgb,var(--g) 55%,var(--n-900))}
.work-form section.card[class*="wf-"] .card-head h3>svg{color:var(--g)}
@media (max-width:699px){.work-form section.card[class*="wf-"]{border-left-width:4px}}
/* ===== V238: colori coerenti in tutto il gestionale =====
   stessa "famiglia" = stesso colore, in ogni pagina:
   chi (veicolo, cliente, fornitore) blu · dati del lavoro/documento verde · note giallo ·
   righe (manodopera, articoli) arancione · tempi e stato viola · soldi (importi, pagamenti, totali) verde acqua · allegati e azioni grigio */
:root{--c-party:var(--blue-500);--c-party-bg:var(--blue-bg);--c-data:var(--green-500);--c-data-bg:var(--green-bg);--c-note:var(--orange);--c-note-bg:var(--orange-bg);--c-lines:var(--orange-500);--c-lines-bg:var(--orange-bg);--c-time:var(--violet-500);--c-time-bg:var(--violet-bg);--c-money:var(--blue-500);--c-money-bg:var(--green-bg);--c-act:var(--n-500);--c-act-bg:var(--n-50)}
.work-form .wf-vehicle,.ar-party,.gomme-form .vp-page,section.vp-page.tf-veh{--g:var(--c-party);--gb:var(--c-party-bg)}
.work-form .wf-job,.ar-doc{--g:var(--c-data);--gb:var(--c-data-bg)}
.work-form .wf-notes,.ar-notes{--g:var(--c-note);--gb:var(--c-note-bg)}
.work-form .wf-lines,.ar-lines{--g:var(--c-lines);--gb:var(--c-lines-bg)}
.work-form .wf-when{--g:var(--c-time);--gb:var(--c-time-bg)}
.work-form .wf-money,.ar-pay,.ar-sum,.td-pay{--g:var(--c-money);--gb:var(--c-money-bg)}
.work-form .wf-actions,.ar-files{--g:var(--c-act);--gb:var(--c-act-bg)}
section.card.ar-party,section.card.ar-doc,section.card.ar-notes,section.card.ar-lines,section.card.ar-pay,section.card.ar-sum,section.card.ar-files,section.card.td-pay{border:1px solid color-mix(in srgb,var(--g) 28%,var(--line));border-left:5px solid var(--g)}
section.card.ar-party>.card-head,section.card.ar-doc>.card-head,section.card.ar-notes>.card-head,section.card.ar-lines>.card-head,section.card.ar-pay>.card-head,section.card.ar-sum>.card-head,section.card.ar-files>.card-head,section.card.td-pay>.card-head{background:linear-gradient(90deg,var(--gb),#fff 70%);border-bottom-color:color-mix(in srgb,var(--g) 18%,var(--line))}
section.card[class*="ar-"] .card-head h3,section.card.td-pay .card-head h3{color:color-mix(in srgb,var(--g) 55%,var(--n-900))}
section.card[class*="ar-"] .card-head h3>svg,section.card.td-pay .card-head h3>svg,section.card[class*="ar-"] .card-head .step{color:var(--g)}
section.card[class*="ar-"] .card-head .step{background:var(--g);color:#fff}
@media (max-width:699px){section.card[class*="ar-"],section.card.td-pay{border-left-width:4px}}
/* legenda dei colori (Impostazioni › Interfaccia) */
.color-legend{display:flex;flex-wrap:wrap;gap:6px}.color-legend span{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border-radius:999px;background:var(--gb);border:1px solid color-mix(in srgb,var(--g) 35%,#fff);font-size:12px;color:color-mix(in srgb,var(--g) 60%,var(--n-900));font-weight:600}.color-legend i{width:10px;height:10px;border-radius:3px;background:var(--g)}
/* ===== V238: Home "Oggi in officina" ===== */
.home-today{display:flex;flex-direction:column;gap:12px;margin-bottom:16px}
.ht2-row{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}
.ht2{position:relative;display:grid;grid-template-columns:auto 1fr;grid-template-rows:auto auto;column-gap:12px;align-items:center;padding:14px 16px;border-radius:14px;background:#fff;border:1px solid var(--line);border-left:5px solid var(--tc);text-decoration:none;color:inherit;transition:transform .15s,box-shadow .15s}
.ht2[href]:hover{transform:translateY(-1px);box-shadow:0 6px 18px rgba(15,23,42,.08)}
.ht2-ic{grid-row:1/3;width:42px;height:42px;border-radius:12px;display:grid;place-items:center;background:var(--tb);color:var(--tc)}.ht2-ic svg{width:22px;height:22px}
.ht2-n{font-size:28px;font-weight:800;line-height:1;color:var(--tc);font-variant-numeric:tabular-nums}
.ht2-l{grid-column:2;font-weight:700;font-size:13px}
.ht2 small{grid-column:2;color:var(--muted);font-size:12px}
.ht2.zero .ht2-n{color:var(--n-400)}
.ht2.tone-blue{--tc:var(--c-party);--tb:var(--c-party-bg)}.ht2.tone-green{--tc:var(--green-500);--tb:var(--green-bg)}.ht2.tone-violet{--tc:var(--c-time);--tb:var(--c-time-bg)}.ht2.tone-red{--tc:var(--red-500);--tb:var(--red-bg)}.ht2.tone-gray{--tc:var(--n-500);--tb:var(--n-100)}
.ht2{grid-template-areas:"ic n" "ic l"}.ht2-ic{grid-area:ic}.ht2-n{grid-area:n}.ht2-l{grid-area:l}
.ht2>small{grid-column:1/-1;margin-top:6px}
.hd-cols{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);gap:12px}
.hd-card{border-left:5px solid var(--g)}.hd-card>.card-head{background:linear-gradient(90deg,var(--gb),#fff 70%)}
.hd-card .card-head h3{display:flex;align-items:center;gap:8px;color:color-mix(in srgb,var(--g) 55%,var(--n-900))}.hd-card .card-head h3 svg{width:18px;height:18px;color:var(--g)}
.hd-card .card-body{display:flex;flex-direction:column;gap:6px}
.hd-item{display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:10px;background:var(--n-50);border:1px solid var(--line);flex-wrap:wrap}
.hd-ic{width:28px;height:28px;border-radius:8px;display:grid;place-items:center;flex:none;background:#fff;color:var(--ic)}.hd-ic svg{width:16px;height:16px}
.hd-item.tone-red{--ic:var(--red-500);background:var(--red-bg);border-color:var(--red-line)}.hd-item.tone-green{--ic:var(--green-500);background:var(--green-bg);border-color:var(--green-line)}.hd-item.tone-orange{--ic:var(--orange-500);background:var(--orange-bg);border-color:var(--orange-line)}.hd-item.tone-violet{--ic:var(--violet-500);background:var(--violet-bg);border-color:var(--violet-line)}.hd-item.tone-teal{--ic:var(--blue-500);background:var(--green-bg);border-color:var(--green-400)}
.hd-t{flex:1;min-width:140px;display:flex;flex-direction:column}.hd-t b{font-size:13px}.hd-t small{color:var(--muted);font-size:12px}
.hd-note{font-size:12px;color:var(--ink-2,var(--n-700));font-weight:600}
.hd-btns{display:flex;gap:6px;margin-left:auto;align-items:center}
.hd-empty{display:flex;align-items:center;gap:8px;color:var(--muted);padding:10px}.hd-empty svg{width:18px;height:18px;color:var(--green-500)}
.hd-ev{display:flex;align-items:center;gap:10px;padding:7px 8px;border-radius:9px;text-decoration:none;color:inherit;cursor:pointer}.hd-ev:hover{background:var(--violet-bg)}
.hd-ev.past{opacity:.55}
.hd-time{font-weight:800;font-variant-numeric:tabular-nums;color:var(--c-time);min-width:46px}
.home-all-h{display:flex;align-items:center;gap:8px;font-size:15px;margin:6px 0 4px;color:var(--muted)}.home-all-h svg{width:16px;height:16px}
@media (max-width:1100px){.ht2-row{grid-template-columns:repeat(2,minmax(0,1fr))}.hd-cols{grid-template-columns:1fr}}
@media (max-width:480px){.ht2{padding:10px 12px;column-gap:10px}.ht2-ic{width:34px;height:34px}.ht2-n{font-size:20px}.ht2-l{font-size:12px}.ht2>small{display:none}.hd-btns{margin-left:0;width:100%;justify-content:flex-end}}
/* ===== V238: accesso con utente e password ===== */
.gate-card{display:flex;flex-direction:column;gap:12px;width:min(420px,100%)}
.gate-f{display:flex;flex-direction:column;gap:5px}.gate-f>span:first-child{font-size:13px;font-weight:700;color:var(--ink-2,var(--n-700))}
.gate-f .input{height:46px;font-size:15px}
.gate-pw{display:flex;gap:6px}.gate-pw .input{flex:1;min-width:0}.gate-pw .icon-btn{width:46px;height:46px;flex:none;border:1px solid var(--line);border-radius:10px}
.gate-go{justify-content:center;height:48px;font-size:15px}
.gate-hint{display:flex;gap:8px;align-items:flex-start;margin:0;padding:9px 11px;border-radius:10px;background:var(--blue-bg);color:var(--blue-700);font-size:13px}.gate-hint svg{width:16px;height:16px;flex:none;margin-top:1px}
.gate-set{border:1px solid var(--line);border-left:5px solid var(--n-500);border-radius:14px;padding:12px 14px;margin:0 0 12px;background:#fff;display:flex;flex-direction:column;gap:10px}
.gate-set.on{border-left-color:var(--blue-500)}
.gate-set-h{display:flex;align-items:center;gap:12px}.gate-set-h>svg{width:22px;height:22px;color:var(--blue-500);flex:none}.gate-set-h b{display:block}.gate-set-h small{display:block;color:var(--muted);font-size:12px}
.gate-set .form-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.login.gate{background:radial-gradient(1200px 600px at 20% 0%,var(--blue) 0%,var(--n-900) 60%)!important;backdrop-filter:none!important}
@media (max-width:480px){
  .hd-item{gap:8px;padding:8px}
  .hd-item .plate{order:0}
  .hd-t{min-width:0;flex:1 1 60%}
  .hd-note{flex:1 1 auto;min-width:0}
  .hd-btns{width:auto;margin-left:auto}
  .hd-btns .btn span{display:none}.hd-btns .btn{padding:0 10px}
}
/* ===== V239: elenco lavori compatto su tablet verticale e telefono ===== */
@media (max-width:899px){
  .works-table .table tbody{display:grid!important;grid-template-columns:minmax(0,1fr);gap:8px;padding:8px}
  .works-table .table tr:not(.empty-row){display:grid!important;grid-template-columns:auto auto minmax(0,1fr) auto;grid-template-areas:"plate code . status" "title title title amount" "client client client when";gap:6px 10px;align-items:center;padding:10px 12px!important;border:1px solid var(--line)!important;border-radius:12px;background:#fff;box-shadow:0 1px 2px rgba(15,23,42,.05);cursor:pointer}
  .works-table .table tr.row-late{box-shadow:inset 4px 0 0 var(--red),0 1px 2px rgba(15,23,42,.05)!important;border-color:var(--red-line)!important}
  .works-table .table td[data-label]::before{display:none!important}
  .works-table .table td{padding:0!important}
  .works-table td[data-label="Targa"]{grid-area:plate}
  .works-table td[data-label="Codice"]{grid-area:code}
  .works-table td[data-label="Stato"]{grid-area:status;justify-self:end}
  .works-table td[data-label="Intervento"]{grid-area:title;min-width:0}
  .works-table td[data-label="Importo"]{grid-area:amount;justify-self:end;font-size:15px}
  .works-table td[data-label="Proprietario"]{grid-area:client;min-width:0}
  .works-table td[data-label="Accettazione"]{grid-area:when;justify-self:end;text-align:right!important}
  .works-table td[data-label="Pianificazione"],.works-table td[data-label="Conclusione"],.works-table td[data-label="Consegna"]{grid-area:when;justify-self:end;text-align:right!important}
  .works-table tr:has(td[data-label="Pianificazione"]) td[data-label="Accettazione"],.works-table tr:has(td[data-label="Conclusione"]) td[data-label="Accettazione"],.works-table tr:has(td[data-label="Consegna"]) td[data-label="Accettazione"]{display:none!important}
  .works-table td[data-label="Stato dal"],.works-table td[data-label="Operatore"],.works-table td[data-label="Veicolo"],.works-table td.col-actions{display:none!important}
  .works-table td[data-label="Intervento"] .cell-2 strong{font-size:13px}
  .works-table td[data-label="Intervento"] .cell-2 small,.works-table td[data-label="Proprietario"] .cell-2 small{display:inline!important;margin-left:6px}
  .works-table td[data-label="Proprietario"] .cell-2{display:flex;align-items:baseline;gap:0;min-width:0}
  .works-table td[data-label="Proprietario"] .cell-2 strong{font-weight:600;font-size:13px;min-width:0}
  .works-table td .cell-2>*{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .works-table td[data-label="Intervento"] .cell-2{display:flex;align-items:baseline;min-width:0}
  .works-table td[data-label="Intervento"] .cell-2 small{flex:1 1 0;min-width:0}
  .works-table td[data-label="Intervento"] .cell-2 strong{flex:0 1 auto;min-width:0}
  .works-table .plan-cell,.works-table td[data-label="Accettazione"] .cell-2,.works-table td[data-label="Conclusione"] .cell-2,.works-table td[data-label="Consegna"] .cell-2,.works-table td[data-label="Pianificazione"] .cell-2{display:inline-flex!important;flex-direction:row!important;align-items:baseline;gap:5px;padding:2px 7px;border-radius:7px;font-size:12px;white-space:nowrap}
  .works-table .plan-cell strong,.works-table .plan-cell small{font-size:12px}
  .works-table .code-chip{font-size:11px;padding:1px 6px}
  .works-table .plate{font-size:13px}
}
@media (min-width:700px) and (max-width:899px){
  .works-table .table tbody{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:420px){
  .works-table .table tr:not(.empty-row){grid-template-columns:auto minmax(0,1fr) auto;grid-template-areas:"plate code status" "title title amount" "client client when"}
  .works-table td[data-label="Intervento"] .cell-2 small{display:none!important}
}
@media (max-width:899px){
  .works-table .table td[data-label="Codice"]{grid-column:auto!important;grid-area:code!important}
  .works-table td[data-label="Proprietario"] .cell-2,.works-table td[data-label="Intervento"] .cell-2{display:flex!important;flex-direction:row!important;align-items:baseline}
  .works-table td[data-label="Proprietario"] .cell-2>*,.works-table td[data-label="Intervento"] .cell-2>*{display:inline-block!important}
  .works-table td[data-label="Proprietario"] .cell-2 small{flex:1 1 0;min-width:0;color:var(--muted)}
  .works-table td.hide-sm[data-label="Pianificazione"],.works-table td.hide-sm[data-label="Conclusione"],.works-table td.hide-sm[data-label="Consegna"]{display:block!important}
  /* barra in alto più compatta */
  .tb-compact{gap:8px!important;padding:10px!important}
  .tb-compact>.seg{flex:1 1 100%;min-width:0}
  .tb-compact>.toolbar-fill{flex:1 1 140px!important;min-width:0}
  .tb-compact .tb-out{padding:0 10px}.tb-compact .tb-out span,.tb-compact .tb-out svg:last-child{display:none}
}
@media (max-width:899px){
  .tb-compact .tb-out{flex:0 0 42px!important;width:42px!important;justify-content:center}
  .tb-compact>.btn-primary,.tb-compact>[data-route="newWork"]{flex:0 0 auto!important;width:auto!important}
  .tb-compact>[data-act="toggleFilters"],.tb-compact>.tb-filter{flex:0 0 auto!important}
  .works-table td[data-label="Intervento"] .cell-2 small{display:none!important}
}
@media (max-width:899px){
  .tb-compact>.tb-actions.bal,.tb-compact>.tb-actions{flex:0 0 auto!important;width:auto!important;display:flex!important;flex-wrap:nowrap!important;gap:6px!important}
  .tb-compact>.tb-actions>*{flex:0 0 auto!important;width:auto!important;min-width:0!important}
  .tb-compact>.tb-actions .tb-out{width:42px!important}
  .tb-compact>.toolbar-fill{flex:1 1 120px!important}
}
@media (max-width:480px){
  .tb-compact>.tb-actions .btn-primary span{display:none}
  .tb-compact>.tb-actions .btn-primary{width:44px!important;padding:0!important;justify-content:center}
  .tb-compact .tb-filters-btn span{display:none}
}
@media (max-width:899px){.tb-compact .search-box,.tb-compact .search-box .input{min-width:0!important;width:100%!important}.tb-compact>.toolbar-fill{min-width:0!important;flex-basis:0!important}}
@media (max-width:899px){.works-table td[data-label="Pagamento"]{grid-column:1/-1;justify-self:start}.works-table td[data-label="Pagamento"] .pay-cell{flex-direction:row;gap:6px}}
.dash-todo{margin-bottom:14px}.dash-todo .hd-card .card-body{display:grid;grid-template-columns:repeat(auto-fill,minmax(420px,1fr));gap:6px}
@media (max-width:600px){.dash-todo .hd-card .card-body{grid-template-columns:1fr}}
/* ===== V239: accesso a schermo intero (classico: marchio a sinistra, modulo a destra) ===== */
#loginRoot.auth-root{position:fixed;inset:0;z-index:5000;background:#fff;overflow:auto;padding:0;display:block;place-items:initial}
.auth{min-height:100%;display:grid;grid-template-columns:minmax(360px,44%) 1fr}
.auth-side{position:relative;display:flex;flex-direction:column;justify-content:space-between;gap:28px;padding:40px 44px;color:var(--n-200);background:radial-gradient(900px 500px at 0% 0%,#2563eb55,transparent 60%),radial-gradient(700px 500px at 100% 100%,#0d948855,transparent 60%),linear-gradient(160deg,var(--n-900),var(--n-800));overflow:hidden}
.auth-side::after{content:'';position:absolute;right:-120px;bottom:-120px;width:380px;height:380px;border-radius:50%;border:60px solid rgba(255,255,255,.04)}
.auth-brand{display:flex;align-items:center;gap:14px}.auth-brand b{display:block;font-size:20px;color:#fff;letter-spacing:.01em}.auth-brand small{color:var(--n-400)}
.auth-brand .brand-mark,.auth-mobile-brand .brand-mark{width:48px;height:48px;border-radius:14px;background:linear-gradient(135deg,var(--blue-500),var(--blue-500));color:#fff;display:grid;place-items:center;box-shadow:0 10px 30px rgba(37,99,235,.45)}
.auth-brand .brand-mark svg,.auth-mobile-brand .brand-mark svg{width:24px;height:24px}
.auth-claim h2{font-size:28px;line-height:1.2;color:#fff;margin:0 0 20px;font-weight:800;letter-spacing:-.01em}
.auth-claim ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:12px}
.auth-claim li{display:flex;align-items:center;gap:10px;color:var(--n-300);font-size:15px}.auth-claim li svg{width:20px;height:20px;color:var(--blue-400);flex:none}
.auth-foot{display:flex;justify-content:space-between;font-size:12px;color:var(--n-500);position:relative;z-index:1}
.auth-main{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:40px 24px;background:var(--n-50);gap:18px}
.auth-steps{display:flex;gap:6px;font-size:12px;font-weight:700;color:var(--n-400);letter-spacing:.02em}
.auth-steps span{padding:4px 10px;border-radius:999px;background:var(--n-200)}.auth-steps span.on{background:var(--blue-500);color:#fff}.auth-steps span.done{background:var(--green-line);color:var(--green)}
.auth-form{width:min(400px,100%);display:flex;flex-direction:column;gap:14px;background:#fff;border:1px solid var(--n-200);border-radius:18px;padding:28px;box-shadow:0 20px 50px rgba(15,23,42,.08)}
.auth-form h1{margin:0;font-size:26px;font-weight:800;color:var(--n-900)}
.auth-sub{margin:-8px 0 4px;color:var(--n-500);font-size:13px}
.auth-in{position:relative;display:flex;align-items:center}
.auth-in>svg{position:absolute;left:13px;width:18px;height:18px;color:var(--n-400);pointer-events:none}
.auth-in .input{padding-left:40px;height:48px;font-size:15px;width:100%;border-radius:12px}
.auth-eye{position:absolute;right:6px;width:38px;height:38px;border:0;background:transparent;border-radius:10px;display:grid;place-items:center;color:var(--n-500);cursor:pointer}.auth-eye:hover{background:var(--n-100)}.auth-eye svg{width:18px;height:18px}
.auth-form .gate-go{height:50px;font-size:15px;border-radius:12px;justify-content:center}
.auth-note{margin:0;color:var(--n-400);font-size:12px;text-align:center}
.auth-mobile-brand{display:none;align-items:center;gap:10px;font-size:17px}
.auth-ops{width:min(560px,100%)}
.auth-ops .login-users{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:8px;max-height:min(52vh,460px);overflow:auto;padding:2px}
.auth-ops .login-user{border-radius:12px;padding:10px 12px;min-height:58px}
@media (max-width:860px){
  .auth{grid-template-columns:1fr}
  .auth-side{display:none}
  .auth-main{justify-content:flex-start;padding:24px 16px;min-height:100vh;background:linear-gradient(180deg,var(--n-900) 0,var(--n-800) 180px,var(--n-50) 180px)}
  .auth-steps span{background:rgba(255,255,255,.12);color:var(--n-300)}.auth-steps span.on{background:var(--blue-500);color:#fff}.auth-steps span.done{background:rgba(22,163,74,.25);color:var(--green-line)}
  .auth-mobile-brand{display:flex}
  .auth-form{padding:22px 18px;border-radius:16px}
  .auth-ops .login-users{grid-template-columns:1fr 1fr;max-height:none}
}
@media (max-width:400px){.auth-ops .login-users{grid-template-columns:1fr}}
@media (min-width:600px) and (max-width:860px){.auth-main{justify-content:center;background:radial-gradient(700px 500px at 0% 0%,#2563eb44,transparent 60%),linear-gradient(160deg,var(--n-900),var(--n-800))}}
/* ===== V240: Clienti e fornitori, Scadenziario compatti su tablet verticale e telefono ===== */
@media (max-width:899px){
  /* riquadri dei totali più piccoli */
  .page .kpi-row{gap:8px!important}
  .page .kpi-row .kpi{padding:10px 12px!important;min-height:0!important}
  .page .kpi-row .kpi-ic{width:34px;height:34px}
  .page .kpi-row .kpi-value{font-size:20px}
  .page .kpi-row .kpi-label{font-size:11px}
  .page .kpi-row .kpi-sub{font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  /* schede comuni */
  .cards-clients .table tbody,.cards-sched .table tbody{display:grid!important;grid-template-columns:minmax(0,1fr);gap:8px;padding:8px}
  .cards-clients .table tr:not(.empty-row),.cards-sched .table tr:not(.empty-row){display:grid!important;gap:4px 10px;align-items:center;padding:10px 12px!important;border:1px solid var(--line)!important;border-radius:12px;background:#fff;box-shadow:0 1px 2px rgba(15,23,42,.05)}
  .cards-clients td[data-label]::before,.cards-sched td[data-label]::before{display:none!important}
  .cards-clients .table td,.cards-sched .table td{padding:0!important}
  .cards-clients td .cell-2,.cards-sched td .cell-2{display:flex!important;flex-direction:row!important;align-items:baseline;gap:6px;min-width:0}
  .cards-clients td .cell-2>*,.cards-sched td .cell-2>*{display:inline-block!important;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}
  .cards-clients td .cell-2>small,.cards-sched td .cell-2>small{flex:1 1 0;color:var(--muted)}
  .cards-clients td.col-actions,.cards-sched td.col-actions{display:flex!important;gap:2px;justify-content:flex-end}
  .cards-clients td.col-actions .action-btn,.cards-sched td.col-actions .action-btn{width:34px;height:34px}
  /* clienti: nome e fatturato / telefono ed email / targhe e azioni */
  .cards-clients .table tr:not(.empty-row){grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"name revenue" "contacts role" "vehicles actions"}
  .cards-clients td[data-label="Cliente"]{grid-area:name!important}
  .cards-clients td[data-label="Cliente"] strong{font-size:15px}
  .cards-clients td[data-label="Fatturato"]{grid-area:revenue!important;justify-self:end;font-weight:800}
  .cards-clients td[data-label="Contatti"]{grid-area:contacts!important}
  .cards-clients td[data-label="Contatti"] strong{font-weight:600;font-size:13px}
  .cards-clients td[data-label="Ruolo"]{grid-area:role!important;justify-self:end}
  .cards-clients td[data-label="Veicoli"]{grid-area:vehicles!important;display:block!important;min-width:0}
  .cards-clients td[data-label="Veicoli"] .plates{display:flex;gap:4px;flex-wrap:nowrap;overflow:hidden}
  .cards-clients td.col-actions{grid-area:actions!important}
  .cards-clients td[data-label="Cod."],.cards-clients td[data-label="Tipo"],.cards-clients td[data-label="Città"],.cards-clients td[data-label="Ultimo lavoro"]{display:none!important}
  .cards-clients td[data-label="Stato"]{display:none!important}
  .cards-clients tr:has(td[data-label="Stato"] .tone-gray) {opacity:.65}
  /* scadenziario: fornitore e importo / scadenza e stato / tipo, documento e azioni */
  .cards-sched .table tr:not(.empty-row){grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"supplier amount" "due status" "doc actions"}
  .cards-sched .table tr.row-late{box-shadow:inset 4px 0 0 var(--red),0 1px 2px rgba(15,23,42,.05)!important;border-color:var(--red-line)!important}
  .cards-sched td[data-label="Fornitore"]{grid-area:supplier!important;font-weight:700;font-size:15px;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .cards-sched td[data-label="Importo"]{grid-area:amount!important;justify-self:end;font-weight:800;font-size:15px}
  .cards-sched td[data-label="Scadenza"]{grid-area:due!important}
  .cards-sched td[data-label="Scadenza"] strong{font-size:13px}
  .cards-sched td[data-label="Stato"]{grid-area:status!important;justify-self:end}
  .cards-sched td[data-label="Tipo"]{grid-area:doc!important;display:flex!important;align-items:center;gap:6px;min-width:0}
  .cards-sched td[data-label="Documento / descrizione"]{display:none!important}
  .cards-sched td.col-actions{grid-area:actions!important}
}
@media (min-width:700px) and (max-width:899px){
  .cards-clients .table tbody,.cards-sched .table tbody{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:480px){
  .tb-compact:has([data-act="clearFilters"])>.toolbar-fill,.tb-compact:has(.tb-actions>:nth-child(3))>.toolbar-fill{flex:1 1 calc(100% - 56px)!important;min-width:0!important}
  .tb-compact>.tb-filters{flex:0 0 auto}
  .page .kpi-row .kpi-value{font-size:clamp(15px,4.6vw,19px);white-space:nowrap}
  .page .kpi-row .kpi{padding:9px 10px!important;gap:8px}
  .page .kpi-row .kpi-ic{width:30px;height:30px}
}
.auth-claim li span{line-height:1.35}.auth-claim li b{color:#fff;font-weight:700}

/* ===== V241 · Veicoli e Scadenze veicoli a schede orizzontali, contatori compatti ===== */
@media (max-width:899px){
  /* contatori: in fila finche' ci stanno, piccoli */
  .page .kpi-row{grid-template-columns:repeat(auto-fit,minmax(150px,1fr))!important;gap:8px}
  .page .kpi-row.kpi-mini{grid-template-columns:repeat(auto-fit,minmax(132px,1fr))!important;gap:6px}
  .page .kpi-row.kpi-mini>.kpi-btn{min-width:0;display:block}
  .page .kpi-row.kpi-mini .kpi{padding:7px 10px!important;gap:8px;min-height:0;height:100%}
  .page .kpi-row.kpi-mini .kpi-ic{width:28px!important;height:28px!important;flex:0 0 28px!important}
  .page .kpi-row.kpi-mini .kpi-ic svg{width:15px;height:15px}
  .page .kpi-row.kpi-mini .kpi-body{min-width:0}
  .page .kpi-row.kpi-mini .kpi-label{font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .page .kpi-row.kpi-mini .kpi-value{font-size:17px!important;line-height:1.15}
  .page .kpi-row.kpi-mini .kpi-sub{font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

  /* schede: una per riga */
  .cards-veh .table tbody,.cards-vdl .table tbody{display:grid!important;grid-template-columns:minmax(0,1fr)!important;gap:6px;padding:6px}
  .cards-veh .table tr:not(.empty-row),.cards-vdl .table tr:not(.empty-row){display:grid!important;gap:4px 12px;align-items:center;padding:8px 10px!important;border:1px solid var(--line)!important;border-radius:12px;background:#fff;box-shadow:0 1px 2px rgba(15,23,42,.05)}
  .cards-veh .table tr:not(.empty-row){cursor:pointer}
  .cards-vdl .table tr.row-late{border-left:4px solid var(--red,var(--red-500))!important}
  .cards-veh td[data-label]::before,.cards-vdl td[data-label]::before{display:none!important}
  .cards-veh .table td,.cards-vdl .table td{display:block!important;padding:0!important;border:0!important;min-width:0;text-align:left!important}
  .cards-veh .cell-2,.cards-vdl .cell-2{min-width:0}
  .cards-veh .cell-2>*,.cards-vdl .cell-2>*{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .cards-veh .col-actions,.cards-vdl .col-actions{display:flex!important;gap:2px;justify-content:flex-end;white-space:nowrap}
  .cards-veh .col-actions .icon-btn,.cards-vdl .col-actions .icon-btn{width:32px;height:32px}
  .cards-veh .table thead,.cards-vdl .table thead{display:none}

  /* Veicoli */
  .cards-veh .table td[data-label="Generazione"],.cards-veh .table td[data-label="Motorizzazione"],.cards-veh .table td[data-label="Ultimo tagliando"]{display:none!important}
  .cards-veh .table tr:not(.empty-row){grid-template-columns:auto minmax(0,1.4fr) minmax(0,1.2fr) auto auto auto auto;grid-template-areas:"plate veh owner year km rev act"}
  .cards-veh td[data-label="Targa"]{grid-column:auto!important;grid-area:plate!important}
  .cards-veh td[data-label="Veicolo"]{grid-area:veh!important}
  .cards-veh td[data-label="Proprietario"]{grid-area:owner!important}
  .cards-veh td[data-label="Anno"]{grid-area:year!important;font-size:12px;color:var(--muted)}
  .cards-veh td[data-label="Km"]{grid-area:km!important;font-size:12px;color:var(--muted);white-space:nowrap}
  .cards-veh td[data-label="Km"]::after{content:" km"}
  .cards-veh td[data-label="Revisione"]{grid-area:rev!important;font-size:12px;white-space:nowrap}
  .cards-veh .table td[data-label="Revisione"]::before{display:inline!important;content:"Rev. ";color:var(--muted);font-size:11px;font-weight:600}
  .cards-veh td.col-actions{grid-area:act!important}

  /* Scadenze veicoli */
  .cards-vdl .table tr:not(.empty-row){grid-template-columns:auto auto minmax(0,1.5fr) minmax(0,1fr) minmax(0,1fr) auto;grid-template-areas:"type due veh client state act"}
  .cards-vdl td[data-label="Tipo"]{grid-column:auto!important;grid-area:type!important}
  .cards-vdl td[data-label="Scadenza"]{grid-area:due!important;white-space:nowrap}
  .cards-vdl td[data-label="Veicolo"]{grid-area:veh!important}
  .cards-vdl td[data-label="Cliente"]{grid-area:client!important}
  .cards-vdl td[data-label="Avviso"]{grid-area:state!important}
  .cards-vdl td.col-actions{grid-area:act!important}
  .cards-vdl .cell-plate{display:flex;align-items:center;gap:8px;min-width:0}
  .cards-vdl .cell-plate>.cell-2{flex:1;min-width:0}
  .cards-vdl small{font-size:11px}
}
/* telefono: due righe compatte */
@media (max-width:599px){
  .page .kpi-row.kpi-mini{grid-template-columns:repeat(auto-fit,minmax(150px,1fr))!important}
  .cards-veh .table tr:not(.empty-row){grid-template-columns:auto minmax(0,1fr) auto auto;grid-template-areas:"plate veh veh act" "owner owner km rev"}
  .cards-veh td[data-label="Anno"]{display:none!important}
  .cards-vdl .table tr:not(.empty-row){grid-template-columns:auto minmax(0,1fr) auto;grid-template-areas:"veh veh act" "type due state" "client client client"}
  .cards-vdl td[data-label="Avviso"] .cell-2{text-align:right}
  .cards-vdl td[data-label="Scadenza"] .cell-2{display:flex;gap:6px;align-items:baseline}
  .cards-vdl td[data-label="Scadenza"] .cell-2>*{display:inline}
}
/* V241 · colonne allineate tra una scheda e l'altra */
@media (min-width:600px) and (max-width:899px){
  .cards-veh .table tr:not(.empty-row){grid-template-columns:104px minmax(0,1.3fr) minmax(0,1.1fr) 36px 92px 118px auto}
  .cards-vdl .table tr:not(.empty-row){grid-template-columns:88px 112px minmax(0,1.7fr) minmax(0,1fr) 112px auto;gap:4px 10px}
  .cards-vdl td[data-label="Scadenza"] small,.cards-vdl td[data-label="Avviso"] small{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block}
  .cards-vdl td[data-label="Scadenza"]{overflow:hidden}
  .cards-vdl .col-actions .icon-btn{width:30px;height:30px}
}
/* V241 · rifiniture: veicolo compatto (targa sopra, modello sotto) */
@media (max-width:899px){
  .cards-vdl .cell-plate{flex-direction:column;align-items:flex-start;gap:2px}
  .cards-vdl .cell-plate>.cell-2{width:100%}
  .cards-vdl .cell-plate>.cell-2 strong{font-size:12px}
  .cards-vdl .cell-plate>.cell-2 small{display:none}
  .cards-vdl td[data-label="Tipo"] .badge{font-size:11px;padding:2px 8px}
  .tb-compact [data-act="vdSettings"]{flex:0 0 auto!important}
}
@media (min-width:600px) and (max-width:899px){
  .cards-vdl .table tr:not(.empty-row){grid-template-columns:84px 118px minmax(0,1fr) minmax(0,1.2fr) 124px auto}
}
@media (max-width:599px){
  .page .kpi-row.kpi-mini{grid-template-columns:repeat(4,minmax(0,1fr))!important;gap:5px}
  .page .kpi-row.kpi-mini .kpi{padding:6px 7px!important}
  .page .kpi-row.kpi-mini .kpi-ic,.page .kpi-row.kpi-mini .kpi-sub{display:none!important}
  .page .kpi-row.kpi-mini .kpi-label{font-size:10px;white-space:normal;line-height:1.15;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;letter-spacing:.02em}
  .page .kpi-row.kpi-mini .kpi-value{font-size:15px!important;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .tb-compact [data-act="vdSettings"] span{display:none}
  .cards-vdl .table tr:not(.empty-row){grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"veh act" "due state" "client type";gap:6px 10px}
  .cards-vdl .cell-plate{flex-direction:row;align-items:center;gap:8px}
  .cards-vdl .cell-plate>.cell-2 strong{font-size:13px}
  .cards-vdl td[data-label="Scadenza"] .cell-2{display:block}
  .cards-vdl td[data-label="Scadenza"] .cell-2>*{display:block}
  .cards-vdl td[data-label="Avviso"]{justify-self:end;max-width:170px;overflow:hidden}
  .cards-vdl td[data-label="Avviso"] .cell-2{align-items:flex-end;text-align:right}
  .cards-vdl td[data-label="Tipo"]{justify-self:end}
}
@media (max-width:899px){ .page .kpi-row.kpi-mini{display:grid!important} .page .kpi-row.kpi-mini>*{flex:none!important;width:auto!important;min-width:0!important} }

/* ===== V242 · iPhone: zona notch dello stesso colore della barra in alto ===== */
html{background:#fff}
.topbar{padding-top:env(safe-area-inset-top,0px)!important;height:calc(var(--topbar-h) + env(safe-area-inset-top,0px))!important;box-sizing:border-box}
.app-shell{padding-left:env(safe-area-inset-left,0px);padding-right:env(safe-area-inset-right,0px)}
@media (max-width:899px){.sidebar{padding-top:env(safe-area-inset-top,0px)}}

/* ===== V242 · telefono: schede veicoli/scadenze piu' basse, toolbar su una riga ===== */
@media (max-width:599px){
  .tb-compact.tb-one:not(:has([data-act="clearFilters"]))>.toolbar-fill{flex:1 1 0!important;min-width:0!important}
  .tb-compact.tb-one:not(:has([data-act="clearFilters"])){flex-wrap:nowrap!important}
  .tb-compact [data-act="plateScan"] span{display:none}
  .tb-compact [data-act="plateScan"]{padding:0 10px!important}
  /* Veicoli: proprietario e telefono sulla stessa riga */
  .cards-veh td[data-label="Proprietario"] .cell-2{display:flex;gap:6px;align-items:baseline;min-width:0}
  .cards-veh td[data-label="Proprietario"] .cell-2>strong{flex:0 1 auto;min-width:0}
  .cards-veh td[data-label="Proprietario"] .cell-2>small{flex:0 0 auto}
  .cards-veh .table tr:not(.empty-row){gap:3px 10px;padding:7px 10px!important}
  /* Scadenze: 3 righe da una linea ciascuna */
  .cards-vdl .table tr:not(.empty-row){gap:3px 10px;padding:7px 10px!important}
  .cards-vdl td[data-label="Scadenza"] .cell-2{display:flex!important;gap:6px;align-items:baseline;min-width:0}
  .cards-vdl td[data-label="Scadenza"] .cell-2>strong{flex:0 0 auto;display:inline!important}
  .cards-vdl td[data-label="Scadenza"] .cell-2>small{flex:0 1 auto;min-width:0;display:block!important;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .cards-vdl td[data-label="Avviso"] .cell-2>small{display:none!important}
  .cards-vdl td[data-label="Cliente"] .cell-2{display:flex;gap:6px;align-items:baseline;min-width:0}
  .cards-vdl td[data-label="Cliente"] .cell-2>strong{flex:0 1 auto;min-width:0}
  .cards-vdl td[data-label="Cliente"] .cell-2>small{flex:0 0 auto}
  .cards-vdl .col-actions .icon-btn{width:30px;height:30px}
}
@media (max-width:899px){ .cards-veh td.col-actions,.cards-vdl td.col-actions{justify-self:end!important;margin-right:-4px} }
@media (max-width:899px){
  .cards-veh .table td.col-actions,.cards-vdl .table td.col-actions{display:flex!important;justify-content:flex-end;justify-self:end!important;width:auto!important}
  .cards-vdl .table td[data-label="Avviso"]{justify-self:end!important;text-align:right!important}
  .cards-vdl .table td[data-label="Avviso"] .cell-2{align-items:flex-end!important}
}
@media (max-width:599px){
  .cards-veh .table td[data-label="Proprietario"] .cell-2,.cards-vdl .table td[data-label="Scadenza"] .cell-2,.cards-vdl .table td[data-label="Cliente"] .cell-2{flex-direction:row!important;display:flex!important;align-items:baseline!important}
  .tb-compact .btn.icon-only[data-act="plateScan"]{font-size:0!important;gap:0!important}
  .tb-compact.tb-one [data-act="printPage"],.tb-compact.tb-one [data-act="print"]{display:none!important}
}

/* ===== V242 · tablet stretto (600-799): scheda su una "fascia" con dati impilati, niente accavallamenti ===== */
@media (min-width:600px) and (max-width:799px){
  .cards-veh .table tr:not(.empty-row){grid-template-columns:104px minmax(0,1fr) minmax(0,1fr) auto auto;grid-template-areas:"plate veh owner km act" "plate veh owner rev act";gap:2px 12px}
  .cards-veh td[data-label="Anno"]{display:none!important}
  .cards-veh td[data-label="Km"],.cards-veh td[data-label="Revisione"]{justify-self:end;text-align:right!important}
  .cards-vdl .table tr:not(.empty-row){grid-template-columns:118px minmax(0,1fr) minmax(0,1fr) auto auto;grid-template-areas:"type veh client state act" "due veh client state act";gap:3px 12px}
  .cards-vdl td[data-label="Tipo"]{align-self:end}
  .cards-vdl td[data-label="Scadenza"]{align-self:start}
  .cards-vdl td[data-label="Avviso"] .cell-2>small{display:none!important}
  .cards-vdl .table td.col-actions{display:grid!important;grid-template-columns:repeat(2,30px);gap:0 2px}
  .cards-vdl .cell-plate>.cell-2 strong{max-width:100%}
}
@media (min-width:600px) and (max-width:799px){
  .cards-veh .table tr:not(.empty-row){grid-template-columns:104px minmax(0,1fr) minmax(0,1fr) 112px 70px}
  .cards-vdl .table tr:not(.empty-row){grid-template-columns:118px minmax(0,1fr) minmax(0,1fr) 98px 64px}
}
@media (min-width:600px) and (max-width:899px){ .cards-veh .table td.col-actions{justify-self:end!important} }
@media (max-width:599px){
  .cards-veh .table td[data-label="Proprietario"] .cell-2,.cards-vdl .table td[data-label="Scadenza"] .cell-2,.cards-vdl .table td[data-label="Cliente"] .cell-2{display:block!important;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .cards-veh .table td[data-label="Proprietario"] .cell-2>*,.cards-vdl .table td[data-label="Scadenza"] .cell-2>*,.cards-vdl .table td[data-label="Cliente"] .cell-2>*{display:inline!important;margin:0 6px 0 0!important;overflow:visible!important}
  .cards-veh .table td[data-label="Proprietario"] .cell-2>small{display:none!important}
  .cards-vdl .table tr:not(.empty-row){grid-template-columns:minmax(0,1fr) auto}
}
@media (max-width:599px){ .cards-vdl .table td[data-label="Cliente"] .cell-2>*,.cards-vdl .table td[data-label="Scadenza"] .cell-2>*{white-space:nowrap!important} }

/* ===== V242 · scheda cliente ===== */
.cd{gap:14px}
.cd-head{display:flex;align-items:center;gap:14px;padding:12px 14px;border:1px solid color-mix(in srgb,var(--c-party) 22%,#fff);border-radius:14px;background:linear-gradient(135deg,var(--c-party-bg),#fff 70%)}
.cd-avatar{width:48px;height:48px;flex:0 0 48px;border-radius:50%;display:grid;place-items:center;background:var(--c-party);color:#fff;font-weight:800;font-size:17px;letter-spacing:.03em}
.cd-avatar.biz{border-radius:12px;background:var(--violet)}
.cd-id{flex:1;min-width:0}
.cd-name{font-size:17px;font-weight:800;color:#0f1b2d;line-height:1.2;overflow:hidden;text-overflow:ellipsis}
.cd-tags{display:flex;flex-wrap:wrap;gap:5px;margin-top:5px;align-items:center}
.cd-quick{display:flex;gap:6px;flex:0 0 auto}
.cd-quick .btn{width:38px;height:38px;padding:0;justify-content:center;background:#fff}
.cd-quick .cd-wa{color:var(--green-500)}
.cd-info{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.cd-box{--k:var(--c-party);--kb:var(--c-party-bg);border:1px solid color-mix(in srgb,var(--k) 20%,#fff);border-left:4px solid var(--k);border-radius:12px;padding:9px 12px;background:linear-gradient(160deg,var(--kb),#fff 75%);min-width:0}
.cd-box.addr{--k:var(--c-time);--kb:var(--c-time-bg)}
.cd-box.fisc{--k:var(--c-money);--kb:var(--c-money-bg)}
.cd-box-h{display:flex;align-items:center;gap:6px;font-size:11px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--k);margin-bottom:4px}
.cd-box-h svg{width:14px;height:14px}
.cd-box b{font-size:13px;color:#0f1b2d;overflow-wrap:anywhere}
.cd-sub{font-size:12px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.cd-fis{display:flex;gap:6px;align-items:baseline;min-width:0}.cd-fis small{color:var(--muted);font-size:11px;font-weight:700;flex:0 0 auto}.cd-fis b{font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.cd-h{display:flex;align-items:center;gap:7px;margin:4px 0 -4px;font-size:13px}
.cd-h svg{width:16px;height:16px;color:var(--c-party)}
.cd-h small{background:var(--c-party-bg);color:var(--c-party);border-radius:20px;padding:1px 8px;font-size:11px;font-weight:700}
.cd-vehs{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:10px}
.cd-veh{border:1px solid var(--line);border-radius:12px;padding:10px 12px;background:#fff;box-shadow:0 1px 2px rgba(15,23,42,.05);cursor:pointer;display:flex;flex-direction:column;gap:3px;transition:border-color .15s,box-shadow .15s;min-width:0}
.cd-veh:hover{border-color:color-mix(in srgb,var(--c-party) 45%,#fff);box-shadow:0 4px 12px rgba(37,99,235,.10)}
.cd-veh-top{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:3px}
.cd-open{display:inline-flex;align-items:center;gap:4px;font-size:11px;font-weight:700;color:var(--c-lines);background:var(--c-lines-bg);border-radius:20px;padding:2px 8px;white-space:nowrap}
.cd-open svg{width:12px;height:12px}
.cd-veh-name{font-weight:800;font-size:13px;color:#0f1b2d;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cd-veh-foot{display:flex;align-items:center;justify-content:space-between;gap:6px;margin-top:5px;padding-top:6px;border-top:1px dashed var(--line)}
.cd-rev{display:inline-flex;align-items:center;gap:5px;font-size:12px;font-weight:600;color:var(--muted)}
.cd-rev svg{width:13px;height:13px}
.cd-rev.ok{color:var(--green)}.cd-rev.soon{color:var(--orange)}.cd-rev.late{color:var(--red-500)}
@media (max-width:699px){
  .cd-info{grid-template-columns:minmax(0,1fr)}
  .cd-head{flex-wrap:wrap;padding:10px 12px;gap:10px}
  .cd-avatar{width:42px;height:42px;flex-basis:42px;font-size:15px}
  .cd-quick{width:100%}
  .cd-quick .btn{flex:1;width:auto}
  .cd-vehs{grid-template-columns:minmax(0,1fr)}
  .cd-box{display:grid;grid-template-columns:96px minmax(0,1fr);column-gap:8px;align-items:baseline;padding:7px 10px}
  .cd-box-h{margin:0;grid-row:span 2}
  .cd .kpi-row.kpi-mini{grid-template-columns:repeat(3,minmax(0,1fr))!important}
  .cd-hist .history-row{display:grid!important;grid-template-columns:auto auto minmax(0,1fr) auto;grid-template-areas:"code date plate status" "title title title amount";gap:4px 8px;align-items:center;text-align:left}
  .cd-hist .history-row>.code-chip{grid-area:code}
  .cd-hist .history-row>span:nth-child(2){grid-area:date;font-size:12px;color:var(--muted)}
  .cd-hist .history-row>.plate{grid-area:plate;justify-self:start}
  .cd-hist .history-row>.grow{grid-area:title;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-weight:600}
  .cd-hist .history-row>.badge,.cd-hist .history-row>.status{grid-area:status;justify-self:end}
  .cd-hist .history-row>b{grid-area:amount;justify-self:end}
}
.cd .kpi-row.kpi-mini{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:8px!important}
.cd .kpi-row.kpi-mini>*{flex:none!important;width:auto!important;min-width:0!important}
@media (max-width:699px){
  .cd .kpi-row.kpi-mini{gap:6px!important}
  .cd .kpi-row.kpi-mini .kpi{padding:7px 9px!important;gap:6px}
  .cd .kpi-row.kpi-mini .kpi-ic{display:none!important}
  .cd .kpi-row.kpi-mini .kpi-label{font-size:10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .cd .kpi-row.kpi-mini .kpi-value{font-size:15px!important;white-space:nowrap}
}

/* ===== V243 · anteprima veicolo come la scheda cliente ===== */
.vd-head{border-color:color-mix(in srgb,var(--blue-700) 22%,#fff);background:linear-gradient(135deg,var(--blue-bg),#fff 70%)}
.vd-plate .plate.plate-lg{height:40px}.vd-plate .plate.plate-lg .plate-txt{font-size:20px;letter-spacing:.06em;padding:0 14px}
.cd-box .cd-fis small{min-width:62px}
.cd-box .cd-fis{margin-top:1px}
.cd-box b.cd-rev{font-size:12px;display:inline}
.cd-link{cursor:pointer;transition:box-shadow .15s,border-color .15s}
.cd-link:hover{box-shadow:0 4px 12px rgba(37,99,235,.12)}
.cd-link .cd-box-h svg:last-child{margin-left:auto}
.cd .kpi-row.kpi-mini .kpi-value{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
@media (max-width:699px){
  .vd-head .vd-plate{width:100%;display:flex;justify-content:center}
  .vd-plate .plate.plate-lg{height:46px}.vd-plate .plate.plate-lg .plate-txt{font-size:26px}
  .vd-head .cd-id{text-align:center}.vd-head .cd-tags{justify-content:center}
  .vd .cd-box{display:block;padding:8px 11px}
  .vd .cd-box-h{margin-bottom:4px}
  .vd-hist .history-row{grid-template-columns:auto auto minmax(0,1fr);grid-template-areas:"code date status" "title title amount"}
}
/* X di chiusura anteprime piu' evidente */
.modal-head [data-act="closeModal"]{width:40px;height:40px;flex:0 0 40px;border-radius:50%;background:var(--n-100);border:1px solid var(--line-strong);color:#0f1b2d;display:grid;place-items:center;transition:background .15s,color .15s,border-color .15s}
.modal-head [data-act="closeModal"] svg{width:20px;height:20px;stroke-width:2.6}
.modal-head [data-act="closeModal"]:hover,.modal-head [data-act="closeModal"]:focus-visible{background:var(--red-bg);border-color:var(--red-line);color:var(--red)}

/* ===== V244 · Magazzino articoli e Articoli a schede orizzontali ===== */
@media (max-width:899px){
  .cards-wh .table tbody,.cards-art .table tbody{display:grid!important;grid-template-columns:minmax(0,1fr)!important;gap:6px;padding:6px}
  .cards-wh .table tr:not(.empty-row):not(.sub-row),.cards-art .table tr:not(.empty-row){display:grid!important;gap:3px 12px;align-items:center;padding:8px 10px!important;border:1px solid var(--line)!important;border-radius:12px;background:#fff;box-shadow:0 1px 2px rgba(15,23,42,.05);cursor:pointer}
  .cards-wh .table td[data-label]::before,.cards-art .table td[data-label]::before{display:none!important}
  .cards-wh .table>tbody>tr>td,.cards-art .table>tbody>tr>td{display:block!important;padding:0!important;border:0!important;min-width:0;text-align:left!important}
  .cards-wh .table thead,.cards-art .table thead{display:none}
  .cards-wh .cell-2,.cards-art .cell-2{min-width:0}
  .cards-wh .cell-2>*,.cards-art .cell-2>*{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .cards-wh .table td.col-actions,.cards-art .table td.col-actions{display:flex!important;gap:0;justify-content:flex-end;justify-self:end!important;white-space:nowrap}
  .cards-wh .col-actions .action-btn,.cards-art .col-actions .action-btn{width:30px;height:30px}
  .cards-wh .table td[data-label="Descrizione"] strong,.cards-art .table td[data-label="Descrizione"] .cell-2 strong{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:13px}
  .cards-wh .stock-pill,.cards-art .stock-pill{white-space:nowrap}
  .cards-wh .mv-btns{display:flex;gap:4px}
  /* Magazzino: nascosti nella scheda */
  .cards-wh .table td[data-label="Categoria"],.cards-wh .table td[data-label="Fornitore"],.cards-wh .table td[data-label="Storico"],.cards-wh .table td[data-label="Minimo"]{display:none!important}
  .cards-wh .table tr:not(.empty-row):not(.sub-row){grid-template-columns:120px minmax(0,1fr) 84px 84px 96px auto auto;grid-template-areas:"code desc cost sell value stock mv act" ;grid-template-columns:118px minmax(0,1fr) 80px 80px 92px 70px auto auto}
  .cards-wh .table td[data-label="Articolo"]{grid-column:auto!important;grid-area:code!important}
  .cards-wh .table td[data-label="Descrizione"]{grid-area:desc!important}
  .cards-wh .table td[data-label="Costo unit."]{grid-area:cost!important;font-size:12px;color:var(--muted);text-align:right!important}
  .cards-wh .table td[data-label="Vendita"]{grid-area:sell!important;font-size:12px;text-align:right!important}
  .cards-wh .table td[data-label="Valore"]{grid-area:value!important;text-align:right!important;white-space:nowrap}
  .cards-wh .table td[data-label="Giacenza"]{grid-area:stock!important;justify-self:end}
  .cards-wh .table td[data-label="Mov."]{grid-area:mv!important}
  .cards-wh td.col-actions{grid-area:act!important}
  .cards-wh .table td[data-label="Costo unit."]::after{content:" costo";font-size:11px;color:var(--muted)}
  .cards-wh .table td[data-label="Vendita"]::after{content:" vend.";font-size:11px;color:var(--muted)}
  .cards-wh .table tr.sub-row{display:block!important;margin-top:-4px}
  .cards-wh .table tr.sub-row>td{display:block!important;padding:0!important}
  .cards-wh .table tr.row-open{border-color:var(--c-party)!important}
  /* Articoli */
  .cards-art .table td[data-label="Origine"],.cards-art .table td[data-label="Fornitore"],.cards-art .table td[data-label="Caricato"],.cards-art .table td[data-label="Ultimo acquisto"]{display:none!important}
  .cards-art .table tr:not(.empty-row){grid-template-columns:118px minmax(0,1fr) 80px 80px 108px minmax(0,150px) auto;grid-template-areas:"code desc buy sell stock uses act"}
  .cards-art .table td[data-label="Articolo"]{grid-column:auto!important;grid-area:code!important}
  .cards-art .table td[data-label="Descrizione"]{grid-area:desc!important}
  .cards-art .table td[data-label="Acquisto"]{grid-area:buy!important;font-size:12px;color:var(--muted);text-align:right!important}
  .cards-art .table td[data-label="Vendita"]{grid-area:sell!important;text-align:right!important;font-weight:700}
  .cards-art .table td[data-label="Scorta"]{grid-area:stock!important;justify-self:end;white-space:nowrap}
  .cards-art .table td[data-label="Usato nei lavori"]{grid-area:uses!important;display:block!important;overflow:hidden}
  .cards-art .table td[data-label="Usato nei lavori"] .pu-chips{flex-wrap:nowrap;overflow:hidden}
  .cards-art td.col-actions{grid-area:act!important}
  .cards-art .table td[data-label="Acquisto"]::after{content:" acq.";font-size:11px;color:var(--muted)}
  .cards-art .table td[data-label="Vendita"]::after{content:" vend.";font-size:11px;color:var(--muted);font-weight:400}
}
/* tablet stretto 600-799: due righe nella stessa fascia */
@media (min-width:600px) and (max-width:799px){
  .cards-wh .table tr:not(.empty-row):not(.sub-row){grid-template-columns:118px minmax(0,1fr) 96px auto auto;grid-template-areas:"code desc value stock act" "code desc sell mv act"}
  .cards-wh .table td[data-label="Costo unit."]{display:none!important}
  .cards-wh .table td[data-label="Mov."]{justify-self:end}
  .cards-art .table tr:not(.empty-row){grid-template-columns:118px minmax(0,1fr) 90px auto auto;grid-template-areas:"code desc sell stock act" "code desc buy stock act"}
  .cards-art .table td[data-label="Usato nei lavori"]{display:none!important}
}
/* telefono */
@media (max-width:599px){
  .cards-wh .table tr:not(.empty-row):not(.sub-row){grid-template-columns:minmax(0,1fr) auto auto;grid-template-areas:"desc value stock" "code mv act";gap:4px 10px;padding:7px 10px!important}
  .cards-wh .table td[data-label="Costo unit."],.cards-wh .table td[data-label="Vendita"]{display:none!important}
  .cards-wh .table td[data-label="Articolo"] .cell-2,.cards-art .table td[data-label="Articolo"] .cell-2{display:block!important;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .cards-wh .table td[data-label="Articolo"] .cell-2>*,.cards-art .table td[data-label="Articolo"] .cell-2>*{display:inline!important;margin-right:6px}
  .cards-wh .table td[data-label="Valore"]{font-size:12px}
  .cards-wh .table td[data-label="Mov."]{justify-self:end}
  .cards-art .table tr:not(.empty-row){grid-template-columns:minmax(0,1fr) auto auto;grid-template-areas:"desc sell stock" "code buy act";gap:4px 10px;padding:7px 10px!important}
  .cards-art .table td[data-label="Usato nei lavori"]{display:none!important}
  .cards-art .table td[data-label="Scorta"] small{display:none}
  .cards-art .table td[data-label="Descrizione"] .cell-2{display:block!important;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .cards-art .table td[data-label="Descrizione"] .cell-2>*{display:inline!important;margin-right:6px}
  /* barra: pulsanti solo icona */
  .tb-compact.tb-icons .tb-actions .btn>span{display:none}
  .tb-compact.tb-icons .tb-actions .btn{padding:0 11px!important;min-width:40px;justify-content:center}
}

@media (max-width:899px){
  .cards-wh .table td,.cards-art .table td{white-space:nowrap}
  .cards-wh .table td[data-label="Descrizione"],.cards-art .table td[data-label="Descrizione"]{white-space:normal}
  .tb-compact.tb-icons .tb-actions .btn:not(.btn-success):not(.btn-primary)>span{display:none}
  .tb-compact.tb-icons .tb-actions .btn:not(.btn-success):not(.btn-primary){padding:0 11px!important;min-width:40px;justify-content:center}
  .tb-compact.tb-icons>.toolbar-fill{min-width:180px!important;flex:1 1 180px!important}
}
@media (min-width:800px) and (max-width:899px){
  .cards-art .table tr:not(.empty-row){grid-template-columns:104px minmax(0,1fr) 92px 92px 100px 124px auto;gap:3px 10px}
  .cards-art .table td[data-label="Usato nei lavori"] .pu-chip:nth-child(n+3){display:none}
  .cards-wh .table tr:not(.empty-row):not(.sub-row){grid-template-columns:104px minmax(0,1fr) 92px 92px 92px 64px auto auto;gap:3px 10px}
}
@media (max-width:599px){ .cards-art .table td[data-label="Descrizione"] .cell-2>small{display:none!important} }

/* ===== V245 · Scheda articolo: prezzi a riquadri, liste a schede su mobile ===== */
.pp-tiles{display:grid!important;grid-template-columns:repeat(5,minmax(0,1fr));gap:0;padding:0!important;overflow:hidden}
.pp-tile{display:flex;flex-direction:column;gap:2px;padding:11px 14px;border-right:1px solid var(--line);min-width:0}
.pp-tile:last-child{border-right:0}
.pp-tile small{font-size:11px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--muted)}
.pp-tile small i{font-style:normal;font-weight:600;text-transform:none;letter-spacing:0;opacity:.85}
.pp-tile b{font-size:17px;color:#0f1b2d;white-space:nowrap}
.pp-tile span{font-size:11px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pp-tile.hl{background:linear-gradient(160deg,var(--orange-line),var(--orange-bg));box-shadow:inset 0 3px 0 var(--orange-500)}
.pp-tile.hl b{color:var(--orange-700)}
.pp-tile.sell{background:linear-gradient(160deg,var(--c-data-bg),#fff)}
.pp-tile.sell b{color:var(--green)}
@media (max-width:899px){
  .pp-tiles{grid-template-columns:repeat(3,minmax(0,1fr))}
  .pp-tile{border-bottom:1px solid var(--line)}
  .pp-tile:nth-child(3){border-right:0}
  .pp-tile:first-child{grid-column:1/-1;flex-direction:row;align-items:baseline;gap:8px;border-right:0}
  .pp-tile:first-child span{flex:1;text-align:right}
  .pp-tile:nth-child(2),.pp-tile:nth-child(3){border-bottom:1px solid var(--line)}
  .pp-tiles .pp-tile:nth-child(4){grid-column:1/2}.pp-tiles .pp-tile:nth-child(5){grid-column:2/-1}
  .pp-tiles{grid-template-columns:repeat(2,minmax(0,1fr))}
  .pp-tile:nth-child(2){border-right:1px solid var(--line)}
  .pp-tile:nth-child(3){border-right:0}
  .pp-tile:nth-child(4){border-right:1px solid var(--line);border-bottom:0}.pp-tile:nth-child(5){border-bottom:0;grid-column:auto!important}
  .pp-tile b{font-size:15px}
  .part-page .ps-head .page-actions{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;width:100%}
  .part-page .ps-head .page-actions .btn{justify-content:center;white-space:nowrap;padding:0 8px}
  .part-page .ps-tabs{display:grid!important;grid-template-columns:repeat(4,minmax(0,1fr));gap:4px;overflow:visible!important}
  .part-page .ps-tabs .seg-btn{display:flex;flex-direction:column;align-items:center;gap:2px;padding:6px 4px!important;min-width:0;font-size:11px;line-height:1.15;white-space:normal;text-align:center;position:relative}
  .part-page .ps-tabs .seg-btn>span:not(.seg-count){display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
  .part-page .ps-tabs .seg-count{position:absolute;top:2px;right:4px;font-size:11px;min-width:16px;height:16px;line-height:16px;padding:0 4px}
  .part-page .ps-sum{display:flex;flex-wrap:wrap;gap:6px}
  .part-page .ps-sum>span{padding:4px 9px!important;font-size:12px}
  .part-page .ps-two{display:flex!important;flex-direction:column;gap:14px}
  .part-page .ps-tabs-card{padding:10px!important}
}
/* liste: una scheda per riga (come i lavori) */
@media (max-width:899px){ /* V260: a schede solo sotto i 900 px (sopra è sempre computer) */
  .part-page .table-wrap{overflow:visible!important;border:0!important}
  .part-page .pp-table{display:block;min-width:0!important;width:100%!important}
  .part-page .pp-table thead{display:none}
  .part-page .pp-table tbody{display:grid;grid-template-columns:minmax(0,1fr);gap:7px}
  .part-page .pp-table tr{display:grid;gap:3px 10px;align-items:center;padding:9px 11px;border:1px solid var(--line);border-radius:12px;background:#fff;box-shadow:0 1px 2px rgba(15,23,42,.05)}
  .part-page .pp-table td{display:block;padding:0!important;border:0!important;min-width:0;text-align:left!important;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;background:none!important}
  .part-page .pp-table td.lbl::before,.part-page .pp-table td[data-l]::before{content:attr(data-l);display:block;font-size:10px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--muted)}
  .part-page .pp-table tr.pp-link{cursor:pointer}
  /* utilizzi */
  .pp-uses tr{grid-template-columns:auto auto minmax(0,1fr) auto;grid-template-areas:"a c . h" "d d d g" "b e f f"}
  .pp-uses td:nth-child(1){grid-area:a}.pp-uses td:nth-child(2){grid-area:b;font-size:12px;color:var(--muted)}
  .pp-uses td:nth-child(3){grid-area:c}.pp-uses td:nth-child(4){grid-area:d;font-weight:700}
  .pp-uses td:nth-child(5){grid-area:e;font-size:12px}.pp-uses td:nth-child(5)::before{content:"Q.tà ";color:var(--muted)}
  .pp-uses td:nth-child(6){grid-area:f;font-size:12px;justify-self:end}.pp-uses td:nth-child(6)::before{content:"cad. ";color:var(--muted)}
  .pp-uses td:nth-child(7){grid-area:g;justify-self:end;font-size:13px}
  .pp-uses td:nth-child(8){grid-area:h;justify-self:end}
  /* acquisti */
  .pp-buys tr{grid-template-columns:repeat(3,minmax(0,1fr));grid-template-areas:"b b a" "c c j" "d e f" "g h i"}
  .pp-buys td:nth-child(1){grid-area:a;justify-self:end;font-size:12px;color:var(--muted)}
  .pp-buys td:nth-child(2){grid-area:b}.pp-buys td:nth-child(3){grid-area:c;font-weight:700}
  .pp-buys td:nth-child(10){grid-area:j;justify-self:end;font-weight:800;font-size:13px}
  .pp-buys td:nth-child(n+4):nth-child(-n+9){font-size:12px;padding:4px 6px!important;border-radius:8px;background:var(--blue-bg)!important}
  .pp-buys td:nth-child(4){grid-area:d}.pp-buys td:nth-child(5){grid-area:e}.pp-buys td:nth-child(6){grid-area:f}
  .pp-buys td:nth-child(7){grid-area:g;background:var(--orange-line)!important}.pp-buys td:nth-child(8){grid-area:h}.pp-buys td:nth-child(9){grid-area:i}
  .pp-buys td:nth-child(4)::before{content:"Q.tà"}.pp-buys td:nth-child(5)::before{content:"Listino s/IVA"}.pp-buys td:nth-child(6)::before{content:"Sconto"}
  .pp-buys td:nth-child(7)::before{content:"Scontato s/IVA"}.pp-buys td:nth-child(8)::before{content:"IVA"}.pp-buys td:nth-child(9)::before{content:"Listino IVA inc."}
  .pp-buys td:nth-child(n+4):nth-child(-n+9)::before,.pp-pdoc td:nth-child(4)::before,.pp-plog td:nth-child(3)::before,.pp-plog td:nth-child(4)::before,.pp-moves td:nth-child(4)::before{display:block;font-size:10px;font-weight:700;letter-spacing:.03em;text-transform:uppercase;color:var(--muted)}
  /* variazioni: per documento */
  .pp-pdoc tr{grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"b a" "c d" "e e"}
  .pp-pdoc td:nth-child(1){grid-area:a;font-size:12px;color:var(--muted);justify-self:end}
  .pp-pdoc td:nth-child(2){grid-area:b;font-weight:700}.pp-pdoc td:nth-child(3){grid-area:c;font-size:12px}
  .pp-pdoc td:nth-child(4){grid-area:d;justify-self:end;text-align:right!important}.pp-pdoc td:nth-child(4)::before{content:"Scontato s/IVA"}
  .pp-pdoc td:nth-child(5){grid-area:e;font-size:12px}
  /* variazioni: modifiche */
  .pp-plog tr{grid-template-columns:minmax(0,1fr) auto auto;grid-template-areas:"a a b" "c d e" "f f g"}
  .pp-plog td:nth-child(1){grid-area:a;font-size:12px}.pp-plog td:nth-child(2){grid-area:b;justify-self:end}
  .pp-plog td:nth-child(3){grid-area:c}.pp-plog td:nth-child(3)::before{content:"Da"}
  .pp-plog td:nth-child(4){grid-area:d}.pp-plog td:nth-child(4)::before{content:"A"}
  .pp-plog td:nth-child(5){grid-area:e;justify-self:end;align-self:end}
  .pp-plog td:nth-child(6){grid-area:f;font-size:12px;color:var(--muted)}.pp-plog td:nth-child(7){grid-area:g;font-size:12px;color:var(--muted);justify-self:end}
  /* movimenti */
  .pp-moves tr{grid-template-columns:auto auto minmax(0,1fr);grid-template-areas:"b c d" "e e e" "a a f"}
  .pp-moves td:nth-child(1){grid-area:a;font-size:12px;color:var(--muted)}
  .pp-moves td:nth-child(2){grid-area:b}.pp-moves td:nth-child(3){grid-area:c;font-size:15px}
  .pp-moves td:nth-child(4){grid-area:d;justify-self:end;text-align:right!important}.pp-moves td:nth-child(4)::before{content:"Giacenza dopo"}
  .pp-moves td:nth-child(5){grid-area:e;font-size:12px;white-space:normal}
  .pp-moves td:nth-child(6){grid-area:f;justify-self:end;font-size:12px;color:var(--muted)}
  .part-page .ps-head{flex-direction:column;align-items:stretch}
  .part-page .ps-id{gap:10px}
  .part-page .ps-id h2{font-size:17px}
}
@media (max-width:899px){
  .part-page .ps-head .page-actions.bal,.part-page .ps-head .page-actions{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:6px!important}
  .part-page .ps-head .page-actions>.btn{width:auto!important;flex:none!important;min-width:0}
  .part-page .ps-tabs .seg-btn>span:not(.seg-count){display:block!important;font-size:11px!important;max-width:none!important;width:auto!important;opacity:1!important;visibility:visible!important;position:static!important;clip:auto!important;height:auto!important;white-space:normal!important;overflow:hidden}
}
@media (max-width:899px){ .part-page .ps-tabs .seg-btn{height:auto!important;min-height:46px} .part-page .ps-tabs .seg-btn>*{flex:none!important} }
@media (min-width:700px) and (max-width:899px){
  .pp-buys tr{grid-template-columns:repeat(6,minmax(0,1fr));grid-template-areas:"b b c c a j" "d e f g h i"}
  .pp-uses tr{grid-template-columns:auto auto minmax(0,1fr) auto auto auto auto;grid-template-areas:"a c d b e f g h"}
  .pp-uses td:nth-child(n){align-self:center}
  .pp-moves tr{grid-template-columns:auto 50px minmax(0,1fr) auto 120px 110px;grid-template-areas:"b c e d a f"}
  .pp-moves td:nth-child(1){justify-self:end}
  .pp-tiles{grid-template-columns:1.2fr repeat(4,minmax(0,1fr))!important}
  .pp-tiles .pp-tile{grid-column:auto!important;border-bottom:0!important;border-right:1px solid var(--line)!important;flex-direction:column!important;align-items:flex-start!important}
  .pp-tiles .pp-tile:last-child{border-right:0!important}
  .pp-tile:first-child span{text-align:left!important}
}
/* V245 · icone magazzino piu' chiare */
.btn.btn-load{color:var(--green);border-color:var(--green-400);background:var(--green-bg)}.btn.btn-load:hover{background:var(--green-line)}
.btn.btn-unload{color:var(--orange);border-color:var(--orange-400);background:var(--orange-bg)}.btn.btn-unload:hover{background:var(--orange-line)}
.cards-wh .col-actions .action-btn[data-act="partDelete"],.cards-art .col-actions .action-btn[data-act="partDelete"]{color:var(--red-500)}
.cards-wh .col-actions .action-btn[data-act="openPart"],.cards-art .col-actions .action-btn[data-act="openPart"]{color:var(--c-party)}
.cards-wh .mv-btn.sq{width:30px;height:30px;font-size:17px;font-weight:800;border-radius:8px}
.cards-wh .mv-btn.in{background:var(--green-line);color:var(--green);border:1px solid var(--green-400)}
.cards-wh .mv-btn.out{background:var(--orange-line);color:var(--orange);border:1px solid var(--orange-400)}
@media (max-width:599px){
  .tb-compact.tb-icons .tb-actions .btn.btn-success>span,.tb-compact.tb-icons .tb-actions .btn.btn-load>span,.tb-compact.tb-icons .tb-actions .btn.btn-unload>span{display:inline!important}
  .tb-compact.tb-icons .tb-actions .btn.btn-success,.tb-compact.tb-icons .tb-actions .btn.btn-load,.tb-compact.tb-icons .tb-actions .btn.btn-unload{padding:0 10px!important;gap:4px}
}
@media (max-width:899px){
  .tb-compact.tb-icons .tb-actions .btn.btn-load>span,.tb-compact.tb-icons .tb-actions .btn.btn-unload>span{display:inline!important}
  .tb-compact.tb-icons .tb-actions .btn.btn-load,.tb-compact.tb-icons .tb-actions .btn.btn-unload{padding:0 10px!important;gap:4px}
}

/* ===== V246 · intestazione articolo compatta + anteprima articolo ===== */
.ph-id{display:flex;flex-direction:column;gap:6px;min-width:0;flex:1}
.ph-top{display:flex;align-items:center;gap:10px;min-width:0;flex-wrap:wrap}
.ph-top h2{margin:0;font-size:17px;line-height:1.2;min-width:0;flex:1 1 160px}
.ph-top .ps-code{font-size:13px;padding:5px 10px;border-radius:8px}
.ph-top .stock-pill{font-size:12px}
.ph-meta{display:flex;flex-wrap:wrap;gap:4px 14px;align-items:center;font-size:12px;color:var(--n-600)}
.ph-m{display:inline-flex;align-items:center;gap:4px;white-space:nowrap;max-width:100%;overflow:hidden;text-overflow:ellipsis}
.ph-m svg{width:13px;height:13px;flex:0 0 13px}
.ph-m.cat svg{color:var(--c-time)}.ph-m.loc svg{color:var(--c-lines)}.ph-m.sup svg{color:var(--c-party)}.ph-m.src svg{color:var(--c-act)}
.ph-m.src{color:var(--muted)}
.ps-head.ph{border-left:4px solid #10233f}
.part-page .ps-head.ph .page-actions .btn{height:38px}
.pp-modal{display:flex;flex-direction:column;gap:12px}
.pp-modal .pp-mhead{padding:10px 12px;border:1px solid var(--line);border-radius:12px;background:linear-gradient(135deg,var(--blue-bg),#fff 70%)}
.pp-modal .kpi-row.kpi-mini{display:grid!important;grid-template-columns:repeat(4,minmax(0,1fr))!important;gap:8px!important}
.pp-modal .kpi-row.kpi-mini>*{flex:none!important;width:auto!important;min-width:0!important}
.pp-modal .pp-tiles{border:1px solid var(--line);border-radius:12px;box-shadow:none}
@media (max-width:899px){
  .ph-top h2{font-size:15px;flex-basis:100%;order:3}
  .ph-top .ps-code{font-size:13px}
  .ph-meta{gap:3px 12px;font-size:12px}
  .part-page .ps-head.ph{padding:10px 12px!important;gap:10px}
  .pp-modal .kpi-row.kpi-mini .kpi{padding:7px 9px!important;gap:6px}
  .pp-modal .kpi-row.kpi-mini .kpi-ic{display:none!important}
  .pp-modal .kpi-row.kpi-mini .kpi-label{font-size:10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .pp-modal .kpi-row.kpi-mini .kpi-value{font-size:15px!important;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .pp-modal .kpi-row.kpi-mini .kpi-sub{font-size:11px}
  /* movimenti a 5 colonne (anteprima) */
  .pp-mv5 tr{grid-template-columns:auto auto minmax(0,1fr);grid-template-areas:"b c a" "d d d" "e e e"}
  .pp-mv5 td:nth-child(1){grid-area:a;justify-self:end;font-size:12px;color:var(--muted)}
  .pp-mv5 td:nth-child(2){grid-area:b}.pp-mv5 td:nth-child(3){grid-area:c;font-size:15px}
  .pp-mv5 td:nth-child(4){grid-area:d;font-size:12px;white-space:normal!important}
  .pp-mv5 td:nth-child(5){grid-area:e;font-size:12px;color:var(--muted)}
  .pp-modal .pp-title{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 8px}
}
@media (max-width:599px){
  .pp-modal .kpi-row.kpi-mini{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  .pp-modal .kpi-row.kpi-mini .kpi-sub{display:none!important}
  .pp-modal .kpi-row.kpi-mini{grid-template-columns:repeat(4,minmax(0,1fr))!important;gap:5px!important}
  .pp-modal .kpi-row.kpi-mini .kpi-label{font-size:10px}
  .pp-modal .kpi-row.kpi-mini .kpi-value{font-size:13px!important}
}
@media (min-width:700px) and (max-width:899px){ .pp-mv5 tr{grid-template-columns:auto 50px minmax(0,1fr) 120px 110px;grid-template-areas:"b c d a e"} }
@media (max-width:599px){
  .page .kpi-row.kpi-mini,.pp-modal .kpi-row.kpi-mini,.cd .kpi-row.kpi-mini{display:flex!important;flex-wrap:nowrap!important;gap:5px!important}
  .page .kpi-row.kpi-mini>*,.pp-modal .kpi-row.kpi-mini>*,.cd .kpi-row.kpi-mini>*{flex:1 1 auto!important;min-width:0!important;width:auto!important}
  .page .kpi-row.kpi-mini .kpi-value,.pp-modal .kpi-row.kpi-mini .kpi-value,.cd .kpi-row.kpi-mini .kpi-value{font-size:15px!important;letter-spacing:-.01em;overflow:visible!important;text-overflow:clip!important}
  .page .kpi-row.kpi-mini .kpi,.pp-modal .kpi-row.kpi-mini .kpi{padding:6px 7px!important}
}
@media (max-width:599px){
  .page .kpi-row.kpi-mini,.pp-modal .kpi-row.kpi-mini,.cd .kpi-row.kpi-mini{display:grid!important;grid-template-columns:repeat(auto-fit,minmax(min-content,1fr))!important;grid-auto-flow:column}
  .page .kpi-row.kpi-mini>*,.pp-modal .kpi-row.kpi-mini>*,.cd .kpi-row.kpi-mini>*{flex:none!important}
  .page .kpi-row.kpi-mini .kpi-label,.pp-modal .kpi-row.kpi-mini .kpi-label,.cd .kpi-row.kpi-mini .kpi-label{white-space:normal!important;word-break:normal;overflow-wrap:normal;display:-webkit-box!important;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;font-size:10px!important}
}
@media (max-width:599px){
  .page .kpi-row.kpi-mini,.pp-modal .kpi-row.kpi-mini,.cd .kpi-row.kpi-mini{display:flex!important;flex-wrap:wrap!important;grid-template-columns:none!important}
  .page .kpi-row.kpi-mini>*,.pp-modal .kpi-row.kpi-mini>*,.cd .kpi-row.kpi-mini>*{flex:1 1 auto!important;min-width:68px!important}
  .kpi-row.kpi-mini .kpi-body{display:grid!important;min-width:0}
  .kpi-row.kpi-mini .kpi-label{width:0;min-width:100%}
  .kpi-row.kpi-mini .kpi-value{white-space:nowrap}
}
@media (max-width:599px){
  .page .kpi-row.kpi-mini>*,.pp-modal .kpi-row.kpi-mini>*,.cd .kpi-row.kpi-mini>*{min-width:76px!important}
  .page .kpi-row.kpi-mini .kpi,.pp-modal .kpi-row.kpi-mini .kpi,.cd .kpi-row.kpi-mini .kpi{padding:6px 6px!important}
  .page .kpi-row.kpi-mini .kpi-value,.pp-modal .kpi-row.kpi-mini .kpi-value,.cd .kpi-row.kpi-mini .kpi-value{font-size:13px!important}
  .kpi-row.kpi-mini .kpi-label{font-size:10px!important;letter-spacing:.01em!important}
}
@media (max-width:599px){ .kpi-row.kpi-mini .kpi-body{flex:1 1 auto!important;width:100%} .kpi-row.kpi-mini .kpi{width:100%;box-sizing:border-box} }
@media (min-width:900px){.ph-top h2{flex:0 1 auto}}

/* ===== V247 · anteprima articolo: Carico e Scarico affiancati su telefono ===== */
@media (max-width:899px){
  .modal-foot:has(.btn-load){display:grid!important;grid-template-columns:1fr 1fr;gap:6px}
  .modal-foot:has(.btn-load) .btn-load{order:1}.modal-foot:has(.btn-load) .btn-unload{order:2}
  .modal-foot:has(.btn-load) [data-act="openPartPage"]{order:3}.modal-foot:has(.btn-load) [data-act="partEdit"]{order:4}
  .modal-foot:has(.btn-load) .grow{display:none}
}

/* ===== V247 · Gestione incassi: lista giorni a schede ===== */
@media (max-width:899px){
  .cards-rd .table thead{display:none}
  .cards-rd .table tbody{display:grid!important;grid-template-columns:minmax(0,1fr);gap:6px;padding:6px}
  .cards-rd .table tbody tr:not(.empty-row){display:flex!important;flex-wrap:wrap;align-items:center;gap:4px 10px;padding:8px 11px!important;border:1px solid var(--line)!important;border-radius:12px;background:#fff;box-shadow:0 1px 2px rgba(15,23,42,.05);cursor:pointer}
  .cards-rd .table tbody tr::after{content:"";order:5;flex-basis:100%;height:0}
  .cards-rd .table tbody td{display:block!important;padding:0!important;border:0!important;background:none!important;min-width:0;text-align:left!important;white-space:nowrap}
  .cards-rd .table tbody td[data-label]::before{display:none!important}
  .cards-rd .table tbody td[data-label="Giorno"]{order:1;flex:1 1 auto;grid-column:auto!important}
  .cards-rd .table tbody td[data-label="Giorno"] .cell-2{display:flex;align-items:baseline;gap:6px}
  .cards-rd .table tbody td[data-label="Giorno"] strong{font-size:13px}
  .cards-rd .table tbody td[data-label="Totale giornata"]{order:2;font-size:15px}
  .cards-rd .table tbody td[data-label="Differenza"]{order:3}
  .cards-rd .table tbody td.col-actions{order:4;display:flex!important;gap:0}
  .cards-rd .table tbody td.col-actions .action-btn{width:30px;height:30px}
  .cards-rd .table tbody td[data-label="Note"],.cards-rd .table tbody td[data-label="Lavori consegnati"],.cards-rd .table tbody td[data-label="Crediti incassati"],.cards-rd .table tbody td[data-label="Scontrini"],.cards-rd .table tbody td[data-label="Fatture"]{display:none!important}
  /* metodi di pagamento come voci piccole sulla seconda riga */
  .cards-rd .table tbody td.money:not([data-label="Totale giornata"]):not([data-label="Differenza"]):not([data-label="Note"]){order:10;display:inline-flex!important;align-items:baseline;gap:4px;font-size:12px;padding:2px 8px!important;border-radius:999px;background:var(--blue-bg)!important}
  .cards-rd .table tbody td.money:not([data-label="Totale giornata"]):not([data-label="Differenza"])::before{content:attr(data-label)!important;display:inline!important;font-size:11px;font-weight:700;letter-spacing:.03em;text-transform:uppercase;color:var(--muted)}
  .cards-rd .table tbody td.money:has(.rd-z){display:none!important}
  .cards-rd .table tbody td[data-label="Gestionale"]{order:11!important;background:var(--orange-bg)!important;color:var(--orange-700)}
  .cards-rd .table tbody td.hide-sm,.cards-rd .table tbody td.hide-md,.cards-rd .table tbody td.hide-tab{visibility:visible}
  .cards-rd .table tfoot{display:block}
  .cards-rd .table tfoot tr{display:flex!important;align-items:center;gap:10px;margin:0 6px 6px;padding:9px 12px;border-radius:12px;background:#10233f;color:#fff}
  .cards-rd .table tfoot td{display:none!important;border:0!important;padding:0!important;background:none!important;color:inherit!important}
  .cards-rd .table tfoot td:first-child{display:block!important;flex:1;font-weight:800;text-transform:uppercase;letter-spacing:.05em;font-size:12px}
  .cards-rd .table tfoot td.col-total{display:block!important;font-size:15px}
  .cards-rd .table tfoot td:last-child:not(.col-total){display:none!important}
  .cards-rd .table{display:block}
}

/* ===== V247 · Deposito gomme a schede ===== */
@media (max-width:899px){
  .cards-tire .table thead{display:none}
  .cards-tire .table tbody{display:grid!important;grid-template-columns:minmax(0,1fr)!important;gap:6px;padding:6px}
  .cards-tire .table tr:not(.empty-row){display:grid!important;gap:3px 12px;align-items:center;padding:8px 10px!important;border:1px solid var(--line)!important;border-radius:12px;background:#fff;box-shadow:0 1px 2px rgba(15,23,42,.05);cursor:pointer}
  .cards-tire .table tr.row-late{border-left:4px solid var(--red-500)!important}
  .cards-tire td[data-label]::before{display:none!important}
  .cards-tire .table>tbody>tr>td{display:block!important;padding:0!important;border:0!important;min-width:0;text-align:left!important}
  .cards-tire .cell-2{min-width:0}
  .cards-tire .cell-2>*{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .cards-tire .table td[data-label="Deposito"],.cards-tire .table td[data-label="Stato gomme"],.cards-tire .table td[data-label="Ubicazione"]{display:none!important}
  .cards-tire .table tr:not(.empty-row){grid-template-columns:92px minmax(0,1.5fr) minmax(0,1fr) 40px 132px 150px auto;grid-template-areas:"code tire client pz st exp act"}
  .cards-tire .table td[data-label="Codice"]{grid-column:auto!important;grid-area:code!important}
  .cards-tire .table td[data-label="Pneumatico"]{grid-area:tire!important}
  .cards-tire .table td[data-label="Cliente"]{grid-area:client!important}
  .cards-tire .table td[data-label="Pz"]{grid-area:pz!important;justify-self:center}
  .cards-tire .table td[data-label="Stato"]{grid-area:st!important}
  .cards-tire .table td[data-label="Scadenza"]{grid-area:exp!important}
  .cards-tire .table td.col-actions{grid-area:act!important;display:flex!important;justify-content:flex-end;justify-self:end!important}
  .cards-tire .col-actions .action-btn{width:30px;height:30px}
  .cards-tire .cell-plate{display:flex;align-items:center;gap:8px;min-width:0}
  .cards-tire .cell-plate>.cell-2{flex:1;min-width:0}
  .cards-tire .cell-plate>.cell-2>strong{font-size:12px}
  .cards-tire .badge-btn{white-space:nowrap}
  .tb-tires .seg{max-width:100%;overflow-x:auto;scrollbar-width:none;flex-wrap:nowrap!important}
  .tb-tires .seg::-webkit-scrollbar{display:none}
  .tb-tires .seg .seg-btn{flex:0 0 auto;white-space:nowrap}
}
@media (min-width:600px) and (max-width:799px){
  .cards-tire .table tr:not(.empty-row){grid-template-columns:92px minmax(0,1fr) minmax(0,1fr) 132px auto;grid-template-areas:"code tire client st act" "pz tire client exp act"}
  .cards-tire .table td[data-label="Pz"]{justify-self:start}
}
@media (max-width:599px){
  .cards-tire .table tr:not(.empty-row){grid-template-columns:auto auto minmax(0,1fr) auto;grid-template-areas:"tire tire tire act" "client client client st" "code pz . exp";gap:4px 8px;padding:7px 10px!important}
  .cards-tire .table td[data-label="Scadenza"]{justify-self:end;text-align:right!important}
  .cards-tire .table td[data-label="Stato"]{justify-self:end}
  .cards-tire .table td[data-label="Cliente"] .cell-2{display:block!important;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .cards-tire .table td[data-label="Cliente"] .cell-2>*{display:inline!important;margin-right:6px}
  .cards-tire .table td[data-label="Pneumatico"] .cell-plate>.cell-2{display:flex;align-items:center;gap:6px}
  .cards-tire .table td[data-label="Pneumatico"] .cell-plate>.cell-2>strong{flex:0 1 auto;min-width:0}
  .cards-tire .table td[data-label="Pneumatico"] .cell-plate>.cell-2>:not(strong){flex:0 0 auto}
}
@media (max-width:899px){
  .cards-rd.cards-rd.cards-rd.cards-rd .table tbody td[data-label="Scontrini"],.cards-rd.cards-rd.cards-rd.cards-rd .table tbody td[data-label="Fatture"],.cards-rd.cards-rd.cards-rd.cards-rd .table tbody td[data-label="Lavori consegnati"],.cards-rd.cards-rd.cards-rd.cards-rd .table tbody td[data-label="Crediti incassati"],.cards-rd.cards-rd.cards-rd.cards-rd .table tbody td[data-label="Note"],.cards-rd.cards-rd.cards-rd.cards-rd .table tbody td.money:has(.rd-z){display:none!important}
  .cards-rd .table tbody td[data-label="Giorno"] .cell-2{display:flex!important;flex-direction:row!important;align-items:baseline;gap:6px}
  .cards-rd .table tbody td[data-label="Giorno"] .cell-2>small{display:inline!important;color:var(--muted);font-size:12px}
  .cards-tire .cell-plate{flex-direction:column;align-items:flex-start!important;gap:3px!important}
  .cards-tire .cell-plate>.cell-2{width:100%;display:flex!important;align-items:center;gap:6px}
  .cards-tire .cell-plate>.cell-2>strong{flex:0 1 auto;min-width:0}
  .cards-tire .cell-plate>.cell-2>:not(strong){flex:0 0 auto}
  .cards-tire .table td[data-label="Cliente"] .cell-2>*{white-space:nowrap!important}
}
@media (min-width:800px) and (max-width:899px){
  .cards-tire .table tr:not(.empty-row){grid-template-columns:80px minmax(0,1.2fr) minmax(0,1fr) 30px 118px 132px auto;gap:3px 10px}
}
@media (max-width:599px){
  .cards-tire .cell-plate{flex-direction:row;align-items:center!important;gap:8px!important}
  .cards-tire .table tr:not(.empty-row){grid-template-areas:"tire tire tire act" "client client client st" "code pz . exp"}
}
@media (max-width:899px){ .cards-tire .cell-plate>.cell-2{flex-direction:row!important;justify-content:flex-start!important;text-align:left!important} }
@media (max-width:599px){
  .cards-rd .table tbody td[data-label="Giorno"] .cell-2>small{display:none!important}
  .cards-rd .table tbody tr:not(.empty-row){gap:4px 8px}
  .cards-rd .table tbody td[data-label="Totale giornata"]{font-size:15px}
}
@media (max-width:899px){
  .modal-foot.bal:has(.btn-load),.modal-foot:has(.btn-load){display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:6px!important}
  .modal-foot:has(.btn-load)>.btn{width:auto!important;flex:none!important;min-width:0}
}
@media (max-width:599px){ .cards-tire .cell-plate{flex-direction:column!important;align-items:flex-start!important;gap:3px!important} }

/* ===== V248 · Deposito gomme: misura non tagliata su tablet ===== */
@media (max-width:899px){ .cards-tire .tire-size{white-space:nowrap;font-size:12px;max-width:none} }
@media (min-width:800px) and (max-width:899px){ .cards-tire .table tr:not(.empty-row){grid-template-columns:78px minmax(150px,1.2fr) minmax(0,1fr) 28px 116px 128px auto!important} }
@media (min-width:600px) and (max-width:799px){ .cards-tire .table tr:not(.empty-row){grid-template-columns:86px minmax(150px,1fr) minmax(0,1fr) 128px auto!important} }

/* ===== V248 · Incassi: metodi sempre visibili e sempre nello stesso posto ===== */
@media (max-width:899px){
  .cards-rd.cards-rd.cards-rd.cards-rd .table tbody td.money:has(.rd-z){display:inline-flex!important;opacity:.45}
  .cards-rd .table tbody td.money:not([data-label="Totale giornata"]):not([data-label="Differenza"]):not([data-label="Note"]){flex:0 0 calc(20% - 8px);justify-content:space-between;box-sizing:border-box;min-width:0;overflow:hidden}
}
@media (max-width:599px){
  .cards-rd .table tbody td.money:not([data-label="Totale giornata"]):not([data-label="Differenza"]):not([data-label="Note"]){flex:0 0 calc(50% - 4px)}
  .cards-rd .table tbody tr:not(.empty-row){gap:4px 8px}
}

/* ===== V248 · Gestione crediti a schede (come i lavori) ===== */
@media (max-width:899px){
  .cards-cr .table thead,.cards-tx .table thead{display:none}
  .cards-cr .table tbody,.cards-tx .table tbody{display:grid!important;grid-template-columns:minmax(0,1fr)!important;gap:6px;padding:6px}
  .cards-cr .table tbody tr:not(.empty-row),.cards-tx .table tbody tr:not(.empty-row){display:grid!important;gap:3px 12px;align-items:center;padding:8px 11px!important;border:1px solid var(--line)!important;border-radius:12px;background:#fff;box-shadow:0 1px 2px rgba(15,23,42,.05);cursor:pointer}
  .cards-cr td[data-label]::before,.cards-tx td[data-label]::before{display:none!important}
  .cards-cr .table>tbody>tr>td,.cards-tx .table>tbody>tr>td{display:block!important;padding:0!important;border:0!important;min-width:0;text-align:left!important;background:none!important}
  .cards-cr .cell-2,.cards-tx .cell-2{min-width:0}
  .cards-cr .cell-2>*,.cards-tx .cell-2>*{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .cards-cr .table td.col-actions,.cards-tx .table td.col-actions{display:flex!important;justify-content:flex-end;justify-self:end!important;gap:0}
  .cards-cr .col-actions .action-btn,.cards-tx .col-actions .action-btn{width:30px;height:30px}
  .cards-cr .table td[data-label="Pagato"],.cards-cr .table td[data-label="Ultimo pagamento"]{display:none!important}
  .cards-cr .table tbody tr:not(.empty-row){grid-template-columns:104px 64px minmax(0,1fr) minmax(0,1fr) 92px 96px 110px auto;grid-template-areas:"plate code client work tot rem st act" "plate date client work due rem st act"}
  .cards-cr .table td[data-label="Targa"]{grid-column:auto!important;grid-area:plate!important}
  .cards-cr .table td[data-label="Codice"]{grid-area:code!important}
  .cards-cr .table td[data-label="Data e ora"]{grid-area:date!important;font-size:11px;color:var(--muted)}
  .cards-cr .table td[data-label="Data e ora"] .cell-2>*{display:inline!important;font-size:11px;font-weight:600;margin-right:4px}
  .cards-cr .table td[data-label="Cliente"]{grid-area:client!important}
  .cards-cr .table td[data-label="Lavoro"]{grid-area:work!important}
  .cards-cr .table td[data-label="Importo"]{grid-area:tot!important;text-align:right!important;font-size:12px;color:var(--muted)}
  .cards-cr .table td[data-label="Importo"]::after{content:" totale";font-size:11px}
  .cards-cr .table td[data-label="Scadenza"]{grid-area:due!important;text-align:right!important;font-size:12px}
  .cards-cr .table td[data-label="Scadenza"]::before{content:"scade "!important;display:inline!important;font-size:11px;color:var(--muted);text-transform:none;letter-spacing:0;font-weight:400}
  .cards-cr .table td[data-label="Residuo"]{grid-area:rem!important;text-align:right!important;font-size:15px}
  .cards-cr .table td[data-label="Stato"]{grid-area:st!important;justify-self:end}
  .cards-cr .table td.col-actions{grid-area:act!important}
}
@media (min-width:600px) and (max-width:799px){
  .cards-cr .table tbody tr:not(.empty-row){grid-template-columns:104px minmax(0,1fr) minmax(0,1fr) 96px auto;grid-template-areas:"plate client work rem act" "code date . st act"}
  .cards-cr .table td[data-label="Importo"],.cards-cr .table td[data-label="Scadenza"]{display:none!important}
  .cards-cr .table td[data-label="Codice"]{justify-self:start}
}
@media (max-width:599px){
  .cards-cr .table tbody tr:not(.empty-row){grid-template-columns:auto auto minmax(0,1fr) auto;grid-template-areas:"plate code . st" "client client client rem" "date date tot act";gap:4px 8px;padding:7px 10px!important}
  .cards-cr .table td[data-label="Lavoro"],.cards-cr .table td[data-label="Scadenza"]{display:none!important}
  .cards-cr .table td[data-label="Cliente"] .cell-2{display:block!important;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .cards-cr .table td[data-label="Cliente"] .cell-2>*{display:inline!important;margin-right:6px;white-space:nowrap}
  .cards-cr .table td[data-label="Importo"]{justify-self:end}
  .cards-cr .table td[data-label="Importo"]::before{content:"su "!important;display:inline!important;font-size:11px;text-transform:none;letter-spacing:0;font-weight:400;color:var(--muted)}
  .cards-cr .table td[data-label="Importo"]::after{content:""}
}

/* ===== V248 · Cassa IN/OUT a schede ===== */
@media (max-width:899px){
  .cards-tx .table td[data-label="Nota"]{display:none!important}
  .cards-tx .table tbody tr:not(.empty-row){grid-template-columns:92px 88px minmax(0,150px) minmax(0,1fr) 112px 108px auto;grid-template-areas:"date dir cat party meth amt act"}
  .cards-tx .table tbody tr.tx-in{border-left:4px solid var(--green-500)!important}
  .cards-tx .table tbody tr.tx-out{border-left:4px solid var(--red-500)!important}
  .cards-tx .table td[data-label="Data"]{grid-column:auto!important;grid-area:date!important}
  .cards-tx .table td[data-label="Movimento"]{grid-area:dir!important}
  .cards-tx .table td[data-label="Tipo"]{grid-area:cat!important;overflow:hidden}
  .cards-tx .table td[data-label="Tipo"] .badge{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .cards-tx .table td[data-label="Cliente / fornitore"]{grid-area:party!important}
  .cards-tx .table td[data-label="Metodo"]{grid-area:meth!important;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:12px}
  .cards-tx .table td[data-label="Entrata"],.cards-tx .table td[data-label="Uscita"]{grid-area:amt!important;text-align:right!important;font-size:15px;white-space:nowrap}
  .cards-tx .table td.col-actions{grid-area:act!important}
  .cards-tx .table tfoot{display:block}
  .cards-tx .table{display:block}
  .cards-tx .table tfoot tr{display:flex!important;flex-wrap:wrap;align-items:center;gap:4px 14px;margin:0 6px 6px;padding:9px 12px;border-radius:12px;background:#10233f;color:#fff}
  .cards-tx .table tfoot td{display:block!important;border:0!important;padding:0!important;background:none!important}
  .cards-tx .table tfoot td:first-child{flex:1 1 100%;font-weight:700;font-size:12px}
  .cards-tx .table tfoot td.money{font-weight:800;font-size:15px}
  .cards-tx .table tfoot td.text-green{color:var(--green-400)!important}.cards-tx .table tfoot td.text-red{color:var(--red-line)!important}
  .cards-tx .table tfoot td:last-child:empty{display:none!important}
}
@media (min-width:600px) and (max-width:799px){
  .cards-tx .table tbody tr:not(.empty-row){grid-template-columns:92px minmax(0,1fr) minmax(0,1fr) 108px auto;grid-template-areas:"date party party amt act" "dir cat meth meth act"}
}
@media (max-width:599px){
  .cards-tx .table tbody tr:not(.empty-row){grid-template-columns:auto auto minmax(0,1fr) auto;grid-template-areas:"party party party amt" "dir cat cat act" "date date meth meth";gap:4px 8px;padding:7px 10px!important}
  .cards-tx .table td[data-label="Cliente / fornitore"] .cell-2{display:block!important;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .cards-tx .table td[data-label="Cliente / fornitore"] .cell-2>*{display:inline!important;margin-right:6px;white-space:nowrap}
  .cards-tx .table td[data-label="Data"] .cell-2>*{display:inline!important;margin-right:5px;font-size:12px}
  .cards-tx .table td[data-label="Metodo"]{justify-self:end}
}
@media (min-width:600px) and (max-width:899px){
  .cards-cr .table tbody tr:not(.empty-row){grid-template-columns:104px minmax(0,1fr) minmax(0,1fr) 100px auto!important;grid-template-areas:"plate client work rem act" "code date due st act"!important}
  .cards-cr .table td[data-label="Importo"]{display:none!important}
  .cards-cr .table td[data-label="Scadenza"]{display:block!important;font-size:11px;color:var(--muted)}
  .cards-cr .table td[data-label="Codice"]{justify-self:start}
}
@media (max-width:899px){
  .cards-cr .table td[data-label="Data e ora"] .cell-2{display:block!important;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .cards-cr .table td[data-label="Importo"]{white-space:nowrap}
  .cards-cr .table td[data-label="Residuo"]{white-space:nowrap}
}
@media (min-width:600px) and (max-width:899px){
  .cards-rd .table tbody td.money:not([data-label="Totale giornata"]):not([data-label="Differenza"]):not([data-label="Note"]){flex:1 1 0!important;padding:2px 7px!important;gap:3px}
  .cards-rd .table tbody tr:not(.empty-row){column-gap:6px}
}

/* ===== V249 · Dipendenti e documenti emessi (fatture, preventivi, DDT) a schede ===== */
@media (max-width:899px){
  .cards-staff .table thead,.cards-doc .table thead{display:none}
  .cards-staff .table tbody,.cards-doc .table tbody{display:grid!important;grid-template-columns:minmax(0,1fr)!important;gap:6px;padding:6px}
  .cards-staff .table tbody tr:not(.empty-row),.cards-doc .table tbody tr:not(.empty-row){display:grid!important;gap:3px 12px;align-items:center;padding:8px 11px!important;border:1px solid var(--line)!important;border-radius:12px;background:#fff;box-shadow:0 1px 2px rgba(15,23,42,.05);cursor:pointer}
  .cards-staff td[data-label]::before,.cards-doc td[data-label]::before{display:none!important}
  .cards-staff .table>tbody>tr>td,.cards-doc .table>tbody>tr>td{display:block!important;padding:0!important;border:0!important;min-width:0;text-align:left!important;background:none!important}
  .cards-staff .cell-2,.cards-doc .cell-2{min-width:0}
  .cards-staff .cell-2>*,.cards-doc .cell-2>*{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .cards-staff .table td.col-actions,.cards-doc .table td.col-actions{display:flex!important;justify-content:flex-end;justify-self:end!important;gap:0}
  .cards-staff .col-actions .action-btn,.cards-doc .col-actions .action-btn{width:30px;height:30px}
  /* Dipendenti */
  .cards-staff .table td[data-label="Ultimo pagamento"]{display:none!important}
  .cards-staff .table tbody tr:not(.empty-row){grid-template-columns:minmax(0,1.3fr) 96px 130px 110px 120px 116px auto;grid-template-areas:"name cm cur mat paid due act"}
  .cards-staff .table td[data-label="Dipendente"]{grid-column:auto!important;grid-area:name!important}
  .cards-staff .table td[data-label="Costo mese"]{grid-area:cm!important;font-size:12px;text-align:right!important}
  .cards-staff .table td[data-label="Costo mese"]::after{content:" al mese";font-size:11px;color:var(--muted)}
  .cards-staff .table td.col-cur{grid-area:cur!important}
  .cards-staff .table td.col-mat{grid-area:mat!important;font-size:12px;color:var(--muted);text-align:right!important}
  .cards-staff .table td.col-mat::after{content:" maturato";font-size:11px}
  .cards-staff .table td.col-paid{grid-area:paid!important;text-align:right!important}
  .cards-staff .table td[data-label="Da pagare"]{grid-area:due!important;text-align:right!important;font-size:15px}
  .cards-staff .table td.col-actions{grid-area:act!important}
  .cards-staff .table td.col-cur small{font-size:11px}
  /* Documenti */
  .cards-doc .table td[data-label="DDT collegato"],.cards-doc .table td[data-label="Pagato"],.cards-doc .table td[data-label="Pagamento"],.cards-doc .table td[data-label="Righe"],.cards-doc .table td[data-label="Causale"]{display:none!important}
  .cards-doc .table tbody tr:not(.empty-row){grid-template-columns:max-content minmax(0,1fr) 104px 104px 120px auto;grid-template-areas:"num client tot res st act" "date client due res st act"}
  .cards-doc .table td[data-label="Numero"]{grid-column:auto!important;grid-area:num!important}
  .cards-doc .table td[data-label="Numero"] .cell-2{display:flex!important;flex-direction:row!important;gap:6px;align-items:baseline}
  .cards-doc .table td[data-label="Numero"] .cell-2>small{font-size:11px}
  .cards-doc .table td[data-label="Data"]{grid-area:date!important;font-size:12px;color:var(--muted)}
  .cards-doc .table td[data-label="Cliente"]{grid-area:client!important}
  .cards-doc .table td[data-label="Totale"]{grid-area:tot!important;text-align:right!important;font-size:12px}
  .cards-doc .table td[data-label="Totale"]::after{content:" totale";font-size:11px;color:var(--muted)}
  .cards-doc .table td[data-label="Scadenza"],.cards-doc .table td[data-label="Validità"],.cards-doc .table td[data-label="Fattura collegata"]{grid-area:due!important;text-align:right!important;font-size:11px;color:var(--muted);display:block!important}
  .cards-doc .table td[data-label="Scadenza"]::before{content:"scade "!important;display:inline!important;font-size:11px;text-transform:none;letter-spacing:0;font-weight:400}
  .cards-doc .table td[data-label="Validità"]::before{content:"valido fino "!important;display:inline!important;font-size:11px;text-transform:none;letter-spacing:0;font-weight:400}
  .cards-doc .table td[data-label="Residuo"]{grid-area:res!important;text-align:right!important;font-size:15px}
  .cards-doc .table td[data-label="Stato"]{grid-area:st!important;justify-self:end}
  .cards-doc .table td.col-actions{grid-area:act!important}
  .doc-quote .table tbody tr:not(.empty-row),.doc-salesDdt .table tbody tr:not(.empty-row){grid-template-columns:max-content minmax(0,1fr) 120px 120px auto;grid-template-areas:"num client tot st act" "date client due st act"}
}
@media (min-width:600px) and (max-width:799px){
  .cards-staff .table tbody tr:not(.empty-row){grid-template-columns:minmax(0,1fr) 130px 116px 116px auto;grid-template-areas:"name cur paid due act" "name cm mat due act"}
  .cards-doc .table tbody tr:not(.empty-row){grid-template-columns:max-content minmax(0,1fr) 100px 112px auto;grid-template-areas:"num client res st act" "date client tot due act"}
  .cards-staff .table td[data-label="Costo mese"],.cards-staff .table td.col-mat{text-align:left!important}
}
@media (max-width:599px){
  .cards-staff .table tbody tr:not(.empty-row){grid-template-columns:minmax(0,1fr) auto auto;grid-template-areas:"name name act" "cur cur due" "cm paid paid";gap:4px 8px;padding:7px 10px!important}
  .cards-staff .table td.col-mat{display:none!important}
  .cards-staff .table td[data-label="Costo mese"]{text-align:left!important}
  .cards-staff .table td.col-cur{display:flex!important;align-items:center;gap:6px;flex-wrap:wrap}
  .cards-staff .table td.col-cur small{display:inline!important}
  .cards-doc .table tbody tr:not(.empty-row),.doc-quote .table tbody tr:not(.empty-row),.doc-salesDdt .table tbody tr:not(.empty-row){grid-template-columns:auto minmax(0,1fr) auto;grid-template-areas:"num due st" "client client res" "date tot act";gap:4px 8px;padding:7px 10px!important}
  .doc-quote .table tbody tr:not(.empty-row),.doc-salesDdt .table tbody tr:not(.empty-row){grid-template-areas:"num due st" "client client tot" "date date act"}
  .cards-doc .table td[data-label="Cliente"] .cell-2>small{font-size:11px}
  .cards-doc .table td[data-label="Totale"]{justify-self:end}
}
@media (max-width:899px){
  .cards-doc .table td[data-label="Numero"] .cell-2>small{display:none!important}
  .cards-doc .table tbody tr:not(.empty-row){grid-template-columns:max-content minmax(0,1fr) 104px 96px auto auto}
  .cards-staff .cell-plate{display:flex!important;flex-direction:row!important;align-items:center!important;gap:8px}
  .cards-staff .cell-plate>.cell-2{flex:1;min-width:0}
  .cards-staff .table td[data-label="Costo mese"],.cards-staff .table td.col-mat{white-space:nowrap}
}
@media (min-width:600px) and (max-width:799px){ .cards-doc .table tbody tr:not(.empty-row){grid-template-columns:max-content minmax(0,1fr) 96px auto auto} }
@media (max-width:599px){
  .tb-compact.tb-icons>.tb-actions{flex:1 1 100%!important;justify-content:flex-end!important}
  .cards-doc .table td[data-label="Residuo"]{white-space:nowrap}
}
@media (min-width:600px) and (max-width:899px){
  .cards-staff .table tbody tr:not(.empty-row){grid-template-columns:minmax(0,1fr) 140px 120px 120px auto!important;grid-template-areas:"name cur paid due act" "name cm mat due act"!important}
  .cards-staff .table td[data-label="Costo mese"],.cards-staff .table td.col-mat{text-align:left!important}
}
@media (max-width:599px){
  .cards-doc .table tbody tr:not(.empty-row){grid-template-columns:auto minmax(0,1fr) auto!important;grid-template-areas:"num due st" "client client res" "date tot act"!important}
  .doc-quote .table tbody tr:not(.empty-row),.doc-salesDdt .table tbody tr:not(.empty-row){grid-template-areas:"num due st" "client client tot" "date date act"!important}
  .cards-doc .table td[data-label="Scadenza"],.cards-doc .table td[data-label="Validità"],.cards-doc .table td[data-label="Fattura collegata"]{white-space:nowrap;justify-self:end;overflow:hidden;text-overflow:ellipsis}
  .cards-doc .table td[data-label="Totale"]{white-space:nowrap}
}
@media (max-width:599px){
  .tb-compact.tb-icons>.tb-actions{flex-wrap:wrap!important}
  .tb-compact.tb-icons>.tb-actions>.tb-info{flex:1 1 100%;order:-1;white-space:normal;font-size:12px;text-align:left}
}

/* ===== V250 · righe di fatture / preventivi / DDT a schede ordinate ===== */
@media (max-width:899px){ /* V260: righe a schede solo sotto i 900 px; sopra tabella (scorre se stretta) */
  .doc-lines{table-layout:auto!important;display:block}
  .doc-lines colgroup,.doc-lines thead{display:none!important}
  .doc-lines tbody{display:flex!important;flex-direction:column;gap:8px;padding:8px}
  .doc-lines tr:not(.empty-row){display:grid!important;grid-template-columns:170px minmax(0,1fr) 76px 104px 70px 100px auto;grid-template-areas:"art desc qty price disc tot act" ". . . cost . . .";gap:4px 8px;align-items:end;border:1px solid var(--line)!important;border-radius:12px;padding:9px 10px!important;background:#fff;box-shadow:0 1px 2px rgba(15,23,42,.05);position:relative}
  .doc-lines tr.ar-blank{background:var(--n-50);border-style:dashed!important}
  .doc-lines td{display:block!important;padding:0!important;border:0!important;min-width:0!important;width:auto!important}
  .doc-lines td[data-label]::before{content:attr(data-label);display:block;font-size:11px;font-weight:700;letter-spacing:.03em;text-transform:uppercase;color:var(--muted);margin-bottom:2px}
  .doc-lines td.ar-n{display:none!important}
  .doc-lines td[data-label="Articolo"]{grid-area:art}
  .doc-lines td[data-label="Descrizione"]{grid-area:desc}
  .doc-lines td[data-label="Q.tà"]{grid-area:qty}
  .doc-lines td[data-label="Prezzo"]{grid-area:price}
  .doc-lines td[data-label="Sconto %"]{grid-area:disc}
  .doc-lines td[data-label="Sconto %"]::before{content:"Sc. %"}
  .doc-lines td[data-label="Totale"]{grid-area:tot;text-align:right!important;font-weight:800;font-size:13px;padding-bottom:8px!important}
  .doc-lines td[data-label="Acquisto"]{grid-area:cost;display:flex!important;align-items:center;gap:6px;flex-wrap:wrap}
  .doc-lines td[data-label="Acquisto"]::before{display:none!important}
  .doc-lines td[data-label="Acquisto"] *{font-size:11px!important}
  .doc-lines td.col-actions{grid-area:act;position:static!important;display:flex!important;gap:0;align-self:end;padding-bottom:3px!important}
  .doc-lines td.col-actions .action-btn{width:30px;height:30px}
  .doc-lines .input{height:36px}
  /* righe nota e arrotondamento */
  .doc-lines tr.is-note,.doc-lines tr.is-round{grid-template-columns:minmax(0,1fr) auto auto!important;grid-template-areas:"desc tot act"!important;align-items:center}
  .doc-lines tr.is-note td[colspan],.doc-lines tr.is-round td[colspan]{grid-area:desc}
  .doc-lines tr.is-note td[colspan]::before,.doc-lines tr.is-round td[colspan]::before{display:none}
  .doc-lines tr.is-round td.money{grid-area:tot}
  .doc-lines tr.is-note{background:var(--orange-bg);border-color:var(--orange-400)!important}
  .lines-wrap{overflow:visible!important}
}
@media (max-width:599px){
  .doc-lines tr:not(.empty-row){grid-template-columns:minmax(0,.8fr) minmax(0,1.1fr) minmax(0,.7fr) minmax(0,1fr);grid-template-areas:"art art art act" "desc desc desc desc" "qty price disc tot" "cost cost cost cost";gap:6px 8px;padding:9px 10px!important}
  .doc-lines td[data-label="Articolo"]::before,.doc-lines td[data-label="Descrizione"]::before{display:none}
  .doc-lines td.col-actions{justify-self:end;align-self:center}
  .doc-lines td[data-label="Totale"]{font-size:15px}
  .doc-lines .input{text-align:right}
  .doc-lines td[data-label="Descrizione"] .input,.doc-lines td[data-label="Articolo"] .input{text-align:left}
}
@media (max-width:899px){
  .doc-lines td[data-label="Acquisto"] .cost-wrap{display:flex!important;flex-direction:row!important;align-items:center;gap:8px}
  .doc-lines td[data-label="Acquisto"] .cost-ro{padding:3px 8px!important;min-height:0!important;height:auto!important}
  .doc-lines td[data-label="Acquisto"] .cost-wrap::before{content:"Acquisto";font-size:11px;font-weight:700;letter-spacing:.03em;text-transform:uppercase;color:var(--muted)}
}
@media (min-width:600px) and (max-width:899px){
  .doc-lines tr:not(.empty-row){grid-template-columns:minmax(0,1fr) 80px 110px 72px 110px auto!important;grid-template-areas:"art desc desc desc desc act" "cost qty price disc tot act"!important}
  .doc-lines td[data-label="Articolo"]{width:200px!important;max-width:200px}
  .doc-lines tr:not(.empty-row){grid-template-columns:200px minmax(0,1fr) 80px 110px 72px 110px auto!important;grid-template-areas:"art desc desc desc desc desc act" "cost cost qty price disc tot act"!important}
  .doc-lines td[data-label="Acquisto"]{align-self:center}
}

/* ===== V250 · animazioni pagina di accesso (utente/password e scelta operatore) ===== */
@keyframes authUp{from{opacity:0;transform:translateY(18px) scale(.985)}to{opacity:1;transform:none}}
@keyframes authIn{from{opacity:0;transform:translateX(26px)}to{opacity:1;transform:none}}
@keyframes authFade{from{opacity:0}to{opacity:1}}
@keyframes authLeft{from{opacity:0;transform:translateX(-18px)}to{opacity:1;transform:none}}
@keyframes authBlob{0%,100%{transform:translate(0,0) scale(1)}33%{transform:translate(40px,-30px) scale(1.08)}66%{transform:translate(-30px,25px) scale(.95)}}
@keyframes authSpin{to{transform:rotate(360deg)}}
@keyframes authFloat{0%,100%{transform:translateY(0) rotate(-6deg)}50%{transform:translateY(-14px) rotate(6deg)}}
@keyframes authShine{0%{left:-60%}60%,100%{left:130%}}
@keyframes authShake{0%,100%{transform:none}20%,60%{transform:translateX(-8px)}40%,80%{transform:translateX(8px)}}
@keyframes authPop{0%{transform:scale(.6);opacity:0}70%{transform:scale(1.08)}100%{transform:scale(1);opacity:1}}
@keyframes authOut{to{opacity:0;transform:scale(1.03);filter:blur(3px)}}
.auth-fx{position:absolute;inset:0;overflow:hidden;pointer-events:none;z-index:0}
.auth-fx i{position:absolute;border-radius:50%;filter:blur(40px);opacity:.55;animation:authBlob 16s ease-in-out infinite}
.auth-fx i:nth-child(1){width:320px;height:320px;left:-80px;top:-60px;background:var(--blue-500)}
.auth-fx i:nth-child(2){width:260px;height:260px;right:-60px;bottom:10%;background:var(--blue-500);animation-duration:20s;animation-delay:-6s}
.auth-fx i:nth-child(3){width:180px;height:180px;left:40%;top:45%;background:var(--violet-500);opacity:.35;animation-duration:24s;animation-delay:-12s}
.auth-fx span{position:absolute;color:rgba(255,255,255,.07)}
.auth-fx span svg{width:100%;height:100%;stroke-width:1.2}
.auth-fx .g1{width:220px;height:220px;right:-50px;top:18%;animation:authSpin 40s linear infinite}
.auth-fx .g2{width:90px;height:90px;left:12%;bottom:18%;animation:authFloat 7s ease-in-out infinite}
.auth-fx .g3{width:120px;height:120px;right:20%;bottom:-20px;animation:authFloat 9s ease-in-out infinite;animation-delay:-3s}
.auth-side>*:not(.auth-fx){position:relative;z-index:1}
.auth-brand{animation:authLeft .6s ease-out both}
.auth-brand .brand-mark{animation:authPop .6s .15s cubic-bezier(.2,.9,.3,1.3) both}
.auth-claim h2{animation:authLeft .7s .15s ease-out both}
.auth-claim li{animation:authLeft .55s ease-out both}
.auth-claim li:nth-child(1){animation-delay:.35s}.auth-claim li:nth-child(2){animation-delay:.5s}.auth-claim li:nth-child(3){animation-delay:.65s}
.auth-foot{animation:authFade .8s .8s both}
.auth-steps{animation:authFade .5s both}
.auth-mobile-brand{animation:authFade .5s both}
.auth-form{animation:authUp .55s .1s cubic-bezier(.2,.8,.2,1) both}
.auth-ops{animation:authIn .5s cubic-bezier(.2,.8,.2,1) both}
.auth-form>*{animation:authUp .45s ease-out both}
.auth-form>*:nth-child(1){animation-delay:.18s}.auth-form>*:nth-child(2){animation-delay:.24s}.auth-form>*:nth-child(3){animation-delay:.3s}.auth-form>*:nth-child(4){animation-delay:.36s}.auth-form>*:nth-child(5){animation-delay:.42s}.auth-form>*:nth-child(6){animation-delay:.48s}.auth-form>*:nth-child(n+7){animation-delay:.54s}
.auth-ops .login-user{animation:authUp .4s ease-out both;transition:transform .15s,box-shadow .15s,border-color .15s}
.auth-ops .login-user:nth-child(1){animation-delay:.2s}.auth-ops .login-user:nth-child(2){animation-delay:.26s}.auth-ops .login-user:nth-child(3){animation-delay:.32s}.auth-ops .login-user:nth-child(4){animation-delay:.38s}.auth-ops .login-user:nth-child(5){animation-delay:.44s}.auth-ops .login-user:nth-child(6){animation-delay:.5s}.auth-ops .login-user:nth-child(n+7){animation-delay:.56s}
.auth-ops .login-user:hover{transform:translateY(-2px);box-shadow:0 8px 20px rgba(37,99,235,.15)}
.auth-ops .login-user.sel{animation:authPop .35s both}
.auth-in .input{transition:border-color .2s,box-shadow .2s}
.auth-in .input:focus{box-shadow:0 0 0 4px rgba(37,99,235,.15)}
.auth-in:focus-within>svg{color:var(--blue-500)}
.auth-form .gate-go{position:relative;overflow:hidden}
.auth-form .gate-go::after{content:"";position:absolute;top:0;bottom:0;width:40%;left:-60%;background:linear-gradient(100deg,transparent,rgba(255,255,255,.35),transparent);transform:skewX(-20deg);animation:authShine 3.5s 1.2s ease-in-out infinite}
.auth-form .gate-go:hover{transform:translateY(-1px);box-shadow:0 10px 24px rgba(37,99,235,.35)}
.auth-shake{animation:authShake .45s ease both!important}
.login-pin{animation:authUp .35s ease-out both}
#loginRoot.auth-leaving .auth{animation:authOut .4s ease-in forwards}
@media (prefers-reduced-motion:reduce){.auth *,.auth{animation:none!important;transition:none!important}}
.auth.s2 .auth-side *:not(.auth-fx):not(.auth-fx *){animation:none!important}

/* ===== V250 · icone delle azioni coerenti in tutte le liste ===== */
.col-actions .action-btn{border-radius:9px;transition:background .15s,color .15s}
.col-actions .action-btn:has(.ic-eye){color:var(--blue-500)}.col-actions .action-btn:has(.ic-eye):hover{background:var(--blue-bg)}
.col-actions .action-btn:has(.ic-edit){color:var(--n-600)}.col-actions .action-btn:has(.ic-edit):hover{background:var(--n-100);color:var(--n-900)}
.col-actions .action-btn:has(.ic-trash){color:var(--red-500)}.col-actions .action-btn:has(.ic-trash):hover{background:var(--red-bg)}
.col-actions .action-btn:has(.ic-euro),.col-actions .action-btn:has(.ic-check){color:var(--green)}.col-actions .action-btn:has(.ic-euro):hover,.col-actions .action-btn:has(.ic-check):hover{background:var(--green-bg)}
.col-actions .action-btn:has(.ic-message){color:var(--green-500)}.col-actions .action-btn:has(.ic-message):hover{background:var(--green-bg)}
.col-actions .action-btn:has(.ic-printer){color:var(--n-600)}.col-actions .action-btn:has(.ic-printer):hover{background:var(--n-100)}
.col-actions .action-btn:has(.ic-move),.col-actions .action-btn:has(.ic-refresh){color:var(--orange)}.col-actions .action-btn:has(.ic-move):hover,.col-actions .action-btn:has(.ic-refresh):hover{background:var(--orange-bg)}
.col-actions .action-btn:has(.ic-plus){color:var(--blue-500)}.col-actions .action-btn:has(.ic-plus):hover{background:var(--blue-bg)}
.col-actions .action-btn:has(.ic-receipt),.col-actions .action-btn:has(.ic-file){color:var(--violet-500)}.col-actions .action-btn:has(.ic-receipt):hover,.col-actions .action-btn:has(.ic-file):hover{background:var(--violet-bg)}
.col-actions .action-btn svg{width:17px;height:17px}
@media (max-width:899px){
  .col-actions .action-btn{width:32px!important;height:32px!important;background:var(--n-50);border:1px solid var(--n-100)}
  .col-actions{gap:4px!important}
}
/* banner documento bloccato su telefono */
@media (max-width:599px){
  .lock-banner,.doc-lock{flex-wrap:wrap!important}
}
@media (max-width:599px){
  .imp-lock{display:grid!important;grid-template-columns:auto minmax(0,1fr);gap:6px 10px;align-items:start;padding:10px 12px!important}
  .imp-lock>.grow{min-width:0}
  .imp-lock>.grow b{font-size:13px;line-height:1.3}
  .imp-lock>.grow small{font-size:11px;line-height:1.35}
  .imp-lock>*:last-child:not(.grow){grid-column:1/-1;justify-self:stretch}
}
.lock-switch .ls-track{flex:0 0 38px;display:block}
.lock-switch .ls-knob{position:absolute!important;top:3px;left:19px;width:16px!important;height:16px!important;border-radius:50%!important;background:#fff!important;box-shadow:0 1px 2px rgba(0,0,0,.3)}
.lock-switch .ls-knob::after,.lock-switch .ls-knob::before{display:none!important}
.lock-switch.is-off .ls-knob{left:3px}
@media (max-width:899px){
  .cards-vdl .col-actions .action-btn{width:30px!important;height:30px!important}
  .cards-vdl .col-actions{gap:2px!important}
}

/* ===== V251 · schede automatiche per tutte le altre liste (telefono e tablet) ===== */
@media (max-width:899px){
  .cards-auto .table thead{display:none}
  .cards-auto .table{display:block}
  .cards-auto .table tbody{display:grid!important;grid-template-columns:minmax(0,1fr)!important;gap:6px;padding:6px}
  .cards-auto .table tbody tr:not(.empty-row):not(.sub-row){display:flex!important;flex-wrap:wrap;align-items:flex-end;gap:5px 14px;padding:8px 11px!important;border:1px solid var(--line)!important;border-radius:12px;background:#fff;box-shadow:0 1px 2px rgba(15,23,42,.05);grid-template-columns:none!important}
  .cards-auto .table tbody tr[data-act]{cursor:pointer}
  .cards-auto .table tbody tr.row-late{border-left:4px solid var(--red-500)!important}
  .cards-auto .table>tbody>tr>td{display:block!important;padding:0!important;border:0!important;background:none!important;min-width:0;max-width:100%;text-align:left!important;grid-column:auto!important;flex:0 1 auto}
  .cards-auto .table>tbody>tr>td:empty{display:none!important}
  .cards-auto .table>tbody>tr>td[data-label]::before{content:attr(data-label);display:block!important;font-size:10px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--muted);margin:0 0 1px;white-space:nowrap}
  .cards-auto .table>tbody>tr>td[data-label=""]::before{display:none!important}
  .cards-auto .table>tbody>tr>td:first-child:not(.col-check){flex:1 1 100%;font-size:13px}
  .cards-auto .table>tbody>tr>td:first-child:not(.col-check)::before{display:none!important}
  .cards-auto .table>tbody>tr>td.col-check{order:-1;flex:0 0 auto;align-self:center}
  .cards-auto .table>tbody>tr>td.col-check+td{flex:1 1 calc(100% - 40px);font-size:13px}
  .cards-auto .table>tbody>tr>td.col-check+td::before{display:none!important}
  .cards-auto .table>tbody>tr>td.money,.cards-auto .table>tbody>tr>td.num{white-space:nowrap}
  .cards-auto .table>tbody>tr>td.col-actions{order:99;margin-left:auto;display:flex!important;gap:4px;justify-content:flex-end;align-self:center}
  .cards-auto .table>tbody>tr>td.col-actions::before{display:none!important}
  .cards-auto .cell-2>*{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block}
  .cards-auto .table tfoot{display:block}
  .cards-auto .table tfoot tr{display:flex!important;flex-wrap:wrap;align-items:center;gap:4px 14px;margin:0 6px 6px;padding:9px 12px;border-radius:12px;background:#10233f;color:#fff}
  .cards-auto .table tfoot td{display:block!important;border:0!important;padding:0!important;background:none!important;color:inherit!important;text-align:left!important}
  .cards-auto .table tfoot td:empty{display:none!important}
  .cards-auto .table tfoot td:first-child{flex:1 1 auto;font-weight:700;font-size:12px}
  .cards-auto .table tfoot td.money{font-weight:800;font-size:15px}
  .cards-auto .table tfoot td::before{display:none!important}
}

/* ===== V251 · Scadenze e RiBa ===== */
@media (max-width:899px){
  .riba-tabs{display:flex!important;gap:6px;overflow-x:auto;scrollbar-width:none;padding-bottom:2px}
  .riba-tabs::-webkit-scrollbar{display:none}
  .riba-tab{flex:0 0 auto;padding:6px 10px!important;column-gap:6px!important;border-radius:10px}
  .riba-tab span{font-size:12px;white-space:nowrap}
  .riba-tab small{font-size:11px}
  .riba-bar{gap:6px 10px!important;padding:8px 10px!important}
  .riba-bar>span:first-child{flex:1 1 100%}
  .riba-bar .filter-field{flex:1 1 auto}
  .riba-bar .filter-field .select{min-width:0;width:100%}
  .riba-bar .btn-primary{flex:1 1 100%;justify-content:center}
  .riba-bar .grow{display:none}
  .riba-page .cards-auto .table>tbody>tr>td[data-label="Scadenza"]{flex:1 1 calc(100% - 40px);font-size:13px}
  .riba-page .cards-auto .table>tbody>tr>td[data-label="Scadenza"]::before{display:none!important}
  .riba-page .cards-auto .table>tbody>tr>td[data-label="Scadenza"] .cell-2{display:flex!important;gap:8px;align-items:baseline}
  .riba-page .cards-auto .table>tbody>tr>td[data-label="Cliente"]{flex:1 1 100%}
  .riba-page .cards-auto .table>tbody>tr>td[data-label="Cliente"]::before{display:none!important}
  .riba-page .cards-auto .table>tbody>tr>td[data-label="Importo"]{margin-left:auto;text-align:right!important;font-size:15px}
}

/* ===== V251 · Riepilogo emessi / spese: ultimi documenti a schede ===== */
@media (max-width:899px){
  .rs-latest thead{display:none}
  .rs-latest,.rs-latest tbody{display:block}
  .rs-latest tbody{display:grid;gap:6px;padding:6px}
  .rs-latest tbody tr{display:grid!important;grid-template-columns:auto minmax(0,1fr) auto;grid-template-areas:"type num st" "cli cli tot" "date date tot";gap:3px 10px;align-items:center;padding:8px 11px;border:1px solid var(--line);border-radius:12px;background:#fff;box-shadow:0 1px 2px rgba(15,23,42,.05);cursor:pointer}
  .rs-latest td{display:block;padding:0!important;border:0!important;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .rs-latest td:nth-child(1){grid-area:date;font-size:12px;color:var(--muted)}
  .rs-latest td:nth-child(2){grid-area:type}
  .rs-latest td:nth-child(3){grid-area:num;font-weight:700}
  .rs-latest td:nth-child(4){grid-area:cli;font-weight:700}
  .rs-latest td:nth-child(5){grid-area:tot;text-align:right;font-size:15px;font-weight:800}
  .rs-latest td:nth-child(6){grid-area:st;justify-self:end}
  .rs-latest td:nth-child(n+7){display:none}
}

/* ===== V251 · Archivio XML ===== */
@media (max-width:899px){
  .xa-group .table thead{display:none}
  .xa-group .table,.xa-group .table tbody{display:block}
  .xa-group .table tbody tr{display:grid!important;grid-template-columns:auto minmax(0,1fr) auto;grid-template-areas:"num kind tot" "file file act" "date date act";gap:3px 10px;align-items:center;padding:8px 12px!important;border-top:1px solid var(--line)}
  .xa-group .table td{display:block!important;padding:0!important;border:0!important;min-width:0;text-align:left!important}
  .xa-group .table td[data-label]::before{display:none!important}
  .xa-group .table td:nth-child(1){grid-area:date;font-size:12px;color:var(--muted)}
  .xa-group .table td:nth-child(2){grid-area:num}
  .xa-group .table td:nth-child(3){grid-area:kind}
  .xa-group .table td.xa-file{grid-area:file;display:flex!important;flex-wrap:wrap;align-items:baseline;gap:2px 8px;overflow:hidden}
  .xa-group .table td.xa-file .link{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%;font-size:12px}
  .xa-group .table td.xa-file small{font-size:11px}
  .xa-group .table td.money{grid-area:tot;text-align:right!important;font-weight:800}
  .xa-group .table td.col-actions{grid-area:act;display:flex!important;gap:4px;justify-self:end}
  .xa-gh{flex-wrap:wrap;gap:4px 8px!important;padding:9px 12px!important}
  .xa-gh>b{flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .xa-gh .grow{display:none}
  .xa-grid{display:flex!important;flex-direction:column;gap:10px;align-items:stretch!important}
  .xa-tree{padding:8px 10px!important}
}

/* ===== V251 · login: animazioni fluide (niente blur animato) ===== */
.auth-fx i{filter:none!important;opacity:1!important;will-change:transform;transform:translate3d(0,0,0);backface-visibility:hidden}
.auth-fx i:nth-child(1){background:radial-gradient(circle,rgba(37,99,235,.55) 0%,rgba(37,99,235,0) 70%)!important;width:520px!important;height:520px!important;left:-200px!important;top:-180px!important}
.auth-fx i:nth-child(2){background:radial-gradient(circle,rgba(13,148,136,.5) 0%,rgba(13,148,136,0) 70%)!important;width:460px!important;height:460px!important;right:-160px!important}
.auth-fx i:nth-child(3){background:radial-gradient(circle,rgba(124,58,237,.35) 0%,rgba(124,58,237,0) 70%)!important;width:320px!important;height:320px!important}
@keyframes authBlob{0%,100%{transform:translate3d(0,0,0) scale(1)}33%{transform:translate3d(40px,-30px,0) scale(1.06)}66%{transform:translate3d(-30px,25px,0) scale(.96)}}
.auth-fx span{will-change:transform;backface-visibility:hidden}
@keyframes authOut{to{opacity:0;transform:scale(1.02)}}
.auth-form,.auth-form>*,.auth-claim li,.auth-claim h2,.auth-brand,.auth-ops .login-user{will-change:opacity,transform;backface-visibility:hidden}
.auth-form .gate-go::after{will-change:left}
@media (max-width:899px){
  .xa-group .table{width:100%!important;min-width:0!important;table-layout:auto!important}
  .xa-group .table-wrap,.xa-group{overflow:hidden}
  .xa-group .table tbody tr{grid-template-columns:minmax(0,auto) minmax(0,1fr) auto!important;width:auto!important}
  .xa-group .table td.col-actions{flex-wrap:nowrap}
}
@media (max-width:899px){
  .xa-group .table td.col-actions{width:auto!important;min-width:68px;max-width:none!important}
  .cards-auto .table>tbody>tr>td.col-actions,.riba-page .table td.col-actions{width:auto!important;max-width:none!important}
  .riba-tb [data-act="clearFilters"]{flex:0 0 auto!important}
}

/* ===== V251 · RiBa: scheda dedicata ===== */
@media (max-width:899px){
  .cards-riba .table thead{display:none}
  .cards-riba .table{display:block}
  .cards-riba .table tbody{display:grid!important;grid-template-columns:minmax(0,1fr)!important;gap:6px;padding:6px}
  .cards-riba .table tbody tr:not(.empty-row){display:grid!important;grid-template-columns:auto 118px 110px minmax(0,1fr) 120px 110px 104px auto;grid-template-areas:"sel due inv client kind amt st act";gap:3px 12px;align-items:center;padding:8px 11px!important;border:1px solid var(--line)!important;border-radius:12px;background:#fff;box-shadow:0 1px 2px rgba(15,23,42,.05)}
  .cards-riba .table tr.row-late{border-left:4px solid var(--red-500)!important}
  .cards-riba .table>tbody>tr>td{display:block!important;padding:0!important;border:0!important;background:none!important;min-width:0;text-align:left!important;grid-column:auto!important}
  .cards-riba td[data-label]::before{display:none!important}
  .cards-riba .cell-2>*{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .cards-riba .table td.col-check{grid-area:sel!important}
  .cards-riba .table td[data-label="Scadenza"]{grid-area:due!important}
  .cards-riba .table td[data-label="Fattura"]{grid-area:inv!important}
  .cards-riba .table td[data-label="Cliente"]{grid-area:client!important}
  .cards-riba .table td[data-label="Modalità"]{grid-area:kind!important;font-size:12px;color:var(--n-600);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .cards-riba .table td[data-label="Importo"]{grid-area:amt!important;text-align:right!important;font-size:15px;white-space:nowrap}
  .cards-riba .table td[data-label="Importo"] small{font-size:11px}
  .cards-riba .table td[data-label="Stato"]{grid-area:st!important;justify-self:end;text-align:right!important}
  .cards-riba .table td.col-actions{grid-area:act!important;display:flex!important;gap:4px;justify-self:end;width:auto!important}
  .cards-riba .table tfoot{display:block}
  .cards-riba .table tfoot tr{display:flex!important;align-items:center;gap:10px;margin:0 6px 6px;padding:9px 12px;border-radius:12px;background:#10233f;color:#fff}
  .cards-riba .table tfoot td{display:block!important;border:0!important;padding:0!important;background:none!important;color:inherit!important}
  .cards-riba .table tfoot td:first-child{flex:1;font-weight:700;font-size:12px}
  .cards-riba .table tfoot td:empty{display:none!important}
}
@media (min-width:600px) and (max-width:799px){
  .cards-riba .table tbody tr:not(.empty-row){grid-template-columns:auto 118px minmax(0,1fr) 116px auto;grid-template-areas:"sel due client amt act" "sel inv kind st act"}
}
@media (max-width:599px){
  .cards-riba .table tbody tr:not(.empty-row){grid-template-columns:auto minmax(0,1fr) auto auto;grid-template-areas:"sel due st act" "sel client client amt" "sel inv kind kind";gap:4px 8px;padding:7px 10px!important}
  .cards-riba .table td[data-label="Scadenza"] .cell-2,.cards-riba .table td[data-label="Cliente"] .cell-2,.cards-riba .table td[data-label="Fattura"] .cell-2{display:block!important;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .cards-riba .table td[data-label="Scadenza"] .cell-2>*,.cards-riba .table td[data-label="Cliente"] .cell-2>*,.cards-riba .table td[data-label="Fattura"] .cell-2>*{display:inline!important;margin-right:6px;white-space:nowrap}
  .cards-riba .table td[data-label="Modalità"]{justify-self:end}
  .cards-riba .table td.col-check:empty{display:none!important}
}
@media (min-width:600px) and (max-width:899px){
  .cards-riba .table tbody tr:not(.empty-row){grid-template-columns:auto 130px minmax(0,1fr) 150px 120px auto!important;grid-template-areas:"sel due client kind amt act" "sel inv client st amt act"!important}
  .cards-riba .table td[data-label="Stato"]{justify-self:start!important}
}
@media (min-width:600px) and (max-width:899px){
  .cards-riba .table td[data-label="Scadenza"] .cell-2,.cards-riba .table td[data-label="Fattura"] .cell-2{display:flex!important;gap:6px;align-items:baseline}
  .cards-riba .table td[data-label="Scadenza"] .cell-2>small,.cards-riba .table td[data-label="Fattura"] .cell-2>small{font-size:11px}
  .cards-riba .table tbody tr:not(.empty-row){grid-template-columns:auto 230px minmax(0,1fr) 150px 120px auto!important}
}

/* ===== V252 · righe di Spese/DDT e Fatture ricevute a schede (V260: solo sotto i 900 px) ===== */
@media (max-width:899px){
  .sp-table{table-layout:auto!important;display:block;width:100%!important;min-width:0!important}
  .sp-table thead,.sp-table colgroup{display:none!important}
  .sp-table tbody{display:flex!important;flex-direction:column;gap:8px;padding:8px}
  .sp-table tbody tr:not(.empty-row){display:grid!important;grid-template-columns:72px 112px 66px minmax(0,1fr) minmax(0,1fr) 112px 100px 44px auto;grid-template-areas:"art art art desc desc desc desc desc act" "qty price disc net full gross sell reso act";gap:5px 8px;align-items:end;border:1px solid var(--line)!important;border-radius:12px;padding:9px 10px!important;background:#fff;box-shadow:0 1px 2px rgba(15,23,42,.05);position:relative}
  .sp-table tbody tr.is-reso{background:repeating-linear-gradient(135deg,#fff,#fff 8px,var(--n-50) 8px,var(--n-50) 16px);opacity:.8}
  .sp-table td{display:block!important;padding:0!important;border:0!important;min-width:0!important;width:auto!important;max-width:none!important;position:static!important}
  .sp-table td[data-label]::before{content:attr(data-label);display:block;font-size:10px;font-weight:700;letter-spacing:.03em;text-transform:uppercase;color:var(--muted);margin-bottom:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .sp-table td[data-label="Articolo"]{grid-area:art}
  .sp-table td[data-label="Descrizione"]{grid-area:desc}
  .sp-table td[data-label="Q.tà"]{grid-area:qty}
  .sp-table td[data-label^="Prezzo"]{grid-area:price}
  .sp-table td[data-label="Sconto %"]{grid-area:disc}
  .sp-table td[data-label="Sconto %"]::before{content:"Sc. %"}
  .sp-table td[data-label="Totale senza IVA con sconto"]{grid-area:net;text-align:right!important;padding-bottom:9px!important;white-space:nowrap}
  .sp-table td[data-label="Totale senza IVA con sconto"]::before{content:"Imponibile"}
  .sp-table td[data-label="Totale con IVA senza sconto"]{grid-area:full;text-align:right!important;padding-bottom:9px!important;white-space:nowrap}
  .sp-table td[data-label="Totale con IVA senza sconto"]::before{content:"IVA incl. no sc."}
  .sp-table td[data-label="Totale con IVA con sconto"]{grid-area:gross}
  .sp-table td[data-label="Totale con IVA con sconto"]::before{content:"Totale IVA incl."}
  .sp-table td.sell-td{grid-area:sell}
  .sp-table td.sell-td::before{content:"Vendita"!important}
  .sp-table td[data-label="Reso"]{grid-area:reso;text-align:center!important;padding-bottom:8px!important}
  .sp-table td.col-actions{grid-area:act;display:flex!important;flex-direction:column;gap:4px;align-self:center}
  .sp-table .input{height:36px;width:100%!important;min-width:0!important}
  .sp-table td[data-label="Articolo"] .combo,.sp-table td[data-label="Articolo"] .code-combo{width:100%!important}
  .sp-table tbody tr.is-note{grid-template-columns:minmax(0,1fr) auto!important;grid-template-areas:"desc act"!important;align-items:center;background:var(--orange-bg);border-color:var(--orange-400)!important}
  .sp-table tbody tr.is-note td[colspan]{grid-area:desc}
  .sp-table tbody tr.is-note td[colspan]::before{display:none}
  .sp-table tbody tr.is-note td.col-actions{flex-direction:row}
  .lines-wrap{overflow:visible!important}
}
@media (max-width:599px){
  .sp-table tbody tr:not(.empty-row){grid-template-columns:repeat(4,minmax(0,1fr));grid-template-areas:"art art art act" "desc desc desc desc" "qty price disc gross" "net full sell reso"}
  .sp-table td.col-actions{flex-direction:row!important;justify-self:end;align-self:start}
  .sp-table td[data-label="Articolo"]::before,.sp-table td[data-label="Descrizione"]::before{display:none}
  .sp-table td[data-label="Totale senza IVA con sconto"],.sp-table td[data-label="Totale con IVA senza sconto"]{text-align:left!important;font-size:12px}
  .sp-table td[data-label="Reso"]{display:flex!important;flex-direction:column;align-items:center}
}
@media (max-width:599px){
  .sp-table tbody tr:not(.empty-row){grid-template-areas:"art art act act" "desc desc desc desc" "qty price disc gross" "net full sell reso"!important}
  .sp-table td[data-label^="Prezzo"]::before{content:"Prezzo"}
  .sp-table td[data-label="Totale con IVA con sconto"]::before{content:"Totale"}
  .sp-table td[data-label="Totale con IVA senza sconto"]::before{content:"Senza sconto"}
}

/* ===== V252 · anteprima importazione XML a schede ===== */
@media (max-width:899px){
  .xi-table{display:block;min-width:0!important;width:100%!important}
  .xi-table thead{display:none}
  .xi-table tbody{display:grid;gap:6px;padding:4px 0}
  .xi-wrap{overflow:visible!important}
  .xi-table tbody tr{display:grid!important;grid-template-columns:auto 116px minmax(0,1fr) auto auto;grid-template-areas:"sel dir num tot act" "sel date party res act" "sel lines party res act";gap:4px 10px;align-items:center;padding:8px 10px;border:1px solid var(--line);border-radius:12px;background:#fff}
  .xi-table tbody tr.xi-off{opacity:.6}
  .xi-table tbody tr.xi-ok{border-color:var(--green-400);background:var(--green-bg)}
  .xi-table td{display:block!important;padding:0!important;border:0!important;min-width:0;text-align:left!important}
  .xi-table td::before{display:none!important}
  .xi-table td:nth-child(1){grid-area:sel}
  .xi-table td:nth-child(2){grid-area:dir}
  .xi-table td:nth-child(2) .input{height:32px;font-size:12px}
  .xi-table td:nth-child(3){grid-area:num;min-width:0}
  .xi-table td:nth-child(4){grid-area:date;font-size:12px}
  .xi-table td:nth-child(5){grid-area:party;align-self:start}
  .xi-table td:nth-child(6){grid-area:lines;font-size:12px;color:var(--muted)}
  .xi-table td:nth-child(6)::after{content:" righe"}
  .xi-table td:nth-child(7){grid-area:tot;text-align:right!important;font-size:15px}
  .xi-table td:nth-child(8){grid-area:res;justify-self:end;text-align:right!important}
  .xi-table td.col-actions{grid-area:act}
  .xi-table .xi-sub{display:block;font-size:11px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .xi-table tr.xi-err{grid-template-areas:"sel num num num act" "sel date date date act"!important}
}
@media (max-width:599px){
  .xi-table tbody tr{grid-template-columns:auto minmax(0,1fr) auto auto;grid-template-areas:"sel num tot act" "sel party party party" "sel dir date res" "sel lines lines res"}
  .xi-table td:nth-child(4){justify-self:start}
}
/* V252 · RiBa: linguette tutte visibili, niente scorrimento */
@media (max-width:899px){
  .riba-tabs{display:grid!important;grid-template-columns:repeat(auto-fill,minmax(112px,1fr))!important;overflow:visible!important;gap:5px!important}
  .riba-tab{padding:5px 8px!important;min-width:0}
  .riba-tab span{font-size:11px;white-space:normal!important;line-height:1.15}
  .riba-tab b{font-size:12px}
  .riba-tab small{font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .riba-tab svg{width:14px!important;height:14px!important}
}
@media (max-width:599px){ .riba-tabs{grid-template-columns:repeat(3,minmax(0,1fr))!important} .riba-tab small{display:none} }

/* ===== V252 · Impostazioni: all'apertura nessuna sezione aperta ===== */
.settings-grid.set-none{display:block!important}
.set-none .settings-nav{max-height:none!important;position:static!important;padding:14px!important}
.set-none .set-intro{display:flex;align-items:center;gap:12px;margin-bottom:12px}
.set-none .set-intro>svg{width:34px;height:34px;padding:7px;border-radius:10px;background:var(--blue-bg);color:var(--violet)}
.set-none .set-intro b{display:block;font-size:17px}.set-none .set-intro small{color:var(--muted)}
.set-none .set-groups{display:grid!important;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:12px;align-items:start}
.set-none .set-group{margin:0!important}
@media (max-width:599px){.set-none .set-groups{grid-template-columns:1fr}}

/* ===== V252 · Conto fornitori: apertura/chiusura dei DDT animata ===== */
@keyframes saIn{from{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:none}}
@keyframes saOut{to{opacity:0;transform:translateY(-8px)}}
@keyframes saChev{from{transform:rotate(-90deg)}to{transform:rotate(0)}}
.sa-table tr.sa-k.sa-in>td{animation:saIn .28s cubic-bezier(.2,.8,.2,1) both;animation-delay:calc(var(--ki,0) * 28ms)}
.sa-table tr.sa-k.sa-out>td{animation:saOut .2s ease-in forwards}
.sa-toggle svg{transition:transform .22s cubic-bezier(.2,.8,.2,1)}
.sa-toggle:not(.open) svg{transform:rotate(-90deg)}
.sa-toggle{transition:background .15s}
.sa-toggle:hover{background:var(--blue-bg)}
@media (prefers-reduced-motion:reduce){.sa-table tr.sa-k>td{animation:none!important}}

/* ===== V252 · Conto fornitori su telefono e tablet ===== */
@media (max-width:899px){
  .sa-table{display:block;min-width:0!important;width:100%!important}
  .sa-table thead{display:none}
  .sa-table tbody{display:block}
  .sa-casc .table-wrap{overflow:visible!important}
  .sa-table tbody tr.sa-g,.sa-table tbody tr.sa-k{display:grid!important;grid-template-columns:auto minmax(0,1fr) 100px 100px 110px auto;grid-template-areas:"tg doc due tot res act" "tg doc paid paid st act";gap:3px 10px;align-items:center;padding:8px 10px!important;border:0!important;border-bottom:1px solid var(--line)!important}
  .sa-table tbody tr.sa-k{padding-left:22px!important;background:var(--blue-bg)}
  .sa-table td{display:block!important;padding:0!important;border:0!important;min-width:0;text-align:left!important;background:none!important}
  .sa-table td::before{display:none!important}
  .sa-table td:nth-child(1){grid-area:tg;align-self:center}
  .sa-table td:nth-child(2){grid-area:doc}
  .sa-table td:nth-child(3){grid-area:due;font-size:12px}
  .sa-table td:nth-child(4){grid-area:tot;text-align:right!important;font-size:12px}
  .sa-table td:nth-child(4)::after{content:" totale";font-size:11px;color:var(--muted)}
  .sa-table td:nth-child(5){grid-area:paid;font-size:12px}
  .sa-table td:nth-child(6){grid-area:res;text-align:right!important;font-size:15px}
  .sa-table td:nth-child(7){grid-area:st;justify-self:end}
  .sa-table td.col-actions{grid-area:act;display:flex!important;gap:4px;justify-self:end}
  .sa-table td:nth-child(2) .cell-2>*{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block}
  .sa-table tr.sa-more{display:block!important;padding:6px 22px!important}
  .sa-table tfoot{display:block}
  .sa-table tfoot tr{display:flex!important;align-items:center;gap:12px;flex-wrap:wrap;margin:6px;padding:9px 12px;border-radius:12px;background:#10233f;color:#fff}
  .sa-table tfoot td{display:block!important;border:0!important;padding:0!important;color:inherit!important;background:none!important}
  .sa-table tfoot td:empty{display:none!important}
  .sa-table tfoot td:nth-child(2){flex:1 1 auto;font-weight:700;font-size:12px}
  .sa-casc-bar{flex-wrap:wrap;gap:4px 10px}
}
@media (max-width:599px){
  .sa-table tbody tr.sa-g,.sa-table tbody tr.sa-k{grid-template-columns:auto minmax(0,1fr) auto auto;grid-template-areas:"tg doc doc act" "tg due tot res" "tg paid paid st";gap:4px 8px}
  .sa-table td:nth-child(4){text-align:left!important}
  .sa-table tbody tr.sa-k{padding-left:14px!important}
}
@media (max-width:899px){
  .sa-table td{width:auto!important;max-width:none!important}
  .sa-table td.col-actions{min-width:0}
  .sa-table td.sa-tg{min-width:30px}
  .sa-table td.sa-tg .sa-toggle{width:30px;height:30px;display:grid;place-items:center;border:1px solid var(--line);border-radius:8px;background:#fff}
}
.sa-toggle{transform:none!important}
@media (max-width:899px){ /* V260: colonna dei pulsanti larga quanto i pulsanti (prima 0 px: coprivano stato e importo) */
  .sa-table tbody tr.sa-g,.sa-table tbody tr.sa-k{grid-template-columns:30px minmax(0,1fr) 92px 96px 104px max-content}
  .sa-table:not(.dp-table) td.col-actions{width:max-content!important}
  .sa-table:not(.dp-table) tbody td{position:static!important}
}
@media (max-width:599px){
  .sa-table tbody tr.sa-g,.sa-table tbody tr.sa-k{grid-template-columns:30px minmax(0,1fr) max-content max-content}
  .sa-table tbody tr.sa-k td.sa-tg,.sa-table tbody tr.sa-k td:first-child{visibility:hidden}
}

/* ===== V252 · EBITDA su telefono e tablet ===== */
.eb-xl .eb-xs{display:none;font-style:normal}.eb-xl .eb-xf{font-style:normal}
@media (max-width:899px){
  .eb-xl .eb-xs{display:inline}.eb-xl .eb-xf{display:none}
  .eb-xl span{font-size:11px;text-transform:capitalize;text-align:center;overflow:hidden;white-space:nowrap}
  .eb-table{display:block;width:100%!important;min-width:0!important}
  .eb-table thead{display:none}
  .eb-table tbody{display:grid;gap:6px;padding:6px}
  .eb-table tbody tr{display:grid!important;grid-template-columns:minmax(0,1fr) repeat(3,minmax(0,auto));grid-template-areas:"m eb eb mg" "rev mat srv stf";gap:3px 12px;padding:8px 11px;border:1px solid var(--line);border-radius:12px;background:#fff;align-items:baseline}
  .eb-table tbody td{display:block!important;padding:0!important;border:0!important;text-align:left!important;white-space:nowrap;min-width:0;font-size:12px}
  .eb-table tbody td.hide-sm{display:block!important}
  .eb-table tbody td:nth-child(1){grid-area:m;font-weight:800;font-size:13px}
  .eb-table tbody td:nth-child(2){grid-area:rev}
  .eb-table tbody td:nth-child(3){grid-area:mat}
  .eb-table tbody td:nth-child(4){grid-area:srv}
  .eb-table tbody td:nth-child(5){grid-area:stf}
  .eb-table tbody td:nth-child(6){grid-area:eb;text-align:right!important;font-size:15px}
  .eb-table tbody td:nth-child(7){grid-area:mg;text-align:right!important;color:var(--muted)}
  .eb-table tbody td:nth-child(n+2):nth-child(-n+5)::before{display:block;font-size:10px;font-weight:700;letter-spacing:.03em;text-transform:uppercase;color:var(--muted)}
  .eb-table tbody td:nth-child(2)::before{content:"Ricavi"}.eb-table tbody td:nth-child(3)::before{content:"Materiali"}.eb-table tbody td:nth-child(4)::before{content:"Servizi"}.eb-table tbody td:nth-child(5)::before{content:"Personale"}
  .eb-table tbody tr.eb-tot{background:#10233f;color:#fff;border-color:#10233f}
  .eb-table tbody tr.eb-tot td{color:#fff!important}
  .eb-table tbody tr.eb-tot td::before{color:var(--n-400)!important}
  .ebitda .table-wrap,.eb-grid+section .table-wrap{overflow:visible!important}
}
@media (max-width:599px){
  .eb-table tbody tr{grid-template-columns:repeat(4,minmax(0,1fr))}
  .eb-table tbody tr{grid-template-areas:"m m eb mg" "rev mat srv stf"}
  .eb-table tbody td{font-size:11px}
}
@media (max-width:599px){
  .eb-tb .seg{display:grid!important;grid-template-columns:repeat(4,minmax(0,1fr));gap:2px;width:100%}
  .eb-tb .seg .seg-btn{padding:6px 2px!important;font-size:11px;white-space:nowrap;justify-content:center}
  .eb-page .page-head .page-actions,.eb-page .page-head .bal{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:6px!important}
  .eb-page .page-head .page-actions .btn{padding:0 6px!important;font-size:12px;white-space:nowrap;width:auto!important}
  .eb-page .page-head .page-actions .btn [class*="ic"]{flex:none}
  .eb-row small{display:block}
}
@media (max-width:599px){
  .page.eb-page>.page-head>.page-actions.page-actions{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:6px!important;flex-wrap:nowrap!important}
  .page.eb-page>.page-head>.page-actions>.btn{flex:none!important;width:auto!important;min-width:0!important;padding:0 6px!important;font-size:12px!important}
  .page.eb-page>.page-head>.page-actions>.btn>span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
}
@media (min-width:600px) and (max-width:899px){ .riba-tabs{grid-template-columns:repeat(7,minmax(0,1fr))!important} .riba-tab small{display:none} }
@media (max-width:599px){
  .eb-tb>.tb-actions.bal{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:6px!important;flex:1 1 100%!important}
  .eb-tb>.tb-actions.bal>.btn{flex:none!important;width:auto!important;min-width:0!important;padding:0 6px!important;font-size:12px!important;gap:4px}
  .eb-tb>.tb-actions.bal>.btn>span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
}
@media (max-width:599px){ .eb-tb>.tb-actions.bal>:not(.btn){grid-column:1/-1;font-size:12px} }
@media (max-width:899px){
  .sp-table tbody tr.is-note.is-note{grid-template-columns:minmax(0,1fr) auto!important;grid-template-areas:"desc act"!important}
  .sp-table tbody tr.is-note td.col-actions{align-self:center!important;flex-direction:row!important}
}

/* ===== V253 · anteprime come pagine su telefono e tablet ===== */
.modal-head .ms-back{display:none}
@media (max-width:899px){
  .modal-head .ms-back{display:grid;place-items:center;width:40px;height:40px;flex:0 0 40px;border-radius:12px;background:var(--n-100);border:1px solid var(--line-strong);color:var(--n-900);margin-right:4px}
  .modal-head .ms-back svg{width:20px;height:20px;stroke-width:2.4}
  .modal-head .ms-back~h2{flex:1;min-width:0}
  .modal-head .ms-back~[data-act="closeModal"]{display:none!important}
  .modal-backdrop{animation:msIn .22s cubic-bezier(.2,.8,.2,1) both}
}
@keyframes msIn{from{opacity:0;transform:translateX(24px)}to{opacity:1;transform:none}}
@media (prefers-reduced-motion:reduce){.modal-backdrop{animation:none!important}}
/* V253 · Conto fornitori: la freccia non copre piu' il testo */
@media (max-width:899px){
  .sa-table td:nth-child(1){grid-area:tg!important}.sa-table td:nth-child(2){grid-area:doc!important}.sa-table td:nth-child(3){grid-area:due!important}
  .sa-table td:nth-child(4){grid-area:tot!important}.sa-table td:nth-child(5){grid-area:paid!important}.sa-table td:nth-child(6){grid-area:res!important}
  .sa-table td:nth-child(7){grid-area:st!important}.sa-table td.col-actions{grid-area:act!important}
  .sa-table td:nth-child(2){min-width:0!important}
  .sa-table tr.sa-more td{grid-area:auto!important}
}
/* V253 · sezione Trasporto in fondo ai documenti */
.ar-grid>.ar-trans{grid-column:1/-1}
section.card.ar-trans{--g:var(--orange-500);--gb:var(--orange-bg);border:1px solid color-mix(in srgb,var(--orange-500) 22%,#fff);border-left:4px solid var(--orange-500)}
section.card.ar-trans>.card-head h3{color:var(--orange)}

/* ===== V254 · Lavori fissi su telefono/tablet: pannello che scorre (animato) ===== */
@media (max-width:1299px){
  .agenda .dock,.agenda.with-dock .dock,.agenda:not(.with-dock) .dock{display:flex!important;transform:translateX(-108%);opacity:0;pointer-events:none;visibility:hidden;transition:transform .3s cubic-bezier(.2,.8,.2,1),opacity .25s ease,visibility 0s linear .3s;border-width:1px}
  body.dock-open .agenda .dock{transform:none!important;opacity:1!important;pointer-events:auto!important;visibility:visible!important;transition:transform .3s cubic-bezier(.2,.8,.2,1),opacity .2s ease,visibility 0s}
  body.dock-open .agenda .dock .dock-item{animation:saIn .3s cubic-bezier(.2,.8,.2,1) both}
}
/* V254 · Catalogo veicoli su iPhone: un solo tocco per scegliere (niente effetti hover sui touch) */
@media (hover:none){
  .vp-item:hover .vp-acts{display:none}
  .vp-item.sel .vp-acts{display:flex}
  .vp-item:hover:not(.sel){background:transparent}
  .vp-item{-webkit-tap-highlight-color:rgba(37,99,235,.12);touch-action:manipulation}
}
/* V254 · agenda orizzontale su telefono: intestazione giorni compatta */
@media (max-width:699px){
  .ch-title:has(.ch-num)>strong:not(.ch-num){display:none}
  .ch-title:has(.ch-num){gap:4px;font-size:12px}
  .ch-title:has(.ch-num) .ch-hrs{font-size:11px}
}


/* ############################################################
   5 · TEMA  (era css/tema.css)
   ############################################################ */
/* ============================================================
   Officina Rossi · V257 · STILE UNICO (applicato a tutto il gestionale)
   1. Schermo: sotto 900 px liste a schede (una per riga), da 900 px tabelle.
   2. Colori con significato fisso: blu apri/informazione · verde fatto/pagato/entrata ·
      arancio da fare/in attesa/residuo · rosso scaduto/errore/elimina/uscita ·
      viola documenti · grigio neutro/non attivo.
   3. Testi: 11 etichetta · 12 secondario · 13 testo · 15 titolo sezione · 17 importo · 20 titolo pagina.
   4. Pulsanti, campi e icone: stessa altezza (36 computer · 40 telefono), angoli 10 px.
   5. Comandi sempre nello stesso posto: a destra della barra della pagina, sulla stessa riga
      della ricerca (telefono e tablet: i comandi secondari nel pulsante "⋯"); nelle finestre
      il pulsante principale è a destra, "Elimina" a sinistra.
   Questo file si carica per ultimo e prevale sui fogli precedenti.
   ============================================================ */
:root{
  /* colori con significato (testo leggibile anche su fondo chiaro:contrasto ≥ 4,5) */
  --blue:var(--blue);--blue-bg:#eff6ff;--blue-line:#bfdbfe;
  --green:#15803d;--green-bg:#f0fdf4;--green-line:#bbf7d0;
  --orange:#c2410c;--orange-bg:#fff7ed;--orange-line:#fed7aa;
  --red:#dc2626;--red-bg:#fef2f2;--red-line:#fecaca;
  --violet:#6d28d9;--violet-bg:#f5f3ff;--violet-line:#ddd6fe;
  --gray:#475467;--gray-bg:#f2f4f7;--gray-line:#e4e7ec;
  --teal:var(--blue);--teal-bg:var(--blue-bg);
  --primary:var(--blue-500);--primary-700:var(--blue);--primary-100:var(--blue-line);--primary-50:var(--blue-bg);
  --ink:var(--n-900);--ink-2:var(--n-700);--muted:var(--n-500);--line:var(--n-200);--line-strong:var(--n-300);
  /* misure */
  --fs-label:11px;--fs-small:12px;--fs-text:13px;--fs-section:15px;--fs-amount:17px;--fs-title:20px;
  --h-ctl:36px;--h-ctl-sm:30px;--r-ctl:10px;--radius:12px;--radius-sm:8px;--gutter:16px;
}
@media (max-width:899px){:root{--h-ctl:40px;--h-ctl-sm:34px;--gutter:12px}}
body{font-size:var(--fs-text)}

/* ---------- pulsanti ---------- */
.btn{height:var(--h-ctl);border-radius:var(--r-ctl);font-size:var(--fs-text);font-weight:700;padding:0 14px;gap:7px}
.btn svg{width:16px;height:16px}
.btn-sm{height:var(--h-ctl-sm);font-size:var(--fs-small);padding:0 10px;border-radius:9px}
.btn-lg{height:44px;font-size:15px}
.btn-primary{background:var(--primary);border-color:var(--primary);color:#fff}.btn-primary:hover{background:var(--primary-700);border-color:var(--primary-700)}
.btn-success{background:var(--green);border-color:var(--green);color:#fff}
.btn-danger{background:var(--red);border-color:var(--red);color:#fff}
.btn-danger-ghost{background:#fff;color:var(--red);border-color:var(--red-line)}.btn-danger-ghost:hover{background:var(--red-bg)}
.btn-warning{background:var(--orange-bg);border-color:var(--orange-line);color:var(--orange)}
.btn-soft{background:var(--blue-bg);border-color:var(--blue-line);color:var(--blue)}

/* pulsanti icona delle liste: 32 computer · 36 telefono, colore = significato */
.action-btn{width:32px;height:32px;border-radius:9px;border:1px solid var(--gray-line);background:var(--gray-bg);color:var(--gray)}
.action-btn svg{width:16px;height:16px}
.action-btn:hover{background:var(--gray);border-color:var(--gray);color:#fff}
.action-btn.danger,.action-btn[data-act*="Delete"],.action-btn[data-act*="Del"]:not([data-act*="Deliver"]){background:var(--red-bg);border-color:var(--red-line);color:var(--red)}
.action-btn.danger:hover,.action-btn[data-act*="Delete"]:hover{background:var(--red);border-color:var(--red);color:#fff}
.action-btn[data-act*="Preview"],.action-btn[data-act*="preview"],.action-btn[data-act*="View"],.action-btn[data-act*="Open"],.action-btn[data-act^="open"],.action-btn[data-act$="Peek"]{background:var(--blue-bg);border-color:var(--blue-line);color:var(--blue)}
.action-btn[data-act*="Preview"]:hover,.action-btn[data-act*="View"]:hover,.action-btn[data-act*="Open"]:hover,.action-btn[data-act^="open"]:hover{background:var(--blue);border-color:var(--blue);color:#fff}
.action-btn[data-act*="Pay"],.action-btn[data-act*="pay"],.action-btn[data-act*="Incass"],.action-btn[data-act*="Deliver"],.action-btn[data-act*="wa"],.action-btn[data-act*="Wa"]{background:var(--green-bg);border-color:var(--green-line);color:var(--green)}
.action-btn[data-act*="Pay"]:hover,.action-btn[data-act*="Deliver"]:hover,.action-btn[data-act*="wa"]:hover{background:var(--green);border-color:var(--green);color:#fff}
@media (max-width:899px){.action-btn{width:36px;height:36px}.action-btn svg{width:18px;height:18px}}
.icon-btn{border-radius:var(--r-ctl)}

/* ---------- stati: sempre la stessa etichetta ---------- */
.badge{height:24px;padding:0 10px;border-radius:999px;font-size:var(--fs-small);font-weight:700;gap:6px;border:0}
.badge::before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor;flex:0 0 auto}
.badge.tone-blue,.badge.tone-teal{background:var(--blue-bg);color:var(--blue)}
.badge.tone-green{background:var(--green-bg);color:var(--green)}
.badge.tone-orange{background:var(--orange-bg);color:var(--orange)}
.badge.tone-red{background:var(--red-bg);color:var(--red)}
.badge.tone-violet{background:var(--violet-bg);color:var(--violet)}
.badge.tone-gray,.badge.tone-slate{background:var(--gray-bg);color:var(--gray)}
.badge.tone-amber{background:var(--orange-bg);color:var(--orange)}.badge.tone-amber::before{background:currentColor}
/* pulsante-stato: l'etichetta con la freccia; la striscia a sinistra indica la priorità (rosso alta · arancio media · grigio bassa) */
.badge-btn{gap:2px;border-radius:999px}
.prio-mark .badge{border-left:4px solid transparent;border-radius:4px 999px 999px 4px}
.prio-mark.p-alta .badge{border-left-color:var(--red)}.prio-mark.p-media .badge{border-left-color:var(--orange-500)}.prio-mark.p-bassa .badge{border-left-color:var(--n-400)}

/* ---------- campi: etichetta sopra, stessa distanza ---------- */
.input,.select{height:var(--h-ctl);border-radius:var(--r-ctl);font-size:var(--fs-text)}
textarea.input{height:auto}
.field{gap:5px}
.field-label{font-size:var(--fs-label);font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--muted)}
.field-label .req,.field-label i.req,.req{color:var(--red);font-style:normal}
.field-hint{font-size:var(--fs-label);color:var(--muted)}
.filter-field>span{font-size:var(--fs-label);font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--muted)}
/* accesso: 16 px per non far ingrandire la pagina sul telefono */
.gate-f .input,.auth-in .input{font-size:16px}

/* ---------- avvisi ---------- */
.notice{border-radius:var(--r-ctl);font-size:var(--fs-text);border:1px solid var(--orange-line);background:var(--orange-bg);color:var(--orange-700)}
.notice.info{background:var(--blue-bg);border-color:var(--blue-line);color:var(--blue)}
.notice.success{background:var(--green-bg);border-color:var(--green-line);color:var(--green-700)}
.notice.warning{background:var(--orange-bg);border-color:var(--orange-line);color:var(--orange-700)}
.notice.danger{background:var(--red-bg);border-color:var(--red-line);color:var(--red-700)}

/* ---------- schede e contatori ---------- */
.card{border-radius:var(--radius)}
.card-head h3,.card-head h2{font-size:var(--fs-section)}
.kpi{border-left:4px solid var(--blue);padding:10px 12px;gap:10px;background:linear-gradient(160deg,var(--blue-bg),#fff 75%)}
.kpi.tone-green{border-left-color:var(--green);background:linear-gradient(160deg,var(--green-bg),#fff 75%)}
.kpi.tone-orange{border-left-color:var(--orange);background:linear-gradient(160deg,var(--orange-bg),#fff 75%)}
.kpi.tone-red{border-left-color:var(--red);background:linear-gradient(160deg,var(--red-bg),#fff 75%)}
.kpi.tone-violet{border-left-color:var(--violet);background:linear-gradient(160deg,var(--violet-bg),#fff 75%)}
.kpi.tone-gray,.kpi.tone-slate{border-left-color:var(--gray);background:linear-gradient(160deg,var(--gray-bg),#fff 75%)}
.kpi.tone-teal{border-left-color:var(--blue)}
.kpi-ic{width:36px;height:36px;border-radius:10px}
.kpi-label{font-size:var(--fs-label);letter-spacing:.04em}
.kpi.tone-blue .kpi-label,.kpi.tone-teal .kpi-label{color:var(--blue)}.kpi.tone-green .kpi-label{color:var(--green)}.kpi.tone-orange .kpi-label{color:var(--orange)}.kpi.tone-red .kpi-label{color:var(--red)}.kpi.tone-violet .kpi-label{color:var(--violet)}
.kpi-value{font-size:var(--fs-amount)}
.kpi-sub{font-size:var(--fs-small)}
.tone-teal .kpi-ic{background:var(--blue-bg);color:var(--blue)}.tone-slate .kpi-ic{background:var(--gray-bg);color:var(--gray)}

/* ---------- tabelle (da 900 px) ---------- */
.table{font-size:var(--fs-text)}
.table th{font-size:var(--fs-label);letter-spacing:.05em}

/* ---------- barra della pagina: ricerca e filtri a sinistra, comandi a destra (V258: una riga sola ovunque) ---------- */
.toolbar{gap:8px}
.toolbar.tb-std{position:relative}
.tb-actions{display:flex;align-items:center;gap:8px;margin-left:auto}
.tb-actions>.btn-primary{order:99} /* il comando principale è sempre l'ultimo a destra */
.tb-info{font-size:var(--fs-small);color:var(--muted)}
/* "⋯ altri comandi": sul computer i pulsanti restano in fila */
.tb-more{display:contents}
.tb-more-btn{display:none!important}
.tb-more-pop{display:contents}
/* pannello filtri e ordinamento: compatto, sempre dentro lo schermo */
.tb-filters-pop{padding:10px!important;gap:8px!important;display:none;grid-template-columns:repeat(2,minmax(0,1fr));width:min(420px,calc(100vw - 24px));min-width:0!important;max-height:min(70vh,520px);overflow:auto}
.tb-filters.open .tb-filters-pop{display:grid!important}
.tb-filters-pop .filter-field{gap:3px!important}
.tb-filters-pop .filter-field>span{font-size:var(--fs-label)!important;letter-spacing:.04em}
.tb-filters-pop .select,.tb-filters-pop .input{height:34px!important;flex:none!important;width:100%!important}
.tb-filters-pop .filter-field{flex:none!important;min-width:0!important;width:auto!important}
.tb-filters-pop{grid-auto-rows:min-content;align-content:start;height:auto!important}
.tb-filters-pop>*:only-child,.tb-filters-pop .tb-sort{grid-column:1/-1}
.tb-sort{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:end;border-top:1px solid var(--line);padding-top:8px;margin-top:2px}
.tb-filters.only-sort .tb-sort{border-top:0;padding-top:0;margin-top:0}
.tb-sort-dir{display:flex;gap:4px}
.tb-sort-dir .btn{height:34px}
@media (max-width:899px){
  /* telefono e tablet: [ricerca][filtri][⋯][+] su una riga; il riepilogo sotto, piccolo */
  #app .toolbar.tb-std{flex-wrap:wrap!important;row-gap:6px}
  #app .toolbar.tb-std>.seg,#app .toolbar.tb-std>.tabs,#app .toolbar.tb-std>.q-tabs{order:0!important;flex:1 1 100%!important;max-width:100%!important;overflow-x:auto;scrollbar-width:none}
  #app .toolbar.tb-std>.toolbar-fill{flex:1 1 0!important;min-width:90px!important;order:1}
  #app .toolbar.tb-std>.toolbar-fill .search-box,#app .toolbar.tb-std>.toolbar-fill .input{width:100%!important;min-width:0!important}
  #app .toolbar.tb-std>.tb-filters{order:2;position:static!important}
  #app .toolbar.tb-std>.clear-filters,#app .toolbar.tb-std>[data-act="clearFilters"]{order:3!important;flex:0 0 auto!important;width:var(--h-ctl)!important;padding:0!important}
  #app .toolbar.tb-std>.clear-filters>span{display:none}
  #app .toolbar.tb-std>.tb-actions{order:4;flex:0 0 auto!important;width:auto!important;margin-left:0!important;display:flex!important;flex-wrap:nowrap!important;gap:6px!important;position:static}
  #app .toolbar.tb-std>.tb-actions>.tb-info{order:20!important;position:absolute;left:12px;right:12px;bottom:6px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-align:left!important;font-size:var(--fs-label)}
  #app .toolbar.tb-std:has(.tb-actions>.tb-info){padding-bottom:24px!important}
  #app .toolbar.tb-std>.tb-filters .tb-filters-btn,#app .toolbar.tb-std>.tb-actions>.btn,#app .toolbar.tb-std .tb-more-btn{width:var(--h-ctl)!important;min-width:var(--h-ctl)!important;padding:0!important;flex:0 0 auto!important}
  #app .toolbar.tb-std>.tb-filters .tb-filters-btn>span,#app .toolbar.tb-std>.tb-actions>.btn>span,#app .toolbar.tb-std>.tb-actions>.btn>svg:nth-of-type(2){display:none!important}
  #app .toolbar.tb-std>.tb-filters .tb-filters-btn{position:relative}
  #app .toolbar.tb-std>.tb-filters .tb-filters-n{position:absolute;top:-6px;right:-6px}
  #app .toolbar.tb-std>.tb-actions>.btn:not(:has(svg)){width:auto!important;padding:0 10px!important}
  #app .toolbar.tb-std>.tb-actions>.btn:not(:has(svg))>span{display:inline!important}
  /* pannelli che si aprono dalla barra: larghi quanto la barra, mai fuori schermo */
  #app .toolbar.tb-std .tb-filters-pop{position:absolute!important;top:calc(100% + 6px)!important;left:0!important;right:0!important;width:auto!important;z-index:45}
  .tb-more{display:block;position:static}
  .tb-more-btn{display:inline-flex!important}
  .tb-more-pop{display:none;position:absolute;top:calc(100% + 6px);right:0;z-index:45;min-width:220px;max-width:calc(100vw - 24px);background:#fff;border:1px solid var(--line);border-radius:12px;box-shadow:0 12px 32px rgba(16,24,40,.18);padding:6px;flex-direction:column;gap:4px}
  .tb-more.open .tb-more-pop{display:flex}
  .tb-more-pop>.btn,.tb-more-pop .btn{width:100%!important;justify-content:flex-start!important;height:var(--h-ctl)!important;border-color:transparent!important;background:#fff;padding:0 10px!important}
  .tb-more-pop>.btn:hover{background:var(--gray-bg)}
  .tb-more-pop>.btn>span{display:inline!important}
  .tb-more-pop>.btn>svg:nth-of-type(2){display:none}
  .tb-more.open>.tb-more-btn{background:var(--gray-bg)}
}
@media (max-width:420px){.tb-filters-pop{grid-template-columns:minmax(0,1fr)}}

/* ---------- finestre: principale a destra, elimina a sinistra ---------- */
.modal-foot{gap:8px}
.modal-foot .btn-primary,.modal-foot .btn-success{order:99}
.modal-foot .btn-danger,.modal-foot .btn-danger-ghost,.modal-foot [data-act*="Delete"]{order:-1;margin-right:auto}
.form-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap;justify-content:flex-end}
.form-actions .btn-primary{order:99}

/* ---------- una scheda per riga sotto i 900 px (niente 2 colonne: si filtra meglio a occhio) ---------- */
@media (max-width:899px){
  .works-table .table tbody,.cards-clients .table tbody,.cards-sched .table tbody{grid-template-columns:minmax(0,1fr)!important}
}

/* ---------- titoli ---------- */
.page-heading h1,.topbar h1{font-size:var(--fs-title)}
.set-head h3{font-size:var(--fs-section)}

/* ---------- contatori grandi sul telefono: 2 per riga, importi sempre interi (i contatori piccoli restano in fila) ---------- */
@media (max-width:599px){
  .page .kpi-row:not(.kpi-mini){--bal:2!important;display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:8px!important}
  .page .kpi-row:not(.kpi-mini)>*{flex:none!important;max-width:none!important;width:auto!important}
  .kpi-label{white-space:normal!important;line-height:1.2}
  .page .kpi-row:not(.kpi-mini) .kpi-value{font-size:15px!important;overflow:visible!important;white-space:nowrap}
}

/* ---------- V258: carico e scarico sempre uguali: verde "+" e arancio "−"; dove non c'è spazio solo il segno ---------- */
.btn[data-act="stockMove"][data-type="Carico"]{background:var(--green-bg)!important;border-color:var(--green-line)!important;color:var(--green)!important}
.btn[data-act="stockMove"][data-type="Carico"]:hover{background:var(--green)!important;border-color:var(--green)!important;color:#fff!important}
.btn[data-act="stockMove"][data-type="Scarico"]{background:var(--orange-bg)!important;border-color:var(--orange-line)!important;color:var(--orange)!important}
.btn[data-act="stockMove"][data-type="Scarico"]:hover{background:var(--orange)!important;border-color:var(--orange)!important;color:#fff!important}
.btn[data-act="stockMove"] svg{stroke-width:2.6}
@media (max-width:899px){
  #app .toolbar .btn[data-act="stockMove"],.table .btn[data-act="stockMove"],.cards-auto .btn[data-act="stockMove"]{width:var(--h-ctl)!important;min-width:var(--h-ctl)!important;padding:0!important}
  #app .toolbar .btn[data-act="stockMove"]>span,.table .btn[data-act="stockMove"]>span{display:none!important}
}
@media (max-width:479px){
  .btn[data-act="stockMove"]{min-width:var(--h-ctl)!important;padding:0 8px!important}
  .btn[data-act="stockMove"]>span{display:none!important}
}

/* ---------- V258: righe "Reso" (spese, DDT, fatture ricevute): un solo colore uniforme su tutta la riga ---------- */
tr.is-reso>td{background:var(--red-bg)!important}
tr.is-reso>td:first-child{box-shadow:inset 3px 0 0 var(--red)}
tr.is-reso td.money,tr.is-reso td .money{color:var(--red)!important}
tr.is-reso .input,tr.is-reso .select{border-color:var(--red-line)!important;background:#fff!important}
@media (max-width:899px){
  .sp-table tbody tr.is-reso{background:var(--red-bg)!important;opacity:1!important;border-color:var(--red-line)!important;box-shadow:inset 3px 0 0 var(--red)!important}
  .sp-table tbody tr.is-reso>td{background:transparent!important;box-shadow:none!important}
}

/* ---------- V258: righe di spese / DDT / fatture ricevute tra 600 e 899 px: 4 colonne uguali (niente importi accavallati) ---------- */
@media (min-width:600px) and (max-width:899px){
  .sp-table tbody tr:not(.empty-row):not(.is-note){grid-template-columns:repeat(4,minmax(0,1fr)) auto!important;grid-template-areas:"art desc desc desc act" "qty price disc gross act" "net full sell reso act"!important}
  .sp-table td[data-label="Totale senza IVA con sconto"],.sp-table td[data-label="Totale con IVA senza sconto"]{text-align:left!important}
}

/* ---------- V258: animazioni (Impostazioni › Aspetto › Interfaccia e animazioni) ---------- */
@keyframes pgEnter{from{opacity:.55;transform:translateY(6px)}to{opacity:1;transform:none}} /* V260: niente pagina bianca: parte già visibile (sui tablet lenti sembrava un doppio caricamento) */
@keyframes mdEnter{from{opacity:0;transform:translateY(14px) scale(.98)}to{opacity:1;transform:none}}
@keyframes mdSide{from{opacity:.4;transform:translateX(40px)}to{opacity:1;transform:none}}
@keyframes bdEnter{from{opacity:0}to{opacity:1}}
.page.pg-enter{animation:pgEnter .16s ease-out backwards}
.modal-backdrop:not(.anim-done){animation:bdEnter .18s ease-out both}
.modal-backdrop>.modal:not(.anim-done){animation:mdEnter .22s cubic-bezier(.2,.8,.2,1) both}
@media (max-width:899px){.modal-backdrop>.modal:not(.anim-done){animation:mdSide .24s cubic-bezier(.2,.8,.2,1) both}}
/* V260: ogni animazione d'entrata si fa una volta sola (classe anim-done alla fine) */
.tb-filters.open .tb-filters-pop,.tb-more.open .tb-more-pop,.popover{animation:mdEnter .16s ease-out both}
/* spente: niente animazioni né transizioni in tutto il gestionale */
html.no-anim *,html.no-anim *::before,html.no-anim *::after{animation:none!important;transition:none!important}
@media (prefers-reduced-motion:reduce){.page.pg-enter,.modal-backdrop,.modal-backdrop>.modal{animation:none!important}}

/* ---------- V258: schede a linguette con contatore (Qualità, Scadenze e RiBa, ...): in fila e scorrevoli, mai accavallate ---------- */
@media (max-width:1099px){
  #app .riba-tabs,#app .q-tabs{display:flex!important;flex-wrap:nowrap!important;overflow-x:auto!important;scrollbar-width:none;gap:6px!important;grid-template-columns:none!important}
  #app .riba-tabs::-webkit-scrollbar,#app .q-tabs::-webkit-scrollbar{display:none}
  #app .riba-tabs>*,#app .q-tabs>*{flex:0 0 auto!important;width:auto!important;max-width:none!important;white-space:nowrap!important}
  #app .q-tabs .seg-btn{display:inline-flex;align-items:center;gap:6px}
}
/* Cassa IN/OUT: le righe sotto l'importo vanno a capo invece di accavallarsi */
.tx-ig,.cash-tile{min-width:0}
.cash-tile small,.cash-tile span,.tx-ig small{white-space:normal!important;overflow-wrap:anywhere}

/* ---------- V258: cataloghi (veicoli, gomme) su telefono e tablet: le colonne si allungano, la pagina scorre (niente riquadri sovrapposti) ---------- */
@media (max-width:899px){
  #app .page:has(.vp-page){overflow-y:auto!important;height:100%}
  #app .vp-page,#app .vp-box,#app .vp-page .tp-grid,#app .vp-page .vp-cols{height:auto!important;max-height:none!important;flex:none!important;overflow:visible!important}
  #app .vp-page .vp-col{min-height:220px}
}
/* elenco documenti a schede sui telefoni stretti: data e totale non si accavallano */
@media (max-width:420px){
  #app .cards-doc .table tbody tr:not(.empty-row){grid-template-columns:auto minmax(0,1fr) auto!important}
  #app .cards-doc td[data-label="Data"]{white-space:nowrap}
  #app .cards-doc td[data-label="Totale"]{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;justify-self:stretch!important;text-align:right}
  #app .cards-doc td[data-label="Totale"] small,#app .cards-doc td[data-label="Totale"] .muted{display:none!important}
}

/* ---------- V258: panoramica delle impostazioni a colonne (niente spazi vuoti tra i gruppi) ---------- */
@media (min-width:900px){
  .set-none .set-groups{display:block!important;column-count:3;column-gap:12px}
  .set-none .set-group{break-inside:avoid;margin:0 0 12px!important;display:block;overflow:hidden}
  .set-none .settings-tab,.set-none .set-tx{min-width:0}
  .set-none .set-tx small{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
}
@media (min-width:900px) and (max-width:1199px){.set-none .set-groups{column-count:2}}
.set-none .set-group[hidden],.settings-tab[hidden]{display:none!important}
.set-intro{flex-wrap:wrap}
.set-search{flex:1 1 260px;margin-left:auto;max-width:420px}
@media (max-width:599px){.set-search{max-width:none;flex-basis:100%}}
@media (max-width:899px){
  .set-none .set-groups>.set-group{min-width:0!important;max-width:100%}
  .set-none .set-group{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  .set-none .settings-tab{min-width:0!important}
  .set-none .set-tx b{white-space:normal!important;overflow-wrap:anywhere}
}

/* ---------- V258: campi che non escono dalla loro cella (righe dei documenti tra 900 e 1199 px, riquadri pagamento) ---------- */
.field .input,.field .select{max-width:100%}
/* telefoni stretti: codice e ubicazione degli articoli, data dei crediti */
@media (max-width:420px){
  #app .cards-auto td strong.mono,#app .cards-cr td .cell-2{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:block}
}

/* ---------- V259: targa sempre uguale: fasce blu ai due lati, testo al centro (anche quando è allargata nelle tabelle) ---------- */
.plate{align-items:stretch!important;justify-content:space-between!important;border:1.5px solid var(--blue-700);border-radius:5px}
.plate::before,.plate::after{flex:0 0 auto}
.plate-txt{flex:1 1 auto;justify-content:center;text-align:center}
.plate{width:auto!important;max-width:none!important;box-sizing:border-box}
.table td .plate,.table-card .table .plate{min-width:96px!important}
.plate-txt{min-width:max-content}

/* ---------- V259: gruppi delle schede più evidenti (come le righe "Reso"): fondo tenue del colore del gruppo, bordo più marcato ---------- */
section.card.ar-party,section.card.ar-doc,section.card.ar-notes,section.card.ar-lines,section.card.ar-pay,section.card.ar-sum,section.card.ar-files,section.card.td-pay,
.work-form .wf-vehicle,.work-form .wf-job,.work-form .wf-notes,.work-form .wf-lines,.work-form .wf-when,.work-form .wf-money,.work-form .wf-actions{
  background:linear-gradient(180deg,color-mix(in srgb,var(--gb) 70%,#fff),#fff 160px)!important;
  border:1.5px solid color-mix(in srgb,var(--g) 40%,#fff)!important;border-left:5px solid var(--g)!important;
  box-shadow:0 1px 2px rgba(16,24,40,.05),0 4px 14px color-mix(in srgb,var(--g) 10%,transparent)!important}
section.card[class*="ar-"]>.card-head,section.card.td-pay>.card-head,.work-form [class*="wf-"]>.card-head{background:linear-gradient(90deg,color-mix(in srgb,var(--g) 14%,#fff),transparent 75%)!important;border-bottom:1px solid color-mix(in srgb,var(--g) 25%,#fff)!important}
/* intestazione delle schede: gli angoli in alto seguono quelli della scheda */
.card>.card-head:first-child{border-top-left-radius:calc(var(--radius) - 2px);border-top-right-radius:calc(var(--radius) - 2px)}
section.card[class*="ar-"]>.card-head:first-child{border-top-left-radius:0}

/* ---------- V259: Metodi di pagamento: la colonna dei pulsanti ha sempre la stessa larghezza (righe allineate) ---------- */
@media (min-width:1101px){
  .pm-row{grid-template-columns:44px minmax(130px,1fr) minmax(150px,.9fr) minmax(220px,1.2fr) 96px 86px 148px!important}
  .pm-row>:nth-child(7){display:flex;justify-content:flex-end;gap:4px}
}

/* ---------- V259: deviatore Netto / Lordo (IVA) con cursore che scorre ---------- */
.vat-sw{position:relative;display:inline-grid;grid-template-columns:1fr 1fr;align-items:stretch;padding:3px;border-radius:12px;background:var(--gray-bg);border:1px solid var(--gray-line);min-width:210px;isolation:isolate;flex:0 0 auto}
.vat-thumb{position:absolute;z-index:0;top:3px;bottom:3px;left:3px;width:calc(50% - 3px);border-radius:9px;background:#fff;box-shadow:0 1px 3px rgba(16,24,40,.14),0 0 0 1px var(--blue-line);transition:transform .22s cubic-bezier(.2,.8,.2,1),box-shadow .22s}
.vat-sw[data-v="gross"] .vat-thumb{transform:translateX(100%);box-shadow:0 1px 3px rgba(16,24,40,.14),0 0 0 1px var(--violet-line)}
.vat-opt{position:relative;z-index:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:0;padding:4px 12px;min-height:calc(var(--h-ctl) - 6px);border-radius:9px;color:var(--muted);line-height:1.1;transition:color .2s}
.vat-opt b{font-size:var(--fs-text);font-weight:700}.vat-opt small{font-size:var(--fs-label)}
.vat-opt.on{color:var(--blue)}
.vat-sw[data-v="gross"] .vat-opt.on{color:var(--violet)}
@media (max-width:599px){.vat-sw{min-width:180px}.vat-opt{padding:3px 8px}}
/* targa anche nelle tendine di ricerca ("Nuovo veicolo con targa") */
.combo-item .plate,.combo-create .plate{gap:0!important;display:inline-flex!important;padding:0!important;height:26px}
.combo-item .plate::before,.combo-item .plate::after{content:""!important;display:block!important;width:7px!important;background:var(--blue)!important;flex:0 0 7px}
.combo-item .plate-txt,.combo-create .plate-txt{display:flex!important;gap:0!important;padding:0 8px!important;flex-direction:row!important}

/* ---------- V259/V260 · leasing, mutui e prestiti (stesso schema della scheda credito) ---------- */
.fin-prog{display:flex;align-items:center;gap:8px;min-width:110px}
.fin-prog span{flex:1;height:7px;border-radius:99px;background:var(--line,var(--n-200));position:relative;overflow:hidden}
.fin-prog span::after{content:"";position:absolute;inset:0 auto 0 0;width:var(--p);background:linear-gradient(90deg,var(--green-500),var(--green-500));border-radius:inherit}
.fin-prog small{font-variant-numeric:tabular-nums;color:var(--muted)}
.fin-plan tr.is-paid td{background:var(--green-bg,var(--green-bg))}
.fin-plan td.money,.fin-plan th.money{text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}
.fin-hint{margin:10px 14px 0!important}
.fin-info{display:grid;grid-template-columns:max-content minmax(0,1fr);gap:6px 14px;margin:0;padding:12px 16px;font-size:13px}
.fin-info dt{color:var(--muted);font-weight:600}.fin-info dd{margin:0;font-weight:700;overflow-wrap:anywhere}
.lim-off{opacity:.45;pointer-events:none}
@media (max-width:899px){
  .fin-plan thead{display:none}
  .fin-plan,.fin-plan tbody{display:block}
  .fin-plan tr{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:4px 12px;padding:10px 12px;border-bottom:1px solid var(--line,var(--n-200))}
  .fin-plan td{display:flex;flex-direction:column;border:0!important;padding:0!important;text-align:left!important}
  .fin-plan td.hide-sm{display:none!important}
  .fin-plan td[data-label]::before{content:attr(data-label);font-size:.72rem;color:var(--muted);text-transform:uppercase;letter-spacing:.03em}
  .fin-plan td.col-actions{flex-direction:row;justify-content:flex-end;align-items:center}
}

/* ---------- V259 · documento da più lavori ---------- */
.doc-works{display:flex;flex-wrap:wrap;gap:6px;align-items:center;min-height:38px}
.doc-work-chip{display:inline-flex;align-items:center;gap:6px;padding:3px 4px 3px 6px;border:1px solid var(--line,var(--n-200));border-radius:10px;background:var(--surface-2,var(--n-50));font-size:.85rem}
.doc-work-chip .link{font-weight:700}
.doc-work-chip small{color:var(--muted)}
.doc-work-chip .x{display:grid;place-items:center;width:22px;height:22px;border:0;border-radius:6px;background:transparent;color:var(--muted);cursor:pointer}
.doc-work-chip .x:hover{background:var(--red-bg);color:var(--red-500)}
.doc-work-chip .x svg{width:13px;height:13px}
.dw-list{display:flex;flex-direction:column;gap:6px;max-height:min(60vh,520px);overflow:auto;margin-top:10px}
.dw-row{display:grid;grid-template-columns:auto auto minmax(0,1fr) auto;gap:10px;align-items:center;padding:8px 10px;border:1px solid var(--line,var(--n-200));border-radius:10px;cursor:pointer}
.dw-row:has(input:checked){border-color:var(--primary,var(--blue-500));background:color-mix(in srgb,var(--primary,var(--blue-500)) 6%,transparent)}
.dw-row input{width:18px;height:18px}
.dw-main{display:flex;flex-direction:column;min-width:0}
.dw-main b,.dw-main small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.dw-main small{color:var(--muted)}
.dw-side{display:flex;flex-direction:column;align-items:flex-end;gap:2px;font-size:.85rem}
.dw-side small{font-size:.74rem;color:var(--muted)}
.dw-row.is-off{opacity:.6;cursor:default}
.dw-row.is-other{opacity:.35;cursor:not-allowed}
@media (max-width:600px){.dw-row{grid-template-columns:auto minmax(0,1fr) auto}.dw-row .plate{display:none}}
tr.is-note.is-ref td{font-weight:700}
.note-cell .ref-in{field-sizing:content;height:auto!important;max-height:none!important;text-align:left!important;overflow:hidden;min-height:0;resize:none;line-height:1.35;padding-top:7px;padding-bottom:7px;font-weight:700;white-space:pre-wrap}

/* ---------- V260 · un solo confine: sotto i 900 px telefono/tablet verticale (schede), da 900 px in su computer (tabelle).
   Tra 900 e 1299 px le tabelle con caselle restano tabelle: se lo spazio non basta scorrono di lato, mai caselle schiacciate. ---------- */
@media (min-width:900px) and (max-width:1299px){
  .table-wrap:has(>.sp-table),.table-wrap:has(>.doc-lines),.lines-wrap{overflow-x:auto!important}
  .sp-table{min-width:1120px}
  .sp-table td .input[data-num],.doc-lines td .input[data-num]{min-width:64px!important}
  .sp-table td[data-label=Descrizione]{min-width:180px}
  .doc-lines{min-width:900px}
  .doc-lines th,.sp-table th{white-space:normal!important;line-height:1.15}
  .doc-lines col.c-qty{width:72px!important}.doc-lines col.c-price{width:100px!important}.doc-lines col.c-cost{width:86px!important}.doc-lines col.c-disc{width:68px!important}.doc-lines col.c-tot{width:96px!important}.doc-lines col.c-n{width:32px!important}
}

/* ---------- V260 · pagina Stile grafico (riferimento) ---------- */
.sg{display:flex;flex-direction:column;gap:12px}
.sg-sec .card-head h3{display:flex;align-items:center;gap:8px}
.sg-n{display:inline-grid;place-items:center;width:24px;height:24px;border-radius:7px;background:var(--primary-50);color:var(--primary);font-size:12px;font-weight:800}
.sg-sec .card-body{display:flex;flex-direction:column;gap:10px}
.sg-sec .card-body>p{margin:0;line-height:1.5}
.sg-code{display:flex;gap:8px;align-items:flex-start;margin:4px 0 0!important;padding:8px 10px;border-radius:9px;background:var(--surface-2,var(--blue-bg));font:12px/1.45 ui-monospace,Menlo,Consolas,monospace;color:var(--muted)}
.sg-code svg{width:14px;height:14px;flex:none;margin-top:2px}
.sg-colors{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.sg-color{display:flex;gap:10px;align-items:flex-start;padding:10px;border:1px solid var(--line);border-radius:10px}
.sg-color div{display:flex;flex-direction:column}.sg-color small{color:var(--muted)}
.sg-badges,.sg-btns{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.sg-btns .grow{flex:1}
.sg-inl{display:inline-flex;align-items:center;gap:6px;color:var(--muted);font-size:13px;margin-left:8px}.sg-inl svg{width:16px;height:16px}
.sg-rules{margin:0;padding-left:18px;line-height:1.7}
.sg .ps-head .chip svg{width:14px;height:14px}
@media (max-width:899px){.sg-colors{grid-template-columns:1fr}}

/* ---------- V260 · Impostazioni sul telefono: elenco a righe → la sezione si apre come pagina, "‹ Impostazioni" per tornare ---------- */
.set-backbar{display:none}
@media (max-width:899px){
  .settings.v220 .settings-grid:not(.set-none)>.settings-nav{display:none!important}
  .set-backbar{display:flex;align-items:center;gap:6px;width:100%;margin:0 0 10px;padding:10px 12px;border:1px solid var(--line);border-radius:12px;background:#fff;box-shadow:var(--shadow);font-weight:800;font-size:15px;color:var(--primary);text-align:left}
  .set-backbar svg{width:18px;height:18px}
  .set-backbar small{margin-left:auto;color:var(--muted);font-weight:700;font-size:11px;text-transform:uppercase;letter-spacing:.04em}
  .settings.v220 .set-card .set-head{padding:12px 14px}
  .settings.v220 .set-card .set-head p{display:none}
  /* elenco: una riga per sezione, con spiegazione e freccia */
  .set-none .set-group{display:flex!important;flex-direction:column;gap:0!important;padding:0!important;overflow:hidden}
  .set-none .set-gh{padding:10px 14px 6px}
  .set-none .settings-tab{display:flex!important;flex-direction:row!important;align-items:center;gap:12px;width:100%;min-height:58px;padding:9px 14px!important;border:0!important;border-top:1px solid var(--line)!important;border-radius:0!important;background:#fff!important;box-shadow:none!important;text-align:left}
  .set-none .settings-tab .set-ic{flex:none}
  .set-none .settings-tab .set-tx{display:flex;flex-direction:column;min-width:0;flex:1}
  .set-none .settings-tab .set-tx small{display:block!important;color:var(--muted);font-weight:500;font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .set-none .settings-tab::after{content:"›";font-size:22px;line-height:1;color:var(--muted);flex:none}
}

/* ---------- V260 · fotocamera targa: cerchio di avanzamento centrato + percentuale ----------
   grigio = in attesa · arancio con % = si prepara (motore e modelli) · verde ✓ = pronta · rosso ! = errore · blu che gira = sta leggendo la foto */
#app .cam-btn{width:52px;height:52px;align-self:center;padding:0;display:grid;place-items:center;position:relative;overflow:visible}
#app .cam-btn>svg.ic{width:22px;height:22px;position:relative;z-index:1;margin-top:-6px}
.cam-ring{position:absolute;left:50%;top:50%;width:44px;height:44px;margin:-22px 0 0 -22px;border-radius:50%;
  background:conic-gradient(var(--rc,var(--n-300)) calc(var(--p,0) * 1%), rgba(148,163,184,.25) 0);
  -webkit-mask:radial-gradient(farthest-side,transparent calc(100% - 4px),#000 calc(100% - 3.5px));mask:radial-gradient(farthest-side,transparent calc(100% - 4px),#000 calc(100% - 3.5px));transition:background .3s}
.cam-badge{position:absolute;left:0;right:0;bottom:5px;text-align:center;font-size:10px;font-weight:800;line-height:1;z-index:1;font-variant-numeric:tabular-nums}
.cam-btn.st-idle{--rc:var(--n-400)}
.cam-btn.st-loading{--rc:var(--orange-500);color:var(--orange);background:var(--orange-bg);border-color:var(--orange-400)}
.cam-btn.st-loading .cam-ring{animation:camPulse 1.2s ease-in-out infinite}
.cam-btn.st-ready{--rc:var(--green)}
.cam-btn.st-error{--rc:var(--red-500)}
.cam-btn.busy{--rc:var(--blue-500);color:var(--blue);background:var(--blue-bg);border-color:var(--blue-400);cursor:progress}
.cam-btn.busy .cam-ring{background:conic-gradient(var(--blue-500) 0 28%, rgba(37,99,235,.15) 0);animation:camSpin .9s linear infinite}
.cam-btn.busy .cam-badge{visibility:hidden}
.cam-dot{display:none}
@keyframes camSpin{to{transform:rotate(360deg)}}
@keyframes camPulse{50%{opacity:.6}}
.client-row.is-new .combo-ic{display:none} /* V260: cliente nuovo: i campi non cercano */
.fin-sum-empty{display:flex;gap:8px;align-items:flex-start;margin:0}.fin-sum-empty svg{width:16px;height:16px;flex:none;margin-top:2px}

/* ---------- V260 · contatori in alto sul telefono: su due righe distribuiti in modo uguale (4 = 2+2, 5 = 3+2, 6 = 3+3, mai 3+1) ---------- */
@media (max-width:599px){
  #app .kpi-row.kpi-mini{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;grid-auto-flow:row!important;gap:6px!important}
  #app .kpi-row.kpi-mini:has(>:nth-child(3):last-child),#app .kpi-row.kpi-mini:has(>:nth-child(5)){grid-template-columns:repeat(3,minmax(0,1fr))!important}
  #app .kpi-row.kpi-mini:has(>:nth-child(7)){grid-template-columns:repeat(4,minmax(0,1fr))!important}
  #app .kpi-row.kpi-mini:has(>:only-child){grid-template-columns:1fr!important}
  #app .kpi-row.kpi-mini>*{min-width:0!important;width:auto!important;flex:none!important}
}

/* ---------- V260 · leasing, mutui e conto rate a schede come i documenti ---------- */
@media (max-width:899px){
  #app .cards-fin .table tbody tr:not(.empty-row){grid-template-columns:minmax(0,1fr) auto auto auto!important;grid-template-areas:"name rata res act" "next kind st act"!important}
  #app .cards-fin .table td[data-label="Contratto"]{grid-area:name!important}
  #app .cards-fin .table td[data-label="Tipo"]{grid-area:kind!important;justify-self:end}
  #app .cards-fin .table td[data-label="Rata"]{grid-area:rata!important;text-align:right!important}
  #app .cards-fin .table td[data-label="Prossima"]{grid-area:next!important}
  #app .cards-fin .table td[data-label="Prossima"] .cell-2{display:flex!important;gap:6px;align-items:baseline}
  #app .cards-fin .table td[data-label="Residuo"]{grid-area:res!important;text-align:right!important;font-size:15px}
  #app .cards-fin .table td[data-label="Stato"]{grid-area:st!important;justify-self:end}
  #app .cards-fin .table td.col-actions{grid-area:act!important;align-self:center}
  #app .cards-fin .table td[data-label="Bene"],#app .cards-fin .table td[data-label="Scopo"],#app .cards-fin .table td[data-label="Rate pagate"]{display:none!important}
  #app .cards-finacc .table tbody tr:not(.empty-row){grid-template-columns:minmax(0,1fr) auto auto auto!important;grid-template-areas:"fin amt paid act" "due n st act"!important}
  #app .cards-finacc .table td[data-label="Contratto"]{grid-area:fin!important}
  #app .cards-finacc .table td[data-label="Scadenza"]{grid-area:due!important}
  #app .cards-finacc .table td[data-label="Scadenza"] .cell-2{display:flex!important;gap:6px;align-items:baseline}
  #app .cards-finacc .table td[data-label="Rata"]{grid-area:n!important;font-size:12px;color:var(--muted);text-align:right!important}
  #app .cards-finacc .table td[data-label="Importo"]{grid-area:amt!important;text-align:right!important;font-weight:800}
  #app .cards-finacc .table td[data-label="Pagato"]{display:block!important;grid-area:paid!important;text-align:right!important}
  #app .cards-finacc .table td[data-label="Stato"]{grid-area:st!important;justify-self:end}
  #app .cards-finacc .table td[data-label="Debito dopo"]{display:none!important}
  #app .cards-finacc .table td.col-actions{grid-area:act!important;align-self:center}
}
@media (max-width:420px){
  #app .cards-fin .table tbody tr:not(.empty-row){grid-template-columns:minmax(0,1fr) auto auto!important;grid-template-areas:"name name act" "next rata act" "kind res st"!important}
  #app .cards-finacc .table tbody tr:not(.empty-row){grid-template-columns:minmax(0,1fr) auto auto!important;grid-template-areas:"fin fin act" "due amt act" "n paid st"!important}
}
@media (max-width:899px){#app .cards-finacc .table td::before,#app .cards-fin .table td::before{content:none!important;display:none!important}}
/* V260 · tendina di ricerca dentro il campo sul telefono (iPhone) */
.combo-drop.inline{position:absolute!important;left:0;right:0;top:calc(100% + 4px);min-width:0!important;width:auto!important;max-height:min(320px,50vh)!important;z-index:60}
.combo:has(>.combo-drop.inline){z-index:60}

/* ---------- V260 · Agenda: frecce del GIORNO (blu, con calendario) diverse da quelle di OPERATORE / SQUADRA (viola, con persona) ---------- */
#app .ag-nav{background:var(--blue-bg);border:1px solid var(--blue-line);border-radius:12px;padding:3px;gap:3px}
#app .ag-nav [data-act=agStep]{color:var(--blue);background:#fff;border-color:var(--blue-line)}
#app .ag-nav [data-act=agStep]:hover{background:var(--blue-line)}
#app .ag-nav [data-act=agStep] svg{stroke-width:2.6}
#app .ag-op,#app .ag-team{background:var(--violet-bg);border:1px solid var(--violet-line);border-radius:12px;padding:3px;gap:3px}
#app .ag-op [data-act=agOpStep],#app .ag-team [data-act=agTeamStep],#app .ag-team [data-act=agPhonePage]{color:var(--violet);background:#fff;border-color:var(--violet-line)}
#app .ag-op [data-act=agOpStep]:hover,#app .ag-team [data-act=agTeamStep]:hover{background:var(--violet-bg)}
#app .ag-op [data-act=agOpStep] svg,#app .ag-team [data-act=agTeamStep] svg{stroke-width:2.6}
#app .ag-team>.field-label,#app .ag-team>label,#app .ag-team>span:first-child{color:var(--violet)}
/* V260 · permessi: le pagine del menu come interruttori compatti in testa a ogni gruppo */
.fn-pages{display:flex;flex-wrap:wrap;gap:6px;padding:10px 12px;border-bottom:1px dashed var(--line);align-items:center}
.fn-pages-l{display:inline-flex;align-items:center;gap:5px;font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);margin-right:4px}
.fn-pages-l svg{width:14px;height:14px}
.fn-page{display:inline-flex;align-items:center;gap:6px;padding:5px 10px 5px 8px;border:1px solid var(--line);border-radius:999px;background:#fff;font-size:13px;font-weight:600;cursor:pointer}
.fn-page:has(input:checked){border-color:var(--blue-400);background:var(--blue-bg);color:var(--blue)}
.fn-page.blocked{opacity:.5}
.fn-page input{width:15px;height:15px;margin:0}
/* V260 · conto fornitori su telefono/tablet: numero e descrizione dei documenti/DDT vanno a capo invece di essere tagliati */
@media (max-width:899px){
  #app .sa-table:not(.dp-table) td:nth-child(2) .cell-2>*{white-space:normal!important;overflow:visible!important;text-overflow:clip!important}
  #app .sa-table:not(.dp-table) td.money{white-space:nowrap}
}
/* V261 · suggerimento "Aggiungi alla schermata Home" */
.hh-box p{margin:0 0 10px;line-height:1.5}
.hh-steps{margin:0;padding-left:0;list-style:none;counter-reset:hh;display:flex;flex-direction:column;gap:8px}
.hh-steps li{counter-increment:hh;display:flex;gap:10px;align-items:flex-start;line-height:1.45}
.hh-steps li::before{content:counter(hh);flex:none;display:grid;place-items:center;width:24px;height:24px;border-radius:50%;background:var(--primary-50);color:var(--primary);font-weight:800;font-size:12px}
.modal-head h2 svg,.modal-title svg{width:18px;height:18px;vertical-align:-3px;margin-right:4px}
.hh-ic{float:right;width:64px;height:64px;border-radius:15px;margin:0 0 8px 12px;box-shadow:0 4px 12px rgba(8,101,242,.25)}
/* V263 · avviso piccolo "Installa" in basso */
.hh-banner{position:fixed;left:0;right:0;margin:0 auto;bottom:max(12px,env(safe-area-inset-bottom));z-index:120;display:flex;align-items:center;gap:10px;width:min(440px,calc(100vw - 20px));padding:8px 8px 8px 10px;background:#fff;border:1px solid var(--line);border-radius:14px;box-shadow:0 10px 30px rgba(15,23,42,.18);animation:mdEnter .2s ease-out both}
.hh-banner img{width:40px;height:40px;border-radius:10px;flex:none}
.hh-banner .hh-tx{display:flex;flex-direction:column;min-width:0;flex:1}
.hh-banner .hh-tx b{font-size:14px}
.hh-banner .hh-tx small{color:var(--muted);font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.hh-banner .btn{flex:none}
.hh-x{flex:none;display:grid;place-items:center;width:30px;height:30px;border:0;border-radius:8px;background:transparent;color:var(--muted);cursor:pointer}
.hh-x:hover{background:var(--surface-2,var(--n-100))}.hh-x svg{width:16px;height:16px}

/* ---------- V265 · animazioni a scelta: tipo per pagine, finestre, menu e durata (--an-ms) ---------- */
@keyframes pgFade{from{opacity:.25}to{opacity:1}}
@keyframes pgSlide{from{opacity:.4;transform:translateX(28px)}to{opacity:1;transform:none}}
@keyframes pgZoom{from{opacity:.4;transform:scale(.97)}to{opacity:1;transform:none}}
@keyframes mdFade{from{opacity:0}to{opacity:1}}
@keyframes mdRight{from{opacity:.4;transform:translateX(48px)}to{opacity:1;transform:none}}
@keyframes mdUp{from{opacity:.3;transform:translateY(40px)}to{opacity:1;transform:none}}
@keyframes mdZoom{from{opacity:0;transform:scale(.9)}to{opacity:1;transform:none}}
html .page.pg-enter{animation-duration:var(--an-ms,160ms)!important}
html[data-anim-page=fade] .page.pg-enter{animation-name:pgFade!important}
html[data-anim-page=slide] .page.pg-enter{animation-name:pgSlide!important}
html[data-anim-page=zoom] .page.pg-enter{animation-name:pgZoom!important}
html[data-anim-page=none] .page.pg-enter{animation:none!important}
html .modal-backdrop>.modal:not(.anim-done){animation-duration:calc(var(--an-ms,160ms) * 1.35)!important}
html .modal-backdrop:not(.anim-done){animation-duration:var(--an-ms,160ms)!important}
html[data-anim-modal=rise] .modal-backdrop>.modal:not(.anim-done){animation-name:mdEnter!important}
html[data-anim-modal=fade] .modal-backdrop>.modal:not(.anim-done){animation-name:mdFade!important}
html[data-anim-modal=right] .modal-backdrop>.modal:not(.anim-done){animation-name:mdRight!important}
html[data-anim-modal=bottom] .modal-backdrop>.modal:not(.anim-done){animation-name:mdUp!important}
html[data-anim-modal=zoom] .modal-backdrop>.modal:not(.anim-done){animation-name:mdZoom!important}
html[data-anim-modal=none] .modal-backdrop>.modal,html[data-anim-modal=none] .modal-backdrop{animation:none!important}
html .tb-filters.open .tb-filters-pop,html .tb-more.open .tb-more-pop,html .popover{animation-duration:calc(var(--an-ms,160ms) * .9)!important}
html[data-anim-menu=off] .tb-filters.open .tb-filters-pop,html[data-anim-menu=off] .tb-more.open .tb-more-pop,html[data-anim-menu=off] .popover{animation:none!important}
.anim-cfg{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 14px;padding:12px;border:1px dashed var(--line);border-radius:12px;background:var(--surface-2,var(--n-50))}
.anim-cfg .field{margin:0}
.anim-range{width:100%;accent-color:var(--primary)}
.anim-try{grid-column:1/-1;display:flex;align-items:center;gap:10px;flex-wrap:wrap}
@media (max-width:599px){.anim-cfg{grid-template-columns:1fr}}

/* V266 · pagine "a riempimento": barre, linguette e filtri in alto non si schiacciano mai (prima a 2 px quando la lista era lunga) */
#app .page.page-fit>:not(.fill){flex-shrink:0!important}
/* V266 · catalogo veicoli sul telefono: colonne una sotto l'altra (prima la seconda usciva dallo schermo) */
@media (max-width:599px){
  #app .catalog-page .vp-cols{display:flex!important;flex-direction:column;gap:10px;overflow:visible!important;flex:none!important}
  #app .catalog-page .vp-cols>.vp-col{width:100%!important;max-width:none!important;height:auto!important;max-height:340px;min-height:0}
  #app .catalog-page{overflow-y:auto!important}
}
/* V266 · Dipendenti (conto del dipendente) su telefono e tablet: ogni mese una scheda ordinata
   (prima prendeva le posizioni delle righe del Conto fornitori e le scritte si sovrapponevano) */
@media (max-width:899px){
  #app .dp-table tbody tr{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr)) auto!important;grid-template-areas:"m m st act" "cost paid res act"!important;gap:4px 10px!important;padding:10px 12px!important;position:relative}
  #app .dp-table tbody td{grid-area:auto;position:static!important;display:block!important;padding:0!important;border:0!important;min-width:0!important;width:auto!important;text-align:left!important}
  #app .dp-table tbody td:nth-child(1){grid-area:m!important;padding-right:0!important;grid-column:auto!important}
  #app .dp-table tbody td:nth-child(2){grid-area:cost!important}
  #app .dp-table tbody td:nth-child(3){grid-area:paid!important}
  #app .dp-table tbody td:nth-child(4){grid-area:res!important}
  #app .dp-table tbody td:nth-child(5){grid-area:st!important;justify-self:end;align-self:center}
  #app .dp-table tbody td:nth-child(6){grid-area:act!important;align-self:center;display:flex!important;gap:4px}
  #app .dp-table tbody td:nth-child(n+2):nth-child(-n+4)::before{display:block!important;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.03em;color:var(--muted);margin-bottom:1px}
  #app .dp-table tbody td:nth-child(2)::before{content:"Costo"!important}
  #app .dp-table tbody td:nth-child(3)::before{content:"Pagato"!important}
  #app .dp-table tbody td:nth-child(4)::before{content:"Da pagare"!important}
  #app .dp-table tbody td:nth-child(1)::before,#app .dp-table tbody td:nth-child(n+5)::before{content:none!important;display:none!important}
  #app .dp-table tbody td .cell-2>*{white-space:normal!important;overflow:visible!important}
  #app .dp-table .dp-cost-v{display:inline-flex;align-items:center;gap:4px}
}
@media (max-width:599px){
  #app .dp-table tbody tr{grid-template-columns:repeat(3,minmax(0,1fr))!important;grid-template-areas:"m m act" "cost paid res" "st st st"!important}
  #app .dp-table tbody td:nth-child(5){justify-self:start!important}
  #app .dp-table tbody td:nth-child(6){justify-self:end}
  #app .dp-table .dp-cost-v{flex-wrap:wrap}
}
@media (max-width:899px){#app .dp-table tbody td:nth-child(1) .cell-2>strong{white-space:nowrap!important;display:flex!important;align-items:center;gap:5px}}

/* ---------- V267 · piano delle rate a celle: verde pieno = pagata, rosso pieno = scaduta, bordo blu = prossima ---------- */
.fin-legend{display:flex;flex-wrap:wrap;gap:6px;padding:10px 14px 0}
.fin-legend .lg{display:inline-flex;align-items:center;gap:6px;padding:3px 10px;border-radius:999px;font-size:12px;font-weight:700;border:1px solid var(--line);background:#fff;color:var(--ink-2,var(--n-700))}
.fin-legend .lg::before{content:"";width:10px;height:10px;border-radius:3px;background:#fff;border:1px solid var(--line-strong,var(--n-300))}
.fin-legend .lg.is-paid::before{background:var(--green-500);border-color:var(--green-500)}
.fin-legend .lg.is-late::before{background:var(--red-500);border-color:var(--red-500)}
.fin-cells{display:grid;grid-template-columns:repeat(auto-fill,minmax(176px,1fr));gap:8px;padding:12px 14px 14px}
.fin-year{grid-column:1/-1;font-size:12px;font-weight:800;letter-spacing:.06em;color:var(--muted);padding:6px 2px 0;border-bottom:1px solid var(--line)}
.fin-cell{display:flex;flex-direction:column;gap:2px;padding:9px 10px;border:1px solid var(--line);border-radius:12px;background:#fff;min-width:0}
.fin-cell .fc-h{display:flex;justify-content:space-between;gap:6px;font-size:12px}
.fin-cell .fc-h span{color:var(--muted);font-variant-numeric:tabular-nums}
.fin-cell .fc-amt{font-size:17px;font-weight:800;font-variant-numeric:tabular-nums;margin-top:2px}
.fin-cell .fc-sub{font-size:11px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.fin-cell .fc-f{display:flex;align-items:center;justify-content:space-between;gap:6px;margin-top:6px;min-height:30px}
.fin-cell .fc-st{display:inline-flex;align-items:center;gap:4px;font-size:12px;font-weight:700;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.fin-cell .fc-st svg{width:14px;height:14px;flex:none}
.fin-cell .fc-a{display:flex;gap:4px;flex:none}
.fin-cell .fc-a .action-btn{width:30px;height:30px}
.fin-cell.is-paid{background:var(--green-line);border-color:var(--green-400)}
.fin-cell.is-paid .fc-h span,.fin-cell.is-paid .fc-sub{color:var(--green-700)}
.fin-cell.is-paid .fc-amt,.fin-cell.is-paid .fc-st{color:var(--green)}
.fin-cell.is-late{background:var(--red-bg);border-color:var(--red-line)}
.fin-cell.is-late .fc-h span,.fin-cell.is-late .fc-sub{color:var(--red-700)}
.fin-cell.is-late .fc-amt,.fin-cell.is-late .fc-st{color:var(--red)}
.fin-cell.is-next{border:2px solid var(--primary,var(--blue-500));box-shadow:0 2px 10px rgba(37,99,235,.15)}
.fin-cell.is-next .fc-st{color:var(--primary,var(--blue-500))}
@media (max-width:599px){.fin-cells{grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;padding:10px}.fin-cell{padding:8px}.fin-cell .fc-amt{font-size:15px}}
/* Conto rate: righe intere verdi se pagate, rosse se scadute */
#app tr.fin-paid>td{background:var(--green-line)!important}
#app tr.fin-late>td{background:var(--red-bg)!important}
@media (max-width:899px){#app .cards-finacc tr.fin-paid{background:var(--green-line)!important;border-color:var(--green-400)!important}#app .cards-finacc tr.fin-late{background:var(--red-bg)!important;border-color:var(--red-line)!important}}
@media (max-width:599px){.fin-cell .fc-f{flex-wrap:wrap;gap:4px}.fin-cell .fc-st{flex:1 1 100%}.fin-cell .fc-a{margin-left:auto}}

/* ---------- V268 · piano delle rate a righe: riga intera verde = pagata, rossa = scaduta, bordo blu = prossima ---------- */
.fin-plan tr.fin-yr td{background:var(--surface-2,var(--n-100))!important;font-size:12px;font-weight:800;letter-spacing:.06em;color:var(--muted);padding:6px 12px!important}
.fin-plan tr.fin-r.is-paid>td{background:var(--green-line)!important;color:var(--green-700)}
.fin-plan tr.fin-r.is-paid strong,.fin-plan tr.fin-r.is-paid .fin-st{color:var(--green)}
.fin-plan tr.fin-r.is-late>td{background:var(--red-bg)!important;color:var(--red-700)}
.fin-plan tr.fin-r.is-late strong,.fin-plan tr.fin-r.is-late .fin-st{color:var(--red)}
.fin-plan tr.fin-r.is-next>td{background:var(--blue-bg)!important}
.fin-plan tr.fin-r.is-next>td:first-child{box-shadow:inset 4px 0 0 var(--primary,var(--blue-500))}
.fin-plan tr.fin-r.is-paid>td:first-child{box-shadow:inset 4px 0 0 var(--green-500)}
.fin-plan tr.fin-r.is-late>td:first-child{box-shadow:inset 4px 0 0 var(--red-500)}
.fin-plan td.fin-st{font-weight:700;font-size:12px;white-space:nowrap}
.fin-plan td.fin-st svg{width:14px;height:14px;vertical-align:-2px;margin-right:4px}
.fin-plan td.fin-st span{display:inline}
@media (max-width:899px){
  .fin-plan tr.fin-yr{display:block!important;grid-template-columns:none!important;padding:0!important}
  .fin-plan tr.fin-yr td{display:block!important}
  .fin-plan tr.fin-r.is-paid{background:var(--green-line)}.fin-plan tr.fin-r.is-late{background:var(--red-bg)}.fin-plan tr.fin-r.is-next{background:var(--blue-bg)}
  .fin-plan tr.fin-r.is-paid{box-shadow:inset 4px 0 0 var(--green-500)}.fin-plan tr.fin-r.is-late{box-shadow:inset 4px 0 0 var(--red-500)}.fin-plan tr.fin-r.is-next{box-shadow:inset 4px 0 0 var(--primary,var(--blue-500))}
  .fin-plan tr.fin-r>td:first-child{box-shadow:none!important}
  .fin-plan td.fin-st{flex-direction:row!important;align-items:center;white-space:normal}
}
/* V268 · scheda contratto: Cronologia e Contratto affiancati, piano delle rate a tutta larghezza sotto */
.fin-side{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;align-items:start}
.fin-plan-card .table-wrap{overflow-x:auto}
.fin-plan{width:100%}
@media (max-width:899px){.fin-side{grid-template-columns:1fr}}
/* V268 · piano delle rate sul telefono: ogni rata una riga su due linee (rata e scadenza · importo / stato · pulsanti) */
@media (max-width:899px){
  #app .fin-plan thead{display:none}
  #app .fin-plan,#app .fin-plan tbody{display:block}
  #app .fin-plan tr.fin-r{display:grid!important;grid-template-columns:auto minmax(0,1fr) auto!important;grid-template-areas:"n d amt" "st st act"!important;gap:2px 10px!important;padding:8px 12px!important;border-bottom:1px solid rgba(15,23,42,.08)}
  #app .fin-plan tr.fin-r>td{display:block!important;padding:0!important;border:0!important;background:none!important;text-align:left!important;min-width:0}
  #app .fin-plan tr.fin-r>td::before{content:none!important;display:none!important}
  #app .fin-plan tr.fin-r>td:nth-child(1){grid-area:n}
  #app .fin-plan tr.fin-r>td:nth-child(2){grid-area:d;color:var(--muted);align-self:center}
  #app .fin-plan tr.fin-r>td:nth-child(3){grid-area:amt;text-align:right!important;font-size:15px}
  #app .fin-plan tr.fin-r>td:nth-child(4),#app .fin-plan tr.fin-r>td:nth-child(5),#app .fin-plan tr.fin-r>td:nth-child(6){display:none!important}
  #app .fin-plan tr.fin-r>td.fin-st{grid-area:st;display:flex!important;align-items:center;gap:4px;white-space:normal}
  #app .fin-plan tr.fin-r>td.col-actions{grid-area:act;display:flex!important;gap:4px;justify-self:end}
  #app .fin-plan tr.fin-r.is-paid td:nth-child(2){color:var(--green-700)}
  #app .fin-plan tr.fin-r.is-late td:nth-child(2){color:var(--red-700)}
}

/* ---------- V269 · piano delle rate: ogni rata è un rettangolino (scheda con bordo arrotondato, una per riga, staccate),
   colorata per intero: verde = pagata, rossa = scaduta, azzurra con bordo blu = prossima ---------- */
#app .fin-plan-card .table-wrap{overflow:visible!important;padding:4px 12px 12px}
#app .fin-plan{display:block!important;min-width:0!important;width:100%!important;border:0!important}
#app .fin-plan thead,#app .fin-plan tbody{display:flex!important;flex-direction:column;gap:6px}
#app .fin-plan thead tr,#app .fin-plan tr.fin-r{display:grid!important;grid-template-columns:96px 100px repeat(4,minmax(0,1fr)) minmax(0,1.7fr) 74px!important;align-items:center;gap:8px;padding:8px 12px!important}
#app .fin-plan thead tr{padding-top:0!important;padding-bottom:0!important;background:none!important}
#app .fin-plan thead th{background:none!important;color:var(--muted)!important;font-size:11px;padding:4px 0!important;border:0!important;position:static!important}
#app .fin-plan tr.fin-r{background:#fff;border:1px solid var(--line)!important;border-radius:12px;box-shadow:0 1px 2px rgba(15,23,42,.05)}
#app .fin-plan tr.fin-r>td{display:block!important;padding:0!important;border:0!important;background:none!important;box-shadow:none!important;min-width:0}
#app .fin-plan tr.fin-r>td.col-actions{display:flex!important;gap:4px;justify-content:flex-end}
#app .fin-plan tr.fin-r.is-paid{background:var(--green-line)!important;border-color:var(--green-400)!important}
#app .fin-plan tr.fin-r.is-late{background:var(--red-bg)!important;border-color:var(--red-line)!important}
#app .fin-plan tr.fin-r.is-next{background:var(--blue-bg)!important;border:2px solid var(--primary,var(--blue-500))!important}
#app .fin-plan tr.fin-yr{display:block!important;margin-top:6px}
#app .fin-plan tr.fin-yr td{display:block!important;background:none!important;padding:2px 2px 0!important;border:0!important}
@media (max-width:899px){
  #app .fin-plan thead{display:none!important}
  #app .fin-plan-card .table-wrap{padding:4px 8px 10px}
  #app .fin-plan tr.fin-r{grid-template-columns:auto minmax(0,1fr) auto!important;grid-template-areas:"n d amt" "st st act"!important;gap:2px 10px!important;box-shadow:none!important}
}
#app .fin-plan tr.fin-r .action-btn{width:32px!important;height:32px!important;flex:none!important}#app .fin-plan thead tr,#app .fin-plan tr.fin-r{column-gap:12px}@media (min-width:900px){#app .fin-plan thead tr,#app .fin-plan tr.fin-r{grid-template-columns:96px 100px repeat(4,minmax(0,1fr)) minmax(0,1.7fr) 80px!important}#app .fin-plan td.fin-st{padding-left:14px!important}}
#app .fin-plan thead th.money{text-align:right!important}@media (min-width:900px){#app .fin-plan thead th:nth-child(7){padding-left:14px!important}}
/* V270 · finite le animazioni d'entrata, la finestra non ne riparte un'altra (prima vecchie regole "fade"/"msIn"
   ripartivano subito dopo: l'anteprima si vedeva comparire due volte) */
html .modal-backdrop.anim-done,html .modal-backdrop.anim-done>.modal,html .modal-backdrop>.modal.anim-done{animation:none!important}
/* V271 · Non conformità come pagina: riquadri per fase, analisi della causa radice (5 Perché + Ishikawa) */
#app .nc-page .nc-pg{width:100%}
#app .nc-pg-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:12px;align-items:start}
#app .nc-pg-grid>.nc-full{grid-column:1/-1}
#app .nc-pg-grid>.nc-sec{align-self:stretch}
#app .nc-pg .form-foot{display:flex;align-items:center;gap:8px;padding:12px 0 4px}
#app .nc-rca-ok{display:inline-flex;align-items:center;gap:4px;font-size:12px;font-weight:700;color:var(--green-500);background:var(--green-line);padding:3px 9px;border-radius:99px}#app .nc-rca-ok svg{width:13px;height:13px;color:var(--green-500)}
#app .nc-rca{margin-top:12px;border:1px solid color-mix(in srgb,var(--nc) 25%,#fff);border-radius:12px;background:#fff;padding:12px}
#app .nc-rca-h{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:10px}#app .nc-rca-h svg{width:17px;height:17px;color:var(--nc)}#app .nc-rca-h b{font-size:15px;color:var(--nc)}#app .nc-rca-h small{color:var(--muted);font-size:12px}
#app .nc-rca-grid{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:12px}
#app .nc-rca-box,#app .nc-sim-box{border:1px solid var(--line);border-radius:10px;padding:10px;background:var(--blue-bg);min-width:0}
#app .nc-sim-box{margin-top:12px}
#app .nc-rca-t{display:flex;flex-direction:column;gap:1px;margin-bottom:8px}#app .nc-rca-t b{font-size:13px}#app .nc-rca-t small{font-size:11px;color:var(--muted)}
#app .nc-why{display:flex;flex-direction:column;gap:0}
#app .nc-why-row{display:flex;align-items:center;gap:8px;position:relative;padding-bottom:10px}
#app .nc-why-row:not(:last-child)::after{content:'';position:absolute;left:13px;top:28px;bottom:0;width:2px;background:color-mix(in srgb,var(--nc) 35%,#fff)}
#app .nc-why-n{width:28px;height:28px;flex:none;border-radius:50%;display:grid;place-items:center;font-size:12px;font-weight:800;background:color-mix(in srgb,var(--nc) 14%,#fff);color:var(--nc);border:1.5px solid color-mix(in srgb,var(--nc) 40%,#fff)}
#app .nc-why-row .input{flex:1;min-width:0;height:36px}
#app .nc-why-foot{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:2px}
#app .nc-fish{display:flex;flex-direction:column;gap:6px}
#app .nc-fish-row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
#app .nc-fish-spine{display:flex;align-items:center;gap:0;height:30px}
#app .nc-fish-spine i{flex:1;height:3px;background:linear-gradient(90deg,color-mix(in srgb,var(--nc) 25%,#fff),var(--nc));border-radius:3px;position:relative}
#app .nc-fish-spine i::after{content:'';position:absolute;right:-2px;top:50%;transform:translateY(-50%);border:7px solid transparent;border-left:10px solid var(--nc);border-right:0}
#app .nc-fish-head{display:inline-flex;align-items:center;gap:5px;margin-left:12px;padding:5px 12px;border-radius:8px;background:var(--nc);color:#fff;font-size:12px;white-space:nowrap}#app .nc-fish-head svg{width:14px;height:14px;color:#fff}
#app .nc-bone{border:1.5px solid var(--line);border-radius:10px;background:#fff;padding:7px 9px;display:flex;flex-direction:column;gap:3px;min-width:0;transition:border-color .15s,background .15s}
#app .nc-bone-h{display:flex;align-items:center;gap:6px;cursor:pointer;user-select:none;font-size:13px}
#app .nc-bone-h input{display:none}
#app .nc-bone-h>svg{width:15px;height:15px;color:var(--muted);flex:none}
#app .nc-bone-h b{flex:1;min-width:0}
#app .nc-bone-h .nc-bone-ok{opacity:0;color:#fff;background:var(--nc);border-radius:50%;padding:2px;width:17px;height:17px}
#app .nc-bone>small{font-size:11px;color:var(--muted);line-height:1.3}
#app .nc-bone textarea{min-height:52px;height:auto;font-size:12px;padding:6px 8px;resize:vertical;margin-top:3px}
#app .nc-bone.on{border-color:var(--nc);background:color-mix(in srgb,var(--nc) 6%,#fff)}
#app .nc-bone.on .nc-bone-h>svg{color:var(--nc)}#app .nc-bone.on .nc-bone-h .nc-bone-ok{opacity:1}#app .nc-bone.on .nc-bone-h b{color:var(--nc)}
#app .nc-rca-end{margin-top:12px}
#app .nc-chip.sim-no.on{background:var(--green-500);border-color:var(--green-500)}#app .nc-chip.sim-possibile.on{background:var(--orange-500);border-color:var(--orange-500)}#app .nc-chip.sim-si.on{background:var(--red-500);border-color:var(--red-500)}
#app .nc-sim-list{display:flex;flex-direction:column;gap:6px}
#app .nc-sim{display:flex;align-items:center;gap:10px;padding:7px 10px;border:1px solid var(--line);border-radius:10px;background:#fff;min-width:0}
#app .nc-sim .grow{display:flex;flex-direction:column;min-width:0}#app .nc-sim small{font-size:11px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
#app .nc-sim-none{display:flex;align-items:center;gap:6px;margin:0;color:var(--green);font-size:13px}#app .nc-sim-none svg{width:15px;height:15px}
@media (max-width:1099px){#app .nc-rca-grid{grid-template-columns:1fr}}
@media (max-width:899px){
  #app .nc-pg-grid{grid-template-columns:1fr}
  #app .nc-pg .nc-top{grid-template-columns:1fr 1fr}
  #app .nc-pg .nc-top .nc-num{grid-column:1/-1}
  #app .nc-fish-row{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}
  #app .nc-bone>small{display:none}
  #app .nc-bone-h{font-size:12px}
  #app .nc-pg .form-foot{flex-wrap:wrap}
  #app .nc-pg .form-foot .grow{flex-basis:100%;height:0}
  #app .nc-pg .form-foot>.btn{flex:1 1 0}
  #app .nc-pg .form-foot>.btn-danger-ghost,#app .nc-pg .form-foot>.action-btn{flex:0 0 auto}
  #app .nc-pg .nc-sec.v220>h4{flex-wrap:wrap}
}
@media (max-width:520px){#app .nc-fish-row{grid-template-columns:repeat(3,minmax(0,1fr))}#app .nc-bone{padding:6px}#app .nc-bone-h>svg:first-of-type{display:none}#app .nc-fish-head b{display:none}}
/* V271 · Qualifica fornitori: punteggio a barra, scheda del fornitore, valutazione con voti 0–100 */
#app .sq-meter{display:flex;align-items:center;gap:8px;min-width:120px;color:var(--n-500)}
#app .sq-meter.tone-green{color:var(--green-500)}#app .sq-meter.tone-orange{color:var(--orange-500)}#app .sq-meter.tone-red{color:var(--red-500)}
#app .sq-tr{flex:1;min-width:40px;height:8px;border-radius:99px;background:var(--blue-bg);overflow:hidden}
#app .sq-tr i{display:block;height:100%;border-radius:99px;background:currentColor}
#app .sq-meter b{color:var(--ink);font-size:13px;min-width:36px;text-align:right}
#app .sq-rule{display:flex;align-items:center;gap:6px;margin:0 2px;flex-shrink:0}#app .sq-rule svg{width:14px;height:14px}
#app .chip.chip-red{background:var(--red-bg)!important;color:var(--red)!important}
#app .sq-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:12px;align-items:start}
#app .sq-grid>.sq-wide{grid-column:1/-1}
#app .sq-crit-view{display:flex;flex-direction:column;gap:8px}
#app .sq-cv{display:grid;grid-template-columns:minmax(0,1fr) 200px;gap:10px;align-items:center}
#app .sq-cv>span{display:flex;flex-direction:column;font-weight:600;font-size:13px}#app .sq-cv>span small{font-weight:500;color:var(--muted);font-size:11px}
#app .sq-cv.off{opacity:.55}#app .sq-cv.off small{font-style:italic}
#app .sq-total{display:flex;align-items:center;gap:10px;margin-top:12px;padding-top:10px;border-top:1px solid var(--line)}#app .sq-total span{flex:1;font-weight:700}#app .sq-total b{font-size:20px}
#app .sq-empty{display:flex;flex-direction:column;align-items:center;gap:8px;padding:18px;text-align:center;color:var(--muted)}#app .sq-empty>svg{width:30px;height:30px;color:var(--n-300)}#app .sq-empty p{margin:0}
#app .sq-hist{display:flex;flex-direction:column;gap:6px}
#app .sq-h{display:flex;align-items:center;gap:10px;width:100%;text-align:left;font:inherit;padding:8px 10px;border:1px solid var(--line);border-left:4px solid var(--n-400);border-radius:10px;background:#fff;cursor:pointer;min-width:0}
#app .sq-h:hover{background:var(--n-50)}
#app .sq-h.tone-green{border-left-color:var(--green-500)}#app .sq-h.tone-orange{border-left-color:var(--orange-500)}#app .sq-h.tone-red{border-left-color:var(--red-500)}#app .sq-h.tone-blue{border-left-color:var(--blue-500)}#app .sq-h.tone-violet{border-left-color:var(--violet-500)}
#app .sq-h .grow{display:flex;flex-direction:column;min-width:0}#app .sq-h small{font-size:11px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
#app .sq-h-sc{font-weight:800;font-size:16px;min-width:46px}
#app .sq-stats{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}
#app .sq-stat{display:flex;align-items:center;gap:8px;padding:8px 10px;border-radius:10px;background:var(--n-50);border:1px solid var(--line);min-width:0}
#app .sq-stat svg{width:16px;height:16px;color:var(--green-500);flex:none}#app .sq-stat span{flex:1;display:flex;flex-direction:column;font-size:12px;font-weight:600;min-width:0}#app .sq-stat small{font-size:11px;color:var(--muted);font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}#app .sq-stat b{font-size:18px}
#app .sq-rows{display:flex;flex-direction:column;gap:8px}
#app .sq-row{display:grid;grid-template-columns:auto minmax(0,1fr) minmax(220px,320px);gap:12px;align-items:center;padding:10px 12px;border:1px solid var(--line);border-left:4px solid var(--n-300);border-radius:12px;background:#fff}
#app .sq-row[data-tone=green]{border-left-color:var(--green-500)}#app .sq-row[data-tone=orange]{border-left-color:var(--orange-500)}#app .sq-row[data-tone=red]{border-left-color:var(--red-500)}
#app .sq-row.off{opacity:.55;background:var(--n-50)}
#app .sq-use{display:grid;place-items:center;width:26px;height:26px;border-radius:7px;border:1.5px solid var(--line-strong,var(--n-300));cursor:pointer;background:#fff}
#app .sq-use input{display:none}#app .sq-use svg{width:15px;height:15px;opacity:0;color:#fff}
#app .sq-use:has(input:checked){background:var(--primary);border-color:var(--primary)}#app .sq-use:has(input:checked) svg{opacity:1}
#app .sq-name{display:flex;flex-direction:column;min-width:0}#app .sq-name b{font-size:14px}#app .sq-name>small{font-size:11px;color:var(--muted)}
#app .sq-tips{display:flex;gap:6px;flex-wrap:wrap;margin-top:4px}
#app .sq-tip{display:inline-flex;align-items:center;gap:4px;padding:3px 9px;border-radius:99px;border:1px solid var(--line);background:var(--n-50);font:inherit;font-size:11px;color:var(--ink-2);cursor:pointer;max-width:100%}
#app .sq-tip svg{width:12px;height:12px;flex:none}#app .sq-tip small{color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
#app .sq-tip.auto{border-color:var(--blue-line);background:var(--blue-bg);color:var(--blue)}
#app .sq-vote{display:flex;align-items:center;gap:8px}
#app .sq-range{flex:1;min-width:0;accent-color:var(--primary);height:28px}
#app .sq-range.unset{opacity:.35}
#app .sq-num{width:58px!important;flex:none;text-align:center;font-weight:800;font-size:15px!important}
#app .sq-pc{font-weight:700;color:var(--muted)}
#app .sq-big{display:flex;align-items:center;gap:10px;margin-bottom:10px}#app .sq-big b{font-size:34px;line-height:1}
#app .sq-big.tone-green b{color:var(--green-500)}#app .sq-big.tone-orange b{color:var(--orange-500)}#app .sq-big.tone-red b{color:var(--red-500)}#app .sq-big.tone-gray b{color:var(--n-400)}
#app .sq-scale{position:relative;display:flex;height:10px;border-radius:99px;overflow:visible;margin:4px 0}
#app .sq-scale i{display:block;height:100%}#app .sq-scale i.c{background:var(--red-line);border-radius:99px 0 0 99px}#app .sq-scale i.b{background:var(--orange-line)}#app .sq-scale i.a{background:var(--green-line);border-radius:0 99px 99px 0}
#app .sq-pin{position:absolute;top:-4px;width:4px;height:18px;margin-left:-2px;border-radius:2px;background:var(--ink)}
#app .sq-scale-l{display:flex;justify-content:space-between;font-size:10px;color:var(--muted);margin-bottom:10px}
#app .sq-form .sq-hint{margin-bottom:10px}
/* parametri (finestra) */
#modalRoot .sq-set-list{display:flex;flex-direction:column;gap:8px;margin:10px 0}
#modalRoot .sq-set-row{display:grid;grid-template-columns:auto minmax(0,1fr) 80px 200px auto;gap:8px;align-items:end;padding:8px 10px;border:1px solid var(--line);border-radius:10px;background:#fff}
#modalRoot .sq-set-row.off{opacity:.55;background:var(--n-50)}
#modalRoot .sq-set-row .sq-use{align-self:center;display:grid;place-items:center;width:26px;height:26px;border-radius:7px;border:1.5px solid var(--n-300);cursor:pointer;background:#fff}
#modalRoot .sq-set-row .sq-use input{display:none}#modalRoot .sq-set-row .sq-use svg{width:15px;height:15px;opacity:0;color:#fff}
#modalRoot .sq-set-row .sq-use:has(input:checked){background:var(--primary);border-color:var(--primary)}#modalRoot .sq-set-row .sq-use:has(input:checked) svg{opacity:1}
#modalRoot .sq-set-f{display:flex;flex-direction:column;gap:4px;min-width:0}#modalRoot .sq-set-f .input{height:32px}#modalRoot .sq-set-f .sq-hint-in{height:28px;font-size:12px}
#modalRoot .sq-w,#modalRoot .sq-a{display:flex;flex-direction:column;gap:2px;min-width:0}#modalRoot .sq-w small,#modalRoot .sq-a small{font-size:11px;color:var(--muted)}
#modalRoot .sq-w .input{height:32px;text-align:center}#modalRoot .sq-a .select{height:32px;font-size:12px}
#modalRoot .sq-set-add{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:6px}
@media (max-width:899px){
  #app .sq-grid{grid-template-columns:1fr}
  #app .sq-row{grid-template-columns:auto minmax(0,1fr);gap:8px 10px}
  #app .sq-row .sq-vote{grid-column:1/-1}
  #app .sq-cv{grid-template-columns:minmax(0,1fr) 130px}
  #app .sq-stats{grid-template-columns:repeat(2,minmax(0,1fr))}
  #app .sq-table .sq-meter{min-width:0}
  #modalRoot .sq-set-row{grid-template-columns:auto minmax(0,1fr) 70px auto;align-items:center}
  #modalRoot .sq-set-row .sq-a{grid-column:2/-1}
}
@media (max-width:520px){#app .nc-bone-h .nc-bone-ok{display:none}#app .nc-bone-h{font-size:11.5px}#app .nc-bone-h b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}#app .nc-bone textarea{font-size:12px;padding:5px 6px}}
/* V272 · Non conformità: una fase alla volta (linguette 1-4, Indietro/Avanti), pagina a tutta larghezza,
   Ishikawa sul telefono in 2 colonne (3 righe da 2) senza lisca */
#app .nc-pg .nc-top{grid-template-columns:auto 180px minmax(0,1fr)}
#app .nc-stepper{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}
#app .nc-tab{display:flex;align-items:center;gap:10px;padding:10px 12px;border:1.5px solid var(--line);border-radius:12px;background:#fff;font:inherit;text-align:left;cursor:pointer;min-width:0;color:var(--ink-2)}
#app .nc-tab:hover{border-color:color-mix(in srgb,var(--nc) 45%,#fff)}
#app .nc-tab .nc-n{background:#fff;color:var(--nc);border:2px solid color-mix(in srgb,var(--nc) 45%,#fff);width:26px;height:26px}
#app .nc-tab .nc-n svg{width:14px;height:14px}
#app .nc-tab.done .nc-n{background:color-mix(in srgb,var(--nc) 14%,#fff)}
#app .nc-tab-t{display:flex;flex-direction:column;min-width:0}#app .nc-tab-t b{font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}#app .nc-tab-t small{font-size:11px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
#app .nc-tab.active{border-color:var(--nc);background:color-mix(in srgb,var(--nc) 8%,#fff);box-shadow:0 0 0 3px color-mix(in srgb,var(--nc) 15%,transparent)}
#app .nc-tab.active .nc-n{background:var(--nc);color:#fff;border-color:var(--nc)}
#app .nc-tab.active .nc-tab-t b{color:var(--nc)}
#app .nc-step-hint{display:flex;align-items:center;gap:6px;margin:0;font-size:12px;color:var(--muted)}#app .nc-step-hint svg{width:14px;height:14px;flex:none}
#app .nc-pg .nc-pg-grid{grid-template-columns:1fr}
#app .nc-pg[data-step="0"] .nc-stepsec:not([data-s="0"]),#app .nc-pg[data-step="1"] .nc-stepsec:not([data-s="1"]),#app .nc-pg[data-step="2"] .nc-stepsec:not([data-s="2"]),#app .nc-pg[data-step="3"] .nc-stepsec:not([data-s="3"]){display:none}
#app .nc-pg .nc-stepsec{box-shadow:none!important}
#app .nc-pg[data-step="0"] .nc-prev{visibility:hidden}#app .nc-pg[data-step="3"] .nc-next{display:none}
#app .nc-nav{display:inline-flex;gap:8px}
#app .nc-next{flex-direction:row-reverse}
@media (max-width:899px){
  #app .nc-pg .nc-top{grid-template-columns:1fr 1fr}
  #app .nc-stepper{grid-template-columns:repeat(2,minmax(0,1fr))}
  #app .nc-tab{padding:8px 10px;gap:8px}#app .nc-tab-t b{font-size:13px}
  #app .nc-step-hint{display:none}
  #app .nc-fish{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
  #app .nc-fish-row{display:contents}
  #app .nc-fish-spine{display:none}
  #app .nc-bone{padding:8px 10px}
  #app .nc-bone>small{display:block!important;font-size:11px}
  #app .nc-bone-h{font-size:13px!important}
  #app .nc-bone-h>svg:first-of-type{display:inline-block!important}
  #app .nc-bone-h .nc-bone-ok{display:inline-block!important}
  #app .nc-bone-h b{white-space:normal!important}
  #app .nc-bone textarea{min-height:60px}
  #app .nc-pg .form-foot .nc-nav{order:-1;flex-basis:100%;display:flex}
  #app .nc-pg .form-foot .nc-nav>.btn{flex:1 1 0}
  #app .nc-pg[data-step="0"] .nc-prev{display:none}
}
@media (max-width:899px){
  #app .nc-pg .form-foot{gap:6px}
  #app .nc-pg .form-foot .grow{display:none}
  #app .nc-pg .form-foot>[data-act=ncPrintOne]>span{display:none}
  #app .nc-pg .form-foot>[data-act=ncPrintOne],#app .nc-pg .form-foot>.btn-danger-ghost{flex:0 0 42px!important;padding:0!important;justify-content:center}
  #app .nc-pg .form-foot>.btn:not(.btn-danger-ghost):not([data-act=ncPrintOne]){flex:1 1 0;padding-left:6px;padding-right:6px;font-size:13px;min-width:0}
  #app .nc-pg .form-foot>.btn svg{flex:none}
}
/* V273 · Analisi: regola dei conti (Competenza / Cassa), Cruscotto con confronto anno prima, Previsione di cassa,
   Clienti e lavori; barra "anno prima" nei grafici */
.bc-bar.bc-ghost{opacity:.32;background-image:repeating-linear-gradient(135deg,rgba(255,255,255,.55) 0 3px,transparent 3px 6px)}
.legend i.bc-ghost{opacity:.35}
#app .an-rule{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border-radius:99px;font-size:12px;background:var(--n-100);color:var(--ink-2);white-space:nowrap;flex-shrink:0;max-width:100%;overflow:hidden}
#app .an-rule svg{width:14px;height:14px;flex:none}#app .an-rule small{color:var(--muted);font-size:11px;overflow:hidden;text-overflow:ellipsis}
#app .an-rule.comp{background:var(--blue-bg);color:var(--blue)}#app .an-rule.comp svg{color:var(--blue-500)}
#app .an-rule.cassa{background:var(--green-bg);color:var(--green-700)}#app .an-rule.cassa svg{color:var(--green-700)}
#app .st-note .an-rule{margin-right:6px;vertical-align:middle}
#app .an-tb{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
#app .an-tb .an-month,#app .an-tb .select{width:auto;height:36px}
#app .an-range{white-space:nowrap}
#app .an-sec{display:flex;flex-direction:column;gap:8px;flex-shrink:0}
#app .an-sec-h{display:flex;align-items:center;gap:10px;flex-wrap:wrap}#app .an-sec-h h3{display:flex;align-items:center;gap:7px;margin:0;font-size:15px}#app .an-sec-h h3 svg{width:17px;height:17px;color:var(--primary)}
#app .an-tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:10px}
#app .an-tile{display:flex;flex-direction:column;gap:3px;padding:12px 14px;border-radius:14px;background:#fff;border:1px solid var(--line);border-top:3px solid var(--tc,var(--blue-500));min-width:0;position:relative}
#app .an-tile.tone-blue{--tc:var(--blue-500)}#app .an-tile.tone-green{--tc:var(--green-500)}#app .an-tile.tone-orange{--tc:var(--orange-500)}#app .an-tile.tone-red{--tc:var(--red-500)}#app .an-tile.tone-violet{--tc:var(--violet-500)}#app .an-tile.tone-gray{--tc:var(--n-500)}
#app .an-tile.link{cursor:pointer}#app .an-tile.link:hover{box-shadow:0 4px 14px rgba(15,23,42,.08);border-color:color-mix(in srgb,var(--tc) 40%,#fff)}
#app .an-t-h{display:flex;align-items:center;gap:6px;font-size:11px;font-weight:800;letter-spacing:.4px;text-transform:uppercase;color:var(--tc)}#app .an-t-h svg{width:14px;height:14px;flex:none}#app .an-t-h span{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
#app .an-t-h .an-go{opacity:.5;width:14px;height:14px}
#app .an-t-v{font-size:22px;line-height:1.15;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
#app .an-t-s{font-size:11px;color:var(--muted)}
#app .an-d{display:inline-flex;align-items:baseline;gap:6px;font-size:12px;font-weight:800;flex-wrap:wrap}
#app .an-d small{font-weight:500;color:var(--muted);font-size:11px}
#app .an-d.ok{color:var(--green-500)}#app .an-d.ko{color:var(--red-500)}#app .an-d.flat{color:var(--n-500)}
#app .kpi .an-d{font-size:11px}
#app .an-foot{display:flex;align-items:flex-start;gap:6px;margin:0}#app .an-foot svg{width:14px;height:14px;flex:none;margin-top:2px}
#app .fc-start{display:flex;align-items:center;gap:6px}#app .fc-start .input{width:140px;height:36px}
#app .fc-avg{font-size:13px}
#app .fc-months{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:8px;margin-top:12px}
#app .fc-m{display:flex;flex-direction:column;gap:2px;padding:9px 12px;border-radius:12px;border:1.5px solid var(--line);border-left:4px solid var(--green-500);background:#fff;font:inherit;text-align:left;cursor:pointer}
#app .fc-m.neg{border-left-color:var(--red-500);background:var(--red-bg)}#app .fc-m.on{box-shadow:0 0 0 3px rgba(37,99,235,.2);border-color:var(--blue-500)}
#app .fc-m b{font-size:13px}#app .fc-m span{font-size:12px;font-weight:700}#app .fc-m .fc-bal{color:var(--ink);font-weight:800;margin-top:2px}
#app .an-dir{display:inline-flex;align-items:center;gap:5px;font-weight:600}#app .an-dir svg{width:14px;height:14px}#app .an-dir.in svg{color:var(--green-500)}#app .an-dir.out svg{color:var(--red-500)}
#app .in-abc{display:flex;gap:6px;min-height:64px}
#app .in-abc-b{display:flex;flex-direction:column;justify-content:center;gap:1px;padding:8px 10px;border-radius:10px;color:#fff;min-width:0;overflow:hidden}
#app .in-abc-b b{font-size:18px}#app .in-abc-b span,#app .in-abc-b small{font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
#app .in-abc-b.c-A{background:var(--green-500)}#app .in-abc-b.c-B{background:var(--blue-500)}#app .in-abc-b.c-C{background:var(--n-400)}
#app .in-grid{align-items:start}
#app .eb-tb{flex-wrap:wrap}
@media (max-width:899px){
  #app .an-tiles{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
  #app .an-tile{padding:10px 11px}#app .an-t-v{font-size:18px}
  #app .an-rule small{display:none}
  #app .an-range{white-space:normal;flex-basis:100%}
  #app .fc-start{flex-basis:100%}#app .fc-start .input{flex:1;width:auto}
  #app .fc-months{grid-template-columns:repeat(2,minmax(0,1fr))}
  #app .in-abc-b small{display:none}
}
#app .an-tile,#app .an-tile *{text-decoration:none!important}
@media (max-width:899px){
  /* 3 riquadri: uno per riga (mai 2+1) */
  #app .an-tiles:has(> :nth-child(3):last-child){grid-template-columns:1fr}
  #app .an-tiles:has(> :nth-child(3):last-child) .an-tile{display:grid;grid-template-columns:minmax(0,1fr) auto;column-gap:10px;align-items:center}
  #app .an-tiles:has(> :nth-child(3):last-child) .an-t-h{grid-column:1/-1}
  #app .an-tiles:has(> :nth-child(3):last-child) .an-t-v{grid-column:1}
  #app .an-tiles:has(> :nth-child(3):last-child) .an-d{grid-column:2;grid-row:2;justify-self:end;text-align:right;flex-direction:column;align-items:flex-end;gap:0}
  #app .an-tiles:has(> :nth-child(3):last-child) .an-t-s{grid-column:1/-1}
}

/* ============================================================
   V274 · Analisi: periodo "dal … al …", spiegazioni, colori, previsione su telefono
   ============================================================ */
#app .an-custom{display:inline-flex;align-items:center;gap:8px;flex-wrap:wrap}
#app .an-custom label{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:700;color:var(--muted)}
#app .an-custom .input{width:150px;height:36px}
#app .an-explain{display:flex;gap:8px;align-items:flex-start;margin:10px 0 0;padding:10px 12px;border-radius:10px;background:var(--blue-bg);color:var(--blue);font-size:12.5px;line-height:1.45}
#app .an-explain svg{width:16px;height:16px;flex:none;margin-top:1px;color:var(--blue-500)}
#app .page>.an-explain{margin:0}
/* due casse a confronto */
#app .an-twocash .an-tc-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
#app .an-tc{display:flex;flex-direction:column;gap:2px;padding:10px 12px;border-radius:12px;border:1.5px solid var(--line);border-left:4px solid var(--green-500);background:#fff;min-width:0}
#app .an-tc.on{background:var(--green-bg)}
#app .an-tc small{font-size:10px;font-weight:800;letter-spacing:.5px;text-transform:uppercase;color:var(--muted)}
#app .an-tc b{font-size:18px}#app .an-tc span{font-size:12px;color:var(--muted)}
#app .an-tc.diff.ok{border-left-color:var(--green-500)}#app .an-tc.diff.ko{border-left-color:var(--orange-500);background:var(--orange-bg)}
#app .an-tc-text{margin-top:10px;font-size:13px;line-height:1.5;color:var(--ink-2)}#app .an-tc-text p{margin:0 0 6px}
#app .an-tc-foot{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}
/* previsione: riquadri dei mesi in parti uguali (3 = 3, 6 = 6 o 3+3, 12 = 6+6) */
#app .fc-months.fc-n3{grid-template-columns:repeat(3,minmax(0,1fr))}
#app .fc-months.fc-n6,#app .fc-months.fc-n12{grid-template-columns:repeat(6,minmax(0,1fr))}
#app .fc-late-m{display:none}
/* analisi ABC: la fascia piccola resta leggibile */
#app .in-abc-b{min-width:120px}
@media (max-width:1299px){#app .fc-months.fc-n6,#app .fc-months.fc-n12{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media (max-width:899px){
  #app .an-tb .seg{flex-wrap:wrap}
  #app .an-custom{flex-basis:100%}#app .an-custom label{flex:1}#app .an-custom .input{flex:1;width:auto;min-width:0}
  #app .fc-months.fc-n3,#app .fc-months.fc-n6,#app .fc-months.fc-n12{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}
  #app .fc-m{padding:7px 8px}#app .fc-m b{font-size:12px}#app .fc-m span{font-size:11px;overflow-wrap:anywhere}
  #app .fc-late-m{display:flex;gap:6px;align-items:flex-start;margin:0;padding:8px 10px;border-radius:10px;background:var(--red-bg);color:var(--red);font-size:12px;font-weight:600}
  #app .fc-late-m svg{width:14px;height:14px;flex:none;margin-top:1px}
  #app .an-twocash .an-tc-grid{grid-template-columns:1fr}
  #app .in-abc-b{min-width:86px}
}

/* ============================================================
   V274 · Qualità: rischi e opportunità, piano di miglioramento, azioni e scadenziario
   ============================================================ */
#app .q-tabs .seg-btn[data-t="nc"].active{background:var(--red-500);color:#fff}
#app .q-tabs .seg-btn[data-t="risks"].active{background:var(--orange-500);color:#fff}
#app .q-tabs .seg-btn[data-t="actions"].active{background:var(--violet-500);color:#fff}
#app .q-tabs .seg-btn[data-t="plan"].active{background:var(--blue-500);color:#fff}
#app .q-tabs .seg-btn[data-t="claims"].active{background:var(--violet-500);color:#fff}
#app .q-tabs .seg-btn[data-t="cover"].active{background:var(--green-500);color:#fff}
#app .q-tabs .seg-btn[data-t="sup"].active{background:var(--blue-500);color:#fff}
#app .q-tabs .seg-btn[data-t="summary"].active{background:var(--n-600);color:#fff}
/* livello del punteggio */
#app .qr-lv{display:inline-flex;align-items:center;gap:6px;height:24px;padding:0 10px 0 4px;border-radius:99px;font-size:12px;font-weight:700;white-space:nowrap}
#app .qr-lv b{display:inline-grid;place-items:center;min-width:18px;height:18px;padding:0 4px;border-radius:99px;background:rgba(255,255,255,.75);font-size:11px}
#app .qr-lv.lv0{background:var(--green-line);color:var(--green-700)}#app .qr-lv.lv1{background:var(--orange-line);color:var(--orange-700)}#app .qr-lv.lv2{background:var(--red-bg);color:var(--red)}#app .qr-lv.lv3{background:var(--red-500);color:#fff}#app .qr-lv.lv3 b{color:var(--red)}
#app .qr-lv.opp.lv0{background:var(--n-100);color:var(--n-600)}#app .qr-lv.opp.lv1{background:var(--blue-line);color:var(--blue)}#app .qr-lv.opp.lv2{background:var(--green-line);color:var(--green-700)}#app .qr-lv.opp.lv3{background:var(--green-500);color:#fff}#app .qr-lv.opp.lv3 b{color:var(--green-700)}
#app .qr-pg{font-weight:700;white-space:nowrap}
/* matrice 5×5 */
#app .qm-wrap{display:grid;grid-template-columns:auto 1fr;grid-template-rows:1fr auto;gap:4px 6px;align-items:center}
#app .qm-yt{writing-mode:vertical-rl;transform:rotate(180deg);font-size:11px;font-weight:800;color:var(--muted);text-transform:uppercase;letter-spacing:.5px;text-align:center}
#app .qm-xt{grid-column:2;font-size:11px;font-weight:800;color:var(--muted);text-transform:uppercase;letter-spacing:.5px;text-align:center}
#app .qm{display:grid;grid-template-columns:minmax(64px,auto) repeat(5,minmax(0,1fr));gap:4px}
#app .qm-yl,#app .qm-xl{display:flex;flex-direction:column;justify-content:center;font-size:10px;color:var(--muted);line-height:1.15;min-width:0}
#app .qm-yl b,#app .qm-xl b{font-size:13px;color:var(--ink)}#app .qm-xl{text-align:center;align-items:center}
#app .qm-yl small,#app .qm-xl small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:100%}
#app .qm-c{height:40px;border-radius:8px;border:2px solid transparent;font:inherit;font-size:13px;cursor:pointer;display:grid;place-items:center;color:#1f2937;transition:transform .12s}
#app .qm-c:disabled,#app .qm-c:not([data-act]){cursor:default}
#app .qm-c.lv0{background:var(--green-line)}#app .qm-c.lv1{background:var(--orange-400)}#app .qm-c.lv2{background:var(--orange-400)}#app .qm-c.lv3{background:var(--red-400);color:#fff}
#app .qm-c.opp.lv0{background:var(--n-200)}#app .qm-c.opp.lv1{background:var(--blue-line)}#app .qm-c.opp.lv2{background:var(--green-400)}#app .qm-c.opp.lv3{background:var(--green-500);color:#fff}
#app .qm-c.empty{opacity:.55}
#app .qm-c.on{border-color:var(--n-900);box-shadow:0 0 0 3px rgba(15,23,42,.18);transform:scale(1.06);font-weight:800}
#app .qm-c b{font-size:14px}
#app .qr-top{align-items:start}
#app .qr-how p{margin:0 0 8px;font-size:13px}
#app .qr-legend{display:grid;gap:6px;margin-bottom:8px}#app .qr-legend>div{display:flex;align-items:center;gap:8px;flex-wrap:wrap}#app .qr-legend small{color:var(--muted);font-size:12px}
/* schede rischio e obiettivo */
#app .q-pg .q-top{display:flex;align-items:flex-end;gap:14px;flex-wrap:wrap;padding:12px 14px;margin-bottom:12px}
#app .q-pg .q-top>.field{min-width:150px}
#app .q-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;align-items:start}
#app .q-grid>.q-full{grid-column:1/-1}
#app .q-sec{background:#fff;border:1px solid var(--line);border-top:4px solid var(--qc,var(--blue-500));border-radius:14px;padding:12px 14px;min-width:0}
#app .q-sec>h4{display:flex;align-items:center;gap:8px;margin:0 0 10px;font-size:15px}
#app .q-sec>h4>svg{width:18px;height:18px;color:var(--qc,var(--blue-500));flex:none}
#app .q-sec>h4 small{display:block;font-size:12px;font-weight:500;color:var(--muted)}
#app .qr-eval{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:16px;align-items:start}
#app .qr-eval-side{display:flex;flex-direction:column;gap:10px;min-width:0}
#app .qr-eval-side .select{width:100%}
#app .qr-score{display:flex;flex-direction:column;gap:2px;padding:10px 14px;border-radius:12px;border-left:5px solid}
#app .qr-score small{font-size:10px;font-weight:800;letter-spacing:.5px;text-transform:uppercase;opacity:.75}
#app .qr-score b{font-size:22px}#app .qr-score span{font-weight:700}
#app .qr-score.lv0{background:var(--green-bg);border-color:var(--green-500);color:var(--green-700)}#app .qr-score.lv1{background:var(--orange-bg);border-color:var(--orange-500);color:var(--orange-700)}#app .qr-score.lv2{background:var(--red-bg);border-color:var(--red-500);color:var(--red)}#app .qr-score.lv3{background:var(--red-500);border-color:var(--red-700);color:#fff}
#app .qr-score.opp.lv0{background:var(--n-50);border-color:var(--n-400);color:var(--n-600)}#app .qr-score.opp.lv1{background:var(--blue-bg);border-color:var(--blue-500);color:var(--blue)}#app .qr-score.opp.lv2{background:var(--green-bg);border-color:var(--green-500);color:var(--green-700)}#app .qr-score.opp.lv3{background:var(--green-500);border-color:var(--green-700);color:#fff}
#app .qr-evals td,#app .qr-evals th{white-space:nowrap}#app .qr-evals td:nth-child(5){white-space:normal}
/* azioni collegate */
#app .qa-linked{display:flex;flex-direction:column;gap:6px}
#app .qa-row{display:flex;align-items:center;gap:10px;width:100%;padding:8px 10px;border-radius:10px;border:1.5px solid var(--line);border-left:4px solid var(--orange-500);background:#fff;font:inherit;text-align:left;cursor:pointer}
#app .qa-row.done{border-left-color:var(--green-500);background:var(--green-bg)}#app .qa-row.late{border-left-color:var(--red-500);background:var(--red-bg)}
#app .qa-row-m{display:flex;flex-direction:column;flex:1;min-width:0}#app .qa-row-m b{font-size:13px}#app .qa-row-m small{font-size:12px;color:var(--muted);overflow:hidden;text-overflow:ellipsis}
#app .qa-add{display:flex;justify-content:flex-end}
/* piano: barra di avanzamento */
#app .qg-bar{height:8px;border-radius:99px;background:var(--n-200);overflow:hidden;min-width:90px}
#app .qg-bar i{display:block;height:100%;background:var(--blue-500);border-radius:99px}#app .qg-bar i.ok{background:var(--green-500)}
#app .qg-bar.big{height:12px;min-width:160px}
#app .qg-top-prog{display:flex;flex-direction:column;gap:4px;margin-left:auto}#app .qg-top-prog small{font-size:10px;font-weight:800;text-transform:uppercase;color:var(--muted);letter-spacing:.5px}#app .qg-top-prog b{font-size:16px}
#app .qg-kpi{white-space:nowrap}
/* scadenziario: mesi */
#app .qs-months{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:8px}
#app .qs-m{display:flex;flex-direction:column;align-items:flex-start;gap:0;padding:8px 12px;border-radius:12px;border:1.5px solid var(--line);border-left:4px solid var(--violet-500);background:#fff;font:inherit;cursor:pointer;text-align:left;min-width:0}
#app .qs-m small{font-size:11px;font-weight:700;color:var(--muted);text-transform:capitalize;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}
#app .qs-m b{font-size:20px}#app .qs-m span{font-size:11px;color:var(--muted)}
#app .qs-m.zero{border-left-color:var(--n-300)}#app .qs-m.zero b{color:var(--n-400)}
#app .qs-m.on{box-shadow:0 0 0 3px rgba(79,70,229,.2);border-color:var(--violet-500)}
#app .qs-what strong{display:flex;gap:6px;align-items:center}#app .qs-what strong svg{width:14px;height:14px;flex:none;color:var(--muted)}
@media (max-width:1099px){
  #app .qr-eval{grid-template-columns:1fr}
}
@media (max-width:899px){
  #app .q-grid{grid-template-columns:1fr}
  #app .q-pg .q-top{align-items:stretch}#app .q-pg .q-top>.field{flex:1 1 140px}
  #app .qg-top-prog{margin-left:0;flex-basis:100%}
  #app .qm{grid-template-columns:minmax(44px,auto) repeat(5,minmax(0,1fr));gap:3px}
  #app .qm-c{height:34px}
  #app .qm-yl small,#app .qm-xl small{display:none}
  #app .qs-months{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}
  #app .qs-m{padding:6px 8px}#app .qs-m b{font-size:16px}
}
#app .q-form{--nc:var(--orange-500)}
#app .nc-chip.qr-k-r.on{background:var(--orange-500);border-color:var(--orange-500);color:#fff}
#app .nc-chip.qr-k-o.on{background:var(--blue-500);border-color:var(--blue-500);color:#fff}
#app .q-form .select,#app .q-form .field .input{width:100%;max-width:100%}
@media (max-width:899px){
  #app .q-table .table tr.row-late{border-left:4px solid var(--red-500)!important;background:var(--red-bg)}
}
#app .an-tc span b{font-size:inherit}

/* V275 · Impostazioni: l'elenco delle sezioni a sinistra arriva fino in fondo allo schermo (prima si fermava ~100 px prima) */
@media (min-width:900px){
  #app .settings.v220 .settings-grid:not(.set-none)>.settings-nav{top:0;height:var(--set-nav-h,calc(100vh - 100px));max-height:var(--set-nav-h,calc(100vh - 100px))}
}
/* V275 · Superadmin: sezioni delle Impostazioni da togliere all'officina, strumenti per le funzioni */
#app .lim-fn-tools{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:8px}
#app .lim-fn-tools .search-box{flex:1 1 260px;max-width:420px}
#app .fn-group>summary .btn-sm{height:28px;padding:0 10px;font-size:12px}
#app .lim-set{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:10px}
#app .lim-set-g{border:1px solid var(--line);border-left:4px solid var(--sg,var(--n-600));border-radius:10px;padding:8px 10px;background:#fff;display:flex;flex-direction:column;gap:4px}
#app .lim-set-gh{font-size:11px;font-weight:800;letter-spacing:.5px;text-transform:uppercase;color:var(--sg,var(--n-600))}
#app .lim-set-i{display:flex;align-items:flex-start;gap:8px;padding:4px 2px}
#app .lim-set-i .set-ic{width:26px;height:26px;border-radius:8px;display:grid;place-items:center;background:color-mix(in srgb,var(--sg,var(--n-600)) 12%,#fff);color:var(--sg,var(--n-600));flex:none}
#app .lim-set-i .set-ic svg{width:14px;height:14px}
#app .lim-set-i.fixed{opacity:.75}
@media (max-width:899px){#app .lim-set{grid-template-columns:1fr}#app .fn-group>summary{flex-wrap:wrap}}

/* ============================================================
   V275 · Sistema qualità ISO: riesame, audit, competenze, tarature, soddisfazione
   ============================================================ */
#app .qms-tabs .seg-btn[data-t="review"].active{background:var(--n-900);color:#fff}
#app .qms-tabs .seg-btn[data-t="audit"].active{background:var(--blue-500);color:#fff}
#app .qms-tabs .seg-btn[data-t="skills"].active{background:var(--blue-500);color:#fff}
#app .qms-tabs .seg-btn[data-t="tools"].active{background:var(--orange-500);color:#fff}
#app .qms-tabs .seg-btn[data-t="survey"].active{background:var(--green-500);color:#fff}
#app .qm-p{margin:0 0 6px;font-size:13px;line-height:1.5}
/* riesame: elementi in ingresso */
#app .qm-in{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
#app .qm-in-i{display:flex;flex-direction:column;gap:6px;padding:10px;border:1px solid var(--line);border-radius:12px;background:#fff;min-width:0}
#app .qm-in-h b{display:block;font-size:13px}#app .qm-in-h small{font-size:12px;color:var(--muted)}
#app .qm-auto{display:flex;gap:6px;align-items:flex-start;padding:7px 9px;border-radius:9px;background:var(--blue-bg);color:var(--blue);font-size:12px;line-height:1.4}
#app .qm-auto svg{width:14px;height:14px;flex:none;margin-top:1px;color:var(--blue-500)}
/* decisioni e rilievi */
#app .qm-dec-h{margin:12px 0 6px}#app .qm-dec-h b{display:block}#app .qm-dec-h small{color:var(--muted);font-size:12px}
#app .qm-decs,#app .qm-finds{display:flex;flex-direction:column;gap:6px}
#app .qm-dec,#app .qm-find{display:grid;grid-template-columns:28px minmax(0,2.4fr) minmax(0,1.2fr) 150px auto 36px;gap:6px;align-items:center;padding:6px;border:1.5px solid var(--line);border-left:4px solid var(--green-500);border-radius:10px;background:#fff}
#app .qm-find{grid-template-columns:28px 200px 90px minmax(0,1fr) auto 36px}
#app .qm-find.tone-red{border-left-color:var(--red-500)}#app .qm-find.tone-orange{border-left-color:var(--orange-500)}#app .qm-find.tone-blue{border-left-color:var(--blue-500)}#app .qm-find.tone-green{border-left-color:var(--green-500)}
#app .qm-dec .input,#app .qm-find .input,#app .qm-find .select{height:34px;width:100%;min-width:0}
#app .qm-dec-n{display:grid;place-items:center;width:24px;height:24px;border-radius:99px;background:var(--n-100);font-size:12px;font-weight:800}
#app .qm-dec-mk{white-space:nowrap;font-size:12px}#app .qm-dec-a{white-space:nowrap;font-size:12px}
#app .qm-find-a{display:flex;gap:4px}
#app .qm-fchips{display:inline-flex;gap:4px;flex-wrap:wrap}
/* matrice competenze */
#app .qm-mx th.c{vertical-align:bottom;min-width:76px;white-space:normal;font-size:11px;line-height:1.2}
#app .qm-mx td.c{text-align:center}
#app .qm-lv{width:38px;height:30px;border-radius:8px;border:1.5px solid var(--line);font:inherit;font-weight:800;cursor:pointer;background:var(--n-50);color:var(--n-400)}
#app .qm-lv:not([data-act]){cursor:default}
#app .qm-lv.lv1{background:var(--orange-line);border-color:var(--orange-400);color:var(--orange-700)}#app .qm-lv.lv2{background:var(--green-line);border-color:var(--green-400);color:var(--green-700)}#app .qm-lv.lv3{background:var(--green-500);border-color:var(--green-500);color:#fff}
#app .qm-mx-tot td{background:var(--n-50);font-size:12px;font-weight:700}
/* soddisfazione */
#app .qm-stars{letter-spacing:1px;font-size:13px;color:var(--n-300);white-space:nowrap}#app .qm-stars i{font-style:normal}#app .qm-stars i.on{color:var(--orange-500)}
#app .qm-sv{display:flex;flex-direction:column;gap:8px;padding:10px;border:1px solid var(--line);border-radius:12px;background:var(--n-50)}
#app .qm-sv-r{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}
#app .qm-sv-r>span{font-weight:700;font-size:13px}
#app .qm-sv-v{display:flex;gap:4px;flex-wrap:wrap}
#app .qm-sv-b{display:grid;place-items:center;min-width:34px;height:32px;padding:0 6px;border-radius:8px;border:1.5px solid var(--line);background:#fff;font-weight:800;cursor:pointer;user-select:none}
#app .qm-sv-b.on{background:var(--blue-500);border-color:var(--blue-500);color:#fff}
#app .qm-sv-v.nps .qm-sv-b.on.p{background:var(--green-500);border-color:var(--green-500)}#app .qm-sv-v.nps .qm-sv-b.on.d{background:var(--red-500);border-color:var(--red-500)}#app .qm-sv-v.nps .qm-sv-b.on.n{background:var(--orange-500);border-color:var(--orange-500)}
#app .qm-todo{cursor:default}
#app .nc-risk-links{margin-top:6px;font-size:12px}
#app .field .btn-sm{margin-top:6px;align-self:flex-start}
.text-orange{color:var(--orange-500)}
@media (max-width:1199px){
  #app .qm-dec{grid-template-columns:28px minmax(0,1fr) minmax(0,1fr) 36px}
  #app .qm-dec>.input[type=date]{grid-column:2}#app .qm-dec>.qm-dec-mk,#app .qm-dec>.qm-dec-a{grid-column:3}
  #app .qm-find{grid-template-columns:28px minmax(0,1fr) 90px 36px}
  #app .qm-find>.qm-find-t{grid-column:2/4}#app .qm-find>.qm-find-a{grid-column:2/4}
}
@media (max-width:899px){
  #app .qm-in{grid-template-columns:1fr}
  #app .qm-dec,#app .qm-find{grid-template-columns:28px minmax(0,1fr) 36px}
  #app .qm-dec>*:not(.qm-dec-n):not(.action-btn),#app .qm-find>*:not(.qm-dec-n):not(.action-btn){grid-column:2}
  #app .qm-dec>.action-btn,#app .qm-find>.action-btn{grid-column:3;grid-row:1}
  #app .qm-sv-r{flex-direction:column;align-items:flex-start}
  #app .qm-sv-b{min-width:30px;height:30px}
}

/* ============================================================
   V276 · Fisco: stima IVA e imposte, profilo fiscale, tabelle per anno
   ============================================================ */
#app .tx-warn{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:10px 14px;border-radius:12px;background:var(--orange-bg);border:1px solid var(--orange-400);color:var(--orange-700);font-size:13px}
#app .tx-warn>svg{width:18px;height:18px;flex:none;color:var(--orange-500)}#app .tx-warn>span{flex:1 1 300px}
#app .tx-tabs .seg-btn[data-t].active{background:var(--orange);color:#fff}
#app .tx-chips{display:flex;flex-wrap:wrap;gap:8px}
#app .tx-chip{display:flex;flex-direction:column;gap:1px;padding:8px 12px;border-radius:12px;border:1px solid var(--line);background:#fff;min-width:0;max-width:100%}
#app .tx-chip small{font-size:10px;font-weight:800;letter-spacing:.5px;text-transform:uppercase;color:var(--muted)}
#app .tx-chip b{font-size:14px}#app .tx-chip em{font-style:normal;font-size:11px;color:var(--muted);overflow-wrap:anywhere}
#app .tx-chip.warn{border-color:var(--orange-400);background:var(--orange-bg)}
#app .tx-next{display:flex;flex-direction:column;gap:6px}
#app .tx-due{display:grid;grid-template-columns:110px minmax(0,1fr) auto 36px;gap:10px;align-items:center;padding:8px 10px;border:1.5px solid var(--line);border-left:4px solid var(--blue-500);border-radius:10px;background:#fff}
#app .tx-due.st-scaduto{border-left-color:var(--red-500);background:var(--red-bg)}#app .tx-due.st-versato{border-left-color:var(--green-500);background:var(--green-bg)}#app .tx-due.st-promemoria{border-left-color:var(--violet-500)}#app .tx-due.st-acredito,#app .tx-due.st-nienteaversare{border-left-color:var(--n-400)}
#app .tx-due-d b{display:block;font-size:13px}#app .tx-due-d small,#app .tx-due-m small{font-size:11px;color:var(--muted)}
#app .tx-due-m{min-width:0}#app .tx-due-m b{display:block;font-size:13px}
#app .tx-due-a{display:flex;flex-direction:column;align-items:flex-end;gap:3px;white-space:nowrap}
#app .tx-acc{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
#app .tx-acc-o{display:flex;flex-direction:column;gap:2px;padding:10px 12px;border-radius:12px;border:1.5px solid var(--line);background:#fff;min-width:0}
#app .tx-acc-o.on{border-color:var(--orange);background:var(--orange-bg)}
#app .tx-acc-o small{font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.5px;color:var(--muted)}#app .tx-acc-o b{font-size:18px}#app .tx-acc-o span{font-size:12px;color:var(--muted)}
#app .tx-cal{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;align-items:start}
#app .tx-rules{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;align-items:start}
#app .tx-kv{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.3fr);gap:4px 12px;margin:0;font-size:13px}
#app .tx-kv dt{color:var(--muted)}#app .tx-kv dd{margin:0;font-weight:700}
#app .tx-src{margin:10px 0 0;font-size:11px;color:var(--muted)}#app .tx-src a{color:var(--blue-500)}
#app .tx-rw{display:flex;gap:6px;align-items:flex-start;margin:8px 0 0;padding:6px 9px;border-radius:8px;background:var(--orange-bg);color:var(--orange-700);font-size:12px}#app .tx-rw svg{width:14px;height:14px;flex:none;margin-top:1px}
#app .tx-coef{display:flex;flex-direction:column;gap:6px}#app .tx-coef>div{display:flex;gap:10px;align-items:flex-start}#app .tx-coef b{min-width:44px;font-size:15px;color:var(--violet-500)}#app .tx-coef span{font-size:12px}#app .tx-coef small{display:block;color:var(--muted);font-family:var(--mono,monospace);font-size:10px;overflow-wrap:anywhere}
#app .tx-dsum{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-bottom:10px}#app .tx-dsum>div{padding:8px 12px;border:1px solid var(--line);border-radius:10px}#app .tx-dsum small{display:block;font-size:11px;color:var(--muted)}#app .tx-dsum b{font-size:17px}
#modalRoot .tx-dsum{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-bottom:10px}#modalRoot .tx-dsum>div{padding:8px 12px;border:1px solid var(--line);border-radius:10px}#modalRoot .tx-dsum small{display:block;font-size:11px;color:var(--muted)}#modalRoot .tx-dsum b{font-size:17px}
#modalRoot .tx-dh{margin:14px 0 6px}#modalRoot .tx-sep td{background:var(--n-100);font-weight:800;font-size:11px;text-transform:uppercase;letter-spacing:.5px}
#modalRoot .tx-part td{background:var(--orange-bg)}
/* impostazioni › fisco */
#app .tx-ateco-pick{display:flex;gap:8px;align-items:center;flex-wrap:wrap}#app .tx-ateco-pick .combo,#app .tx-ateco-pick>.input,#app .tx-ateco-pick>div:first-child{flex:1 1 260px}
#app .tx-file{cursor:pointer}
#app .tx-atecos,#app .tx-soci{display:flex;flex-direction:column;gap:6px;margin-top:8px}
#app .tx-ateco{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:7px 10px;border:1.5px solid var(--line);border-radius:10px;background:#fff}
#app .tx-ateco.prim{border-color:var(--violet-500);background:var(--violet-bg)}
#app .tx-coef-b{font-size:12px;font-weight:800;padding:2px 9px;border-radius:99px;background:var(--violet-bg);color:var(--violet)}#app .tx-coef-b.warn{background:var(--orange-line);color:var(--orange-700)}
#app .tx-socio{display:grid;grid-template-columns:minmax(0,2fr) minmax(0,1.2fr) 90px auto 36px;gap:6px;align-items:center}
#app .tx-quota{display:flex;align-items:center;gap:4px}#app .tx-quota .input{width:100%;min-width:0;text-align:right}
#app .tx-toggles{display:flex;flex-wrap:wrap;gap:6px 16px}
#app .tx-cats .input{height:32px;width:100%;min-width:0}#app .tx-cats td.num .input{text-align:right;max-width:90px}
#app .tx-tf-bar{display:flex;align-items:flex-end;gap:8px;flex-wrap:wrap;margin-bottom:10px}
#app .tx-addl{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 12px;margin-bottom:8px}
#app .tx-coefs{display:flex;flex-direction:column;gap:6px;margin-bottom:8px}
#app .tx-coef-r{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,2fr) 90px;gap:6px}
@media (max-width:1199px){#app .tx-cal,#app .tx-rules{grid-template-columns:1fr}}
@media (max-width:899px){
  #app .tx-due{grid-template-columns:minmax(0,1fr) 36px}#app .tx-due-d{grid-column:1}#app .tx-due-m{grid-column:1}#app .tx-due-a{grid-column:1;flex-direction:row;align-items:center;justify-content:space-between}#app .tx-due>.action-btn{grid-column:2;grid-row:1}
  #app .tx-acc{grid-template-columns:1fr}
  #app .tx-socio{grid-template-columns:minmax(0,1fr) 90px 36px}#app .tx-socio>.input:first-child{grid-column:1/3}#app .tx-socio>.input.mono{grid-column:1}#app .tx-socio>.check{grid-column:1/3}#app .tx-socio>.action-btn{grid-column:3;grid-row:1}
  #app .tx-addl{grid-template-columns:1fr}
  #app .tx-coef-r{grid-template-columns:minmax(0,1fr) 90px}#app .tx-coef-r>.input.mono{grid-column:1/3;grid-row:2}
  #app .tx-kv{grid-template-columns:1fr}#app .tx-kv dd{margin-bottom:4px}
}
@media (max-width:599px){#modalRoot .tx-dsum{grid-template-columns:1fr}}

/* ############################################################
   V277 · ASSISTENZA (richieste con foto della pagina, Telegram)
   ############################################################ */
.as-btn .ic{color:var(--ink-2)}
.as-btn #asCount{background:var(--red)}
.pop-as{min-width:300px;max-width:min(380px,94vw)}
.as-pop .menu-item>span{display:flex;flex-direction:column;align-items:flex-start;text-align:left;flex:1 1 auto;min-width:0}
.as-pop .menu-item small{color:var(--muted);font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.as-pop .menu-item b{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.as-pop .as-pop-new{background:var(--primary-50);color:var(--primary);margin-bottom:4px}
.as-pop .as-pop-new small{color:var(--blue)}
.as-pop .as-pop-t.unread b{color:var(--ink)}
.as-pop .as-pop-t.unread small{color:var(--red);font-weight:700}
.as-dot{display:inline-block;width:10px;height:10px;border-radius:50%;background:var(--c,var(--blue-500));flex:0 0 auto;font-style:normal}
.as-pr .as-dot{width:8px;height:8px;margin-right:5px;vertical-align:0}
/* nuova richiesta */
.as-new{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(300px,1fr);gap:16px;align-items:start}
.as-new-shot{min-width:0;display:flex;flex-direction:column;gap:8px}
.as-ed-head{display:flex;flex-direction:column;gap:2px}
.as-ed-head b{display:flex;align-items:center;gap:6px;font-size:14px}.as-ed-head b svg{width:17px;height:17px;color:var(--primary)}
.as-ed-head small{color:var(--muted);font-size:12px}
.as-ed-tools{display:flex;flex-wrap:wrap;align-items:center;gap:6px}
.as-ed-tools .grow{flex:1 1 0}
.as-ed-tools .btn svg,.as-ed-tools .seg-btn svg{width:15px;height:15px}
.as-file{cursor:pointer;position:relative}
.as-ed-stage{border:1px solid var(--line-strong);border-radius:10px;background:repeating-conic-gradient(var(--n-100) 0 25%,#fff 0 50%) 0 0/16px 16px;overflow:hidden;display:flex;justify-content:center}
.as-ed-stage canvas{display:block;max-width:100%;max-height:min(56vh,560px);width:auto;height:auto;touch-action:none;cursor:crosshair}
.as-ed-empty{border:2px dashed var(--line-strong);border-radius:10px;padding:34px 16px;display:flex;flex-direction:column;align-items:center;gap:6px;text-align:center;color:var(--muted)}
.as-ed-empty svg{width:34px;height:34px;color:var(--muted-2)}.as-ed-empty b{color:var(--ink-2)}
.as-shot-foot{display:flex;align-items:center;gap:8px;flex-wrap:wrap;justify-content:space-between}
.as-thumbs{display:flex;gap:8px;flex-wrap:wrap}
.as-thumb{position:relative;border:2px solid var(--line);border-radius:8px;overflow:hidden;width:92px;height:64px;background:#fff}
.as-thumb.on{border-color:var(--primary)}
.as-thumb>button:first-child{width:100%;height:100%;padding:0;display:block}
.as-thumb img{width:100%;height:100%;object-fit:cover;object-position:top left;display:block}
.as-thumb-x{position:absolute;top:2px;right:2px;width:22px;height:22px;border-radius:6px;background:rgba(16,24,40,.72);color:#fff;display:grid;place-items:center}
.as-thumb-x svg{width:13px;height:13px}
.as-new-form{display:flex;flex-direction:column;gap:12px;min-width:0}
.as-new-form .field{margin:0}
.as-chips{display:flex;flex-wrap:wrap;gap:6px}
.as-chip{position:relative;cursor:pointer}
.as-chip input{position:absolute;opacity:0;pointer-events:none}
.as-chip>span{display:inline-flex;align-items:center;gap:6px;height:32px;padding:0 11px;border:1px solid var(--line-strong);border-radius:999px;font-size:12.5px;font-weight:700;color:var(--ink-2);background:#fff}
.as-chip>span svg{width:15px;height:15px}
.as-chip input:checked+span{border-color:var(--primary);background:var(--primary-50);color:var(--primary);box-shadow:0 0 0 1px var(--primary) inset}
.as-chip input:focus-visible+span{outline:2px solid var(--primary);outline-offset:2px}
.as-prio .as-chip input:checked+span{border-color:var(--c);color:var(--c);background:color-mix(in srgb,var(--c) 9%,#fff);box-shadow:0 0 0 1px var(--c) inset}
.as-prio .as-chip .as-dot{width:9px;height:9px}
.as-new-form .hint{color:var(--muted);font-size:11.5px}
.as-tech{border:1px solid var(--line);border-radius:10px;padding:8px 10px;background:var(--gray-bg);font-size:12.5px}
.as-tech summary{cursor:pointer;font-weight:700;color:var(--ink-2);display:flex;align-items:center;gap:6px}
.as-tech summary svg{width:15px;height:15px}
.as-tech-dl,.as-dl{display:grid;gap:4px;margin:8px 0 0}
.as-tech-dl>div,.as-dl>div{display:grid;grid-template-columns:96px minmax(0,1fr);gap:8px;align-items:baseline}
.as-tech-dl dt,.as-dl dt{color:var(--muted);font-size:12px}
.as-tech-dl dd,.as-dl dd{margin:0;overflow-wrap:anywhere;font-size:12.5px}
.as-errs{display:flex;flex-direction:column;gap:4px;margin-top:8px}
.as-errs b{font-size:12px;color:var(--red)}
.as-errs code{display:block;font-size:11px;background:#fff;border:1px solid var(--line);border-radius:6px;padding:4px 6px;overflow-wrap:anywhere;white-space:pre-wrap;color:var(--red-700)}
.as-foot-note{display:inline-flex;align-items:center;gap:5px}.as-foot-note svg{width:14px;height:14px}
body.as-capturing{cursor:progress}
/* elenco */
.as-intro svg{width:16px;height:16px;vertical-align:-3px}
.as-num{display:inline-flex;align-items:center;gap:6px}

i.as-unread{display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--red);box-shadow:0 0 0 3px var(--red-bg)}
.as-table tr.as-row-new td{background:var(--blue-bg)}
.as-table tr.as-row-new strong{color:var(--ink)}
.muted.block,.block{display:block}
/* conversazione */
.as-tk-grid{display:grid;grid-template-columns:minmax(0,1fr) 330px;gap:14px;align-items:start}
.as-chat{display:flex;flex-direction:column;min-height:min(70vh,720px);padding:0;overflow:hidden}
.as-chat-head{display:flex;align-items:center;gap:10px;padding:12px 14px;border-bottom:1px solid var(--line);font-size:15px;min-width:0}
.as-chat-head .grow{flex:1 1 0;min-width:0}.as-chat-head .as-st{margin-left:auto;flex:0 0 auto}.as-chat-head .as-pr{flex:0 0 auto}
.as-msgs{flex:1 1 auto;overflow:auto;padding:14px;display:flex;flex-direction:column;gap:10px;background:linear-gradient(180deg,var(--n-50),#fff 60%);max-height:62vh}
.as-msg{display:flex}
.as-msg.mine{justify-content:flex-end}
.as-bub{max-width:min(78%,680px);border:1px solid var(--line);background:#fff;border-radius:14px 14px 14px 4px;padding:9px 12px;box-shadow:0 1px 2px rgba(16,24,40,.04);min-width:0}
.as-msg.mine .as-bub{border-radius:14px 14px 4px 14px;background:var(--primary-50);border-color:var(--blue-line)}
.as-msg.side-sup .as-bub{border-left:3px solid var(--violet)}
.as-who{display:flex;align-items:baseline;gap:6px;flex-wrap:wrap;margin-bottom:3px}
.as-who b{font-size:12.5px}.as-who small{color:var(--muted);font-size:11.5px}
.as-tag{font-size:10.5px;font-weight:800;color:var(--violet);background:var(--violet-bg);border-radius:999px;padding:1px 7px}
.as-txt{font-size:13.5px;line-height:1.45;overflow-wrap:anywhere}
.as-files{display:flex;gap:6px;flex-wrap:wrap;margin-top:7px}
.as-img{display:block;border:1px solid var(--line);border-radius:8px;overflow:hidden;width:200px;max-width:100%;height:124px;background:var(--gray-bg);padding:0}
.as-img img{width:100%;height:100%;object-fit:cover;object-position:top left;display:block}
.as-img.missing{display:grid;place-items:center}.as-img.missing::after{content:'immagine non in questo browser';font-size:11px;color:var(--muted)}
.as-img.missing img{display:none}
.as-sys{align-self:center;display:inline-flex;align-items:center;gap:6px;font-size:11.5px;color:var(--muted);background:var(--gray-bg);border-radius:999px;padding:3px 10px;max-width:100%;flex-wrap:wrap;justify-content:center}
.as-sys svg{width:12px;height:12px}.as-sys small{color:var(--muted-2)}
.as-composer{border-top:1px solid var(--line);padding:10px 12px;display:flex;flex-direction:column;gap:8px;background:#fff}
.as-composer textarea{resize:vertical;min-height:64px}
.as-comp-bar{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.as-comp-bar .grow{flex:1 1 0}
.as-comp-st{display:inline-flex;align-items:center;gap:6px;font-size:12px;color:var(--muted);font-weight:600}
.as-comp-st .select{width:auto;min-width:170px}
.as-rfiles{display:flex;gap:6px;flex-wrap:wrap}.as-rfiles:empty{display:none}
.as-rf{position:relative;width:76px;height:56px;border:1px solid var(--line);border-radius:7px;overflow:hidden}
.as-rf img{width:100%;height:100%;object-fit:cover}
.as-rf button{position:absolute;top:2px;right:2px;width:20px;height:20px;border-radius:5px;background:rgba(16,24,40,.72);color:#fff;display:grid;place-items:center}
.as-rf button svg{width:12px;height:12px}
.as-closed{border-top:1px solid var(--line);padding:12px 14px;display:flex;align-items:center;gap:10px;color:var(--green);font-weight:700;flex-wrap:wrap}
.as-closed svg{width:17px;height:17px}.as-closed .btn{margin-left:auto}
.as-side{display:flex;flex-direction:column;gap:12px;min-width:0}
.as-box{padding:12px 14px}
.as-box h4{display:flex;align-items:center;gap:7px;margin:0 0 4px;font-size:14px}.as-box h4 svg{width:17px;height:17px;color:var(--primary)}
.as-box .select.sm{height:30px;font-size:12.5px;padding-top:0;padding-bottom:0}
.as-box .link-btn{margin-top:8px}
.as-box p.small svg{width:14px;height:14px;vertical-align:-2px;color:var(--green)}
.as-del{margin-top:10px;padding-top:10px;border-top:1px dashed var(--line)}
/* impostazioni */
.as-set .notice>span,.as-page .notice>span{flex:1 1 0;min-width:0}
.as-table .cell-2{max-width:640px}
.as-set{display:flex;flex-direction:column;gap:14px}
.as-steps{margin:8px 0 10px;padding-left:20px;font-size:13px;line-height:1.6}
.as-steps code,.as-set p code{background:var(--gray-bg);border-radius:5px;padding:0 5px;font-size:12px}
.as-pw{display:flex;gap:6px;align-items:center}.as-pw .input{flex:1 1 auto;min-width:0}
.as-chats{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin:4px 0 10px;font-size:13px}
.as-chats>b{margin-right:4px}
.as-chatchip{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--line-strong);border-radius:999px;padding:3px 4px 3px 10px;font-size:12.5px;font-weight:600;background:#fff;max-width:100%}
.as-chatchip svg{width:13px;height:13px}.as-chatchip small{color:var(--muted)}
.as-chatchip button{width:22px;height:22px;border-radius:50%;display:grid;place-items:center;color:var(--muted)}
.as-chatchip button:hover{background:var(--red-bg);color:var(--red)}
.as-tg-acts{display:flex;gap:8px;flex-wrap:wrap}
@media (max-width:1199px){
  .as-tk-grid{grid-template-columns:1fr}
  .as-side{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr))}
}
@media (max-width:979px){
  .as-new{grid-template-columns:1fr}
  .as-ed-stage canvas{max-height:42vh}
}
@media (max-width:599px){
  .as-ed-tools .btn>span,.as-ed-tools .as-file>span{display:none}
  .as-bub{max-width:92%}
  .as-img{width:150px;height:96px}
  .as-msgs{max-height:none}
  .as-chat{min-height:0}
  .as-comp-st{width:100%}.as-comp-st .select{flex:1 1 auto;min-width:0}
  .as-tech-dl>div,.as-dl>div{grid-template-columns:84px minmax(0,1fr)}
}
.as-cfg-note>span{flex:1 1 0;min-width:0}
.as-img.missing.tg::after{content:'foto su Telegram'}
.as-pop .menu-title b{margin-left:4px}
.as-pop-more{font-size:12px;color:var(--muted);padding:2px 10px 6px 30px}
.as-pop-empty{display:flex;align-items:center;gap:8px;padding:10px;color:var(--green);font-size:13px;font-weight:600}.as-pop-empty svg{width:16px;height:16px}
.pop-as .menu-list.as-pop{max-height:min(70vh,560px);overflow:auto}
#popRoot .pop-as .as-pop .menu-item{display:flex;align-items:center;justify-content:flex-start;gap:9px;text-align:left;width:100%;min-width:0}
#popRoot .pop-as .as-pop .menu-item>span:not(.as-dot){display:flex;flex-direction:column;align-items:flex-start;text-align:left;flex:1 1 auto;min-width:0;overflow:hidden}
#popRoot .pop-as .as-pop .menu-item>span>b,#popRoot .pop-as .as-pop .menu-item>span>small{display:block;max-width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
#popRoot .pop-as .as-pop .as-dot{flex:0 0 10px;width:10px;height:10px;border-radius:50%}
#popRoot .pop-as .as-pop .menu-item>span>b,#popRoot .pop-as .as-pop .menu-item>span>small{margin:0;text-align:left;align-self:flex-start;width:auto}

/* V284 · Info Targa · gestione crediti (richieste da approvare) */
.cr-set{display:flex;flex-direction:column;gap:14px}
.cr-set .notice>span,.it-cred-link>span{flex:1 1 0;min-width:0}
.it-cred-link{align-items:center}
.cr-head{display:flex;align-items:center;gap:14px;flex-wrap:wrap}
.cr-bal{display:flex;align-items:center;gap:12px;padding:12px 16px;border-radius:14px;border:1px solid var(--line);background:#fff;min-width:240px}
.cr-bal>svg{width:28px;height:28px;color:var(--c,var(--green-500))}
.cr-bal span{display:flex;flex-direction:column;line-height:1.15}
.cr-bal small{font-size:12px;color:var(--muted);font-weight:600}
.cr-bal b{font-size:30px;font-weight:800;color:var(--c,var(--green-500))}
.cr-bal em{font-style:normal;font-size:12px;color:var(--muted)}
.cr-bal.tone-orange{--c:var(--orange)}.cr-bal.tone-red{--c:var(--red)}.cr-bal.tone-gray{--c:var(--gray)}
.cr-acts{display:flex;gap:8px;flex-wrap:wrap;margin-left:auto}
.cr-seg{margin-left:auto}
.cr-list{display:flex;flex-direction:column;border:1px solid var(--line);border-radius:12px;overflow:hidden}
.cr-row{display:grid;grid-template-columns:150px 110px minmax(0,1fr) 210px 150px;gap:12px;align-items:center;padding:10px 14px;border-top:1px solid var(--line);background:#fff;border-left:4px solid transparent}
.cr-row:first-child{border-top:0}
.cr-row.st-orange{border-left-color:var(--orange);background:var(--orange-bg)}
.cr-row.st-green{border-left-color:var(--green)}.cr-row.st-red{border-left-color:var(--red)}.cr-row.st-gray{border-left-color:var(--line-strong);opacity:.8}
.cr-row>div{display:flex;flex-direction:column;min-width:0;gap:2px}
.cr-row small{font-size:11.5px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.cr-q b{font-size:18px;font-weight:800}
.cr-who span{font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.cr-st{align-items:flex-start}
.cr-a{flex-direction:row!important;justify-content:flex-end;gap:6px;align-items:center}
@media (max-width:1099px){.cr-row{grid-template-columns:130px 90px minmax(0,1fr) 150px}.cr-a{grid-column:1/-1;justify-content:flex-start}.cr-a:empty{display:none}}
@media (max-width:599px){
  .cr-row{grid-template-columns:minmax(0,1fr) auto}
  .cr-who{grid-column:1/-1}.cr-st{grid-column:1/-1;flex-direction:row!important;align-items:center;gap:8px}
  .cr-acts{margin-left:0;width:100%}.cr-acts .btn{flex:1 1 auto}
  .cr-bal{flex:1 1 100%;min-width:0}
}
/* V284: misura gomme in 5 parti (indice di carico e di velocità separati) */
.tire-form .tp-grid{grid-template-columns:repeat(10,minmax(0,1fr))}
.tire-form .tp-grid>#tpc_brand,.tire-form .tp-grid>#tpc_model{grid-column:span 5}
.tire-form .tp-grid>.tp-part{grid-column:span 2}
@media (max-width:1199px){.tp-grid{grid-template-columns:repeat(10,minmax(0,1fr))}.tp-grid>#tpc_brand,.tp-grid>#tpc_model{grid-column:span 5}.tp-grid>.tp-part{grid-column:span 2}}
@media (max-width:640px){.tp-grid,.tire-form .tp-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.tp-grid>#tpc_brand,.tp-grid>#tpc_model,.tire-form .tp-grid>#tpc_brand,.tire-form .tp-grid>#tpc_model,.tp-grid>.tp-part,.tire-form .tp-grid>.tp-part{grid-column:span 1}}

/* V285 · modello di stampa documenti: impostazioni e anteprima */
.pd-set,.pd-co-set{margin-top:16px}
.pd-color{width:72px;height:38px;padding:3px;cursor:pointer}
.pd-tests{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.pd-img-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.pd-img-row img{max-width:180px;max-height:70px;object-fit:contain;border:1px solid var(--line);border-radius:8px;padding:4px;background:repeating-conic-gradient(var(--n-100) 0 25%,#fff 0 50%) 0 0/12px 12px}
.pd-img-none{display:inline-flex;align-items:center;gap:6px;color:var(--muted);font-size:12.5px}.pd-img-none svg{width:16px;height:16px}
.doc-preview .pdoc{min-height:0;background:#fff;padding:12px;border:1px solid var(--line);border-radius:8px;max-width:210mm;margin:0 auto}
.doc-preview .pdoc .pd-fill{min-height:6mm}
@media (max-width:899px){.doc-preview{overflow-x:auto}.doc-preview .pdoc{width:200mm;max-width:none}}
/* V289: nei dati documento la data facoltativa è allineata agli altri campi */
.ar-doc .opt-date .opt-date-chk{height:var(--fl-h,15px);margin:0 0 2px;align-items:center}
.ar-doc .opt-date .opt-date-chk input{width:14px;height:14px;margin:0}

/* V292 · Lettura documenti con IA */
.ai-bar{display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:12px 14px;margin-bottom:12px;border-radius:14px;border:1px solid var(--orange-line);background:linear-gradient(120deg,var(--orange-bg),#fff 70%);box-shadow:var(--shadow)}
.ai-bar>svg{width:24px;height:24px;color:var(--orange-500);flex:0 0 auto}
.ai-bar>span{display:flex;flex-direction:column;flex:1 1 220px;min-width:0}
.ai-bar>span b{font-size:14px}.ai-bar>span small{color:var(--muted);font-size:12px}
.ai-done{display:inline-flex;align-items:center;gap:5px;font-size:12px;font-weight:700;color:var(--green)}.ai-done svg{width:15px;height:15px}
.ai-pick-btns{display:flex;gap:8px;flex-wrap:wrap;margin:10px 0}
.ai-pick-btns label{cursor:pointer}
.ai-thumbs{display:flex;gap:10px;flex-wrap:wrap}
.ai-th{position:relative;width:110px;border:1px solid var(--line);border-radius:10px;overflow:hidden;background:#fff;display:flex;flex-direction:column}
.ai-th img{width:100%;height:130px;object-fit:cover;object-position:top}
.ai-th small{font-size:10.5px;color:var(--muted);padding:3px 6px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ai-th button{position:absolute;top:4px;right:4px;width:22px;height:22px;border-radius:6px;background:rgba(16,24,40,.72);color:#fff;display:grid;place-items:center}.ai-th button svg{width:12px;height:12px}
.ai-pdf{height:130px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;color:var(--red);font-weight:800;background:var(--red-bg)}.ai-pdf svg{width:28px;height:28px}
.ai-pdf.big{height:220px;border-radius:10px}
.ai-busy{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-top:12px;padding:12px;border-radius:10px;background:var(--primary-50);color:var(--blue)}
.ai-busy small{color:var(--muted)}
.ai-spin{width:18px;height:18px;border-radius:50%;border:3px solid var(--blue-line);border-top-color:var(--primary);animation:aiSpin .8s linear infinite}
@keyframes aiSpin{to{transform:rotate(360deg)}}
.ai-res{display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1.35fr);gap:16px;align-items:start}
.ai-res-img{max-height:64vh;overflow:auto;border:1px solid var(--line);border-radius:10px;background:var(--gray-bg);display:flex;flex-direction:column;gap:6px;padding:6px}
.ai-res-img img{width:100%;height:auto;display:block;border-radius:6px;background:#fff}
.ai-res-data{display:flex;flex-direction:column;gap:10px;min-width:0}
.ai-res-data .notice>span{flex:1 1 0;min-width:0}
.ai-dl{display:grid;grid-template-columns:1fr 1fr;gap:6px 14px;margin:0}
.ai-dl>div{display:flex;flex-direction:column;min-width:0;border-bottom:1px solid var(--line);padding-bottom:4px}
.ai-dl dt{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--muted)}
.ai-dl dd{margin:0;font-size:13px;overflow-wrap:anywhere}
.ai-lines td,.ai-lines th{font-size:12.5px}
.ai-lines .code-tag{font-size:10px}
@media (max-width:899px){.ai-res{grid-template-columns:1fr}.ai-res-img{max-height:32vh}.ai-dl{grid-template-columns:1fr}}

/* V293 · Lettura IA: più documenti, serie di foto, letture incerte, visionato, regole, crediti */
.ai-mode{display:flex;flex-direction:column;gap:6px;margin:4px 0 12px;padding:10px 12px;border:1px solid var(--line);border-radius:12px;background:var(--gray-bg)}
.ai-mode .seg{flex-wrap:wrap}.ai-mode .seg-btn svg{width:15px;height:15px;margin-right:4px}
.ai-cam{display:flex;flex-direction:column;gap:10px}
.ai-cam-view{position:relative;border-radius:12px;overflow:hidden;background:#000;aspect-ratio:3/4;max-height:50vh;margin:0 auto;width:100%}
.ai-cam-view video{width:100%;height:100%;object-fit:contain;display:block}
.ai-cam-flash{position:absolute;inset:0;background:#fff;opacity:0;pointer-events:none}.ai-cam-flash.on{animation:aiFlash .35s ease-out}
@keyframes aiFlash{0%{opacity:.85}100%{opacity:0}}
.ai-cam-n{position:absolute;top:10px;left:10px;padding:4px 10px;border-radius:999px;background:rgba(16,24,40,.7);color:#fff;font-size:12px;font-weight:700}
.ai-cam-bar{display:flex;align-items:center;gap:12px}.ai-cam-bar>span{flex:1}
.ai-shutter{width:64px;height:64px;border-radius:50%;border:4px solid var(--primary);background:#fff;box-shadow:inset 0 0 0 4px #fff,inset 0 0 0 30px var(--primary);flex:0 0 auto;cursor:pointer;transition:transform .1s}
.ai-shutter:active{transform:scale(.92)}
.ai-cam-th .ai-th{width:64px}.ai-cam-th .ai-th img,.ai-cam-th .ai-pdf{height:80px}.ai-cam-th small{display:none}
.ai-spin.sm{width:12px;height:12px;border-width:2px;display:inline-block;vertical-align:middle}
.ai-qlist{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:8px;margin-top:10px}
.ai-q{display:flex;flex-direction:column;gap:4px;font-size:12px}.ai-q .ai-th{width:100%}.ai-q .ai-th img,.ai-q .ai-pdf{height:90px}
.ai-q.st-ok svg{width:14px;height:14px;color:var(--green);vertical-align:middle}
.ai-list{display:flex;flex-direction:column;gap:8px}
.ai-li{display:grid;grid-template-columns:72px minmax(0,1fr) auto;gap:12px;align-items:center;padding:8px;border:1px solid var(--line);border-radius:12px;background:#fff}
.ai-li.st-saved{opacity:.7;background:var(--green-bg,var(--green-bg))}.ai-li.st-err{border-color:var(--red-line)}
.ai-li .ai-th{width:72px}.ai-li .ai-th img,.ai-li .ai-pdf{height:84px}.ai-li .ai-th small{display:none}
.ai-li-d{display:flex;flex-direction:column;gap:3px;min-width:0}.ai-li-d>b{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ai-li-d>span{font-size:13px}.ai-li-d small{font-size:12px;color:var(--muted)}
.ai-li-a{display:flex;flex-direction:column;align-items:flex-end;gap:6px}
.ai-confirm{font-size:13px;max-width:330px;text-align:right}
.ai-unsure{background:var(--orange-line) !important}
.ai-dl>div.ai-unsure{border-bottom-color:var(--orange-500);padding:3px 6px;border-radius:6px;box-shadow:inset 3px 0 0 var(--orange-500)}
.ai-lines tr.ai-unsure td{background:var(--orange-line) !important}.ai-lines tr.ai-unsure td:first-child{box-shadow:inset 3px 0 0 var(--orange-500)}
.ai-unsure-tag{display:inline-flex;align-items:center;gap:3px;font-size:11px;font-weight:700;color:var(--orange);background:var(--orange-line);border-radius:999px;padding:1px 7px;text-transform:none;letter-spacing:0}
.ai-unsure-tag svg{width:12px;height:12px}
.ai-unsure-note{background:var(--orange-line);border-color:var(--orange-400)}
.ai-rule-bar{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:7px 10px;border-radius:10px;border:1px dashed var(--line);font-size:13px}
.ai-rule-bar>svg{width:16px;height:16px;color:var(--muted)}.ai-rule-bar>span{flex:1 1 180px;min-width:0}
.ai-bar-st{display:flex;align-items:center;gap:10px;flex-wrap:wrap;flex:1 1 100%}
.ai-seen-chk{margin-left:auto;padding:5px 10px;border-radius:999px;background:#fff;border:1px solid var(--line);font-size:13px}
.ai-seen-bar{display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:10px 14px;margin-bottom:12px;border-radius:14px;border:1px solid var(--orange-400);background:var(--orange-bg)}
.ai-seen-bar.ok{border-color:var(--green-line);background:var(--green-bg)}
.ai-seen-bar>svg{width:22px;height:22px;color:var(--orange-500);flex:0 0 auto}.ai-seen-bar.ok>svg{color:var(--green)}
.ai-seen-bar>span{display:flex;flex-direction:column;flex:1 1 220px;min-width:0}.ai-seen-bar small{color:var(--muted);font-size:12px}
.ai-tag{display:inline-block;margin-left:4px;padding:0 6px;border-radius:6px;font:700 10px/16px var(--font,inherit);letter-spacing:.03em;color:var(--orange);background:var(--orange-line);vertical-align:middle}
.ai-tag.ok{color:var(--green);background:var(--green-line)}
.ai-rules-acts,.ai-set-acts{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.ai-rule-list{display:flex;flex-direction:column;gap:8px}
.ai-rule{border:1px solid var(--line);border-radius:12px;padding:10px 12px;background:#fff;display:flex;flex-direction:column;gap:6px}.ai-rule.off{opacity:.6}
.ai-rule-h{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.ai-rule-h small.mono{color:var(--muted)}
.ai-chips{display:flex;flex-wrap:wrap;gap:6px}.ai-chips .chip{font-size:12px}
.ai-ign{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:6px 14px;padding:8px 0}
.ai-exp{display:flex;flex-direction:column;gap:8px}.ai-exp-sub{margin-left:26px}
.ai-exp .seg-btn input{margin-right:4px}
.ai-est td small,.ai-uses td small{white-space:nowrap}
.ai-rule-txt{margin:0;font-size:14px}
@media (max-width:899px){.ai-li{grid-template-columns:56px minmax(0,1fr)}.ai-li .ai-th{width:56px}.ai-li .ai-th img,.ai-li .ai-pdf{height:66px}.ai-li-a{grid-column:1/-1;flex-direction:row;justify-content:flex-end;flex-wrap:wrap}.ai-confirm{text-align:left;max-width:none;flex:1 1 100%}.ai-seen-chk{margin-left:0}}

/* V294 · Nuova spesa con IA in background, allegati compatti */
.btn-ai{background:linear-gradient(120deg,var(--orange-500),var(--orange-500));color:#fff;border-color:transparent}.btn-ai:hover{filter:brightness(1.05);color:#fff}
.btn-ai svg{color:#fff}
.ai-est-bar{display:flex;align-items:center;gap:8px;margin-top:12px;padding:9px 12px;border-radius:10px;background:var(--green-bg,var(--green-bg));font-size:13px}
.ai-est-bar svg{width:16px;height:16px;flex:0 0 auto}.ai-est-bar.ko{background:var(--red-bg);color:var(--red-700)}
.ai-chip{position:fixed;left:16px;bottom:16px;z-index:60;display:inline-flex;align-items:center;gap:8px;padding:9px 14px;border-radius:999px;background:var(--n-900);color:#fff;font-size:13px;box-shadow:0 8px 24px rgba(15,23,42,.25);cursor:pointer;border:0}
.ai-chip .ai-spin{border-color:rgba(255,255,255,.3);border-top-color:#fff}
@media (max-width:899px){.ai-chip{left:12px;right:12px;bottom:calc(76px + env(safe-area-inset-bottom,0px));justify-content:center}}
.ai-jobs{margin-bottom:12px;border-color:var(--orange-line)}
.ai-jobs .card-head h3 small{font-weight:500;margin-left:6px}
.ai-jobs-list{display:flex;flex-direction:column}
.ai-job{display:grid;grid-template-columns:32px minmax(0,1fr) auto auto;gap:10px;align-items:center;padding:9px 14px;border-top:1px solid var(--line)}
.ai-job:first-child{border-top:0}
.ai-job-ic{display:grid;place-items:center}.ai-job-ic svg{width:18px;height:18px;color:var(--muted)}
.ai-job.st-error .ai-job-ic svg,.ai-job.st-stopped .ai-job-ic svg{color:var(--red)}.ai-job.st-incomplete .ai-job-ic svg{color:var(--orange-500)}
.ai-job.st-processing{background:linear-gradient(90deg,var(--blue-bg),transparent 60%)}
.ai-job-d{display:flex;flex-direction:column;min-width:0}.ai-job-d small{font-size:12px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ai-job-a{display:flex;gap:6px;align-items:center}
@media (max-width:899px){.ai-job{grid-template-columns:28px minmax(0,1fr) auto}.ai-job>.badge{grid-column:2;justify-self:start}.ai-job-a{grid-column:3;grid-row:1 / span 2}}
.action-btn.ai-todo svg{color:var(--orange-500)}.action-btn.ai-todo{background:var(--orange-bg)}
.action-btn.ai-ok svg{color:var(--green)}
.att-compact{flex-direction:row;flex-wrap:wrap;align-items:center;gap:6px}
.att-chip{display:inline-flex;align-items:center;max-width:240px;border:1px solid var(--line);border-radius:999px;background:#fff;padding:2px 4px 2px 8px;font-size:12.5px}
.att-chip .att-name{display:inline-flex;align-items:center;gap:5px;min-width:0;background:none;border:0;padding:3px 2px;color:var(--ink);cursor:pointer}
.att-chip .att-name span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.att-chip .att-name svg{width:14px;height:14px;color:var(--primary);flex:0 0 auto}
.att-chip .att-x{display:grid;place-items:center;width:20px;height:20px;border-radius:50%;border:0;background:transparent;color:var(--muted);cursor:pointer}.att-chip .att-x:hover{background:var(--red-bg);color:var(--red)}
.att-chip .att-x svg{width:12px;height:12px}
.att-chip.legacy{background:var(--orange-bg);border-color:var(--orange-line);color:var(--orange-700);gap:5px;padding:3px 10px}.att-chip.legacy svg{width:13px;height:13px}
.att-add.sm{height:28px;border-radius:999px;padding:0 10px;font-size:12.5px;display:inline-flex;align-items:center}
.att-field .field-label{margin-bottom:4px}
/* V294: barra di Spese con "Nuova spesa con IA": sotto i 1600 px gli altri pulsanti restano solo icona */
@media (min-width:900px) and (max-width:1599px){
  .tb-spese .tb-actions .btn:not(.btn-primary):not(.btn-ai)>span,.tb-spese .tb-actions .exp-menu-btn>span{display:none}
  .tb-spese .tb-actions .btn:not(.btn-primary):not(.btn-ai){padding:0 11px!important;min-width:40px;justify-content:center}
}
@media (max-width:899px){.tb-spese .tb-actions .btn-ai>span{display:none}.tb-spese .tb-actions .btn-ai{padding:0 11px!important;min-width:40px}}
/* V295 · eliminazione allegati per categoria */
.att-keep .att-days .dl-amt{max-width:150px}.att-keep .att-days .dl-amt .input{padding-right:62px}
.att-keep td{vertical-align:middle}
/* V296 · servizi dell'officina (Superadmin) */
.sup-svc{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:10px}
/* V300: "Nuova spesa con IA" al passaggio resta arancione (più scuro), come i pulsanti principali */
.btn.btn-ai:hover,.btn.btn-ai:focus-visible{background:linear-gradient(120deg,var(--orange-500),var(--orange-500));border-color:transparent;color:#fff}
.btn.btn-ai:active{filter:brightness(.95)}
/* V300 · strumenti e macchinari: piano dei controlli */
.qm-plan-h,.qm-plan-r{display:grid;grid-template-columns:minmax(0,1.4fr) 110px 150px minmax(0,1.2fr) 36px;gap:8px;align-items:center}
.qm-plan-h{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);padding:0 2px 4px}
.qm-plan{display:flex;flex-direction:column;gap:6px;margin-bottom:8px}
.qm-plan-r .dl-amt .input{padding-right:46px}
.qm-log td{font-size:12.5px}
@media (max-width:899px){.qm-plan-h{display:none}.qm-plan-r{grid-template-columns:1fr 1fr;padding:8px;border:1px solid var(--line);border-radius:10px}.qm-plan-r>select{grid-column:1/-1}.qm-plan-r>input[name^=p_provider]{grid-column:1/2}.qm-plan-r>.action-btn{justify-self:end}}
/* V300 · Fisco › Ammortamenti */
.am-sec{margin-top:12px}.am-sec .card-head h3 + small{margin-left:8px}
.am-table td,.am-table th{font-size:13px}.am-table tbody tr[data-act]{cursor:pointer}.am-table tr.am-virt td{background:var(--violet-bg)}
.am-table tfoot td{border-top:2px solid var(--line);background:var(--gray-bg)}
.am-sel{min-width:220px;max-width:320px;height:32px;font-size:12.5px}
.am-inv-list{display:flex;flex-direction:column;gap:6px;margin-top:10px;max-height:52vh;overflow:auto}
.am-inv{display:flex;align-items:center;gap:12px;padding:9px 12px;border:1px solid var(--line);border-radius:10px;background:#fff;text-align:left;cursor:pointer}
.am-inv:hover{border-color:var(--primary);background:var(--primary-50)}.am-inv>span{display:flex;flex-direction:column;flex:1;min-width:0}.am-inv small{color:var(--muted)}
.am-imp .seg{flex-wrap:wrap}.am-imp .seg-btn input{margin-right:4px}
.am-cfg td{padding:4px 6px}.am-cfg .input{height:32px;font-size:12.5px;padding:0 8px}.am-cfg .am-n{width:78px;text-align:right}
.am-plan td{font-size:12.5px}
/* V301: persone collegate (riesame, audit) */
.qm-people{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:6px}
.qm-person{border:1px solid var(--border);border-radius:999px;padding:5px 10px;background:var(--surface);font-weight:500}
.qm-person:has(input:checked){border-color:var(--primary);background:color-mix(in srgb,var(--primary) 8%,var(--surface))}
.qm-person small{font-weight:400}
/* V301: telefono · Nuovo contratto (Tipo e Data non schiacciati) e titolo dei riquadri di Analisi sopra i comandi */
@media (max-width:700px){
  .ar-doc .form-grid.cols-4{grid-template-columns:1fr 1fr;grid-auto-flow:row dense}
  .ar-doc .form-grid.cols-4>.span-2,.ar-doc .form-grid.cols-4>.span-3{grid-column:1/-1}
  #app .toolbar.tb-std>.toolbar-fill:has(>.tb-title){order:-1!important;flex:1 1 100%!important;width:100%;min-width:0!important;flex-direction:column;align-items:flex-start;gap:0}
  #app .toolbar.tb-std>.toolbar-fill>.tb-title{white-space:normal}
}
/* V301: schede divise in righe pari: testo al centro */
.bal>.seg-btn,.bal>.tx-chip,.bal>button{justify-content:center;text-align:center}
/* V301: telefono e tablet: pulsanti, caselle e menu delle barre tutti della stessa altezza (stile unico) */
@media (max-width:899px){
  #app .toolbar :is(.btn:not(.btn-sm),input.input,.select:not(.sm)),#app .page-actions .btn:not(.btn-sm),#app .page-head .btn:not(.btn-sm),#app .head-actions .btn:not(.btn-sm){height:var(--h-ctl)!important;min-height:var(--h-ctl)!important}
  #app .bal>.btn:not(.btn-sm){min-height:var(--h-ctl)}
}
/* V301: telefono · squadre una sotto l'altra (nomi interi, niente colonne tagliate) */
@media (max-width:699px){.set-block .tb{flex-direction:column;align-items:stretch;overflow-x:visible}.set-block .tb-col{flex:none;width:100%}.set-block .tb-add{flex:none;width:100%;height:auto;min-height:var(--h-ctl);flex-direction:row;gap:6px;padding:10px}}
/* V301: finestra "Crea pneumatico" più larga: colonne e scritte intere */
.modal-xl:has(.tp-modal){max-width:min(1480px,97vw);width:min(1480px,97vw)}
@media (min-width:1600px){.tp-modal .tp-grid{grid-template-columns:minmax(190px,1.25fr) minmax(190px,1.25fr) repeat(5,minmax(132px,1fr))}}
@media (min-width:641px) and (max-width:1599px){.tp-modal .tp-grid{grid-template-columns:repeat(10,minmax(0,1fr))}.tp-modal .tp-grid>#tpc_brand,.tp-modal .tp-grid>#tpc_model{grid-column:span 5}.tp-modal .tp-grid>.tp-part,.tp-modal .tp-grid>.vp-col:not(#tpc_brand):not(#tpc_model){grid-column:span 2}.tp-modal .tp-grid .vp-col{height:240px}}
/* V301: fisco spiegato semplice (profilo a passi, "?" e glossario) */
.tx-help{display:inline-grid;place-items:center;width:17px;height:17px;margin-left:5px;border-radius:50%;background:var(--primary-100,var(--blue-line));color:var(--primary);font-size:11px;font-weight:800;cursor:help;vertical-align:1px;text-transform:none;letter-spacing:0;line-height:1;flex:none}
.tx-help:hover{background:var(--primary);color:#fff}
.tx-step-n{display:inline-grid;place-items:center;width:24px;height:24px;border-radius:50%;background:var(--c);color:#fff;font-size:13px;font-weight:800;flex:none}
.tx-why{display:flex;gap:8px;align-items:flex-start;margin-top:10px;padding:10px 12px;border-radius:10px;background:color-mix(in srgb,var(--c,var(--blue-500)) 7%,#fff);border:1px solid color-mix(in srgb,var(--c,var(--blue-500)) 18%,#fff);font-size:13px;line-height:1.5;color:var(--ink-2,var(--n-700))}
.tx-why>svg{width:16px;height:16px;flex:none;margin-top:2px;color:var(--c,var(--blue-500))}
.tx-adv{margin-top:12px;border:1px dashed var(--line);border-radius:10px;padding:0 12px;background:var(--blue-bg)}
.tx-adv>summary{display:flex;align-items:center;gap:8px;padding:10px 0;cursor:pointer;font-weight:700;list-style:none}
.tx-adv>summary::-webkit-details-marker,.tx-gloss>summary::-webkit-details-marker{display:none}
.tx-adv>summary small{font-weight:500;color:var(--muted)}
.tx-adv>summary>svg:last-child,.tx-gloss>summary>svg:last-child{margin-left:auto;width:16px;height:16px;transition:transform .15s}
.tx-adv[open]>summary>svg:last-child,.tx-gloss[open]>summary>svg:last-child{transform:rotate(180deg)}
.tx-adv[open]{padding-bottom:12px}
.tx-pf>.pl-sec.tx-adv-wrap{padding:0}
.tx-gloss{padding:0 14px}
.tx-gloss>summary{display:flex;align-items:center;gap:8px;padding:12px 0;cursor:pointer;list-style:none;flex-wrap:wrap}
.tx-gloss>summary>svg:first-child{width:18px;height:18px;color:var(--primary)}
.tx-gl{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:10px;padding-bottom:14px}
.tx-gl-i{border:1px solid var(--line);border-radius:10px;padding:10px 12px;background:#fff;display:flex;flex-direction:column;gap:4px;font-size:13px;line-height:1.45}
.tx-gl-i b{font-size:14px}
.tx-gl-i em{font-style:normal;color:var(--muted);font-size:12px}
.tx-gl-i.hl{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-100,var(--blue-line))}
.modal .tx-gl{grid-template-columns:1fr 1fr}
@media (max-width:699px){.modal .tx-gl{grid-template-columns:1fr}}

/* V302 · Articoli senza giacenze: le schede del telefono/tablet usano Costo, Vendita e Guadagno al posto di Acquisto e Scorta */
@media (max-width:899px){
  #app .cards-art .table td[data-label="Costo"]{grid-area:cost!important;font-size:12px;color:var(--muted);text-align:right!important}
  #app .cards-art .table td[data-label="Guadagno"]{grid-area:gain!important;justify-self:end;white-space:nowrap;text-align:right!important}
  #app .cards-art .table td[data-label="Costo"] .cell-2,#app .cards-art .table td[data-label="Vendita"] .cell-2,#app .cards-art .table td[data-label="Guadagno"] .cell-2{display:block!important}
  #app .cards-art .table td[data-label="Costo"] .cell-2>*,#app .cards-art .table td[data-label="Vendita"] .cell-2>*,#app .cards-art .table td[data-label="Guadagno"] .cell-2>*{display:inline!important}
  #app .cards-art .table td[data-label="Costo"] small,#app .cards-art .table td[data-label="Vendita"] small{display:none!important}
  #app .cards-art .table td[data-label="Costo"]::after{content:" costo";font-size:11px;color:var(--muted)}
  #app .cards-art .table td[data-label="Guadagno"] small{margin-left:4px;font-size:11px;color:var(--muted)}
  #app .cards-art .table td[data-label="Guadagno"] small::before{content:"("}#app .cards-art .table td[data-label="Guadagno"] small::after{content:")"}
}
@media (max-width:599px){ #app .cards-art .table td[data-label="Guadagno"] small{display:none!important} }

/* V302 · Prezzi dell'articolo: due riquadri chiari (acquisto / vendita) */
.pz-card{padding:0!important;overflow:hidden}
.pz-sec .pp-title small{font-weight:500}
.pz-box{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.pz-card .pz-box{padding:12px}
.pz-col{border:1px solid var(--line);border-radius:12px;padding:12px 14px 10px;background:#fff;min-width:0;display:flex;flex-direction:column;gap:2px}
.pz-buy{box-shadow:inset 4px 0 0 var(--violet-500);background:linear-gradient(180deg,var(--violet-bg),#fff 60%)}
.pz-sell{box-shadow:inset 4px 0 0 var(--green-500);background:linear-gradient(180deg,var(--green-bg),#fff 60%)}
.pz-col h4{display:flex;align-items:center;gap:8px;margin:0 0 6px;font-size:14px;font-weight:700;color:#0f1b2d}
.pz-col h4 svg{width:18px;height:18px;flex:none}
.pz-buy h4 svg{color:var(--violet-500)}.pz-sell h4 svg{color:var(--green-500)}
.pz-col h4 small{display:block;font-size:11px;font-weight:500;color:var(--muted)}
.pz-row{display:flex;align-items:baseline;justify-content:space-between;gap:10px;padding:5px 0;border-top:1px dashed var(--line);min-width:0}
.pz-row:first-of-type{border-top:0}
.pz-row>span{min-width:0;font-size:13px;color:var(--n-700)}
.pz-row>span small{display:block;font-size:11px;color:var(--muted);line-height:1.25}
.pz-row>b{white-space:nowrap;font-size:14px;font-variant-numeric:tabular-nums}
.pz-row.pz-minus>b{color:var(--orange)}
.pz-row.pz-soft>span,.pz-row.pz-soft>b{color:var(--muted);font-weight:600}
.pz-row.pz-main{border-top:1px solid var(--line);padding:7px 0}
.pz-row.pz-main>span{font-weight:700;color:#0f1b2d}
.pz-buy .pz-row.pz-main>b{font-size:19px;color:var(--violet)}
.pz-sell .pz-row.pz-main>b{font-size:19px;color:var(--green)}
.pz-row.pz-gain>span{font-weight:700;color:#0f1b2d}.pz-row.pz-gain>b{font-size:16px;color:var(--green)}
.pz-row.pz-gain.neg>b{color:var(--red-500)}
.pz-foot{margin:6px 0 0;font-size:11.5px;color:var(--muted)}
.pz-foot b{color:#0f1b2d}
@media (max-width:699px){ .pz-box{grid-template-columns:minmax(0,1fr)} }

/* V302 · Acquisti dell'articolo a schede: 8 colonne (data, documento, fornitore, q.tà, listino, sconto, costo, totale) */
@media (max-width:899px){
  #app .pp-buys tr,.modal .pp-buys tr{grid-template-columns:repeat(4,minmax(0,1fr))!important;grid-template-areas:"b b b a" "c c c j" "d e f g"!important}
  #app .pp-buys td:nth-child(8),.modal .pp-buys td:nth-child(8){grid-area:j;justify-self:end;font-weight:800;font-size:13px;background:none!important;padding:0!important}
  #app .pp-buys td:nth-child(7),.modal .pp-buys td:nth-child(7){grid-area:g;background:var(--orange-line)!important}
  #app .pp-buys td:nth-child(8)::before,.modal .pp-buys td:nth-child(8)::before{content:none!important}
  #app .pp-buys td:nth-child(5)::before,.modal .pp-buys td:nth-child(5)::before{content:"Listino s/IVA"}
  #app .pp-buys td:nth-child(7)::before,.modal .pp-buys td:nth-child(7)::before{content:"Costo s/IVA"}
}
/* V302 · Articoli a schede: riga 1 descrizione e vendita, riga 2 codice e guadagno (costo dal tablet) */
@media (max-width:899px){
  #app .cards-art .table tr:not(.empty-row){grid-template-columns:minmax(0,1fr) auto auto!important;grid-template-areas:"desc sell act" "code gain act"!important;gap:3px 12px!important}
  #app .cards-art .table td[data-label="Costo"],#app .cards-art .table td[data-label="Usato nei lavori"],#app .cards-art .table td[data-label="Origine"]{display:none!important}
  #app .cards-art .table td[data-label="Vendita"]{grid-area:sell!important}
  #app .cards-art .table td[data-label="Vendita"]::after{content:none!important}
  #app .cards-art .table td[data-label="Vendita"] .cell-2>small,#app .cards-art .table td[data-label="Costo"] .cell-2>small{display:none!important}
  #app .cards-art .table td[data-label="Articolo"]{grid-area:code!important}
}
@media (min-width:600px) and (max-width:899px){
  #app .cards-art .table tr:not(.empty-row){grid-template-columns:minmax(0,1fr) 110px 110px 130px auto!important;grid-template-areas:"desc cost sell gain act" "code cost sell gain act"!important}
  #app .cards-art .table td[data-label="Costo"]{display:block!important;grid-area:cost!important}
  #app .cards-art .table td[data-label="Costo"] .cell-2>small,#app .cards-art .table td[data-label="Vendita"] .cell-2>small{display:block!important}
  #app .cards-art .table td[data-label="Costo"] .cell-2>*,#app .cards-art .table td[data-label="Vendita"] .cell-2>*,#app .cards-art .table td[data-label="Guadagno"] .cell-2>*{display:block!important;text-align:right}
  #app .cards-art .table td[data-label="Costo"]::after{content:none!important}
  #app .cards-art .table td[data-label="Guadagno"] small::before,#app .cards-art .table td[data-label="Guadagno"] small::after{content:none!important}
  #app .cards-art .table td[data-label="Guadagno"] small{margin:0;display:block!important}
}
@media (max-width:599px){
  #app .cards-art .table tr:not(.empty-row){grid-template-columns:minmax(0,1fr) auto auto auto!important;grid-template-areas:"desc desc desc act" "code sell gain act"!important}
  #app .cards-art .table td[data-label="Guadagno"] .cell-2>small{display:none!important}
  #app .cards-art .table td[data-label="Vendita"] strong{font-size:13px}
}
@media (max-width:599px){ #app .cards-art .table td[data-label="Guadagno"] strong::before{content:"guad. ";font-size:10px;font-weight:600;color:var(--muted)} }

/* V302 · Andamento su telefono e tablet: le 3 linguette (Generale, Entrate, Spese) restano su una riga, compatte */
@media (max-width:899px){
  #app .trend-tabs{grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:6px!important}
  #app .trend-tab{flex-direction:column;align-items:center;justify-content:center;gap:4px;padding:8px 6px;text-align:center;min-height:var(--h-ctl,40px)}
  #app .trend-tab span{align-items:center;min-width:0;max-width:100%}
  #app .trend-tab b{font-size:13px}
  #app .trend-tab small{font-size:11px;line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}
  #app .trend-tab.active{background:var(--primary-50,var(--blue-bg))}
  #app .trend-tab.active b{color:var(--primary)}
}
@media (max-width:599px){ #app .trend-tab small{display:none} #app .trend-tab{flex-direction:row;gap:6px} }

/* V302 · contatori in alto sul tablet verticale (600–899 px): righe pari (4, 5 = 3+2, 6 = 3+3, 7–8 = 4+4) e importi mai tagliati */
@media (min-width:600px) and (max-width:899px){
  html body #app .kpi-row.kpi-mini{display:grid!important;grid-template-columns:repeat(4,minmax(0,1fr))!important;grid-auto-flow:row!important;gap:8px!important;flex-wrap:nowrap!important}
  html body #app .kpi-row.kpi-mini:has(>:nth-child(2):last-child){grid-template-columns:repeat(2,minmax(0,1fr))!important}
  html body #app .kpi-row.kpi-mini:has(>:nth-child(3):last-child),html body #app .kpi-row.kpi-mini:has(>:nth-child(5):last-child),html body #app .kpi-row.kpi-mini:has(>:nth-child(6):last-child),html body #app .kpi-row.kpi-mini:has(>:nth-child(9):last-child){grid-template-columns:repeat(3,minmax(0,1fr))!important}
  html body #app .kpi-row.kpi-mini:has(>:only-child){grid-template-columns:1fr!important}
  html body #app .kpi-row.kpi-mini>*{min-width:0!important;width:auto!important;max-width:none!important;flex:none!important}
  html body #app .kpi-row.kpi-mini .kpi-value{white-space:nowrap!important;overflow:visible!important;text-overflow:clip!important;font-size:16px!important}
  html body #app .kpi-row.kpi-mini .kpi-label{white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important;display:block!important;width:auto!important}
}
/* V302 · 5 contatori = 3+2 e 7 = 4+3 con la riga sotto che si allarga (nessun buco a destra) */
@media (max-width:899px){
  html body #app .kpi-row.kpi-mini:has(>:nth-child(5):last-child){grid-template-columns:repeat(6,minmax(0,1fr))!important}
  html body #app .kpi-row.kpi-mini:has(>:nth-child(5):last-child)>*{grid-column:span 2!important}
  html body #app .kpi-row.kpi-mini:has(>:nth-child(5):last-child)>:nth-child(n+4){grid-column:span 3!important}
  html body #app .kpi-row.kpi-mini:has(>:nth-child(7):last-child){grid-template-columns:repeat(12,minmax(0,1fr))!important}
  html body #app .kpi-row.kpi-mini:has(>:nth-child(7):last-child)>*{grid-column:span 3!important}
  html body #app .kpi-row.kpi-mini:has(>:nth-child(7):last-child)>:nth-child(n+5){grid-column:span 4!important}
}

/* V303 · Crea pneumatico: la voce scelta mostra valore + ✎ 🗑 sulla stessa riga; il numero (quanti nel catalogo) si nasconde
   sulla voce scelta, così il valore non viene mai coperto (anche in Marca e Modello) */
.tp-grid .vp-item.sel .vp-n{display:none!important}
.tp-grid .vp-item.sel{flex-wrap:nowrap!important}
.tp-grid .vp-item.sel .vp-txt{flex:1 1 auto!important;min-width:2.4em!important;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.tp-grid .vp-item.sel .vp-acts{flex:none!important;display:flex!important;gap:0;margin-left:auto}
.tp-grid .vp-item.sel .vp-act{width:26px;height:26px;padding:0}
.tp-grid .tp-part .vp-item .vp-txt{min-width:2.4em}
/* finestra a tutta altezza: i pulsanti restano in fondo, niente spazio vuoto sotto */
.modal>.modal-body{flex:1 1 auto}

/* V302 · Permessi per sezione (Limiti dell'officina, Operatori e permessi): sul computer tabella con i pallini;
   sotto i 900 px ogni sezione è un rettangolino con le tre scelte scritte (Nessuno · Vede · Modifica), niente tabella che esce a destra */
.perm-opt{display:inline-flex;align-items:center;justify-content:center;cursor:pointer}
.perm-opt>span{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
@media (max-width:899px){
  #app .perm-table,#app .perm-table tbody{display:block;width:100%}
  #app .perm-table thead{display:none}
  #app .perm-table tr{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;padding:10px;margin:0 0 8px;border:1px solid var(--line);border-radius:12px;background:#fff}
  #app .perm-table td{display:block;padding:0!important;border:0!important;width:auto!important;min-width:0}
  #app .perm-table td:first-child{grid-column:1/-1}
  #app .perm-table .perm-opt{position:relative;display:flex;width:100%;min-height:38px;gap:6px;padding:6px 8px;border:1px solid var(--line);border-radius:9px;background:var(--n-50);font-size:13px;font-weight:600;color:var(--n-700)}
  #app .perm-table .perm-opt>span{position:static;width:auto;height:auto;overflow:visible;clip:auto;white-space:nowrap}
  #app .perm-table .perm-opt:has(input:checked){border-color:var(--primary);background:var(--primary-50,var(--blue-bg));color:var(--primary)}
  #app .perm-table td.lim-off .perm-opt{opacity:.45}
}
@media (max-width:899px){
  #app .perm-table td:first-child .cell-2,#app .perm-table td:first-child .cell-2>*{white-space:normal!important;overflow:visible!important;text-overflow:clip!important;max-width:none!important;display:block}
}

/* V302 · Ammortamenti sotto i 900 px: righe a rettangolini (prima tabelle larghe 1200 px che scorrevano di lato) */
@media (max-width:899px){
  #app .am-table{min-width:0!important;width:100%}
  #app .am-table thead{display:none}
  #app .am-table,#app .am-table tbody,#app .am-table tfoot{display:block}
  #app .am-table tbody tr,#app .am-table tfoot tr{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px 12px;padding:10px 12px;margin:0 0 8px;border:1px solid var(--line);border-radius:12px;background:#fff}
  #app .am-table tfoot tr{background:var(--n-50)}
  #app .am-table td{display:block;padding:0!important;border:0!important;min-width:0;text-align:left!important;white-space:normal}
  #app .am-table tbody td:first-child,#app .am-table tfoot td:first-child{grid-column:1/-1}
  #app .am-table td[data-label]:not(:first-child)::before{content:attr(data-label);display:block;font-size:10px;font-weight:700;letter-spacing:.03em;text-transform:uppercase;color:var(--muted)}
  #app .am-table tfoot td[colspan]{grid-column:1/-1}
  #app .table-wrap:has(>.am-table){overflow:visible}
}

/* V303 · Ri.Ba. in fattura: tipi con la divisione dell'importo, piano personalizzato e gestione */
.riba-pick{margin:10px 0 4px;border:1px solid var(--blue-line);border-radius:12px;background:linear-gradient(180deg,var(--blue-bg),#fff 70%);padding:10px 12px;display:flex;flex-direction:column;gap:8px}
.riba-h{display:flex;gap:8px;align-items:flex-start}
.riba-h svg{width:18px;height:18px;color:var(--violet-500);flex:none;margin-top:2px}
.riba-h span{display:flex;flex-direction:column}.riba-h small{color:var(--muted);font-size:12px}
.riba-opts{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:8px}
.riba-opt{display:flex;flex-direction:column;align-items:stretch;gap:3px;text-align:left;padding:8px 10px;border:1px solid var(--line);border-radius:10px;background:#fff;cursor:pointer;min-width:0;font:inherit;color:inherit}
.riba-opt:hover{border-color:var(--blue-line)}
.riba-opt.on{border-color:var(--violet-500);box-shadow:0 0 0 2px var(--blue-line);background:var(--blue-bg)}
.riba-n{font-weight:700;font-size:13px}
.riba-opt small{color:var(--muted);font-size:11.5px}
.riba-split{display:flex;flex-direction:column;gap:1px;margin-top:2px;font-size:12px;color:var(--n-700)}
.riba-split span{display:flex;justify-content:space-between;gap:8px;border-top:1px dashed var(--line);padding-top:2px}
.riba-split b{font-variant-numeric:tabular-nums}
.riba-custom{cursor:default;grid-column:span 2}
.riba-cf{display:flex;flex-wrap:wrap;gap:6px 10px;align-items:flex-end}
.riba-cf label{display:flex;flex-direction:column;font-size:11px;font-weight:600;color:var(--muted);gap:2px}
.riba-cf label .input{width:84px;height:32px}
.riba-cf label.check{flex-direction:row;align-items:center;gap:6px;height:32px}
.riba-cbtn{display:flex;gap:6px;flex-wrap:wrap;margin-top:4px}
.riba-man{display:flex;gap:8px;align-items:center;flex-wrap:wrap;font-size:12px;color:var(--n-700);background:#fff;border:1px dashed var(--blue-line);border-radius:10px;padding:7px 10px}
.riba-man>svg{width:16px;height:16px;color:var(--violet-500);flex:none}
.riba-man>span{flex:1 1 260px}
@media (max-width:599px){ .riba-opts{grid-template-columns:minmax(0,1fr)} .riba-custom{grid-column:auto} }

/* V303 · Stile unico: regola dei contatori; telefono 6 = 3+3 */
.sg-k-t{margin:12px 0 6px;font-size:13px;color:var(--n-700)}
.sg-rules{margin-top:12px;display:grid;grid-template-columns:minmax(0,1fr);gap:14px;align-items:start}
#app .sg-k-tab{width:100%;table-layout:fixed}
#app .sg-k-tab th small{display:block;font-size:10px;font-weight:600;opacity:.75;text-transform:none;letter-spacing:0}
.sg-k-tab td,.sg-k-tab th{padding:6px 10px!important;font-size:13px}
.sg-k-list{margin:0;padding-left:20px;display:flex;flex-direction:column;gap:6px;font-size:13px;color:var(--n-700)}
.sg-k-list code{font-size:12px;background:var(--n-100);border-radius:4px;padding:0 4px}
@media (max-width:899px){ #app .sg-k-tab td,#app .sg-k-tab th{font-size:12px;padding:6px 6px!important} #app .sg-k-tab thead{display:table-header-group!important} #app .sg-k-tab tr{display:table-row!important} #app .sg-k-tab td,#app .sg-k-tab th{display:table-cell!important} }
@media (max-width:599px){ html body #app .kpi-row.kpi-mini:has(>:nth-child(6):last-child){grid-template-columns:repeat(3,minmax(0,1fr))!important} }

/* V303 · Manuale d'uso */
#app .man-head .ps-code svg{width:20px;height:20px}
#app .man-grid{display:grid;grid-template-columns:260px minmax(0,1fr);gap:14px;align-items:start}
#app .man-toc{position:sticky;top:0;display:flex;flex-direction:column;gap:2px;padding:8px}
#app .man-toc-i{display:flex;align-items:center;gap:10px;padding:8px 10px;border:0;border-radius:9px;background:none;text-align:left;font:inherit;font-size:13px;font-weight:600;color:var(--n-800);cursor:pointer;box-shadow:inset 3px 0 0 transparent}
#app .man-toc-i svg{width:16px;height:16px;color:var(--c,var(--n-600));flex:none}
#app .man-toc-i span{flex:1;min-width:0}
#app .man-toc-i small{color:var(--muted);font-weight:600}
#app .man-toc-i:hover{background:var(--n-100)}
#app .man-toc-i.on{background:color-mix(in srgb,var(--c) 10%,#fff);box-shadow:inset 3px 0 0 var(--c);color:var(--c)}
#app .man-toc-i.man-all{margin-top:4px;border-top:1px solid var(--line);border-radius:0 0 9px 9px}
#app .man-body{display:flex;flex-direction:column;gap:14px;min-width:0}
#app .man-ch{padding:0;overflow:hidden;border-top:4px solid var(--c)}
#app .man-ch-h{display:flex;gap:12px;align-items:flex-start;padding:14px 16px;background:color-mix(in srgb,var(--c) 6%,#fff);border-bottom:1px solid var(--line)}
#app .man-ch-h>svg{width:26px;height:26px;color:var(--c);flex:none;margin-top:2px}
#app .man-ch-h h3{margin:0;font-size:18px}
#app .man-ch-h p{margin:2px 0 0;color:var(--n-600);font-size:13.5px}
#app .man-guide{padding:12px 16px;border-bottom:1px solid var(--line)}
#app .man-guide:last-child{border-bottom:0}
#app .man-guide header{display:flex;align-items:center;gap:10px;justify-content:space-between;margin-bottom:6px}
#app .man-guide h4{margin:0;font-size:15px;color:#0f1b2d}
#app .man-steps{margin:0;padding:0;list-style:none;counter-reset:st;display:flex;flex-direction:column;gap:6px}
#app .man-steps li{counter-increment:st;position:relative;padding-left:34px;font-size:13.5px;line-height:1.5;color:var(--n-800)}
#app .man-steps li::before{content:counter(st);position:absolute;left:0;top:1px;width:22px;height:22px;border-radius:50%;display:grid;place-items:center;font-size:12px;font-weight:800;color:#fff;background:var(--c,var(--blue-500))}
#app .man-note{display:flex;gap:8px;margin:10px 0 0;padding:8px 10px;border-radius:9px;background:var(--orange-bg);border:1px solid var(--orange-400);font-size:12.5px;color:var(--orange-700)}
#app .man-note svg{width:16px;height:16px;flex:none;color:var(--orange);margin-top:1px}
#app .man-faq{padding:6px 16px 12px;display:flex;flex-direction:column;gap:6px}
#app .man-faq details{border:1px solid var(--line);border-radius:10px;padding:8px 12px;background:#fff}
#app .man-faq summary{cursor:pointer;font-weight:700;font-size:13.5px}
#app .man-faq p{margin:6px 0 0;font-size:13.5px;color:var(--n-700)}
@media (max-width:899px){
  #app .man-grid{grid-template-columns:minmax(0,1fr)}
  #app .man-toc{position:static;flex-direction:row;overflow-x:auto;gap:6px;padding:6px;scrollbar-width:none}
  #app .man-toc-i{flex:none;border:1px solid var(--line);border-radius:999px;padding:6px 12px;box-shadow:none}
  #app .man-toc-i small{display:none}
  #app .man-toc-i.on{box-shadow:none;border-color:var(--c)}
  #app .man-toc-i.man-all{margin:0;border-top:1px solid var(--line);border-radius:999px}
  #app .man-guide header{flex-wrap:wrap}
}
/* V303 · Novità e aggiornamenti */
#app .upd-list{display:flex;flex-direction:column;gap:10px}
#app .upd-v{padding:0;overflow:hidden}
#app .upd-v summary{display:flex;align-items:center;gap:10px;padding:12px 14px;cursor:pointer;flex-wrap:wrap}
#app .upd-v[open] summary{border-bottom:1px solid var(--line)}
#app .upd-num{font-family:var(--mono,monospace);font-weight:800;font-size:13px;color:#fff;background:var(--blue-500);border-radius:7px;padding:2px 8px}
#app .upd-v.now .upd-num{background:var(--green-500)}
#app .upd-t{font-weight:700;flex:1 1 240px;min-width:0}
#app .upd-v ul{margin:0;padding:10px 16px 12px 34px;display:flex;flex-direction:column;gap:7px}
#app .upd-v li{font-size:13.5px;line-height:1.5;color:var(--n-800)}
#app .upd-a{display:inline-block;margin-right:6px;padding:0 7px;border-radius:6px;background:var(--blue-bg);color:var(--blue);font-size:12px}

/* V304 · colonna IVA nelle righe dei documenti emessi */
.doc-lines .c-vat{width:118px}
.doc-lines td.dl-vat .select{width:100%;min-width:0;padding-left:8px;padding-right:24px;font-size:13px}
.doc-lines td.dl-vat .select.is-ex{border-color:var(--violet-line);background-color:var(--violet-bg);color:var(--violet-700);font-weight:600}
.vat-sum-row small{font-weight:500;opacity:.8}
@media (max-width:899px){
  .doc-lines tr:not(.empty-row):not(.is-note):not(.is-round){grid-template-areas:"art desc qty price disc tot act" ". . . cost vat vat ."!important}
  .doc-lines td[data-label="IVA"]{grid-area:vat}
}
@media (max-width:599px){
  .doc-lines tr:not(.empty-row):not(.is-note):not(.is-round){grid-template-areas:"art art art act" "desc desc desc desc" "qty price disc tot" "cost cost vat vat"!important}
}
/* V304 · pagamento: metodo + tipo; anteprima della divisione nei preventivi e DDT */
.pay-lite{gap:10px 14px}
.pay-prev{display:flex;gap:8px;align-items:flex-start;margin:0;padding:8px 10px;border-radius:10px;background:var(--blue-bg);border:1px solid var(--blue-line);font-size:13px}
.pay-prev svg{width:16px;height:16px;color:var(--violet-500);flex:none;margin-top:1px}
/* V304 · Impostazioni › IVA documenti emessi */
#app .vo-head,#app .vo-row{display:grid;grid-template-columns:110px minmax(180px,1.2fr) 90px minmax(160px,1fr) minmax(200px,1.4fr) 40px;gap:8px;align-items:center}
#app .vo-head{font-size:11px;font-weight:700;letter-spacing:.03em;text-transform:uppercase;color:var(--muted);padding:0 8px 4px}
#app .vo-list{display:flex;flex-direction:column;gap:6px}
#app .vo-row{padding:8px;border:1px solid var(--line);border-radius:10px;background:#fff}
#app .vo-row.off{opacity:.55}
#app .vo-def{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--muted)}
#app .vo-rate{display:flex;align-items:center;gap:4px}#app .vo-rate .input{text-align:right}
#app .vo-row .select,#app .vo-row .input{width:100%;min-width:0}
@media (max-width:899px){
  #app .vo-head{display:none}
  #app .vo-row{grid-template-columns:minmax(0,1fr) 90px 40px;grid-template-areas:"lab rate act" "nat nat def" "ref ref ref"}
  #app .vo-row>:nth-child(1){grid-area:def;justify-self:end}#app .vo-row>:nth-child(2){grid-area:lab}#app .vo-row>:nth-child(3){grid-area:rate}#app .vo-row>:nth-child(4){grid-area:nat}#app .vo-row>:nth-child(5){grid-area:ref}#app .vo-row>:nth-child(6){grid-area:act}
}

/* V304 · Fisco › Scadenze e versamenti: un mese sotto l'altro, ogni scadenza su una riga (non più due colonne affiancate) */
#app .tx-cal{display:flex!important;flex-direction:column!important;gap:10px!important;grid-template-columns:none!important}
#app .tx-cal-m .card-head{padding-top:8px;padding-bottom:8px}
#app .tx-cal-m .tx-next{display:flex;flex-direction:column;gap:6px}
#app .tx-cal{align-items:stretch!important}
#app .tx-cal-m{width:100%}
@media (min-width:900px){
  #app .tx-cal .tx-due{grid-template-columns:110px minmax(0,1fr) 280px 36px;padding:6px 10px}
  #app .tx-cal .tx-due-a{flex-direction:row;align-items:center;justify-content:flex-end;gap:12px}
  #app .tx-cal .tx-due-a>b,#app .tx-cal .tx-due-a>small{min-width:90px;text-align:right}
  #app .tx-cal .tx-due-m{display:flex;align-items:baseline;gap:10px;min-width:0}
  #app .tx-cal .tx-due-m small{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
}

/* V304 · anteprima articolo: storici con le prime 5 righe, "Mostra tutti" per il resto */
.pp-sec:not(.pp-open) .pp-lim tbody tr:nth-child(n+6){display:none!important}
.pp-more-btn{display:inline-flex;align-items:center;gap:4px;margin:6px 0 0 4px;font-size:12.5px}
.pp-more-btn svg{width:14px;height:14px;transition:transform .15s}
.pp-sec.pp-open .pp-more-btn svg{transform:rotate(180deg)}

/* V304 · modifica articolo: Articolo / Prezzi / Magazzino con il guadagno calcolato */
.pe-form .form-sep{margin-top:4px}
.pe-form .dl-amt{display:flex;align-items:center;gap:4px}.pe-form .dl-amt .input{text-align:right}.pe-form .dl-amt i{font-style:normal;color:var(--muted);font-weight:700}
.pe-gain{display:flex;flex-direction:column;gap:2px;justify-content:center;min-height:38px}
.pe-gain b{font-size:16px}
.pe-note{margin:4px 0 0}
@media (max-width:899px){ .pe-form.cols-4{grid-template-columns:repeat(2,minmax(0,1fr))} .pe-form .span-4,.pe-form .span-2{grid-column:1/-1} }
.pe-gain{padding-top:2px}.pe-gain b{line-height:1.2}
/* V304 · righe dei documenti sul tablet (600–899): codice e descrizione larghi sopra, numeri e IVA sotto */
@media (min-width:600px) and (max-width:899px){
  .doc-lines tr:not(.empty-row):not(.is-note):not(.is-round){grid-template-columns:repeat(6,minmax(0,1fr)) auto!important;grid-template-areas:"art art desc desc desc desc act" "qty price disc vat vat tot act" "cost cost cost . . . ."!important}
}

/* V305 · modifica articolo e carico/scarico con i riquadri colorati come il resto del gestionale */
.pe-form{display:flex;flex-direction:column;gap:12px}
.pe-sec{padding:10px 12px 12px!important}
.pe-sec>h4{margin-bottom:8px!important}
.pe-sec>h4>span:not(.badge){display:flex;flex-direction:column;flex:1;min-width:0}
.pe-sec .form-grid{gap:10px 12px}
.pe-prices{background:linear-gradient(180deg,var(--green-bg),#fff 55%)}
.pe-box{border:1px solid var(--line);border-radius:12px;padding:8px 10px;background:#fff;min-width:0}
.pe-box .field{margin:0}
.pe-cost{box-shadow:inset 3px 0 0 var(--violet-500)}.pe-cost .field-label{color:var(--violet)}
.pe-mk{box-shadow:inset 3px 0 0 var(--n-500)}
.pe-sell{box-shadow:inset 3px 0 0 var(--green-500)}.pe-sell .field-label{color:var(--green)}
.pe-sell .input{font-weight:800;font-size:16px}
.pe-gain-box{box-shadow:inset 3px 0 0 var(--blue-500);background:var(--green-bg)}
.pe-gain-box .field-label{color:var(--blue-700)}
.pe-gain{padding-top:4px}.pe-gain b{font-size:20px;line-height:1.15}
.pe-stock{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.pe-hist{padding-bottom:8px!important}
.pe-hist>h4 .badge{margin-left:auto}
.sm-sec .sm-qty{font-size:18px;font-weight:800;text-align:right}
.sm-after{font-size:15px;min-height:38px;display:flex;align-items:center;gap:6px}
@media (max-width:899px){ .pe-sec .form-grid.cols-4{grid-template-columns:repeat(2,minmax(0,1fr))} .pe-sec .span-2{grid-column:1/-1} }
@media (max-width:599px){ .pe-sec .form-grid.cols-4{grid-template-columns:minmax(0,1fr)} }

/* ============================================================
   V306 · Mai scorrere di lato
   ============================================================ */
#app .table-wrap,#modalRoot .table-wrap{overflow-x:hidden!important}
.fit-hide{display:none!important}
/* fit-1 · V306: righe sempre della stessa altezza: niente testo a capo, niente icone una sopra l'altra.
   Prima si stringono i margini, poi si nascondono le colonne meno utili, poi il testo lungo finisce con "…" */
html body table.fit-1 th,html body table.fit-1 td{white-space:nowrap!important;padding-left:6px!important;padding-right:6px!important}
html body table.fit-1 th{font-size:11px!important;letter-spacing:.02em!important}
html body table.fit-1 td .cell-2>*{white-space:nowrap!important;overflow:hidden;text-overflow:ellipsis}
html body table.fit-1 td .row-actions,html body table.fit-1 td .actions,html body table.fit-1 td.col-actions>div,html body table.fit-1 td .btn-row{flex-wrap:nowrap!important;white-space:nowrap!important}
/* fit-2: carattere un po' più piccolo */
table.fit-2 td{font-size:12.5px!important}
table.fit-2 td .plate{transform:scale(.92);transform-origin:left center}
/* fit-3: colonne a larghezza fissa, il testo lungo termina con i puntini (le icone restano in fila) */
table.fit-3{table-layout:fixed!important;width:100%!important;min-width:0!important}
table.fit-3 col,table.fit-3 th{min-width:0!important}
table.fit-3 td{min-width:0!important;overflow:hidden;text-overflow:ellipsis;white-space:nowrap!important}
table.fit-3 td>*{max-width:100%}
table.fit-3 td .cell-2{min-width:0;overflow:hidden}
table.fit-3 td .input,table.fit-3 td .select,table.fit-3 td .combo{min-width:0!important;width:100%!important}
table.fit-3 td.fit-keep{overflow:visible}
/* barre di linguette / chip: a capo in righe pari invece di scorrere */
.fit-strip{flex-wrap:wrap!important;overflow:visible!important;overflow-x:visible!important;row-gap:6px!important;height:auto!important;white-space:normal!important}
.fit-strip>*{flex:1 1 auto;justify-content:center}
nav.fit-strip{display:flex!important}
/* V306 · linguette di Qualità, Fisco, Sistema qualità e Scadenze e RiBa: niente scorrimento, vanno a capo in righe pari */
html body #app .q-tabs,html body #app .riba-tabs,html body #app .toolbar.tb-std>.seg,html body #app .toolbar.tb-std>.q-tabs{flex-wrap:wrap!important;overflow:visible!important;overflow-x:visible!important}
html body #app .q-tabs>*,html body #app .riba-tabs>*{flex:1 1 auto!important;max-width:100%!important;white-space:normal!important;justify-content:center}
html body #app .q-tabs.bal>*,html body #app .riba-tabs.bal>*{flex:1 1 calc((100% - (var(--bal) - 1) * var(--bal-gap,6px)) / var(--bal))!important}
@media (min-width:600px) and (max-width:1199px){ html body #app .riba-tabs{display:grid!important;grid-template-columns:repeat(4,minmax(0,1fr))!important} html body #app .riba-tabs>*:nth-last-child(-n+3){grid-column:auto} }
@media (max-width:599px){ html body #app .riba-tabs{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important} html body #app .riba-tabs>*:last-child:nth-child(odd){grid-column:1/-1} }

/* V306 · Lavori fissi con l'aspetto dei blocchi del calendario */
.dock-item.ev-like{position:relative;border:1px solid;border-left-width:4px;border-radius:7px;padding:6px 8px;gap:1px;font-size:11px;line-height:1.3;box-shadow:0 1px 2px rgba(16,24,40,.08)}
.dock-item.ev-like:hover{box-shadow:0 4px 14px rgba(16,24,40,.18)}
.dock-item.ev-like .ev-plate{font-size:12.5px}
.dock-item.ev-like .dock-dur{display:inline-flex;align-items:center;gap:3px;font-size:11px}
.dock-item.ev-like .dock-dur svg{width:12px;height:12px}
.dock-item.ev-like .ev-l2{font-weight:700;opacity:.85;text-transform:uppercase;font-size:10.5px}
.dock-item.ev-like .ev-l3{font-size:12px;font-weight:600;white-space:normal}
.dock-item.ev-like .dock-foot{display:flex;flex-wrap:wrap;align-items:center;gap:4px 8px;margin-top:3px;padding-top:3px;border-top:1px dashed currentColor;border-top-color:rgba(0,0,0,.12);font-size:10.5px;opacity:.85}
.dock-item.ev-like .dock-tag{background:rgba(255,255,255,.6);border-radius:5px;padding:0 5px;font-weight:700}
.dock .dock-list{gap:6px}
.dock .dock-item.ev-like.st-wait{background:var(--blue-bg);border-color:var(--blue-line);border-left-color:var(--n-500);color:var(--blue-700)}
.dock .dock-item.ev-like.st-work{background:var(--blue-bg);border-color:var(--blue-400);border-left-color:var(--blue);color:var(--blue-700)}
.dock .dock-item.ev-like.st-check{background:var(--violet-bg);border-color:var(--violet-line);border-left-color:var(--violet);color:var(--violet-500)}
.dock .dock-item.ev-like.st-ready{background:var(--green-bg);border-color:var(--green-400);border-left-color:var(--green);color:var(--green-700)}
.dock .dock-item.ev-like.st-parts{background:var(--orange-bg);border-color:var(--orange-400);border-left-color:var(--orange-500);color:var(--orange-700)}
.dock .dock-item.ev-like.st-susp{background:var(--red-bg);border-color:var(--red-line);border-left-color:var(--red-500);color:var(--red-700)}
.dock .dock-item.ev-like.st-free{background:var(--blue-line);border-color:var(--blue-400);border-left-color:var(--teal);color:var(--blue-700)}

/* V306 · barra dell'Agenda (giorno, operatore, squadra, comandi): su una riga finché ci sta, senza andare a capo con spazio vuoto */
@media (min-width:900px) and (max-width:1399px){
  #app .ag-tools{flex-wrap:nowrap!important;gap:6px!important;padding:8px!important}
  #app .ag-tools>*{flex:0 1 auto!important;min-width:0}
  #app .ag-tools .ag-dname{display:none}
  #app .ag-tools .ag-daypick{padding-left:2px}
  #app .ag-tools .ag-daypick .input{width:132px}
  #app .ag-tools .ag-field>span,#app .ag-tools .ag-team>.ag-lbl,#app .ag-tools .ag-team>span.lbl{display:none}
  #app .ag-tools .ag-dock-btn span:not(.badge):not(.count){display:none}
  #app .ag-tools .ag-right .btn-primary span{display:none}
  #app .ag-tools .ag-right .btn-primary{padding:0 10px}
  #app .ag-tools .ag-team .select,#app .ag-tools .ag-op .select{max-width:150px}
}

/* V306 · finestra "Pagamento della consegna" sotto 900 px: Paga tutto su una riga intera, sotto Annulla e Salva affiancati e uguali */
@media (max-width:899px){
  html body #modalRoot .modal-foot:has(.dl-choice){display:grid!important;grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important;gap:8px!important;align-items:stretch}
  html body #modalRoot .modal-foot:has(.dl-choice)>.grow{display:none!important}
  html body #modalRoot .modal-foot:has(.dl-choice)>.dl-choice{grid-column:1/-1;grid-row:1;display:flex;margin:0!important;width:100%}
  html body #modalRoot .modal-foot:has(.dl-choice)>.dl-choice:not(:has(.dl-all:not([hidden]))){display:none}
  html body #modalRoot .modal-foot:has(.dl-choice) .dl-all{width:100%;justify-content:center}
  html body #modalRoot .modal-foot:has(.dl-choice)>[data-act="dlCancel"]{grid-column:1;grid-row:2;width:100%;margin:0!important}
  html body #modalRoot .modal-foot:has(.dl-choice)>#dlConfirm{grid-column:2;grid-row:2;width:100%;margin:0!important;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;justify-content:center}
}

/* V306 · Fisco: acconto IVA di dicembre per Admin e successivi = solo il metodo impostato, su una riga intera */
#app .tx-acc.tx-acc-one{grid-template-columns:minmax(0,1fr)!important}

/* V306 · righe tutte uguali: la casella "Pianificazione" non allunga la riga */
#app .table .plan-cell{padding:1px 6px!important;line-height:1.2}
#app .table .plan-cell strong,#app .table .plan-cell small{line-height:1.2}
/* V306 · targa piccola dentro una cella a due righe: non allunga la riga */
#app .table .cell-2>strong:has(.plate){display:flex;align-items:center;gap:5px;line-height:1.2;min-width:0}
#app .table .cell-2>strong .plate.plate-sm{margin:-3px 0;transform:scale(.9);transform-origin:left center}

/* V307 · Lavori fissi: titolo e ricerca insieme nella testata scura, niente descrizione né riquadro "Rilascia qui" */
#app .dock .dock-head .dock-title{gap:8px}
#app .dock .dock-head .search-box.dock-q{margin:0!important;width:100%}
#app .dock .dock-head .search-box.dock-q .input{background:#fff;color:var(--text)}
#app .dock .dock-list{padding-top:10px}
body.dock-hover #app .dock .dock-list{outline:2px dashed var(--primary);outline-offset:-6px;border-radius:10px;background:var(--primary-50)}
/* V307 · targa disegnata come una targa vera nei Lavori fissi e nei blocchi del calendario */
#app .ev .plate.ev-pl,#app .dock-item .plate.ev-pl{flex:0 1 auto;min-width:0;max-width:100%;box-shadow:none}
#app .ev .plate.ev-pl .plate-txt{overflow:hidden;text-overflow:ellipsis}
#app .ev.ev-xs .plate.ev-pl{transform:scale(.82);transform-origin:left center;margin:-3px 0}
#app .ev.ev-sm .plate.ev-pl{transform:scale(.9);transform-origin:left center;margin:-2px 0}
#app .ev .ev-l1{align-items:center}

/* V307 · Agende sul tablet (600–899 px): le voci della barra si allargano e riempiono ogni riga, senza spazi vuoti */
@media (min-width:600px) and (max-width:899px){
  #app .ag-tools{gap:8px!important}
  #app .ag-tools>.ag-spacer{display:none!important}
  #app .ag-tools>*{flex:1 1 auto!important;min-width:0}
  #app .ag-tools>.ag-dock-btn{flex:0 1 auto!important;justify-content:center}
  #app .ag-tools .ag-nav,#app .ag-tools .ag-field,#app .ag-tools .ag-op,#app .ag-tools .ag-team,#app .ag-tools .ag-right{display:flex!important;align-items:center}
  #app .ag-tools .ag-nav .ag-daypick{flex:1 1 auto;min-width:0}
  #app .ag-tools .ag-nav .ag-daypick .input{flex:1 1 auto;width:auto!important;min-width:0}
  #app .ag-tools .ag-field .select,#app .ag-tools .ag-op .select,#app .ag-tools .ag-team .select{flex:1 1 auto;width:auto!important;max-width:none!important;min-width:0}
  #app .ag-tools .ag-right{justify-content:flex-end}
  #app .ag-tools .ag-right>.btn-primary{flex:1 1 auto;justify-content:center}
}
@media (min-width:600px) and (max-width:899px){
  /* riga 1: Lavori fissi + giorno (+ giorni) · riga 2: squadra/operatore + comandi; ogni riga piena */
  #app .ag-tools::before{content:'';order:4;flex:0 0 100%!important;height:0;margin-bottom:-8px}
  #app .ag-tools>.ag-dock-btn{order:1}
  #app .ag-tools>.ag-nav{order:2;flex:1 1 300px!important}
  #app .ag-tools>label.ag-field:not(.ag-team){order:3}
  #app .ag-tools>.ag-team,#app .ag-tools>.ag-op{order:5;flex:1 1 260px!important}
  #app .ag-tools>.ag-right{order:6;flex:0 0 auto!important}
  #app .ag-tools .ag-right>.btn-primary{flex:0 0 auto}
}
@media (min-width:600px) and (max-width:719px){
  #app .ag-tools>.ag-dock-btn{flex:0 0 auto!important;width:auto!important;padding:0 10px}
  #app .ag-tools>.ag-dock-btn>span:not(.ag-dock-n){display:none}
  #app .ag-tools>.ag-nav{flex:1 1 0!important}
  #app .ag-tools .ag-daypick .ag-dname{display:none}
}
@media (min-width:600px) and (max-width:899px){
  html body #app .ag-tools{display:flex!important;flex-wrap:wrap!important}
  html body #app .ag-tools>*{grid-column:auto!important;width:auto!important}
}
@media (min-width:600px) and (max-width:899px){
  #app .ag-tools>label.ag-field:not(.ag-team){flex:0 1 auto!important}
  #app .ag-tools>label.ag-field:not(.ag-team) .select{flex:0 0 auto;width:132px!important}
  #app .ag-tools>.ag-nav{flex:1 1 280px!important}
}

/* V307 · Catalogo gomme / Crea pneumatico: pulsante + in ogni colonna; nelle colonne strette della misura il + è più piccolo e il titolo resta leggibile */
#app .tp-grid .vp-head,#modalRoot .tp-grid .vp-head{gap:6px}
#app .tp-grid .vp-head-txt,#modalRoot .tp-grid .vp-head-txt{flex:1 1 auto;min-width:0}
#app .tp-grid .tp-part .vp-add,#modalRoot .tp-grid .tp-part .vp-add{width:26px;height:26px;flex:0 0 26px}
#app .tp-grid .tp-part .vp-title,#modalRoot .tp-grid .tp-part .vp-title{letter-spacing:0;font-size:10.5px}

/* V308 · Spese, DDT e Fatture ricevute: colonna IVA per riga (come nelle fatture emesse) */
#app .sp-table .sp-vat-th,#app .sp-table td.sp-vat{width:86px;min-width:86px}
#app .sp-table td.sp-vat .select{width:100%;min-width:74px;padding-left:8px;padding-right:22px;font-weight:700}
#app .sp-table td.sp-vat .select.is-ex{color:var(--violet-500)}

/* V308 · menu laterale: i numerini dei sottomenu (Da gestire, Attesa ricambi…) non vengono più tagliati a destra.
   Le colonne dei riquadri del menu non possono superare la larghezza del menu: il testo lungo si accorcia con "…", il numero resta intero. */
.sidebar .nav-sec-body,.sidebar .nav-group .nav-children{grid-template-columns:minmax(0,1fr)}
.sidebar .nav-children-inner,.sidebar .nav-sec-inner{min-width:0}
.sidebar .nav-link{min-width:0;max-width:100%;box-sizing:border-box}
.sidebar .nav-link .nav-label{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.sidebar .nav-link .nav-badge{flex:0 0 auto;margin-left:auto}
.sidebar .nav-children .nav-link.depth-1{padding-right:12px}

/* V309 · Nuovo deposito gomme: dati del pneumatico a gruppi */
#app .tire-form .td-block{margin-top:12px}
#app .tire-form .td-grp{margin-top:14px;border:1px solid var(--line);border-radius:12px;padding:10px 12px 12px;background:var(--blue-bg)}
#app .tire-form .td-grp-h{display:flex;align-items:center;gap:8px;margin-bottom:8px;font-size:12.5px;text-transform:uppercase;letter-spacing:.04em;color:var(--n-700);flex-wrap:wrap}
#app .tire-form .td-grp-h>svg{width:18px;height:18px;color:var(--primary)}
#app .tire-form .td-grp-h small{text-transform:none;letter-spacing:0;font-size:12px}
#app .tire-form .td-grp-h .seg{margin-left:auto}
#app .tire-form .td-qty{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.4fr);gap:12px}
#app .tire-form .stepper{display:flex;align-items:center;gap:6px}
#app .tire-form .stepper .input{text-align:center;font-weight:800;font-size:16px;min-width:0;width:100%}
#app .tire-form .td-lbl{display:flex;gap:6px;align-items:center}
#app .tire-form .td-lbl .input{width:76px;flex:0 0 76px;text-align:center;font-weight:800}
#app .tire-form .td-lbl.linked .input{background:var(--primary-50);color:var(--primary);border-color:var(--blue-line)}
#app .tire-form .td-lbl .td-link{flex:1 1 auto;justify-content:center;min-width:0;white-space:nowrap}
#app .tire-form .td-lbl.linked .td-link{border-color:var(--blue-line);background:var(--primary-50);color:var(--primary)}
#app .tire-form .td-rims{display:grid;grid-template-columns:1fr 1fr;gap:10px}
#app .tire-form .td-rim{display:flex;align-items:center;gap:10px;text-align:left;border:2px solid var(--line);border-radius:12px;padding:10px 12px;background:#fff;cursor:pointer}
#app .tire-form .td-rim .td-rim-ic{width:42px;height:42px;border-radius:50%;display:grid;place-items:center;background:var(--n-100);color:var(--n-600);flex:0 0 42px}
#app .tire-form .td-rim .td-rim-ic svg{width:30px;height:30px}
#app .tire-form .td-rim b{display:block;font-size:14px}
#app .tire-form .td-rim small{display:block;color:var(--muted);font-size:12px}
#app .tire-form .td-rim.active{border-color:var(--primary);background:var(--primary-50)}
#app .tire-form .td-rim.active .td-rim-ic{background:var(--primary);color:#fff}
#app .tire-form .td-rim.is-rim.active{border-color:var(--orange-500);background:var(--orange-bg)}
#app .tire-form .td-rim.is-rim.active .td-rim-ic{background:var(--orange-500)}
#app .tire-form .td-rim.is-rim.active small{color:var(--orange);font-weight:700}
#app .tire-form .td-dot{display:grid;grid-template-columns:minmax(150px,200px) minmax(0,1fr);gap:12px;align-items:end}
#app .tire-form .td-dot-res{display:flex;flex-wrap:wrap;gap:6px 10px;align-items:center;min-height:38px;font-size:13px}
#app .tire-form .dot-chip{border:1.5px solid var(--n-900);border-radius:6px;padding:2px 8px;font-weight:800;background:#fff}
#app .tire-form .td-dot-res svg{width:14px;height:14px;vertical-align:-2px}
#app .tire-form .pay-seg.needs{outline:2px dashed var(--orange-500);outline-offset:2px;border-radius:10px}
#app .tire-form .td-pay-warn{margin:0}
@media (max-width:599px){
  #app .tire-form .td-qty,#app .tire-form .td-rims,#app .tire-form .td-dot{grid-template-columns:minmax(0,1fr)}
  #app .tire-form .td-grp-h .seg{margin-left:0;width:100%}
}
/* finestra incasso al cambio di stato */
#modalRoot .ts-pay{display:flex;flex-direction:column;gap:12px}
#modalRoot .ts-pay-h{display:flex;gap:10px;align-items:center}
#modalRoot .ts-pay-h b{display:block}#modalRoot .ts-pay-h small{color:var(--muted)}
#modalRoot .ts-pay .ts-due b{color:var(--red,var(--red-500))}
#app .tire-form .td-block>.field-label{display:block;margin-bottom:6px}
#app .tire-form .td-wear{display:grid;grid-template-columns:minmax(0,1fr) 130px;gap:12px;align-items:end}
@media (max-width:599px){#app .tire-form .td-wear{grid-template-columns:minmax(0,1fr)}}
#app .tire-form .td-wear{grid-template-columns:minmax(0,1fr)!important}
#app .tire-form .td-wear .seg{display:grid;grid-template-columns:repeat(4,minmax(0,1fr))}
#app .tire-form .td-wear .seg .seg-btn{white-space:nowrap;padding-left:4px;padding-right:4px;justify-content:center}
#app .tire-form .td-wear>.field:last-child{max-width:180px}
#app .tire-form .td-dot{grid-template-columns:minmax(0,1fr)!important;align-items:start}
#app .tire-form .td-dot>.field{max-width:220px}
#app .tire-form .td-dot-res{min-height:0}
#app .tire-form .td-pay-warn{display:flex!important;gap:10px;align-items:flex-start}
#app .tire-form .td-pay-warn>svg{flex:0 0 18px;margin-top:2px}
@media (max-width:420px){#app .tire-form .td-wear .seg{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* V310 · catalogo gomme: kg dell'indice di carico e km/h dell'indice di velocità accanto al valore */
.vp-item .vp-note{font-weight:600;color:var(--muted);font-size:11px;margin-left:4px}
.vp-item.sel .vp-note{color:inherit;opacity:.8}

/* V310 · stagione: tre riquadri grandi con icona colorata */
#app .tire-form .td-seasons{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
#app .tire-form .td-season{display:flex;align-items:center;gap:10px;text-align:left;border:2px solid var(--line);border-radius:12px;padding:10px 12px;background:#fff;cursor:pointer;min-width:0;--sc:var(--blue-500);--sb:var(--blue-bg)}
#app .tire-form .td-season.s-sun{--sc:var(--orange-500);--sb:var(--orange-bg)}
#app .tire-form .td-season.s-allseason{--sc:var(--green-500);--sb:var(--green-bg)}
#app .tire-form .td-season .td-season-ic{width:40px;height:40px;border-radius:50%;display:grid;place-items:center;background:var(--sb);color:var(--sc);flex:0 0 40px}
#app .tire-form .td-season .td-season-ic svg{width:24px;height:24px}
#app .tire-form .td-season>span:last-child{min-width:0}
#app .tire-form .td-season b{display:block;font-size:14px;white-space:nowrap}
#app .tire-form .td-season small{display:block;color:var(--muted);font-size:11.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
#app .tire-form .td-season.active{border-color:var(--sc);background:var(--sb)}
#app .tire-form .td-season.active .td-season-ic{background:var(--sc);color:#fff}
#app .tire-form .td-season.active b{color:var(--sc)}
@media (max-width:1100px) and (min-width:900px),(max-width:520px){#app .tire-form .td-season small{display:none}#app .tire-form .td-season{padding:8px}#app .tire-form .td-season .td-season-ic{width:34px;height:34px;flex-basis:34px}}
@media (max-width:380px){#app .tire-form .td-seasons{grid-template-columns:minmax(0,1fr)}}
/* V310 · nuove / usate + barra di usura dai millimetri */
#app .tire-form .td-wear-top{display:grid;grid-template-columns:minmax(0,1fr) 150px;gap:12px;align-items:end}
#app .tire-form .td-newused{display:grid;grid-template-columns:1fr 1fr;height:40px}
#app .tire-form .td-newused .seg-btn{justify-content:center;gap:6px;font-size:14px}
#app .tire-form .td-wearbar{margin-top:10px}
#app .tire-form .tw-track{position:relative;height:16px;border-radius:9px;overflow:hidden;display:flex;background:var(--blue-bg)}
#app .tire-form .tw-zone{height:100%;opacity:.22}
#app .tire-form .tw-zone.z-red{background:var(--red-500)}#app .tire-form .tw-zone.z-orange{background:var(--orange-500)}#app .tire-form .tw-zone.z-green{background:var(--green-500)}
#app .tire-form .tw-fill{position:absolute;left:0;top:3px;bottom:3px;border-radius:6px;background:var(--green-500);transition:width .25s ease}
#app .tire-form .tw-fill.tone-orange{background:var(--orange-500)}#app .tire-form .tw-fill.tone-red{background:var(--red-500)}
#app .tire-form .tw-scale{position:relative;height:16px;font-size:10.5px;color:var(--muted)}
#app .tire-form .tw-scale span{position:absolute;top:2px;transform:translateX(-50%)}
#app .tire-form .tw-scale span:first-child{left:0;transform:none}#app .tire-form .tw-scale span.r{right:0;transform:none}
#app .tire-form .tw-res{display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-size:13px;margin-top:2px}
@media (max-width:520px){#app .tire-form .td-wear-top{grid-template-columns:minmax(0,1fr)}}
html body #app .tire-form .seg.td-newused{display:grid!important;grid-template-columns:1fr 1fr!important;width:100%}
html body #app .tire-form .seg.td-newused .seg-btn{width:100%;display:flex;align-items:center}
html body #app .tire-form .seg.td-newused .seg-btn svg{width:16px;height:16px}
#app .tire-form .td-season small{display:none!important}
#app .tire-form .td-season{justify-content:center;padding:9px 8px}

/* V310 · Scadenze gomme: schede sotto i 900 px (come Scadenze veicoli) */
@media (max-width:899px){
  #app .cards-tdl .table thead{display:none}
  #app .cards-tdl .table tbody{display:grid!important;grid-template-columns:minmax(0,1fr)!important;gap:6px;padding:6px}
  #app .cards-tdl .table tr:not(.empty-row){display:grid!important;gap:4px 10px;align-items:center;padding:8px 10px!important;border:1px solid var(--line)!important;border-radius:12px;background:#fff;box-shadow:0 1px 2px rgba(15,23,42,.05);grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"tire act" "due state" "client client"}
  #app .cards-tdl .table tr.row-late{border-left:4px solid var(--red,var(--red-500))!important}
  #app .cards-tdl td[data-label]::before{display:none!important}
  #app .cards-tdl .table td{display:block!important;padding:0!important;border:0!important;min-width:0;text-align:left!important}
  #app .cards-tdl td[data-label="Deposito"],#app .cards-tdl td[data-label="Ubicazione"]{display:none!important}
  #app .cards-tdl td[data-label="Gomme"]{grid-area:tire}
  #app .cards-tdl td[data-label="Scadenza"]{grid-area:due}
  #app .cards-tdl td[data-label="Cliente"]{grid-area:client}
  #app .cards-tdl td[data-label="Avviso"]{grid-area:state}
  #app .cards-tdl td[data-label="Avviso"] .cell-2{align-items:flex-end;text-align:right}
  #app .cards-tdl td.col-actions{grid-area:act;display:flex!important;gap:2px;justify-content:flex-end;white-space:nowrap}
  #app .cards-tdl td.col-actions .icon-btn{width:32px;height:32px}
  #app .cards-tdl .cell-plate{display:flex;align-items:center;gap:8px;min-width:0}
  #app .cards-tdl .cell-plate>.cell-2{flex:1;min-width:0}
  #app .cards-tdl .cell-2{min-width:0;display:flex;flex-direction:column}
  #app .cards-tdl .cell-2>*{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  #app .cards-tdl td[data-label="Cliente"] .cell-2{flex-direction:row;gap:8px;align-items:baseline}
}
@media (max-width:520px){
  #app .cards-tdl .cell-plate{flex-direction:column;align-items:flex-start;gap:2px}
  #app .cards-tdl .cell-plate>.cell-2{width:100%}
}

/* V311 · Dati pneumatico più compatti: Pezzi e cerchi su una riga, Condizioni (usura + DOT) insieme, etichette accanto alla stampa */
#app .tire-form .td-pcs-rims{display:grid;grid-template-columns:minmax(120px,170px) minmax(0,1fr);gap:12px;align-items:end}
#app .tire-form .td-pcs-rims .td-rims{grid-template-columns:1fr 1fr;gap:8px}
#app .tire-form .td-pcs-rims .td-rim{padding:6px 10px;gap:8px;min-height:40px}
#app .tire-form .td-pcs-rims .td-rim .td-rim-ic{width:28px;height:28px;flex-basis:28px}
#app .tire-form .td-pcs-rims .td-rim .td-rim-ic svg{width:20px;height:20px}
#app .tire-form .td-pcs-rims .td-rim b{font-size:13.5px;white-space:nowrap}
#app .tire-form .td-wear-top .field{margin:0}
#app .tire-form .td-hint{display:flex;gap:6px;align-items:flex-start;font-size:12px;color:var(--n-600);margin:8px 0 0;line-height:1.35}
#app .tire-form .td-hint svg{width:14px;height:14px;flex:0 0 14px;margin-top:1px;color:var(--primary)}
#app .tire-form .td-sub-h{display:flex;align-items:center;gap:8px;margin:14px 0 6px;padding-top:10px;border-top:1px dashed var(--line);flex-wrap:wrap}
#app .tire-form .td-sub-h .field-label{margin:0}
#app .tire-form .td-sub-h .seg{margin-left:auto}
#app .tire-form .td-dot{display:flex!important;gap:10px;align-items:center;flex-wrap:wrap}
#app .tire-form .td-dot>.input{width:150px;flex:0 0 150px}
#app .tire-form .td-dot .td-dot-res{flex:1 1 220px}
#app .tire-form .td-prints{display:flex;align-items:center;gap:6px;border:1px solid var(--line);border-radius:10px;padding:3px 6px 3px 2px}
#app .tire-form .td-prints .print-flag{border:0!important;margin:0}
#app .tire-form .td-prints .td-lbl .input{width:52px;flex:0 0 52px;height:32px;padding:0 4px}
#app .tire-form .td-prints .td-link{height:32px;padding:0 8px}
@media (max-width:599px){#app .tire-form .td-pcs-rims{grid-template-columns:minmax(0,1fr)}#app .tire-form .td-sub-h .seg{margin-left:0;width:100%}}
#app .tire-form .td-pcs-rims{display:flex!important;flex-wrap:wrap;gap:10px 12px}
#app .tire-form .td-pcs-rims>.field:first-child{flex:0 0 130px}
#app .tire-form .td-pcs-rims>.field:last-child{flex:1 1 220px;min-width:0}
#app .tire-form .td-pcs-rims .td-rim{padding:6px 8px;gap:6px;min-width:0;justify-content:center}
#app .tire-form .td-pcs-rims .td-rim .td-rim-ic{width:24px;height:24px;flex-basis:24px}
#app .tire-form .td-pcs-rims .td-rim .td-rim-ic svg{width:17px;height:17px}
#app .tire-form .td-pcs-rims .td-rim b{font-size:13px;overflow:hidden;text-overflow:ellipsis}
#app .tire-form .td-hint{display:flex}
#app .tire-form .td-hint>span{display:block}
#app .tire-form .wf-footer .wf-buttons{display:flex!important;flex-wrap:wrap!important;gap:8px!important;align-items:center}
#app .tire-form .wf-footer .td-prints{order:-1;flex:1 1 100%;flex-wrap:wrap;justify-content:flex-start}
#app .tire-form .wf-footer .td-prints .print-flag{background:none!important}

/* V311 · Nuovo deposito gomme con i colori dei lavori (stile unico): 1 cliente blu · 2 pneumatico verde · 3 pezzi e condizioni arancio · 4 deposito viola · 5 pagamento verde acqua */
#app .tire-form .td-sub-h{display:flex;align-items:center;gap:6px;margin:16px 0 8px;padding-top:12px;border-top:1px dashed color-mix(in srgb,var(--g) 30%,var(--line));flex-wrap:wrap}
#app .tire-form .td-sub-h>svg{width:16px;height:16px;color:var(--g)}
#app .tire-form .td-sub-h .field-label{color:color-mix(in srgb,var(--g) 60%,var(--n-900));margin:0}
#app .tire-form .wf-lines .td-rim.active:not(.is-rim){border-color:var(--g);background:var(--gb)}
#app .tire-form .wf-lines .td-rim.active:not(.is-rim) .td-rim-ic{background:var(--g)}
#app .tire-form .wf-lines .td-newused .seg-btn.active{color:var(--g)}
#app .tire-form .card-head>small{margin-left:auto;font-size:12px}
/* V311 · barra del battistrada: soglia del minimo di legge 1,6 mm */
#app .tire-form .tw-track{overflow:visible}
#app .tire-form .tw-zone.z-legal{background:var(--red-700);opacity:.45;border-radius:9px 0 0 9px}
#app .tire-form .tw-legal{position:absolute;top:-4px;bottom:-4px;width:0;border-left:2.5px solid var(--red-700);transform:translateX(-1px)}
#app .tire-form .tw-fill.illegal{background:repeating-linear-gradient(45deg,var(--red-500) 0 6px,var(--red-700) 6px 12px)}
#app .tire-form .tw-scale span.leg{color:var(--red-700);font-weight:800;white-space:nowrap;transform:none}
/* V311 · piede del deposito: stampe sopra, Annulla e Salva affiancati a destra */
@media (min-width:600px){
  html body #app .tire-form .wf-footer .wf-buttons>.grow{display:block!important;flex:1 1 auto}
  html body #app .tire-form .wf-footer .wf-buttons>.btn,html body #app .tire-form .wf-footer .wf-buttons>button{flex:0 0 auto!important;width:auto!important}
}
@media (min-width:600px){
  html body #app .tire-form .wf-footer .wf-buttons{justify-content:flex-end!important}
  html body #app .tire-form .wf-footer .wf-buttons>.btn-danger-ghost{margin-right:auto}
}

/* V311 · Pagamento del deposito: tre scelte come la consegna dei lavori */
#modalRoot .ts-choice{display:grid;grid-template-columns:repeat(auto-fit,minmax(0,1fr));gap:8px}
#modalRoot .ts-opt{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;border:2px solid var(--line);border-radius:12px;padding:10px 6px;background:#fff;font-weight:700;font-size:13px;color:var(--n-700);cursor:pointer;text-align:center;min-width:0}
#modalRoot .ts-opt svg{width:22px;height:22px}
#modalRoot .ts-opt[data-k="all"].active{border-color:var(--green-500);background:var(--green-bg);color:var(--green)}
#modalRoot .ts-opt[data-k="part"].active{border-color:var(--blue-500);background:var(--blue-bg);color:var(--blue)}
#modalRoot .ts-opt[data-k="credit"].active{border-color:var(--orange-500);background:var(--orange-bg);color:var(--orange)}
#modalRoot .ts-out{display:flex;gap:8px;align-items:flex-start;border-radius:10px;padding:9px 11px;font-size:13px;line-height:1.35}
#modalRoot .ts-out svg{width:17px;height:17px;flex:0 0 17px;margin-top:1px}
#modalRoot .ts-out.is-all{background:var(--green-bg);color:var(--green-700)}
#modalRoot .ts-out.is-part{background:var(--blue-bg);color:var(--blue)}
#modalRoot .ts-out.is-credit{background:var(--orange-bg);color:var(--orange-700)}
#modalRoot #tsFields[hidden]{display:none!important}
@media (max-width:420px){#modalRoot .ts-opt{font-size:12px;padding:8px 4px}}

/* V312 · Pagamento del deposito: riepilogo chiaro e più metodi */
#modalRoot .ts-sum{border:1px solid var(--line);border-radius:14px;padding:12px;background:var(--blue-bg);display:flex;flex-direction:column;gap:10px}
#modalRoot .ts-sum-top{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
#modalRoot .ts-sum-t{flex:1 1 160px;min-width:0}
#modalRoot .ts-sum-t b{display:block;font-size:15px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
#modalRoot .ts-sum-t small{color:var(--muted);font-size:12px}
#modalRoot .ts-sum-st{display:flex;align-items:center;gap:4px;flex-wrap:nowrap}
#modalRoot .ts-arrow svg{width:14px;height:14px;color:var(--muted)}
#modalRoot .ts-chips{display:flex;flex-wrap:wrap;gap:6px}
#modalRoot .ts-chips .chip svg{width:14px;height:14px}
#modalRoot .ts-chips .chip-rim{background:var(--orange-bg);border-color:var(--orange-400);color:var(--orange);font-weight:800}
#modalRoot .ts-who{display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-size:13.5px}
#modalRoot .ts-who svg{width:15px;height:15px;color:var(--primary)}
#modalRoot .ts-who .muted svg{color:var(--muted);vertical-align:-2px}
#modalRoot .ts-money{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
#modalRoot .ts-m{border-radius:10px;padding:8px 10px;background:var(--n-100);display:flex;flex-direction:column;min-width:0}
#modalRoot .ts-m small{font-size:10.5px;font-weight:800;letter-spacing:.04em;text-transform:uppercase;color:var(--n-600)}
#modalRoot .ts-m b{font-size:18px;line-height:1.2}
#modalRoot .ts-m span{font-size:11px;color:var(--muted);line-height:1.3;overflow:hidden;text-overflow:ellipsis}
#modalRoot .ts-m.ok{background:var(--green-bg)}#modalRoot .ts-m.ok b{color:var(--green)}
#modalRoot .ts-m.due{background:var(--red-bg)}#modalRoot .ts-m.due b{color:var(--red,var(--red-500))}
#modalRoot .ts-out.is-warn{background:var(--red-bg);color:var(--red-700)}
#modalRoot #tsFields[hidden]{display:none!important}
@media (max-width:520px){#modalRoot .ts-money{grid-template-columns:minmax(0,1fr)}#modalRoot .ts-m{flex-direction:row;align-items:baseline;gap:8px;flex-wrap:wrap}#modalRoot .ts-m span{flex-basis:100%}}
#modalRoot .ts-chips .chip{display:inline-flex;align-items:center;gap:5px;border:1px solid var(--line);background:#fff;border-radius:999px;padding:3px 9px;font-size:12px;font-weight:600;color:var(--n-700)}
/* V312 · l'avviso "Officina come app" non copre mai le finestre aperte */
body:has(#modalRoot .modal-head) #hhBanner{display:none!important}
@media (max-width:520px){
  #modalRoot .ts-money{grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:6px}
  #modalRoot .ts-m{flex-direction:column!important;align-items:flex-start!important;padding:6px 8px}
  #modalRoot .ts-m small{font-size:9.5px}#modalRoot .ts-m b{font-size:15px}#modalRoot .ts-m span{display:none}
}

/* V313 · deposito gomme: "Importi e pagamento" come "Importi e acconti" dei lavori */
#app .tire-form .td-money .td-pay-warn{margin:10px 14px 0;display:flex!important;gap:10px;align-items:flex-start}
#app .tire-form .td-paystate{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:8px 10px}
#app .tire-form .td-paystate .field{margin:0;min-width:0}
#app .tire-form .td-paystate .select.needs{border-color:var(--red-line)}
#app .tire-form .td-paysum{margin-top:8px}
#app .tire-form .td-crnote{display:flex;align-items:center;gap:5px;margin-top:6px}
#app .tire-form .td-crnote svg{width:14px;height:14px}
@media (max-width:520px){#app .tire-form .td-paystate{grid-template-columns:minmax(0,1fr)}}

/* V314 · anteprima del pagamento (acconto lavoro, rata credito) */
#modalRoot .pp-head{display:flex;align-items:center;gap:10px;margin-bottom:10px}
#modalRoot .pp-head>div{flex:1;min-width:0}
#modalRoot .pp-head b{display:block;font-size:15px}
#modalRoot .pp-head small{color:var(--muted);font-size:12px;display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
#modalRoot .pp-prev{display:flex;flex-direction:column;gap:8px;margin-bottom:12px}
#modalRoot .pp-amt{display:flex;gap:6px;align-items:center}
#modalRoot .pp-amt .input{flex:1;min-width:0}
#modalRoot .pp-amt .btn{white-space:nowrap}

/* V315 · Fisco › Dove vanno i soldi */
#app .tx-flow .txf-top{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:12px}
#app .tx-flow .txf-top>div{display:flex;flex-direction:column}
#app .tx-flow .txf-top small{font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.04em;color:var(--n-600)}
#app .tx-flow .txf-top b{font-size:24px}
#app .tx-flow .txf-top .pos b{color:var(--green)}#app .tx-flow .txf-top .neg b{color:var(--red,var(--red-500))}
#app .tx-flow .txf-top>div:last-child{align-items:flex-end;text-align:right}
#app .tx-flow .txf-top span{font-size:12px;color:var(--muted)}
#app .tx-flow .txf-bar{display:flex;height:38px;border-radius:12px;overflow:hidden;background:var(--blue-bg);margin-bottom:14px}
#app .tx-flow .txf-bar>span{background:var(--c);display:flex;align-items:center;justify-content:center;color:#fff;font-size:12px;min-width:3px;border-right:2px solid #fff}
#app .tx-flow .txf-bar>span:last-child{border-right:0}
#app .tx-flow .txf-legend{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:8px;margin-bottom:12px}
#app .tx-flow .txf-row{display:grid;grid-template-columns:14px minmax(0,1fr) auto auto;gap:8px;align-items:center;border:1px solid var(--line);border-left:4px solid var(--c);border-radius:10px;padding:8px 10px;background:#fff}
#app .tx-flow .txf-row i{width:12px;height:12px;border-radius:3px;background:var(--c)}
#app .tx-flow .txf-row span{min-width:0}#app .tx-flow .txf-row span b{display:block;font-size:13px}
#app .tx-flow .txf-row small{display:block;font-size:11px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
#app .tx-flow .txf-row em{font-style:normal;font-size:12px;color:var(--muted)}
#app .tx-flow .txf-row strong{font-size:14px;white-space:nowrap}

/* V315 · codici a barre */
#app .code-cell .bc-wrap{display:flex;align-items:center;gap:4px;margin-top:4px;flex-basis:100%}
#app .code-cell{flex-wrap:wrap}
#app .code-cell .bc-wrap svg{width:16px;height:16px;color:var(--n-600);flex:0 0 16px}
#app .code-cell .bc-in{height:30px;font-size:12px;min-width:0;flex:1}
#app .bc-hint{display:flex;align-items:center;gap:5px;flex-wrap:wrap}
#app .bc-hint svg{width:14px;height:14px}
#app .bc-hint.pend{color:var(--orange-700)}#app .bc-hint.warn{color:var(--orange)}#app .bc-hint.conf{color:var(--blue);font-weight:700}
#app tr.bc-confirm td{background:var(--blue-bg)!important}
#app tr.bc-confirm td:first-child{box-shadow:inset 4px 0 0 var(--blue-500)}
#app tr.bc-pending td{background:var(--orange-bg)!important}
#app tr.bc-pending td:first-child{box-shadow:inset 4px 0 0 var(--orange-500)}
#modalRoot .bc-choices{display:flex;flex-direction:column;gap:8px}
#modalRoot .bc-choice{display:flex;align-items:center;gap:10px;text-align:left;border:2px solid var(--line);border-radius:12px;padding:10px 12px;background:#fff;cursor:pointer}
#modalRoot .bc-choice:hover{border-color:var(--primary);background:var(--primary-50)}
#modalRoot .bc-choice b{display:block}#modalRoot .bc-choice small{color:var(--muted);display:flex;align-items:center;gap:4px;flex-wrap:wrap}
#modalRoot .bc-choice small svg{width:13px;height:13px}

/* V316 · niente seconda riga sotto il titolo della pagina */
#pageCrumb{display:none!important}
/* V316 · lavori: colonna Codice a barre a sinistra dell'articolo */
#app .lines-table th.bc-th,#app .lines-table td.bc-td{width:132px;min-width:118px}
#app .lines-table .bc-work{font-size:12px;letter-spacing:.02em}
#app .lines-table th.bc-th,#app .lines-table td.bc-td{width:112px;min-width:104px}
#app .lines-table td.bc-td .bc-hint{margin-top:3px;font-size:11px;line-height:1.25}
#app .lines-table .bc-work{font-size:11.5px;padding-left:6px;padding-right:6px}

/* V317 · stato del codice a barre accanto alla casella: la riga resta della stessa altezza */
#app .lines-table .bc-cell{display:flex;align-items:center;gap:4px}
#app .lines-table .bc-cell .bc-work{flex:1;min-width:0}
#app .lines-table .bc-st{flex:0 0 26px;width:26px;height:26px;border-radius:8px;display:grid;place-items:center;border:1px solid transparent;padding:0}
#app .lines-table .bc-st svg{width:15px;height:15px}
#app .lines-table .bc-st.ok{background:var(--blue-500);color:#fff;cursor:pointer}
#app .lines-table .bc-st.warn{background:var(--orange-line);color:var(--orange);border-color:var(--orange-400);cursor:pointer}
#app .lines-table .bc-st.pend{background:var(--orange-bg);color:var(--orange);border-color:var(--orange-400)}
#app .lines-table .bc-cell.st-conf .bc-work{border-color:var(--blue-400)}
#app .lines-table .bc-cell.st-pend .bc-work{border-color:var(--orange-400)}

/* V318 · occhio dell'articolo nel lavoro: prezzi e ultimo acquisto */
.pk{min-width:260px;max-width:320px;padding:4px 2px;display:flex;flex-direction:column;gap:3px;font-size:13px}
.pk-h{display:flex;align-items:center;gap:8px;margin-bottom:4px}.pk-h b{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pk-sec{font-size:10.5px;font-weight:800;text-transform:uppercase;letter-spacing:.05em;color:var(--n-500);margin-top:6px;border-top:1px dashed var(--line);padding-top:6px}
.pk-row{display:flex;justify-content:space-between;gap:10px;align-items:baseline}
.pk-row small{color:var(--muted);font-weight:500}
.pk-row.cost b{color:var(--violet-500)}.pk-row.sell b{color:var(--green);font-size:15px}.pk-row.gain b{color:var(--green)}.pk-row.neg b{color:var(--red,var(--red-500))}.pk-row.disc b{color:var(--orange)}
#app .lines-table .line-acts{white-space:nowrap}
#app .lines-table .line-acts>span:empty{display:none}

/* V318 · DDT di acquisto con la colonna Codice a barre: colonne dei costi più strette, righe alte uguali */
#app .sp-table th.bc-th,#app .sp-table td.bc-td{width:118px;min-width:104px}
#app .sp-table td.bc-td .bc-in{font-size:11.5px;padding-left:6px;padding-right:6px;width:100%}
#app .sp-table.has-bc td[data-label="Q.tà"] .input{width:52px;min-width:0}
#app .sp-table.has-bc td[data-label^="Prezzo"] .input{width:76px;min-width:0}
#app .sp-table.has-bc td[data-label="Sconto %"] .input{width:46px;min-width:0}
#app .sp-table.has-bc td.sp-vat .select{min-width:64px;width:70px}
#app .sp-table.has-bc th.sp-vat-th,#app .sp-table.has-bc td.sp-vat{width:72px;min-width:68px}
#app .sp-table.has-bc td[data-label="Totale con IVA con sconto"] .input{width:80px;min-width:0}
#app .sp-table.has-bc td.sell-td .input{width:74px;min-width:0}
#app .sp-table.has-bc th,#app .sp-table.has-bc td{padding-left:4px;padding-right:4px}
/* larghezze delle colonne fisse (valgono anche quando la tabella si adatta allo spazio) */
html body #app .sp-table.has-bc thead th:nth-child(1){width:112px!important}
html body #app .sp-table.has-bc thead th:nth-child(2){width:auto!important}
html body #app .sp-table.has-bc thead th:nth-child(3){width:auto!important}
html body #app .sp-table.has-bc thead th:nth-child(4){width:58px!important}
html body #app .sp-table.has-bc thead th:nth-child(5){width:80px!important}
html body #app .sp-table.has-bc thead th:nth-child(6){width:54px!important}
html body #app .sp-table.has-bc thead th:nth-child(7){width:70px!important}
html body #app .sp-table.has-bc thead th:nth-child(8),html body #app .sp-table.has-bc thead th:nth-child(9){width:78px!important}
html body #app .sp-table.has-bc thead th:nth-child(10){width:86px!important}
html body #app .sp-table.has-bc thead th.sell-th{width:84px!important}
html body #app .sp-table.has-bc thead th:nth-last-child(2){width:44px!important}
html body #app .sp-table.has-bc thead th:last-child{width:96px!important}
html body #app .sp-table.has-bc td .input,html body #app .sp-table.has-bc td .select{width:100%!important;min-width:0!important}
html body #app .sp-table.has-bc td[data-label="Q.tà"]{min-width:50px}
html body #app .sp-table.has-bc td[data-label^="Prezzo"]{min-width:76px}
html body #app .sp-table.has-bc td[data-label="Sconto %"]{min-width:46px}
html body #app .sp-table.has-bc td[data-label="Descrizione"]{width:20%}
html body #app .sp-table.has-bc td[data-label="Articolo"]{min-width:96px}
html body #app .sp-table.has-bc td[data-label="Totale con IVA senza sconto"],html body #app .sp-table.has-bc td[data-label="Totale senza IVA con sconto"]{min-width:64px;font-size:12.5px}

/* V319 · codice a barre sempre leggibile per intero (fino a 14 cifre) */
html body #app .lines-table th.bc-th,html body #app .lines-table td.bc-td{width:150px!important;min-width:150px!important}
html body #app .sp-table.has-bc thead th:nth-child(1),html body #app .sp-table th.bc-th,html body #app .sp-table td.bc-td{width:128px!important;min-width:128px!important}
html body #app .lines-table .bc-work,html body #app .sp-table .bc-in{font-size:12px!important;letter-spacing:0!important;padding-left:5px!important;padding-right:5px!important;text-overflow:clip}
html body #app .lines-table th.bc-th,html body #app .lines-table td.bc-td{width:166px!important;min-width:166px!important}
/* V319 · occhio dell'articolo: quattro prezzi in chiaro */
.pk{min-width:340px;max-width:380px}
.pk-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:4px}
.pk-t{border-radius:10px;padding:8px 10px;display:flex;flex-direction:column;border:1px solid var(--line)}
.pk-t small{font-size:10.5px;font-weight:800;text-transform:uppercase;letter-spacing:.04em}
.pk-t b{font-size:19px;line-height:1.2}
.pk-t span{font-size:11px;color:var(--n-600);line-height:1.3}
.pk-t.lordo{background:var(--n-50)}.pk-t.lordo small{color:var(--n-600)}
.pk-t.netto{background:var(--violet-bg);border-color:var(--violet-line)}.pk-t.netto small,.pk-t.netto b{color:var(--violet)}
.pk-t.vend{background:var(--blue-bg);border-color:var(--blue-line)}.pk-t.vend small,.pk-t.vend b{color:var(--blue)}
.pk-t.marg{background:var(--green-bg);border-color:var(--green-line)}.pk-t.marg small,.pk-t.marg b{color:var(--green)}
.pk-t.neg{background:var(--red-bg);border-color:var(--red-line)}.pk-t.neg small,.pk-t.neg b{color:var(--red)}
.pk-last{display:flex;gap:6px;align-items:flex-start;font-size:12px;color:var(--n-700);margin-top:8px;border-top:1px dashed var(--line);padding-top:8px}
.pk-last svg{width:14px;height:14px;flex:0 0 14px;margin-top:1px}
/* V320 · permessi ad albero: pagina › funzioni, colonne, sezioni */
.pt-intro{display:flex;gap:8px;align-items:flex-start;background:var(--orange-bg);border:1px solid var(--orange-line);border-radius:10px;padding:9px 12px;font-size:13px;color:var(--orange-700);margin-bottom:10px}
.pt-intro svg{width:16px;height:16px;flex:0 0 16px;margin-top:1px}
.pt{display:flex;flex-direction:column;gap:10px;min-width:0}
.pt-tools{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.pt-tools .search-box{flex:1 1 220px;min-width:0}
.pt-all{display:flex;align-items:center;gap:4px;flex-wrap:wrap}.pt-all small{color:var(--n-500);font-weight:600;margin-right:2px}
.pt-legend{display:flex;flex-wrap:wrap;gap:6px 14px;font-size:12px;color:var(--n-600)}
.pt-legend span{display:inline-flex;align-items:center;gap:5px}.pt-legend i{width:10px;height:10px;border-radius:3px;display:inline-block}
.pt-legend .lv-none i{background:var(--n-400)}.pt-legend .lv-view i{background:var(--blue-500)}.pt-legend .lv-edit i{background:var(--green-500)}
.pt-g{border:1px solid var(--line);border-radius:12px;overflow:hidden;background:#fff;border-left:4px solid var(--c)}
.pt-g>header{display:flex;align-items:center;gap:8px;padding:7px 12px;background:color-mix(in srgb,var(--c) 10%,#fff);font-size:12px;text-transform:uppercase;letter-spacing:.05em}
.pt-g>header b{color:color-mix(in srgb,var(--c) 70%,var(--n-900))}
.pt-gq{display:flex;gap:10px;text-transform:none;letter-spacing:0}.pt-gq .link-btn{font-size:12px}
.pt-node{border-top:1px solid var(--blue-bg)}
.pt-node:first-of-type{border-top:0}
.pt-row{display:flex;align-items:center;gap:8px;padding:6px 10px;min-height:48px}
.pt-node[data-depth="1"] .pt-row{padding-left:34px}
.pt-node.det .pt-row{background:var(--n-50)}
.pt-node.det .pt-name b::before{content:"Scheda · ";font-weight:600;color:var(--n-400);font-size:11px;display:none}
.pt-exp{width:26px;height:26px;border-radius:7px;border:1px solid var(--line);background:#fff;display:grid;place-items:center;flex:0 0 26px;cursor:pointer;color:var(--n-600)}
.pt-exp.none{border:0;background:none;cursor:default}
.pt-exp svg{width:14px;height:14px;transition:transform .15s}
.pt-node.open .pt-exp svg{transform:rotate(180deg)}
.pt-ic{width:28px;height:28px;border-radius:8px;display:grid;place-items:center;flex:0 0 28px;background:color-mix(in srgb,var(--c) 12%,#fff);color:color-mix(in srgb,var(--c) 75%,var(--n-900))}
.pt-ic svg{width:15px;height:15px}
.pt-name{flex:1 1 auto;min-width:0;display:flex;flex-direction:column}
.pt-name b{font-size:13.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pt-name small{font-size:11.5px;color:var(--n-500);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pt-node.lv-none .pt-name b,.pt-node.lv-none .pt-ic{opacity:.5}
.pt-seg{display:inline-flex;border:1px solid var(--line);border-radius:9px;overflow:hidden;flex:0 0 auto;background:#fff}
.pt-lv{position:relative;cursor:pointer}
.pt-lv input{position:absolute;opacity:0;pointer-events:none}
.pt-lv span{display:block;padding:6px 11px;font-size:12.5px;font-weight:600;color:var(--n-600);border-left:1px solid var(--line);min-width:74px;text-align:center}
.pt-lv:first-child span{border-left:0}
.pt-lv.lv-none input:checked+span{background:var(--n-600);color:#fff}
.pt-lv.lv-view input:checked+span{background:var(--blue-500);color:#fff}
.pt-lv.lv-edit input:checked+span{background:var(--green-500);color:#fff}
.pt-lv.off{cursor:not-allowed}.pt-lv.off span{color:var(--n-300);background:repeating-linear-gradient(135deg,#fff 0 6px,var(--n-100) 6px 12px)}
.pt-lv input:focus-visible+span{outline:2px solid var(--blue-500);outline-offset:-2px}
.pt-sub{padding:4px 12px 12px 44px;display:flex;flex-direction:column;gap:10px}
.pt-node[data-depth="1"] .pt-sub{padding-left:68px}
.pt-blk{border:1px solid var(--n-200);border-radius:10px;padding:8px 10px;background:var(--blue-bg)}
.pt-bh{display:flex;align-items:center;gap:6px;font-size:12.5px;margin-bottom:6px}
.pt-bh svg{width:14px;height:14px;color:var(--n-500)}.pt-bh small{color:var(--n-500)}
.pt-fns{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:4px 10px}
.pt-fn{display:flex;gap:8px;align-items:flex-start;padding:5px 6px;border-radius:8px;cursor:pointer}
.pt-fn:hover{background:var(--n-100)}
.pt-fn input{margin-top:2px;flex:0 0 auto;accent-color:var(--green-500)}
.pt-fn span{display:flex;flex-direction:column;min-width:0}
.pt-fn b{font-size:12.5px;font-weight:600}
.pt-fn small{font-size:11px;color:var(--n-500);line-height:1.3}
.pt-fn .pt-need{display:none;font-style:normal;font-size:11px;color:var(--orange);font-weight:600}
.pt-fn.blocked{opacity:.55}.pt-fn.blocked .pt-need{display:block}
.pt-cols{display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.pt-cols+.pt-cols{margin-top:6px;padding-top:6px;border-top:1px dashed var(--n-200)}
.pt-tn{font-size:11px;color:var(--n-500);width:100%}
.pt-col{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--line);border-radius:999px;padding:4px 10px 4px 8px;font-size:12px;cursor:pointer;background:#fff}
.pt-col input{accent-color:var(--green-500);margin:0}
.pt-col svg{width:13px;height:13px;color:var(--n-500)}
.pt-col span{display:inline-flex;align-items:center;gap:5px}
.pt-col:has(input:not(:checked)){background:var(--n-50);color:var(--n-400);text-decoration:line-through}
.pt-node.lv-none .pt-sub{opacity:.6}
.pt-sum{display:inline-flex;gap:4px;flex-wrap:wrap}
.pt-sum>span{font-size:11px;font-weight:700;border-radius:999px;padding:2px 7px;white-space:nowrap}
.pt-sum .lv-edit{background:var(--green-line);color:var(--green-700)}.pt-sum .lv-view{background:var(--blue-line);color:var(--blue-700)}.pt-sum .lv-none{background:var(--n-100);color:var(--n-500)}
/* scelta Officina / Superadmin nel menu delle impostazioni */
.set-scope{display:flex;gap:4px;background:var(--n-100);border-radius:10px;padding:3px;margin:6px 0}
.set-scope button{flex:1;display:inline-flex;align-items:center;justify-content:center;gap:6px;border:0;background:none;border-radius:8px;padding:6px 8px;font-weight:700;font-size:12.5px;color:var(--n-600);cursor:pointer}
.set-scope button svg{width:14px;height:14px}
.set-scope button.on{background:#fff;color:var(--n-900);box-shadow:0 1px 2px rgba(15,23,42,.12)}
@media (max-width:700px){
  .pt-row{flex-wrap:wrap}
  .pt-seg{width:calc(100% - 34px);margin-left:34px}.pt-node[data-depth="1"] .pt-seg{margin-left:0;width:100%}
  .pt-node[data-depth="1"] .pt-row{padding-left:22px}
  .pt-tools .pt-all{width:100%}.pt-all .btn{flex:1}
  .set-scope{width:100%}
  .pt-lv{flex:1}.pt-lv span{min-width:0;padding:7px 4px}
  .pt-sub,.pt-node[data-depth="1"] .pt-sub{padding-left:10px}
  .pt-fns{grid-template-columns:1fr}
}
/* V321 · tre stadi per funzioni, colonne e sezioni: Non vede · Vede · Vede e modifica */
.pt-lv span{min-width:0;padding:6px 10px}
.pt-bq{display:flex;gap:10px;flex-wrap:wrap}.pt-bq .link-btn{font-size:11.5px}
.ptiems{display:grid;grid-template-columns:repeat(auto-fill,minmax(330px,1fr));gap:4px 12px}
.ptiems.cols{grid-template-columns:repeat(auto-fill,minmax(300px,1fr))}
.pti{display:flex;align-items:center;gap:10px;padding:5px 6px;border-radius:8px;min-height:38px}
.pti:hover{background:var(--n-100)}
.pti-x{flex:1 1 auto;min-width:0;display:flex;flex-direction:column}
.pti-x b{font-size:12.5px;font-weight:600;display:inline-flex;align-items:center;gap:5px}
.pti-x b svg{width:13px;height:13px;color:var(--n-500)}
.pti-x small{font-size:11px;color:var(--n-500);line-height:1.3}
.pti .pt-need{display:none;font-style:normal;font-size:11px;color:var(--orange);font-weight:600}
.pti.blocked{opacity:.55}.pti.blocked .pt-need{display:block}
.pt-mseg{display:inline-flex;flex:0 0 auto;border:1px solid var(--line);border-radius:7px;overflow:hidden;background:#fff}
.pt-mlv{position:relative;cursor:pointer}
.pt-mlv input{position:absolute;opacity:0;pointer-events:none}
.pt-mlv span{display:block;padding:4px 7px;font-size:11px;font-weight:600;color:var(--n-500);border-left:1px solid var(--line);white-space:nowrap}
.pt-mlv:first-child span{border-left:0}
.pt-mlv.lv-none input:checked+span{background:var(--n-600);color:#fff}
.pt-mlv.lv-view input:checked+span{background:var(--blue-500);color:#fff}
.pt-mlv.lv-edit input:checked+span{background:var(--green-500);color:#fff}
.pt-mlv.off{cursor:not-allowed}.pt-mlv.off span{color:var(--n-300);background:repeating-linear-gradient(135deg,#fff 0 5px,var(--n-100) 5px 10px)}
.pt-mlv input:focus-visible+span{outline:2px solid var(--blue-500);outline-offset:-2px}
.pt-tn{font-size:11px;color:var(--n-500);margin:6px 0 2px}
/* colonna "Vede": si legge, i comandi dentro la cella non si usano (la riga si apre lo stesso) */
#app td.col-ro [data-act],#app td.col-ro [data-change],#app td.col-ro button,#app td.col-ro select,#app td.col-ro input,#app td.col-ro a{pointer-events:none!important}
@media (max-width:700px){
  .ptiems,.ptiems.cols{grid-template-columns:1fr}
  .pti{flex-wrap:wrap}.pt-mseg{width:100%}.pt-mlv{flex:1}.pt-mlv span{text-align:center}
}
/* V322 · permessi applicati subito */
.pt-saved{margin-left:auto;font-size:11.5px;font-weight:700;color:var(--green);background:var(--green-bg);border:1px solid var(--green-line);border-radius:999px;padding:2px 10px}
.pt-saved.on{animation:ptSaved 1.2s ease}
@keyframes ptSaved{0%{background:var(--green-500);color:#fff}100%{background:var(--green-bg);color:var(--green)}}
.zone-hidden{display:none!important}
/* V323 · campi in sola visione (permessi) */
#app input[data-ro-dis],#app select[data-ro-dis],#app textarea[data-ro-dis],#modalRoot input[data-ro-dis],#modalRoot select[data-ro-dis],#modalRoot textarea[data-ro-dis]{background:var(--n-100)!important;color:var(--n-700)!important;cursor:not-allowed!important;-webkit-text-fill-color:var(--n-700)}
.perm-note{margin-bottom:10px}
/* V324 · filtri sui nomi dei fornitori letti dall'IA */
.ai-nm{border:1px solid var(--line);border-radius:12px;padding:10px 12px;background:var(--blue-bg);margin:10px 0}
.ai-nm-h{display:flex;align-items:center;gap:8px}.ai-nm-h>svg{width:16px;height:16px;color:var(--orange-500)}
.ai-nm-h .grow{display:flex;flex-direction:column}.ai-nm-h small{color:var(--n-500);font-size:12px}
.ai-nm-list{display:flex;flex-direction:column;gap:6px;margin-top:8px}
.ai-nm-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap;border:1px solid var(--n-200);border-radius:10px;padding:6px 10px;background:#fff;font-size:13px;min-height:44px}
.ai-nm-row.off{opacity:.55}
.ai-nm-if,.ai-nm-mode{color:var(--n-500);font-size:12px}
.ai-nm-read{color:var(--orange)}.ai-nm-to{color:var(--green)}
.ai-nm-arrow svg{width:14px;height:14px;color:var(--n-400)}
/* V325 · Regole lettura per fornitore secondo lo Stile unico */
#app .ai-rules{display:flex;flex-direction:column;gap:12px}
#app .ai-rules>.kpi-row,#app .ai-rules>.toolbar{margin:0}
#app .ai-rules-help{margin:0}
/* V326 · Stile unico: anche le tendine con il testo lungo finiscono con "…" (mai tagliate a metà parola) */
select.select,select.input{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}
/* V326 · IVA documenti emessi: colonne che si stringono (mai fuori dalla scheda) */
#app .vo-head,#app .vo-row{grid-template-columns:96px minmax(0,1.2fr) 84px minmax(0,1fr) minmax(0,1.4fr) 40px}
@media (max-width:899px){
  #app .vo-row{grid-template-columns:minmax(0,1fr) 90px 40px}
  #app .pl-sec>h4{flex-wrap:wrap;row-gap:8px}
  #app .pl-sec>h4>.grow{flex:1 1 calc(100% - 30px);min-width:0}
}
/* V326 · nelle righe delle impostazioni il testo non va a capo (finisce con "…") */
#app .set-card table.table td>span:not(.badge):not(.chip),#app .set-card .switch-l span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
#app .settings-nav .set-tx b{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block}
/* V327 · contatore su "Vede": si legge ma non si clicca */
#app .kpi-btn:has(.kpi-ro){pointer-events:none;cursor:default}
#app .kpi.kpi-ro{cursor:default}
/* V328 · Stile unico */
/* linguette sul telefono: testo su una riga con "…" */
@media (max-width:899px){
  #app .seg.bal>.seg-btn{white-space:nowrap!important;overflow:hidden;min-width:0;justify-content:center}
  #app .seg.bal>.seg-btn>span:not(.seg-count){overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}
  #app .seg.bal>.seg-btn>svg{flex:0 0 auto}
  /* Archivio XML: anni e mesi su righe uguali, niente scorrimento di lato */
  #app .xa-tree{flex-direction:column!important;overflow:visible!important}
  #app .xa-months{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;padding:4px 0 6px!important}
  #app .xa-m{min-width:0;padding:7px 8px}
  #app .xa-ml{font-style:normal;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}
}
#app .xa-ml{font-style:normal}
#app .rs-latest-card .table-card{box-shadow:none;border:0;margin:0}
/* piano rate: la riga dell'anno è un titolo (come le altre intestazioni), allineato e con spazio uguale */
#app .fin-plan tr.fin-yr td{padding:10px 2px 2px!important;line-height:20px}
/* V328 · linguette della barra sul telefono: mai una per riga; righe uguali (come i contatori), testo con "…" */
@media (max-width:899px){
  #app .toolbar .seg{--segc:3;display:flex!important;flex-wrap:wrap!important;gap:4px!important;width:100%;grid-template-columns:none!important}
  #app .toolbar .seg:has(>:nth-child(2):last-child){--segc:2}
  #app .toolbar .seg:has(>:nth-child(3):last-child){--segc:3}
  #app .toolbar .seg:has(>:nth-child(4):last-child){--segc:2}
  #app .toolbar .seg:has(>:nth-child(5):last-child),#app .toolbar .seg:has(>:nth-child(6):last-child){--segc:3}
  #app .toolbar .seg:has(>:nth-child(7):last-child),#app .toolbar .seg:has(>:nth-child(8):last-child){--segc:3}
  #app .toolbar .seg>.seg-btn{flex:1 1 calc((100% - (var(--segc) - 1) * 4px) / var(--segc))!important;min-width:0!important;max-width:100%;white-space:nowrap!important;overflow:hidden;justify-content:center;padding-left:6px!important;padding-right:6px!important}
  #app .toolbar .seg>.seg-btn>span:not(.seg-count){flex:0 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  #app .toolbar .seg>.seg-btn>.seg-count,#app .toolbar .seg>.seg-btn>svg{flex:0 0 auto}
  #app .xa-months{grid-template-columns:repeat(2,minmax(0,1fr))!important}
}
@media (min-width:480px) and (max-width:899px){
  #app .toolbar .seg:has(>:nth-child(7):last-child),#app .toolbar .seg:has(>:nth-child(8):last-child){--segc:4}
}
/* V329 · contatori della Dashboard e della Home su "Vede": si leggono ma non si toccano */
#app .tile.kpi-ro,#app .ht2.kpi-ro{pointer-events:none;cursor:default}
#app .dash-grid:has(>:only-child){grid-template-columns:1fr}


/* ============================================================
   V330 · STILE UNICO DEI COLORI (elenco unico, vince su tutto quello sopra)
   Sei colori con significato fisso (regola 4) + una scala di neutri. Ogni colore del gestionale
   è una di queste variabili: nel CSS e nelle pagine non si scrivono più colori a mano (#rrggbb).
     blu    = apri / informazione / in corso        --blue-*
     verde  = fatto / pagato / entrata              --green-*
     arancio= da fare / in attesa / residuo         --orange-*
     rosso  = scaduto / errore / elimina / uscita   --red-*
     viola  = documenti                             --violet-*
     grigio = neutro / annullato                    --gray-* (= neutri --n-*)
   Gradazioni di ogni colore: -400 chiaro (icone su fondo scuro) · -500 vivo (bordi, barre, icone) ·
   (senza numero) testo leggibile · -700 testo scuro · -bg fondo · -line bordo chiaro.
   Neutri: --n-50 … --n-900 (fondi, bordi, testi secondari).
   Stati: elenco unico STATUS_TONES in js/base/05-interfaccia.js (statusBadge, toneOf).
   I colori in più delle versioni vecchie (teal, indigo, slate, amber) puntano al colore della regola.
   ============================================================ */
:root{
  --blue-400:#60a5fa;--blue-500:#2563eb;--blue:#1d4ed8;--blue-700:#1e40af;--blue-bg:#eff6ff;--blue-line:#bfdbfe;
  --green-400:#4ade80;--green-500:#16a34a;--green:#15803d;--green-700:#166534;--green-bg:#f0fdf4;--green-line:#bbf7d0;
  --orange-400:#fb923c;--orange-500:#ea580c;--orange:#c2410c;--orange-700:#9a3412;--orange-bg:#fff7ed;--orange-line:#fed7aa;
  --red-400:#f87171;--red-500:#dc2626;--red:#b91c1c;--red-700:#991b1b;--red-bg:#fef2f2;--red-line:#fecaca;
  --violet-400:#a78bfa;--violet-500:#7c3aed;--violet:#6d28d9;--violet-700:#5b21b6;--violet-bg:#f5f3ff;--violet-line:#ddd6fe;
  --n-50:#f8fafc;--n-100:#f1f5f9;--n-200:#e2e8f0;--n-300:#cbd5e1;--n-400:#94a3b8;--n-500:#64748b;--n-600:#475569;--n-700:#334155;--n-800:#1e293b;--n-900:#0f172a;
  --gray-400:var(--n-400);--gray-500:var(--n-500);--gray:var(--n-600);--gray-700:var(--n-700);--gray-bg:var(--n-100);--gray-line:var(--n-200);
  --teal:var(--blue);--teal-bg:var(--blue-bg);--teal2:var(--blue);--teal2-bg:var(--blue-bg);--slate:var(--gray);--slate-bg:var(--gray-bg);
  --primary:var(--blue-500);--primary-700:var(--blue);--primary-100:var(--blue-line);--primary-50:var(--blue-bg);
  --ink:var(--n-900);--ink-2:var(--n-700);--muted:var(--n-500);--muted-2:var(--n-400);--line:var(--n-200);--line-strong:var(--n-300);--bg:var(--n-100);--surface:#fff;
  /* grafici: entrate c2 verde, uscite c5 rosso, informazione c1 blu (regola 3b) */
  --c1:var(--blue-500);--c2:var(--green-500);--c3:var(--orange-500);--c4:var(--violet-500);--c5:var(--red-500);--c6:var(--n-500);
  /* nomi per le pagine (style="--c:var(--tone-…)") */
  --tone-blue:var(--blue-500);--tone-green:var(--green-500);--tone-orange:var(--orange-500);--tone-red:var(--red-500);--tone-violet:var(--violet-500);--tone-gray:var(--n-500);
}
/* V330 · colori in più delle versioni vecchie = colore della regola */
#app .tone-teal,#modalRoot .tone-teal{--k:var(--blue-500);--kb:var(--blue-bg)}
#app .tone-indigo,#modalRoot .tone-indigo{--k:var(--violet-500);--kb:var(--violet-bg)}
#app .tone-slate,#modalRoot .tone-slate{--k:var(--n-500);--kb:var(--n-100)}
#app .badge.tone-indigo{background:var(--violet-bg);color:var(--violet)}

/* V330 · Stile grafico: tavolozza dell'elenco unico dei colori (sezione 4) */
#app .sg-pal{display:grid;gap:6px;margin-top:12px}
#app .sg-pal-row{display:grid;grid-template-columns:70px repeat(6,minmax(0,1fr));gap:4px;align-items:center}#app .sg-pal-row.n10{grid-template-columns:70px repeat(10,minmax(0,1fr))}
#app .sg-pal-row b{font-size:var(--fs-small);color:var(--n-600)}
#app .sg-sw{height:30px;border-radius:6px;border:1px solid var(--n-200);display:flex;align-items:flex-end;justify-content:center;overflow:hidden}
#app .sg-sw small{font-size:10px;background:rgba(255,255,255,.85);color:var(--n-700);padding:0 4px;border-radius:4px 4px 0 0;white-space:nowrap}
@media (max-width:899px){#app .sg-pal-row{grid-template-columns:52px repeat(3,minmax(0,1fr))}#app .sg-pal-row.n10{grid-template-columns:52px repeat(5,minmax(0,1fr))}#app .sg-pal-row b{grid-row:span 2}} /* righe pari: 6 = 3+3, 10 = 5+5 */