body{color:#1e293b;-webkit-font-smoothing:antialiased;background:#f1f5f9;min-height:100vh;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}#root{min-height:100vh}:root{--brand-orange:#f05a28;--brand-blue:#1b2b5e;--brand-orange-light:#fef0eb;--brand-blue-light:#eef1f8}*,:before,:after{box-sizing:border-box;margin:0;padding:0}body{color:#1e293b;background:#f1f5f9;min-height:100vh;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}button{cursor:pointer;font:inherit}input,select{font:inherit}.app{flex-direction:column;min-height:100vh;display:flex}.app-header{background:var(--brand-blue);color:#fff;flex-wrap:wrap;align-items:center;gap:16px;min-height:60px;padding:0 24px;display:flex;box-shadow:0 2px 8px #1b2b5e4d}.app-title{white-space:nowrap;align-items:center;gap:12px;font-size:16px;font-weight:600;display:flex}.app-logo-img{object-fit:contain;background:#fff;border-radius:6px;width:auto;height:40px;padding:4px 8px;display:block}.app-title-sep{background:#ffffff40;width:1px;height:28px;display:block}.header-alert{font-size:16px;animation:1.5s infinite pulse}@keyframes pulse{0%,to{opacity:1}50%{opacity:.4}}.app-nav{gap:4px;margin-left:auto;display:flex}.nav-tab{color:#94a3b8;background:0 0;border:none;border-radius:6px;padding:8px 14px;font-size:14px;transition:background .15s,color .15s}.nav-tab:hover{color:#fff;background:#ffffff1f}.nav-tab.active{background:var(--brand-orange);color:#fff}.app-main{flex:1;padding:24px}.alert-banner{color:#991b1b;background:#fef2f2;border:1px solid #fecaca;border-radius:8px;align-items:center;gap:8px;margin-bottom:16px;padding:10px 16px;font-size:14px;animation:2s infinite pulse;display:flex}.panel{background:#fff;border-radius:12px;padding:24px;box-shadow:0 1px 4px #00000014}.panel-header{flex-wrap:wrap;align-items:center;gap:16px;margin-bottom:20px;display:flex}.panel-header h2{font-size:20px;font-weight:700}.btn{color:#374151;white-space:nowrap;background:#f1f5f9;border:1px solid #e2e8f0;border-radius:7px;padding:7px 14px;font-size:14px;transition:background .15s}.btn:hover{background:#e2e8f0}.btn-primary{background:var(--brand-orange);border-color:var(--brand-orange);color:#fff}.btn-primary:hover{background:#d44e20}.btn-icon{opacity:.7;background:0 0;border:none;border-radius:5px;padding:4px 6px;font-size:16px;transition:opacity .15s,background .15s}.btn-icon:hover{opacity:1;background:#f1f5f9}.card-list{flex-direction:column;gap:8px;display:flex}.card{background:#fafafa;border:1px solid #e2e8f0;border-radius:8px;align-items:center;gap:12px;padding:12px 16px;transition:border-color .2s;display:flex}.card-critical{background:#fff5f5;border-color:#fecaca;animation:2s infinite pulse-border}@keyframes pulse-border{0%,to{border-color:#fecaca}50%{border-color:#ef4444}}.card-color{border-radius:4px;flex-shrink:0;width:14px;height:36px}.card-body{flex:1;min-width:0}.card-name{align-items:center;gap:6px;font-size:15px;font-weight:600;display:flex}.critical-icon{font-size:14px}.card-meta{flex-wrap:wrap;align-items:center;gap:8px;margin-top:3px;display:flex}.card-sub{color:#64748b;font-size:13px}.card-actions{gap:4px;display:flex}.consultant-flag{margin-right:4px}.card-contact{color:var(--brand-blue);align-items:center;gap:3px;font-size:12px;text-decoration:none;display:inline-flex}.card-contact:hover{text-decoration:underline}.location-radio{flex-wrap:wrap;gap:8px;display:flex}.location-option{cursor:pointer;border:2px solid #e2e8f0;border-radius:7px;align-items:center;gap:6px;padding:7px 14px;font-size:13px;transition:all .15s;display:flex}.location-option input{display:none}.location-option:hover{border-color:#94a3b8}.location-option.selected{border-color:var(--brand-orange);background:var(--brand-orange-light);font-weight:600}.location-flag{font-size:18px}.phone-preview{margin-top:6px}.phone-preview a{color:#25d366;font-size:13px;font-weight:600;text-decoration:none}.phone-preview a:hover{text-decoration:underline}.type-tag{border:1px solid;border-radius:20px;align-items:center;padding:2px 7px;font-size:11px;font-weight:600;display:inline-flex}.card-done{opacity:.85;background:#f5f3ff;border-color:#c7d2fe}.card-dates{color:#64748b;font-size:12px}.slip-badge{border-radius:20px;padding:2px 7px;font-size:11px;font-weight:600}.slip-late{color:#991b1b;background:#fee2e2}.slip-early{color:#166534;background:#dcfce7}.slip-ok{color:#065f46;background:#d1fae5}.slip-preview{text-align:center;border-radius:7px;margin-bottom:14px;padding:8px 12px;font-size:13px;font-weight:600}.slip-preview.slip-late{color:#991b1b;background:#fef2f2;border:1px solid #fecaca}.slip-preview.slip-early{color:#166534;background:#f0fdf4;border:1px solid #bbf7d0}.slip-preview.slip-ok{color:#065f46;background:#f0fdf4;border:1px solid #bbf7d0}.form-section-title{text-transform:uppercase;letter-spacing:.05em;color:#64748b;border-bottom:1px solid #e2e8f0;margin:14px 0 8px;padding-bottom:4px;font-size:12px;font-weight:700}.form-date-pair{grid-template-columns:1fr 1fr;gap:12px;display:grid}.ts-no-alloc{opacity:.4}.ts-no-projects{color:#94a3b8;padding:8px 12px;font-size:13px}.type-badge{border:1px solid;border-radius:20px;padding:2px 8px;font-family:monospace;font-size:11px}.status-selector{flex-shrink:0;gap:4px;display:flex}.status-dot{white-space:nowrap;border:none;border-radius:20px;padding:3px 8px;font-size:11px;font-weight:600;transition:all .15s}.status-dot:not(.active){opacity:.5}.status-dot:hover{opacity:1}.status-radio{flex-wrap:wrap;gap:8px;display:flex}.status-option{cursor:pointer;border:2px solid #e2e8f0;border-radius:7px;align-items:center;gap:5px;padding:6px 12px;font-size:13px;transition:all .15s;display:flex}.status-option input{display:none}.status-option:hover{border-color:#94a3b8}.status-option.selected{font-weight:600}.criticality-radio{flex-wrap:wrap;gap:8px;display:flex}.criticality-option{cursor:pointer;border:2px solid #e2e8f0;border-radius:7px;align-items:center;gap:5px;padding:6px 12px;font-size:13px;transition:all .15s;display:flex}.criticality-option input{display:none}.criticality-option:hover{border-color:#94a3b8}.criticality-option.selected{font-weight:600}.empty{color:#94a3b8;padding:20px 0;font-size:14px}.modal-overlay{z-index:1000;background:#0006;justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0;overflow-y:auto}.modal{background:#fff;border-radius:12px;width:460px;max-width:calc(100vw - 32px);max-height:calc(100vh - 32px);margin:auto;padding:24px;overflow-y:auto;box-shadow:0 20px 60px #0003}.modal-header{justify-content:space-between;align-items:center;margin-bottom:20px;display:flex}.modal-header h2{font-size:18px;font-weight:700}.modal-footer{justify-content:flex-end;gap:8px;margin-top:20px;display:flex}.form-row-2{grid-template-columns:1fr 1fr;gap:12px;display:grid}.hour-range-preview{color:var(--brand-orange);background:var(--brand-orange-light);text-align:center;border:1px solid #f05a284d;border-radius:6px;margin-bottom:14px;padding:6px 12px;font-size:13px;font-weight:600}.form-field{margin-bottom:14px}.form-field label{color:#374151;margin-bottom:5px;font-size:13px;font-weight:600;display:block}.form-field input,.form-field select{background:#fff;border:1px solid #d1d5db;border-radius:7px;width:100%;padding:8px 10px;font-size:14px}.form-field input:focus,.form-field select:focus{border-color:var(--brand-orange);outline:none;box-shadow:0 0 0 3px #f05a2826}.form-error{color:#ef4444;margin-bottom:12px;font-size:13px}.pw-rules{margin:0;padding:6px 0 0;list-style:none}.pw-rule{padding:2px 0;font-size:12px}.pw-rule-neutral{color:#9ca3af}.pw-rule-ok{color:#10b981}.pw-rule-fail{color:#ef4444}.color-picker{flex-wrap:wrap;gap:8px;display:flex}.color-swatch{border:3px solid #0000;border-radius:50%;width:28px;height:28px;transition:transform .1s,border-color .1s}.color-swatch:hover{transform:scale(1.15)}.color-swatch.selected{border-color:#1e293b;transform:scale(1.15)}.filters{flex-wrap:wrap;gap:8px;margin-bottom:16px;display:flex}.filters select{background:#fff;border:1px solid #d1d5db;border-radius:7px;min-width:160px;padding:7px 10px;font-size:13px}.workload-row{background:#f8fafc;border:1px solid #e2e8f0;border-radius:8px;flex-direction:column;gap:6px;margin-bottom:16px;padding:12px 16px;display:flex}.workload-item{align-items:center;gap:10px;display:flex}.workload-label{color:#374151;white-space:nowrap;text-overflow:ellipsis;width:64px;font-size:12px;font-weight:600;overflow:hidden}.workload-bar-bg{background:#e2e8f0;border-radius:4px;flex:1;height:8px;overflow:hidden}.workload-bar-fill{border-radius:4px;height:100%;transition:width .3s}.workload-pct{color:#64748b;text-align:right;width:28px;font-size:11px}.occupation-bar-wrap{margin-bottom:16px}.occupation-bar-label{color:#64748b;margin-bottom:4px;font-size:13px}.occupation-bar-bg{background:#e2e8f0;border-radius:5px;height:10px;overflow:hidden}.occupation-bar-fill{border-radius:5px;height:100%;transition:width .3s}.project-breakdown{flex-wrap:wrap;gap:6px;margin-bottom:16px;display:flex}.breakdown-chip{border:1px solid;border-radius:20px;padding:3px 10px;font-size:12px;font-weight:500}.weekly-panel{overflow:hidden}.week-nav{flex-wrap:wrap;align-items:center;gap:8px;margin-left:auto;display:flex}.week-label{color:#374151;text-align:center;min-width:160px;font-size:14px;font-weight:600}.weekly-grid-wrapper{overflow-x:auto}.weekly-grid{border-collapse:collapse;width:100%;min-width:700px;font-size:13px}.weekly-grid th{text-align:center;color:#374151;background:#f8fafc;border:1px solid #e2e8f0;padding:8px 6px;font-weight:600}.th-hour{color:#94a3b8;width:56px}.th-today{background:var(--brand-orange-light);color:var(--brand-orange)}.th-weekend{color:#64748b;background:#f1f5f9}.th-date{color:#64748b;font-size:11px;font-weight:400}.td-hour{text-align:right;color:#94a3b8;white-space:nowrap;background:#fafafa;border:1px solid #e2e8f0;padding:6px 8px;font-size:12px}.td-cell{vertical-align:top;cursor:pointer;border:1px solid #e2e8f0;min-height:36px;padding:4px;transition:background .1s;position:relative}.td-cell:hover{background:var(--brand-orange-light)}.td-cell-readonly{cursor:default}.td-cell-readonly:hover{background:inherit}.td-weekend{background:#f8fafc}.td-weekend:hover{background:#eef1f8}.td-offhours{background:#fafafa}.td-offhours:hover{background:var(--brand-orange-light)}.alloc-chip{cursor:default;border-radius:4px;align-items:center;gap:3px;margin-bottom:2px;padding:3px 6px;font-size:11px;line-height:1.3;display:flex;position:relative}.chip-critical{outline-offset:1px;outline:2px solid #ef4444;animation:1.5s infinite pulse-outline}.chip-warning{outline-offset:1px;outline:2px solid #f59e0b}@keyframes pulse-outline{0%,to{outline-color:#ef4444}50%{outline-color:#fca5a5}}.alloc-icon{font-size:10px}.alloc-name{font-weight:600}.alloc-project{opacity:.85}.alloc-note{opacity:.8;font-style:italic}.alloc-remove{color:#ffffffb3;cursor:pointer;background:0 0;border:none;margin-left:auto;padding:0 2px;font-size:14px;line-height:1}.alloc-remove:hover{color:#fff}.btn-sm{padding:4px 10px;font-size:12px}.absence-section-title{text-transform:uppercase;letter-spacing:.05em;color:#64748b;margin:16px 0 8px;font-size:12px;font-weight:700}.absence-section-past{color:#94a3b8}.past-absences{opacity:.6}.absence-card{align-items:flex-start}.absence-active{background:#eff6ff;border-color:#bfdbfe}.absence-type-icon{border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;width:36px;height:36px;font-size:18px;display:flex}.absence-consultant{font-size:10px}.absence-now-badge{background:var(--brand-orange);color:#fff;vertical-align:middle;border-radius:20px;margin-left:6px;padding:1px 6px;font-size:10px;font-weight:700}.absence-type-radio{flex-wrap:wrap;gap:8px;display:flex}.absence-type-option{cursor:pointer;border:2px solid #e2e8f0;border-radius:7px;align-items:center;gap:5px;padding:6px 12px;font-size:13px;transition:all .15s;display:flex}.absence-type-option input{display:none}.absence-type-option:hover{border-color:#94a3b8}.absence-type-option.selected{font-weight:600}.td-has-absence{background:#fafafa}.absence-day-banner{white-space:nowrap;text-overflow:ellipsis;pointer-events:none;border:1px solid;border-radius:3px;margin-bottom:2px;padding:2px 5px;font-size:10px;font-weight:600;overflow:hidden}.week-summary{border:1px solid #e2e8f0;border-radius:10px;margin-top:24px;overflow:hidden}.week-summary-header{cursor:pointer;-webkit-user-select:none;user-select:none;background:#f8fafc;border-bottom:1px solid #e2e8f0;justify-content:space-between;align-items:center;padding:12px 16px;display:flex}.week-summary-header:hover{background:#f1f5f9}.week-summary-title{color:#1e293b;font-size:14px;font-weight:700}.week-summary-toggle{color:#64748b;font-size:12px}.week-summary-grid{background:#fff;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:12px;padding:16px;display:grid}.week-summary-card{background:#fafafa;border:1px solid #e2e8f0;border-radius:8px;padding:12px;transition:box-shadow .15s}.week-summary-card:hover{box-shadow:0 2px 8px #00000014}.wsc-critical{background:#fff5f5;border-color:#fecaca;animation:2s infinite pulse-border}.wsc-top{align-items:flex-start;gap:10px;margin-bottom:10px;display:flex}.wsc-color{border-radius:3px;flex-shrink:0;width:12px;height:40px;margin-top:2px}.wsc-info{flex:1;min-width:0}.wsc-name{color:#1e293b;margin-bottom:4px;font-size:14px;font-weight:700}.wsc-meta{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.wsc-type,.wsc-status{font-size:11px;font-weight:600}.wsc-hours{color:var(--brand-orange);white-space:nowrap;font-size:22px;font-weight:800;line-height:1}.wsc-consultants{flex-wrap:wrap;gap:5px;display:flex}.wsc-consultant-chip{border:1px solid;border-radius:20px;padding:2px 8px;font-size:11px;font-weight:600}.ts-hint{color:#64748b;margin-bottom:16px;font-size:13px}.ts-consultant-block{margin-bottom:28px}.ts-consultant-header{background:#f8fafc;border-left:4px solid;border-radius:0 8px 8px 0;align-items:center;gap:10px;margin-bottom:8px;padding:8px 12px;display:flex}.ts-consultant-name{font-size:15px;font-weight:700}.ts-consultant-role{color:#64748b;font-size:13px}.ts-total{color:var(--brand-orange);margin-left:auto;font-size:13px;font-weight:600}.ts-grid-wrapper{overflow-x:auto}.ts-grid{border-collapse:collapse;width:100%;min-width:600px;font-size:13px}.ts-grid th{text-align:center;color:#374151;background:#f8fafc;border:1px solid #e2e8f0;padding:7px 8px;font-size:12px;font-weight:600}.ts-th-project{text-align:left;min-width:160px}.ts-th-total{width:56px}.ts-th-today{background:var(--brand-orange-light);color:var(--brand-orange)}.ts-td-project{background:#fafafa;border:1px solid #e2e8f0;align-items:center;gap:8px;padding:6px 10px;display:flex}.ts-project-dot{border-radius:50%;flex-shrink:0;width:10px;height:10px}.ts-type-tag{opacity:.8;font-size:11px;font-weight:600}.ts-td-cell{text-align:center;vertical-align:middle;border:1px solid #e2e8f0;padding:4px}.ts-has-value{background:#f0fdf4}.ts-today{background:var(--brand-orange-light)!important}.ts-input{text-align:center;background:0 0;border:1px solid #0000;border-radius:5px;width:56px;padding:4px 6px;font-size:13px;transition:border-color .15s,background .15s}.ts-input:hover{background:#fff;border-color:#d1d5db}.ts-input:focus{border-color:var(--brand-orange);background:#fff;outline:none;box-shadow:0 0 0 2px #f05a2826}.ts-input::placeholder{color:#cbd5e1}.ts-saving{opacity:.5}.ts-input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.ts-input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.ts-input[type=number]{-moz-appearance:textfield}.ts-td-total{text-align:right;color:#374151;background:#f8fafc;border:1px solid #e2e8f0;padding:6px 10px;font-size:12px;font-weight:600}.comp-kpis{flex-wrap:wrap;gap:16px;margin-bottom:24px;display:flex}.comp-kpi{text-align:center;background:#f8fafc;border:1px solid #e2e8f0;border-radius:8px;flex:1;min-width:100px;padding:14px 18px}.comp-kpi-val{font-size:26px;font-weight:700;display:block}.comp-kpi-label{color:#64748b;font-size:12px}.comp-consultant-block{border:1px solid #e2e8f0;border-radius:10px;margin-bottom:20px;overflow:hidden}.comp-consultant-header{background:#f8fafc;border-left:4px solid;flex-wrap:wrap;align-items:center;gap:10px;padding:12px 16px;display:flex}.comp-consultant-name{font-size:15px;font-weight:700}.comp-consultant-summary{color:#64748b;align-items:center;gap:8px;margin-left:auto;font-size:13px;display:flex}.comp-bar-wrap{background:#fff;border-bottom:1px solid #e2e8f0;padding:10px 16px}.comp-bar-row{align-items:center;gap:8px;margin-bottom:4px;display:flex}.comp-bar-label{color:#64748b;width:56px;font-size:11px}.comp-bar-bg{background:#e2e8f0;border-radius:4px;flex:1;height:8px;overflow:hidden}.comp-bar-fill{border-radius:4px;height:100%;transition:width .3s}.comp-bar-planned{background:var(--brand-blue)}.comp-bar-val{color:#374151;text-align:right;width:36px;font-size:12px;font-weight:600}.comp-table{border-collapse:collapse;width:100%;font-size:13px}.comp-table th{text-align:left;color:#374151;background:#f8fafc;border-top:1px solid #e2e8f0;border-bottom:1px solid #e2e8f0;padding:7px 12px;font-weight:600}.comp-th-num{text-align:right;width:80px}.comp-th-bar{width:120px}.comp-table td{border-bottom:1px solid #f1f5f9;padding:8px 12px}.comp-td-num{text-align:right;font-variant-numeric:tabular-nums}.comp-project-dot{vertical-align:middle;border-radius:50%;width:9px;height:9px;margin-right:7px;display:inline-block}.comp-row-zero td{color:#94a3b8}.comp-mini-bar-bg{background:#e2e8f0;border-radius:3px;height:6px;position:relative;overflow:hidden}.comp-mini-bar{border-radius:3px;height:100%;position:absolute;top:0;left:0}.comp-mini-bar.planned{background:#bfdbfe}.diff-ok{color:#10b981;font-weight:600}.diff-over{color:#ef4444;font-weight:600}.diff-under{color:#f59e0b;font-weight:600}.diff-zero{color:#94a3b8}.chip-tooltip{z-index:2000;color:#f1f5f9;pointer-events:none;background:#1e293b;border-radius:8px;min-width:200px;max-width:280px;padding:10px 14px;font-size:13px;position:fixed;box-shadow:0 8px 24px #0000004d}.tooltip-row{margin-bottom:4px}.tooltip-row:last-child{margin-bottom:0}.tooltip-note{color:#94a3b8;font-style:italic}.consultant-select{border:1px solid #d1d5db;border-radius:7px;min-width:200px;padding:7px 10px;font-size:14px}.consultant-stats{flex-wrap:wrap;gap:16px;margin-bottom:16px;display:flex}.stat{background:#f8fafc;border-left:4px solid;border-radius:0 8px 8px 0;min-width:90px;padding:8px 16px}.stat-alert{background:#fff5f5;border-color:#ef4444!important}.stat-value{font-size:24px;font-weight:700;display:block}.stat-label{color:#64748b;font-size:12px}.stat-sub{color:#94a3b8;margin-top:2px;font-size:11px;display:block}.tr-lunch td{cursor:default;background:#fafaf5!important}.td-lunch{text-align:center!important;vertical-align:middle!important}.lunch-label{color:#94a3b8;font-size:11px;font-style:italic}.td-free{background:#fff5f5}.td-absent{cursor:default;background:#f1f5f9}.free-label{color:#cbd5e1;text-align:center;padding:4px 0;font-size:10px;display:block}.th-absent{color:#94a3b8!important;background:#f1f5f9!important}.th-absent-label{color:#94a3b8;font-size:10px;font-weight:400}.login-page{background:linear-gradient(135deg, var(--brand-blue) 0%, #2d4a8a 100%);justify-content:center;align-items:center;min-height:100vh;display:flex}.login-card{background:#fff;border-radius:16px;width:100%;max-width:380px;padding:40px 36px;box-shadow:0 20px 60px #00000040}.login-logo{flex-direction:column;align-items:center;gap:12px;margin-bottom:32px;display:flex}.login-logo-img{object-fit:contain;width:auto;height:56px}.login-app-name{color:#64748b;text-align:center;font-size:16px;font-weight:600}.login-form{flex-direction:column;gap:16px;display:flex}.login-btn{width:100%;margin-top:4px;padding:12px;font-size:16px}.login-locked{background:#fef2f2;border:1px solid #fca5a5;border-radius:6px;padding:8px 12px;font-weight:500}.app-loading{color:#64748b;justify-content:center;align-items:center;min-height:100vh;font-size:18px;display:flex}.app-user-bar{white-space:nowrap;align-items:center;gap:10px;margin-left:16px;display:flex}.app-user-name{color:#93c5fd;font-size:13px}.role-radio{flex-direction:column;gap:6px;display:flex}.role-option{cursor:pointer;border:1.5px solid #e2e8f0;border-radius:8px;align-items:flex-start;gap:10px;padding:10px 12px;transition:border-color .15s,background .15s;display:flex}.role-option input{flex-shrink:0;margin-top:2px}.role-option strong{color:#1e293b;font-size:13px;display:block}.role-option span{color:#64748b;font-size:12px;display:block}.role-option.selected{border-color:var(--brand-blue);background:var(--brand-blue-light)}.badge-inactive{color:#ef4444;background:#fef2f2;border:1px solid #fecaca;border-radius:4px;margin-left:6px;padding:1px 6px;font-size:11px}.card-inactive{opacity:.6}.plan-status-badge{white-space:nowrap;border:1px solid #0000;border-radius:12px;padding:3px 10px;font-size:12px;font-weight:600}.approval-summary{gap:12px;margin-bottom:20px;display:flex}.approval-kpi{text-align:center;border:2px solid;border-radius:10px;min-width:90px;padding:12px 20px}.approval-kpi-val{font-size:28px;font-weight:700;display:block}.approval-kpi-label{color:#64748b;margin-top:2px;font-size:12px;display:block}.approval-table{border-collapse:collapse;width:100%;font-size:14px}.approval-table th{text-align:left;color:#64748b;text-transform:uppercase;letter-spacing:.05em;background:#f8fafc;border-bottom:2px solid #e2e8f0;padding:10px 12px;font-size:12px;font-weight:600}.approval-table td{border-bottom:1px solid #f1f5f9;padding:10px 12px}.approval-table tr:hover td{background:#f8fafc}.myplan-status-bar{border:1.5px solid;border-radius:10px;align-items:center;gap:12px;margin-bottom:16px;padding:14px 16px;display:flex}.myplan-notice{color:#92400e;background:#fff7ed;border:1px solid #fde68a;border-radius:8px;margin-bottom:12px;padding:10px 14px;font-size:13px}.myplan-grid{border:1px solid #e2e8f0;border-radius:10px;font-size:13px;overflow:hidden}.myplan-grid-header{background:#f8fafc;border-bottom:2px solid #e2e8f0;grid-template-columns:56px repeat(5,1fr);display:grid}.myplan-th-hour{padding:8px 6px}.myplan-th-day{text-align:center;color:#1b2b5e;padding:8px 6px;font-weight:600}.myplan-th-today{background:#eef1f8}.myplan-grid-row{border-bottom:1px solid #f1f5f9;grid-template-columns:56px repeat(5,1fr);display:grid}.myplan-td-hour{color:#94a3b8;justify-content:flex-end;align-items:center;padding:6px 8px 6px 6px;font-size:11px;display:flex}.myplan-td-cell{align-items:center;min-height:36px;padding:4px;display:flex}.myplan-td-free{background:#fafafa}.myplan-td-today{background:#eef1f8}.myplan-td-allocated{background:#f0fdf4}.myplan-chip{border-radius:5px;flex-direction:column;gap:1px;width:100%;padding:3px 6px;display:flex}.myplan-chip-project{color:#fff;white-space:nowrap;text-overflow:ellipsis;font-size:11px;font-weight:600;overflow:hidden}.myplan-chip-wt{color:#ffffffd9;white-space:nowrap;text-overflow:ellipsis;font-size:10px;overflow:hidden}.myplan-free-label{color:#cbd5e1;margin:auto;font-size:10px}.form-section-divider{color:#94a3b8;text-transform:uppercase;letter-spacing:.08em;border-top:1px solid #f1f5f9;margin-top:8px;padding:10px 0 6px;font-size:12px;font-weight:700}.client-tag,.user-access-badge{border:1px solid;border-radius:10px;align-items:center;gap:4px;padding:2px 8px;font-size:12px;display:inline-flex}.exec-kpi-bar{flex-wrap:wrap;gap:16px;margin-bottom:20px;display:flex}.exec-kpi{background:#f8fafc;border:1px solid #e2e8f0;border-radius:10px;flex:1;min-width:140px;padding:14px 20px}.exec-kpi-num{color:#1b2b5e;font-size:22px;font-weight:700;display:block}.exec-kpi-label{color:#64748b;text-transform:uppercase;letter-spacing:.06em;font-size:11px}.exec-table-wrap{overflow-x:auto}.exec-table{border-collapse:collapse;width:100%;font-size:14px}.exec-table th{text-align:left;color:#64748b;text-transform:uppercase;letter-spacing:.05em;background:#f8fafc;border-bottom:2px solid #e2e8f0;padding:10px 12px;font-size:12px;font-weight:600}.exec-table td{vertical-align:middle;border-bottom:1px solid #f1f5f9;padding:10px 12px}.exec-row:hover td{background:#f8fafc}.exec-dot{border-radius:50%;flex-shrink:0;width:10px;height:10px;margin-right:6px;display:inline-block}.exec-project-name{font-weight:600}.exec-na{color:#94a3b8;font-size:13px}.exec-bar-wrap{align-items:center;gap:8px;display:flex}.exec-bar-bg{background:#e2e8f0;border-radius:4px;flex:1;min-width:80px;height:8px;overflow:hidden}.exec-bar-fill{border-radius:4px;height:100%;transition:width .3s}.exec-pct{text-align:right;flex-shrink:0;width:48px;font-size:13px;font-weight:700}.exec-status-label{white-space:nowrap;font-size:11px}.exec-detail-kpi{background:#f8fafc;border-radius:10px;gap:16px;margin-bottom:4px;padding:14px 16px;display:flex}.exec-detail-kpi>div{text-align:center;flex:1;font-size:18px}.audit-filters{flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:16px;display:flex}.audit-filters select,.audit-filters input{border:1px solid #d1d5db;border-radius:7px;padding:6px 10px;font-size:13px}.audit-table{font-size:13px}.audit-table th{white-space:nowrap}.audit-ts{white-space:nowrap;color:#64748b;font-size:12px}.audit-user{font-weight:600}.audit-detail{color:#475569;word-break:break-word;max-width:280px;font-size:12px}.audit-row-fail td{background:#fef2f2!important}.audit-action-badge{white-space:nowrap;border:1px solid;border-radius:10px;padding:2px 8px;font-size:11px;font-weight:600}.audit-role-badge{border-radius:10px;padding:2px 8px;font-size:11px;font-weight:600}.audit-pagination{color:#64748b;justify-content:center;align-items:center;gap:8px;margin-top:16px;font-size:13px;display:flex}.nav-sep{background:#ffffff40;align-self:stretch;width:1px;margin:6px 4px;display:inline-block}.nav-tab-admin{opacity:.85}.nav-tab-admin.active{opacity:1}.past-week-banner{color:#92400e;background:#fef3c7;border:1px solid #f59e0b;border-radius:8px;margin-bottom:12px;padding:10px 16px;font-size:13px;font-weight:500}.td-readonly{cursor:default!important}.admin-roles-grid{grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:16px;margin-top:4px;display:grid}.admin-role-card{background:#fff;border:1px solid #e2e8f0;border-left:4px solid;border-radius:10px;padding:16px}.admin-role-header{justify-content:space-between;align-items:center;margin-bottom:6px;display:flex}.admin-role-badge{border-radius:20px;padding:2px 10px;font-size:13px;font-weight:700}.admin-role-count{color:#94a3b8;font-size:12px}.admin-role-desc{color:#475569;margin-bottom:6px;font-size:13px}.admin-role-access{color:#94a3b8;margin-bottom:8px;font-size:12px}.admin-role-users{flex-wrap:wrap;gap:4px;margin-top:6px;display:flex}.admin-user-chip{color:#475569;background:#f1f5f9;border-radius:6px;padding:2px 8px;font-size:12px}.admin-user-chip.chip-inactive{opacity:.5;text-decoration:line-through}.admin-role-perms{flex-wrap:wrap;gap:4px;margin-top:8px;display:flex}.perm-chip{color:#475569;background:#f1f5f9;border:1px solid #e2e8f0;border-radius:10px;padding:2px 8px;font-size:11px}.perm-all{color:#92400e;background:#fef3c7;border-color:#f59e0b55;font-weight:600}.perm-grid{flex-direction:column;gap:4px;margin-top:4px;display:flex}.perm-row{cursor:pointer;border:1px solid #e2e8f0;border-radius:8px;grid-template-columns:20px 1fr 1fr;align-items:center;gap:8px;padding:8px 10px;transition:background .15s;display:grid}.perm-row:hover{background:#f8fafc}.perm-row-on{background:#eff6ff;border-color:#3b82f655}.perm-row input[type=checkbox]{cursor:pointer;width:15px;height:15px}.perm-row-label{font-size:13px;font-weight:500}.perm-row-desc{color:#94a3b8;font-size:12px}.period-tabs{border:1px solid #d1d5db;border-radius:8px;gap:0;margin-right:4px;display:flex;overflow:hidden}.period-tab{color:#475569;cursor:pointer;background:#fff;border:none;border-right:1px solid #d1d5db;padding:5px 14px;font-size:13px;font-weight:500;transition:background .15s,color .15s}.period-tab:last-child{border-right:none}.period-tab:hover{background:#f1f5f9}.period-tab.active{background:var(--brand-blue);color:#fff}.ts-month-total-bar{color:#475569;background:#f8fafc;border:1px solid #e2e8f0;border-radius:10px;margin-bottom:16px;padding:10px 16px;font-size:14px}.ts-month-projects{padding:8px 16px 16px}.ts-month-project-row{border-bottom:1px solid #f1f5f9;grid-template-columns:12px 1fr 52px 1fr 44px;align-items:center;gap:10px;padding:6px 0;display:grid}.ts-month-project-row:last-child{border-bottom:none}.ts-month-project-name{color:#1e293b;font-size:13px}.ts-month-project-hours{color:#1e293b;text-align:right;font-size:13px;font-weight:600}.ts-month-bar-bg{background:#e2e8f0;border-radius:4px;height:6px;overflow:hidden}.ts-month-bar-fill{border-radius:4px;height:100%;transition:width .3s}.ts-month-pct{color:#94a3b8;text-align:right;font-size:11px}.cv-month-summary{margin:0 0 20px}.dash-score-badge{border-radius:10px;align-items:center;gap:6px;padding:3px 10px;font-size:12px;font-weight:600;display:inline-flex}
