.magazzino .row-between{display:flex;align-items:center;justify-content:space-between;gap:12px}.magazzino .badge-senza_data{background:#e5e7eb;color:var(--muted)}.magazzino .err{color:var(--crit)}.magazzino .page-title{margin:0;font-size:20px;color:var(--navy)}.magazzino .nowrap{white-space:nowrap}.magazzino td.num,.magazzino th.num{text-align:right;white-space:nowrap}.magazzino .pos{color:var(--ok);font-weight:600}.magazzino .neg{color:var(--crit);font-weight:600}.magazzino .table-wrap{overflow-x:auto}.magazzino tr.click{cursor:pointer}.magazzino tr.inattivo td{color:var(--muted);text-decoration-color:#cbd5e1}.magazzino a.stat{color:inherit;display:block}.magazzino a.stat:hover{border-color:var(--accent)}.magazzino .stat .num-sm{font-size:20px}.magazzino .alert{background:#fef2f2;border:1px solid #fecaca;color:#991b1b;border-radius:8px;padding:10px 12px;margin-bottom:12px}.magazzino .err-small{color:var(--crit);font-size:11px}.magazzino .form-grid-3{grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}.magazzino .badge-carico{background:#dcfce7;color:#166534}.magazzino .badge-scarico{background:#fee2e2;color:#991b1b}.magazzino .badge-trasferimento{background:#e0e7ff;color:#3730a3}.magazzino .badge-rettifica{background:#fef3c7;color:#92400e}.magazzino .badge-dotazione{background:#f3e8ff;color:#6b21a8}.magazzino .badge-annullato{background:#e5e7eb;color:var(--muted);text-decoration:line-through}.magazzino .badge-r-in_attesa{background:#fef3c7;color:#92400e}.magazzino .badge-r-approvata{background:#dbeafe;color:#1e40af}.magazzino .badge-r-evasa{background:#dcfce7;color:#166534}.magazzino .badge-r-parziale{background:#e0e7ff;color:#3730a3}.magazzino .badge-r-respinta{background:#fee2e2;color:#991b1b}.magazzino .badge-r-annullata{background:#e5e7eb;color:var(--muted)}.magazzino .giac{font-weight:700}.magazzino .giac small{font-weight:400;color:var(--muted)}.magazzino .giac-bassa{color:var(--crit)}.magazzino .giac-zero{color:var(--muted)}.magazzino .scanbox{display:flex;gap:8px;align-items:center;background:#f8fafc;border:2px dashed #cbd5e1;border-radius:12px;padding:10px}.magazzino .scanbox:focus-within{border-color:var(--accent);border-style:solid;background:#fff}.magazzino .scanbox-ico{font-size:24px;color:var(--navy);padding:0 4px}.magazzino .scanbox input{font-size:17px;padding:11px 12px;border-width:1px}.magazzino .scan-riga{display:flex;gap:10px;align-items:stretch}.magazzino .scan-riga .scanbox{flex:1;min-width:0}.magazzino .btn-nuovo{white-space:nowrap;background:var(--ok)}.magazzino .btn-nuovo:hover{background:#15803d}.magazzino .anteprima iframe{width:100%;border:1px solid var(--border);border-radius:10px;background:#e5e7eb}.magazzino .anteprima-attesa{display:flex;align-items:center;justify-content:center;border:1px dashed var(--border);border-radius:10px}.magazzino .creato{background:#f0fdf4;border:1px solid #bbf7d0;border-radius:10px;padding:10px 12px;margin-bottom:4px}.magazzino .camera{width:100%;border-radius:10px;background:#000}.magazzino .righe td{vertical-align:middle}.magazzino .riga-errore td{background:#fef2f2}@keyframes mag-flash{0%{background:#fef9c3}to{background:transparent}}.magazzino .riga-flash td{animation:mag-flash 1.2s ease-out}.magazzino .qty{display:inline-flex;align-items:center;gap:4px}.magazzino .qty input,.magazzino .qty-input{width:78px;text-align:right;font-size:16px;font-weight:600;padding:6px 8px}.magazzino .qbtn{width:32px;height:32px;border-radius:8px;border:1px solid var(--border);background:#fff;font-size:18px;cursor:pointer}.magazzino .qbtn:hover{background:#f1f5f9}.magazzino input.costo{width:90px;text-align:right}.magazzino .conferma-bar{border-top:1px solid var(--border);margin-top:12px;padding-top:12px}.magazzino .btn-big{padding:12px 22px;font-size:16px}.magazzino .esito{text-align:center;padding:34px 20px}.magazzino .esito-ok{width:64px;height:64px;border-radius:50%;background:var(--ok);color:#fff;font-size:36px;line-height:64px;margin:0 auto 12px}.magazzino .esito h2{font-size:20px}.magazzino .azioni-rapide{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;margin-bottom:16px}.magazzino .azione{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:16px;display:flex;flex-direction:column;align-items:center;gap:6px;font-size:28px;color:var(--navy)}.magazzino .azione span{font-size:14px;font-weight:600}.magazzino .azione:hover{border-color:var(--accent)}.magazzino .az-carico{border-left:4px solid var(--ok)}.magazzino .az-scarico{border-left:4px solid var(--crit)}.magazzino .check{display:inline-flex;align-items:center;gap:6px;color:var(--muted);white-space:nowrap}.magazzino .check input[type=checkbox]{width:auto}.magazzino .check input:not([type=checkbox]){width:150px}.magazzino .check.block{display:flex;align-items:flex-start;white-space:normal;margin-bottom:12px;color:var(--text)}.magazzino .check.block input{margin-top:3px}.magazzino .dati{display:grid;grid-template-columns:150px 1fr;gap:6px 12px;margin:0 0 12px}.magazzino .dati dt{color:var(--muted);font-size:13px}.magazzino .dati dd{margin:0}.magazzino .aiuto ol{margin:0;padding-left:20px;line-height:1.6}.magazzino .show-sm{display:none}@media(max-width:640px){.magazzino .hide-sm{display:none}.magazzino .show-sm{display:block}.magazzino .righe th,.magazzino .righe td{padding:8px 4px}.magazzino .qty input{width:52px;font-size:15px;padding:6px 4px}.magazzino .qbtn{width:28px;height:30px}.magazzino .dati{grid-template-columns:110px 1fr}.magazzino .scanbox input{font-size:16px}.magazzino .scan-riga{flex-direction:column}.magazzino .conferma-bar{flex-direction:column;align-items:stretch}.magazzino .conferma-bar .btn-row{justify-content:flex-end}}.magazzino .dip-cerca{position:relative}.magazzino .dip-cerca input{width:100%}.magazzino .dip-lista{position:absolute;z-index:20;left:0;right:0;top:100%;margin:2px 0 0;padding:4px 0;list-style:none;background:#fff;border:1px solid var(--border);border-radius:8px;box-shadow:0 6px 18px #0f172a1f;max-height:320px;overflow-y:auto}.magazzino .dip-lista li{display:flex;flex-direction:column;padding:7px 10px}.magazzino .dip-lista li.click{cursor:pointer}.magazzino .dip-lista li.click:hover{background:#f1f5f9}.magazzino .dip-scelto{display:flex;align-items:center;justify-content:space-between;gap:8px;border:1px solid var(--border);border-radius:8px;padding:6px 8px 6px 10px;background:#f8fafc;min-height:38px}.magazzino .in-carico{background:#f8fafc;border:1px solid var(--border);border-radius:10px;padding:10px 12px;margin-top:12px}.magazzino .in-carico ul{margin:6px 0 0;padding:0;list-style:none}.magazzino .in-carico li{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:4px 0;border-top:1px solid var(--border)}.magazzino .in-carico li:first-child{border-top:0}.magazzino input.matricole{width:100%;max-width:360px;margin-top:4px;font-size:13px}.magazzino .grid-2{grid-template-columns:repeat(auto-fit,minmax(min(340px,100%),1fr))}:root{--navy: #00365f;--navy-dark: #002744;--accent: #1e6fa8;--bg: #f4f6f9;--card: #ffffff;--border: #e2e8f0;--text: #1f2937;--muted: #6b7280;--ok: #16a34a;--warn: #d97706;--crit: #dc2626;--radius: 10px;--shadow: 0 1px 3px rgba(0, 0, 0, .08), 0 1px 2px rgba(0, 0, 0, .04)}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif;background:var(--bg);color:var(--text);font-size:14px}a{color:var(--accent);text-decoration:none}h1,h2,h3{margin:0}.app-shell{display:flex;min-height:100vh}.sidebar{width:232px;background:var(--navy);color:#cbd5e1;display:flex;flex-direction:column;padding:16px 0;flex-shrink:0;position:sticky;top:0;height:100vh;overflow-y:auto;overscroll-behavior:contain}.sidebar .brand{display:flex;align-items:center;gap:11px;padding:4px 18px 18px;color:#fff;font-weight:700;font-size:15px}.sidebar .brand img{width:34px;height:34px;flex-shrink:0;background:#fff;border-radius:8px;padding:3px}.sidebar .brand-testo{display:flex;flex-direction:column;gap:1px;min-width:0}.sidebar .brand small{font-weight:400;font-size:11px;color:#9fb3c8}.sidebar nav a{display:flex;align-items:center;gap:10px;padding:10px 18px;color:#cbd5e1;font-weight:500}.sidebar nav a.active,.sidebar nav a:hover{background:var(--navy-dark);color:#fff}.sidebar .nav-section{padding:14px 18px 6px;font-size:11px;text-transform:uppercase;letter-spacing:.05em;color:#7d93ad}.sidebar .nav-gruppo{display:flex;align-items:center;gap:10px;padding:10px 18px 4px;color:#cbd5e1;font-weight:500}.sidebar .spacer,.filtri .spacer{flex:1}.sidebar .logout{padding:10px 18px;color:#cbd5e1;cursor:pointer;background:none;border:none;text-align:left;font-size:14px;width:100%}.sidebar .logout:hover{color:#fff}.main{flex:1;display:flex;flex-direction:column;min-width:0}.topbar{height:56px;background:var(--card);border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;padding:0 22px;position:sticky;top:0;z-index:5}.topbar h1{font-size:17px}.topbar .user{color:var(--muted);display:flex;align-items:center;gap:14px}.topbar .ruolo{background:#eef2f7;border-radius:20px;padding:3px 10px;font-size:12px}.content{padding:22px;flex:1}.card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:16px}.card+.card{margin-top:16px}.card h2{font-size:15px;margin-bottom:12px}.card-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px;gap:12px;flex-wrap:wrap}.card-head h2{margin:0}.grid{display:grid;gap:16px}.grid-stats{grid-template-columns:repeat(auto-fill,minmax(180px,1fr))}.grid-2{grid-template-columns:repeat(auto-fit,minmax(340px,1fr))}.stat{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:14px 16px;box-shadow:var(--shadow)}.stat .num{font-size:24px;font-weight:700;color:var(--navy)}.stat .num.positivo{color:var(--ok)}.stat .num.attenzione{color:var(--warn)}.stat .num.critico{color:var(--crit)}.stat .lbl{color:var(--muted);font-size:12px;margin-top:2px}.stat .sub{color:var(--muted);font-size:11px;margin-top:6px}.tabella-wrap{overflow-x:auto}table{width:100%;border-collapse:collapse}th,td{text-align:left;padding:9px 10px;border-bottom:1px solid var(--border);white-space:nowrap}th{font-size:12px;text-transform:uppercase;letter-spacing:.03em;color:var(--muted);font-weight:600}th.num,td.num{text-align:right}tbody tr:hover td{background:#f9fafb}tr.riga-cliccabile{cursor:pointer}tr.sotto-soglia td{background:#fffbeb}tr.sotto-soglia:hover td{background:#fff4d6}td.wrap,th.wrap{white-space:normal;min-width:180px}tfoot td{font-weight:700;background:#f1f5f9}.margine.positivo{color:var(--ok);font-weight:600}.margine.attenzione{color:var(--warn);font-weight:600}.margine.critico{color:var(--crit);font-weight:700}.margine.muted{color:var(--muted)}.margine small{font-weight:400;opacity:.8}.badge{display:inline-block;padding:2px 9px;border-radius:20px;font-size:11px;font-weight:600;white-space:nowrap}.badge-ok{background:#dcfce7;color:#15803d}.badge-warn{background:#fef3c7;color:#b45309}.badge-crit{background:#fee2e2;color:#b91c1c}.badge-neutro{background:#e5e9f0;color:#475569}.badge-chiuso{background:#e2e8f0;color:#64748b}.btn{display:inline-flex;align-items:center;gap:6px;background:var(--navy);color:#fff;border:none;border-radius:8px;padding:8px 14px;font-size:14px;font-weight:600;cursor:pointer}.btn:hover{background:var(--navy-dark)}.btn.secondary{background:#e5e9f0;color:var(--text)}.btn.secondary:hover{background:#d6dce6}.btn.danger{background:var(--crit)}.btn.danger:hover{background:#b91c1c}.btn.ghost{background:transparent;color:var(--accent);padding:4px 8px}.btn.ghost:hover{background:#eef2f7}.btn.small{padding:5px 10px;font-size:13px}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-row{display:flex;gap:8px;flex-wrap:wrap}.icon-btn{background:none;border:none;cursor:pointer;font-size:16px;color:var(--muted);padding:4px 8px;border-radius:6px}.icon-btn:hover{background:#eef2f7;color:var(--text)}input,select,textarea{width:100%;padding:8px 10px;border:1px solid var(--border);border-radius:8px;font-size:14px;font-family:inherit;background:#fff;color:var(--text)}input:focus,select:focus,textarea:focus{outline:2px solid rgba(30,111,168,.35);outline-offset:-1px;border-color:var(--accent)}textarea{min-height:70px;resize:vertical}input[type=checkbox],input[type=radio]{width:auto}.field{display:flex;flex-direction:column;gap:4px;margin-bottom:12px}.field-label{font-size:12px;font-weight:600;color:var(--muted)}.field-hint{font-size:11px;color:var(--muted)}.field-wide{grid-column:1 / -1}.form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:0 14px}.spunte-settori{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:6px 14px;border:1px solid var(--border);border-radius:var(--radius);padding:10px 12px;background:var(--bg)}.spunta{display:flex;align-items:center;gap:8px;font-size:13px;cursor:pointer}.spunta input{width:auto;margin:0}.spunte-azioni{grid-column:1 / -1;display:flex;gap:8px;margin-top:4px}.ricerca{position:relative}.ricerca-scelto{display:flex;align-items:center;gap:8px;justify-content:space-between;border:1px solid var(--border);border-radius:var(--radius);padding:8px 10px;background:var(--bg);font-size:13px}.ricerca-scelto strong{font-weight:600}.ricerca-esiti{list-style:none;margin:4px 0 0;padding:0;border:1px solid var(--border);border-radius:var(--radius);background:var(--card);max-height:190px;overflow-y:auto}.ricerca-esiti li{border-bottom:1px solid var(--border)}.ricerca-esiti li:last-child{border-bottom:none}.ricerca-esiti button{width:100%;text-align:left;background:none;border:none;padding:8px 10px;font-size:13px;cursor:pointer;display:block}.ricerca-esiti button:hover,.ricerca-esiti button:focus,.ricerca-esiti li.attivo button{background:#1e6fa81a}.ricerca-esiti .dettaglio{display:block;font-size:11px;color:var(--muted)}.ricerca-vuoto{font-size:12px;color:var(--muted);padding:6px 2px;display:flex;align-items:center;gap:8px;flex-wrap:wrap}.descrizioni-pronte{margin-top:4px;font-size:11px}.descrizioni-pronte .pillole{display:flex;flex-wrap:wrap;gap:4px;align-items:center;margin-top:3px}.descrizioni-pronte .muted{margin-right:2px}.pillola{background:var(--bg);border:1px solid var(--border);border-radius:999px;padding:2px 9px;font-size:11px;color:var(--text);cursor:pointer;max-width:260px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pillola:hover{background:#eef2f7;border-color:var(--accent);color:var(--accent)}.pillola:disabled{opacity:.55;cursor:default}.pillola:disabled:hover{background:var(--bg);border-color:var(--border);color:var(--text)}.firma-mail{border:1px solid var(--border);border-radius:4px;padding:8px 10px;background:var(--bg);font-size:12px;line-height:1.5}.presets-editor{display:flex;flex-direction:column;gap:6px;margin-top:6px}.presets-riga{display:flex;gap:4px;align-items:flex-start}.presets-riga textarea{flex:1;min-height:34px;font-size:13px;resize:vertical}.presets-riga .icon-btn:disabled{opacity:.3;cursor:not-allowed}.filtri{display:flex;gap:12px;flex-wrap:wrap;align-items:flex-end;margin-bottom:16px;background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:14px 16px;box-shadow:var(--shadow)}.filtri .field{margin-bottom:0;min-width:150px}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f172a73;display:flex;align-items:center;justify-content:center;z-index:50;padding:20px}.modal{background:var(--card);border-radius:12px;width:100%;max-width:520px;max-height:90vh;display:flex;flex-direction:column;box-shadow:0 20px 40px #00000040}.modal-wide{max-width:900px}.modal-head{display:flex;align-items:center;justify-content:space-between;padding:14px 18px;border-bottom:1px solid var(--border)}.modal-head h3{font-size:16px}.modal-body{padding:18px;overflow-y:auto}.modal-foot{padding:12px 18px;border-top:1px solid var(--border);display:flex;justify-content:flex-end;gap:8px}.conferma-msg{margin:0 0 12px;line-height:1.5}.toasts{position:fixed;bottom:20px;right:20px;display:flex;flex-direction:column;gap:8px;z-index:100}.toast{padding:11px 16px;border-radius:8px;color:#fff;font-weight:500;box-shadow:0 4px 12px #0000002e;max-width:380px}.toast-ok{background:var(--ok)}.toast-err{background:var(--crit)}.toast-info{background:var(--navy)}.alert-lista{display:flex;flex-direction:column;gap:8px}.alert-riga{display:flex;align-items:center;gap:12px;padding:10px 12px;border-radius:8px;border-left:4px solid var(--warn);background:#fffbeb}.alert-riga.critico{border-left-color:var(--crit);background:#fef2f2}.alert-riga .codice{font-weight:700;color:var(--navy)}.alert-riga .msg{flex:1}.alert-riga .cliente{color:var(--muted);font-size:12px}.avviso-box{border:1px solid var(--warn);background:#fffbeb;color:#92400e;border-radius:8px;padding:10px 12px;margin:10px 0;font-size:13px}.avviso-box.bloccante{border-color:var(--crit);background:#fef2f2;color:#991b1b}.avviso-box ul{margin:6px 0 0;padding-left:20px}.avviso-box li{margin:3px 0}.grafico{padding:4px 0}.grafico-barre{display:flex;align-items:flex-end;gap:14px;height:190px;padding:10px 0;overflow-x:auto}.grafico-barre .gruppo{display:flex;flex-direction:column;align-items:center;gap:6px;min-width:62px;flex:1}.grafico-barre .barre{display:flex;align-items:flex-end;gap:3px;height:150px}.grafico-barre .barra{width:15px;border-radius:3px 3px 0 0;min-height:2px}.grafico-barre .barra.ricavi{background:var(--accent)}.grafico-barre .barra.costi{background:#94a3b8}.grafico-barre .barra.margine{background:var(--ok)}.grafico-barre .barra.margine.neg{background:var(--crit)}.grafico-barre .etichetta{font-size:11px;color:var(--muted)}.legenda{display:flex;gap:16px;font-size:12px;color:var(--muted);margin-top:6px}.legenda .sw{display:inline-block;width:10px;height:10px;border-radius:2px;margin-right:5px}.legenda .sw.ricavi{background:var(--accent)}.legenda .sw.costi{background:#94a3b8}.legenda .sw.margine{background:var(--ok)}.nota{font-size:11px;color:var(--muted);margin:6px 0 0}.barre-h{display:flex;flex-direction:column;gap:8px}.riga-barra{display:grid;grid-template-columns:150px 1fr 110px;align-items:center;gap:10px}.riga-barra .etichetta{font-size:13px}.riga-barra .traccia{background:#eef2f7;border-radius:4px;height:16px;overflow:hidden}.riga-barra .riempimento{display:block;height:100%;background:var(--accent);border-radius:4px}.riga-barra .valore{text-align:right;font-size:13px;font-weight:600}.spinner{width:26px;height:26px;border:3px solid var(--border);border-top-color:var(--accent);border-radius:50%;animation:spin .8s linear infinite;margin:40px auto}@keyframes spin{to{transform:rotate(360deg)}}.empty{text-align:center;color:var(--muted);padding:30px 10px}.empty p{margin:0 0 10px}.muted{color:var(--muted)}.testo-piccolo{font-size:12px}.mono{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px}.login-wrap{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(140deg,var(--navy) 0%,#1e6fa8 100%);padding:20px}.login-card{background:#fff;border-radius:14px;padding:30px;width:100%;max-width:380px;box-shadow:0 20px 45px #00000040}.login-logo{display:block;width:64px;height:64px;margin:0 auto 16px}.login-card h1{font-size:19px;margin-bottom:4px;color:var(--navy);text-align:center}.login-card .sub{text-align:center}.login-card .sub{color:var(--muted);font-size:13px;margin:0 0 20px}.login-card .btn{width:100%;justify-content:center;margin-top:6px}.login-err{color:var(--crit);font-size:13px;margin-top:10px}.login-avviso{background:#fff7ed;border:1px solid #fdba74;border-left:4px solid var(--warn);border-radius:8px;padding:10px 12px;font-size:13px;line-height:1.45;color:#7c2d12;margin:0 0 16px}.login-aiuto{color:var(--muted);font-size:13px;line-height:1.45;margin-top:6px}.tabs{display:flex;gap:4px;border-bottom:1px solid var(--border);margin-bottom:16px;flex-wrap:wrap}.tabs button{background:none;border:none;padding:9px 14px;cursor:pointer;font-size:14px;font-weight:600;color:var(--muted);border-bottom:2px solid transparent}.tabs button.active{color:var(--navy);border-bottom-color:var(--navy)}.tabs button:hover{color:var(--text)}.riepilogo-margine{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;margin-bottom:16px}.voce-calcolo{background:#f8fafc;border:1px solid var(--border);border-radius:8px;padding:12px}.voce-calcolo .etichetta{font-size:12px;color:var(--muted)}.voce-calcolo .valore{font-size:18px;font-weight:700;margin-top:4px}.voce-calcolo.risultato{background:#eef6fc;border-color:var(--accent)}.voce-calcolo .segno{color:var(--muted);font-size:12px}.dettaglio-head{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;flex-wrap:wrap;margin-bottom:6px}.dettaglio-head .titolo h2{font-size:19px}.dettaglio-head .titolo .sotto{color:var(--muted);font-size:13px;margin-top:3px}dl.scheda{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px 20px;margin:0}dl.scheda dt{font-size:12px;color:var(--muted)}dl.scheda dd{margin:2px 0 0;font-weight:500}.cruscotto-impianti .riquadro dl.scheda{grid-template-columns:minmax(0,1fr) auto;align-items:baseline}.cruscotto-impianti .riquadro dl.scheda dd{text-align:right}.tabs.sotto{margin-bottom:14px}.tabs.sotto button{font-size:13px;padding:7px 12px}.margini-tre{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:16px}.box-margine{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:14px 16px}.box-margine .titolo{font-size:12px;color:var(--muted);font-weight:600}.quanto-resta{margin-bottom:18px}.quanto-resta table{width:100%}.quanto-resta td{padding:6px 10px;border-bottom:1px solid var(--border);font-size:13px}.quanto-resta td:first-child{white-space:nowrap}.quanto-resta td.num{white-space:nowrap;font-weight:600;width:1%}.quanto-resta tr.evidenza td{font-weight:700;color:var(--navy)}.quanto-resta tr.evidenza td.muted{font-weight:400;color:var(--muted)}.quanto-resta .critico{color:var(--crit)}.quanto-resta td:last-child{white-space:normal}@media(max-width:600px){.quanto-resta tr{display:grid;grid-template-columns:minmax(0,1fr) auto;border-bottom:1px solid var(--border)}.quanto-resta td{border-bottom:0}.quanto-resta td:first-child{white-space:normal}.quanto-resta td:last-child{grid-column:1 / -1;padding-top:0}}.box-margine.evidenza{border:2px solid var(--accent);background:#f5faff}.box-margine.evidenza .valore{font-size:28px}.box-margine .fase{font-size:10px;text-transform:uppercase;letter-spacing:.06em;color:var(--accent);font-weight:700;margin-bottom:2px}.box-margine .valore{font-size:22px;font-weight:700;margin-top:6px;color:var(--navy)}.box-margine .valore.positivo{color:var(--ok)}.box-margine .valore.attenzione{color:var(--warn)}.box-margine .valore.critico{color:var(--crit)}.box-margine .valore.muted{color:var(--muted)}.box-margine .pct{font-size:13px;color:var(--muted);margin-top:2px}.box-margine .delta{font-size:12px;font-weight:600;margin-top:6px}.box-margine .delta.positivo{color:var(--ok)}.box-margine .delta.critico{color:var(--crit)}.box-margine .spiega{font-size:11px;color:var(--muted);margin-top:8px;border-top:1px solid var(--border);padding-top:6px}.riepilogo-due{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:18px}.riquadro{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:12px 16px}.riquadro h4{margin:0 0 8px;font-size:13px;color:var(--navy)}.riquadro .voce-calcolo{display:flex;justify-content:space-between;align-items:baseline;gap:12px;padding:8px 12px;margin-bottom:6px}.riquadro .voce-calcolo .valore{margin-top:0;font-size:16px;white-space:nowrap}.riquadro .voce-calcolo.risultato .valore{font-size:18px}.titolo-sezione{font-size:13px;color:var(--navy);margin:18px 0 8px}.barra-azioni{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:12px;flex-wrap:wrap}.barra-azioni .nota{margin:0;max-width:640px;line-height:1.5}.barra-azioni .btn{line-height:20px;white-space:nowrap}.pulsanti-editor{flex:1;justify-content:flex-end}tr.annullata td{opacity:.5;text-decoration:line-through}tr.disattivata td{opacity:.55}.gruppo-documenti{margin-bottom:18px}.nota-form.larga{grid-column:1 / -1;font-size:12px;color:var(--muted);background:var(--bg);border-radius:6px;padding:8px 10px}td.num.critico,th.num.critico{color:var(--crit);font-weight:600}td.num.positivo,th.num.positivo{color:var(--ok)}td.num.muted,th.num.muted{color:var(--muted)}dd.critico{color:var(--crit);font-weight:600}@media(max-width:820px){.sidebar{width:64px}.sidebar .brand-testo,.sidebar nav a span,.sidebar .nav-section,.sidebar .nav-gruppo,.sidebar .logout span{display:none}.sidebar .brand{justify-content:center;padding:4px 0 18px}.sidebar nav a{justify-content:center}.content{padding:14px}.riga-barra{grid-template-columns:110px 1fr 90px}.margini-tre,.riepilogo-due{grid-template-columns:1fr}.barra-azioni{flex-direction:column}}.select-stato{min-width:116px}.select-ricorrenza{min-width:150px}.select-um{min-width:120px}.azioni-riga{flex-wrap:nowrap;justify-content:flex-end;align-items:center}.rich-text{border:1px solid var(--border);border-radius:8px;background:#fff;margin-top:4px;overflow:hidden}.rich-text.disabilitato{background:#f8fafc}.rich-text-barra{display:flex;gap:2px;padding:3px 4px;border-bottom:1px solid var(--border);background:#f8fafc}.rich-text-barra button{border:none;background:none;cursor:pointer;color:var(--muted);width:24px;height:22px;border-radius:4px;font-size:12px;line-height:1}.rich-text-barra button:hover{background:#e2e8f0;color:var(--text)}.rich-text-corpo{padding:6px 8px;font-size:13px;line-height:1.45;outline:none}.rich-text-corpo:empty:before{content:attr(data-placeholder);color:var(--muted)}.rich-text-corpo p,.rich-text-corpo div{margin:0}.rich-text-corpo ul,.rich-text-corpo ol{margin:2px 0;padding-left:18px}.documenti-fornitore{margin-top:14px;padding-top:12px;border-top:1px solid var(--border)}.documenti-fornitore h3{margin:0 0 8px;font-size:13px}.elenco-documenti{list-style:none;margin:0 0 10px;padding:0}.elenco-documenti li{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:6px 0;border-bottom:1px solid var(--border)}.elenco-documenti li a{flex:1;min-width:140px}.documenti-fornitore label.btn{cursor:pointer;display:inline-flex}.errore-import{margin:12px 0 0;padding:10px 12px;border-radius:6px;border:1px solid var(--crit);color:var(--crit);font-size:13px;line-height:1.4}.zona-file{display:flex;flex-direction:column;align-items:center;gap:8px;padding:22px 12px;border:2px dashed var(--border);border-radius:var(--radius);color:var(--muted);text-align:center;cursor:pointer;overflow-wrap:anywhere}.zona-file strong{color:var(--text)}.zona-file.sopra{border-color:var(--accent);background:#eff6ff;color:var(--accent)}.zona-file.disattiva{opacity:.6;cursor:default}.testo-crit{color:var(--crit);font-weight:600}.testo-warn{color:var(--warn);font-weight:600}.avviso-warn{border:1px solid var(--warn);background:#fffbeb;color:#92400e;border-radius:var(--radius);padding:10px 12px}.card.avviso-warn{margin-top:16px}th.th-ore{white-space:normal;width:96px}td.cella-stato{white-space:normal;max-width:130px}td.cella-note{white-space:normal;min-width:120px}.azioni-turno{display:flex;flex-direction:column;align-items:stretch;gap:4px}.azioni-turno .btn{white-space:nowrap}@media(max-width:1279px){.azioni-turno{flex-direction:row;flex-wrap:wrap}td.cella-stato{max-width:none}}@media(max-width:1279px){table.schede thead{display:none}table.schede,table.schede tbody{display:block;width:100%}table.schede tr{display:grid;grid-template-columns:repeat(auto-fill,minmax(100px,1fr));gap:6px 14px;padding:10px 12px;margin-bottom:10px;border:1px solid var(--border);border-radius:8px;background:var(--card)}table.schede td{display:block;padding:0;border:none;white-space:normal;min-width:0;text-align:left!important}table.schede td.piena{grid-column:1 / -1}table.schede td[data-l]:before{content:attr(data-l);display:block;font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.03em}table.schede td:empty{display:none}table.schede tbody tr:hover td{background:none}}.timbra{max-width:520px;margin:0 auto}.timbra .card+.card{margin-top:14px}.timbra-stato{border-left:5px solid var(--border)}.timbra-stato.in-servizio{border-left-color:var(--ok)}.timbra-titolo{font-size:20px;font-weight:700;margin:4px 0}.timbra-select{font-size:16px;padding:10px;width:100%}.timbra-btn{display:block;width:100%;margin-top:12px;padding:22px 12px;border:none;border-radius:12px;font-size:20px;font-weight:700;color:#fff;cursor:pointer}.timbra-btn:disabled{opacity:.45;cursor:not-allowed}.timbra-in{background:var(--ok)}.timbra-out{background:var(--crit)}.timbra-cambio{margin-top:18px;padding-top:14px;border-top:1px solid var(--border)}.timbra-fascia-mano{display:grid;grid-template-columns:1fr 1fr;gap:10px}.timbra-fascia-mano input,.timbra textarea{font-size:16px;width:100%}.dove-stato{display:inline-block;padding:2px 8px;border-radius:10px;font-size:12px;font-weight:600;white-space:nowrap}.dove-IN_SERVIZIO{background:color-mix(in srgb,var(--ok) 18%,transparent);color:var(--ok)}.dove-SVOLTO{background:color-mix(in srgb,var(--muted, #888) 18%,transparent)}.dove-DA_INIZIARE{background:color-mix(in srgb,var(--border) 60%,transparent)}.dove-IN_RITARDO{background:color-mix(in srgb,var(--warn, #d08a00) 22%,transparent);color:var(--warn, #b07000)}.dove-NON_TIMBRATO{background:color-mix(in srgb,var(--crit) 18%,transparent);color:var(--crit)}.timbra-lista{list-style:none;margin:0;padding:0}.timbra-lista li{display:flex;justify-content:space-between;gap:8px;flex-wrap:wrap;padding:8px 0;border-bottom:1px solid var(--border)}.timbra-lista li:last-child{border-bottom:none}.prova-griglia{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:16px;align-items:start}.prova-griglia .timbra{max-width:none;margin-top:14px}@media(max-width:900px){.prova-griglia{grid-template-columns:minmax(0,1fr)}}.shell-dipendente{min-height:100vh;background:var(--bg)}.shell-dipendente header{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 16px;background:var(--navy);color:#fff;padding-top:max(10px,env(safe-area-inset-top))}.shell-dipendente header img{height:32px;background:#fff;border-radius:6px;padding:2px 4px}.shell-dipendente header button{background:transparent;border:1px solid rgba(255,255,255,.5);color:#fff;border-radius:8px;padding:6px 12px;font-size:14px;cursor:pointer}.shell-dipendente main{padding:16px}.squadra-elenco{max-height:50vh;overflow-y:auto;border:1px solid var(--border);border-radius:var(--radius);margin-top:8px}.squadra-elenco label{display:flex;align-items:center;gap:10px;padding:8px 12px;cursor:pointer;border-bottom:1px solid var(--border)}.squadra-elenco label:last-child{border-bottom:none}.squadra-elenco label.scelto{background:#eef4fb}.squadra-elenco label span:nth-of-type(2){margin-left:auto}.sezioni-comandi{display:flex;justify-content:flex-end;gap:6px;margin-bottom:10px}.card.sezione{padding:0}.card.sezione+.card.sezione{margin-top:10px}.sezione-testa{margin:0;padding:12px 16px}.sezione-titolo{display:flex;align-items:flex-start;gap:10px;flex:1;min-width:0;background:none;border:0;padding:0;text-align:left;cursor:pointer;color:inherit;font:inherit}.sezione-titolo h2{margin:0}.sezione-titolo:hover h2{color:var(--accent)}.sezione-titolo>span:last-child{min-width:0;flex:1}.sezione-freccia{display:inline-block;color:var(--muted);font-size:15px;line-height:20px;width:12px;transition:transform .15s ease}.sezione.aperta .sezione-freccia{transform:rotate(90deg)}.sezione-riassunto{display:block;color:var(--muted);font-size:12px;margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sezione-corpo{padding:14px 16px 16px;border-top:1px solid var(--border)}.cruscotto-sezioni{margin-top:16px}.cruscotto-sezioni .card.sezione+.card.sezione,.cruscotto-sezioni .card.sezione+.grid,.cruscotto-sezioni .grid+.card.sezione,.cruscotto-sezioni .grid+.grid{margin-top:16px}.cruscotto-sezioni .grid{align-items:start}.cruscotto-sezioni .grid>.card.sezione,.cruscotto-sezioni .grid>.card.sezione+.card.sezione{margin-top:0}.contratto{max-width:1040px;margin:0 auto}.contratto .card+.card,.contratto .contratto-campi .card{margin-top:14px}.contratto-campi{border:0;padding:0;margin:0;min-width:0}.contratto input:not([type=checkbox]):not([type=radio]){font-size:16px;padding:9px 10px}.contratto-riferimenti{display:flex;flex-wrap:wrap;gap:6px 22px}.contratto-scelte{display:flex;flex-wrap:wrap;gap:8px}.contratto-scelta{display:inline-flex;align-items:center;gap:8px;cursor:pointer;border:1px solid var(--border);border-radius:8px;padding:8px 12px;font-size:15px;background:var(--card);-webkit-user-select:none;user-select:none}.contratto-scelta.attiva{border-color:var(--accent);background:#eaf3fb}.contratto-scelta input{width:20px;height:20px;margin:0}.contratto-servizio{padding:8px 0;border-bottom:1px solid var(--border)}.contratto-servizio:last-child{border-bottom:0}.contratto-servizio .form-grid{margin-top:10px}.contratto-grande{font-size:17px;padding:12px 22px;margin-top:10px}.contratto-avviso{background:#fff7e6;border:1px solid #f5d08a;color:#7a4b00;border-radius:8px;padding:8px 12px;font-size:14px}.firme-elenco{display:grid;gap:14px;margin:12px 0}.firma-pad{border:1px solid var(--border);border-radius:10px;padding:10px;background:#fafbfc}.firma-pad.firmata{border-color:var(--ok)}.firma-pad-testa{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:8px;font-size:14px;font-weight:600}.firma-pad-area{position:relative;background:#fff;border:1px dashed #b8c2cf;border-radius:8px;overflow:hidden}.firma-pad-area canvas{display:block;touch-action:none;cursor:crosshair}.firma-pad-invito{position:absolute;left:16px;bottom:12px;color:#b8c2cf;font-size:15px;pointer-events:none}.riconciliazione .card+.card{margin-top:14px}.input-importo{text-align:right;max-width:170px;margin-left:auto}td.rientro{padding-left:26px}.riepilogo-aziendale tr.riga-totale td{font-weight:700;border-top:2px solid var(--border)}.riepilogo-aziendale small{font-weight:400;color:var(--muted)}.riconciliazione-controllo{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:10px;margin-bottom:8px;align-items:center}@media(max-width:820px){.riconciliazione-controllo{grid-template-columns:1fr}}.costo-allocabile{border-top:1px solid var(--border);padding:10px 0}.costo-allocabile-testa{display:flex;flex-wrap:wrap;gap:8px 16px;align-items:center;justify-content:space-between}.costo-allocazioni{margin:6px 0 0 14px;padding:0;list-style:none}.costo-allocazioni li{display:flex;gap:10px;align-items:center}.riepilogo-aziendale tr.riga-rettifica td{background:#fff7e6}@media(min-width:821px){.sidebar nav a.nav-sotto{padding-left:30px;font-size:13px}}.costi-generali tr.riga-spacchettata td{background:#f7f9fc}.costi-generali td.azioni-riga{white-space:nowrap;text-align:right}.costo-generale-form{border:1px solid var(--border);border-radius:10px;padding:12px;margin:8px 0;background:#fafbfc}tr.riga-da-completare td{background:#fff7ed}.scheda-co h3{font-size:15px;margin:18px 0 8px}.scheda-co-testa{display:flex;align-items:baseline;gap:12px;flex-wrap:wrap}.scheda-co textarea{width:100%}.scheda-orari{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:8px;margin:8px 0}.scheda-orari-giorno{display:grid;gap:4px;padding:8px;border:1px solid var(--border);border-radius:8px;font-size:13px}.scheda-orari-giorno>span{font-weight:600}.scheda-orari-giorno label{display:flex;align-items:center;justify-content:space-between;gap:6px}.scheda-ora{width:auto;max-width:110px}.scheda-co-azioni{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-top:16px}.form-grid.scheda-coppie{grid-template-columns:1fr 1fr}.ferie-residui tr.ferie-mia td{background:#eef6fc}.ferie-residuo{font-weight:700;color:var(--navy)}.ferie-residuo.alto{color:var(--warn)}.ferie-residuo.negativo{color:var(--crit)}.ferie-barra{height:8px;min-width:120px;background:#e5e9f0;border-radius:99px;overflow:hidden}.ferie-barra span{display:block;height:100%;background:var(--accent);border-radius:99px}.ferie-legenda{display:flex;flex-wrap:wrap;gap:6px 16px;align-items:center;font-size:12px;color:var(--muted)}.ferie-legenda span{display:inline-flex;align-items:center;gap:6px}.ferie-legenda .ferie-cella{width:16px;height:16px}.ferie-mese+.ferie-mese{margin-top:22px}.ferie-mese h3{font-size:14px;color:var(--navy);margin-bottom:8px;display:flex;align-items:baseline;gap:10px}.ferie-mese h3 small{font-size:12px;font-weight:400;color:var(--muted)}.ferie-griglia{width:auto;border-collapse:separate;border-spacing:0}.ferie-griglia th,.ferie-griglia td{padding:2px;text-align:center;border-bottom:1px solid var(--border);min-width:28px;width:28px}.ferie-griglia thead th{font-size:11px;text-transform:none;letter-spacing:0;color:var(--text);font-weight:600;padding:4px 2px;line-height:1.2}.ferie-griglia thead th span{display:block}.ferie-griglia thead th .dow{font-size:10px;color:var(--muted);font-weight:500}.ferie-griglia .ferie-nome{position:sticky;left:0;z-index:1;background:var(--card);text-align:left;min-width:150px;width:150px;padding:4px 10px 4px 0;font-size:12px;font-weight:600;color:var(--text);text-transform:none;letter-spacing:0}.ferie-griglia .festivo{background:repeating-linear-gradient(135deg,#f1f5f9 0,#f1f5f9 4px,#e7ecf2 4px,#e7ecf2 8px)}.ferie-griglia thead th.festivo .dow,.ferie-griglia thead th.festivo{color:var(--muted)}.ferie-griglia .oggi{box-shadow:inset 2px 0 0 var(--accent),inset -2px 0 0 var(--accent)}.ferie-griglia thead th.oggi{color:var(--accent)}.ferie-griglia tbody tr:hover td:not(.festivo),.ferie-griglia tbody tr:hover .ferie-nome{background:#f9fafb}.ferie-griglia tr.ferie-mia td:not(.festivo),.ferie-griglia tr.ferie-mia .ferie-nome{background:#eef6fc}.ferie-griglia .ferie-tot{font-weight:700;color:var(--navy);min-width:40px;width:40px;padding-left:8px}.ferie-griglia tfoot td,.ferie-griglia tfoot th{background:#f8fafc;font-size:11px;font-weight:600;color:var(--muted);border-bottom:none}.ferie-griglia tfoot .ferie-nome{background:#f8fafc;color:var(--muted)}.ferie-griglia tfoot td.affollato{color:var(--crit);background:#fef2f2}.ferie-tu{margin-left:6px;font-size:10px;font-weight:700;color:#fff;background:var(--accent);border-radius:99px;padding:1px 6px;vertical-align:1px}.ferie-cella{display:inline-block;width:22px;height:22px;border-radius:5px;padding:0;border:1px solid transparent;background:transparent;vertical-align:middle}button.ferie-cella{cursor:pointer;border-color:#dbe3ec;background:#fff}button.ferie-cella:hover{border-color:var(--accent);background:#eef6fc}.ferie-cella.pieno,button.ferie-cella.pieno{background:var(--navy);border-color:var(--navy)}.ferie-cella.mezzo,button.ferie-cella.mezzo{background:linear-gradient(135deg,var(--navy) 50%,#fff 50%);border-color:var(--navy)}.ferie-legenda .ferie-cella.festivo{background:repeating-linear-gradient(135deg,#f1f5f9 0,#f1f5f9 4px,#d9e0e8 4px,#d9e0e8 8px);border-color:#dbe3ec}button.ferie-cella.pieno:hover{background:var(--navy-dark)}@media(max-width:820px){.ferie .grid-stats{grid-template-columns:1fr 1fr;gap:10px}.ferie .stat .num{font-size:20px}.ferie-griglia .ferie-nome{min-width:92px;width:92px;font-size:11px;white-space:normal;padding-right:6px}.ferie-tu{margin-left:3px;padding:0 4px}}.ferie-periodo{display:flex;flex-wrap:wrap;align-items:center;gap:8px 10px;padding:10px 12px;margin-bottom:14px;background:var(--bg);border:1px solid var(--border);border-radius:var(--radius)}.ferie-periodo label{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--muted);font-weight:600}.ferie-periodo select{width:auto;min-width:150px;padding:6px 8px}.ferie-periodo .btn.small{padding:5px 11px;font-size:16px;line-height:1}.ferie-scorciatoie{display:flex;flex-wrap:wrap;gap:6px;margin-left:auto}.ferie-scorciatoie .pillola{font-size:12px;padding:4px 11px}.ferie-scorciatoie .pillola.attiva{background:var(--navy);border-color:var(--navy);color:#fff}@media(max-width:820px){.ferie-scorciatoie{margin-left:0}.ferie-periodo select{min-width:0}}.scelta-commessa{position:relative;min-width:0}.scelta-commessa-btn{width:100%;display:flex;align-items:center;justify-content:space-between;gap:8px;padding:8px 10px;border:1px solid var(--border);border-radius:8px;background:#fff;font:inherit;font-size:14px;color:var(--text);cursor:pointer;text-align:left;min-height:37px}.scelta-commessa-btn>span:first-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}.scelta-commessa-btn:focus{outline:2px solid rgba(30,111,168,.35);outline-offset:-1px;border-color:var(--accent)}.scelta-commessa-btn:disabled{background:#f3f4f6;cursor:not-allowed}.scelta-commessa-req{position:absolute;left:0;bottom:0;width:100%;height:1px;opacity:0;pointer-events:none;padding:0;border:0}.scelta-commessa-pannello{position:fixed;z-index:80;display:flex;flex-direction:column;background:#fff;border:1px solid var(--border);border-radius:8px;box-shadow:0 8px 24px #0f172a2e;overflow:hidden}.scelta-commessa-cerca{border:0;border-bottom:1px solid var(--border);border-radius:0}.scelta-commessa-lista{overflow-y:auto;min-height:0}.scelta-commessa-gruppo,.scelta-commessa-voce{display:flex;width:100%;justify-content:space-between;align-items:baseline;gap:10px;padding:8px 12px;border:0;background:none;font:inherit;font-size:14px;color:var(--text);text-align:left;cursor:pointer}.scelta-commessa-gruppo{font-weight:600;background:#f4f6f9;border-top:1px solid var(--border)}.scelta-commessa-voce.rientro{padding-left:26px}.scelta-commessa-voce>span:first-child{min-width:0;overflow-wrap:anywhere}.scelta-commessa-voce:hover,.scelta-commessa-gruppo:hover{background:#eef4fb}.scelta-commessa-voce.scelta{background:#e1edf8}tr.riga-gruppo td{background:#f4f6f9;font-weight:600;cursor:pointer;-webkit-user-select:none;user-select:none}tr.riga-gruppo td .muted{font-weight:400}.foto-carica{display:flex;align-items:center;gap:12px;flex-wrap:wrap;border:1px dashed var(--border);border-radius:8px;padding:12px;margin-bottom:12px}.foto-carica.sopra{border-color:var(--accent);background:#eef6fc}.foto-elenco{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,420px),1fr));gap:12px}.foto-scheda{display:flex;gap:12px;border:1px solid var(--border);border-radius:8px;padding:10px;min-width:0}.foto-miniatura{flex:0 0 140px;height:140px;display:flex;align-items:center;justify-content:center;background:#f1f5f9;border-radius:6px;overflow:hidden;color:var(--muted)}.foto-miniatura img{max-width:100%;max-height:100%;object-fit:contain}.foto-campi{flex:1;min-width:0;display:flex;flex-direction:column;gap:6px}.foto-campi textarea,.foto-campi select{width:100%;box-sizing:border-box}.foto-testa{display:flex;align-items:center;justify-content:space-between;gap:6px}.foto-azioni{display:flex;gap:2px}@media(max-width:520px){.foto-scheda{flex-direction:column}.foto-miniatura{flex-basis:auto;width:100%;height:200px}}.turni .pillola.attiva{background:var(--navy);border-color:var(--navy);color:#fff}.turni .pillola{font-size:12px;padding:4px 11px}.turni-filtri{align-items:center}.turni-periodo{display:flex;flex-wrap:wrap;align-items:center;gap:8px 14px;flex:1 1 360px}.turni-naviga{display:flex;align-items:center;gap:8px}.turni-naviga strong{min-width:150px;text-align:center;text-transform:capitalize}.turni-naviga .btn.small{font-size:16px;line-height:1;padding:5px 11px}.turni-stats{margin-bottom:12px}.turni-testo-crit{color:var(--crit);font-weight:600}.turni-testo-warn{color:var(--warn);font-weight:600}.turni-legenda{display:flex;flex-wrap:wrap;gap:6px 16px;font-size:12px;color:var(--muted)}.turni-legenda span{display:inline-flex;align-items:center;gap:6px}.turni-legenda i{display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;border-radius:4px;border:1px solid var(--border);font-style:normal;font-size:10px;font-weight:700}.turni-legenda i.coperto,.turni-legenda i.ok{background:#bbf7d0;border-color:#86efac;color:#166534}.turni-legenda i.scoperto,.turni-legenda i.crit{background:#fecaca;border-color:#fca5a5;color:#991b1b}.turni-legenda i.eccedente,.turni-legenda i.warn{background:#fed7aa;border-color:#fdba74;color:#9a3412}.turni-legenda i.mancante{background:#fff;border:1.5px dashed var(--crit)}.turni-legenda i.linea{border:0;height:0;border-top:2px solid var(--navy);border-radius:0}.turni-legenda i.vuoto{background:#f8fafc}.turni-legenda i.dadef{background:repeating-linear-gradient(135deg,#f8fafc 0,#f8fafc 3px,#e2e8f0 3px,#e2e8f0 6px);color:var(--muted)}.turni-legenda i.formazione{background:repeating-linear-gradient(45deg,#c7d2fe 0,#c7d2fe 3px,#eef2ff 3px,#eef2ff 6px);border-color:#a5b4fc}.turni-legenda i.turno{background:#e0ecf8;border-color:#9cc2e5}.turni-legenda i.altrove{background:#f1f5f9;border-style:dashed}.turni-legenda i.richiesta{background:#fff;border:1.5px dashed #64748b}.turni-gruppo h2{margin-bottom:6px}.turni-commessa{display:grid;grid-template-columns:minmax(200px,300px) minmax(0,1fr);gap:6px 16px;align-items:center;padding:8px 0;border-top:1px solid var(--border)}.turni-commessa-nome{display:flex;flex-direction:column;align-items:flex-start;gap:2px;text-align:left;background:none;border:0;padding:0;cursor:pointer;font:inherit;color:var(--text);min-width:0}.turni-commessa-nome strong{color:var(--accent);overflow-wrap:anywhere}.turni-commessa-nome .badge{margin-top:2px}.turni-celle{display:flex;flex-wrap:wrap;gap:4px}.turni-cella{width:46px;height:40px;border-radius:6px;border:1px solid var(--border);cursor:pointer;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:0;font:inherit;background:#f8fafc;color:var(--muted);padding:0}.turni-celle.mese .turni-cella{width:30px;height:34px}.turni-cella .g{font-size:12px;font-weight:600}.turni-cella .i{font-size:11px;font-weight:700;min-height:13px}.turni-cella.ok{background:#dcfce7;border-color:#86efac;color:#166534}.turni-cella.crit{background:#fee2e2;border-color:#fca5a5;color:#991b1b}.turni-cella.warn{background:#ffedd5;border-color:#fdba74;color:#9a3412}.turni-cella.dadef{background:repeating-linear-gradient(135deg,#f8fafc 0,#f8fafc 4px,#e9eef4 4px,#e9eef4 8px)}.turni-cella.oggi{box-shadow:0 0 0 2px var(--accent)}.turni-cella:hover{filter:brightness(.96)}.turni-pubblica{display:flex;flex-wrap:wrap;gap:8px;margin:4px 0 14px}.turni-pubblica-sett{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:6px 10px;font-size:13px;border:1px dashed var(--border);border-radius:8px;background:#f8fafc}.turni-pubblica-sett.si{border-style:solid;border-color:#86efac;background:#f0fdf4}.turni-righe{display:flex;flex-direction:column}.turni-riga{display:grid;grid-template-columns:74px minmax(0,1fr) auto;gap:10px;align-items:center;padding:6px 4px;border-top:1px solid var(--border)}.turni-riga.festivo{background:#f8fafc}.turni-riga.oggi{box-shadow:inset 3px 0 0 var(--accent)}.turni-riga.totale{border-top:2px solid var(--border)}.turni-riga-data{display:flex;align-items:center;gap:6px;background:none;border:0;cursor:pointer;font:inherit;color:var(--text);padding:0}.turni-riga-data .dow{font-size:11px;color:var(--muted);width:24px;text-transform:uppercase}.turni-riga-data .num{font-weight:700;width:20px}.turni-riga-tot{display:flex;align-items:center;gap:10px;font-size:12px;white-space:nowrap}.turni-esito-badge{display:inline-flex;align-items:center;gap:4px;border-radius:99px;padding:3px 10px;font-size:12px;font-weight:600;border:1px solid var(--border);background:#f8fafc;color:var(--muted)}.turni-esito-badge.piccolo{padding:0;width:20px;height:20px;justify-content:center;font-size:11px}.turni-esito-badge.ok{background:#dcfce7;border-color:#86efac;color:#166534}.turni-esito-badge.crit{background:#fee2e2;border-color:#fca5a5;color:#991b1b}.turni-esito-badge.warn{background:#ffedd5;border-color:#fdba74;color:#9a3412}.turni-esito-badge.dadef{background:repeating-linear-gradient(135deg,#f8fafc 0,#f8fafc 4px,#e9eef4 4px,#e9eef4 8px)}.turni-esito{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:12px}.turni-chips{display:flex;flex-wrap:wrap;gap:6px;min-width:0}.turni-chip{display:inline-flex;align-items:center;gap:6px;flex-wrap:wrap;max-width:100%;border:1px solid #9cc2e5;background:#e0ecf8;color:var(--text);border-radius:8px;padding:4px 8px;font:inherit;font-size:12px;cursor:pointer;text-align:left}.turni-chip:hover{border-color:var(--accent)}.turni-chip .orario{font-weight:700;font-variant-numeric:tabular-nums}.turni-chip .nome{overflow-wrap:anywhere}.turni-chip .ore{color:var(--muted)}.turni-chip.vuoto{background:#fff;border-style:dashed;border-color:#94a3b8}.turni-chip.vuoto .nome{color:var(--muted);font-style:italic}.turni-chip.formazione{background:repeating-linear-gradient(45deg,#eef2ff 0,#eef2ff 6px,#e0e7ff 6px,#e0e7ff 12px);border-color:#a5b4fc}.turni-chip.errore{border-color:var(--crit);box-shadow:inset 3px 0 0 var(--crit)}.turni-chip.avviso{box-shadow:inset 3px 0 0 var(--warn)}.turni-chip .tag.bozza,.turni-pturno .tag.bozza{font-size:10px;text-transform:uppercase;letter-spacing:.03em;color:var(--muted);border:1px solid var(--border);border-radius:4px;padding:0 4px;background:#fff}.turni-grafico{margin:6px 0 4px}.turni-grafico-info{min-height:22px;font-size:13px;margin-bottom:4px}.turni-svg{display:block;width:100%;height:auto}.turni-griglia{stroke:#eef2f7;stroke-width:1}.turni-base{stroke:#cbd5e1;stroke-width:1}.turni-asse{font-size:11px;fill:var(--muted)}.turni-barra rect{fill:#93c5fd}.turni-barra.coperto rect{fill:#4ade80}.turni-barra.scoperto rect{fill:#f87171}.turni-barra.eccedente rect{fill:#fb923c}.turni-barra.fuori rect{fill:#fb923c}.turni-barra.dadef rect{fill:#94a3b8}.turni-barra rect.formazione{fill:#c7d2fe;stroke:#a5b4fc;stroke-width:1}.turni-barra rect.mancante{fill:#fff;fill-opacity:.6;stroke:var(--crit);stroke-width:1.5;stroke-dasharray:3 2}.turni-barra rect.turni-bersaglio{fill:transparent;stroke:none;cursor:pointer}.turni-barra:hover rect.turni-bersaglio{fill:#1e6fa812}.turni-barra.scelta rect.turni-bersaglio{fill:#1e6fa81f;stroke:var(--accent);stroke-width:1}.turni-richiesti{fill:none;stroke:var(--navy);stroke-width:2;pointer-events:none}.turni-fascia-scelta{margin-top:12px;padding:12px;border:1px solid var(--border);border-radius:var(--radius);background:#f8fafc}.turni-fieldset{border:0;padding:0;margin:0;min-width:0}.turni-persona{display:flex;flex-direction:column;gap:4px}.turni-durata{padding:8px 0;font-weight:700;color:var(--navy)}.turni-spunta{display:flex;align-items:flex-start;gap:8px;margin:8px 0;cursor:pointer}.turni-spunta input{width:auto;margin-top:2px}.turni-spunta>span{display:flex;flex-direction:column}.turni-storico{margin-top:12px}.turni-storico summary{cursor:pointer;color:var(--accent)}.turni-storico-elenco{list-style:none;padding:0;margin:8px 0 0}.turni-storico-elenco li{padding:8px 0;border-top:1px solid var(--border);overflow-wrap:anywhere}.turni-storico-prima{color:var(--muted);text-decoration:line-through}.turni-sotto{margin:14px 0 6px;font-size:14px}.turni-modalita{display:flex;flex-direction:column}.turni-fasce{display:flex;flex-direction:column;gap:6px;margin-bottom:8px}.turni-fascia,.turni-aggiungi{display:flex;flex-wrap:wrap;align-items:center;gap:6px}.turni-fascia input[type=time],.turni-aggiungi input[type=time],.turni-fascia select{width:auto}.turni-operatori{width:64px!important}.turni-aggiungi{padding:8px;background:#f8fafc;border-radius:8px}.turni-date{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:8px}.turni-date .pillola{max-width:100%}.turni-eccezione{border:1px solid var(--border);border-radius:8px;padding:10px}.turni-persone.settimana .turni-persone-testa,.turni-persone.settimana .turni-persona-riga,.turni-persone.giorno .turni-persone-testa,.turni-persone.giorno .turni-persona-riga{display:grid;grid-template-columns:minmax(130px,170px) repeat(var(--giorni),minmax(0,1fr)) 76px;gap:4px}.turni-persone-testa{font-size:11px;text-transform:uppercase;color:var(--muted);font-weight:600;padding-bottom:4px}.turni-persone-testa .festivo{color:#94a3b8}.turni-persona-riga{border-top:1px solid var(--border);padding:6px 0;align-items:stretch}.turni-persona-nome{font-size:13px;min-width:0;overflow-wrap:anywhere}.turni-pgiorno{display:flex;flex-direction:column;gap:3px;min-width:0;padding:2px;border-radius:6px}.turni-pgiorno.festivo{background:#f8fafc}.turni-pgiorno.oggi{box-shadow:inset 0 0 0 1px var(--accent)}.turni-pturno,.turni-passenza,.turni-paggiungi{font:inherit;font-size:11px;border-radius:6px;padding:3px 5px;cursor:pointer;text-align:left;border:1px solid #9cc2e5;background:#e0ecf8;color:var(--text);min-width:0;overflow-wrap:anywhere}.turni-pturno{display:flex;flex-wrap:wrap;gap:0 4px}.turni-pturno .orario{font-weight:700;font-variant-numeric:tabular-nums}.turni-pturno .dove{color:var(--muted)}.turni-pturno.altrove{background:#f1f5f9;border-style:dashed;border-color:#94a3b8}.turni-pturno.formazione{background:repeating-linear-gradient(45deg,#eef2ff 0,#eef2ff 6px,#e0e7ff 6px,#e0e7ff 12px);border-color:#a5b4fc}.turni-pturno.errore{border-color:var(--crit);box-shadow:inset 3px 0 0 var(--crit)}.turni-pturno.avviso{box-shadow:inset 3px 0 0 var(--warn)}.turni-passenza{display:inline-block;font-weight:600}.turni-passenza.riposo{background:#e2e8f0;border-color:#94a3b8;color:#334155}.turni-passenza.ferie{background:#ccfbf1;border-color:#5eead4;color:#115e59}.turni-passenza.permesso{background:#ede9fe;border-color:#c4b5fd;color:#5b21b6}.turni-passenza.malattia{background:#fce7f3;border-color:#f9a8d4;color:#9d174d}.turni-passenza.indisponibile{background:#fef9c3;border-color:#fde047;color:#854d0e}.turni-passenza.richiesta{border-style:dashed;background:#fff}.turni-paggiungi{background:none;border:1px dashed transparent;color:#94a3b8;text-align:center}.turni-paggiungi.vuota{border-color:var(--border);font-style:italic}.turni-paggiungi:hover{border-color:var(--accent);color:var(--accent)}.turni-persona-tot{display:flex;flex-direction:column;align-items:flex-end;gap:2px}.turni-ore-sett{font-weight:700;font-size:12px;color:var(--navy);border-radius:6px;padding:2px 6px;background:#f1f5f9;white-space:nowrap}.turni-ore-sett.oltre{background:#fee2e2;color:#991b1b}.turni-ore-sett.oltre:before{content:"▲ "}.turni-settimane{display:flex;flex-wrap:wrap;gap:4px;margin-top:4px}.turni-persone.mese .turni-persona-riga{display:grid;grid-template-columns:minmax(160px,240px) minmax(0,1fr);gap:8px}.turni-pcella{width:30px;height:36px;border-radius:6px;border:1px solid var(--border);background:#fff;font:inherit;padding:0;cursor:pointer;display:flex;flex-direction:column;align-items:center;justify-content:center}.turni-pcella .g{font-size:10px;color:var(--muted)}.turni-pcella .v{font-size:11px;font-weight:700;min-height:13px}.turni-pcella.festivo{background:#f8fafc}.turni-pcella.oggi{box-shadow:0 0 0 2px var(--accent)}.turni-pcella.lavoro{background:#e0ecf8;border-color:#9cc2e5}.turni-pcella.errore{border-color:var(--crit);box-shadow:inset 0 -3px 0 var(--crit)}.turni-pcella.ass.riposo{background:#e2e8f0}.turni-pcella.ass.ferie{background:#ccfbf1}.turni-pcella.ass.permesso{background:#ede9fe}.turni-pcella.ass.malattia{background:#fce7f3}.turni-pcella.ass.indisponibile{background:#fef9c3}.turni-pcella.richiesta{border-style:dashed;border-color:#64748b}.turni-legenda i.ass.riposo{background:#e2e8f0}.turni-legenda i.ass.ferie{background:#ccfbf1}.turni-legenda i.ass.permesso{background:#ede9fe}.turni-legenda i.ass.malattia{background:#fce7f3}.turni-legenda i.ass.indisponibile{background:#fef9c3}.avviso-box.ok{border-color:#86efac;background:#f0fdf4;color:#166534}.turni-legenda i.nonpian{background:#fff;border:1px dashed var(--border)}.turni-legenda i.errore{background:#fff;border-color:var(--crit);box-shadow:inset 3px 0 0 var(--crit)}.turni-pturno .tag{font-size:10px;font-weight:700}.turni-pturno .tag.errore{color:var(--crit)}.turni-pturno .tag.avviso{color:var(--warn)}.tg-box{display:flex;flex-direction:column;gap:10px}.tg-box.intera{position:fixed;top:0;right:0;bottom:0;left:0;z-index:900;background:var(--bg);padding:12px 16px;overflow:hidden}body.tg-bloccata{overflow:hidden}.tg-barra{display:flex;flex-wrap:wrap;gap:8px 16px;align-items:center}.tg-azioni{display:flex;flex-wrap:wrap;gap:8px}.tg-azioni .btn{white-space:nowrap}.tg-legenda{flex:1 1 420px}.turni-legenda i.tg-l{width:18px}.turni-legenda i.tg-l.ok{background:#dcfce7;border-color:#86efac}.turni-legenda i.tg-l.manca{background:#fff;border:1.5px dashed var(--crit)}.turni-legenda i.tg-l.conflitto{background:#ffedd5;border-color:var(--crit);box-shadow:inset 3px 0 0 var(--crit)}.turni-legenda i.tg-l.formazione{background:repeating-linear-gradient(45deg,#eef2ff 0,#eef2ff 3px,#e0e7ff 3px,#e0e7ff 6px);border-color:#a5b4fc}.turni-legenda i.tg-l.bozza{background:#dcfce7;border:1.5px dashed #16a34a}.turni-legenda i.tg-l.vuota{background:#f8fafc;color:#94a3b8}.turni-legenda i.tg-l.riposo{background:#e2e8f0;border-color:#94a3b8}.turni-legenda i.tg-l.ferie{background:#ccfbf1;border-color:#5eead4}.turni-legenda i.tg-l.richiesta{background:#fff;border:1.5px dashed #64748b}.tg-scroll{max-height:calc(100vh - 230px);min-height:320px;overflow-y:auto;overflow-x:hidden;border:1px solid var(--border);border-radius:var(--radius);background:var(--card)}.tg-box.intera .tg-scroll{max-height:none;flex:1;min-height:0}.tg-tabella{width:100%;table-layout:fixed;border-collapse:separate;border-spacing:0}.tg-tabella th,.tg-tabella td{white-space:normal;padding:5px;vertical-align:top;border-bottom:1px solid var(--border);border-right:1px solid #eef2f7;font-size:12px}.tg-tabella thead th{position:sticky;top:0;z-index:3;background:var(--navy);color:#fff;text-align:center;text-transform:none;font-weight:600}.tg-tabella thead th .dow{display:block;font-size:11px;opacity:.85}.tg-tabella thead th .num{display:block;font-size:14px}.tg-tabella thead th.festivo{background:#0b4a7a}.tg-tabella thead th.oggi{box-shadow:inset 0 -3px #fbbf24}.tg-tabella .c1{width:200px}.tg-tabella .c2{width:108px}.tg-tabella thead th.c1,.tg-tabella thead th.c2{text-align:left;z-index:4}.tg-tabella tbody th.c1,.tg-tabella tbody th.c2{position:sticky;z-index:2;background:#f8fafc;text-align:left;font-weight:400;color:var(--text);text-transform:none;letter-spacing:normal}.tg-tabella th.c1{left:0}.tg-tabella th.c2{left:200px}.tg-tabella thead th.c1,.tg-tabella thead th.c2{position:sticky}.tg-tabella tbody.tg-blocco tr:last-child>*{border-bottom:2px solid #cbd5e1}.tg-tabella td.festivo{background:#fafbfd}.tg-tabella td.oggi{background:#fffbeb}.tg-servizio{display:flex;flex-direction:column;gap:3px;min-width:0;overflow-wrap:anywhere}.tg-servizio-nome{background:none;border:0;padding:0;font:inherit;font-size:13px;font-weight:700;color:var(--accent);cursor:pointer;text-align:left}.tg-servizio-nome:hover{text-decoration:underline}.tg-badge-riga{display:flex;flex-wrap:wrap;gap:4px;margin-top:2px}.tg-pubbl{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.03em;border-radius:4px;padding:1px 5px;border:1px dashed #94a3b8;color:#475569;background:#fff}.tg-pubbl.si{border:1px solid #86efac;background:#f0fdf4;color:#166534}.tg-fascia{display:flex;flex-direction:column;gap:1px}.tg-fascia .e{font-weight:700;font-size:12px}.tg-fascia .h{font-variant-numeric:tabular-nums;font-size:12px}.tg-fascia .piu1{color:#7c3aed;font-weight:700}.tg-fascia .x{font-size:10px;color:var(--muted)}.tg-cella{display:flex;flex-direction:column;gap:3px}.tg-nome{display:flex;flex-direction:column;align-items:flex-start;gap:0;width:100%;text-align:left;font:inherit;font-size:12px;line-height:1.25;padding:4px 6px;border-radius:6px;cursor:pointer;border:1px solid #86efac;background:#dcfce7;color:#14532d;overflow-wrap:break-word;min-width:0}.tg-nome:hover{filter:brightness(.96);outline:1px solid var(--accent)}.tg-nome .n{font-weight:600}.tg-nome .o{font-size:11px;font-variant-numeric:tabular-nums;opacity:.85}.tg-nome .d{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.03em}.tg-nome.bozza{border-style:dashed}.tg-nome.manca{background:#fff;border:1.5px dashed var(--crit);color:#991b1b}.tg-nome.manca .n{font-style:italic}.tg-nome.conflitto{background:#ffedd5;border-color:var(--crit);color:#7c2d12;box-shadow:inset 3px 0 0 var(--crit)}.tg-nome.verifica{background:#fef9c3;border-color:#facc15;color:#713f12}.tg-nome.formazione{background:repeating-linear-gradient(45deg,#eef2ff 0,#eef2ff 6px,#e0e7ff 6px,#e0e7ff 12px);border-color:#a5b4fc;color:#312e81}.tg-vuota{width:100%;min-height:30px;display:flex;align-items:center;justify-content:center;gap:6px;background:none;border:1px dashed transparent;border-radius:6px;color:#94a3b8;font:inherit;font-size:12px;cursor:pointer}.tg-vuota .piu{display:none}.tg-vuota:hover{border-color:var(--accent);color:var(--accent)}.tg-vuota:hover .piu{display:inline}.tg-vuota.dadef{background:repeating-linear-gradient(135deg,#f8fafc 0,#f8fafc 4px,#eef2f7 4px,#eef2f7 8px);font-style:italic}.tg-riga-riposi td,.tg-riga-riposi th{background:#f8fafc}.tg-riposi{display:flex;flex-direction:column;gap:2px}.tg-ass{font-size:11px;border-radius:5px;padding:1px 5px;border:1px solid #94a3b8;background:#e2e8f0;color:#334155;overflow-wrap:anywhere}.tg-ass em{font-style:normal;font-weight:700}.tg-ass.ferie{background:#ccfbf1;border-color:#5eead4;color:#115e59}.tg-ass.permesso{background:#ede9fe;border-color:#c4b5fd;color:#5b21b6}.tg-ass.malattia{background:#fce7f3;border-color:#f9a8d4;color:#9d174d}.tg-ass.indisponibile{background:#fef9c3;border-color:#fde047;color:#854d0e}.tg-ass.richiesta{background:#fff;border-style:dashed}.tg-schede{display:none}.tg-riepilogo{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.tg-riepilogo .card{margin:0;min-width:0}.tg-riepilogo h3{margin:0 0 8px;font-size:15px}.tg-ore td,.tg-ore th{white-space:normal;padding:6px}.tg-ore .num{text-align:right}.tg-rie-servizio{padding:6px 0;border-top:1px solid var(--border)}.tg-rie-voci{display:flex;flex-wrap:wrap;gap:4px;margin-top:4px}.tg-rie-voci .tg-nome{width:auto}.tg-conflitti{list-style:none;padding:0;margin:0}.tg-conflitti li{padding:6px 0;border-top:1px solid var(--border);overflow-wrap:anywhere}.tg-conflitti .tg-nome{width:auto;flex-direction:row;gap:8px;align-items:baseline}.tg-posto{display:flex;flex-direction:column;gap:2px;padding:10px 12px;border-radius:8px;background:#f1f5f9;margin-bottom:10px}.tg-cerca-persona{display:flex;flex-wrap:wrap;gap:8px 14px;align-items:center;margin-bottom:8px}.tg-cerca-persona input[type=text],.tg-cerca-persona>input{flex:1 1 220px}.tg-persone{display:flex;flex-direction:column;gap:4px;max-height:46vh;overflow-y:auto}.tg-persona{display:flex;flex-wrap:wrap;justify-content:space-between;gap:4px 10px;text-align:left;font:inherit;font-size:13px;padding:7px 10px;border-radius:8px;border:1px solid var(--border);background:#fff;cursor:pointer}.tg-persona:hover{border-color:var(--accent)}.tg-persona.scelta{border:2px solid var(--accent);background:#eff6ff}.tg-persona .n{font-weight:600}.tg-persona .s{display:flex;flex-wrap:wrap;gap:4px;align-items:center;font-size:11px}.tg-persona .tag{border-radius:4px;padding:1px 5px;border:1px solid var(--border);background:#f8fafc}.tg-persona .tag.libero{border-color:#86efac;background:#f0fdf4;color:#166534}.tg-persona .tag.conflitto{border-color:#fca5a5;background:#fef2f2;color:#991b1b}.tg-persona .tag.assente{border-color:#fde047;background:#fefce8;color:#854d0e}.tg-persona .ore{color:var(--muted)}.tg-persona .ore.oltre{color:var(--crit);font-weight:700}.tg-persona.occupata .n,.tg-persona.assente .n{color:#64748b}.tg-pubblica .num{text-align:right}@media(max-width:1280px){.tg-riepilogo{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.tg-riepilogo .card:first-child{grid-column:1 / -1}.tg-tabella .c1{width:150px}.tg-tabella th.c2{left:150px}.tg-tabella .c2{width:92px}.tg-tabella th,.tg-tabella td{padding:4px 3px}.tg-nome{font-size:11px;padding:3px 4px}}@media(max-width:900px){.tg-tabella{display:none}.tg-schede{display:flex;flex-direction:column;gap:12px;padding:8px}.tg-scroll{max-height:none;min-height:0;border:0;background:none;overflow:visible}.tg-box.intera .tg-scroll{overflow-y:auto}.tg-scheda{border:1px solid var(--border);border-radius:var(--radius);background:var(--card);padding:10px}.tg-scheda-giorno{border-top:1px solid var(--border);padding:6px 0;display:flex;flex-direction:column;gap:4px}.tg-scheda-giorno.festivo{background:#fafbfd}.tg-scheda-data{font-weight:700;font-size:13px;text-transform:capitalize}.tg-scheda-fascia{display:grid;grid-template-columns:100px minmax(0,1fr);gap:8px;align-items:start}.tg-riepilogo{grid-template-columns:minmax(0,1fr)}.tg-vuota .piu{display:inline}}.timbra-turni{display:flex;flex-direction:column;gap:8px}.timbra-turno{display:flex;flex-direction:column;align-items:flex-start;gap:2px;text-align:left;font:inherit;padding:12px 14px;border-radius:10px;border:1px solid var(--border);background:#fff;cursor:pointer;overflow-wrap:anywhere}.timbra-turno strong{font-size:17px;font-variant-numeric:tabular-nums}.timbra-turno.scelto{border:2px solid var(--accent);background:#eff6ff}.timbra-sett-naviga{display:flex;align-items:center;justify-content:center;gap:12px;margin-bottom:8px}.timbra-settimana{list-style:none;margin:0;padding:0}.timbra-settimana li{padding:8px 6px;border-top:1px solid var(--border);display:flex;flex-direction:column;gap:4px}.timbra-settimana li.oggi{background:#eff6ff;border-radius:8px;border-top-color:transparent}.timbra-settimana li.passato{opacity:.6}.timbra-settimana .turno{display:flex;flex-direction:column;padding-left:8px;border-left:3px solid var(--accent);overflow-wrap:anywhere}.timbra-settimana .assenza{padding-left:8px;border-left:3px solid #94a3b8;font-weight:600;color:#334155}.vedi-come-barra{position:sticky;top:0;z-index:950;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px 16px;padding:8px 16px;background:#7c2d12;color:#fff;font-size:14px}.vedi-come-barra .btn{background:#fff;color:#7c2d12;white-space:nowrap}.turni-assenze{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,340px),1fr));gap:12px}.turni-assenze .card+.card{margin-top:0}.turni-assenza{display:flex;flex-direction:column;gap:6px}.turni-assenza-testa{display:flex;flex-wrap:wrap;gap:6px 10px;align-items:center}@media(max-width:900px){.turni-commessa{grid-template-columns:minmax(0,1fr)}.turni-riga{grid-template-columns:64px minmax(0,1fr)}.turni-riga-tot{grid-column:2}.turni-persone-testa{display:none!important}.turni-persone.settimana .turni-persona-riga,.turni-persone.giorno .turni-persona-riga{grid-template-columns:repeat(2,minmax(0,1fr))}.turni-persone.mese .turni-persona-riga{grid-template-columns:minmax(0,1fr)}.turni-persona-nome{grid-column:1 / -1;font-size:14px}.turni-pgiorno{border:1px solid var(--border);padding:4px}.turni-pgiorno:before{content:attr(data-l);font-size:11px;font-weight:600;color:var(--muted);text-transform:uppercase}.turni-persona-tot{grid-column:1 / -1;flex-direction:row;justify-content:flex-start;align-items:center}.turni-persona-tot:before{content:attr(data-l) ": ";font-size:12px;color:var(--muted)}.turni-naviga strong{min-width:0}}@media(max-width:520px){.turni-stats{grid-template-columns:1fr 1fr;gap:8px}.turni-stats .stat .num{font-size:20px}}.turni-import .card+.card{margin-top:14px}.turni-import-file{display:flex;flex-wrap:wrap;gap:10px;align-items:center}.turni-import-file input[type=file]{width:auto;max-width:100%}.turni-anno{width:90px!important}.turni-import-foglio{border-top:1px solid var(--border);padding:10px 0;display:grid;gap:6px;grid-template-columns:minmax(220px,1fr) minmax(240px,1.2fr);align-items:start}.turni-import-foglio>:nth-child(n+3){grid-column:1 / -1}.turni-import-foglio.escluso>label strong{color:var(--muted)}.turni-import-commessa{display:flex;flex-direction:column;gap:4px;align-items:flex-start;min-width:0}.turni-import-commessa .scelta-commessa{width:100%}.turni-import-conti{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.turni-import-note{margin:0;padding-left:18px;font-size:12px;color:var(--muted)}.turni-import-note li.crit{color:var(--crit)}.turni-import-turni{max-height:360px;overflow-y:auto;border:1px solid var(--border);border-radius:8px;padding:6px}.turni-import-turno{display:flex;flex-wrap:wrap;gap:4px 10px;align-items:center;font-size:12px;padding:3px 0;border-bottom:1px solid #f1f5f9}.turni-import-turno input{width:auto}.turni-import-turno .g{width:70px;color:var(--muted)}.turni-import-turno .o{font-weight:700;font-variant-numeric:tabular-nums}.turni-import-turno .n{min-width:120px}.turni-import-turno.escluso{opacity:.45}.turni-import-nomi{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,420px),1fr));gap:6px 16px}.turni-import-nome{display:grid;grid-template-columns:minmax(110px,150px) auto minmax(0,1fr);gap:8px;align-items:center;padding:4px 0;border-bottom:1px solid #f1f5f9}.turni-import-nome strong{overflow-wrap:anywhere;font-size:13px}.turni-import-dadecidere{border-color:var(--warn)!important;background:#fffbeb}.turni-import-periodi{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,420px),1fr));gap:4px 16px}.turni-import-periodo{display:flex;flex-wrap:wrap;gap:4px 10px;align-items:center;font-size:13px;padding:4px 0;border-bottom:1px solid #f1f5f9}.turni-import-periodo input[type=checkbox],.turni-import-periodo select{width:auto}.turni-import-periodo.escluso{opacity:.5}.turni-import-conferma{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;position:sticky;bottom:0;z-index:4;border-color:var(--navy)}@media(max-width:900px){.turni-import-foglio{grid-template-columns:minmax(0,1fr)}.turni-import-nome{grid-template-columns:minmax(0,1fr) auto}.turni-import-nome select{grid-column:1 / -1}}.card.dafare{border-left:5px solid var(--warn);margin-bottom:16px}.dafare h2{margin:0 0 8px;font-size:16px}.dafare-voce{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px 14px;padding:8px 0;border-top:1px solid var(--border)}.dafare-testo{flex:1 1 260px;min-width:0;overflow-wrap:anywhere}.dafare-trovate{margin-top:8px}tr.riga-evidenziata td{background:#fffbeb}.costi-previsti{display:flex;flex-direction:column;gap:8px;margin-bottom:10px}.riga-costo{display:grid;gap:0 10px;align-items:end;grid-template-columns:150px 130px minmax(160px,1fr) minmax(200px,1.2fr) 120px;padding:8px 10px;border:1px solid var(--border);border-radius:8px}.riga-costo:has(>.field:nth-of-type(6)){grid-template-columns:150px 130px minmax(160px,1fr) 90px 110px 120px}.riga-costo .field{margin-bottom:6px;min-width:0}.riga-costo-azioni{grid-column:1 / -1;display:flex;gap:6px;flex-wrap:wrap;align-items:center;justify-content:flex-end}.riga-costo-azioni:empty{display:none}@media(max-width:900px){.riga-costo,.riga-costo:has(>.field:nth-of-type(6)){grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.riga-costo>.field:nth-of-type(3){grid-column:1 / -1}}.tabella-budget td.num,.tabella-budget th.num{text-align:right;white-space:nowrap}.tabella-budget .riga-totale td{border-top:2px solid var(--border);font-weight:600}@media(max-width:900px){.tabella-budget thead{display:none}.tabella-budget,.tabella-budget tbody,.tabella-budget tr,.tabella-budget td{display:block}.tabella-budget tr{border:1px solid var(--border);border-radius:8px;padding:8px 10px;margin-bottom:8px}.tabella-budget td{border:0;padding:2px 0}.tabella-budget td.num{display:flex;justify-content:space-between;gap:10px;white-space:normal;text-align:right}.tabella-budget td.num:before{content:attr(data-etichetta);color:var(--muted);text-align:left;font-weight:400}.tabella-budget .riga-totale td{border-top:0}}.cartella{margin:0 0 10px}.cartella.liv-1,.cartella.liv-2{margin-left:18px}.cartella-titolo{font-weight:600;color:var(--navy);margin:8px 0 4px;display:flex;align-items:center;flex-wrap:wrap;gap:4px}.cartella .elenco-documenti{margin-left:22px}.doc-riga{display:flex;gap:10px;align-items:flex-start;justify-content:space-between;flex-wrap:wrap;padding:4px 0}.doc-testo{min-width:0;flex:1 1 260px;overflow-wrap:anywhere}.doc-azioni{flex-wrap:wrap}.doc-storico{margin:4px 0 4px 14px}@media(max-width:900px){.cartella.liv-1,.cartella.liv-2{margin-left:10px}.cartella .elenco-documenti{margin-left:8px}}.cartella .elenco-documenti li{display:block}.cartella .elenco-documenti li a{flex:none;min-width:0}.doc-storico li{border-bottom:0;padding:2px 0}.azioni-errore{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}@media(min-width:1280px){table.schema-appalti td:first-child{width:300px;max-width:300px;white-space:normal}table.schema-appalti td{vertical-align:top}}.tb-scroll{display:flex;flex-direction:column;gap:14px}.tb-box.intera .tb-scroll{flex:1;min-height:0;overflow-y:auto}.tb-servizio{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:10px 12px}.tb-testa{display:flex;flex-wrap:wrap;gap:6px 16px;align-items:center;justify-content:space-between;margin-bottom:8px}.tb-testa h3{margin:0}.tb-totali{display:flex;flex-wrap:wrap;gap:4px 12px;align-items:center;font-size:13px}.tb-cerca{max-width:220px}.tb-tabella,.tb-persone{width:100%;table-layout:fixed;border-collapse:separate;border-spacing:0;font-size:12.5px}.tb-tabella th,.tb-tabella td,.tb-persone th,.tb-persone td{border-bottom:1px solid var(--border);border-right:1px solid var(--border);padding:3px 4px;vertical-align:middle;overflow-wrap:anywhere}.tb-tabella thead th,.tb-persone thead th{position:sticky;top:0;z-index:3;background:#1f3864;color:#fff;font-size:11.5px;font-weight:600;text-align:center}.tb-tabella th.g{width:62px;text-align:left}.tb-tabella tbody th.g{background:#f8fafc;font-weight:700;white-space:nowrap}.tb-tabella th.n{width:62px;text-align:right}.tb-tabella td.n{text-align:right}.tb-tabella tr.domenica th.g{background:#fde2d3;color:#b42318}.tb-tabella tr.festivo th.g{background:#f8c7a8;color:#b42318}.tb-tabella tr.domenica td,.tb-tabella tr.festivo td{background:#fff7f2}.tb-tabella tr.oggi th.g{box-shadow:inset 3px 0 #2563eb}.tb-sub{font-size:10.5px;color:var(--muted);white-space:nowrap}.tb-anom{color:var(--crit)}.tb-slot{display:grid;grid-template-columns:auto 1fr auto;gap:2px 6px;align-items:center;width:100%;text-align:left;border:1px solid #86efac;background:#dcfce7;border-radius:5px;padding:2px 5px;font:inherit;cursor:pointer;color:inherit}.tb-slot:disabled{cursor:default}.tb-slot .o{font-size:10.5px;color:#475569;white-space:nowrap}.tb-slot .n{font-weight:600;min-width:0}.tb-slot .h{font-size:11px;font-weight:600}.tb-slot.bozza{border:1px dashed #16a34a}.tb-slot.manca{background:#fff;border:1.5px dashed var(--crit);color:var(--crit)}.tb-slot.conflitto{background:#ffedd5;border-color:var(--crit);box-shadow:inset 3px 0 0 var(--crit)}.tb-slot.formazione{background:repeating-linear-gradient(45deg,#eef2ff 0,#eef2ff 3px,#e0e7ff 3px,#e0e7ff 6px);border-color:#a5b4fc}.tb-piu{width:100%;background:none;border:1px dashed transparent;color:#94a3b8;cursor:pointer;border-radius:5px}.tb-piu:hover{border-color:#94a3b8}.tb-ass{display:inline-block;border-radius:4px;padding:0 4px;margin:1px 2px 1px 0;font-size:11.5px}.tb-ass.riposo{background:#a9d08e}.tb-ass.ferie{background:#548235;color:#fff}.tb-ass.malattia{background:#ff7c80}.tb-ass.infortunio{background:#c65911;color:#fff}.tb-ass.permesso{background:#ffe699}.tb-ass.altra{background:#d9d9d9}.tb-ass.richiesta{background:#fff;color:inherit;border:1.5px dashed #64748b}.tb-nota{background:none;border:0;padding:0;cursor:pointer;color:#94a3b8;font:inherit;font-size:11.5px;text-align:left}.tb-nota.piena{background:#ffc000;color:#1f2937;border-radius:4px;padding:0 4px}.tb-nota-testo{font-size:11.5px}.tb-festa{font-size:10.5px;color:#b42318;font-weight:600}.tb-schede{display:none}.tb-scheda{border:1px solid var(--border);border-radius:6px;padding:6px 8px;margin-bottom:6px;display:flex;flex-direction:column;gap:4px}.tb-scheda.domenica{background:#fff7f2}.tb-scheda.festivo{background:#fde2d3}.tb-scheda-t{display:flex;justify-content:space-between;flex-wrap:wrap;gap:4px}.tb-persone .p{width:190px;text-align:left}.tb-persone th.n,.tb-persone td.n{text-align:center}.tb-persone thead th.domenica{background:#9c2a1a}.tb-persone tbody th.p{background:#f8fafc;font-weight:600}.tb-pc{display:inline-flex;flex-wrap:wrap;gap:2px;justify-content:center}.tb-pc.conflitto strong{color:var(--crit)}.tb-sigla{font-size:10.5px;border-radius:3px;padding:0 3px;background:#e2e8f0}.tb-sigla.riposo{background:#a9d08e}.tb-sigla.ferie{background:#548235;color:#fff}.tb-sigla.malattia{background:#ff7c80}.tb-sigla.infortunio{background:#c65911;color:#fff}.tb-sigla.permesso{background:#ffe699}.tb-sigla.form{background:#e0e7ff}.tb-sigla.ciclo{background:none;border:1px dashed #94a3b8;color:#64748b}.tb-sotto{color:#b45309}.turni-legenda i.tb-l{width:18px}.turni-legenda i.tb-l.ok{background:#dcfce7;border-color:#86efac}.turni-legenda i.tb-l.bozza{background:#dcfce7;border:1.5px dashed #16a34a}.turni-legenda i.tb-l.manca{background:#fff;border:1.5px dashed var(--crit)}.turni-legenda i.tb-l.conflitto{background:#ffedd5;border-color:var(--crit)}.turni-legenda i.tb-l.formazione{background:#e0e7ff}.turni-legenda i.tb-l.domenica{background:#fde2d3}.turni-legenda i.tb-l.festivo{background:#f8c7a8}.turni-legenda i.tb-l.riposo{background:#a9d08e}.turni-legenda i.tb-l.ferie{background:#548235}.turni-legenda i.tb-l.malattia{background:#ff7c80}.turni-legenda i.tb-l.infortunio{background:#c65911}.turni-legenda i.tb-l.permesso{background:#ffe699}.tb-stampa-titolo{display:none}@media(max-width:1000px){.tb-tabella{display:none}.tb-schede{display:block}.tb-persone,.tb-persone tbody,.tb-persone tr,.tb-persone td,.tb-persone tbody th{display:block;width:100%;border:0}.tb-persone thead{display:none}.tb-persone tr{border:1px solid var(--border);border-radius:6px;margin-bottom:6px;padding:4px 8px}.tb-persone td{display:flex;justify-content:space-between;gap:8px;text-align:right;padding:1px 0}.tb-persone td:before{content:attr(data-l);color:var(--muted);font-size:12px}.tb-persone td:empty{display:none}}@media print{@page{size:A4 landscape;margin:8mm}.sidebar,.topbar,.tabs,.turni-filtri,.tb-non-stampa,.tb-piu,.tb-cerca{display:none!important}.tb-stampa-titolo{display:block;font-weight:700}.tb-box.intera{position:static}.tb-servizio{break-inside:avoid;border:0;padding:0}.tb-tabella thead th,.tb-persone thead th{position:static}.tb-slot,.tb-ass,.tb-sigla,.tb-tabella th,.tb-tabella td,.tb-persone th{-webkit-print-color-adjust:exact;print-color-adjust:exact}}.tc-diff{margin:6px 0;padding-left:18px;font-size:13px}.tc-diff li.nuovo{color:#166534}.tc-diff li.cancellato{color:var(--crit)}.tc-diff li.modificato{color:#b45309}.tc-turni{list-style:none;margin:6px 0;padding:0;font-size:13px}.tc-turni li{padding:4px 0;border-bottom:1px solid var(--border)}.tc-versione{border-bottom:1px solid var(--border);padding:8px 0}.tc-controllo summary{cursor:pointer;font-weight:600;margin-top:6px}.tc-controllo ul{margin:4px 0 0;padding-left:18px;font-size:13px}.tc-box-allarme{border:2px solid var(--crit);background:#fef2f2}.tc-elenco{margin:0;padding-left:18px}.mq-controllo{border:2px solid var(--crit);background:#fef2f2}.mq-programma{border:2px solid #f59e0b}.mq-grande{width:100%;min-height:48px;margin-top:8px;font-size:16px}.mq-avviso{margin-bottom:10px}.tb-tabella thead th,.tb-persone thead th{white-space:normal;overflow-wrap:normal}.tg-ore .turni-ore-sett{white-space:normal}.tg-ore td.num{overflow-wrap:anywhere}.tb-tabella td,.tb-tabella th,.tb-persone td,.tb-persone th,.tb-slot{white-space:normal}@media print{body,.main,.content{background:#fff!important}.tb-nota:not(.piena),.tb-totali .btn{display:none!important}}.import-fattura{border:1px solid var(--border);border-radius:10px;padding:12px;margin-bottom:12px}.import-fattura.esclusa{background:#f7f9fc}.import-fattura-testa{display:flex;flex-wrap:wrap;align-items:center;gap:6px 12px;margin-bottom:6px}.import-fattura .avviso-box{margin:6px 0}.import-fattura-mancanze{margin:8px 0 0;padding-left:18px;font-size:13px;color:#b45309}
