:root{--color-bg:#fffcf7;--color-sidebar:#1e1b4b;--color-accent:#ff5a5f;--color-accent-hover:#e03e47;--color-secondary:#06b6d4;--color-secondary-hover:#0596b0;--color-tertiary:#ffd60a;--color-quaternary:#8b5cf6;--color-quaternary-hover:#7240e5;--color-success:#10b981;--color-success-hover:#0ea371;--color-warning:#f59e0b;--color-warning-hover:#dd8c09;--color-danger:#ef4444;--color-danger-hover:#dc2929;--accent-rgb:255,90,95;--secondary-rgb:6,182,212;--tertiary-rgb:255,214,10;--quaternary-rgb:139,92,246;--success-rgb:16,185,129;--warning-rgb:245,158,11;--danger-rgb:239,68,68;--indaco-rgb:30,27,75;--bs-primary:#ff5a5f;--bs-primary-rgb:255,90,95;--bs-secondary:#8b5cf6;--bs-secondary-rgb:139,92,246;--bs-success:#10b981;--bs-success-rgb:16,185,129;--bs-warning:#f59e0b;--bs-warning-rgb:245,158,11;--bs-danger:#ef4444;--bs-danger-rgb:239,68,68;--bs-info:#06b6d4;--bs-info-rgb:6,182,212;--bs-link-color:#ff5a5f;--bs-link-color-rgb:255,90,95;--bs-link-hover-color:#e03e47;--bs-link-hover-color-rgb:224,62,71;--sidebar-width:240px;--topbar-height:56px}.btn-primary{--bs-btn-bg:var(--color-accent);--bs-btn-border-color:var(--color-accent);--bs-btn-hover-bg:var(--color-accent-hover);--bs-btn-hover-border-color:var(--color-accent-hover);--bs-btn-active-bg:var(--color-accent-hover);--bs-btn-active-border-color:var(--color-accent-hover);--bs-btn-disabled-bg:var(--color-accent);--bs-btn-disabled-border-color:var(--color-accent);--bs-btn-focus-shadow-rgb:var(--accent-rgb)}.btn-secondary{--bs-btn-bg:var(--color-quaternary);--bs-btn-border-color:var(--color-quaternary);--bs-btn-hover-bg:var(--color-quaternary-hover);--bs-btn-hover-border-color:var(--color-quaternary-hover);--bs-btn-active-bg:var(--color-quaternary-hover);--bs-btn-active-border-color:var(--color-quaternary-hover);--bs-btn-disabled-bg:var(--color-quaternary);--bs-btn-disabled-border-color:var(--color-quaternary);--bs-btn-focus-shadow-rgb:var(--quaternary-rgb)}.btn-success{--bs-btn-bg:var(--color-success);--bs-btn-border-color:var(--color-success);--bs-btn-hover-bg:var(--color-success-hover);--bs-btn-hover-border-color:var(--color-success-hover);--bs-btn-active-bg:var(--color-success-hover);--bs-btn-active-border-color:var(--color-success-hover);--bs-btn-focus-shadow-rgb:var(--success-rgb)}.btn-warning{--bs-btn-bg:var(--color-warning);--bs-btn-border-color:var(--color-warning);--bs-btn-hover-bg:var(--color-warning-hover);--bs-btn-hover-border-color:var(--color-warning-hover);--bs-btn-active-bg:var(--color-warning-hover);--bs-btn-active-border-color:var(--color-warning-hover);--bs-btn-color:#1e1b4b;--bs-btn-hover-color:#1e1b4b;--bs-btn-active-color:#1e1b4b}.btn-danger{--bs-btn-bg:var(--color-danger);--bs-btn-border-color:var(--color-danger);--bs-btn-hover-bg:var(--color-danger-hover);--bs-btn-hover-border-color:var(--color-danger-hover);--bs-btn-active-bg:var(--color-danger-hover);--bs-btn-active-border-color:var(--color-danger-hover);--bs-btn-focus-shadow-rgb:var(--danger-rgb)}.btn-info{--bs-btn-bg:var(--color-secondary);--bs-btn-border-color:var(--color-secondary);--bs-btn-hover-bg:var(--color-secondary-hover);--bs-btn-hover-border-color:var(--color-secondary-hover);--bs-btn-active-bg:var(--color-secondary-hover);--bs-btn-active-border-color:var(--color-secondary-hover);--bs-btn-color:#fff;--bs-btn-hover-color:#fff;--bs-btn-active-color:#fff}.btn-outline-primary{--bs-btn-color:var(--color-accent);--bs-btn-border-color:var(--color-accent);--bs-btn-hover-bg:var(--color-accent);--bs-btn-hover-border-color:var(--color-accent);--bs-btn-active-bg:var(--color-accent);--bs-btn-active-border-color:var(--color-accent);--bs-btn-focus-shadow-rgb:var(--accent-rgb)}.btn-outline-secondary{--bs-btn-color:#6b7280;--bs-btn-border-color:#d1d5db;--bs-btn-hover-bg:#f3f4f6;--bs-btn-hover-border-color:#9ca3af;--bs-btn-hover-color:#1e1b4b}.btn-outline-success{--bs-btn-color:var(--color-success);--bs-btn-border-color:var(--color-success);--bs-btn-hover-bg:var(--color-success);--bs-btn-hover-border-color:var(--color-success)}.btn-outline-danger{--bs-btn-color:var(--color-danger);--bs-btn-border-color:var(--color-danger);--bs-btn-hover-bg:var(--color-danger);--bs-btn-hover-border-color:var(--color-danger)}.btn-outline-warning{--bs-btn-color:var(--color-warning);--bs-btn-border-color:var(--color-warning);--bs-btn-hover-bg:var(--color-warning);--bs-btn-hover-border-color:var(--color-warning);--bs-btn-hover-color:#1e1b4b}.btn-outline-info{--bs-btn-color:var(--color-secondary);--bs-btn-border-color:var(--color-secondary);--bs-btn-hover-bg:var(--color-secondary);--bs-btn-hover-border-color:var(--color-secondary)}.btn-link{--bs-btn-color:var(--color-accent);--bs-btn-hover-color:var(--color-accent-hover)}.bg-primary{background-color:var(--color-accent)!important}.bg-secondary{background-color:var(--color-quaternary)!important}.bg-success{background-color:var(--color-success)!important}.bg-warning{background-color:var(--color-warning)!important;color:#1e1b4b}.bg-danger{background-color:var(--color-danger)!important}.bg-info{background-color:var(--color-secondary)!important}.bg-primary-subtle{background-color:rgba(var(--accent-rgb),.12)!important}.bg-secondary-subtle{background-color:rgba(var(--quaternary-rgb),.12)!important}.bg-success-subtle{background-color:rgba(var(--success-rgb),.12)!important}.bg-warning-subtle{background-color:rgba(var(--warning-rgb),.15)!important}.bg-danger-subtle{background-color:rgba(var(--danger-rgb),.12)!important}.bg-info-subtle{background-color:rgba(var(--secondary-rgb),.12)!important}.text-primary{color:var(--color-accent)!important}.text-secondary{color:var(--color-quaternary)!important}.text-success{color:var(--color-success)!important}.text-warning{color:var(--color-warning)!important}.text-danger{color:var(--color-danger)!important}.text-info{color:var(--color-secondary)!important}.border-primary{border-color:var(--color-accent)!important}.border-secondary{border-color:var(--color-quaternary)!important}.border-success{border-color:var(--color-success)!important}.border-warning{border-color:var(--color-warning)!important}.border-danger{border-color:var(--color-danger)!important}.border-info{border-color:var(--color-secondary)!important}.alert-primary{--bs-alert-color:#7c1d20;--bs-alert-bg:rgba(var(--accent-rgb),0.12);--bs-alert-border-color:rgba(var(--accent-rgb),0.35);--bs-alert-link-color:var(--color-accent-hover)}.alert-success{--bs-alert-color:#065f46;--bs-alert-bg:rgba(var(--success-rgb),0.12);--bs-alert-border-color:rgba(var(--success-rgb),0.35)}.alert-warning{--bs-alert-color:#78350f;--bs-alert-bg:rgba(var(--warning-rgb),0.15);--bs-alert-border-color:rgba(var(--warning-rgb),0.4)}.alert-danger{--bs-alert-color:#7f1d1d;--bs-alert-bg:rgba(var(--danger-rgb),0.12);--bs-alert-border-color:rgba(var(--danger-rgb),0.35)}.alert-info{--bs-alert-color:#0e4f5c;--bs-alert-bg:rgba(var(--secondary-rgb),0.12);--bs-alert-border-color:rgba(var(--secondary-rgb),0.35)}.form-check-input:focus,.form-control:focus,.form-select:focus{border-color:var(--color-accent);box-shadow:0 0 0 .2rem rgba(var(--accent-rgb),.2)}.form-check-input:checked,.form-switch .form-check-input:checked{background-color:var(--color-accent);border-color:var(--color-accent)}.nav-tabs{--bs-nav-tabs-link-active-color:var(--color-accent);--bs-nav-tabs-link-active-border-color:#e2e8f0 #e2e8f0 var(--color-accent);--bs-nav-tabs-link-hover-border-color:transparent transparent rgba(var(--accent-rgb),0.5);--bs-nav-link-color:#64748b;--bs-nav-link-hover-color:var(--color-accent)}.nav-tabs .nav-link.active{font-weight:600;border-bottom-width:2px}.page-link{--bs-pagination-color:var(--color-accent);--bs-pagination-hover-color:var(--color-accent-hover);--bs-pagination-focus-color:var(--color-accent-hover);--bs-pagination-focus-box-shadow:0 0 0 0.2rem rgba(var(--accent-rgb),0.2);--bs-pagination-active-bg:var(--color-accent);--bs-pagination-active-border-color:var(--color-accent)}a{color:var(--color-accent)}a:hover{color:var(--color-accent-hover)}.progress-bar{background-color:var(--color-accent)}.planning-day-header.today{background:rgba(var(--accent-rgb),.12)}body{font-family:var(--font-body),system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;background-color:var(--color-bg);margin:0;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}code,kbd,pre,samp{font-family:var(--font-mono),"Courier New",monospace}.sidebar{position:fixed;top:0;left:0;width:var(--sidebar-width);height:100vh;background-color:var(--color-sidebar);color:#a0aec0;overflow-y:auto;z-index:1000;display:flex;flex-direction:column}.sidebar-brand{padding:18px 20px;font-size:1.15rem;font-weight:800;color:#fff;text-transform:uppercase;letter-spacing:.18em;border-bottom:1px solid hsla(0,0%,100%,.08);position:relative}.sidebar-brand:after{content:"";position:absolute;bottom:-1px;left:20px;width:32px;height:2px;background:var(--color-accent)}.sidebar-section{padding:12px 20px 4px;font-size:.65rem;font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:#64748b}.sidebar-link{display:flex;align-items:center;gap:10px;padding:8px 20px;color:#a0aec0;text-decoration:none;font-size:.875rem;transition:all .15s}.sidebar-link:hover{color:#fff;background-color:hsla(0,0%,100%,.06)}.sidebar-link.active{color:#fff;background-color:rgba(var(--accent-rgb),.14);border-left:3px solid var(--color-accent);padding-left:17px;font-weight:600}.sidebar-link i{font-size:1rem;width:20px;text-align:center}.sidebar-footer{margin-top:auto;padding:16px 20px;border-top:1px solid hsla(0,0%,100%,.08);font-size:.8rem}.topbar{position:fixed;top:0;left:var(--sidebar-width);right:0;height:var(--topbar-height);background-color:#fff;border-bottom:1px solid #e2e8f0;display:flex;align-items:center;justify-content:space-between;padding:0 24px;z-index:999}.main-content{margin-left:var(--sidebar-width);margin-top:var(--topbar-height);padding:24px;min-height:calc(100vh - var(--topbar-height))}.table-dense{font-size:.875rem}.table-dense th{font-weight:600;font-size:.75rem;text-transform:uppercase;letter-spacing:.04em;color:#64748b;border-bottom-width:2px}.table-dense td{vertical-align:middle;padding:8px 12px}.table-dense tbody tr{transition:background-color .15s;cursor:pointer}.table-dense tbody tr:hover{background-color:rgba(var(--accent-rgb),.05)}.font-mono,.valuta{font-family:var(--font-mono),"Courier New",monospace}.pipeline-column{min-height:200px;border-radius:8px;padding:12px}.pipeline-card{background:#fff;border:1px solid #e2e8f0;border-radius:6px;padding:12px;margin-bottom:8px;transition:box-shadow .15s;cursor:pointer}.pipeline-card:hover{box-shadow:0 2px 8px rgba(0,0,0,.08)}.pipeline-card[draggable=true]{cursor:-webkit-grab;cursor:grab}.pipeline-card[draggable=true]:active{cursor:-webkit-grabbing;cursor:grabbing}.semaforo-dot{display:inline-block;width:10px;height:10px;border-radius:50%;flex-shrink:0}.semaforo-dot.verde{background-color:var(--color-success)}.semaforo-dot.arancio{background-color:var(--color-warning)}.semaforo-dot.rosso{background-color:var(--color-danger)}.semaforo-dot.grigio{background-color:#94a3b8}.semaforo-dot.nero{background-color:#1e293b}.offcanvas-detail{width:480px!important}.badge-sorgente-ICALL{background-color:#3b82f6!important}.badge-sorgente-WEBSONICA{background-color:#16a34a!important}.badge-sorgente-EASYRICAMBI{background-color:#8b5cf6!important}.badge-sorgente-NDW{background-color:#f59e0b!important}.badge-sorgente-SINESY{background-color:#06b6d4!important}.badge-sorgente-REFERRAL{background-color:#ec4899!important}.badge-sorgente-METAXY{background-color:#f97316!important}.badge-sorgente-FORM_SITO{background-color:#14b8a6!important}.badge-sorgente-ALTRO{background-color:#64748b!important}.planning-scroll{overflow-x:auto;border:1px solid #dee2e6;border-radius:8px}.planning-grid{display:grid;grid-auto-rows:auto}.planning-grid .planning-user-header,.planning-grid .planning-user-info{position:-webkit-sticky;position:sticky;left:0;z-index:2;box-shadow:1px 0 0 #dee2e6}.planning-user-header{background:#f8f9fa}.planning-day-cell.week-start,.planning-day-header.week-start{border-left:2px solid #adb5bd}.planning-month-label{background:#eef2f7;padding:4px 8px;font-size:.75rem;font-weight:600;color:#495057;border-left:1px solid #dee2e6;text-transform:uppercase;letter-spacing:.03em}.planning-month-label.week-start{border-left:2px solid #adb5bd}.planning-day-header{padding:10px;text-align:center;background:#f8f9fa;border-left:1px solid #dee2e6;font-size:.8rem;font-weight:600;color:#495057}.planning-day-header.today{background:#dbeafe;color:var(--color-accent)}.planning-row{display:contents}.planning-user-info{padding:12px 8px;display:flex;align-items:center;gap:8px}.planning-day-cell,.planning-user-info{border-top:1px solid #dee2e6;background:#fff}.planning-day-cell{padding:4px;border-left:1px solid #dee2e6;min-height:80px;cursor:pointer;transition:background-color .1s ease;position:relative}.planning-day-cell:hover{background-color:#f1f5f9}.planning-day-cell.assenza-ferie{background:#dbeafe;cursor:not-allowed}.planning-day-cell.assenza-malattia{background:#fee2e2;cursor:not-allowed}.planning-day-cell.assenza-permesso{background:#fef9c3;cursor:not-allowed}.planning-day-cell.assenza-altro{background:#f1f5f9;cursor:not-allowed}.planning-block{border-radius:4px;padding:2px 6px;margin-bottom:2px;font-size:.7rem;font-family:var(--font-mono);cursor:pointer;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;color:#fff}.planning-ore-totali{font-size:.65rem;font-family:var(--font-mono);text-align:right;padding:2px 4px;position:absolute;bottom:2px;right:4px}.planning-ore-totali.verde{color:var(--color-success)}.planning-ore-totali.arancio{color:var(--color-warning)}.planning-ore-totali.rosso{color:var(--color-danger)}.planning-ore-totali.grigio{color:#94a3b8}.piano-fatturazione-modal{max-width:min(96vw,1320px)}.piano-fatturazione-modal .modal-body{font-size:.8rem}.piano-fatturazione-modal .modal-body .form-control,.piano-fatturazione-modal .modal-body .form-select{font-size:.78rem;padding-top:.15rem;padding-bottom:.15rem}.piano-fatturazione-modal .modal-body table{font-size:.78rem}.piano-fatturazione-modal .modal-body td,.piano-fatturazione-modal .modal-body th{padding:.25rem .3rem}.piano-fatturazione-modal .modal-body input[type=number]::-webkit-inner-spin-button,.piano-fatturazione-modal .modal-body input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.piano-fatturazione-modal .modal-body input[type=number]{-moz-appearance:textfield;-webkit-appearance:textfield;appearance:textfield}