:root{--blu: #1E3A5F;--blu-2: #2D4F7C;--blu-chiaro: #E3F2FD;--accent: #1565C0;--verde: #2E7D32;--rosso: #C62828;--arancio: #E65100;--giallo: #F9A825;--viola: #6A1B9A;--grigio-1: #F5F7FA;--grigio-2: #ECEFF1;--grigio-3: #CFD8DC;--grigio-4: #90A4AE;--testo: #263238;--testo-2: #546E7A;--raggio: 8px;--ombra: 0 1px 3px rgba(0,0,0,.08), 0 4px 14px rgba(0,0,0,.04);font-family:Inter,Segoe UI,system-ui,-apple-system,sans-serif;font-size:14px;color:var(--testo)}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%;text-size-adjust:100%}html,body,#root{margin:0;min-height:100%;background:var(--grigio-1)}img,svg,video{max-width:100%}body{overflow-x:hidden}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}h1,h2,h3,h4{margin:0 0 8px;font-weight:700}h2{font-size:18px}h3{font-size:15px;text-transform:uppercase;letter-spacing:.3px;color:var(--testo-2)}button,input,select,textarea{font:inherit}input,select,textarea{border:1px solid var(--grigio-3);border-radius:6px;padding:7px 10px;background:#fff;color:var(--testo);width:100%}input:focus,select:focus,textarea:focus{outline:2px solid rgba(21,101,192,.35);border-color:var(--accent)}input[readonly],input:disabled,select:disabled,textarea:disabled{background:var(--grigio-2);color:var(--testo-2)}label.field{display:flex;flex-direction:column;gap:4px;font-size:12px;font-weight:600;color:var(--testo-2)}label.field>span.req:after{content:" *";color:var(--rosso)}.btn{display:inline-flex;align-items:center;gap:6px;border:1px solid transparent;border-radius:6px;padding:7px 14px;font-weight:600;cursor:pointer;background:var(--accent);color:#fff;line-height:1.2;white-space:nowrap}.btn:hover{filter:brightness(1.08)}.btn:disabled{opacity:.5;cursor:not-allowed;filter:none}.btn.secondary{background:#fff;color:var(--testo);border-color:var(--grigio-3)}.btn.ghost{background:transparent;color:var(--accent)}.btn.success{background:var(--verde)}.btn.danger{background:var(--rosso)}.btn.warn{background:var(--arancio)}.btn.purple{background:var(--viola)}.btn.sm{padding:4px 9px;font-size:12px}.btn.xs{padding:2px 7px;font-size:11px;border-radius:4px}.header{background:var(--blu);color:#fff;padding:14px 28px;display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap}.header h1{font-size:20px;margin:0}.header .sub{font-size:12px;opacity:.8}.hstats{display:flex;gap:22px;font-size:13px}.hstats b{font-size:15px}.navbar{background:var(--blu-2);color:#fff;padding:8px 28px;display:flex;align-items:center;gap:14px;flex-wrap:wrap;font-size:12px}.navbar select{width:auto;max-width:100%;background:var(--blu);color:#fff;border-color:#4a72a8;padding:5px 10px;font-size:12px}.topfisso{position:sticky;top:0;z-index:30;box-shadow:0 2px 6px #0000001f}.tabs{display:flex;gap:2px;padding:0 28px;background:#fff;border-bottom:1px solid var(--grigio-3);flex-wrap:wrap}.tabs a{padding:10px 12px;color:var(--testo-2);font-weight:600;border-bottom:3px solid transparent;white-space:nowrap}.tabs a:hover{text-decoration:none;color:var(--accent)}.tabs a.active{color:var(--accent);border-color:var(--accent)}.content{padding:20px 28px 60px;max-width:1600px;margin:0 auto}.card{background:#fff;border-radius:var(--raggio);box-shadow:var(--ombra);padding:16px 18px;margin-bottom:16px}.card.flat{box-shadow:none;border:1px solid var(--grigio-2)}.kpi-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(170px,100%),1fr));gap:12px;margin-bottom:16px}.kpi{background:#fff;border-radius:var(--raggio);box-shadow:var(--ombra);padding:12px 14px;border-left:4px solid var(--accent);cursor:default}.kpi.click{cursor:pointer}.kpi.active{outline:2px solid var(--accent)}.kpi .v{font-size:22px;font-weight:800;line-height:1.1}.kpi .l{font-size:11px;text-transform:uppercase;color:var(--testo-2);font-weight:600;letter-spacing:.3px}.kpi .s{font-size:11px;color:var(--testo-2);margin-top:3px}.grid2{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(340px,100%),1fr));gap:16px}.grid3{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(280px,100%),1fr));gap:16px}.row{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.row.between{justify-content:space-between}.grow{flex:1}.filter-bar{display:flex;gap:8px;align-items:end;flex-wrap:wrap;margin-bottom:12px}.filter-bar label.field{min-width:140px}.filter-bar input,.filter-bar select{padding:6px 8px;font-size:13px}table.tbl{width:100%;border-collapse:collapse;font-size:13px}table.tbl th{text-align:left;background:var(--grigio-1);color:var(--testo-2);font-size:11px;text-transform:uppercase;letter-spacing:.3px;padding:8px 10px;border-bottom:2px solid var(--grigio-2);white-space:nowrap;position:sticky;top:0}table.tbl th.sortable{cursor:pointer}table.tbl th.sortable:hover{color:var(--accent)}table.tbl td{padding:8px 10px;border-bottom:1px solid var(--grigio-2);vertical-align:middle}table.tbl tr.click{cursor:pointer}table.tbl tr.click:hover td{background:#f8faff}table.tbl td.num,table.tbl th.num{text-align:right;font-variant-numeric:tabular-nums}table.tbl tr.sec td{background:var(--grigio-2);font-weight:700;cursor:pointer}table.tbl tr.child td{background:#f0f8ff}table.tbl tfoot td{font-weight:700;background:var(--grigio-1)}.badge{display:inline-block;padding:2px 9px;border-radius:10px;font-size:11px;font-weight:700;white-space:nowrap;line-height:1.5}.badge.outline{background:transparent!important;border:1px solid currentColor}.chip{display:inline-block;padding:2px 8px;border-radius:4px;font-size:11px;background:var(--grigio-2);color:var(--testo-2);font-weight:600}.mono{font-family:Consolas,Courier New,monospace}.muted{color:var(--testo-2)}.small{font-size:12px}.right{text-align:right}.center{text-align:center}.bold{font-weight:700}.prog{height:8px;background:var(--grigio-2);border-radius:4px;overflow:hidden;min-width:60px}.prog>div{height:100%;background:var(--accent)}.modal-bg{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;z-index:100;display:flex;align-items:center;justify-content:center;padding:16px}.modal{background:#fff;border-radius:10px;width:100%;max-width:720px;max-height:92vh;display:flex;flex-direction:column;box-shadow:0 10px 40px #0000004d}.modal.lg{max-width:1100px}.modal.xl{max-width:1400px}.modal>header{padding:14px 18px;border-bottom:1px solid var(--grigio-2);display:flex;justify-content:space-between;align-items:center;gap:12px}.modal>header h2{margin:0;font-size:16px}.modal>.body{padding:16px 18px;overflow:auto}.modal>footer{padding:12px 18px;border-top:1px solid var(--grigio-2);display:flex;justify-content:flex-end;gap:8px}.toast-cont{position:fixed;right:16px;bottom:16px;z-index:200;display:flex;flex-direction:column;gap:8px;max-width:420px}.toast{padding:10px 14px;border-radius:6px;color:#fff;background:var(--accent);box-shadow:var(--ombra);font-size:13px}.toast.success{background:var(--verde)}.toast.error{background:var(--rosso)}.toast.warning{background:var(--arancio)}.alert{padding:10px 12px;border-radius:6px;font-size:13px;margin-bottom:10px;border:1px solid}.alert.info{background:var(--blu-chiaro);border-color:#90caf9;color:#0d47a1}.alert.warn{background:#fff8e1;border-color:#ffe082;color:#8b5e00}.alert.error{background:#ffebee;border-color:#ef9a9a;color:#b71c1c}.alert.ok{background:#e8f5e9;border-color:#a5d6a7;color:#1b5e20}.form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(240px,100%),1fr));gap:12px}.form-grid .full{grid-column:1 / -1}.subtabs{display:flex;gap:4px;border-bottom:1px solid var(--grigio-2);margin-bottom:14px;flex-wrap:wrap}.subtabs button{background:none;border:none;border-bottom:3px solid transparent;padding:8px 12px;font-weight:600;color:var(--testo-2);cursor:pointer}.subtabs button.active{color:var(--accent);border-color:var(--accent)}.kanban{display:flex;gap:12px;overflow-x:auto;padding-bottom:8px}.kanban .col{min-width:280px;flex:1;background:var(--grigio-1);border-radius:8px;padding:10px;border-top:4px solid var(--accent)}.kanban .colh{font-weight:700;margin-bottom:8px;display:flex;justify-content:space-between}.kcard{background:#fff;border-radius:6px;padding:10px;margin-bottom:8px;box-shadow:var(--ombra);cursor:pointer}.kcard:hover{outline:2px solid var(--accent)}.schede{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(280px,100%),1fr));gap:12px}.timeline{list-style:none;margin:0;padding:0 0 0 18px;border-left:2px solid var(--grigio-3)}.timeline li{position:relative;padding:0 0 14px 14px}.timeline li:before{content:"";position:absolute;left:-24px;top:4px;width:10px;height:10px;border-radius:50%;background:var(--accent);border:2px solid #fff;box-shadow:0 0 0 1px var(--grigio-3)}.wfbar{display:flex;align-items:center;gap:0;flex-wrap:wrap;margin:8px 0 14px}.wfbar .pill{padding:6px 12px;border-radius:14px;font-size:12px;font-weight:700;border:2px solid var(--grigio-3);background:#fff;color:var(--testo-2)}.wfbar .pill.done{background:#e8f5e9;border-color:#a5d6a7;color:#1b5e20}.wfbar .pill.cur{background:var(--accent);border-color:var(--accent);color:#fff}.wfbar .conn{width:18px;height:2px;background:var(--grigio-3)}.login{min-height:100vh;display:grid;place-items:center;background:linear-gradient(135deg,var(--blu),#0D47A1)}.login .card{width:min(380px,calc(100vw - 32px));padding:28px}.login h1{font-size:22px;color:var(--blu)}.gantt{overflow-x:auto}.gantt .grow-row{display:grid;grid-template-columns:300px 1fr 170px;align-items:center;border-bottom:1px solid var(--grigio-2);min-height:34px;font-size:12px}.gantt .track{position:relative;height:26px;background:repeating-linear-gradient(90deg,transparent 0,transparent calc(100%/12 - 1px),var(--grigio-2) calc(100%/12 - 1px),var(--grigio-2) calc(100%/12))}.gantt .bar{position:absolute;top:6px;height:14px;border-radius:7px}.gantt .bar .sal{position:absolute;top:0;right:0;bottom:0;left:0;background:#fff6;border-radius:7px}.gantt .ms{position:absolute;top:7px;width:12px;height:12px;transform:translate(-6px)}.gantt .today{position:absolute;top:0;bottom:0;width:0;border-left:2px dashed rgba(198,40,40,.6)}.spinner{display:inline-block;width:18px;height:18px;border:3px solid var(--grigio-3);border-top-color:var(--accent);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.notif-dot{background:var(--rosso);color:#fff;border-radius:10px;font-size:10px;padding:1px 6px;margin-left:4px}pre.mail{background:var(--grigio-1);border:1px solid var(--grigio-2);border-radius:6px;padding:10px;white-space:pre-wrap;font-size:12px;max-height:260px;overflow:auto}details.sec{border:1px solid var(--grigio-2);border-radius:6px;padding:8px 12px;margin-bottom:8px}details.sec summary{cursor:pointer;font-weight:700}.checklist-row{display:grid;grid-template-columns:150px 1fr 220px;gap:8px;align-items:center;padding:4px 0;border-bottom:1px dashed var(--grigio-2)}@media(min-width:1700px){.content{max-width:1900px}}@media(max-width:1100px){.hstats{gap:14px}.modal.xl,.modal.lg{max-width:96vw}}@media(max-width:900px){.header,.navbar,.tabs,.content{padding-left:16px;padding-right:16px}.content{padding-top:14px;padding-bottom:40px}table.tbl{display:block;overflow-x:auto;-webkit-overflow-scrolling:touch}.checklist-row{grid-template-columns:1fr}.gantt .grow-row{grid-template-columns:200px 1fr 120px;min-width:720px}.tabs{flex-wrap:nowrap;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:thin}.tabs a{flex:0 0 auto}.subtabs{flex-wrap:nowrap;overflow-x:auto}.subtabs button{flex:0 0 auto;white-space:nowrap}.kanban .col{min-width:240px}}@media(max-width:700px){.header{padding-top:10px;padding-bottom:10px}.header h1{font-size:17px}.hstats{width:100%;justify-content:space-between;gap:8px;font-size:11px}.hstats b{font-size:13px}.navbar{gap:8px}.navbar select{flex:1 1 100%}.topfisso{position:static}.card{padding:12px}h2{font-size:16px}.kpi .v{font-size:18px}.filter-bar label.field{min-width:0;flex:1 1 140px}.modal-bg{padding:0;align-items:stretch}.modal,.modal.lg,.modal.xl{max-width:100%;max-height:100dvh;height:100dvh;border-radius:0}.modal>.body{padding:12px;flex:1}.modal>footer{flex-wrap:wrap}.modal>footer .btn{flex:1 1 auto;justify-content:center}.toast-cont{left:12px;right:12px;bottom:12px;max-width:none}.wfbar .conn{width:8px}}@media(max-height:520px)and (orientation:landscape){.topfisso{position:static}}@media(pointer:coarse){input,select,textarea{font-size:16px;min-height:40px}.btn{min-height:38px}.btn.sm{min-height:36px;padding:6px 12px}.btn.xs{min-height:32px;padding:4px 10px;font-size:12px}.tabs a{padding:12px 14px}.subtabs button{padding:10px 14px}}@media print{.topfisso,.toast-cont{display:none}.content{max-width:none;padding:0}.card{box-shadow:none}}.grid2{grid-template-columns:repeat(auto-fit,minmax(min(340px,100%),1fr))}.grid3{grid-template-columns:repeat(auto-fit,minmax(min(280px,100%),1fr))}.form-grid{grid-template-columns:repeat(auto-fit,minmax(min(240px,100%),1fr))}.schede{grid-template-columns:repeat(auto-fill,minmax(min(280px,100%),1fr))}.login .card{max-width:calc(100vw - 32px)}img,svg{max-width:100%}.content{overflow-wrap:break-word}table.tbl td,table.tbl th{overflow-wrap:normal}table.tbl td.num{white-space:nowrap}.scroll-x{overflow-x:auto;-webkit-overflow-scrolling:touch}@media(max-width:720px){:root{font-size:13px}input,select,textarea,.filter-bar input,.filter-bar select{font-size:16px}.topfisso{display:contents}.header{padding-top:10px;padding-bottom:10px;gap:8px}.header h1{font-size:16px}.header .sub{font-size:11px}.hstats{width:100%;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;font-size:11px}.hstats b{font-size:12px}.navbar{gap:8px;padding-top:8px;padding-bottom:8px}.navbar select{width:100%;min-width:0;flex:1 1 100%;order:-1}.navbar>.bold:first-child,.navbar .nascondi-mobile{display:none}.navbar .grow{display:none}.tabs{position:sticky;top:0;z-index:30;flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;box-shadow:0 2px 6px #0000001f;padding-left:8px;padding-right:8px}.tabs::-webkit-scrollbar{display:none}.tabs a{padding:10px;font-size:13px}.content{padding:12px 10px 48px}.card{padding:12px;border-radius:6px}.card>.row.between,.row.between{row-gap:8px}.kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.kpi{padding:10px}.kpi .v{font-size:18px}.filter-bar label.field{min-width:0;flex:1 1 140px}.subtabs{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none}.subtabs::-webkit-scrollbar{display:none}.subtabs button{white-space:nowrap;padding:8px 10px}table.tbl{font-size:12px}table.tbl td,table.tbl th{padding:6px 8px}table.kv,table.kv tbody,table.kv tr,table.kv td,table.kv th{display:block;width:auto!important}table.kv tr{padding:6px 0;border-bottom:1px solid var(--grigio-2)}table.kv td,table.kv th{border:none;padding:1px 0}table.kv td:first-child,table.kv th{font-size:11px;color:var(--testo-2);text-transform:uppercase;letter-spacing:.2px}.modal-bg{padding:0;align-items:flex-end}.modal,.modal.lg,.modal.xl{max-width:100%;max-height:94dvh;border-radius:12px 12px 0 0}.modal>header,.modal>.body,.modal>footer{padding-left:12px;padding-right:12px}.modal>footer{flex-wrap:wrap}.modal>footer .btn{flex:1 1 auto;justify-content:center}.toast-cont{left:10px;right:10px;bottom:10px;max-width:none}.kanban .col{min-width:82vw}.wfbar .pill{padding:4px 8px;font-size:11px}.wfbar .conn{width:8px}.gantt .grow-row{grid-template-columns:140px minmax(420px,1fr) 90px}.checklist-row{grid-template-columns:1fr}.login .card{padding:20px}.wf-riga{grid-template-columns:24px 1fr!important}.wf-riga>:nth-child(n+3){grid-column:2}.btn{padding:8px 12px}.btn.sm{padding:5px 9px}}.dropzone{border:2px dashed #90A4AE;border-radius:8px;padding:18px 12px;text-align:center;cursor:pointer;background:#fafbfc;transition:background .12s,border-color .12s;display:flex;flex-direction:column;align-items:center;gap:4px;font-size:13px}.dropzone:hover,.dropzone:focus-visible{border-color:#0277bd;background:#f1f8fe;outline:none}.dropzone.over{border-color:#2e7d32;background:#e8f5e9;border-style:solid}.dropzone.disabled{opacity:.55;cursor:not-allowed}.dropzone.compact{flex-direction:row;justify-content:center;padding:8px 12px;gap:8px}
