*{margin:0;padding:0;box-sizing:border-box}:root{--color-success: #10B981;--color-warning: #F59E0B;--color-error: #EF4444;--color-info: #3B82F6;--margine-alto: #10B981;--margine-medio: #F59E0B;--margine-basso: #EF4444;--color-primary: #0071e3;--color-text: #1d1d1f;--color-text-secondary: #6e6e73;--color-border: #d2d2d7;--color-background: #ffffff;--color-background-secondary: #f5f5f7}[data-theme=dark]{--color-primary: #0a84ff;--color-text: #f5f5f7;--color-text-secondary: #a1a1a6;--color-border: #424245;--color-background: #1c1c1e;--color-background-secondary: #2c2c2e;--color-success: #30d158;--color-warning: #ffd60a;--color-error: #ff453a;--color-info: #64d2ff}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Helvetica Neue,Arial,sans-serif;background-color:var(--color-background);color:var(--color-text);line-height:1.5;font-size:15px}.container{max-width:1200px;margin:0 auto;padding:40px 20px}select{appearance:none;-webkit-appearance:none;-moz-appearance:none;background-image:url("data:image/svg+xml;charset=UTF-8,%3csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3e%3cpath fill='%236e6e73' d='M6 9L1 4h10z'/%3e%3c/svg%3e");background-repeat:no-repeat;background-position:right 8px center;background-size:12px;padding-right:32px}h1{color:#1d1d1f;font-size:28px;font-weight:600;margin-bottom:8px;letter-spacing:-.5px}h2{color:#1d1d1f;font-size:22px;font-weight:600;margin-bottom:16px;letter-spacing:-.3px}h3{color:#1d1d1f;font-size:18px;font-weight:500;margin-bottom:12px}table{width:100%;border-collapse:collapse;background-color:transparent;margin-bottom:40px}table thead{background-color:transparent;border-bottom:1px solid #0071e3}table th{padding:12px 16px;text-align:left;font-weight:600;font-size:12px;color:#1d1d1f;border-right:1px solid #e8e8ed}table th:last-child{border-right:none}table td{padding:16px;border-bottom:1px solid #0071e3;border-right:1px solid #e8e8ed;font-size:13px;color:#1d1d1f;background-color:transparent}table td:last-child{border-right:none}table tbody tr{transition:none}table tbody tr:hover{background-color:transparent;cursor:default}table tbody tr:last-child td{border-bottom:1px solid #0071e3}button{padding:6px 12px;border:none;border-radius:0;cursor:pointer;font-size:13px;font-weight:400;transition:all .2s ease;font-family:inherit;display:inline-flex;align-items:center;gap:6px;background-color:transparent;color:#6e6e73}.btn-icon{font-size:13px;opacity:.7;transition:opacity .2s ease}button:hover{color:#0071e3}button:hover .btn-icon{opacity:1}button.btn-primary{background-color:transparent;color:#6e6e73;border:none}button.btn-primary:hover{background-color:transparent;color:#0071e3}button.btn-success{background-color:transparent;color:#6e6e73;border:none}button.btn-success:hover{background-color:transparent;color:#0071e3}button.btn-danger{background-color:transparent;color:#6e6e73;border:none}button.btn-danger:hover{background-color:transparent;color:#ff3b30}button.btn-secondary{background-color:transparent;color:#6e6e73;border:none}button.btn-secondary:hover{background-color:transparent;color:#0071e3}.form-actions button.btn-success{border:1px solid #0071e3;color:#0071e3}.form-actions button.btn-success:hover{background-color:#e8f4fd}.form-actions button.btn-secondary{border:1px solid #d2d2d7;color:#6e6e73}.form-actions button.btn-secondary:hover{background-color:#f5f5f7;color:#1d1d1f}.badge{display:inline-flex;align-items:center;gap:4px;padding:4px 8px;border-radius:0;font-size:12px;font-weight:500;text-transform:capitalize;background-color:transparent;color:#1d1d1f}.badge:before{content:"\25cf";font-size:8px;opacity:.7}.badge.status-pianificato{background-color:transparent;color:#1d1d1f}.badge.status-pianificato:before{color:#bf5000}.badge.status-in-corso{background-color:transparent;color:#1d1d1f}.badge.status-in-corso:before{color:#0071e3}.badge.status-completato{background-color:transparent;color:#1d1d1f}.badge.status-completato:before{color:#00845e}.badge.status-sospeso{background-color:transparent;color:#1d1d1f}.badge.status-sospeso:before{color:#d70015}.badge.status-attivo{background-color:transparent;color:#1d1d1f}.badge.status-attivo:before{color:#00845e}.badge.status-inattivo{background-color:transparent;color:#1d1d1f}.badge.status-inattivo:before{color:#6e6e73}.card{background-color:transparent;border-radius:0;border:none;padding:0;margin-bottom:30px}.loading{text-align:center;padding:40px;font-size:15px;color:#6e6e73}.error-message{background-color:transparent;color:#d70015;border-radius:0;margin-bottom:24px;border:none;border-left:3px solid #d70015;padding:12px 0 12px 12px;font-size:13px}.toolbar{display:flex;justify-content:space-between;align-items:center;margin-bottom:30px;padding:0 0 16px;background-color:transparent;border-bottom:1px solid #0071e3}.badge{display:inline-block;padding:4px 10px;border-radius:12px;font-size:12px;font-weight:600;line-height:1.2;text-align:center}.badge-success{background-color:var(--color-success);color:#fff}.badge-warning{background-color:var(--color-warning);color:#fff}.badge-error{background-color:var(--color-error);color:#fff}.badge-info{background-color:var(--color-info);color:#fff}.badge-icon{font-size:16px;padding:6px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px}.badge-icon-best{background-color:var(--color-success);color:#fff}.badge-icon-fast{background-color:var(--color-info);color:#fff}.badge-icon-star{background-color:var(--color-warning);color:#fff}.margine-alto{color:var(--margine-alto);font-weight:700}.margine-medio{color:var(--margine-medio);font-weight:700}.margine-basso{color:var(--margine-basso);font-weight:700}.cell-margine-alto{background-color:#10b9811a;border-left:3px solid var(--margine-alto)}.cell-margine-medio{background-color:#f59e0b1a;border-left:3px solid var(--margine-medio)}.cell-margine-basso{background-color:#ef44441a;border-left:3px solid var(--margine-basso)}.kpi-card{background:#fff;border:1px solid var(--color-border);border-radius:8px;padding:20px;text-align:center;transition:all .2s ease}.kpi-card:hover{box-shadow:0 4px 12px #00000014;transform:translateY(-2px)}.kpi-icon{font-size:32px;margin-bottom:8px}.kpi-value{font-size:28px;font-weight:700;color:var(--color-text);margin-bottom:4px}.kpi-label{font-size:13px;color:var(--color-text-secondary);font-weight:500}.kpi-badge{position:absolute;top:10px;right:10px;background-color:var(--color-error);color:#fff;border-radius:50%;width:24px;height:24px;display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:700}.alert{padding:16px;border-radius:8px;margin-bottom:20px;display:flex;align-items:flex-start;gap:12px;animation:slideDown .3s ease-out}.alert-success{background:#10b9811a;border-left:4px solid var(--color-success);color:var(--color-text)}.alert-warning{background:#f59e0b1a;border-left:4px solid var(--color-warning);color:var(--color-text)}.alert-error{background:#ef44441a;border-left:4px solid var(--color-error);color:var(--color-text)}.alert-info{background:#3b82f61a;border-left:4px solid var(--color-info);color:var(--color-text)}.drawer-overlay{position:fixed;inset:0;background-color:#00000080;z-index:9998;animation:fadeIn .3s ease-out}.drawer{position:fixed;top:0;right:0;bottom:0;width:600px;max-width:90vw;background:#fff;box-shadow:-4px 0 20px #00000026;z-index:9999;overflow-y:auto;animation:slideInRight .3s ease-out}.drawer-header{padding:24px;border-bottom:1px solid var(--color-border);display:flex;justify-content:space-between;align-items:center;position:sticky;top:0;background:#fff;z-index:10}.drawer-content{padding:24px}.drawer-footer{padding:16px 24px;border-top:1px solid var(--color-border);display:flex;gap:12px;justify-content:flex-end;position:sticky;bottom:0;background:#fff}.tabs{display:flex;border-bottom:1px solid var(--color-border);margin-bottom:24px}.tab{padding:12px 20px;background:none;border:none;border-bottom:2px solid transparent;color:var(--color-text-secondary);font-size:14px;font-weight:500;cursor:pointer;transition:all .2s ease}.tab:hover{color:var(--color-text);background-color:var(--color-background-secondary)}.tab.active{color:var(--color-primary);border-bottom-color:var(--color-primary)}.floating-widget{position:fixed;bottom:24px;right:24px;width:360px;background:#fff;border:1px solid var(--color-border);border-radius:12px;box-shadow:0 8px 24px #00000026;z-index:9000;animation:slideUp .3s ease-out}.widget-header{padding:16px;border-bottom:1px solid var(--color-border);display:flex;justify-content:space-between;align-items:center;background:linear-gradient(135deg,var(--color-info) 0%,#2563EB 100%);color:#fff;border-top-left-radius:12px;border-top-right-radius:12px;font-weight:600}.widget-content{padding:16px}.widget-footer{padding:12px 16px;border-top:1px solid var(--color-border);display:flex;gap:8px;justify-content:flex-end}.sidebar{width:280px;background:var(--color-background-secondary);border-right:1px solid var(--color-border);padding:20px;height:calc(100vh - 120px);overflow-y:auto;position:sticky;top:80px}.sidebar-section{margin-bottom:24px}.sidebar-section-title{font-size:13px;font-weight:600;color:var(--color-text);margin-bottom:12px;text-transform:uppercase;letter-spacing:.5px}.layout-with-sidebar{display:flex;gap:0}.main-content{flex:1;padding:24px;min-width:0}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideInRight{0%{transform:translate(100%)}to{transform:translate(0)}}@keyframes slideUp{0%{transform:translateY(20px);opacity:0}to{transform:translateY(0);opacity:1}}@keyframes slideDown{0%{transform:translateY(-10px);opacity:0}to{transform:translateY(0);opacity:1}}.heatmap-cell{padding:16px;text-align:center;cursor:pointer;transition:all .2s ease;border:1px solid var(--color-border)}.heatmap-cell:hover{transform:scale(1.05);box-shadow:0 4px 12px #0000001a;z-index:10}.heatmap-alto{background:linear-gradient(135deg,var(--color-success) 0%,#059669 100%);color:#fff}.heatmap-medio{background:linear-gradient(135deg,var(--color-warning) 0%,#D97706 100%);color:#fff}.heatmap-basso{background:linear-gradient(135deg,var(--color-error) 0%,#DC2626 100%);color:#fff}@media (max-width: 768px){.container{padding:10px}table{font-size:14px}table th,table td{padding:8px}.drawer{width:100%}.floating-widget{width:calc(100% - 32px);left:16px;right:16px;bottom:16px}.layout-with-sidebar{flex-direction:column}.sidebar{width:100%;height:auto;position:relative;top:0}}
