@import"https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600&display=swap";.workflow-progress{margin:20px 0 30px;padding:20px;background:#fff;border-radius:8px;box-shadow:0 2px 4px #0000001a}.progress-steps{display:flex;justify-content:space-between;align-items:center;position:relative}.progress-step{display:flex;flex-direction:column;align-items:center;flex:1;position:relative}.step-link{display:flex;flex-direction:column;align-items:center;text-decoration:none;color:#666;transition:all .3s}.step-link:hover{color:#007bff}.step-number{width:40px;height:40px;border-radius:50%;background-color:#e0e0e0;color:#666;display:flex;align-items:center;justify-content:center;font-weight:700;margin-bottom:8px;transition:all .3s}.progress-step.active .step-number{background-color:#007bff;color:#fff}.progress-step.completed .step-number{background-color:#28a745;color:#fff}.step-label{font-size:14px;text-align:center}.progress-step.active .step-label{color:#007bff;font-weight:600}.step-connector{position:absolute;top:20px;left:60%;right:-40%;height:2px;background-color:#e0e0e0;z-index:-1}.progress-step.completed+.progress-step .step-connector{background-color:#28a745}@media (max-width: 768px){.step-label{font-size:12px}.step-number{width:30px;height:30px;font-size:14px}}.error-display{margin:20px 0;padding:20px;background-color:#fee;border:1px solid #fcc;border-radius:8px;border-left:4px solid #f44}.error-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:15px;flex-wrap:wrap;gap:10px}.error-category-badge{display:flex;align-items:center;gap:8px;padding:6px 12px;background-color:#fff;border-radius:6px;border:1px solid #ddd}.error-category-icon{font-size:18px}.error-category-label{font-size:13px;font-weight:600;color:#333}.error-frequency{font-size:12px;color:#666;font-style:italic;padding:4px 8px;background-color:#fff3cd;border-radius:4px}.error-message{font-size:16px;color:#c33;margin-bottom:15px;font-weight:500}.error-quick-actions{display:flex;gap:10px;margin-bottom:15px;flex-wrap:wrap}.error-details-section{margin:15px 0;padding:12px;background-color:#fff;border-radius:6px;border:1px solid #ddd}.error-details-section summary{cursor:pointer;font-weight:600;color:#333;padding:8px;-webkit-user-select:none;user-select:none;list-style:none}.error-details-section summary::-webkit-details-marker{display:none}.error-details-section summary:before{content:"▶";display:inline-block;margin-right:8px;transition:transform .2s}.error-details-section[open] summary:before{transform:rotate(90deg)}.error-details-section summary:hover{background-color:#f5f5f5;border-radius:4px}.what-went-wrong-content,.try-instead-content{margin-top:12px;padding:12px;background-color:#f8f9fa;border-radius:4px;border-left:3px solid #007bff}.what-went-wrong-content p,.try-instead-content p{margin:0;color:#555;line-height:1.6}.try-instead-content ul{margin:0;padding-left:20px;color:#555}.try-instead-content li{margin:8px 0;line-height:1.6}.error-id{font-size:12px;color:#999;font-weight:400;font-family:monospace}.debug-prompt-section{margin:20px 0;padding:15px;background-color:#f9f9f9;border-radius:6px;border:1px solid #ddd}.debug-prompt-title{margin:0 0 5px;font-size:14px;color:#333}.debug-prompt-subtitle{margin:0 0 15px;font-size:12px;color:#666}.logs-indicator{color:#2196f3;font-weight:600;margin-left:5px}.prompt-boxes{display:flex;flex-direction:column;gap:15px}.prompt-box{background-color:#fff;border:1px solid #ddd;border-radius:6px;padding:15px}.prompt-box.spartan{border-left:3px solid #4a9}.prompt-box.detailed{border-left:3px solid #49a}.prompt-header{font-size:13px;font-weight:600;margin-bottom:10px;color:#333}.prompt-content{background-color:#f5f5f5;padding:12px;border-radius:4px;font-family:Courier New,monospace;font-size:11px;line-height:1.5;white-space:pre-wrap;word-wrap:break-word;max-height:200px;overflow-y:auto;margin-bottom:10px;border:1px solid #ddd}.prompt-box button{width:100%;margin-top:5px}.debug-hints{margin:20px 0;padding:15px;background-color:#fff3cd;border:1px solid #ffc107;border-radius:6px;border-left:4px solid #ff9800}.debug-hints strong{display:block;margin-bottom:10px;color:#856404}.debug-hints ul{margin:0;padding-left:20px;color:#856404}.debug-hints li{margin:5px 0;font-size:13px}.debug-actions{margin:15px 0;display:flex;gap:10px}.debug-info{margin-top:15px;padding:15px;background-color:#f5f5f5;border-radius:6px;border:1px solid #ddd}.debug-header{margin-bottom:15px;padding-bottom:10px;border-bottom:1px solid #ddd;font-size:13px;color:#666}.debug-header div{margin:5px 0}.debug-header strong{color:#333}.debug-details{margin-top:15px}.debug-details summary{cursor:pointer;font-weight:600;color:#333;padding:8px;background-color:#e9e9e9;border-radius:4px;-webkit-user-select:none;user-select:none}.debug-details summary:hover{background-color:#ddd}.debug-details pre{margin-top:10px;padding:12px;background-color:#fff;border:1px solid #ddd;border-radius:4px;font-family:Courier New,monospace;font-size:11px;line-height:1.5;overflow-x:auto;max-height:400px;overflow-y:auto}.ai-resolution-section{margin:20px 0;padding:15px;background-color:#e7f3ff;border-radius:6px;border:1px solid #b3d9ff}.ai-resolution-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:15px}.ai-resolution-header strong{font-size:14px;color:#004085}.ai-loading{padding:15px;background-color:#fff;border-radius:4px;text-align:center;color:#666;font-style:italic}.ai-error{padding:10px;background-color:#fff3cd;border:1px solid #ffc107;border-radius:4px;color:#856404;margin-bottom:10px}.ai-resolution{background-color:#fff;border-radius:6px;padding:15px;border:1px solid #b3d9ff}.resolution-header{margin-bottom:15px;padding-bottom:10px;border-bottom:1px solid #ddd}.resolution-meta{display:flex;gap:10px;align-items:center}.severity-badge{padding:4px 8px;border-radius:4px;color:#fff;font-size:11px;font-weight:600;text-transform:uppercase}.estimated-time{font-size:12px;color:#666}.resolution-cause{margin:15px 0;padding:12px;background-color:#f8f9fa;border-left:3px solid #007bff;border-radius:4px}.resolution-cause strong{display:block;margin-bottom:8px;color:#333}.resolution-cause p{margin:0;color:#555;line-height:1.6}.resolution-fix{margin:15px 0;padding:12px;background-color:#f8f9fa;border-left:3px solid #28a745;border-radius:4px}.resolution-fix strong{display:block;margin-bottom:8px;color:#333}.fix-summary{margin:8px 0;padding:8px;background-color:#e7f5e7;border-radius:4px;font-style:italic;color:#155724}.fix-steps{margin:10px 0 0;padding-left:25px}.fix-steps li{margin:8px 0;color:#555;line-height:1.6}.resolution-prevention{margin:15px 0 0;padding:12px;background-color:#fff3cd;border-left:3px solid #ffc107;border-radius:4px}.resolution-prevention strong{display:block;margin-bottom:8px;color:#856404}.resolution-prevention p{margin:0;color:#856404;line-height:1.6}.debug-logs-section{margin:20px 0;padding:15px;background-color:#f0f0f0;border-radius:6px;border:1px solid #ddd}.debug-logs-header{display:flex;align-items:center;gap:10px;margin-bottom:10px;flex-wrap:wrap}.debug-logs-header strong{font-size:14px;color:#333}.logs-count{font-size:12px;color:#666;font-style:italic}.debug-logs-container{margin-top:15px}.debug-logs-content{background-color:#1e1e1e;color:#d4d4d4;padding:15px;border-radius:4px;font-family:Courier New,monospace;font-size:11px;line-height:1.6;white-space:pre-wrap;word-wrap:break-word;max-height:400px;overflow-y:auto;border:1px solid #444;margin-bottom:10px}.debug-logs-note{margin:10px 0 0;padding:10px;background-color:#e3f2fd;border-left:3px solid #2196f3;border-radius:4px;font-size:12px;color:#1565c0}.debug-logs-note strong{color:#0d47a1}@media (max-width: 768px){.prompt-boxes{flex-direction:column}.prompt-content{font-size:10px}.ai-resolution-header{flex-direction:column;align-items:flex-start;gap:10px}.ai-resolution-header button{width:100%}.resolution-meta,.debug-logs-header{flex-direction:column;align-items:flex-start}.debug-logs-header button{width:100%}.debug-logs-content{font-size:10px;max-height:300px}}.issue-feedback-thread{margin-top:15px;border-top:1px solid #e9ecef;padding-top:15px}.feedback-toggle{width:100%;padding:10px 15px;background:#f8f9fa;border:1px solid #dee2e6;border-radius:6px;cursor:pointer;font-size:.9em;font-weight:500;color:#495057;display:flex;align-items:center;justify-content:space-between;transition:all .2s}.feedback-toggle:hover{background:#e9ecef;border-color:#adb5bd}.resolved-indicator{color:#28a745;font-weight:700;margin-left:8px}.active-indicator{color:#007bff;font-weight:700;margin-left:8px;animation:pulse 2s infinite}.feedback-content{margin-top:15px;padding:15px;background:#fff;border:1px solid #e9ecef;border-radius:6px}.conversation-messages{max-height:400px;overflow-y:auto;margin-bottom:15px;padding:10px;background:#f8f9fa;border-radius:4px}.message{margin-bottom:15px;animation:slideUp var(--duration-slow) var(--ease-in)}.message.user{display:flex;justify-content:flex-end}.message.assistant{display:flex;justify-content:flex-start}.ai-message{display:flex;gap:10px;max-width:80%}.ai-avatar{width:32px;height:32px;border-radius:50%;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;display:flex;align-items:center;justify-content:center;font-size:.75em;font-weight:700;flex-shrink:0}.message-content{background:#fff;padding:12px 15px;border-radius:12px;box-shadow:0 1px 3px #0000001a;flex:1}.message-content p{margin:0;color:#212529;line-height:1.5}.confidence-low{display:inline-block;margin-top:5px;font-size:.75em;color:#856404;background:#fff3cd;padding:2px 6px;border-radius:3px}.user-message{display:flex;gap:10px;max-width:80%;flex-direction:row-reverse}.user-avatar{width:32px;height:32px;border-radius:50%;background:#007bff;color:#fff;display:flex;align-items:center;justify-content:center;font-size:.75em;font-weight:700;flex-shrink:0}.user-message .message-content{background:#007bff;color:#fff}.user-message .message-content p{color:#fff}.message.error .message-content{background:#f8d7da;border:1px solid #f5c6cb}.ai-questions{margin-top:10px;padding:10px;background:#e7f3ff;border-left:3px solid #007bff;border-radius:4px}.question-item{margin-bottom:10px}.question-item:last-child{margin-bottom:0}.question-text{margin:0 0 8px;font-weight:500;color:#004085}.question-options{display:flex;flex-wrap:wrap;gap:8px}.resolution-options{margin-top:10px;padding:10px;background:#f0f9ff;border-left:3px solid #17a2b8;border-radius:4px}.options-label{margin:0 0 10px;font-weight:600;color:#0c5460;font-size:.9em}.option-card{background:#fff;padding:12px;border-radius:6px;margin-bottom:10px;border:1px solid #bee5eb}.option-card:last-child{margin-bottom:0}.option-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:8px}.option-header h5{margin:0;color:#0c5460;font-size:1em}.option-reasoning{font-size:.85em;color:#6c757d;font-style:italic}.option-description{margin:0 0 10px;color:#495057;font-size:.9em}.resolution-preview{margin-top:10px;padding:10px;background:#d4edda;border-left:3px solid #28a745;border-radius:4px;color:#155724;font-size:.9em}.resolved-badge{padding:10px 15px;background:#d4edda;color:#155724;border-radius:6px;text-align:center;font-weight:500;margin-bottom:15px}.quick-responses{margin-bottom:15px;padding:12px;background:#f8f9fa;border-radius:6px}.quick-responses-label{margin:0 0 10px;font-size:.85em;color:#6c757d;font-weight:500}.quick-response-buttons{display:flex;flex-wrap:wrap;gap:8px}.feedback-input{margin-top:15px}.feedback-input textarea{width:100%;padding:12px;border:1px solid #ced4da;border-radius:6px;font-size:.95em;font-family:inherit;resize:vertical;min-height:80px;transition:border-color .2s}.feedback-input textarea:focus{outline:none;border-color:#007bff;box-shadow:0 0 0 3px #007bff1a}.feedback-input textarea:disabled{background:#e9ecef;cursor:not-allowed}.feedback-actions{display:flex;justify-content:space-between;align-items:center;margin-top:10px}.input-hint{font-size:.8em;color:#6c757d}.issue-feedback-section{margin-top:15px;padding-top:15px;border-top:1px solid #e9ecef}@media (max-width: 768px){.ai-message,.user-message{max-width:90%}.feedback-actions{flex-direction:column;align-items:stretch;gap:8px}.input-hint{text-align:center}}.toast-container{position:fixed;top:20px;right:20px;z-index:10000;display:flex;flex-direction:column;gap:12px;max-width:400px;pointer-events:none}.toast{display:flex;align-items:center;justify-content:space-between;padding:14px 16px;border-radius:8px;box-shadow:0 4px 12px #00000026;background:#fff;color:#333;min-width:300px;max-width:400px;pointer-events:auto;animation:slideInRight .3s ease-out;transition:transform .3s ease-out,opacity .3s ease-out}.toast-exiting{transform:translate(100%);opacity:0}@keyframes slideInRight{0%{transform:translate(100%);opacity:0}to{transform:translate(0);opacity:1}}.toast-content{display:flex;align-items:center;gap:12px;flex:1}.toast-icon{font-size:18px;font-weight:700;flex-shrink:0;width:24px;height:24px;display:flex;align-items:center;justify-content:center;border-radius:50%}.toast-message{flex:1;font-size:14px;line-height:1.4;word-wrap:break-word}.toast-dismiss{background:none;border:none;font-size:24px;color:#666;cursor:pointer;padding:0;margin-left:12px;width:24px;height:24px;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:color .2s}.toast-dismiss:hover{color:#333}.toast-success{background:#f0fdf4;border-left:4px solid #22c55e}.toast-success .toast-icon{color:#22c55e;background:#dcfce7}.toast-error{background:#fef2f2;border-left:4px solid #ef4444}.toast-error .toast-icon{color:#ef4444;background:#fee2e2}.toast-warning{background:#fffbeb;border-left:4px solid #f59e0b}.toast-warning .toast-icon{color:#f59e0b;background:#fef3c7}.toast-info{background:#eff6ff;border-left:4px solid #3b82f6}.toast-info .toast-icon{color:#3b82f6;background:#dbeafe}@media (max-width: 768px){.toast-container{top:10px;right:10px;left:10px;max-width:none}.toast{min-width:auto;max-width:none}}.validation-review{margin-top:var(--spacing-8);padding:var(--spacing-6);background:var(--muted);border-radius:var(--radius-lg);border:1px solid var(--border)}.validation-header{margin-bottom:var(--spacing-6)}.validation-header h3{margin:0 0 var(--spacing-2-5) 0;color:var(--foreground);font-size:var(--text-2xl);font-weight:var(--font-weight-semibold)}.validation-summary{color:var(--muted-foreground);margin:0 0 var(--spacing-4) 0;font-size:var(--text-base)}.validation-alert{padding:var(--spacing-3) var(--spacing-4);border-radius:var(--radius-md);margin-top:var(--spacing-2-5);font-size:var(--text-sm)}.error-alert{background:color-mix(in srgb,var(--destructive) 20%,transparent);color:var(--foreground);border:1px solid var(--destructive)}.warning-alert{background:color-mix(in srgb,var(--chart-3) 20%,transparent);color:var(--foreground);border:1px solid var(--chart-3)}.validation-section{margin-bottom:var(--spacing-8)}.validation-section h4{margin:0 0 var(--spacing-4) 0;font-size:var(--text-lg);font-weight:var(--font-weight-semibold);color:var(--foreground)}.validation-item{background:var(--card);padding:var(--spacing-5);border-radius:var(--radius-md);margin-bottom:var(--spacing-3);display:flex;justify-content:space-between;align-items:flex-start;gap:var(--spacing-5);box-shadow:var(--elevation-sm)}.error-item{border-left:4px solid var(--destructive)}.warning-item{border-left:4px solid var(--chart-3)}.issue-content{flex:1;min-width:0}.issue-header{display:flex;align-items:center;gap:var(--spacing-4);margin-bottom:var(--spacing-2)}.issue-header strong{color:var(--foreground);font-size:var(--text-base);font-weight:var(--font-weight-semibold)}.issue-field{font-size:var(--text-xs);color:var(--muted-foreground);background:var(--muted);padding:var(--spacing-1) var(--spacing-2);border-radius:var(--radius-md)}.issue-message{margin:var(--spacing-2) 0 var(--spacing-3) 0;color:var(--foreground);line-height:1.5;font-size:var(--text-sm)}.shift-details{display:flex;flex-direction:column;gap:var(--spacing-1-5);font-size:var(--text-sm);margin-top:var(--spacing-2-5);padding:var(--spacing-2-5);background:var(--muted);border-radius:var(--radius-md)}.detail-item{display:flex;gap:var(--spacing-2-5)}.detail-label{font-weight:var(--font-weight-medium);color:var(--muted-foreground);min-width:60px}.detail-value{color:var(--foreground)}.suggestion-info{margin-top:var(--spacing-3);padding:var(--spacing-2-5);background:color-mix(in srgb,var(--primary) 10%,transparent);border-left:3px solid var(--primary);border-radius:var(--radius-md);font-size:var(--text-sm);color:var(--foreground)}.suggestion-reason{font-style:italic;color:var(--muted-foreground)}.roster-suggestion{background:color-mix(in srgb,var(--primary) 5%,transparent);border-left:4px solid var(--primary);padding:var(--spacing-3);margin-top:var(--spacing-2);border-radius:var(--radius-md)}.roster-suggestion .suggestion-text{font-size:var(--text-base);line-height:1.6;color:var(--primary);margin:var(--spacing-2) 0;font-weight:var(--font-weight-medium)}.roster-suggestion .suggestion-reason{margin-top:var(--spacing-2-5);padding-top:var(--spacing-2-5);border-top:1px solid var(--border);font-size:var(--text-sm);color:var(--muted-foreground);line-height:1.5;font-style:normal}.roster-suggestion .suggestion-reason strong{color:var(--primary);font-weight:var(--font-weight-semibold)}.issue-actions{display:flex;flex-direction:column;gap:8px;flex-shrink:0}.btn-sm{padding:var(--spacing-2) var(--spacing-3-5);font-size:var(--text-xs);white-space:nowrap;border:none;border-radius:var(--radius-md);cursor:pointer;font-weight:var(--font-weight-medium);transition:all var(--duration-normal) var(--ease-out)}.btn-sm.btn-primary{background:var(--primary);color:var(--primary-foreground)}.btn-sm.btn-primary:hover{background:color-mix(in srgb,var(--primary) 90%,black)}.btn-sm.btn-secondary{background:var(--muted-foreground);color:#fff}.btn-sm.btn-secondary:hover{background:color-mix(in srgb,var(--muted-foreground) 90%,black)}.btn-sm.btn-outline{background:transparent;color:var(--muted-foreground);border:1px solid var(--border)}.btn-sm.btn-outline:hover{background:var(--muted);border-color:var(--muted-foreground)}.edit-modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;padding:var(--spacing-5)}.edit-modal{background:var(--card);padding:0;border-radius:var(--radius-lg);max-width:550px;width:100%;max-height:90vh;overflow-y:auto;box-shadow:var(--elevation-lg)}.edit-modal-header{display:flex;justify-content:space-between;align-items:center;padding:var(--spacing-5) var(--spacing-6);border-bottom:1px solid var(--border)}.edit-modal-header h4{margin:0;color:var(--foreground);font-size:var(--text-lg);font-weight:var(--font-weight-semibold)}.modal-close-btn{background:none;border:none;font-size:var(--text-2xl);color:var(--muted-foreground);cursor:pointer;padding:0;width:30px;height:30px;display:flex;align-items:center;justify-content:center;line-height:1;border-radius:var(--radius-md);transition:all var(--duration-normal) var(--ease-out)}.modal-close-btn:hover{background:var(--muted);color:var(--foreground)}.edit-form{padding:var(--spacing-6)}.form-group{margin-bottom:var(--spacing-5)}.form-group label{display:block;margin-bottom:var(--spacing-2);font-weight:var(--font-weight-medium);color:var(--foreground);font-size:var(--text-sm)}.form-group input{width:100%;padding:var(--spacing-2-5);border:1px solid var(--border);border-radius:var(--radius-md);font-size:var(--text-sm);background:var(--input-background);color:var(--foreground);transition:border-color var(--duration-normal) var(--ease-out)}.form-group input:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px color-mix(in srgb,var(--ring) 30%,transparent)}.modal-actions{display:flex;gap:var(--spacing-2-5);justify-content:flex-end;padding:var(--spacing-5) var(--spacing-6);border-top:1px solid var(--border)}.modal-actions .btn{padding:var(--spacing-2-5) var(--spacing-5);border:none;border-radius:var(--radius-md);cursor:pointer;font-weight:var(--font-weight-medium);transition:all var(--duration-normal) var(--ease-out);font-size:var(--text-sm)}.modal-actions .btn-secondary{background:var(--muted-foreground);color:#fff}.modal-actions .btn-secondary:hover{background:color-mix(in srgb,var(--muted-foreground) 90%,black)}.modal-actions .btn-primary{background:var(--primary);color:var(--primary-foreground)}.modal-actions .btn-primary:hover{background:color-mix(in srgb,var(--primary) 90%,black)}.validation-footer{margin-top:var(--spacing-8);padding-top:var(--spacing-5);border-top:2px solid var(--border);text-align:center}.validation-footer .btn{padding:var(--spacing-3) var(--spacing-8);font-size:var(--text-base);border:none;border-radius:var(--radius-md);cursor:pointer;font-weight:var(--font-weight-medium);transition:all var(--duration-normal) var(--ease-out);background:var(--primary);color:var(--primary-foreground)}.validation-footer .btn:hover{background:color-mix(in srgb,var(--primary) 90%,black)}.footer-note{margin-top:var(--spacing-3);font-size:var(--text-sm);color:var(--muted-foreground);font-style:italic}.issue-feedback-section{margin-top:var(--spacing-4);padding-top:var(--spacing-4);border-top:1px solid var(--border)}@media (max-width: 768px){.validation-item{flex-direction:column}.issue-actions{flex-direction:row;width:100%}.btn-sm{flex:1}}.file-upload{max-width:600px;margin:40px auto}.file-upload h2{margin-bottom:10px}.upload-area{border:2px dashed #ccc;border-radius:8px;padding:40px;text-align:center;margin:30px 0;background-color:#fff;transition:all .3s;cursor:pointer}.upload-area.drag-active{border-color:#007bff;background-color:#f0f8ff}.upload-label{cursor:pointer;display:block}.upload-icon{font-size:48px;margin-bottom:10px}.file-name{font-weight:600;color:#007bff;margin-bottom:5px}.file-size{color:#666;font-size:14px}.upload-hint{color:#999;font-size:12px;margin-top:10px}.ratio-display{display:inline-flex;align-items:center;gap:.5rem;padding:.25rem .5rem;border-radius:4px;font-size:.875rem}.ratio-value{font-weight:600;color:#333}.ratio-source{font-size:.75rem;color:#666;font-style:italic}.ratio-display.risk-level{background-color:#fff3cd;border:1px solid #ffc107}.ratio-display.service-type{background-color:#d1ecf1;border:1px solid #17a2b8}.ratio-display.default{background-color:#f8f9fa;border:1px solid #dee2e6}.ai-assistant{margin:var(--spacing-5) 0;padding:var(--spacing-5);background-color:var(--muted);border-radius:var(--radius-lg);border:1px solid var(--border)}.ai-loading{text-align:center;padding:var(--spacing-10) var(--spacing-5);color:var(--muted-foreground)}.ai-loading p{font-size:var(--text-base);margin:var(--spacing-2-5) 0}.loading-subtitle{font-size:var(--text-sm);color:var(--muted-foreground);font-style:italic}.ai-message{display:flex;gap:var(--spacing-4);margin-bottom:var(--spacing-6);padding:var(--spacing-4);background-color:var(--card);border-radius:var(--radius-lg);border-left:4px solid var(--primary)}.ai-avatar{font-size:var(--text-2xl);flex-shrink:0}.ai-content{flex:1}.ai-content p{margin:0;font-size:var(--text-base);line-height:1.6;color:var(--foreground)}.ai-options{margin:var(--spacing-6) 0}.ai-options h3{margin-bottom:var(--spacing-4);color:var(--foreground);font-size:var(--text-lg);font-weight:var(--font-weight-semibold)}.option-card{background-color:var(--card);border:2px solid var(--border);border-radius:var(--radius-lg);padding:var(--spacing-5);margin-bottom:var(--spacing-4);cursor:pointer;transition:all var(--duration-normal) var(--ease-out);position:relative}.option-card:hover{border-color:var(--primary);box-shadow:var(--elevation-sm)}.option-card.selected{border-color:var(--primary);background-color:color-mix(in srgb,var(--primary) 10%,transparent);box-shadow:var(--elevation-md)}.option-card.recommended{border-color:var(--chart-3)}.recommended-badge{position:absolute;top:var(--spacing-2-5);right:var(--spacing-2-5);background-color:var(--chart-3);color:var(--foreground);padding:var(--spacing-1) var(--spacing-2);border-radius:var(--radius-md);font-size:var(--text-xs);font-weight:var(--font-weight-semibold)}.option-card h4{margin:0 0 var(--spacing-2-5) 0;color:var(--primary);font-size:var(--text-base);font-weight:var(--font-weight-semibold)}.option-description{margin:var(--spacing-2-5) 0;color:var(--foreground);line-height:1.6;font-size:var(--text-sm)}.option-reasoning{margin:var(--spacing-4) 0;padding:var(--spacing-3);background-color:var(--muted);border-left:3px solid var(--chart-2);border-radius:var(--radius-md);font-size:var(--text-sm);color:var(--foreground)}.option-reasoning strong{color:var(--foreground);display:block;margin-bottom:var(--spacing-1-5);font-weight:var(--font-weight-semibold)}.action-preview{margin-top:var(--spacing-4);padding:var(--spacing-3);background-color:color-mix(in srgb,var(--chart-2) 10%,transparent);border-radius:var(--radius-md);border-left:3px solid var(--chart-2)}.action-preview strong{display:block;margin-bottom:var(--spacing-2);color:var(--foreground);font-weight:var(--font-weight-semibold)}.action-preview ul{margin:0;padding-left:var(--spacing-5);color:var(--foreground)}.action-preview li{margin:var(--spacing-1-5) 0}.preview-names{font-style:italic;color:var(--muted-foreground)}.ai-error{padding:var(--spacing-4);background-color:color-mix(in srgb,var(--chart-3) 20%,transparent);border:1px solid var(--chart-3);border-radius:var(--radius-md);color:var(--foreground);margin:var(--spacing-4) 0}.ai-actions{display:flex;gap:var(--spacing-2-5);justify-content:flex-end;margin-top:var(--spacing-6);padding-top:var(--spacing-5);border-top:1px solid var(--border)}.execution-results{padding:var(--spacing-5);background-color:var(--card);border-radius:var(--radius-lg);border:2px solid}.execution-results.success{border-color:var(--chart-2);background-color:color-mix(in srgb,var(--chart-2) 20%,transparent)}.execution-results.partial{border-color:var(--chart-3);background-color:color-mix(in srgb,var(--chart-3) 20%,transparent)}.execution-results h3{margin:0 0 var(--spacing-2-5) 0;color:var(--foreground);font-size:var(--text-lg);font-weight:var(--font-weight-semibold)}.execution-results.partial h3{color:var(--foreground)}.operation-results{margin-top:var(--spacing-5)}.operation-result{padding:var(--spacing-3);margin:var(--spacing-2-5) 0;border-radius:var(--radius-md);background-color:var(--card)}.operation-result.success{border-left:3px solid var(--chart-2)}.operation-result.failed{border-left:3px solid var(--destructive)}.operation-result strong{display:block;margin-bottom:var(--spacing-2);font-weight:var(--font-weight-semibold);color:var(--foreground)}.operation-result ul{margin:var(--spacing-2) 0 0 0;padding-left:var(--spacing-5)}.operation-result ul li{margin:var(--spacing-1) 0;font-size:var(--text-xs)}.operation-result ul li.success{color:var(--foreground)}.operation-result ul li.failed{color:var(--destructive)}.operation-result .errors{margin-top:var(--spacing-2);padding-top:var(--spacing-2);border-top:1px solid var(--border)}.operation-result .errors li{color:var(--destructive)}.success-message{margin-top:var(--spacing-4);padding:var(--spacing-2-5);background-color:color-mix(in srgb,var(--chart-2) 20%,transparent);border-radius:var(--radius-md);color:var(--foreground);font-style:italic;text-align:center}@media (max-width: 768px){.ai-message{flex-direction:column}.ai-avatar{text-align:center}.ai-actions{flex-direction:column}.ai-actions button{width:100%}.option-card{padding:15px}.recommended-badge{position:static;display:inline-block;margin-bottom:10px}}.section-ai-feedback{margin:15px 0;border:1px solid #dee2e6;border-radius:6px;background-color:#f8f9fa}.btn-feedback-toggle{width:100%;padding:12px 16px;background-color:#e9ecef;border:none;border-radius:6px 6px 0 0;cursor:pointer;display:flex;align-items:center;gap:10px;font-size:14px;font-weight:500;color:#495057;transition:background-color .2s ease}.btn-feedback-toggle:hover{background-color:#dee2e6}.toggle-icon{font-size:12px;color:#007bff}.feedback-panel{padding:20px;background-color:#fff;border-radius:0 0 6px 6px}.feedback-input-section{margin-bottom:20px}.feedback-input-section label{display:block;margin-bottom:8px;font-weight:500;color:#333;font-size:14px}.feedback-input-section textarea{width:100%;padding:10px;border:1px solid #ced4da;border-radius:4px;font-size:14px;font-family:inherit;resize:vertical;margin-bottom:12px}.feedback-input-section textarea:focus{outline:none;border-color:#007bff;box-shadow:0 0 0 3px #007bff1a}.feedback-input-section textarea:disabled{background-color:#e9ecef;cursor:not-allowed}.feedback-error{padding:12px;background-color:#f8d7da;border:1px solid #f5c6cb;border-radius:4px;color:#721c24;margin-bottom:15px;font-size:14px}.suggestions{margin-top:20px;padding-top:20px;border-top:1px solid #dee2e6}.suggestions h4{margin:0 0 10px;color:#333;font-size:16px}.suggestions .summary{margin:0 0 15px;color:#666;font-size:14px;font-style:italic}.suggestions-list{display:flex;flex-direction:column;gap:15px}.suggestion-item{padding:15px;background-color:#f8f9fa;border:1px solid #dee2e6;border-radius:6px;border-left:3px solid #007bff}.suggestion-item.applied{background-color:#d4edda;border-left-color:#28a745}.suggestion-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}.suggestion-header strong{color:#333;font-size:14px}.applied-badge{background-color:#28a745;color:#fff;padding:2px 8px;border-radius:12px;font-size:11px;font-weight:600}.reasoning{margin:8px 0;color:#666;font-size:13px;line-height:1.5}.suggestion-details{display:flex;align-items:center;gap:10px;margin:10px 0;flex-wrap:wrap}.detail-label{font-size:12px;color:#6c757d;font-weight:500}.suggestion-details code{background-color:#e9ecef;padding:4px 8px;border-radius:3px;font-size:12px;color:#495057;font-family:Courier New,monospace}.btn-sm{padding:6px 12px;font-size:13px;margin-top:8px}.no-suggestions{color:#6c757d;font-style:italic;font-size:14px;margin:0}@media (max-width: 768px){.suggestion-details{flex-direction:column;align-items:flex-start}.suggestion-header{flex-direction:column;align-items:flex-start;gap:8px}}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;padding:20px}.modal-content{background:#fff;border-radius:8px;max-width:900px;max-height:90vh;overflow-y:auto;width:100%;box-shadow:0 4px 20px #0000004d;display:flex;flex-direction:column}.modal-header{display:flex;align-items:center;justify-content:space-between;padding:20px 30px;border-bottom:1px solid #dee2e6}.modal-header h2{margin:0;color:#2c3e50}.modal-close{background:none;border:none;font-size:32px;color:#6c757d;cursor:pointer;padding:0;width:32px;height:32px;display:flex;align-items:center;justify-content:center;line-height:1;transition:color .2s}.modal-close:hover{color:#2c3e50}.modal-body{padding:30px;flex:1;overflow-y:auto}.shift-info{margin-bottom:25px;padding-bottom:20px;border-bottom:2px solid #e9ecef}.shift-info h3{margin:0 0 10px;color:#2c3e50;font-size:1.3em}.shift-time-range{margin:0;font-size:1.1em;color:#007bff;font-weight:600}.assignment-table{width:100%;border-collapse:collapse;margin-top:20px}.assignment-table thead{background:#f8f9fa}.assignment-table th{padding:12px;text-align:left;font-weight:600;color:#2c3e50;border-bottom:2px solid #dee2e6}.assignment-table td{padding:15px 12px;border-bottom:1px solid #e9ecef}.assignment-table tbody tr:hover{background:#f8f9fa}.assignment-table select{padding:8px 12px;border:1px solid #ced4da;border-radius:4px;font-size:14px;background:#fff;cursor:pointer}.assignment-table select:focus{outline:none;border-color:#007bff;box-shadow:0 0 0 3px #007bff1a}.no-clients{text-align:center;color:#6c757d;padding:40px;font-style:italic}.modal-footer{padding:20px 30px;border-top:1px solid #dee2e6;display:flex;justify-content:flex-end;gap:10px}.modal-footer .btn{padding:10px 20px;border:none;border-radius:4px;cursor:pointer;font-size:14px;font-weight:500;transition:all .2s}.modal-footer .btn-secondary{background:#6c757d;color:#fff}.modal-footer .btn-secondary:hover{background:#5a6268}.modal-footer .btn-primary{background:#007bff;color:#fff}.modal-footer .btn-primary:hover{background:#0056b3}.shift-assignment{margin:20px 0}.shifts-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:20px}.shift-card{background:#fff;border:2px solid #dee2e6;border-radius:8px;padding:20px;cursor:pointer;transition:all .2s ease;display:flex;flex-direction:column;min-height:200px}.shift-card:hover{border-color:#007bff;box-shadow:0 4px 12px #007bff26;transform:translateY(-2px)}.shift-time{font-size:1.3em;font-weight:700;color:#007bff;margin-bottom:15px;padding-bottom:10px;border-bottom:1px solid #e9ecef}.shift-clients{flex:1;margin-bottom:15px}.shift-clients strong{display:block;margin-bottom:8px;color:#495057;font-size:.9em;text-transform:uppercase;letter-spacing:.5px}.shift-clients ul{list-style:none;padding:0;margin:0}.shift-clients li{padding:6px 0;border-bottom:1px solid #f1f3f5;color:#212529;font-size:.95em}.shift-clients li:last-child{border-bottom:none}.no-clients-text{color:#adb5bd;font-style:italic;margin:0;font-size:.9em}.shift-status{margin:15px 0;padding:10px 12px;border-radius:6px;font-size:.9em;font-weight:500;text-align:center}.shift-status.status-complete{background:#d4edda;color:#155724;border:1px solid #c3e6cb}.shift-status.status-partial{background:#fff3cd;color:#856404;border:1px solid #ffeaa7}.shift-status.status-empty{background:#f8d7da;color:#721c24;border:1px solid #f5c6cb}.btn-edit-shift{width:100%;padding:12px;background:#007bff;color:#fff;border:none;border-radius:6px;cursor:pointer;margin-top:auto;font-size:.95em;font-weight:500;transition:background .2s}.btn-edit-shift:hover{background:#0056b3}.btn-edit-shift:active{transform:scale(.98)}.staff-assignments{display:flex;flex-direction:column;gap:8px}.staff-select{min-width:200px}.actions{margin-top:40px;text-align:center;padding-top:30px;border-top:2px solid #dee2e6}.actions .btn{margin:0 10px;padding:12px 24px;font-size:1em;border:none;border-radius:6px;cursor:pointer;font-weight:500;transition:all .2s}.actions .btn-primary{background:#007bff;color:#fff}.actions .btn-primary:hover{background:#0056b3}.actions .btn:disabled{opacity:.6;cursor:not-allowed}.assignment-preview{margin:20px 0}.day-group{margin-bottom:40px;padding:25px;background:#f8f9fa;border-radius:8px;border:1px solid #dee2e6}.day-header{margin-bottom:25px;padding-bottom:15px;border-bottom:2px solid #dee2e6}.day-header h3{margin:0 0 8px;color:#2c3e50;font-size:1.5em;font-weight:600}.shift-count{color:#6c757d;margin:0;font-style:italic;font-size:.95em}.shift-preview-card{background:#fff;border:1px solid #dee2e6;border-radius:8px;padding:20px;margin-bottom:20px}.shift-preview-card:last-child{margin-bottom:0}.shift-preview-header{margin-bottom:15px;padding-bottom:10px;border-bottom:1px solid #e9ecef}.shift-time{margin:0;font-size:1.2em;font-weight:600;color:#007bff}.preview-table{width:100%;border-collapse:collapse}.preview-table thead{background:#f8f9fa}.preview-table th{padding:12px;text-align:left;font-weight:600;color:#2c3e50;border-bottom:2px solid #dee2e6}.preview-table td{padding:12px;border-bottom:1px solid #e9ecef}.preview-table tbody tr:hover{background:#f8f9fa}.preview-table tbody tr:last-child td{border-bottom:none}.actions{margin-top:40px;display:flex;gap:15px;justify-content:center;padding-top:30px;border-top:2px solid #dee2e6}.actions .btn{padding:12px 24px;font-size:1em;border:none;border-radius:6px;cursor:pointer;font-weight:500;transition:all .2s}.actions .btn-secondary{background:#6c757d;color:#fff}.actions .btn-secondary:hover{background:#5a6268}.actions .btn-success{background:#28a745;color:#fff}.actions .btn-success:hover{background:#218838}.clear-roster-modal{max-width:600px;width:90%}.clear-roster-modal .warning-message{background-color:#fff3cd;border:1px solid #ffc107;border-radius:4px;padding:12px;margin-bottom:16px;color:#856404}.clear-roster-modal .safety-note{background-color:#d1ecf1;border:1px solid #bee5eb;border-radius:4px;padding:12px;margin-bottom:16px;color:#0c5460}.clear-roster-modal .safety-note ul{margin:8px 0 0;padding-left:20px}.clear-roster-modal .safety-note li{margin:4px 0}.clear-roster-modal .clear-all-label{font-weight:600;margin-left:8px}.clear-roster-modal .clear-all-warning{background-color:#f8d7da;border:1px solid #f5c6cb;border-radius:4px;padding:8px;margin-top:8px;color:#721c24;font-weight:600}.clear-roster-modal .date-range-group{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:16px}.clear-roster-modal .preview-section{background-color:#f8f9fa;border:1px solid #dee2e6;border-radius:4px;padding:12px;margin-bottom:16px}.clear-roster-modal .preview-label{font-weight:600;margin-bottom:4px;color:#495057}.clear-roster-modal .preview-count{font-size:1.1em;color:#212529}.clear-roster-modal .confirmation-input{width:100%;padding:8px;font-size:1em;border:2px solid #dc3545;border-radius:4px;text-transform:uppercase;letter-spacing:1px}.clear-roster-modal .confirmation-input:focus{outline:none;border-color:#c82333;box-shadow:0 0 0 .2rem #dc354540}.clear-roster-modal .error-message{background-color:#f8d7da;border:1px solid #f5c6cb;border-radius:4px;padding:12px;margin-top:16px;color:#721c24}.clear-roster-modal .error-details{margin-top:8px}.clear-roster-modal .error-details summary{cursor:pointer;font-weight:600;margin-bottom:4px}.clear-roster-modal .error-details pre{background-color:#fff;padding:8px;border-radius:4px;overflow-x:auto;font-size:.85em;margin-top:4px}.clear-roster-modal .success-message{background-color:#d4edda;border:1px solid #c3e6cb;border-radius:4px;padding:12px;margin-top:16px;color:#155724}.clear-roster-modal .btn-danger{background-color:#dc3545;color:#fff;border:none;padding:10px 20px;border-radius:4px;cursor:pointer;font-size:1em;font-weight:600}.clear-roster-modal .btn-danger:hover:not(:disabled){background-color:#c82333}.clear-roster-modal .btn-danger:disabled{background-color:#6c757d;cursor:not-allowed;opacity:.6}.calendar-legend{background:#f8f9fa;border:1px solid #e9ecef;border-radius:8px;padding:12px 16px;margin-bottom:16px}.calendar-legend .legend-title{font-weight:600;font-size:.875rem;color:#495057;margin-bottom:10px}.calendar-legend .legend-items{display:flex;flex-wrap:wrap;gap:16px}.calendar-legend .legend-item{display:flex;align-items:center;gap:6px}.calendar-legend .legend-color{width:16px;height:16px;border-radius:4px;flex-shrink:0;border:1px solid rgba(0,0,0,.1)}.calendar-legend .legend-color.unassigned{background:linear-gradient(135deg,#fef3c7,#f59e0b);border-color:#f59e0b}.calendar-legend .legend-color.conflict{background:linear-gradient(135deg,#fee2e2,#ef4444);border-color:#ef4444}.calendar-legend .legend-label{font-size:.8125rem;color:#6c757d}.calendar-legend.compact{padding:8px 12px}.calendar-legend.compact .legend-title{font-size:.75rem;margin-bottom:6px}.calendar-legend.compact .legend-items{gap:12px}.calendar-legend.compact .legend-color{width:12px;height:12px}.calendar-legend.compact .legend-label{font-size:.75rem}@media (max-width: 768px){.calendar-legend .legend-items{gap:10px}.calendar-legend .legend-label{font-size:.75rem}}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--spacing-2);white-space:nowrap;border-radius:var(--radius);font-size:var(--text-sm);font-weight:var(--font-weight-medium);font-family:Inter,sans-serif;transition:all var(--duration-normal) var(--ease-in-out);cursor:pointer;border:none;outline:none;position:relative}.btn:focus-visible{outline:2px solid var(--ring);outline-offset:2px}.btn:disabled{pointer-events:none;opacity:.5;cursor:not-allowed}.btn:active:not(:disabled){transform:scale(.98)}.btn-default{background-color:var(--primary);color:var(--primary-foreground)}.btn-default:hover:not(:disabled){background-color:color-mix(in srgb,var(--primary) 90%,black)}.btn-secondary:hover:not(:disabled){background-color:color-mix(in srgb,var(--secondary) 80%,black)}.btn-outline{background-color:transparent;color:var(--foreground);border:1px solid var(--border)}.btn-outline:hover:not(:disabled){background-color:var(--accent);color:var(--accent-foreground)}.btn-ghost{background-color:transparent;color:var(--foreground)}.btn-ghost:hover:not(:disabled){background-color:var(--accent);color:var(--accent-foreground)}.btn-destructive{background-color:var(--destructive);color:var(--destructive-foreground)}.btn-destructive:hover:not(:disabled){background-color:color-mix(in srgb,var(--destructive) 90%,black)}.btn-link{background-color:transparent;color:var(--primary);text-decoration:underline;text-underline-offset:4px;padding:0}.btn-link:hover:not(:disabled){text-decoration:underline;opacity:.8}.btn-sm{height:32px;padding:var(--spacing-1) var(--spacing-3);font-size:var(--text-xs);gap:var(--spacing-1)}.btn-default{height:36px;padding:var(--spacing-2) var(--spacing-4)}.btn-lg{height:40px;padding:var(--spacing-2) var(--spacing-6);font-size:var(--text-base)}.btn-icon{width:36px;height:36px;padding:0}.btn-loading{cursor:wait}.btn-spinner{display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px}.spinner{width:16px;height:16px;animation:spin 1s linear infinite}.btn-icon-left,.btn-icon-right{display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;flex-shrink:0}.btn-content{display:inline-flex;align-items:center}.dark .btn-outline{background-color:color-mix(in srgb,var(--input) 30%,transparent);border-color:var(--input)}.dark .btn-outline:hover:not(:disabled){background-color:color-mix(in srgb,var(--input) 50%,transparent)}.dark .btn-ghost:hover:not(:disabled){background-color:color-mix(in srgb,var(--accent) 50%,transparent)}.quick-actions-bar{display:flex;align-items:center;gap:var(--spacing-2);padding:var(--spacing-3) 0;flex-wrap:wrap}@media (max-width: 640px){.quick-actions-bar{gap:var(--spacing-1)}}.time-slot-timeline{width:100%;min-height:100%;display:flex;flex-direction:column}.time-slot-timeline-container{display:flex;width:100%;min-height:100%;position:relative}.time-slot-timeline-bar{width:80px;position:relative;border-right:2px solid var(--primary, #3b82f6);padding-right:16px;flex-shrink:0;min-height:1440px;height:100%}.time-slot-timeline-marker{position:absolute;display:flex;align-items:center;gap:8px;transform:translateY(-50%);left:0}.time-slot-timeline-dot{width:12px;height:12px;border-radius:50%;background:var(--primary, #3b82f6);border:2px solid var(--card, #ffffff);box-shadow:0 0 0 2px var(--primary, #3b82f6);flex-shrink:0}.time-slot-timeline-label{font-size:.75rem;color:var(--muted-foreground, #6b7280);font-weight:500;white-space:nowrap}.time-slot-timeline-shifts{flex:1;padding-left:24px;display:flex;flex-direction:column;gap:16px;padding-bottom:24px}.time-slot-timeline-shift-card{background:var(--card, #ffffff);border:1px solid var(--border, #e5e7eb);border-radius:var(--radius, 8px);padding:16px;cursor:pointer;transition:all .2s ease;box-shadow:0 1px 3px #0000001a;position:relative}.time-slot-timeline-shift-card:hover{box-shadow:0 4px 8px #00000026;transform:translate(4px);border-color:var(--primary, #3b82f6)}.time-slot-timeline-shift-card-unassigned{border-left:3px solid var(--warning-foreground, #f59e0b);background:color-mix(in srgb,var(--warning, #fef3c7) 20%,var(--card, #ffffff))}.time-slot-timeline-shift-card-conflict{border-left:3px solid var(--destructive-foreground, #ef4444);background:color-mix(in srgb,var(--destructive, #fee2e2) 20%,var(--card, #ffffff))}.time-slot-timeline-shift-card-content{display:flex;flex-direction:column;gap:12px}.time-slot-timeline-shift-card-header{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.time-slot-timeline-shift-card-name{font-size:1rem;font-weight:600;color:var(--foreground, #030712);flex:1;min-width:0}.time-slot-timeline-shift-card-id{font-size:.875rem;color:var(--muted-foreground, #6b7280);white-space:nowrap}.time-slot-timeline-shift-card-time{font-size:.875rem;font-weight:500;color:var(--foreground, #030712);white-space:nowrap;padding:4px 8px;background:var(--muted, #f3f4f6);border-radius:var(--radius-sm, 4px)}.time-slot-timeline-shift-card-badges{display:flex;flex-wrap:wrap;gap:8px}.time-slot-timeline-shift-card-badge{font-size:.75rem;font-weight:500;padding:4px 8px;border-radius:var(--radius-sm, 4px);background:var(--primary, #3b82f6);color:#fff;white-space:nowrap}.time-slot-timeline-shift-card-conflict-icon{position:absolute;top:12px;right:12px;color:var(--destructive-foreground, #ef4444)}.time-slot-timeline-shift-card-unassigned-badge{position:absolute;top:12px;right:12px;font-size:.75rem;font-weight:600;background:var(--warning-foreground, #f59e0b);color:#fff;padding:4px 8px;border-radius:var(--radius-sm, 4px)}.time-slot-timeline-shift-card-actions{display:flex;align-items:center;gap:8px;margin-top:4px}.time-slot-timeline-shift-card-action{font-size:.875rem;font-weight:500;padding:6px 12px;background:var(--primary, #3b82f6);color:#fff;border:none;border-radius:var(--radius-sm, 4px);cursor:pointer;transition:all .15s ease}.time-slot-timeline-shift-card-action:hover{background:var(--primary-hover, #2563eb);transform:translateY(-1px)}.time-slot-timeline-shift-card-action-icon{display:flex;align-items:center;justify-content:center;width:32px;height:32px;background:var(--muted, #f3f4f6);color:var(--foreground, #030712);border:none;border-radius:var(--radius-sm, 4px);cursor:pointer;transition:all .15s ease}.time-slot-timeline-shift-card-action-icon:hover{background:var(--accent, #f3f4f6);transform:translate(2px)}.time-slot-timeline-empty{padding:3rem;text-align:center;color:var(--muted-foreground, #6b7280);font-size:.875rem}.cell-popover-overlay{position:fixed;top:0;left:0;right:0;bottom:0;z-index:1000;background:#00000080;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);animation:fadeIn var(--duration-normal) var(--ease-out)}.cell-popover{pointer-events:auto;background:var(--card);border:1px solid var(--border);border-radius:var(--radius-card);box-shadow:var(--elevation-xl);min-width:1200px;max-width:1400px;width:90vw;max-height:90vh;display:flex;flex-direction:column;animation:popover-enter-modal .25s cubic-bezier(.16,1,.3,1);overflow:hidden;z-index:1001}@keyframes popover-enter-modal{0%{opacity:0;transform:scale(.9)}to{opacity:1;transform:scale(1)}}.cell-popover-entering{animation:popover-enter-modal .25s cubic-bezier(.16,1,.3,1)}.cell-popover-header{display:flex;align-items:center;justify-content:space-between;padding:var(--spacing-3) var(--spacing-4);border-bottom:1px solid var(--border);background:var(--muted);flex-shrink:0}.cell-popover-title{margin:0;font-size:var(--text-sm);font-weight:var(--font-weight-semibold);color:var(--foreground)}.cell-popover-close{display:flex;align-items:center;justify-content:center;width:28px;height:28px;border:none;background:transparent;border-radius:var(--radius);cursor:pointer;color:var(--muted-foreground);transition:all .15s ease}.cell-popover-close:hover{background:var(--accent);color:var(--foreground)}.cell-popover-content{padding:var(--spacing-4);width:100%;max-height:calc(90vh - 60px);overflow-x:auto;overflow-y:auto}.badge{display:inline-flex;align-items:center;gap:var(--spacing-1);border-radius:var(--radius-full);font-weight:var(--font-weight-medium);font-family:Inter,sans-serif;white-space:nowrap;transition:all var(--duration-normal) var(--ease-in-out)}.badge-default,.badge-primary{background-color:var(--primary);color:var(--primary-foreground)}.badge-secondary{background-color:var(--secondary);color:var(--secondary-foreground)}.badge-outline{background-color:transparent;color:var(--foreground);border:1px solid var(--border)}.badge-destructive{background-color:var(--destructive);color:var(--destructive-foreground)}.badge-success{background-color:var(--chart-2);color:#fff}.badge-warning{background-color:var(--chart-3);color:#fff}.badge-sm{padding:var(--spacing-1) var(--spacing-2);font-size:var(--text-xs);line-height:1}.badge-default{padding:var(--spacing-1) var(--spacing-2);font-size:var(--text-xs);line-height:1.2}.badge-lg{padding:var(--spacing-1) var(--spacing-3);font-size:var(--text-sm);line-height:1.3}.badge-dot{padding-left:var(--spacing-3)}.badge-dot-indicator{width:6px;height:6px;border-radius:var(--radius-full);background-color:currentColor;display:inline-block;flex-shrink:0}.badge-sm .badge-dot-indicator{width:4px;height:4px}.badge-lg .badge-dot-indicator{width:8px;height:8px}.shift-card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius-card);padding:var(--spacing-3);transition:all var(--duration-normal) var(--ease-in-out);position:relative;min-height:120px}.shift-card-clickable{cursor:pointer}.shift-card-clickable:hover{box-shadow:var(--elevation-md);transform:translateY(-2px)}.shift-card-header{display:flex;align-items:center;justify-content:space-between;gap:var(--spacing-2);margin-bottom:var(--spacing-2)}.shift-card-time{display:flex;align-items:center;gap:var(--spacing-1);font-size:var(--text-sm);font-weight:var(--font-weight-semibold);color:var(--foreground)}.shift-card-time-icon{width:14px;height:14px;color:var(--muted-foreground)}.shift-card-date{font-size:var(--text-xs);color:var(--muted-foreground);margin-bottom:var(--spacing-2)}.shift-card-content{margin-top:var(--spacing-2)}.shift-card-clients{display:flex;align-items:center;gap:var(--spacing-1);font-size:var(--text-xs);color:var(--muted-foreground);margin-bottom:var(--spacing-2)}.shift-card-clients-icon{width:12px;height:12px}.shift-card-client-list{display:flex;flex-direction:column;gap:var(--spacing-1)}.shift-card-client{display:flex;flex-direction:column;gap:2px;font-size:var(--text-xs)}.shift-card-client-name{font-weight:var(--font-weight-medium);color:var(--foreground)}.shift-card-client-staff{color:var(--muted-foreground);font-size:10px}.shift-card-client-more{font-size:var(--text-xs);color:var(--muted-foreground);font-style:italic}.shift-card-actions{position:absolute;top:var(--spacing-2);right:var(--spacing-2);display:flex;gap:var(--spacing-1);opacity:0;transition:opacity var(--duration-normal) var(--ease-in-out)}.shift-card:hover .shift-card-actions{opacity:1}.shift-card-action{display:flex;align-items:center;justify-content:center;width:24px;height:24px;border:none;background:var(--card);border-radius:var(--radius);cursor:pointer;color:var(--muted-foreground);transition:all var(--duration-normal) var(--ease-in-out);box-shadow:var(--elevation-sm)}.shift-card-action:hover{background:var(--muted);color:var(--foreground)}.shift-card-action-danger:hover{background:var(--destructive);color:var(--destructive-foreground)}.shift-card-action-icon{width:14px;height:14px}.shift-card-conflict-icon{width:12px;height:12px}.shift-card-morning{border-left:3px solid var(--chart-1)}.shift-card-afternoon{border-left:3px solid var(--chart-3)}.shift-card-evening{border-left:3px solid var(--chart-5)}.shift-card-night{border-left:3px solid var(--chart-4)}.shift-card-unassigned{border-left:3px solid var(--muted);opacity:.7}.shift-card-has-conflicts{border-left:3px solid var(--destructive)}.shift-card-conflict{background:color-mix(in srgb,var(--destructive) 5%,transparent)}.shift-card-compact{padding:var(--spacing-2);min-height:auto}.shift-card-compact .shift-card-header{margin-bottom:2px;flex-wrap:wrap;gap:var(--spacing-1)}.shift-card-compact .shift-card-time{font-size:var(--text-xs)}.shift-card-compact .shift-card-time-icon{width:12px;height:12px}.shift-card-compact .shift-card-date{display:none}.shift-card-compact .shift-card-content{margin-top:var(--spacing-1)}.shift-card-compact .shift-card-clients{margin-bottom:var(--spacing-1)}.shift-card-compact .shift-card-client-list{display:flex;flex-direction:column;gap:2px}.shift-card-compact .shift-card-client{flex-direction:row;gap:var(--spacing-1);align-items:center}.shift-card-compact .shift-card-client-name{font-size:10px}.shift-card-compact .shift-card-client-staff{font-size:9px}.shift-card-compact .shift-card-actions{top:var(--spacing-1);right:var(--spacing-1)}.shift-card-compact .shift-card-action{width:20px;height:20px}.shift-card-compact .shift-card-action-icon{width:12px;height:12px}.shift-card.dragging{opacity:.5;transform:rotate(2deg) scale(.95);box-shadow:0 8px 16px #0003;z-index:1000;cursor:grabbing}.shift-card.drag-preview{opacity:.8;transform:scale(1.05);box-shadow:0 4px 12px #00000026}.multi-day-bar{position:relative;display:flex;align-items:center;min-height:28px;padding:4px 8px;margin:2px 0;border-radius:var(--radius-md, 6px);background:var(--color-bg-secondary);border:1px solid var(--color-border);font-size:var(--font-size-sm, 13px);transition:all var(--duration-normal) var(--ease-out);overflow:hidden;--lane-height: 32px;margin-top:calc(var(--lane-index, 0) * var(--lane-height))}.multi-day-bar-compact{min-height:22px;padding:2px 6px;--lane-height: 26px}.multi-day-bar-clickable{cursor:pointer}.multi-day-bar-clickable:hover{transform:translateY(-1px);box-shadow:var(--shadow-md);z-index:10}.multi-day-bar-clickable:focus{outline:2px solid var(--color-primary);outline-offset:2px}.multi-day-bar-start{border-top-left-radius:var(--radius-md);border-bottom-left-radius:var(--radius-md);border-top-right-radius:0;border-bottom-right-radius:0;margin-right:0;border-right:none}.multi-day-bar-middle{border-radius:0;margin-left:0;margin-right:0;border-left:none;border-right:none}.multi-day-bar-end{border-top-left-radius:0;border-bottom-left-radius:0;border-top-right-radius:var(--radius-md);border-bottom-right-radius:var(--radius-md);margin-left:0;border-left:none}.multi-day-bar-single{border-radius:var(--radius-md)}.multi-day-bar-shift{background:linear-gradient(135deg,var(--color-primary-light) 0%,var(--color-primary) 100%);border-color:var(--color-primary);color:var(--color-primary-contrast, white)}.multi-day-bar-shift.multi-day-bar-morning{background:linear-gradient(135deg,#fef3c7,#f59e0b);border-color:#f59e0b;color:#78350f}.multi-day-bar-shift.multi-day-bar-afternoon{background:linear-gradient(135deg,#fed7aa,#f97316);border-color:#f97316;color:#7c2d12}.multi-day-bar-shift.multi-day-bar-evening{background:linear-gradient(135deg,#ddd6fe,#8b5cf6);border-color:#8b5cf6;color:#4c1d95}.multi-day-bar-shift.multi-day-bar-night{background:linear-gradient(135deg,#c7d2fe,#4f46e5);border-color:#4f46e5;color:#fff}.multi-day-bar-availability{background:var(--color-bg-secondary);border-color:var(--color-border)}.multi-day-bar-availability.multi-day-bar-status-available{background:linear-gradient(135deg,#dcfce7,#22c55e);border-color:#22c55e;color:#14532d}.multi-day-bar-availability.multi-day-bar-status-unavailable{background:linear-gradient(135deg,#fee2e2,#ef4444);border-color:#ef4444;color:#7f1d1d}.multi-day-bar-requirement{background:linear-gradient(135deg,#e0f2fe,#0ea5e9);border-color:#0ea5e9;color:#0c4a6e}.multi-day-bar-requirement.multi-day-bar-status-high,.multi-day-bar-requirement.multi-day-bar-status-urgent{background:linear-gradient(135deg,#fef3c7,#f59e0b);border-color:#f59e0b;color:#78350f}.multi-day-bar-requirement.multi-day-bar-status-low{background:linear-gradient(135deg,#f0fdf4,#86efac);border-color:#86efac;color:#14532d}.multi-day-bar-content{display:flex;align-items:center;gap:6px;flex:1;min-width:0;overflow:hidden}.multi-day-bar-icon{display:flex;align-items:center;justify-content:center;flex-shrink:0;opacity:.8}.multi-day-bar-info{display:flex;flex-direction:column;gap:1px;min-width:0;flex:1}.multi-day-bar-label{font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.multi-day-bar-time{font-size:var(--font-size-xs, 11px);opacity:.8;white-space:nowrap}.multi-day-bar-compact .multi-day-bar-info{flex-direction:row;gap:8px;align-items:center}.multi-day-bar-continuation{display:flex;align-items:center;justify-content:center;position:absolute;top:50%;transform:translateY(-50%);width:16px;height:16px;background:#ffffff4d;border-radius:50%;opacity:.7}.multi-day-bar-continuation-left{left:4px}.multi-day-bar-continuation-right{right:4px}.multi-day-bar-cap{position:absolute;top:0;bottom:0;width:4px;background:#0000001a}.multi-day-bar-cap-start{left:0;border-top-left-radius:var(--radius-md);border-bottom-left-radius:var(--radius-md)}.multi-day-bar-cap-end{right:0;border-top-right-radius:var(--radius-md);border-bottom-right-radius:var(--radius-md)}.multi-day-bar-badge{flex-shrink:0;margin-left:auto}.multi-day-bar-conflict{border-color:var(--color-warning, #f59e0b)!important;animation:conflict-pulse 2s ease-in-out infinite}.multi-day-bar-conflict-icon{display:flex;align-items:center;justify-content:center;flex-shrink:0;color:var(--color-warning, #f59e0b);margin-left:auto}@keyframes conflict-pulse{0%,to{box-shadow:0 0 #f59e0b66}50%{box-shadow:0 0 0 4px #f59e0b00}}.multi-day-bar-tooltip{position:absolute;bottom:100%;left:50%;transform:translate(-50%) translateY(-8px);padding:10px 12px;background:var(--color-bg-elevated, #1f2937);color:var(--color-text-inverse, white);border-radius:var(--radius-md);font-size:var(--font-size-sm, 13px);white-space:nowrap;opacity:0;visibility:hidden;transition:all var(--duration-fast) var(--ease-out);z-index:100;pointer-events:none;box-shadow:var(--shadow-lg);min-width:180px}.multi-day-bar-tooltip:after{content:"";position:absolute;top:100%;left:50%;transform:translate(-50%);border:6px solid transparent;border-top-color:var(--color-bg-elevated, #1f2937)}.multi-day-bar:hover .multi-day-bar-tooltip{opacity:1;visibility:visible;transform:translate(-50%) translateY(-4px)}.multi-day-bar-tooltip-header{font-weight:600;margin-bottom:6px;border-bottom:1px solid rgba(255,255,255,.1);padding-bottom:6px}.multi-day-bar-tooltip-dates,.multi-day-bar-tooltip-time{display:flex;align-items:center;gap:6px;margin-bottom:4px;opacity:.9;font-size:var(--font-size-xs, 11px)}.multi-day-bar-tooltip-notes{margin-top:6px;padding-top:6px;border-top:1px solid rgba(255,255,255,.1);font-size:var(--font-size-xs, 11px);opacity:.8;max-width:200px;white-space:normal}.dark .multi-day-bar{border-color:#ffffff1a}.dark .multi-day-bar-shift.multi-day-bar-morning{background:linear-gradient(135deg,#fef3c74d,#f59e0bcc);color:#fef3c7}.dark .multi-day-bar-shift.multi-day-bar-afternoon{background:linear-gradient(135deg,#fed7aa4d,#f97316cc);color:#fed7aa}.dark .multi-day-bar-shift.multi-day-bar-evening{background:linear-gradient(135deg,#ddd6fe4d,#8b5cf6cc);color:#ddd6fe}.dark .multi-day-bar-shift.multi-day-bar-night{background:linear-gradient(135deg,#c7d2fe4d,#4f46e5cc);color:#c7d2fe}.dark .multi-day-bar-availability.multi-day-bar-status-available{background:linear-gradient(135deg,#dcfce733,#22c55eb3);color:#dcfce7}.dark .multi-day-bar-availability.multi-day-bar-status-unavailable{background:linear-gradient(135deg,#fee2e233,#ef4444b3);color:#fee2e2}.dark .multi-day-bar-requirement{background:linear-gradient(135deg,#e0f2fe33,#0ea5e9b3);color:#e0f2fe}.collapsible{border:1px solid var(--border-color, #e2e8f0);border-radius:8px;background:var(--bg-secondary, #f8fafc);margin-top:1rem}.collapsible__header{display:flex;align-items:center;gap:.5rem;width:100%;padding:.75rem 1rem;background:transparent;border:none;cursor:pointer;text-align:left;font-size:.875rem;font-weight:500;color:var(--text-secondary, #64748b);transition:color var(--duration-normal) var(--ease-out)}.collapsible__header:hover{color:var(--text-primary, #1e293b)}.collapsible--open .collapsible__header{color:var(--text-primary, #1e293b);border-bottom:1px solid var(--border-color, #e2e8f0)}.collapsible__icon{display:flex;align-items:center;justify-content:center;color:var(--text-tertiary, #94a3b8);transition:transform var(--duration-normal) var(--ease-out)}.collapsible__title-icon{display:flex;align-items:center;justify-content:center;color:var(--text-tertiary, #94a3b8)}.collapsible__title{flex:1}.collapsible__badge{margin-left:auto}.collapsible__content{overflow:hidden}.collapsible__inner{padding:1rem}.collapsible__content[style*="display: block"]{animation:slideDown var(--duration-normal) var(--ease-out)}.dark .collapsible{border-color:var(--border);background:var(--card)}.dark .collapsible__header{color:var(--muted-foreground)}.dark .collapsible__header:hover,.dark .collapsible--open .collapsible__header{color:var(--foreground)}.dark .collapsible--open .collapsible__header{border-bottom-color:var(--border)}.roster-grid{display:flex;flex-direction:column;width:100%;background:var(--card);border:1px solid var(--border);border-radius:var(--radius-card);overflow:hidden}.roster-grid-header{padding:var(--spacing-4);border-bottom:1px solid var(--border);background:var(--muted)}.roster-grid-navigation{display:flex;align-items:center;justify-content:space-between;gap:var(--spacing-4)}.roster-grid-date-range{display:flex;align-items:center;gap:var(--spacing-2)}.roster-grid-date-text{font-size:var(--text-base);font-weight:var(--font-weight-semibold);color:var(--foreground);min-width:200px;text-align:center}.roster-grid-content{overflow-x:auto;overflow-y:auto;max-height:calc(100vh - 350px)}.roster-grid-table{display:grid;width:100%;min-width:900px}.roster-grid-row{display:grid;grid-template-columns:200px repeat(var(--days-count, 7),1fr);border-bottom:1px solid var(--border);gap:0}.roster-grid-row:last-child{border-bottom:none}.roster-grid-row .roster-grid-cell{display:block;border-right:1px solid var(--border)}.roster-grid-row .roster-grid-cell:last-child{border-right:none}.roster-grid-row:hover:not(.roster-grid-header-row){background:color-mix(in srgb,var(--muted) 50%,transparent)}.roster-grid-entity-group-grid:hover{background:color-mix(in srgb,var(--muted) 50%,transparent)}.roster-grid-cell{display:table-cell;padding:var(--spacing-3);vertical-align:top;border-right:1px solid var(--border)}.roster-grid-cell:last-child{border-right:none}.roster-grid-header-row{background:var(--muted);position:sticky;top:0;z-index:10}.roster-grid-entity-cell{min-width:200px;max-width:250px;background:var(--card);position:sticky;left:0;z-index:5;border-right:2px solid var(--border)}.roster-grid-header-entity{font-weight:var(--font-weight-semibold);font-size:var(--text-sm);color:var(--muted-foreground);text-transform:uppercase;letter-spacing:.05em;background:var(--muted)}.roster-grid-entity-info{display:flex;align-items:flex-start;gap:var(--spacing-3)}.roster-grid-entity-avatar{width:36px;height:36px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:var(--text-xs);font-weight:var(--font-weight-semibold);color:#fff;flex-shrink:0;text-transform:uppercase}.roster-grid-entity-details{display:flex;flex-direction:column;gap:2px;min-width:0}.roster-grid-entity-name{font-size:var(--text-sm);font-weight:var(--font-weight-semibold);color:var(--foreground);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.roster-grid-entity-subtitle{font-size:var(--text-xs);color:var(--primary);cursor:pointer}.roster-grid-entity-subtitle:hover{text-decoration:underline}.roster-grid-day-header{text-align:center;min-width:120px;background:var(--muted);padding:var(--spacing-2) var(--spacing-3)}.roster-grid-day-name{font-size:var(--text-xs);font-weight:var(--font-weight-medium);color:var(--muted-foreground);text-transform:uppercase;margin-bottom:2px}.roster-grid-day-number{font-size:var(--text-lg);font-weight:var(--font-weight-semibold);color:var(--foreground)}.roster-grid-day-today{background:color-mix(in srgb,var(--primary) 10%,transparent)}.roster-grid-day-today .roster-grid-day-number,.roster-grid-day-today .roster-grid-day-name{color:var(--primary)}.roster-grid-shifts-cell{min-width:120px;min-height:90px;position:relative;transition:background-color .2s ease;vertical-align:top}.roster-grid-cell-clickable{cursor:pointer}.roster-grid-cell-clickable:hover{background:color-mix(in srgb,var(--primary) 5%,transparent)}.roster-grid-shifts-cell.drag-over{background-color:color-mix(in srgb,var(--primary) 10%,transparent);border:2px dashed var(--primary);border-radius:var(--radius)}.roster-grid-shifts-cell.drag-over-invalid{background-color:color-mix(in srgb,var(--destructive) 10%,transparent);border:2px dashed var(--destructive);border-radius:var(--radius)}.roster-grid-shifts{display:flex;flex-direction:column;gap:var(--spacing-2)}.roster-grid-empty-cell{display:flex;align-items:center;justify-content:center;min-height:60px;color:var(--muted-foreground)}.roster-grid-add-hint{opacity:0;transition:opacity .2s ease}.roster-grid-cell-clickable:hover .roster-grid-add-hint{opacity:.5}.roster-grid-add-icon{width:20px;height:20px}.roster-grid-more-shifts{font-size:var(--text-xs);font-weight:var(--font-weight-medium);color:var(--destructive);padding:var(--spacing-1) var(--spacing-2);text-align:center;cursor:pointer}.roster-grid-more-shifts:hover{text-decoration:underline}.roster-grid-empty-state{display:block;grid-column:1 / -1;padding:var(--spacing-8);text-align:center;color:var(--muted-foreground);border-bottom:1px solid var(--border)}.roster-grid-entity-group{display:contents}.roster-grid-entity-group-grid{display:grid!important;gap:0}.roster-grid-entity-group-grid .roster-grid-cell{display:block;border-right:1px solid var(--border);padding:var(--spacing-3)}.roster-grid-entity-group-grid .roster-grid-cell:last-child{border-right:none}.roster-grid-entity-group-grid .multi-day-bar{height:28px;margin:2px 0}.roster-grid-multiday-row{background:color-mix(in srgb,var(--muted) 40%,transparent);border-bottom:1px dashed var(--border)}.roster-grid-multiday-row:hover{background:color-mix(in srgb,var(--muted) 60%,transparent)}.roster-grid-multiday-entity{padding:var(--spacing-2) var(--spacing-3);min-height:calc(var(--lane-count, 1) * 32px + 8px)}.roster-grid-entity-avatar-sm{width:24px;height:24px;font-size:9px}.roster-grid-multiday-label{font-size:var(--text-xs);color:var(--muted-foreground);font-weight:var(--font-weight-medium)}.roster-grid-multiday-container{display:table-cell;position:relative;padding:var(--spacing-1) 0;min-height:calc(var(--lane-count, 1) * 32px + 8px);display:grid;grid-template-columns:repeat(7,1fr);grid-auto-rows:32px;gap:2px;align-content:start}.roster-grid-multiday-row .roster-grid-multiday-container{grid-column:2 / -1}.roster-grid-multiday-container .multi-day-bar{grid-row:calc(var(--lane-index, 0) + 1);margin:0;height:28px}.roster-grid-weeks{display:flex;flex-direction:column;gap:var(--spacing-2);padding:var(--spacing-2)}.roster-grid-week-section{width:100%}.roster-grid-week-collapsible{border:1px solid var(--border);border-radius:var(--radius);background:var(--card);overflow:hidden}.roster-grid-week-collapsible .collapsible__header{background:var(--muted);font-weight:var(--font-weight-semibold);padding:var(--spacing-3) var(--spacing-4)}.roster-grid-week-collapsible .collapsible__content{background:var(--card)}.roster-grid-week-content{padding:var(--spacing-2);overflow-x:auto}.roster-grid-week-content .roster-grid-table{min-width:900px}@media (max-width: 768px){.roster-grid-date-range{flex-direction:column;gap:var(--spacing-1)}.roster-grid-date-text{min-width:auto;font-size:var(--text-sm)}.roster-grid-entity-cell{min-width:150px;max-width:180px}.roster-grid-entity-avatar{width:30px;height:30px;font-size:10px}.roster-grid-day-header,.roster-grid-shifts-cell{min-width:100px}.roster-grid-content{max-height:calc(100vh - 400px)}.roster-grid-multiday-container{grid-auto-rows:26px}.roster-grid-multiday-container .multi-day-bar{height:22px}}.card{background-color:var(--card);color:var(--card-foreground);border-radius:var(--radius-card);border:1px solid var(--border);box-shadow:var(--elevation-sm);transition:all var(--duration-normal) var(--ease-in-out)}.card-elevated{box-shadow:var(--elevation-md)}.card-outlined{box-shadow:none;border:1px solid var(--border)}.card-interactive{cursor:pointer}.card-interactive:hover{box-shadow:var(--elevation-md);transform:translateY(-2px)}.card-interactive:active{transform:translateY(0)}.card-header{display:flex;flex-direction:column;padding:var(--spacing-6);padding-bottom:var(--spacing-4)}.card-title{font-size:var(--text-xl);font-weight:var(--font-weight-semibold);line-height:1.2;margin:0;color:var(--card-foreground)}.card-description{font-size:var(--text-sm);color:var(--muted-foreground);margin-top:var(--spacing-1);margin-bottom:0}.card-content{padding:var(--spacing-6);padding-top:var(--spacing-4);padding-bottom:var(--spacing-4)}.card-footer{display:flex;align-items:center;padding:var(--spacing-6);padding-top:var(--spacing-4);gap:var(--spacing-2)}.card>:not(.card-header):not(.card-content):not(.card-footer){padding:var(--spacing-6)}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--spacing-16) var(--spacing-6);text-align:center}.empty-state-icon{width:64px;height:64px;margin-bottom:var(--spacing-4);color:var(--muted-foreground);display:flex;align-items:center;justify-content:center}.empty-state-title{font-size:var(--text-xl);font-weight:var(--font-weight-semibold);color:var(--foreground);margin:0 0 var(--spacing-2) 0}.empty-state-description{font-size:var(--text-base);color:var(--muted-foreground);margin:0 0 var(--spacing-6) 0;max-width:400px}.empty-state-action{margin-top:var(--spacing-4)}.roster-calendar{margin:20px 0}.roster-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px;flex-wrap:wrap;gap:15px}.view-controls{display:flex;gap:20px;align-items:center;flex-wrap:wrap}.entity-view-toggle{display:flex;gap:10px;align-items:center}.entity-view-toggle label{font-weight:500;margin-right:5px}.entity-view-btn{padding:8px 16px;border:1px solid var(--border, #ddd);background:var(--background, white);border-radius:4px;cursor:pointer;font-size:14px;font-weight:500;transition:all .2s;display:inline-flex;align-items:center;gap:6px;color:var(--foreground, #333)}.entity-view-btn:hover{background:var(--muted, #f5f5f5);border-color:var(--border-hover, #bbb)}.entity-view-btn.active{background:var(--primary, #007bff);color:#fff;border-color:var(--primary, #007bff)}.entity-view-btn.active:hover{background:var(--primary-hover, #0056b3);border-color:var(--primary-hover, #0056b3)}.view-toggle{display:flex;gap:10px}.view-toggle-btn{padding:8px 16px;border:1px solid #ddd;background:#fff;border-radius:4px;cursor:pointer;font-size:14px;transition:all .2s}.view-toggle-btn:hover{background:#f5f5f5}.view-toggle-btn.active{background:#007bff;color:#fff;border-color:#007bff}.filters{margin-bottom:30px}.filters h3{margin-bottom:15px}.filter-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:15px;margin-bottom:20px}.export-buttons{display:flex;gap:10px}.export-buttons .btn{padding:10px 20px;border:none;border-radius:4px;cursor:pointer;font-size:14px;font-weight:500;transition:all .2s}.export-buttons .btn-primary{background-color:#007bff;color:#fff}.export-buttons .btn-primary:hover:not(:disabled){background-color:#0056b3}.export-buttons .btn-primary:disabled{background-color:#6c757d;cursor:not-allowed;opacity:.6}.export-buttons .btn-danger{background-color:#dc3545;color:#fff}.export-buttons .btn-danger:hover:not(:disabled){background-color:#c82333}.export-buttons .btn-danger:disabled{background-color:#6c757d;cursor:not-allowed;opacity:.6}.calendar-navigation{display:flex;flex-wrap:wrap;gap:15px;align-items:center;margin-bottom:20px;padding:15px;background:#f8f9fa;border-radius:4px}.view-type-selector{display:flex;gap:10px;align-items:center}.view-type-selector label{font-weight:500;margin-right:5px}.view-type-btn{padding:6px 12px;border:1px solid #ccc;background:#fff;border-radius:4px;cursor:pointer;font-size:14px;transition:all .2s}.view-type-btn:hover{background:#f5f5f5}.view-type-btn.active{background:#007bff;color:#fff;border-color:#007bff}.custom-date-range{display:flex;gap:10px;align-items:center}.custom-date-range label{font-weight:500}.custom-date-range input{padding:6px;border:1px solid #ccc;border-radius:4px}.calendar-nav-buttons{display:flex;gap:10px}.calendar-nav-buttons button{padding:8px 16px;background:#007bff;color:#fff;border:none;border-radius:4px;cursor:pointer;font-size:14px;transition:background .2s}.calendar-nav-buttons button:hover{background:#0056b3}.date-range-display{font-weight:700;margin-left:auto;color:#2c3e50}.calendar-grid.list-view{display:grid;gap:20px}.calendar-day{margin-bottom:20px}.calendar-day h3{margin-bottom:15px;color:#2c3e50;border-bottom:2px solid #007bff;padding-bottom:10px}.shift-entry{margin-bottom:15px;padding:10px;background-color:#f8f9fa;border-radius:4px}.shift-time{font-weight:600;color:#007bff;margin-bottom:8px}.roster-entry{padding:8px;margin:5px 0;background-color:#fff;border-left:3px solid #28a745;border-radius:4px}.calendar-grid.calendar-view{border:1px solid #ddd;border-radius:4px;overflow-x:auto;margin-bottom:20px}.calendar-row{display:grid;border-bottom:1px solid #ddd;min-width:max-content}.calendar-cell{padding:10px;border-right:1px solid #ddd;min-height:100px;position:relative}.header-row{background:#f8f9fa;font-weight:700}.header-cell{text-align:center;padding:15px 10px}.header-cell.today{background:#e3f2fd;color:#1976d2}.date-label-cell{background:#f8f9fa;font-weight:500;display:flex;align-items:center;justify-content:center}.calendar-cell.today{background:#f0f8ff}.calendar-shift-entry{padding:6px;margin:4px 0;background-color:#e8f5e9;border-left:3px solid #28a745;border-radius:3px;font-size:12px}.shift-time-small{font-weight:600;color:#007bff;margin-bottom:4px;font-size:11px}.calendar-roster-entry{display:block;margin:2px 0;font-size:11px}.staff-name{font-weight:500;color:#2c3e50}.empty-cell{color:#999;font-size:11px;text-align:center;padding:10px;font-style:italic;cursor:pointer}.empty-cell:hover{background:#f0f0f0;border-radius:4px}.empty-cell.clickable-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:40px;transition:all .2s ease}.empty-cell.clickable-empty:hover{background-color:#e3f2fd;color:#1976d2}.empty-cell-icon{display:none;font-size:20px;font-weight:300;line-height:1;margin-bottom:2px;font-style:normal}.empty-cell-text{font-size:11px}.empty-cell.clickable-empty:hover .empty-cell-text{font-style:normal;font-weight:500}.roster-block.has-service-color{border-left-width:4px;border-left-style:solid}.roster-block.has-service-color.assigned{background-color:inherit}.clickable-cell{cursor:pointer;transition:background .2s}.clickable-cell:hover{background:#f8f9fa}.staff-cell,.client-cell{background:#f8f9fa;font-weight:500;display:flex;align-items:center;justify-content:center}.roster-block{padding:5px 8px;margin:2px 0;border-radius:3px;font-size:12px;cursor:pointer;position:relative;transition:all .2s}.roster-block:hover{transform:translateY(-1px);box-shadow:0 2px 4px #0000001a}.roster-block.multi-day{z-index:1;border-radius:3px;margin:2px;position:relative}.roster-block.assigned{background:#d4edda;border:1px solid #c3e6cb;color:#155724}.roster-block.unassigned{background:#fff3cd;border:1px solid #ffeaa7;color:#856404}.roster-block.conflict{background:#f8d7da;border:1px solid #f5c6cb;color:#721c24}.conflict-indicator{margin-left:4px;font-size:12px;vertical-align:middle;cursor:help}.time-range{font-weight:500;margin-bottom:2px}.roster-entry-detail{font-size:11px;margin-top:2px}.staff-names{font-weight:500;color:#2c3e50}.client-names{color:#6c757d}.loading-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:2000}.loading-message{background:#fff;padding:20px 40px;border-radius:8px;font-size:16px;font-weight:500;color:#333}.unassigned-shift{background-color:#fff3cd!important;border-left:3px solid #ffc107!important;border-radius:3px}.unassigned-shift .shift-time-small{color:#856404;font-weight:600}.unassigned-badge{display:inline-block;background-color:#ffc107;color:#856404;padding:2px 6px;border-radius:3px;font-size:10px;font-weight:600;margin-left:4px}.unassigned-label{color:#856404;font-style:italic;font-weight:500}@media (max-width: 768px){.roster-header{flex-direction:column;align-items:flex-start;gap:15px}.calendar-navigation{flex-direction:column;align-items:flex-start}.date-range-display{margin-left:0}.calendar-row{font-size:12px}.calendar-cell{padding:6px;min-height:80px}.calendar-shift-entry{font-size:10px;padding:4px}}.ai-workflow-plan{margin:20px 0}.plan-card{margin-bottom:20px}.plan-summary{background:#e3f2fd;border:1px solid #90caf9;border-radius:6px;padding:20px;margin-bottom:30px}.plan-summary h4{margin:0 0 15px;color:#1565c0}.summary-stats .stat strong{font-size:32px;color:#1565c0;font-weight:600}.plan-steps{margin-bottom:30px}.plan-steps h4{margin:0 0 20px}.plan-step{border:1px solid #ddd;border-radius:6px;margin-bottom:15px;overflow:hidden}.plan-step .step-header{display:flex;align-items:center;gap:15px;padding:15px;cursor:pointer;background:#f9f9f9;transition:background .2s}.plan-step .step-header:hover{background:#f0f0f0}.step-number{width:32px;height:32px;background:#1976d2;color:#fff;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:600;flex-shrink:0}.step-content{flex:1}.step-content h5{margin:0 0 5px;font-size:16px}.step-content .step-description{margin:0;color:#666;font-size:14px}.step-toggle{font-size:24px;color:#666;font-weight:300;width:24px;text-align:center}.step-expanded{padding:15px;background:#fff;border-top:1px solid #eee}.step-details{margin-top:10px}.step-summary{margin-bottom:15px;font-size:14px;color:#333}.missing-staff-item{display:flex;align-items:flex-start;gap:12px;padding:12px;border:1px solid #ddd;border-radius:6px;background:#f9f9f9}.staff-info strong{display:block;margin-bottom:5px}.slots-preview{margin-top:15px}.slots-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:10px;margin-top:10px}.slot-item{display:flex;align-items:flex-start;gap:12px;padding:12px;border:1px solid #ddd;border-radius:6px;background:#f9f9f9}.plan-actions{display:flex;gap:10px;justify-content:flex-end;padding-top:20px;border-top:1px solid #eee}@media (max-width: 768px){.summary-stats{gap:20px}.slots-list{grid-template-columns:1fr}.plan-actions{flex-direction:column}.plan-actions button{width:100%}}.missing-records-review{padding:20px;background:#f9f9f9;border-radius:8px;margin:20px 0}.review-header{margin-bottom:20px}.review-header h3{margin:0 0 10px;color:#333}.review-header .description{color:#666;margin:0}.bulk-actions{background:#fff;padding:15px;border-radius:6px;margin-bottom:20px;border:1px solid #ddd}.bulk-actions h4{margin:0 0 10px;font-size:14px;color:#666}.bulk-buttons{display:flex;gap:10px;flex-wrap:wrap}.missing-staff-list{display:flex;flex-direction:column;gap:15px;margin-bottom:20px}.missing-staff-item{background:#fff;border:2px solid #ddd;border-radius:6px;padding:15px;transition:border-color .2s}.missing-staff-item.create{border-color:#4caf50}.missing-staff-item.skip{border-color:#ff9800}.missing-staff-item.remove{border-color:#f44336}.staff-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:15px}.staff-info h4{margin:0;color:#333}.conflict-badge{display:inline-block;background:#ff9800;color:#fff;padding:2px 8px;border-radius:4px;font-size:12px;margin-left:10px}.availability-count{color:#666;font-size:14px}.staff-details{display:flex;gap:20px;flex-wrap:wrap}.suggested-details{flex:1;min-width:200px}.suggested-details p{margin:0 0 8px;font-weight:500}.suggested-details ul{margin:0;padding-left:20px;color:#666}.suggested-details li{margin:4px 0}.reason{margin-top:8px;color:#999;font-style:italic}.decision-options{flex:1;min-width:300px;display:flex;flex-direction:column;gap:8px}.option{display:flex;align-items:center;padding:8px;border:1px solid #ddd;border-radius:4px;cursor:pointer;transition:all .2s}.option:hover{background:#f5f5f5}.option.selected{background:#e3f2fd;border-color:#1976d2}.option input[type=radio]{margin-right:8px}.edit-form{margin-top:15px;padding:15px;background:#f9f9f9;border-radius:4px}.form-row{display:flex;gap:15px;margin-bottom:15px}.form-group{flex:1}.form-group label{display:block;margin-bottom:5px;font-weight:500;font-size:14px}.form-group input,.form-group select{width:100%;padding:8px;border:1px solid #ddd;border-radius:4px;font-size:14px}.edit-actions{display:flex;gap:10px;margin-top:15px}.review-summary{background:#fff;padding:15px;border-radius:6px;margin-bottom:20px;border:1px solid #ddd}.review-summary h4{margin:0 0 15px}.stat{display:flex;flex-direction:column;align-items:center}.stat strong{font-size:24px;color:#1976d2}.stat span{font-size:14px;color:#666;margin-top:5px}.review-actions{display:flex;justify-content:flex-end;gap:10px;padding-top:20px;border-top:1px solid #ddd}.btn{padding:10px 20px;border:none;border-radius:4px;cursor:pointer;font-size:14px;font-weight:500;transition:background .2s}.btn-primary{background:#1976d2;color:#fff}.btn-primary:hover:not(:disabled){background:#1565c0}.btn-primary:disabled{background:#ccc;cursor:not-allowed}.btn-secondary{background:#f5f5f5;color:#333;border:1px solid #ddd}.btn-secondary:hover{background:#e0e0e0}.option-content{display:flex;flex-direction:column;gap:4px;flex:1}.option-title{font-weight:500;color:#333;font-size:14px}.option-description{font-size:12px;color:#666;font-style:italic}.option.selected .option-title{color:#1976d2;font-weight:600}.option.selected .option-description{color:#1565c0}.preview-summary{background:#fff3e0;border:2px solid #ffb74d;border-radius:6px;padding:20px;margin-bottom:20px}.preview-summary h4{margin:0 0 15px;color:#e65100;font-size:18px}.preview-content{display:flex;flex-direction:column;gap:10px}.preview-item{display:flex;align-items:center;gap:8px;color:#333;font-size:15px}.preview-item strong{color:#e65100;font-size:18px;font-weight:600}@media (max-width: 768px){.option-content{gap:2px}.option-title{font-size:13px}.option-description{font-size:11px}}.ai-workflow-step{margin-bottom:20px}.step-card{border:2px solid #1976d2;border-radius:6px}.step-header{display:flex;justify-content:space-between;align-items:center;padding:15px;background:#e3f2fd;border-bottom:1px solid #90caf9}.step-header h4{margin:0;color:#1565c0}.step-status{padding:4px 12px;border-radius:12px;font-size:12px;font-weight:500}.step-status.pending{background:#ff9800;color:#fff}.step-status.success{background:#4caf50;color:#fff}.step-content{padding:20px}.step-instruction{margin-bottom:15px;color:#333;font-size:15px}.success-message{background:#e8f5e9;border:1px solid #81c784;border-radius:6px;padding:15px;color:#2e7d32;margin-bottom:20px}.slots-selection{margin-top:20px}.selection-summary{background:#f5f5f5;padding:12px;border-radius:6px;margin-bottom:15px;text-align:center}.selection-summary strong{font-size:20px;color:#1976d2}.slots-preview{max-height:400px;overflow-y:auto;border:1px solid #ddd;border-radius:6px;padding:10px}.slots-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:10px}.slot-item{display:flex;align-items:flex-start;gap:12px;padding:12px;border:2px solid #ddd;border-radius:6px;cursor:pointer;transition:all .2s;background:#fff}.slot-info strong{display:block;margin-bottom:5px}.slot-time{font-weight:600;color:#1976d2;margin:5px 0;font-size:13px}.badge-type{display:inline-block;padding:2px 8px;background:#e3f2fd;color:#1976d2;border-radius:4px;font-size:11px;font-weight:500;text-transform:capitalize;margin-top:5px}.more-items{text-align:center;color:#666;font-style:italic;margin-top:10px}.step-actions{display:flex;gap:10px;justify-content:flex-end;padding:15px 20px;border-top:1px solid #eee;background:#f9f9f9}.step-loading{padding:20px;text-align:center;color:#666}.step-result{padding:20px}.result-message{background:#e8f5e9;border:1px solid #81c784;border-radius:6px;padding:15px;color:#2e7d32;margin-bottom:15px;font-weight:500}.result-details{margin-top:15px}.result-details h5{margin:0 0 10px;color:#333}.result-details ul{list-style:none;padding:0;margin:0}.result-details li{padding:8px 12px;margin-bottom:5px;border-radius:4px;border-left:3px solid}.result-details li.success{background:#e8f5e9;border-color:#4caf50;color:#2e7d32}.result-details li.error{background:#ffebee;border-color:#f44336;color:#c62828}@media (max-width: 768px){.slots-list{grid-template-columns:1fr}.step-actions{flex-direction:column}.step-actions button{width:100%}}.ai-workflow-orchestrator{margin:20px 0}.workflow-header{margin-bottom:20px}.workflow-header h2{margin:0 0 10px}.workflow-description{color:#666;margin:0}.workflow-step-card{margin-bottom:20px}.step-description{color:#666;margin-bottom:20px}.workflow-text-editor{width:100%;padding:12px;border:1px solid #ddd;border-radius:4px;font-family:Courier New,monospace;font-size:14px;line-height:1.5;resize:vertical;min-height:300px}.generation-summary{background:#e3f2fd;border:1px solid #90caf9;border-radius:6px;padding:15px;margin-bottom:20px;color:#1565c0}.workflow-execution{margin-top:20px}.execution-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px;padding-bottom:15px;border-bottom:2px solid #eee}.execution-header h3{margin:0}.step-progress{background:#1976d2;color:#fff;padding:6px 12px;border-radius:20px;font-size:14px;font-weight:500}.completed-step{background:#e8f5e9;border:1px solid #81c784;border-radius:6px;padding:15px;margin-bottom:15px}.completed-step .step-header{display:flex;align-items:center;gap:12px;margin-bottom:10px}.completed-step .step-status{background:#4caf50;color:#fff;padding:4px 10px;border-radius:12px;font-size:12px;font-weight:500}.completed-step h4{margin:0;flex:1}.step-result{margin-top:10px;padding-left:30px}.pending-step{background:#f5f5f5;border:1px solid #ddd;border-radius:6px;padding:15px;margin-bottom:15px;opacity:.6}.pending-step .step-header{display:flex;align-items:center;gap:12px;margin-bottom:10px}.pending-step .step-status{background:#9e9e9e;color:#fff;padding:4px 10px;border-radius:12px;font-size:12px;font-weight:500}.pending-step h4{margin:0;flex:1}.pending-step .step-description{margin:0;padding-left:30px}.card-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.card-header h3{margin:0}.format-example-section{background:#f8f9fa;border:1px solid #dee2e6;border-radius:6px;padding:15px;margin-bottom:20px}.format-example-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px}.format-example-toggle{background:none;border:none;color:#1976d2;font-size:14px;font-weight:500;cursor:pointer;padding:5px 0;display:flex;align-items:center;gap:8px}.format-example-toggle:hover{color:#1565c0;text-decoration:underline}.format-example-content{margin-top:10px}.format-example-help{color:#666;font-size:13px;margin-bottom:10px;font-style:italic}.format-example-code{width:100%;padding:12px;border:1px solid #ced4da;border-radius:4px;font-family:Courier New,monospace;font-size:13px;line-height:1.6;background:#fff;color:#212529;resize:vertical;cursor:text}.format-example-code:focus{outline:2px solid #1976d2;outline-offset:2px}.copy-format-button{font-size:12px;padding:6px 12px;min-width:100px}.copy-format-button:active{transform:scale(.98)}.generate-options-section{margin-bottom:20px;border:1px solid #dee2e6;border-radius:6px;overflow:hidden}.generate-options-toggle{width:100%;background:#f8f9fa;border:none;padding:12px 15px;text-align:left;color:#495057;font-size:14px;font-weight:500;cursor:pointer;display:flex;align-items:center;gap:8px;transition:background-color .2s}.generate-options-toggle:hover{background:#e9ecef}.generate-options-panel{padding:15px;background:#fff;border-top:1px solid #dee2e6}.ai-generated-badge{display:inline-flex;align-items:center;gap:4px;margin-left:10px;padding:4px 8px;background:#e3f2fd;color:#1565c0;border-radius:12px;font-size:12px;font-weight:500}.form-group label{display:flex;align-items:center;margin-bottom:8px;font-weight:500;color:#333}@media (max-width: 768px){.execution-header{flex-direction:column;align-items:flex-start;gap:10px}.form-actions{flex-direction:column}.form-actions button{width:100%}.format-example-header{flex-direction:column;align-items:flex-start;gap:10px}.copy-format-button{width:100%}}.base-calendar{width:100%;display:flex;flex-direction:column;gap:1rem}.base-calendar-header{display:flex;justify-content:space-between;align-items:center;gap:1rem}.base-calendar-title{font-size:1.5rem;font-weight:600;margin:0}.base-calendar-view-toggle{display:flex;gap:.5rem}.base-calendar-navigation{display:flex;justify-content:space-between;align-items:center;gap:1rem}.base-calendar-date-range{display:flex;align-items:center;gap:.5rem}.base-calendar-date-text{font-size:1rem;font-weight:500}.base-calendar-error{padding:.75rem;background-color:#fee;border:1px solid #fcc;border-radius:4px;color:#c33}.base-calendar-loading{padding:2rem;text-align:center;color:#666}.base-calendar-week-view{width:100%;overflow-x:auto}.base-calendar-week-header{display:grid;grid-template-columns:120px repeat(7,1fr);gap:1px;background-color:#e5e7eb;border-bottom:2px solid #e5e7eb}.base-calendar-week-header-cell{padding:.75rem;background-color:#fff;text-align:center;font-weight:500}.base-calendar-day-today{background-color:#eff6ff!important;color:#1e40af;font-weight:600}.base-calendar-day-name{font-size:.875rem;color:#6b7280}.base-calendar-day-number{font-size:1.25rem;margin-top:.25rem}.base-calendar-week-content{display:grid;grid-template-columns:120px repeat(7,1fr);gap:1px;background-color:#e5e7eb;position:relative}.base-calendar-week-label{padding:.75rem;background-color:#f9fafb;border-right:2px solid #e5e7eb}.base-calendar-week-cell{min-height:120px;padding:.5rem;background-color:#fff;cursor:pointer;transition:background-color .2s;position:relative;z-index:1}.base-calendar-week-cell:hover{background-color:#f9fafb}.base-calendar-week-cell-entries{display:flex;flex-direction:column;gap:.5rem}.base-calendar-entry{padding:.5rem;background-color:#f3f4f6;border-left:3px solid #3b82f6;border-radius:4px;cursor:pointer;transition:all .2s}.base-calendar-entry:hover{background-color:#e5e7eb;transform:translate(2px)}.base-calendar-entry-time{font-size:.75rem;font-weight:600;color:#1e40af;margin-bottom:.25rem}.base-calendar-entry-title{font-size:.875rem;font-weight:500;color:#111827}.base-calendar-entry-description{font-size:.75rem;color:#6b7280;margin-top:.25rem}.base-calendar-empty-cell{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.25rem;color:#9ca3af;font-size:.875rem;min-height:60px}.base-calendar-month-view{width:100%}.base-calendar-month-header{display:grid;grid-template-columns:repeat(7,1fr);gap:1px;background-color:#e5e7eb;border-bottom:2px solid #e5e7eb}.base-calendar-month-header-cell{padding:.75rem;background-color:#f9fafb;text-align:center;font-weight:600;font-size:.875rem;color:#374151}.base-calendar-month-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:1px;background-color:#e5e7eb}.base-calendar-month-cell{min-height:100px;padding:.5rem;background-color:#fff;cursor:pointer;transition:background-color .2s}.base-calendar-month-cell:hover{background-color:#f9fafb}.base-calendar-day-other-month{background-color:#f9fafb;color:#9ca3af}.base-calendar-month-cell-date{font-size:.875rem;font-weight:500;margin-bottom:.5rem}.base-calendar-month-cell-entries{display:flex;flex-direction:column;gap:.25rem}.base-calendar-month-cell .base-calendar-entry{font-size:.75rem;padding:.25rem .5rem}.base-calendar-month-cell .base-calendar-entry-time{font-size:.625rem}.base-calendar-more-entries{font-size:.75rem;color:#6b7280;padding:.25rem;text-align:center}.base-calendar-empty-hint{display:flex;align-items:center;justify-content:center;color:#d1d5db;padding:.5rem}.base-calendar-multiday-layer{position:absolute;top:0;left:0;right:0;z-index:2;pointer-events:none}.base-calendar-multiday-layer .multi-day-bar{pointer-events:auto}.base-calendar-grid-wrapper{width:100%;border:1px solid #e5e7eb;border-radius:8px;overflow:hidden}.recurrence-selector{display:flex;flex-direction:column;gap:var(--spacing-3);padding:var(--spacing-3);background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:var(--radius-lg, 8px)}.recurrence-selector-compact{padding:8px;gap:8px}.recurrence-selector-header{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.recurrence-toggle{display:flex;align-items:center;gap:6px;padding:8px 12px;background:var(--color-bg-primary);border:1px solid var(--color-border);border-radius:var(--radius-md, 6px);font-size:var(--font-size-sm, 13px);font-weight:500;color:var(--color-text-secondary);cursor:pointer;transition:all var(--duration-fast) var(--ease-out)}.recurrence-toggle:hover{background:var(--color-bg-hover);border-color:var(--color-border-strong)}.recurrence-toggle-active{background:var(--color-primary-light);border-color:var(--color-primary);color:var(--color-primary)}.recurrence-toggle-check{color:var(--color-success, #22c55e)}.recurrence-summary-badge{flex-shrink:0}.recurrence-selector-body{display:flex;flex-direction:column;gap:16px;padding-top:12px;border-top:1px solid var(--color-border)}.recurrence-field{display:flex;flex-direction:column;gap:8px}.recurrence-label{display:flex;align-items:center;gap:6px;font-size:var(--font-size-sm, 13px);font-weight:500;color:var(--color-text-secondary)}.recurrence-frequency-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:6px}@media (min-width: 400px){.recurrence-frequency-grid{grid-template-columns:repeat(4,1fr)}}.recurrence-frequency-btn{padding:8px 10px;background:var(--color-bg-primary);border:1px solid var(--color-border);border-radius:var(--radius-md, 6px);font-size:var(--font-size-xs, 12px);color:var(--color-text-secondary);cursor:pointer;transition:all var(--duration-fast) var(--ease-out);white-space:nowrap}.recurrence-frequency-btn:hover{background:var(--color-bg-hover);border-color:var(--color-border-strong)}.recurrence-frequency-btn-active{background:var(--color-primary);border-color:var(--color-primary);color:#fff}.recurrence-days-grid{display:flex;gap:4px;flex-wrap:wrap}.recurrence-day-btn{display:flex;align-items:center;justify-content:center;width:36px;height:36px;background:var(--color-bg-primary);border:1px solid var(--color-border);border-radius:50%;font-size:var(--font-size-sm, 13px);font-weight:500;color:var(--color-text-secondary);cursor:pointer;transition:all var(--duration-fast) var(--ease-out)}.recurrence-day-btn:hover{background:var(--color-bg-hover);border-color:var(--color-border-strong)}.recurrence-day-btn-active{background:var(--color-primary);border-color:var(--color-primary);color:#fff}.recurrence-end-options{display:flex;flex-direction:column;gap:10px}.recurrence-radio{display:flex;align-items:center;gap:8px;font-size:var(--font-size-sm, 13px);color:var(--color-text-primary);cursor:pointer}.recurrence-radio input[type=radio]{width:16px;height:16px;accent-color:var(--color-primary)}.recurrence-date-input,.recurrence-count-input{padding:6px 10px;background:var(--color-bg-primary);border:1px solid var(--color-border);border-radius:var(--radius-md, 6px);font-size:var(--font-size-sm, 13px);color:var(--color-text-primary)}.recurrence-date-input{min-width:140px}.recurrence-count-input{width:70px;text-align:center}.recurrence-date-input:focus,.recurrence-count-input:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 2px var(--color-primary-light)}.recurrence-preview{display:flex;flex-direction:column;gap:8px;padding:10px;background:var(--color-bg-tertiary);border-radius:var(--radius-md, 6px)}.recurrence-preview-dates{display:flex;flex-wrap:wrap;gap:6px;align-items:center}.recurrence-preview-more{font-size:var(--font-size-sm, 13px);color:var(--color-text-muted);padding-left:4px}.dark .recurrence-selector{background:var(--card)}.dark .recurrence-toggle,.dark .recurrence-frequency-btn,.dark .recurrence-day-btn{background:var(--muted)}.dark .recurrence-date-input,.dark .recurrence-count-input{background:var(--input-background)}.dark .recurrence-preview{background:#0003}.entity-calendar-view{padding:var(--spacing-4);background:var(--card);border-radius:var(--radius-card);box-shadow:var(--elevation-sm)}.ecv-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--spacing-4);flex-wrap:wrap;gap:var(--spacing-4)}.ecv-header-title{display:flex;align-items:center;gap:var(--spacing-2)}.ecv-header-icon{width:20px;height:20px;color:var(--primary)}.ecv-header-title h3{margin:0;font-size:var(--text-lg);font-weight:var(--font-weight-semibold);color:var(--foreground)}.ecv-view-toggle{display:flex;gap:var(--spacing-2)}.ecv-custom-range{display:flex;gap:var(--spacing-4);margin-bottom:var(--spacing-4);padding:var(--spacing-3);background:var(--muted);border-radius:var(--radius)}.ecv-custom-range-field{display:flex;flex-direction:column;gap:var(--spacing-1)}.ecv-navigation{display:flex;align-items:center;justify-content:space-between;gap:var(--spacing-4);margin-bottom:var(--spacing-4);padding:var(--spacing-3);background:var(--muted);border-radius:var(--radius-card)}.ecv-nav-icon{width:16px;height:16px}.ecv-date-range{display:flex;align-items:center;gap:var(--spacing-2)}.ecv-date-text{font-size:var(--text-base);font-weight:var(--font-weight-semibold);color:var(--foreground);min-width:200px;text-align:center}.ecv-pending-toolbar{display:flex;align-items:center;justify-content:space-between;gap:var(--spacing-4);margin-bottom:var(--spacing-4);padding:var(--spacing-3);background:color-mix(in srgb,var(--chart-3) 15%,transparent);border:1px solid var(--chart-3);border-radius:var(--radius);flex-wrap:wrap}.ecv-pending-info{display:flex;align-items:center;gap:var(--spacing-2)}.ecv-pending-badge{font-size:var(--text-sm);font-weight:var(--font-weight-medium);color:var(--foreground)}.ecv-pending-actions{display:flex;gap:var(--spacing-2)}.ecv-loading{display:flex;align-items:center;justify-content:center;padding:var(--spacing-8);color:var(--muted-foreground)}.ecv-grid-wrapper{overflow-x:auto}.ecv-grid{background:var(--card);border:1px solid var(--border);border-radius:var(--radius-card);overflow:hidden}.ecv-table{display:grid;width:100%;min-width:900px}.ecv-row{display:grid;grid-template-columns:200px repeat(var(--days-count, 7),1fr);border-bottom:1px solid var(--border);gap:0}.ecv-row:last-child{border-bottom:none}.ecv-row:hover:not(.ecv-header-row){background:color-mix(in srgb,var(--muted) 50%,transparent)}.ecv-row .ecv-cell{display:block;border-right:1px solid var(--border);padding:var(--spacing-3)}.ecv-row .ecv-cell:last-child{border-right:none}.ecv-content-row{display:grid!important}.ecv-content-row .ecv-cell{display:block;border-right:1px solid var(--border)}.ecv-content-row .ecv-cell:last-child{border-right:none}.ecv-content-row .multi-day-bar{height:28px;margin:2px 0}.ecv-content-row:hover{background:color-mix(in srgb,var(--muted) 50%,transparent)}.ecv-header-row{background:var(--muted);position:sticky;top:0;z-index:10}.ecv-entity-cell{min-width:200px;max-width:250px;background:var(--card);position:sticky;left:0;z-index:5;border-right:2px solid var(--border)}.ecv-header-entity{font-weight:var(--font-weight-semibold);font-size:var(--text-sm);color:var(--muted-foreground);text-transform:uppercase;letter-spacing:.05em;background:var(--muted);vertical-align:middle}.ecv-entity-info{display:flex;align-items:flex-start;gap:var(--spacing-3)}.ecv-entity-avatar{width:36px;height:36px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:var(--primary);color:var(--primary-foreground);font-size:var(--text-xs);font-weight:var(--font-weight-semibold);flex-shrink:0;text-transform:uppercase}.ecv-entity-details{display:flex;flex-direction:column;gap:2px}.ecv-entity-name{font-size:var(--text-sm);font-weight:var(--font-weight-semibold);color:var(--foreground)}.ecv-entity-subtitle{font-size:var(--text-xs);color:var(--muted-foreground)}.ecv-day-header{text-align:center;min-width:120px;background:var(--muted);padding:var(--spacing-2) var(--spacing-3);vertical-align:middle}.ecv-day-name{font-size:var(--text-xs);font-weight:var(--font-weight-medium);color:var(--muted-foreground);text-transform:uppercase;margin-bottom:2px}.ecv-day-number{font-size:var(--text-lg);font-weight:var(--font-weight-semibold);color:var(--foreground)}.ecv-day-today{background:color-mix(in srgb,var(--primary) 10%,transparent)}.ecv-day-today .ecv-day-number,.ecv-day-today .ecv-day-name{color:var(--primary)}.ecv-shifts-cell{min-width:120px;min-height:90px;vertical-align:top;cursor:pointer;transition:background-color var(--duration-normal) var(--ease-in-out)}.ecv-shifts-cell:hover{background:color-mix(in srgb,var(--primary) 5%,transparent)}.ecv-shifts{display:flex;flex-direction:column;gap:var(--spacing-2)}.ecv-empty-cell{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:60px;color:var(--muted-foreground);opacity:.5;transition:opacity var(--duration-normal) var(--ease-in-out)}.ecv-shifts-cell:hover .ecv-empty-cell{opacity:1}.ecv-empty-icon{width:20px;height:20px}.ecv-empty-text{font-size:var(--text-xs)}.ecv-multiday-row{background:color-mix(in srgb,var(--muted) 40%,transparent);border-bottom:1px dashed var(--border)}.ecv-multiday-row:hover{background:color-mix(in srgb,var(--muted) 60%,transparent)}.ecv-multiday-entity{padding:var(--spacing-2) var(--spacing-3);min-height:calc(var(--lane-count, 1) * 32px + 8px)}.ecv-entity-avatar-sm{width:24px;height:24px;font-size:10px}.ecv-multiday-label{font-size:var(--text-xs);color:var(--muted-foreground);font-weight:var(--font-weight-medium)}.ecv-multiday-container{display:table-cell;position:relative;padding:var(--spacing-1) 0;min-height:calc(var(--lane-count, 1) * 32px + 8px);display:grid;grid-template-columns:repeat(7,1fr);grid-auto-rows:32px;gap:2px;align-content:start}.ecv-multiday-row .ecv-multiday-container{grid-column:2 / -1}.ecv-multiday-container .multi-day-bar{grid-row:calc(var(--lane-index, 0) + 1);margin:0;height:28px}.entity-calendar-entry{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:var(--spacing-2);cursor:pointer;transition:all var(--duration-normal) var(--ease-in-out);position:relative;border-left-width:3px;border-left-style:solid}.entity-calendar-entry:hover{box-shadow:var(--elevation-md);transform:translateY(-1px)}.entity-calendar-entry.available{border-left-color:var(--chart-2);background:color-mix(in srgb,var(--chart-2) 8%,var(--card))}.entity-calendar-entry.unavailable{border-left-color:var(--chart-4);background:color-mix(in srgb,var(--chart-4) 8%,var(--card))}.entity-calendar-entry.default{border-left-color:var(--muted-foreground)}.entity-calendar-entry.pending-change{border:2px dashed var(--chart-3);background:color-mix(in srgb,var(--chart-3) 10%,var(--card))}.entity-calendar-entry.dragging{opacity:.5;transform:rotate(2deg) scale(.95);box-shadow:var(--elevation-lg);z-index:1000;cursor:grabbing}.entity-calendar-entry-header{display:flex;align-items:center;justify-content:space-between;gap:var(--spacing-1)}.entity-calendar-entry-time{display:flex;align-items:center;gap:var(--spacing-1);font-size:var(--text-xs);font-weight:var(--font-weight-semibold);color:var(--foreground)}.entity-calendar-entry-icon{width:12px;height:12px;color:var(--muted-foreground)}.entity-calendar-entry-badge{font-size:9px;padding:2px 4px}.entity-calendar-entry-badge-icon{width:10px;height:10px}.entity-calendar-entry-notes{margin-top:var(--spacing-1);font-size:10px;color:var(--muted-foreground);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.pending-indicator{position:absolute;top:2px;right:4px;color:var(--chart-3);font-size:10px;font-weight:var(--font-weight-semibold);line-height:1}.ecv-month-header{display:grid;grid-template-columns:repeat(7,1fr);background:var(--muted);border-bottom:1px solid var(--border)}.ecv-month-header-cell{padding:var(--spacing-2) var(--spacing-3);text-align:center;font-size:var(--text-xs);font-weight:var(--font-weight-semibold);color:var(--muted-foreground);text-transform:uppercase}.ecv-month-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:1px;background:var(--border)}.ecv-month-cell{min-height:120px;padding:var(--spacing-2);background:var(--card);cursor:pointer;position:relative;transition:background-color var(--duration-normal) var(--ease-in-out)}.ecv-month-cell:hover{background:color-mix(in srgb,var(--primary) 5%,transparent)}.ecv-month-cell.ecv-day-today{background:color-mix(in srgb,var(--primary) 10%,transparent)}.ecv-month-cell-date{font-size:var(--text-sm);font-weight:var(--font-weight-semibold);color:var(--foreground);margin-bottom:var(--spacing-2)}.ecv-day-today .ecv-month-cell-date{color:var(--primary)}.ecv-month-cell-entries{display:flex;flex-direction:column;gap:var(--spacing-1)}.ecv-more-entries{font-size:var(--text-xs);color:var(--muted-foreground);font-style:italic;text-align:center;padding:var(--spacing-1)}.ecv-empty-hint{display:flex;align-items:center;justify-content:center;min-height:40px;opacity:0;transition:opacity var(--duration-normal) var(--ease-in-out)}.ecv-month-cell:hover .ecv-empty-hint{opacity:.5}.drag-over{background:color-mix(in srgb,var(--primary) 10%,transparent)!important;border:2px dashed var(--primary)!important;border-radius:var(--radius)}.ecv-modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;display:flex;justify-content:center;align-items:center;z-index:1000;animation:fadeIn var(--duration-normal) var(--ease-in-out)}.ecv-modal{background:var(--card);padding:var(--spacing-6);border-radius:var(--radius-card);max-width:500px;width:90%;max-height:90vh;overflow-y:auto;box-shadow:var(--elevation-lg);animation:scaleIn var(--duration-normal) var(--ease-in-out)}.ecv-modal-title{margin:0 0 var(--spacing-4) 0;font-size:var(--text-lg);font-weight:var(--font-weight-semibold);color:var(--foreground)}.ecv-modal-actions{display:flex;gap:var(--spacing-2);margin-top:var(--spacing-4);flex-wrap:wrap}.ecv-form-group{margin-bottom:var(--spacing-4)}.ecv-form-label{display:block;margin-bottom:var(--spacing-1);font-size:var(--text-sm);font-weight:var(--font-weight-medium);color:var(--foreground)}.ecv-form-input,.ecv-form-select,.ecv-form-textarea{width:100%;padding:var(--spacing-2) var(--spacing-3);border:1px solid var(--border);border-radius:var(--radius);font-size:var(--text-sm);font-family:inherit;background:var(--input-background);color:var(--foreground);transition:border-color var(--duration-normal) var(--ease-in-out)}.ecv-form-input:focus,.ecv-form-select:focus,.ecv-form-textarea:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 2px color-mix(in srgb,var(--primary) 20%,transparent)}.ecv-form-textarea{resize:vertical;min-height:80px}.ecv-form-checkbox{display:flex;align-items:center}.ecv-form-checkbox-label{display:flex;align-items:center;gap:var(--spacing-2);cursor:pointer}.ecv-form-checkbox-input{width:16px;height:16px;cursor:pointer}.ecv-form-checkbox-text{font-size:var(--text-sm);color:var(--foreground)}@media (max-width: 768px){.entity-calendar-view{padding:var(--spacing-2)}.ecv-header{flex-direction:column;align-items:flex-start}.ecv-navigation{flex-wrap:wrap;gap:var(--spacing-2)}.ecv-date-range{flex-direction:column;gap:var(--spacing-1)}.ecv-date-text{min-width:auto;font-size:var(--text-sm)}.ecv-entity-cell{min-width:150px;max-width:180px}.ecv-day-header,.ecv-shifts-cell{min-width:100px}.ecv-entity-avatar{width:30px;height:30px}.entity-calendar-entry{padding:var(--spacing-1)}.entity-calendar-entry-time{font-size:10px}.ecv-month-cell{min-height:80px;padding:var(--spacing-1)}}.skeleton{background-color:var(--accent);border-radius:var(--radius);animation:pulse 2s cubic-bezier(.4,0,.6,1) infinite}.skeleton-text{height:1em;width:100%}.skeleton-avatar{width:40px;height:40px;border-radius:var(--radius-full)}.skeleton-card{height:200px;width:100%;border-radius:var(--radius-card)}.skeleton-table{height:48px;width:100%}.skeleton-list{height:60px;width:100%}.skeleton-button{height:36px;width:100px}.skeleton-input{height:40px;width:100%}.table-wrapper{width:100%;overflow-x:auto;border-radius:var(--radius-card);border:1px solid var(--border);background-color:var(--card)}.table{width:100%;border-collapse:collapse;background-color:var(--card)}.table thead{background-color:var(--muted)}.table th{padding:var(--spacing-3);text-align:left;font-size:var(--text-xs);font-weight:var(--font-weight-semibold);color:var(--foreground);border-bottom:1px solid var(--border);white-space:nowrap}.table td{padding:var(--spacing-3);border-bottom:1px solid var(--border);font-size:var(--text-sm);color:var(--foreground)}.table tbody tr:last-child td{border-bottom:none}.table tbody tr:hover{background-color:var(--muted)}.table-row-clickable{cursor:pointer;transition:background-color var(--duration-fast) var(--ease-in-out)}.table-row-selected{background-color:color-mix(in srgb,var(--primary) 10%,transparent)}.table-checkbox-column{width:48px;text-align:center}.table-checkbox-column input[type=checkbox]{width:18px;height:18px;cursor:pointer;accent-color:var(--primary)}@media (max-width: 768px){.table-wrapper{overflow-x:scroll}.table{min-width:600px}}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1000;display:flex;align-items:center;justify-content:center;background-color:color-mix(in srgb,black 50%,transparent);padding:var(--spacing-4);animation:fadeIn var(--duration-normal) var(--ease-out)}.modal-content{background-color:var(--card);color:var(--card-foreground);border-radius:var(--radius-card);box-shadow:var(--elevation-lg);border:1px solid var(--border);max-height:90vh;max-width:90vw;display:flex;flex-direction:column;animation:slideUp var(--duration-normal) var(--ease-out);position:relative}.modal-sm{width:100%;max-width:400px}.modal-md{width:100%;max-width:600px}.modal-lg{width:100%;max-width:800px}.modal-fullscreen{width:100%;height:100%;max-width:100vw;max-height:100vh;border-radius:0}.modal-header{padding:var(--spacing-6);padding-bottom:var(--spacing-4);border-bottom:1px solid var(--border);display:flex;align-items:flex-start;justify-content:space-between;gap:var(--spacing-4)}.modal-title{font-size:var(--text-xl);font-weight:var(--font-weight-semibold);line-height:1.2;margin:0;color:var(--card-foreground)}.modal-description{font-size:var(--text-sm);color:var(--muted-foreground);margin-top:var(--spacing-1);margin-bottom:0}.modal-body{padding:var(--spacing-6);overflow-y:auto;flex:1}.modal-footer{padding:var(--spacing-6);padding-top:var(--spacing-4);border-top:1px solid var(--border);display:flex;align-items:center;justify-content:flex-end;gap:var(--spacing-2)}.modal-close{position:absolute;top:var(--spacing-4);right:var(--spacing-4);width:32px;height:32px;display:flex;align-items:center;justify-content:center;border:none;background-color:transparent;color:var(--muted-foreground);cursor:pointer;border-radius:var(--radius);font-size:24px;line-height:1;transition:all var(--duration-normal) var(--ease-in-out);z-index:1}.modal-close:hover{background-color:var(--muted);color:var(--foreground)}.confirm-dialog-icon{width:48px;height:48px;margin-bottom:var(--spacing-4);display:flex;align-items:center;justify-content:center;color:var(--destructive)}.staff-management{margin:20px 0}.header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.header-actions{display:flex;gap:10px;align-items:center}.ai-generator-section{margin-bottom:30px}.section-description{color:#666;margin-bottom:20px;font-size:14px}.form-card{margin-bottom:30px}.form-actions{display:flex;gap:10px;margin-top:15px}.btn-sm{padding:5px 10px;font-size:12px;margin-right:5px}.staff-list-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:15px}.filter-buttons{display:flex;gap:10px}.badge{display:inline-block;padding:4px 8px;border-radius:4px;font-size:12px;font-weight:500}.badge-hired{background-color:#e3f2fd;color:#1976d2}.badge-contractor{background-color:#fff3e0;color:#f57c00}.status-badge.active{background-color:#e8f5e9;color:#2e7d32}.status-badge.inactive{background-color:#ffebee;color:#c62828}table tr.inactive{opacity:.6}.staff-calendar-section{margin-top:30px;padding-top:30px;border-top:2px solid #e0e0e0}.requirements-impact-panel{background:#fff;border:2px solid #ffc107;border-radius:8px;padding:20px;margin:20px 0;box-shadow:0 4px 6px #0000001a}.impact-panel-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:15px;padding-bottom:15px;border-bottom:2px solid #e9ecef}.header-left{display:flex;align-items:center;gap:15px}.impact-panel-header h3{margin:0;color:#333;font-size:20px}.conflict-count-badge{background:#dc3545;color:#fff;padding:4px 12px;border-radius:12px;font-size:12px;font-weight:600}.severity-badge{padding:6px 16px;border-radius:4px;font-size:13px;font-weight:600;color:#fff;text-transform:uppercase}.impact-summary{margin-bottom:20px;padding:15px;background:#f8f9fa;border-radius:4px}.impact-summary p{margin:0 0 15px;color:#495057;line-height:1.6}.impact-stats{display:flex;flex-wrap:wrap;gap:20px}.stat-item{display:flex;align-items:center;gap:8px}.stat-label{font-weight:500;color:#6c757d}.stat-value{font-weight:600;color:#333}.severity-breakdown{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.severity-count{padding:3px 8px;border-radius:3px;font-size:11px;font-weight:600}.severity-count.critical{background:#dc3545;color:#fff}.severity-count.high{background:#fd7e14;color:#fff}.severity-count.medium{background:#ffc107;color:#333}.severity-count.low{background:#28a745;color:#fff}.issues-section{margin-bottom:20px}.issues-section h4{margin:0 0 15px;color:#333;font-size:16px}.issues-list{display:flex;flex-direction:column;gap:10px}.issue-item{border:1px solid #dee2e6;border-radius:4px;overflow:hidden;transition:all .2s}.issue-item:hover{box-shadow:0 2px 4px #0000001a}.issue-header{display:flex;justify-content:space-between;align-items:center;padding:12px 15px;cursor:pointer;background:#f8f9fa;transition:background .2s}.issue-header:hover{background:#e9ecef}.issue-info{display:flex;align-items:center;gap:10px;flex:1;flex-wrap:wrap}.issue-type-badge{background:#6c757d;color:#fff;padding:2px 8px;border-radius:3px;font-size:10px;font-weight:600;text-transform:uppercase}.issue-severity{font-weight:600;font-size:12px;text-transform:uppercase}.issue-message{color:#495057;flex:1}.expand-icon{color:#6c757d;font-size:12px;margin-left:10px}.issue-details{padding:15px;background:#fff;border-top:1px solid #dee2e6}.detail-row{margin-bottom:8px;color:#495057}.detail-row strong{color:#333;margin-right:8px}.suggestions-for-issue{margin-top:15px;padding-top:15px;border-top:1px solid #e9ecef}.suggestions-for-issue strong{display:block;margin-bottom:10px;color:#333}.suggestion-option{display:flex;align-items:flex-start;gap:10px;padding:10px;margin-bottom:8px;border:2px solid #dee2e6;border-radius:4px;cursor:pointer;transition:all .2s}.suggestion-option:hover{border-color:#007bff;background:#f0f8ff}.suggestion-option.selected{border-color:#007bff;background:#e7f3ff}.suggestion-option input[type=radio]{margin-top:3px;cursor:pointer}.suggestion-content{flex:1}.suggestion-title{font-weight:600;color:#333;margin-bottom:4px}.suggestion-description{font-size:13px;color:#6c757d;margin-bottom:4px}.suggestion-reasoning{font-size:12px;color:#868e96;font-style:italic}.suggestions-section{margin-bottom:20px}.suggestions-section h4{margin:0 0 15px;color:#333;font-size:16px}.suggestions-list{display:flex;flex-direction:column;gap:10px}.suggestion-card{padding:15px;border:1px solid #dee2e6;border-radius:4px;background:#f8f9fa}.suggestion-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px}.suggestion-header h5{margin:0;color:#333}.suggestion-impact{padding:3px 8px;border-radius:3px;font-size:11px;font-weight:600;background:#007bff;color:#fff}.impact-panel-actions{display:flex;gap:10px;padding-top:15px;border-top:2px solid #e9ecef;flex-wrap:wrap}.btn-apply-resolutions{padding:10px 20px;background:#28a745;color:#fff;border:none;border-radius:4px;cursor:pointer;font-size:14px;font-weight:500;transition:background .2s}.btn-apply-resolutions:hover{background:#218838}.btn-save-anyway{padding:10px 20px;background:#ffc107;color:#333;border:none;border-radius:4px;cursor:pointer;font-size:14px;font-weight:500;transition:background .2s}.btn-save-anyway:hover{background:#e0a800}.btn-cancel-impact{padding:10px 20px;background:#6c757d;color:#fff;border:none;border-radius:4px;cursor:pointer;font-size:14px;font-weight:500;transition:background .2s}.btn-cancel-impact:hover{background:#5a6268}@media (max-width: 768px){.impact-panel-header{flex-direction:column;align-items:flex-start;gap:10px}.impact-stats{flex-direction:column;gap:10px}.impact-panel-actions{flex-direction:column}.impact-panel-actions button{width:100%}}.client-management{margin:20px 0}.ratio-edit{display:flex;gap:8px;align-items:center}.ratio-edit select{width:auto;min-width:80px}.shift-types-management{margin:20px 0}.shift-types-management .header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.shift-types-management .header-actions{display:flex;gap:10px}.shift-types-list{display:flex;flex-direction:column;gap:15px}.shift-type-card{border:1px solid #ddd;border-radius:8px;padding:15px;background:#fff}.shift-type-card.inactive{opacity:.6;background:#f5f5f5}.shift-type-header{display:flex;justify-content:space-between;align-items:flex-start;cursor:pointer;-webkit-user-select:none;user-select:none}.shift-type-info h4{margin:0 0 8px;display:flex;align-items:center;gap:10px}.shift-type-info .description{color:#666;margin:5px 0;font-size:14px}.shift-type-info .meta{display:flex;gap:15px;font-size:12px;color:#888;margin-top:5px}.shift-type-actions{display:flex;align-items:center;gap:10px}.expand-icon{font-size:12px;color:#666;margin-left:10px}.shift-type-details{margin-top:15px;padding-top:15px;border-top:1px solid #eee}.time-slots-section{margin-top:10px}.section-header h5{margin:0}.time-slot-form{background:#f9f9f9;padding:15px;border-radius:6px;margin-bottom:15px}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:15px;margin-bottom:15px}.time-slots-table{width:100%;border-collapse:collapse;margin-top:10px}.time-slots-table th,.time-slots-table td{padding:10px;text-align:left;border-bottom:1px solid #eee}.time-slots-table th{background:#f5f5f5;font-weight:600}.time-slots-table tr:hover{background:#f9f9f9}.no-time-slots{color:#888;font-style:italic;padding:20px;text-align:center}.badge-inactive{display:inline-block;padding:2px 8px;background:#ffebee;color:#c62828;border-radius:4px;font-size:11px;font-weight:500}@media (max-width: 768px){.shift-type-header{flex-direction:column;gap:10px}.form-row{grid-template-columns:1fr}}.service-types-management{padding:1rem}.service-types-management .header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem}.service-types-management .header h2{margin:0}.service-types-management .header-actions{display:flex;gap:.5rem}.service-types-management .form-card{margin-bottom:1.5rem}.service-types-management .service-types-list{display:flex;flex-direction:column;gap:1rem}.service-types-management .service-type-card{border:1px solid #ddd;border-radius:8px;padding:1rem;background:#fff}.service-types-management .service-type-card.inactive{opacity:.6;background:#f5f5f5}.service-types-management .service-type-info h4{margin:0 0 .5rem;display:flex;align-items:center;gap:.5rem}.service-types-management .badge-inactive{background:#6c757d;color:#fff;padding:.25rem .5rem;border-radius:4px;font-size:.75rem;font-weight:400}.service-types-management .description{color:#666;margin:.5rem 0}.service-types-management .meta{display:flex;gap:1rem;font-size:.875rem;color:#888;margin-top:.5rem}.service-types-management .service-type-actions{display:flex;gap:.5rem}.service-types-management .btn-sm{padding:.25rem .75rem;font-size:.875rem}.service-types-management .color-picker-wrapper{display:flex;align-items:center;gap:.75rem}.service-types-management .color-input{width:48px;height:48px;padding:0;border:2px solid #ddd;border-radius:8px;cursor:pointer;background:none}.service-types-management .color-input::-webkit-color-swatch-wrapper{padding:0}.service-types-management .color-input::-webkit-color-swatch{border:none;border-radius:6px}.service-types-management .color-value{font-family:Monaco,Menlo,monospace;font-size:.875rem;color:#666;background:#f5f5f5;padding:.25rem .5rem;border-radius:4px}.service-types-management .color-palette{display:flex;gap:.5rem;margin-top:.75rem;flex-wrap:wrap}.service-types-management .color-swatch{width:32px;height:32px;border-radius:6px;border:2px solid transparent;cursor:pointer;transition:all .2s ease}.service-types-management .color-swatch:hover{transform:scale(1.1);box-shadow:0 2px 8px #0003}.service-types-management .color-swatch.selected{border-color:#333;box-shadow:0 0 0 2px #fff,0 0 0 4px #333}.service-types-management .service-type-color-indicator{width:8px;min-height:100%;border-radius:4px 0 0 4px;margin:-1rem 1rem -1rem -1rem}.service-types-management .service-type-header{display:flex;justify-content:space-between;align-items:flex-start}.service-types-management .color-meta{display:flex;align-items:center;gap:.375rem}.service-types-management .color-dot{width:12px;height:12px;border-radius:50%;display:inline-block;border:1px solid rgba(0,0,0,.1)}.client-risk-levels-management{padding:1rem}.client-risk-levels-management .header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem}.client-risk-levels-management .header h2{margin:0}.client-risk-levels-management .header-actions{display:flex;gap:.5rem}.client-risk-levels-management .form-card{margin-bottom:1.5rem}.client-risk-levels-management .form-help-text{display:block;margin-top:.25rem;color:#666;font-size:.875rem}.client-risk-levels-management .risk-levels-list{display:flex;flex-direction:column;gap:1rem}.client-risk-levels-management .risk-level-card{border:1px solid #ddd;border-radius:8px;padding:1rem;background:#fff}.client-risk-levels-management .risk-level-card.inactive{opacity:.6;background:#f5f5f5}.client-risk-levels-management .risk-level-header{display:flex;justify-content:space-between;align-items:flex-start}.client-risk-levels-management .risk-level-info h4{margin:0 0 .5rem;display:flex;align-items:center;gap:.5rem}.client-risk-levels-management .badge-inactive{background:#6c757d;color:#fff;padding:.25rem .5rem;border-radius:4px;font-size:.75rem;font-weight:400}.client-risk-levels-management .description{color:#666;margin:.5rem 0}.client-risk-levels-management .meta{display:flex;gap:1rem;font-size:.875rem;color:#888;margin-top:.5rem}.client-risk-levels-management .risk-level-actions{display:flex;gap:.5rem}.client-risk-levels-management .btn-sm{padding:.25rem .75rem;font-size:.875rem}.objective-configuration{background:#f9f9f9;border-radius:8px;padding:20px}.objective-configuration.loading{text-align:center;padding:20px;color:#666}.config-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.config-header h4{margin:0;color:#333;font-size:16px}.btn-reset{padding:6px 12px;background:#fff;border:1px solid #ddd;border-radius:4px;cursor:pointer;font-size:13px;color:#666;transition:all .2s}.btn-reset:hover:not(:disabled){background:#f5f5f5;border-color:#999}.btn-reset:disabled{opacity:.6;cursor:not-allowed}.objectives-list{display:flex;flex-direction:column;gap:15px}.objective-item{background:#fff;border:1px solid #e0e0e0;border-radius:6px;padding:15px;transition:all .2s}.objective-item:hover{border-color:#4caf50}.objective-item.disabled{opacity:.6;background:#f5f5f5}.objective-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px}.objective-toggle{display:flex;align-items:center;gap:10px;flex:1}.objective-name{font-weight:600;color:#333;font-size:14px}.weight-control{display:flex;align-items:center;gap:5px}.weight-input{width:60px;padding:4px 8px;border:1px solid #ddd;border-radius:4px;text-align:center;font-size:14px}.weight-input:disabled{background:#f5f5f5;cursor:not-allowed}.weight-unit{font-size:14px;color:#666}.objective-details{display:flex;flex-direction:column;gap:8px;margin-top:10px}.label-input,.description-input{padding:6px 10px;border:1px solid #ddd;border-radius:4px;font-size:13px;font-family:inherit}.label-input:disabled,.description-input:disabled{background:#f5f5f5;cursor:not-allowed}.description-input{resize:vertical;min-height:50px}.toggle-switch-small{position:relative;display:inline-block;width:40px;height:20px}.toggle-switch-small input{opacity:0;width:0;height:0}.toggle-switch-small .slider{position:absolute;cursor:pointer;top:0;left:0;right:0;bottom:0;background-color:#ccc;transition:.3s;border-radius:20px}.toggle-switch-small .slider:before{position:absolute;content:"";height:14px;width:14px;left:3px;bottom:3px;background-color:#fff;transition:.3s;border-radius:50%}.toggle-switch-small input:checked+.slider{background-color:#4caf50}.toggle-switch-small input:focus+.slider{box-shadow:0 0 1px #4caf50}.toggle-switch-small input:checked+.slider:before{transform:translate(20px)}.toggle-switch-small input:disabled+.slider{opacity:.6;cursor:not-allowed}.weight-summary{margin-top:20px;padding-top:15px;border-top:1px solid #e0e0e0;text-align:right}.total-weight{font-weight:600;font-size:14px}.warning-message{margin-top:15px;padding:12px;background:#fff3cd;border:1px solid #ffc107;border-radius:4px;color:#856404;font-size:13px}.feature-flags-settings{padding:var(--spacing-6);max-width:1200px;margin:0 auto}.feature-flags-settings h2{margin-bottom:var(--spacing-2-5);color:var(--foreground);font-size:var(--text-2xl);font-weight:var(--font-weight-semibold)}.feature-flags-settings .description{color:var(--muted-foreground);margin-bottom:var(--spacing-8);font-size:var(--text-sm)}.feature-flags-settings.loading{text-align:center;padding:var(--spacing-10);color:var(--muted-foreground)}.success-message{background:color-mix(in srgb,var(--chart-2) 20%,transparent);color:var(--foreground);padding:var(--spacing-3) var(--spacing-4);border-radius:var(--radius-md);margin-bottom:var(--spacing-5);border:1px solid var(--chart-2)}.feature-flags-list{display:flex;flex-direction:column;gap:var(--spacing-5)}.feature-flags-list h3{margin:var(--spacing-5) 0 var(--spacing-2-5) 0;color:var(--foreground);font-size:var(--text-lg);border-bottom:2px solid var(--border);padding-bottom:var(--spacing-2)}.future-features-header{margin-top:var(--spacing-8)!important;color:var(--muted-foreground)!important}.feature-flag-item{background:var(--card);border:1px solid var(--border);border-radius:var(--radius-lg);padding:var(--spacing-5);transition:all var(--duration-normal) var(--ease-out)}.feature-flag-item:hover:not(.read-only):not(.disabled){border-color:var(--chart-2);box-shadow:var(--elevation-sm)}.feature-flag-item.read-only{background:var(--muted);opacity:.8}.feature-flag-item.disabled{background:var(--muted);opacity:.7}.feature-info{display:flex;flex-direction:column;gap:var(--spacing-2-5)}.feature-header{display:flex;justify-content:space-between;align-items:center;gap:var(--spacing-5)}.feature-name{font-size:var(--text-base);font-weight:var(--font-weight-semibold);color:var(--foreground)}.feature-description{color:var(--muted-foreground);font-size:var(--text-sm);line-height:1.5;margin:0}.badge{padding:var(--spacing-1) var(--spacing-3);border-radius:var(--radius-full);font-size:var(--text-xs);font-weight:var(--font-weight-semibold);text-transform:uppercase}.badge.always-enabled{background:color-mix(in srgb,var(--primary) 20%,transparent);color:var(--primary)}.badge.coming-soon{background:color-mix(in srgb,var(--chart-3) 20%,transparent);color:var(--chart-3)}.toggle-switch{position:relative;display:inline-block;width:50px;height:24px}.toggle-switch input{opacity:0;width:0;height:0}.toggle-switch .slider{position:absolute;cursor:pointer;top:0;left:0;right:0;bottom:0;background-color:var(--muted);transition:var(--duration-slow) var(--ease-in-out);border-radius:24px}.toggle-switch .slider:before{position:absolute;content:"";height:18px;width:18px;left:3px;bottom:3px;background-color:var(--card);transition:var(--duration-slow) var(--ease-in-out);border-radius:var(--radius-full)}.toggle-switch input:checked+.slider{background-color:var(--chart-2)}.toggle-switch input:focus+.slider{box-shadow:0 0 1px var(--chart-2)}.toggle-switch input:checked+.slider:before{transform:translate(26px)}.toggle-switch input:disabled+.slider{opacity:.6;cursor:not-allowed}.feature-config{margin-top:var(--spacing-5);padding-top:var(--spacing-5);border-top:1px solid var(--border)}.feature-hint{margin:var(--spacing-2) 0 0 0;padding:var(--spacing-2) var(--spacing-3);background:color-mix(in srgb,var(--chart-2) 20%,transparent);border-radius:var(--radius-md);font-size:13px;color:var(--foreground)}.rostering-rules-settings{max-width:900px;margin:0 auto}.rostering-rules-settings .header{margin-bottom:24px}.rostering-rules-settings .header h2{margin:0 0 8px;font-size:1.5rem;color:var(--foreground)}.rostering-rules-settings .header .description{margin:0;color:var(--muted-foreground);font-size:.95rem;line-height:1.5}.rostering-rules-settings .rules-sections{display:flex;flex-direction:column;gap:24px}.rostering-rules-settings .card{background:var(--card);border:1px solid var(--border);border-radius:12px;padding:24px}.rostering-rules-settings .card h3{margin:0 0 8px;font-size:1.15rem;color:var(--foreground)}.rostering-rules-settings .section-description{margin:0 0 20px;color:var(--muted-foreground);font-size:.9rem;line-height:1.5}.rostering-rules-settings .rules-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:24px}.rostering-rules-settings .rules-grid.three-column{grid-template-columns:repeat(3,1fr)}@media (max-width: 768px){.rostering-rules-settings .rules-grid,.rostering-rules-settings .rules-grid.three-column{grid-template-columns:1fr}}.rostering-rules-settings .rule-item{display:flex;flex-direction:column;gap:8px}.rostering-rules-settings .rule-item label{font-weight:600;color:var(--foreground);font-size:.95rem}.rostering-rules-settings .input-with-suffix{display:flex;align-items:center;gap:8px}.rostering-rules-settings .input-with-suffix input{flex:1;max-width:120px;padding:10px 12px;border:1px solid var(--border);border-radius:8px;font-size:1rem;background:var(--input-background);color:var(--foreground)}.rostering-rules-settings .input-with-suffix input:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px color-mix(in srgb,var(--primary) 20%,transparent)}.rostering-rules-settings .input-with-suffix .suffix{color:var(--muted-foreground);font-size:.9rem;white-space:nowrap}.rostering-rules-settings .hint{color:var(--muted-foreground);font-size:.85rem;line-height:1.4}.rostering-rules-settings .hint.warning-hint{color:var(--chart-3, #f59e0b)}.rostering-rules-settings .hint.error-hint{color:var(--destructive, #ef4444)}.rostering-rules-settings .info-box{display:flex;align-items:flex-start;gap:10px;margin-top:20px;padding:14px 16px;background:color-mix(in srgb,var(--chart-1) 10%,transparent);border:1px solid color-mix(in srgb,var(--chart-1) 20%,transparent);border-radius:8px;font-size:.9rem;color:var(--muted-foreground);line-height:1.5}.rostering-rules-settings .info-icon{font-size:1.1rem;flex-shrink:0}.rostering-rules-settings .duration-visual{margin-top:24px}.rostering-rules-settings .duration-bar{display:flex;height:32px;border-radius:8px;overflow:hidden;border:1px solid var(--border)}.rostering-rules-settings .duration-bar>div{display:flex;align-items:center;justify-content:center;font-size:.75rem;font-weight:600;color:#fff;text-shadow:0 1px 2px rgba(0,0,0,.2)}.rostering-rules-settings .standard-zone{background:linear-gradient(135deg,#10b981,#059669)}.rostering-rules-settings .warning-zone{background:linear-gradient(135deg,#f59e0b,#d97706)}.rostering-rules-settings .danger-zone{background:linear-gradient(135deg,#ef4444,#dc2626)}.rostering-rules-settings .duration-labels{display:flex;justify-content:space-between;margin-top:8px;padding:0 4px;font-size:.8rem;color:var(--muted-foreground)}.rostering-rules-settings .toggle-row{margin-top:8px}.rostering-rules-settings .toggle-label{display:flex;align-items:center;gap:12px;cursor:pointer}.rostering-rules-settings .toggle-label input[type=checkbox]{position:relative;width:48px;height:26px;-webkit-appearance:none;-moz-appearance:none;appearance:none;background:var(--muted);border-radius:13px;cursor:pointer;transition:background .2s ease}.rostering-rules-settings .toggle-label input[type=checkbox]:checked{background:var(--primary)}.rostering-rules-settings .toggle-label input[type=checkbox]:before{content:"";position:absolute;top:3px;left:3px;width:20px;height:20px;background:#fff;border-radius:50%;transition:transform .2s ease;box-shadow:0 1px 3px #0003}.rostering-rules-settings .toggle-label input[type=checkbox]:checked:before{transform:translate(22px)}.rostering-rules-settings .toggle-text{font-size:.95rem;color:var(--foreground)}.rostering-rules-settings .footer-actions{display:flex;justify-content:flex-end;gap:12px;margin-top:24px;padding-top:24px;border-top:1px solid var(--border)}.rostering-rules-settings .btn{padding:10px 20px;border:none;border-radius:8px;font-size:.95rem;font-weight:500;cursor:pointer;transition:all .2s ease}.rostering-rules-settings .btn:disabled{opacity:.6;cursor:not-allowed}.rostering-rules-settings .btn-primary{background:var(--primary);color:var(--primary-foreground)}.rostering-rules-settings .btn-primary:hover:not(:disabled){background:color-mix(in srgb,var(--primary) 85%,black)}.rostering-rules-settings .btn-secondary{background:var(--secondary);color:var(--secondary-foreground);border:1px solid var(--border)}.rostering-rules-settings .btn-secondary:hover:not(:disabled){background:var(--muted)}.rostering-rules-settings .success-message{padding:12px 16px;margin-bottom:20px;background:color-mix(in srgb,var(--chart-2) 10%,transparent);border:1px solid color-mix(in srgb,var(--chart-2) 20%,transparent);border-radius:8px;color:var(--chart-2);font-size:.95rem}.rostering-rules-settings .loading{display:flex;align-items:center;justify-content:center;padding:48px;color:var(--muted-foreground);font-size:1rem}.alert{display:flex;align-items:flex-start;gap:var(--spacing-3);padding:var(--spacing-4);border-radius:var(--radius-card);border:1px solid;position:relative}.alert-content{flex:1;min-width:0}.alert-title{font-size:var(--text-base);font-weight:var(--font-weight-semibold);margin-bottom:var(--spacing-1);line-height:1.5}.alert-message{font-size:var(--text-sm);line-height:1.5}.alert-action{margin-top:var(--spacing-3)}.alert-action-button{padding:var(--spacing-1) var(--spacing-3);border:1px solid currentColor;border-radius:var(--radius);background-color:transparent;font-size:var(--text-sm);font-weight:var(--font-weight-medium);cursor:pointer;transition:opacity var(--duration-normal) var(--ease-in-out)}.alert-action-button:hover{opacity:.8}.alert-dismiss{position:absolute;top:var(--spacing-2);right:var(--spacing-2);display:flex;align-items:center;justify-content:center;width:24px;height:24px;border:none;background-color:transparent;color:currentColor;cursor:pointer;border-radius:var(--radius);font-size:20px;line-height:1;transition:background-color var(--duration-normal) var(--ease-in-out);flex-shrink:0}.alert-dismiss:hover{background-color:color-mix(in srgb,currentColor 10%,transparent)}.alert-success{background-color:color-mix(in srgb,var(--chart-2) 10%,transparent);border-color:var(--chart-2);color:var(--chart-2)}.alert-info{background-color:color-mix(in srgb,var(--chart-1) 10%,transparent);border-color:var(--chart-1);color:var(--chart-1)}.alert-warning{background-color:color-mix(in srgb,var(--chart-3) 10%,transparent);border-color:var(--chart-3);color:var(--chart-3)}.alert-error,.alert-conflict{background-color:color-mix(in srgb,var(--destructive) 10%,transparent);border-color:var(--destructive);color:var(--destructive)}.site-assignment-rules-settings{max-width:1000px;margin:0 auto;padding:var(--spacing-6)}.site-assignment-rules-loading,.site-assignment-rules-error{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:300px;gap:var(--spacing-4)}.loading-spinner{width:40px;height:40px;border:3px solid var(--border);border-top-color:var(--primary);border-radius:50%;animation:spin 1s linear infinite}.rules-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:var(--spacing-6);flex-wrap:wrap;gap:var(--spacing-4)}.rules-header-info h2{margin:0 0 var(--spacing-2) 0;font-size:var(--text-2xl);font-weight:var(--font-weight-semibold)}.rules-header-info p{margin:0;color:var(--muted-foreground)}.rules-header-actions{display:flex;align-items:center;gap:var(--spacing-3)}.rules-tabs{display:flex;gap:var(--spacing-1);border-bottom:1px solid var(--border);margin-bottom:var(--spacing-6);overflow-x:auto}.rules-tab{display:flex;align-items:center;gap:var(--spacing-2);padding:var(--spacing-3) var(--spacing-4);background:none;border:none;border-bottom:2px solid transparent;color:var(--muted-foreground);font-size:var(--text-sm);font-weight:var(--font-weight-medium);cursor:pointer;transition:all .2s;white-space:nowrap}.rules-tab:hover{color:var(--foreground);background:var(--accent)}.rules-tab.active{color:var(--primary);border-bottom-color:var(--primary)}.rules-content{margin-bottom:var(--spacing-6)}.weights-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:var(--spacing-6)}.weight-item{padding:var(--spacing-4);background:var(--card);border:1px solid var(--border);border-radius:var(--radius)}.weight-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--spacing-3)}.weight-label{display:flex;align-items:center;gap:var(--spacing-2);font-weight:var(--font-weight-medium)}.weight-value{font-size:var(--text-lg);font-weight:var(--font-weight-semibold);color:var(--primary)}.weight-slider{width:100%;height:8px;-webkit-appearance:none;-moz-appearance:none;appearance:none;background:var(--muted);border-radius:4px;outline:none;margin-bottom:var(--spacing-2)}.weight-slider::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:20px;height:20px;border-radius:50%;background:var(--primary);cursor:pointer;transition:transform .2s}.weight-slider::-webkit-slider-thumb:hover{transform:scale(1.1)}.weight-slider::-moz-range-thumb{width:20px;height:20px;border-radius:50%;background:var(--primary);cursor:pointer;border:none}.weight-description{margin:0;font-size:var(--text-xs);color:var(--muted-foreground)}.weights-summary{margin-top:var(--spacing-6);padding:var(--spacing-4);background:var(--muted);border-radius:var(--radius)}.weights-summary h4{margin:0 0 var(--spacing-4) 0;font-size:var(--text-sm);font-weight:var(--font-weight-medium)}.weight-bars{display:flex;flex-direction:column;gap:var(--spacing-2)}.weight-bar-row{display:grid;grid-template-columns:140px 1fr 50px;align-items:center;gap:var(--spacing-3)}.weight-bar-label{font-size:var(--text-xs);color:var(--muted-foreground);text-align:right}.weight-bar-track{height:8px;background:var(--border);border-radius:4px;overflow:hidden}.weight-bar-fill{height:100%;background:linear-gradient(90deg,var(--primary),var(--primary-foreground));border-radius:4px;transition:width .3s ease}.weight-bar-value{font-size:var(--text-xs);font-weight:var(--font-weight-medium)}.constraints-list{display:flex;flex-direction:column;gap:var(--spacing-4)}.constraint-item{display:grid;grid-template-columns:1fr auto;gap:var(--spacing-2);padding:var(--spacing-4);background:var(--card);border:1px solid var(--border);border-radius:var(--radius)}.constraint-toggle{display:flex;align-items:center;gap:var(--spacing-3);cursor:pointer;grid-column:1}.constraint-toggle input[type=checkbox]{display:none}.toggle-slider{position:relative;width:44px;height:24px;background:var(--muted);border-radius:12px;transition:background .3s;flex-shrink:0}.toggle-slider:after{content:"";position:absolute;top:2px;left:2px;width:20px;height:20px;background:#fff;border-radius:50%;transition:transform .3s;box-shadow:0 2px 4px #0003}.constraint-toggle input:checked+.toggle-slider{background:var(--destructive)}.constraint-toggle input:checked+.toggle-slider:after{transform:translate(20px)}.constraint-label{font-weight:var(--font-weight-medium)}.constraint-description{grid-column:1;margin:0;font-size:var(--text-sm);color:var(--muted-foreground);padding-left:56px}.constraints-warning{margin-top:var(--spacing-4);display:flex;align-items:center;gap:var(--spacing-2)}.preferences-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:var(--spacing-4)}.preference-item{display:flex;flex-direction:column;gap:var(--spacing-2);padding:var(--spacing-3);background:var(--card);border:1px solid var(--border);border-radius:var(--radius)}.preference-label{font-size:var(--text-sm);font-weight:var(--font-weight-medium)}.preference-input-group{display:flex;align-items:center;gap:var(--spacing-2)}.preference-input{width:80px;padding:var(--spacing-2);border:1px solid var(--border);border-radius:var(--radius);text-align:center;font-weight:var(--font-weight-medium)}.preference-input.positive{background:var(--success-bg);border-color:var(--success)}.preference-input.negative{background:var(--destructive-bg);border-color:var(--destructive)}.preference-suffix{font-size:var(--text-sm);color:var(--muted-foreground)}.fallback-settings{display:flex;flex-direction:column;gap:var(--spacing-6)}.fallback-item{display:flex;flex-direction:column;gap:var(--spacing-2)}.fallback-item>label{font-weight:var(--font-weight-medium)}.fallback-select{padding:var(--spacing-2) var(--spacing-3);border:1px solid var(--border);border-radius:var(--radius);background:var(--background);font-size:var(--text-sm);max-width:400px}.fallback-description{margin:0;font-size:var(--text-sm);color:var(--muted-foreground)}.threshold-input-group{display:flex;align-items:center;gap:var(--spacing-2)}.threshold-input{width:80px;padding:var(--spacing-2);border:1px solid var(--border);border-radius:var(--radius);text-align:center}.threshold-suffix{color:var(--muted-foreground)}.toggle-row{display:flex;align-items:center;gap:var(--spacing-3);cursor:pointer}.toggle-row input[type=checkbox]{width:18px;height:18px;cursor:pointer}.special-rules-container{display:flex;flex-direction:column;gap:var(--spacing-4)}.collapsible-header{cursor:pointer;-webkit-user-select:none;user-select:none}.section-title{display:flex;justify-content:space-between;align-items:center}.special-rules-grid{display:flex;flex-direction:column;gap:var(--spacing-4)}.input-row{display:flex;align-items:center;gap:var(--spacing-3)}.input-row label{min-width:180px}.input-row input[type=number]{width:80px;padding:var(--spacing-2);border:1px solid var(--border);border-radius:var(--radius);text-align:center}.rules-footer{display:flex;justify-content:flex-end;padding-top:var(--spacing-4);border-top:1px solid var(--border)}.footer-info{display:flex;gap:var(--spacing-4);font-size:var(--text-sm);color:var(--muted-foreground)}@media (max-width: 768px){.site-assignment-rules-settings{padding:var(--spacing-4)}.rules-header{flex-direction:column}.rules-header-actions{width:100%;justify-content:flex-end}.weights-grid,.preferences-grid{grid-template-columns:1fr}.weight-bar-row{grid-template-columns:100px 1fr 40px}.constraint-item{grid-template-columns:1fr}.constraint-description{padding-left:0}}.forms-service-settings{max-width:800px;margin:0 auto;padding:var(--spacing-6)}.forms-service-settings h3{margin-bottom:var(--spacing-2-5);color:var(--foreground);font-size:var(--text-xl);font-weight:var(--font-weight-semibold)}.forms-service-settings>p{margin-bottom:var(--spacing-5);color:var(--muted-foreground);font-size:var(--text-sm)}.forms-service-settings .form-group{margin-bottom:var(--spacing-5)}.forms-service-settings .form-group label{display:block;margin-bottom:var(--spacing-1-5);font-weight:var(--font-weight-medium);color:var(--foreground);font-size:var(--text-sm)}.forms-service-settings .form-group input[type=checkbox]{margin-right:var(--spacing-2)}.forms-service-settings .form-group input[type=url],.forms-service-settings .form-group input[type=password],.forms-service-settings .form-group select{width:100%;padding:var(--spacing-2) var(--spacing-3);border:1px solid var(--border);border-radius:var(--radius-md);font-size:var(--text-sm);background:var(--input-background);color:var(--foreground);transition:all var(--duration-normal) var(--ease-out)}.forms-service-settings .form-group input:focus,.forms-service-settings .form-group select:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px color-mix(in srgb,var(--ring) 30%,transparent)}.forms-service-settings .form-group input:disabled,.forms-service-settings .form-group select:disabled{background-color:var(--muted);cursor:not-allowed;opacity:.5}.forms-service-settings .form-group small{display:block;margin-top:var(--spacing-1-5);color:var(--muted-foreground);font-size:var(--text-xs)}.forms-service-settings .info-box{background-color:color-mix(in srgb,var(--primary) 10%,transparent);border:1px solid color-mix(in srgb,var(--primary) 30%,transparent);border-radius:var(--radius-md);padding:var(--spacing-3);margin-bottom:var(--spacing-5)}.forms-service-settings .info-box strong{display:block;margin-bottom:var(--spacing-1-5);color:var(--primary);font-weight:var(--font-weight-semibold)}.forms-service-settings .info-box code{display:block;background-color:var(--card);padding:var(--spacing-2);border-radius:var(--radius-md);font-family:monospace;font-size:var(--text-xs);margin:var(--spacing-2) 0;word-break:break-all;color:var(--foreground)}.forms-service-settings .info-box small{display:block;margin-top:var(--spacing-1-5);color:var(--muted-foreground);font-size:var(--text-xs)}.health-status-section{margin-top:var(--spacing-8);padding:var(--spacing-5);background-color:var(--muted);border-radius:var(--radius-md)}.health-status-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--spacing-4)}.health-status-header h4{margin:0;color:var(--foreground);font-size:var(--text-lg);font-weight:var(--font-weight-semibold)}.check-health-button{padding:var(--spacing-1-5) var(--spacing-3);background-color:var(--primary);color:var(--primary-foreground);border:none;border-radius:var(--radius-md);cursor:pointer;font-size:var(--text-sm);font-weight:var(--font-weight-medium);transition:all var(--duration-normal) var(--ease-out)}.check-health-button:hover:not(:disabled){background-color:color-mix(in srgb,var(--primary) 90%,black)}.check-health-button:disabled{background-color:var(--muted);color:var(--muted-foreground);cursor:not-allowed;opacity:.5}.health-status-indicator{padding:var(--spacing-4);border-radius:var(--radius-md);border:2px solid}.health-status-indicator.green{background-color:color-mix(in srgb,var(--chart-2) 20%,transparent);border-color:var(--chart-2);color:var(--foreground)}.health-status-indicator.yellow{background-color:color-mix(in srgb,var(--chart-3) 20%,transparent);border-color:var(--chart-3);color:var(--foreground)}.health-status-indicator.red{background-color:color-mix(in srgb,var(--destructive) 20%,transparent);border-color:var(--destructive);color:var(--foreground)}.health-status-indicator.gray{background-color:var(--muted);border-color:var(--border);color:var(--muted-foreground)}.health-status-badge{display:flex;align-items:center;margin-bottom:var(--spacing-2-5)}.status-dot{width:12px;height:12px;border-radius:var(--radius-full);margin-right:var(--spacing-2);display:inline-block}.health-status-indicator.green .status-dot{background-color:var(--chart-2)}.health-status-indicator.yellow .status-dot{background-color:var(--chart-3)}.health-status-indicator.red .status-dot{background-color:var(--destructive)}.health-status-indicator.gray .status-dot{background-color:var(--muted-foreground)}.health-status-details{margin-top:var(--spacing-2-5);font-size:var(--text-sm)}.health-status-details>div{margin-bottom:var(--spacing-1-5)}.health-checks{margin-top:var(--spacing-2-5)}.health-checks ul{list-style:none;padding:0;margin:var(--spacing-1-5) 0 0 0}.health-checks li{padding:var(--spacing-1) 0;display:flex;gap:var(--spacing-2-5)}.check-name{font-weight:var(--font-weight-medium);min-width:120px}.check-status{padding:var(--spacing-1) var(--spacing-2);border-radius:var(--radius-sm);font-size:var(--text-xs);font-weight:var(--font-weight-medium)}.check-status.ok{background-color:color-mix(in srgb,var(--chart-2) 20%,transparent);color:var(--foreground)}.check-status.error{background-color:color-mix(in srgb,var(--destructive) 20%,transparent);color:var(--foreground)}.check-status.warning{background-color:color-mix(in srgb,var(--chart-3) 20%,transparent);color:var(--foreground)}.health-error{margin-top:var(--spacing-2-5);padding:var(--spacing-2);background-color:color-mix(in srgb,var(--destructive) 20%,transparent);border-left:3px solid var(--destructive);border-radius:var(--radius-sm);color:var(--foreground)}.form-actions{margin-top:var(--spacing-8);display:flex;justify-content:flex-end}.save-button{padding:var(--spacing-2-5) var(--spacing-5);background-color:var(--chart-2);color:#fff;border:none;border-radius:var(--radius-md);cursor:pointer;font-size:var(--text-base);font-weight:var(--font-weight-medium);transition:all var(--duration-normal) var(--ease-out)}.save-button:hover:not(:disabled){background-color:color-mix(in srgb,var(--chart-2) 90%,black)}.save-button:disabled{background-color:var(--muted);color:var(--muted-foreground);cursor:not-allowed;opacity:.5}.success-message{padding:var(--spacing-3);background-color:color-mix(in srgb,var(--chart-2) 20%,transparent);border:1px solid var(--chart-2);border-radius:var(--radius-md);color:var(--foreground);margin-bottom:var(--spacing-5)}.settings{max-width:1200px;margin:0 auto;padding:20px}.settings h2{margin-bottom:10px;color:#333}.settings>p{margin-bottom:30px;color:#666}.settings-tabs{display:flex;gap:10px;margin-bottom:30px;border-bottom:2px solid #dee2e6}.tab-button{padding:12px 24px;background:none;border:none;border-bottom:3px solid transparent;cursor:pointer;font-size:16px;font-weight:500;color:#666;transition:all .2s ease;margin-bottom:-2px}.tab-button:hover{color:#007bff;background-color:#f8f9fa}.tab-button.active{color:#007bff;border-bottom-color:#007bff;font-weight:600}.api-keys-section,.model-selection-section{display:flex;flex-direction:column;gap:20px}.card{background:#fff;border:1px solid #dee2e6;border-radius:8px;padding:24px;box-shadow:0 2px 4px #0000000d}.card h3{margin:0 0 8px;color:#333;font-size:20px}.setting-description{margin:0 0 20px;color:#666;font-size:14px}.setting-display{margin-top:20px}.setting-row{display:flex;align-items:center;justify-content:space-between;padding:12px 0}.setting-row label{font-weight:500;color:#333;margin-right:15px}.setting-value{display:flex;align-items:center;gap:15px;flex-wrap:wrap}.setting-value code{background:#f8f9fa;padding:6px 12px;border-radius:4px;font-family:Courier New,monospace;font-size:14px;color:#495057}.button-group{display:flex;gap:10px;align-items:center}.connectivity-result{margin-top:12px;padding:10px 14px;border-radius:4px;font-size:14px;font-weight:500}.connectivity-result.success{background-color:#d4edda;border:1px solid #c3e6cb;color:#155724}.connectivity-result.error{background-color:#f8d7da;border:1px solid #f5c6cb;color:#721c24}.setting-form{margin-top:20px}.form-group input,.form-group select{width:100%;padding:10px 12px;border:1px solid #ced4da;border-radius:4px;font-size:14px;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}.form-group input:focus,.form-group select:focus{outline:none;border-color:#007bff;box-shadow:0 0 0 3px #007bff1a}.form-hint{display:block;margin-top:6px;font-size:12px;color:#6c757d}.model-selector{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-top:20px}@media (max-width: 768px){.model-selector{grid-template-columns:1fr}.setting-row{flex-direction:column;align-items:flex-start;gap:10px}.setting-value{width:100%;flex-direction:column;align-items:flex-start}.button-group{width:100%;flex-direction:column}.button-group button{width:100%}}.success{background-color:#d4edda;border:1px solid #c3e6cb;color:#155724;padding:12px 16px;border-radius:4px;margin-bottom:20px}.availability-generator{margin:20px 0;padding:20px}.availability-generator .header{margin-bottom:20px}.availability-generator .header h2{margin:0 0 10px;color:#333}.availability-generator .description{color:#666;margin-top:10px}.card{background:#fff;border-radius:8px;padding:20px;margin-bottom:20px;box-shadow:0 2px 4px #0000001a}.card-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px;padding-bottom:15px;border-bottom:2px solid #e9ecef}.header-title-section{display:flex;align-items:center;gap:15px}.card-header h3{margin:0;color:#333}.header-actions{display:flex;gap:10px}.ai-generated-badge{display:inline-flex;align-items:center;gap:5px;padding:4px 12px;background:#e3f2fd;border:1px solid #2196f3;border-radius:12px;font-size:12px;font-weight:600;color:#1976d2}.form-group{margin-bottom:20px}.form-group label{display:block;margin-bottom:8px;font-weight:500;color:#333}.form-group input[type=date],.form-group input[type=text],.form-group textarea,.form-group select{width:100%;padding:10px;border:1px solid #ddd;border-radius:4px;font-size:14px;font-family:inherit}.form-group textarea{resize:vertical;min-height:150px}.helper-text{font-size:12px;color:#666;margin-bottom:8px}.generation-params-details{margin-bottom:1.5rem;border:1px solid #e0e0e0;border-radius:8px;background:#f9f9f9}.generation-params-summary{padding:1rem;cursor:pointer;display:flex;justify-content:space-between;align-items:center;font-weight:500;-webkit-user-select:none;user-select:none;list-style:none}.generation-params-summary::-webkit-details-marker{display:none}.generation-params-summary:before{content:"▶";display:inline-block;margin-right:.5rem;transition:transform .2s;color:#666}.generation-params-details[open] .generation-params-summary:before{transform:rotate(90deg)}.params-badge{background:#4caf50;color:#fff;padding:.25rem .5rem;border-radius:12px;font-size:.75rem;font-weight:400}.generation-params-content{padding:1rem;border-top:1px solid #e0e0e0;background:#fff}.generated-text-area{font-family:Monaco,Menlo,Ubuntu Mono,monospace;font-size:.9rem;line-height:1.6}.form-actions{display:flex;gap:10px;justify-content:flex-end;margin-top:20px}.btn{padding:10px 20px;border:none;border-radius:4px;cursor:pointer;font-size:14px;font-weight:500;transition:all .2s}.btn-primary:disabled{background:#6c757d;cursor:not-allowed;opacity:.6}.btn-secondary:hover:not(:disabled){background:#5a6268}.btn-sm{padding:6px 12px;font-size:12px}.text-modified-indicator{display:flex;align-items:center;gap:10px;padding:10px;background:#fff3cd;border:1px solid #ffc107;border-radius:4px;margin-bottom:15px;font-size:13px}.warning-icon{font-size:16px}.btn-link{background:none;border:none;color:#007bff;cursor:pointer;text-decoration:underline;padding:0;font-size:inherit}.btn-link:hover{color:#0056b3}.generation-parameters-card{background:#f8f9fa;padding:15px;border-radius:4px;margin-bottom:15px}.generation-parameters-card h4{margin:0 0 10px;color:#333;font-size:14px}.parameter-item strong{color:#666;font-size:12px;text-transform:uppercase}.staff-names-list{font-size:12px;color:#666;margin-top:5px}.parsing-card{text-align:center;padding:40px}.parsing-message{color:#666}.multi-select{width:100%;padding:8px;border:1px solid #ddd;border-radius:4px;font-size:14px}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:15px}.checkbox-group{display:flex;gap:20px;margin-top:8px}.checkbox-group label{display:flex;align-items:center;gap:8px;font-weight:400}.generated-preview{margin-top:20px}.preview-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.summary{background:#f5f5f5;padding:15px;border-radius:6px;margin-bottom:20px;color:#333}.missing-staff-section,.slots-section{margin-bottom:30px}.section-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:15px}.section-actions{display:flex;gap:10px}.missing-staff-list{display:flex;flex-direction:column;gap:10px}.missing-staff-item{display:flex;align-items:flex-start;gap:12px;padding:12px;border:2px solid #ddd;border-radius:6px;cursor:pointer;transition:all .2s}.missing-staff-item:hover{border-color:#1976d2;background:#f5f5f5}.missing-staff-item.selected{border-color:#1976d2;background:#e3f2fd}.staff-info{flex:1}.staff-details{display:flex;gap:15px;margin:5px 0;font-size:13px;color:#666}.staff-info small{display:block;color:#888;font-style:italic;margin-top:5px}.slots-preview{display:flex;flex-direction:column;gap:20px}.date-group h5{margin:0 0 10px;color:#333;font-size:16px}.slots-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:10px}.slot-item{display:flex;align-items:flex-start;gap:12px;padding:12px;border:2px solid #ddd;border-radius:6px;cursor:pointer;transition:all .2s}.slot-item:hover{border-color:#1976d2;background:#f5f5f5}.slot-item.selected{border-color:#1976d2;background:#e3f2fd}.slot-info{flex:1}.slot-time{font-weight:600;color:#1976d2;margin:5px 0}.slot-meta{display:flex;align-items:center;gap:10px;margin-top:5px}.badge-type{display:inline-block;padding:2px 8px;background:#e3f2fd;color:#1976d2;border-radius:4px;font-size:11px;font-weight:500;text-transform:capitalize}.slot-meta small{color:#888;font-size:12px}.preview-footer{margin-top:30px;padding-top:20px;border-top:1px solid #eee;display:flex;justify-content:space-between;align-items:center}.selection-summary{color:#666}.footer-actions{display:flex;gap:10px}.ai-generated-badge{display:inline-flex;align-items:center;gap:6px;background:#1976d2;color:#fff;padding:6px 12px;border-radius:20px;font-size:12px;font-weight:500;margin-left:12px}.badge-icon{font-size:14px}.header-title-section{display:flex;align-items:center;flex-wrap:wrap;gap:10px}.header-title-section h3{margin:0}.generation-parameters-card{background:#e3f2fd;border:1px solid #90caf9;border-radius:6px;padding:15px;margin-bottom:20px}.generation-parameters-card h4{margin:0 0 15px;color:#1565c0;font-size:16px}.parameters-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:15px}.parameter-item{display:flex;flex-direction:column;gap:5px}.parameter-item strong{color:#1565c0;font-size:13px;font-weight:600}.parameter-item span{color:#333;font-size:14px}.staff-names-list{margin-top:5px;font-size:12px;color:#666;font-style:italic}.text-modified-indicator{display:flex;align-items:center;gap:8px;background:#fff3e0;border:1px solid #ffb74d;border-radius:6px;padding:12px 15px;margin-bottom:20px;color:#e65100}.warning-icon{font-size:18px}.text-modified-indicator .btn-link{margin-left:auto;background:none;border:none;color:#e65100;text-decoration:underline;cursor:pointer;font-size:14px;padding:0}.text-modified-indicator .btn-link:hover{color:#bf360c}.helper-text{color:#666;font-size:13px;margin-top:5px;margin-bottom:8px;font-style:italic}.parsing-card{margin:20px 0}.parsing-message{padding:20px;text-align:center;color:#666}.parsing-message p{margin:0;font-size:16px}.confirmation-summary{background:#e8f5e9;border:1px solid #81c784;border-radius:6px;padding:20px;margin-bottom:20px}.confirmation-summary h4{margin:0 0 15px;color:#2e7d32;font-size:18px}.summary-stats{display:flex;gap:30px;flex-wrap:wrap}.summary-stats .stat{display:flex;flex-direction:column;align-items:center}.summary-stats .stat strong{font-size:28px;color:#2e7d32;font-weight:600}.summary-stats .stat span{font-size:14px;color:#666;margin-top:5px}.action-buttons{display:flex;gap:10px;justify-content:flex-end}@media (max-width: 768px){.form-row,.slots-list{grid-template-columns:1fr}.preview-footer{flex-direction:column;align-items:stretch;gap:15px}.footer-actions{flex-direction:column}.footer-actions button{width:100%}.parameters-grid{grid-template-columns:1fr}.header-title-section{flex-direction:column;align-items:flex-start}.ai-generated-badge{margin-left:0}.summary-stats{gap:20px}.action-buttons{flex-direction:column}.action-buttons button{width:100%}}.list-popover-overlay{position:fixed;top:0;left:0;right:0;bottom:0;z-index:1000;pointer-events:none}.list-popover{pointer-events:auto;background:var(--card);border:1px solid var(--border);border-radius:var(--radius-card);box-shadow:var(--elevation-lg);min-width:280px;max-width:360px;max-height:400px;display:flex;flex-direction:column;animation:list-popover-enter var(--duration-fast) var(--ease-out);overflow:hidden}@keyframes list-popover-enter{0%{opacity:0;transform:translateY(-8px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}.list-popover-header{display:flex;align-items:center;justify-content:space-between;padding:var(--spacing-3) var(--spacing-4);border-bottom:1px solid var(--border);background:var(--muted);flex-shrink:0}.list-popover-title{margin:0;font-size:var(--text-sm);font-weight:var(--font-weight-semibold);color:var(--foreground)}.list-popover-close{display:flex;align-items:center;justify-content:center;width:28px;height:28px;border:none;background:transparent;border-radius:var(--radius);cursor:pointer;color:var(--muted-foreground);transition:all var(--duration-fast) var(--ease-out)}.list-popover-close:hover{background:var(--accent);color:var(--foreground)}.list-popover-content{padding:var(--spacing-3);overflow-y:auto;display:flex;flex-direction:column;gap:var(--spacing-2)}.list-popover-entry{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:var(--spacing-2) var(--spacing-3);border-left:3px solid var(--primary);cursor:pointer;transition:all var(--duration-fast) var(--ease-out)}.list-popover-entry:hover{box-shadow:var(--elevation-sm);transform:translate(2px)}.list-popover-entry-header{display:flex;align-items:center;justify-content:space-between;gap:var(--spacing-2);margin-bottom:var(--spacing-1)}.list-popover-entry-title{font-size:var(--text-sm);font-weight:var(--font-weight-medium);color:var(--foreground)}.list-popover-entry-badge{font-size:10px;font-weight:var(--font-weight-bold);padding:2px 6px;border-radius:var(--radius-sm);background:var(--primary);color:#fff}.list-popover-entry-time{display:flex;align-items:center;gap:4px;font-size:var(--text-xs);color:var(--muted-foreground)}.list-popover-entry-time svg{width:12px;height:12px}.list-popover-entry-details{font-size:11px;color:var(--muted-foreground);margin-top:4px}.list-popover-entry-available{border-left-color:var(--chart-2);background:color-mix(in srgb,var(--chart-2) 5%,var(--card))}.list-popover-entry-unavailable{border-left-color:var(--destructive);background:color-mix(in srgb,var(--destructive) 5%,var(--card))}.list-popover-entry-normal{border-left-color:var(--primary)}.list-popover-entry-high{border-left-color:var(--destructive);background:color-mix(in srgb,var(--destructive) 5%,var(--card))}.list-popover-entry-medium{border-left-color:var(--chart-3);background:color-mix(in srgb,var(--chart-3) 5%,var(--card))}.list-popover-empty{text-align:center;padding:var(--spacing-4);color:var(--muted-foreground);font-size:var(--text-sm)}.availability-card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:var(--spacing-2);transition:all var(--duration-normal) var(--ease-in-out);position:relative;border-left:3px solid}.availability-card-clickable{cursor:pointer}.availability-card-clickable:hover{box-shadow:var(--elevation-sm);transform:translateY(-1px)}.availability-card-available{border-left-color:#22c55e;background:color-mix(in srgb,#22c55e 8%,var(--card))}.availability-card-unavailable{border-left-color:#ef4444;background:color-mix(in srgb,#ef4444 8%,var(--card))}.availability-card-status{display:flex;align-items:center;gap:var(--spacing-1);margin-bottom:var(--spacing-1)}.availability-card-status-icon{width:14px;height:14px}.availability-card-status-icon.available{color:#22c55e}.availability-card-status-icon.unavailable{color:#ef4444}.availability-card-status-text{font-size:var(--text-xs);font-weight:var(--font-weight-semibold);text-transform:uppercase;letter-spacing:.02em}.availability-card-available .availability-card-status-text{color:#166534}.availability-card-unavailable .availability-card-status-text{color:#991b1b}.availability-card-time{display:flex;align-items:center;gap:var(--spacing-1);font-size:var(--text-xs);color:var(--muted-foreground)}.availability-card-time-icon{width:12px;height:12px}.availability-card-notes{display:flex;align-items:flex-start;gap:var(--spacing-1);margin-top:var(--spacing-1);font-size:10px;color:var(--muted-foreground)}.availability-card-notes-icon{width:10px;height:10px;flex-shrink:0;margin-top:1px}.availability-card-notes-text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:100px}.availability-card-compact{padding:var(--spacing-1) var(--spacing-2)}.availability-card-compact .availability-card-status{margin-bottom:0}.availability-card-compact .availability-card-status-text,.availability-card-compact .availability-card-time{font-size:10px}.availability-card-compact .availability-card-notes{display:none}.availability-grid{display:flex;flex-direction:column;width:100%;background:var(--card);border:1px solid var(--border);border-radius:var(--radius-card);overflow:hidden}.availability-grid-header{padding:var(--spacing-4);border-bottom:1px solid var(--border);background:var(--muted)}.availability-grid-navigation{display:flex;align-items:center;justify-content:space-between;gap:var(--spacing-4)}.availability-grid-date-range{display:flex;align-items:center;gap:var(--spacing-2)}.availability-grid-date-text{font-size:var(--text-base);font-weight:var(--font-weight-semibold);color:var(--foreground);min-width:200px;text-align:center}.availability-grid-content{overflow-x:auto;overflow-y:auto;max-height:calc(100vh - 350px)}.availability-grid-table{display:grid;width:100%;min-width:900px}.availability-grid-row{display:grid;grid-template-columns:200px repeat(var(--days-count, 7),1fr);border-bottom:1px solid var(--border);gap:0}.availability-grid-row:last-child{border-bottom:none}.availability-grid-row:hover:not(.availability-grid-header-row){background:color-mix(in srgb,var(--muted) 50%,transparent)}.availability-grid-row .availability-grid-cell{display:block;border-right:1px solid var(--border)}.availability-grid-cell{display:table-cell;padding:var(--spacing-3);vertical-align:top;border-right:1px solid var(--border)}.availability-grid-cell:last-child{border-right:none}.availability-grid-header-row{background:var(--muted);position:sticky;top:0;z-index:10}.availability-grid-entity-cell{min-width:200px;max-width:250px;background:var(--card);position:sticky;left:0;z-index:5;border-right:2px solid var(--border)}.availability-grid-header-entity{font-weight:var(--font-weight-semibold);font-size:var(--text-sm);color:var(--muted-foreground);text-transform:uppercase;letter-spacing:.05em;background:var(--muted)}.availability-grid-entity-info{display:flex;align-items:flex-start;gap:var(--spacing-3)}.availability-grid-entity-avatar{width:36px;height:36px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:var(--text-xs);font-weight:var(--font-weight-semibold);color:#fff;flex-shrink:0;text-transform:uppercase}.availability-grid-entity-details{display:flex;flex-direction:column;gap:2px;min-width:0}.availability-grid-entity-name{font-size:var(--text-sm);font-weight:var(--font-weight-semibold);color:var(--foreground);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.availability-grid-entity-subtitle{font-size:var(--text-xs);color:var(--muted-foreground)}.availability-grid-day-header{text-align:center;min-width:120px;background:var(--muted);padding:var(--spacing-2) var(--spacing-3)}.availability-grid-day-name{font-size:var(--text-xs);font-weight:var(--font-weight-medium);color:var(--muted-foreground);text-transform:uppercase;margin-bottom:2px}.availability-grid-day-number{font-size:var(--text-lg);font-weight:var(--font-weight-semibold);color:var(--foreground)}.availability-grid-day-today{background:color-mix(in srgb,var(--primary) 10%,transparent)}.availability-grid-day-today .availability-grid-day-number,.availability-grid-day-today .availability-grid-day-name{color:var(--primary)}.availability-grid-entries-cell{min-width:120px;min-height:90px;position:relative;transition:background-color .2s ease;vertical-align:top}.availability-grid-cell-clickable{cursor:pointer}.availability-grid-cell-clickable:hover{background:color-mix(in srgb,var(--primary) 5%,transparent)}.availability-grid-entries{display:flex;flex-direction:column;gap:var(--spacing-2)}.availability-grid-entry{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:var(--spacing-2);border-left:3px solid;cursor:pointer;transition:all .15s ease}.availability-grid-entry:hover{box-shadow:var(--elevation-sm);transform:translateY(-1px)}.availability-grid-entry-available{border-left-color:#22c55e;background:color-mix(in srgb,#22c55e 8%,var(--card))}.availability-grid-entry-unavailable{border-left-color:#ef4444;background:color-mix(in srgb,#ef4444 8%,var(--card))}.availability-grid-entry-status{display:flex;align-items:center;gap:4px;margin-bottom:2px}.availability-grid-entry-icon{width:12px;height:12px}.availability-grid-entry-icon.available{color:#22c55e}.availability-grid-entry-icon.unavailable{color:#ef4444}.availability-grid-entry-label{font-size:10px;font-weight:var(--font-weight-semibold);text-transform:uppercase;letter-spacing:.02em}.availability-grid-entry-available .availability-grid-entry-label{color:#166534}.availability-grid-entry-unavailable .availability-grid-entry-label{color:#991b1b}.availability-grid-entry-time{display:flex;align-items:center;gap:4px;font-size:10px;color:var(--muted-foreground)}.availability-grid-entry-time-icon{width:10px;height:10px}.availability-grid-empty-cell{display:flex;align-items:center;justify-content:center;min-height:60px;color:var(--muted-foreground)}.availability-grid-add-hint{opacity:0;transition:opacity .2s ease}.availability-grid-cell-clickable:hover .availability-grid-add-hint{opacity:.5}.availability-grid-add-icon{width:20px;height:20px}.availability-grid-more-entries{font-size:var(--text-xs);font-weight:var(--font-weight-medium);color:var(--primary);padding:var(--spacing-1) var(--spacing-2);text-align:center;cursor:pointer}.availability-grid-more-entries:hover{text-decoration:underline}.availability-grid-entity-group{display:table-row}.availability-grid-entity-group-grid:hover{background:color-mix(in srgb,var(--muted) 50%,transparent)}.availability-grid-empty-state{display:table-cell;padding:var(--spacing-8);text-align:center;color:var(--muted-foreground)}@media (max-width: 768px){.availability-grid-date-range{flex-direction:column;gap:var(--spacing-1)}.availability-grid-date-text{min-width:auto;font-size:var(--text-sm)}.availability-grid-entity-cell{min-width:150px;max-width:180px}.availability-grid-entity-avatar{width:30px;height:30px;font-size:10px}.availability-grid-day-header,.availability-grid-entries-cell{min-width:100px}.availability-grid-content{max-height:calc(100vh - 400px)}}.staff-availability-calendar{padding:20px}.staff-cell{background:var(--card, white);position:sticky;left:0;z-index:5;border-right:2px solid var(--border, #ddd);min-width:200px;max-width:250px;display:flex;align-items:flex-start;gap:var(--spacing-3, 12px);cursor:default;min-height:auto;padding:var(--spacing-3, 12px)}.availability-block{padding:var(--spacing-2, 8px);margin:2px 0;border-radius:var(--radius, 4px);font-size:var(--text-xs, 11px);cursor:pointer;position:relative;transition:all .2s;border-left:3px solid}.availability-block:hover{transform:translateY(-1px);box-shadow:var(--elevation-sm, 0 2px 4px rgba(0,0,0,.1))}.availability-block.available{background:color-mix(in srgb,#22c55e 15%,white);border-left-color:#22c55e;color:#166534}.availability-block.unavailable{background:color-mix(in srgb,#ef4444 15%,white);border-left-color:#ef4444;color:#991b1b}.availability-block.no-data{background:var(--muted, #e9ecef);border-left-color:var(--muted-foreground, #6c757d);color:var(--muted-foreground, #6c757d)}.availability-block.multi-day{z-index:1;margin:2px}.time-range{font-weight:var(--font-weight-medium, 500);display:flex;align-items:center;gap:4px}@media (max-width: 768px){.calendar-header,.week-navigation{flex-direction:column;align-items:flex-start}.week-range{margin-left:0}.staff-cell{min-width:150px;max-width:180px}}.requirements-grid{display:flex;flex-direction:column;width:100%;background:var(--card);border:1px solid var(--border);border-radius:var(--radius-card);overflow:hidden}.requirements-grid-header{padding:var(--spacing-4);border-bottom:1px solid var(--border);background:var(--muted)}.requirements-grid-navigation{display:flex;align-items:center;justify-content:space-between;gap:var(--spacing-4)}.requirements-grid-date-range{display:flex;align-items:center;gap:var(--spacing-2)}.requirements-grid-date-text{font-size:var(--text-base);font-weight:var(--font-weight-semibold);color:var(--foreground);min-width:200px;text-align:center}.requirements-grid-content{overflow-x:auto;overflow-y:auto;max-height:calc(100vh - 350px)}.requirements-grid-table{display:grid;width:100%;min-width:900px}.requirements-grid-row{display:grid;grid-template-columns:200px repeat(var(--days-count, 7),1fr);border-bottom:1px solid var(--border);gap:0}.requirements-grid-row:last-child{border-bottom:none}.requirements-grid-row:hover:not(.requirements-grid-header-row){background:color-mix(in srgb,var(--muted) 50%,transparent)}.requirements-grid-row .requirements-grid-cell{display:block;border-right:1px solid var(--border)}.requirements-grid-cell{display:table-cell;padding:var(--spacing-3);vertical-align:top;border-right:1px solid var(--border)}.requirements-grid-cell:last-child{border-right:none}.requirements-grid-header-row{background:var(--muted);position:sticky;top:0;z-index:10}.requirements-grid-entity-cell{min-width:200px;max-width:250px;background:var(--card);position:sticky;left:0;z-index:5;border-right:2px solid var(--border)}.requirements-grid-header-entity{font-weight:var(--font-weight-semibold);font-size:var(--text-sm);color:var(--muted-foreground);text-transform:uppercase;letter-spacing:.05em;background:var(--muted)}.requirements-grid-entity-info{display:flex;align-items:flex-start;gap:var(--spacing-3)}.requirements-grid-entity-avatar{width:36px;height:36px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:var(--text-xs);font-weight:var(--font-weight-semibold);color:#fff;flex-shrink:0;text-transform:uppercase}.requirements-grid-entity-details{display:flex;flex-direction:column;gap:2px;min-width:0}.requirements-grid-entity-name{font-size:var(--text-sm);font-weight:var(--font-weight-semibold);color:var(--foreground);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.requirements-grid-entity-subtitle{font-size:var(--text-xs);color:var(--muted-foreground);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.requirements-grid-day-header{text-align:center;min-width:120px;background:var(--muted);padding:var(--spacing-2) var(--spacing-3)}.requirements-grid-day-name{font-size:var(--text-xs);font-weight:var(--font-weight-medium);color:var(--muted-foreground);text-transform:uppercase;margin-bottom:2px}.requirements-grid-day-number{font-size:var(--text-lg);font-weight:var(--font-weight-semibold);color:var(--foreground)}.requirements-grid-day-today{background:color-mix(in srgb,var(--primary) 10%,transparent)}.requirements-grid-day-today .requirements-grid-day-number,.requirements-grid-day-today .requirements-grid-day-name{color:var(--primary)}.requirements-grid-entries-cell{min-width:120px;min-height:90px;position:relative;transition:background-color .2s ease;vertical-align:top}.requirements-grid-cell-clickable{cursor:pointer}.requirements-grid-cell-clickable:hover{background:color-mix(in srgb,var(--primary) 5%,transparent)}.requirements-grid-entries{display:flex;flex-direction:column;gap:var(--spacing-2)}.requirements-grid-entry{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:var(--spacing-2);border-left:3px solid;cursor:pointer;transition:all .15s ease}.requirements-grid-entry:hover{box-shadow:var(--elevation-sm);transform:translateY(-1px)}.requirements-grid-entry-normal{border-left-color:#3b82f6;background:color-mix(in srgb,#3b82f6 5%,var(--card))}.requirements-grid-entry-low{border-left-color:#6b7280;background:color-mix(in srgb,#6b7280 5%,var(--card))}.requirements-grid-entry-medium{border-left-color:#f59e0b;background:color-mix(in srgb,#f59e0b 8%,var(--card))}.requirements-grid-entry-high{border-left-color:#ef4444;background:color-mix(in srgb,#ef4444 8%,var(--card))}.requirements-grid-entry-header{display:flex;align-items:center;justify-content:space-between;gap:var(--spacing-1);margin-bottom:4px}.requirements-grid-entry-ratio{font-size:10px;font-weight:var(--font-weight-bold);background:var(--primary);color:#fff;padding:2px 6px;border-radius:var(--radius-sm)}.requirements-grid-entry-priority-icon{width:12px;height:12px;color:#ef4444}.requirements-grid-entry-time{display:flex;align-items:center;gap:4px;font-size:11px;color:var(--foreground);font-weight:var(--font-weight-medium)}.requirements-grid-entry-time-icon{width:11px;height:11px;color:var(--muted-foreground)}.requirements-grid-entry-staff{display:flex;align-items:center;gap:4px;font-size:10px;color:var(--muted-foreground);margin-top:2px}.requirements-grid-entry-staff-icon{width:10px;height:10px}.requirements-grid-empty-cell{display:flex;align-items:center;justify-content:center;min-height:60px;color:var(--muted-foreground)}.requirements-grid-add-hint{opacity:0;transition:opacity .2s ease}.requirements-grid-cell-clickable:hover .requirements-grid-add-hint{opacity:.5}.requirements-grid-add-icon{width:20px;height:20px}.requirements-grid-more-entries{font-size:var(--text-xs);font-weight:var(--font-weight-medium);color:var(--primary);padding:var(--spacing-1) var(--spacing-2);text-align:center;cursor:pointer}.requirements-grid-more-entries:hover{text-decoration:underline}.requirements-grid-entity-group{display:table-row}.requirements-grid-entity-group-grid:hover{background:color-mix(in srgb,var(--muted) 50%,transparent)}.requirements-grid-empty-state{display:table-cell;padding:var(--spacing-8);text-align:center;color:var(--muted-foreground)}@media (max-width: 768px){.requirements-grid-date-range{flex-direction:column;gap:var(--spacing-1)}.requirements-grid-date-text{min-width:auto;font-size:var(--text-sm)}.requirements-grid-entity-cell{min-width:150px;max-width:180px}.requirements-grid-entity-avatar{width:30px;height:30px;font-size:10px}.requirements-grid-day-header,.requirements-grid-entries-cell{min-width:100px}.requirements-grid-content{max-height:calc(100vh - 400px)}}.client-requirements-calendar{padding:20px}.calendar-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px;flex-wrap:wrap;gap:15px}.header-tabs{display:flex;gap:10px}.tab-button{padding:8px 16px;border:1px solid var(--border, #ddd);background:var(--card, white);border-radius:var(--radius, 4px);cursor:pointer;font-size:14px;transition:all .2s}.tab-button:hover{background:var(--muted, #f5f5f5)}.tab-button.active{background:var(--primary, #1976d2);color:#fff;border-color:var(--primary, #1976d2)}.week-navigation{display:flex;flex-wrap:wrap;gap:10px;align-items:center;padding:15px;background:var(--muted, #f8f9fa);border-radius:var(--radius, 4px);margin-bottom:20px}.week-navigation button{padding:8px 16px;background:var(--primary, #007bff);color:#fff;border:none;border-radius:var(--radius, 4px);cursor:pointer;transition:background .2s}.week-navigation button:hover{opacity:.9}.week-range{font-weight:var(--font-weight-semibold, 600);margin-left:auto;color:var(--foreground, #333)}.calendar-grid{border:1px solid var(--border, #ddd);border-radius:var(--radius-card, 8px);overflow-x:auto;background:var(--card, white)}.calendar-row{display:grid;border-bottom:1px solid var(--border, #ddd);min-width:max-content}.calendar-row:last-child{border-bottom:none}.calendar-row:hover:not(.header-row){background:color-mix(in srgb,var(--muted, #f8f9fa) 50%,transparent)}.calendar-cell{padding:var(--spacing-3, 12px);border-right:1px solid var(--border, #ddd);min-height:90px;position:relative;cursor:pointer;vertical-align:top}.calendar-cell:last-child{border-right:none}.header-row{background:var(--muted, #f8f9fa);position:sticky;top:0;z-index:10}.header-cell{text-align:center;padding:var(--spacing-2, 8px) var(--spacing-3, 12px);cursor:default;min-height:auto}.header-cell>div:first-child{font-size:var(--text-xs, 11px);font-weight:var(--font-weight-medium, 500);color:var(--muted-foreground, #6c757d);text-transform:uppercase;margin-bottom:2px}.header-cell>div:last-child{font-size:var(--text-lg, 18px);font-weight:var(--font-weight-semibold, 600);color:var(--foreground, #333)}.header-entity{font-weight:var(--font-weight-semibold, 600);font-size:var(--text-sm, 12px);color:var(--muted-foreground, #6c757d);text-transform:uppercase;letter-spacing:.05em}.client-cell{background:var(--card, white);position:sticky;left:0;z-index:5;border-right:2px solid var(--border, #ddd);min-width:200px;max-width:250px;display:flex;align-items:flex-start;gap:var(--spacing-3, 12px);cursor:default;min-height:auto;padding:var(--spacing-3, 12px)}.entity-avatar{width:36px;height:36px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:var(--text-xs, 11px);font-weight:var(--font-weight-semibold, 600);color:#fff;flex-shrink:0;text-transform:uppercase}.entity-details{display:flex;flex-direction:column;gap:2px;min-width:0}.entity-name{font-size:var(--text-sm, 14px);font-weight:var(--font-weight-semibold, 600);color:var(--foreground, #333);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.entity-subtitle{font-size:var(--text-xs, 11px);color:var(--primary, #1976d2);cursor:pointer}.entity-subtitle:hover{text-decoration:underline}.requirement-block{padding:var(--spacing-2, 8px);margin:2px 0;border-radius:var(--radius, 4px);font-size:var(--text-xs, 11px);cursor:pointer;position:relative;transition:all .2s;border-left:3px solid;background:var(--card, white)}.requirement-block:hover{transform:translateY(-1px);box-shadow:var(--elevation-sm, 0 2px 4px rgba(0,0,0,.1))}.requirement-block.priority-high{background:color-mix(in srgb,#ef4444 15%,white);border-left-color:#ef4444}.requirement-block.priority-medium{background:color-mix(in srgb,#f59e0b 15%,white);border-left-color:#f59e0b}.requirement-block.priority-low{background:color-mix(in srgb,#22c55e 15%,white);border-left-color:#22c55e}.requirement-block.priority-normal{background:color-mix(in srgb,#3b82f6 15%,white);border-left-color:#3b82f6}.requirement-block.multi-day{z-index:1;margin:2px}.ratio-badge{display:inline-flex;align-items:center;justify-content:center;padding:2px 6px;background:var(--primary, #3b82f6);color:#fff;border-radius:9999px;font-size:10px;font-weight:var(--font-weight-semibold, 600);margin-bottom:4px}.time-range{font-weight:var(--font-weight-medium, 500);display:flex;align-items:center;gap:4px;color:var(--foreground, #333)}.time-range:before{content:"🕐";font-size:10px}.staff-count{font-size:10px;color:var(--muted-foreground, #6c757d);margin-top:2px}.notes-indicator{margin-top:2px;font-size:10px}.empty-cell{color:var(--muted-foreground, #999);font-size:var(--text-xs, 11px);text-align:center;padding:10px}.empty-cell.clickable-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:60px;cursor:pointer;transition:all .2s ease;border-radius:var(--radius, 4px)}.empty-cell.clickable-empty:hover{background-color:color-mix(in srgb,var(--primary, #1976d2) 10%,transparent);color:var(--primary, #1976d2)}.empty-cell-icon{display:none;font-size:20px;font-weight:300;line-height:1;margin-bottom:4px;font-style:normal}.empty-cell.clickable-empty:hover .empty-cell-icon{display:block}.empty-cell-text{font-size:var(--text-xs, 11px)}.empty-cell.clickable-empty:hover .empty-cell-text{font-style:normal;font-weight:var(--font-weight-medium, 500)}.modal-content{background:var(--card, white);padding:30px;border-radius:var(--radius-card, 8px);max-width:500px;width:90%;max-height:90vh;overflow-y:auto;box-shadow:var(--elevation-lg, 0 10px 40px rgba(0,0,0,.2))}.modal-content h3{margin-top:0;margin-bottom:20px;color:var(--foreground, #333)}.form-group label{display:block;margin-bottom:5px;font-weight:var(--font-weight-medium, 500);color:var(--foreground, #333)}.form-group input,.form-group select,.form-group textarea{width:100%;padding:8px 12px;border:1px solid var(--border, #ddd);border-radius:var(--radius, 4px);font-size:14px;font-family:inherit}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{outline:none;border-color:var(--primary, #007bff);box-shadow:0 0 0 2px color-mix(in srgb,var(--primary, #007bff) 20%,transparent)}.form-group input[type=checkbox]{width:auto;margin-right:8px}.form-actions{display:flex;gap:10px;margin-top:20px;flex-wrap:wrap}.form-actions button{padding:10px 20px;border:none;border-radius:var(--radius, 4px);cursor:pointer;font-size:14px;font-weight:var(--font-weight-medium, 500);transition:all .2s}.form-actions button[type=submit]{background:var(--primary, #007bff);color:#fff}.form-actions button[type=submit]:hover{opacity:.9}.form-actions button[type=button]{background:var(--muted, #6c757d);color:#fff}.form-actions button[type=button]:hover{opacity:.9}.delete-button{background:var(--destructive, #dc3545)!important}.delete-button:hover{opacity:.9!important}@media (max-width: 768px){.calendar-header,.week-navigation{flex-direction:column;align-items:flex-start}.week-range{margin-left:0}.client-cell{min-width:150px;max-width:180px}}.generation-results-summary{background:#fff;border-radius:12px;padding:24px;margin-bottom:24px;border:1px solid #E0E0E0;box-shadow:0 2px 8px #0000000d}.generation-results-summary.success{background:linear-gradient(135deg,#e8f5e9,#f1f8e9);border-color:#81c784}.generation-results-summary.good{background:linear-gradient(135deg,#e3f2fd,#e8eaf6);border-color:#64b5f6}.generation-results-summary.warning{background:linear-gradient(135deg,#fff8e1,#fff3e0);border-color:#ffb74d}.generation-results-summary .results-header{display:flex;gap:16px;margin-bottom:20px}.generation-results-summary .status-icon{font-size:36px;flex-shrink:0}.generation-results-summary .status-content{flex:1}.generation-results-summary .status-title{margin:0 0 6px;font-size:20px;font-weight:600;color:#333}.generation-results-summary.success .status-title{color:#2e7d32}.generation-results-summary.good .status-title{color:#1565c0}.generation-results-summary.warning .status-title{color:#e65100}.generation-results-summary .status-subtitle{margin:0;font-size:14px;color:#666;line-height:1.4}.generation-results-summary .coverage-section{margin-bottom:20px}.generation-results-summary .coverage-bar-container{display:flex;align-items:center;gap:16px}.generation-results-summary .coverage-bar{flex:1;display:flex;height:36px;border-radius:8px;overflow:hidden;background:#f5f5f5}.generation-results-summary .coverage-fill{display:flex;align-items:center;justify-content:center;color:#fff;font-weight:500;font-size:13px;transition:width .5s ease}.generation-results-summary .coverage-fill.success{background:linear-gradient(135deg,#66bb6a,#4caf50)}.generation-results-summary .coverage-fill.good{background:linear-gradient(135deg,#42a5f5,#2196f3)}.generation-results-summary .coverage-fill.warning{background:linear-gradient(135deg,#ffa726,#ff9800)}.generation-results-summary .coverage-unassigned{display:flex;align-items:center;justify-content:center;background:#eee;color:#757575;font-size:13px}.generation-results-summary .coverage-text{text-shadow:0 1px 2px rgba(0,0,0,.2)}.generation-results-summary .coverage-percent{font-size:24px;font-weight:700;color:#333;min-width:60px;text-align:right}.generation-results-summary.success .coverage-percent{color:#2e7d32}.generation-results-summary.good .coverage-percent{color:#1565c0}.generation-results-summary.warning .coverage-percent{color:#e65100}.generation-results-summary .stats-grid{display:flex;gap:16px;margin-bottom:20px}.generation-results-summary .stat-card{flex:1;background:#fff;border-radius:8px;padding:16px;text-align:center;border:1px solid #E0E0E0}.generation-results-summary .stat-card.assigned{border-color:#81c784;background:#81c7841a}.generation-results-summary .stat-card.unassigned{border-color:#ffb74d;background:#ffb74d1a}.generation-results-summary .stat-card.skipped{border-color:#ef5350;background:#ef53501a}.generation-results-summary .stat-value{font-size:28px;font-weight:700;margin-bottom:4px}.generation-results-summary .stat-card.assigned .stat-value{color:#2e7d32}.generation-results-summary .stat-card.unassigned .stat-value{color:#e65100}.generation-results-summary .stat-card.skipped .stat-value{color:#c62828}.generation-results-summary .stat-label{font-size:12px;color:#666;text-transform:uppercase;letter-spacing:.5px}.generation-results-summary .unassigned-breakdown{background:#fff;border-radius:8px;padding:20px;border:1px solid #E0E0E0}.generation-results-summary .unassigned-breakdown h4{display:flex;align-items:center;gap:8px;margin:0 0 16px;font-size:15px;font-weight:600;color:#333}.generation-results-summary .breakdown-list{display:flex;flex-direction:column;gap:12px}.generation-results-summary .breakdown-item{display:flex;gap:16px;padding:14px;border-radius:8px}.generation-results-summary .breakdown-item.hour-limits{background:#fff3e0;border-left:4px solid #FF9800}.generation-results-summary .breakdown-item.intentional{background:#e3f2fd;border-left:4px solid #2196F3}.generation-results-summary .breakdown-item.availability{background:#ffebee;border-left:4px solid #F44336}.generation-results-summary .breakdown-indicator{flex-shrink:0}.generation-results-summary .breakdown-indicator .count{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:50%;font-weight:700;font-size:14px;color:#fff}.generation-results-summary .breakdown-item.hour-limits .count{background:#ff9800}.generation-results-summary .breakdown-item.intentional .count{background:#2196f3}.generation-results-summary .breakdown-item.availability .count{background:#f44336}.generation-results-summary .breakdown-content{flex:1}.generation-results-summary .breakdown-content strong{display:block;font-size:14px;color:#333;margin-bottom:4px}.generation-results-summary .breakdown-content p{margin:0;font-size:13px;color:#666;line-height:1.4}.generation-results-summary .success-message{display:flex;align-items:center;gap:12px;padding:16px;background:#2e7d321a;border-radius:8px;font-size:14px;color:#2e7d32;line-height:1.4}.generation-results-summary .success-message .icon{font-size:24px;flex-shrink:0}@media (max-width: 600px){.generation-results-summary .results-header{flex-direction:column;text-align:center}.generation-results-summary .stats-grid{flex-direction:column}.generation-results-summary .coverage-bar-container{flex-direction:column;align-items:stretch}.generation-results-summary .coverage-percent{text-align:center}.generation-results-summary .breakdown-item{flex-direction:column;text-align:center}}.hour-limit-skips-panel{background:linear-gradient(135deg,#fff8e1,#fff3e0);border:1px solid #FFB74D;border-radius:12px;padding:20px;margin-bottom:24px;box-shadow:0 2px 8px #ff98001a}.hour-limit-skips-panel .panel-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:12px}.hour-limit-skips-panel .header-content{display:flex;align-items:center;gap:10px}.hour-limit-skips-panel .icon{font-size:24px}.hour-limit-skips-panel h4{margin:0;color:#e65100;font-size:16px;font-weight:600}.hour-limit-skips-panel .panel-description{color:#5d4037;font-size:14px;line-height:1.5;margin:0 0 16px;padding-left:34px}.hour-limit-skips-panel .skips-list{display:flex;flex-direction:column;gap:12px}.hour-limit-skips-panel .skip-item{background:#fff;border-radius:8px;padding:16px;border:1px solid #FFE0B2;transition:box-shadow .2s ease}.hour-limit-skips-panel .skip-item:hover{box-shadow:0 2px 8px #00000014}.hour-limit-skips-panel .skip-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px;padding-bottom:12px;border-bottom:1px solid #FFF3E0}.hour-limit-skips-panel .staff-info{display:flex;align-items:center;gap:10px}.hour-limit-skips-panel .staff-name{font-size:15px;color:#333}.hour-limit-skips-panel .staff-type-badge{display:inline-flex;align-items:center;gap:4px;padding:4px 10px;border-radius:16px;font-size:12px;font-weight:500}.hour-limit-skips-panel .staff-type-badge.student{background:#e8eaf6;color:#3949ab}.hour-limit-skips-panel .staff-type-badge.regular,.hour-limit-skips-panel .staff-type-badge.hired{background:#e3f2fd;color:#1565c0}.hour-limit-skips-panel .staff-type-badge.contractor{background:#e8f5e9;color:#2e7d32}.hour-limit-skips-panel .limit-info{display:flex;align-items:center;gap:6px;font-size:13px}.hour-limit-skips-panel .limit-label{color:#757575}.hour-limit-skips-panel .limit-value{font-weight:600;color:#e65100;background:#fff3e0;padding:2px 8px;border-radius:4px}.hour-limit-skips-panel .skipped-shifts{display:flex;flex-direction:column;gap:8px}.hour-limit-skips-panel .skipped-shift{display:flex;justify-content:space-between;align-items:center;padding:8px 12px;background:#fafafa;border-radius:6px;font-size:13px}.hour-limit-skips-panel .shift-date{color:#555;font-weight:500}.hour-limit-skips-panel .hours-detail{display:flex;align-items:center;gap:8px;color:#666}.hour-limit-skips-panel .hours-detail .arrow{color:#999}.hour-limit-skips-panel .hours-detail .current{color:#4caf50}.hour-limit-skips-panel .hours-detail .projected{color:#ff9800}.hour-limit-skips-panel .hours-detail .over-by{color:#f44336;font-weight:500;font-size:12px}.hour-limit-skips-panel .expand-button{display:block;width:100%;padding:10px;margin-top:12px;background:transparent;border:1px dashed #FFB74D;border-radius:6px;color:#e65100;font-size:13px;cursor:pointer;transition:all .2s ease}.hour-limit-skips-panel .expand-button:hover{background:#ff980014;border-style:solid}.hour-limit-skips-panel .panel-footer{margin-top:16px;padding-top:16px;border-top:1px solid #FFE0B2}.hour-limit-skips-panel .tip{display:flex;gap:8px;align-items:flex-start;font-size:13px;color:#666;line-height:1.4}.hour-limit-skips-panel .tip-icon{flex-shrink:0}.hour-limit-skips-panel .tip strong{color:#e65100}@media (max-width: 600px){.hour-limit-skips-panel .skip-header{flex-direction:column;align-items:flex-start;gap:8px}.hour-limit-skips-panel .skipped-shift{flex-direction:column;align-items:flex-start;gap:6px}.hour-limit-skips-panel .hours-detail{flex-wrap:wrap}}.generated-roster-preview{padding:20px}.roster-summary{background:#e9ecef;padding:15px;border-radius:4px;margin-bottom:20px;display:flex;gap:20px}.roster-summary p{margin:0}.roster-shifts{margin-bottom:20px}.roster-shifts h4{margin-bottom:15px}.roster-shift{border:1px solid #dee2e6;border-radius:4px;padding:15px;margin-bottom:15px;background:#fff}.shift-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:15px;padding-bottom:10px;border-bottom:1px solid #dee2e6}.shift-info{flex:1}.shift-info small{color:#6c757d}.shift-assignments{margin-top:10px}.assignment-item{display:flex;justify-content:space-between;align-items:center;padding:10px;background:#f8f9fa;border-radius:4px;margin-bottom:8px}.assignment-info{flex:1}.ratio-badge{display:inline-block;background:#007bff;color:#fff;padding:2px 8px;border-radius:3px;font-size:12px;margin-left:8px}.assignment-actions{display:flex;gap:8px}.no-assignments{color:#6c757d;font-style:italic;padding:10px}.roster-actions{margin-top:30px;text-align:center}.btn-sm{padding:5px 10px;font-size:12px}.btn-large{padding:12px 30px;font-size:16px}.btn-secondary{background:#6c757d;color:#fff}.btn-secondary:hover{background:#5a6268}.btn-danger{background:#dc3545;color:#fff}.btn-danger:hover{background:#c82333}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;display:flex;justify-content:center;align-items:center;z-index:1000}.modal-content{background:#fff;padding:30px;border-radius:8px;max-width:500px;width:90%}.modal-content h3{margin-top:0;margin-bottom:20px}.form-group select{width:100%;padding:8px;border:1px solid #ddd;border-radius:4px;font-size:14px}.form-actions{display:flex;gap:10px;margin-top:20px}.context-display{margin-top:30px;background:#f8f9fa;padding:20px;border-radius:8px}.context-display h3{margin-top:0;margin-bottom:15px}.context-section{margin-bottom:10px;border:1px solid #dee2e6;border-radius:4px;overflow:hidden}.context-section-header{background:#e9ecef;padding:10px 15px;cursor:pointer;display:flex;justify-content:space-between;align-items:center;font-weight:500}.context-section-header:hover{background:#dee2e6}.toggle-icon{font-size:12px;color:#6c757d}.context-section-content{padding:15px;background:#fff}.context-section-content p{margin:5px 0}.context-section-content ul{margin:10px 0;padding-left:20px}.context-section-content li{margin:5px 0}.mode-selector{margin-bottom:32px}.mode-selector-description{margin:0 0 20px;color:#666;font-size:14px}.modes-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:16px;margin-bottom:20px}.mode-card{position:relative;background:#fff;border:2px solid #e0e0e0;border-radius:8px;padding:20px;cursor:pointer;transition:all .2s;display:flex;flex-direction:column;gap:12px}.mode-card:hover:not(.disabled){border-color:#4caf50;box-shadow:0 4px 12px #4caf5026;transform:translateY(-2px)}.mode-card.selected{border-color:#4caf50;background:#f0f9f4;box-shadow:0 4px 12px #4caf5033}.mode-card.disabled{opacity:.6;cursor:not-allowed;background:#f5f5f5}.mode-icon{font-size:32px;text-align:center}.mode-content{flex:1}.mode-title{margin:0 0 8px;color:#333;font-size:16px;font-weight:600}.mode-description{margin:0 0 12px;color:#666;font-size:13px;line-height:1.5}.mode-meta{display:flex;align-items:center;gap:12px}.mode-time{font-size:12px;color:#999}.mode-checkmark{position:absolute;top:12px;right:12px;width:24px;height:24px;background:#4caf50;color:#fff;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:14px;font-weight:700}.optimization-disabled-notice{padding:12px 16px;background:#fff3cd;border:1px solid #ffc107;border-radius:4px;color:#856404;font-size:13px;line-height:1.5}.optimization-disabled-notice p{margin:0}.optimization-disabled-notice strong{color:#856404}.weight-slider{margin-bottom:20px}.weight-slider.disabled{opacity:.6;pointer-events:none}.slider-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:8px}.slider-label-section{flex:1;display:flex;flex-direction:column;gap:4px}.slider-label{font-weight:600;font-size:14px;color:#333;margin:0}.slider-description{font-size:12px;color:#666;line-height:1.4}.slider-value{display:flex;align-items:center;gap:4px;margin-left:16px}.value-input{width:60px;padding:4px 8px;border:1px solid #ddd;border-radius:4px;text-align:center;font-size:14px;font-weight:600;color:#333}.value-input:disabled{background:#f5f5f5;cursor:not-allowed}.value-unit{font-size:14px;color:#666;font-weight:500}.slider-container{position:relative;height:8px;margin-top:8px}.slider-input{position:absolute;width:100%;height:8px;-webkit-appearance:none;-moz-appearance:none;appearance:none;background:transparent;cursor:pointer;z-index:2}.slider-input::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:20px;height:20px;border-radius:50%;background:var(--slider-color, #4CAF50);cursor:pointer;border:2px solid #fff;box-shadow:0 2px 4px #0003;transition:all .2s}.slider-input::-webkit-slider-thumb:hover{transform:scale(1.1);box-shadow:0 2px 8px #0000004d}.slider-input::-webkit-slider-thumb:active{transform:scale(1.15)}.slider-input::-moz-range-thumb{width:20px;height:20px;border-radius:50%;background:var(--slider-color, #4CAF50);cursor:pointer;border:2px solid #fff;box-shadow:0 2px 4px #0003;transition:all .2s}.slider-input::-moz-range-thumb:hover{transform:scale(1.1);box-shadow:0 2px 8px #0000004d}.slider-input:disabled{cursor:not-allowed}.slider-input:disabled::-webkit-slider-thumb{background:#ccc;cursor:not-allowed}.slider-input:disabled::-moz-range-thumb{background:#ccc;cursor:not-allowed}.slider-track{position:absolute;width:100%;height:8px;background:#e0e0e0;border-radius:4px;overflow:hidden}.slider-fill{height:100%;background:var(--slider-color, #4CAF50);border-radius:4px;transition:width .2s ease}.optimization-results{margin-top:32px;padding-top:24px;border-top:2px solid #e0e0e0}.results-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.results-header h4{margin:0;color:#333;font-size:18px}.weighted-score{display:flex;align-items:center;gap:8px}.score-label{font-size:14px;color:#666}.score-value{font-size:24px;font-weight:700}.score-label-small{font-size:12px;color:#999;font-style:italic}.scores-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:16px;margin-bottom:24px}.score-card{background:#f9f9f9;border:1px solid #e0e0e0;border-radius:8px;padding:16px;transition:all .2s}.score-card:hover{border-color:#4caf50;box-shadow:0 2px 8px #0000001a}.score-card-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.score-card-title{display:flex;align-items:center;gap:8px}.score-icon{font-size:20px}.score-name{font-weight:600;font-size:14px;color:#333}.score-card-value{display:flex;align-items:baseline;gap:4px}.score-number{font-size:24px;font-weight:700}.score-unit{font-size:14px;color:#666}.score-weight{font-size:12px;color:#666;margin-bottom:8px}.score-details{margin-top:8px;padding-top:8px;border-top:1px solid #e0e0e0}.details-content{margin-bottom:8px}.detail-item{font-size:13px;color:#666;margin-bottom:4px}.detail-item strong{color:#333}.expand-indicator{font-size:12px;color:#2196f3;cursor:pointer;-webkit-user-select:none;user-select:none}.expand-indicator:hover{text-decoration:underline}.score-bar-container{width:100%;height:8px;background:#e0e0e0;border-radius:4px;overflow:hidden;margin-top:8px}.score-bar{height:100%;border-radius:4px;transition:width .3s ease}.breakdown-section{margin-top:24px;padding:16px;background:#f5f5f5;border-radius:4px}.breakdown-section h5{margin:0 0 12px;color:#333;font-size:16px}.breakdown-list{display:flex;flex-direction:column;gap:8px}.breakdown-item{display:flex;justify-content:space-between;font-size:14px}.breakdown-label{color:#666;font-weight:500}.breakdown-value{color:#333;font-weight:600}.optimization-dashboard{background:#fff;border-radius:8px;padding:24px;box-shadow:0 2px 4px #0000001a}.optimization-dashboard.loading,.optimization-dashboard.disabled,.optimization-dashboard.no-objectives{text-align:center;padding:40px;color:#666}.disabled-message,.no-objectives-message{padding:20px;background:#fff3cd;border:1px solid #ffc107;border-radius:4px;color:#856404}.dashboard-header{margin-bottom:24px}.dashboard-header h3{margin:0 0 8px;color:#333;font-size:20px}.dashboard-description{margin:0;color:#666;font-size:14px;line-height:1.5}.weights-section{margin-bottom:20px}.weight-summary{margin:20px 0;padding:12px;background:#f5f5f5;border-radius:4px;text-align:right}.total-weight{font-weight:600;font-size:16px}.total-weight.valid{color:#4caf50}.total-weight.invalid{color:#f44336}.preset-buttons{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:20px}.preset-btn{padding:8px 16px;background:#fff;border:1px solid #ddd;border-radius:4px;cursor:pointer;font-size:13px;color:#333;transition:all .2s}.preset-btn:hover:not(:disabled){background:#f5f5f5;border-color:#999}.preset-btn:disabled{opacity:.6;cursor:not-allowed}.preset-btn.secondary{background:#f5f5f5;color:#666}.action-buttons{display:flex;gap:12px;margin-top:24px}.btn-optimize,.btn-optimize-existing{flex:1;padding:12px 24px;background:#4caf50;color:#fff;border:none;border-radius:4px;font-size:16px;font-weight:600;cursor:pointer;transition:all .2s}.btn-optimize:hover:not(:disabled),.btn-optimize-existing:hover:not(:disabled){background:#45a049;transform:translateY(-1px);box-shadow:0 2px 8px #4caf504d}.btn-optimize:disabled,.btn-optimize-existing:disabled{opacity:.6;cursor:not-allowed;transform:none}.btn-optimize-existing{background:#2196f3}.btn-optimize-existing:hover:not(:disabled){background:#1976d2;box-shadow:0 2px 8px #2196f34d}.chat-message{display:flex;gap:12px;margin-bottom:16px}.chat-message.user{flex-direction:row-reverse}.message-avatar{width:36px;height:36px;border-radius:50%;background:#f0f0f0;display:flex;align-items:center;justify-content:center;font-size:20px;flex-shrink:0}.chat-message.user .message-avatar{background:#e3f2fd}.chat-message.assistant .message-avatar{background:#f3e5f5}.message-content{flex:1;max-width:80%}.chat-message.user .message-content{text-align:right}.message-header{display:flex;align-items:center;gap:8px;margin-bottom:6px}.chat-message.user .message-header{justify-content:flex-end}.message-role{font-weight:600;font-size:13px;color:#666}.message-time{font-size:11px;color:#999}.message-body{padding:12px 16px;border-radius:12px;background:#f5f5f5;color:#333;font-size:14px;line-height:1.5}.chat-message.user .message-body{background:#2196f3;color:#fff}.chat-message.error .message-body{background:#ffebee;color:#c62828;border-left:3px solid #f44336}.message-body p{margin:0 0 8px}.message-body p:last-child{margin-bottom:0}.message-body ul,.message-body ol{margin:8px 0;padding-left:20px}.message-body code{background:#0000001a;padding:2px 6px;border-radius:3px;font-size:13px;font-family:Courier New,monospace}.chat-message.user .message-body code{background:#fff3}.message-body pre{background:#0000000d;padding:12px;border-radius:4px;overflow-x:auto;font-size:12px;margin:8px 0}.chat-message.user .message-body pre{background:#ffffff26}.tool-calls{margin-top:12px;padding-top:12px;border-top:1px solid #e0e0e0}.tool-calls-toggle{background:transparent;border:none;color:#2196f3;cursor:pointer;font-size:12px;padding:4px 0;display:flex;align-items:center;gap:4px}.tool-calls-toggle:hover{text-decoration:underline}.tool-calls-list{margin-top:8px;display:flex;flex-direction:column;gap:8px}.tool-call{padding:8px 12px;background:#f9f9f9;border:1px solid #e0e0e0;border-radius:4px;font-size:12px}.tool-call-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}.tool-name{font-weight:600;color:#333}.tool-status{color:#4caf50;font-weight:700}.tool-input,.tool-output{margin-top:8px}.tool-input strong,.tool-output strong{display:block;margin-bottom:4px;color:#666;font-size:11px;text-transform:uppercase}.tool-input pre,.tool-output pre{background:#fff;padding:8px;border-radius:3px;margin:0;font-size:11px;max-height:200px;overflow-y:auto}.quick-actions{padding:12px 20px;border-top:1px solid #e0e0e0;background:#f8f9fa}.quick-actions-label{font-size:12px;color:#666;margin-bottom:8px;font-weight:600}.quick-actions-buttons{display:flex;flex-wrap:wrap;gap:8px}.quick-action-btn{display:flex;align-items:center;gap:6px;padding:6px 12px;background:#fff;border:1px solid #ddd;border-radius:16px;cursor:pointer;font-size:12px;color:#333;transition:all .2s}.quick-action-btn:hover:not(:disabled){background:#f0f0f0;border-color:#999;transform:translateY(-1px)}.quick-action-btn:disabled{opacity:.5;cursor:not-allowed}.action-icon{font-size:14px}.action-label{font-weight:500}.roster-assistant{display:flex;flex-direction:column;height:600px;background:#fff;border:1px solid #e0e0e0;border-radius:8px;overflow:hidden}.roster-assistant.disabled{padding:40px;text-align:center;color:#666}.disabled-message{padding:20px;background:#fff3cd;border:1px solid #ffc107;border-radius:4px;color:#856404}.assistant-header{display:flex;justify-content:space-between;align-items:center;padding:16px 20px;border-bottom:1px solid #e0e0e0;background:#f8f9fa}.assistant-header h3{margin:0;color:#333;font-size:18px}.assistant-actions{display:flex;gap:8px}.btn-clear{padding:6px 12px;background:transparent;border:1px solid #ddd;border-radius:4px;cursor:pointer;font-size:13px;color:#666;transition:all .2s}.btn-clear:hover{background:#f5f5f5;border-color:#999}.messages-container{flex:1;overflow-y:auto;padding:20px;display:flex;flex-direction:column;gap:16px}.welcome-message{padding:20px;background:#f0f9ff;border-left:4px solid #3b82f6;border-radius:4px;color:#1e40af}.welcome-message p{margin:0 0 12px;font-size:14px;line-height:1.6}.welcome-message ul{margin:12px 0;padding-left:20px}.welcome-message li{margin:8px 0;font-size:14px}.input-form{display:flex;gap:8px;padding:16px 20px;border-top:1px solid #e0e0e0;background:#f8f9fa}.message-input{flex:1;padding:10px 16px;border:1px solid #ddd;border-radius:20px;font-size:14px;outline:none;transition:all .2s}.message-input:focus{border-color:#4caf50;box-shadow:0 0 0 3px #4caf501a}.message-input:disabled{background:#f5f5f5;cursor:not-allowed}.send-button{padding:10px 24px;background:#4caf50;color:#fff;border:none;border-radius:20px;font-size:14px;font-weight:600;cursor:pointer;transition:all .2s}.send-button:hover:not(:disabled){background:#45a049;transform:translateY(-1px)}.send-button:disabled{opacity:.6;cursor:not-allowed;transform:none}.typing-indicator{display:flex;gap:4px;padding:12px 16px}.typing-indicator span{width:8px;height:8px;border-radius:50%;background:#999;animation:typing 1.4s infinite}.typing-indicator span:nth-child(2){animation-delay:.2s}.typing-indicator span:nth-child(3){animation-delay:.4s}@keyframes typing{0%,60%,to{transform:translateY(0);opacity:.7}30%{transform:translateY(-10px);opacity:1}}.roster-generation-progress{background:#fff;border-radius:8px;padding:24px;margin:20px 0;box-shadow:0 2px 8px #0000001a}.progress-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.progress-header h4{margin:0;font-size:18px;font-weight:600;color:#333}.time-info{display:flex;gap:16px;font-size:14px;color:#666}.time-elapsed,.time-remaining{display:flex;align-items:center}.progress-bar-container{margin-bottom:20px}.progress-bar{width:100%;height:12px;background-color:#e0e0e0;border-radius:6px;overflow:hidden;position:relative;margin-bottom:8px}.progress-bar-fill{height:100%;background:linear-gradient(90deg,#007bff,#0056b3);border-radius:6px;transition:width .3s ease;animation:progress-pulse 2s ease-in-out infinite}@keyframes progress-pulse{0%,to{opacity:1}50%{opacity:.8}}.progress-percentage{text-align:right;font-size:14px;font-weight:600;color:#007bff}.progress-status{margin-bottom:24px}.status-message{font-size:16px;font-weight:500;color:#333;margin:0 0 8px}.substep-details{font-size:14px;color:#666;margin:0;font-style:italic}.progress-steps{display:flex;justify-content:space-between;gap:16px;padding-top:20px;border-top:1px solid #e0e0e0}.progress-step{flex:1;display:flex;flex-direction:column;align-items:center;gap:8px}.step-indicator{width:32px;height:32px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:18px;font-weight:700;transition:all .3s ease}.progress-step.completed .step-indicator{background-color:#28a745;color:#fff}.progress-step.active .step-indicator{background-color:#007bff;color:#fff;animation:step-pulse 1.5s ease-in-out infinite}.progress-step.pending .step-indicator{background-color:#e0e0e0;color:#999}@keyframes step-pulse{0%,to{transform:scale(1);box-shadow:0 0 #007bffb3}50%{transform:scale(1.05);box-shadow:0 0 0 8px #007bff00}}.step-label{text-align:center}.step-number{font-size:12px;font-weight:600;color:#666;margin-bottom:4px}.step-name{font-size:13px;color:#999}.progress-step.completed .step-number,.progress-step.completed .step-name{color:#28a745}.progress-step.active .step-number,.progress-step.active .step-name{color:#007bff;font-weight:600}@media (max-width: 768px){.roster-generation-progress{padding:16px}.progress-header{flex-direction:column;align-items:flex-start;gap:12px}.time-info{flex-direction:column;gap:8px}.progress-steps{flex-direction:column;gap:12px}.progress-step{flex-direction:row;justify-content:flex-start}.step-label{text-align:left;margin-left:12px}}.rules-preview-panel{background:linear-gradient(135deg,#f3e5f5,#ede7f6);border:1px solid #CE93D8;border-radius:12px;padding:20px;margin-bottom:24px}.rules-preview-panel.loading{padding:16px 20px}.rules-preview-panel .loading-content{display:flex;align-items:center;gap:10px;color:#7b1fa2}.rules-preview-panel .spinner{animation:spin 1s linear infinite}.rules-preview-panel.error{background:#fff3e0;border-color:#ffb74d;padding:16px 20px;display:flex;align-items:center;gap:10px;color:#e65100}.rules-preview-panel.compact{padding:12px 16px;background:#f5f5f5;border-color:#e0e0e0}.rules-preview-panel .compact-content{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.rules-preview-panel .compact-summary{color:#555;font-size:13px;flex:1}.rules-preview-panel .enforcement-badge{font-size:12px;padding:4px 10px;border-radius:12px;font-weight:500}.rules-preview-panel .enforcement-badge.active{background:#e8f5e9;color:#2e7d32}.rules-preview-panel .enforcement-badge.inactive{background:#fff3e0;color:#e65100}.rules-preview-panel .btn-configure-compact{background:transparent;border:none;font-size:16px;cursor:pointer;padding:4px 8px;border-radius:4px;transition:background .2s}.rules-preview-panel .btn-configure-compact:hover{background:#0000000d}.rules-preview-panel .panel-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.rules-preview-panel .header-content{display:flex;align-items:center;gap:10px}.rules-preview-panel .icon{font-size:20px}.rules-preview-panel h4{margin:0;color:#6a1b9a;font-size:16px;font-weight:600}.rules-preview-panel .btn-configure{background:transparent;border:1px solid #9C27B0;color:#7b1fa2;padding:6px 14px;border-radius:6px;font-size:13px;cursor:pointer;transition:all .2s}.rules-preview-panel .btn-configure:hover{background:#9c27b0;color:#fff}.rules-preview-panel .panel-description{color:#5e35b1;font-size:14px;margin:0 0 20px;padding-left:30px;opacity:.85}.rules-preview-panel .rules-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:16px;margin-bottom:20px}.rules-preview-panel .rule-section{background:#fff;border-radius:8px;padding:16px;border:1px solid #E1BEE7}.rules-preview-panel .section-header{display:flex;align-items:center;gap:8px;margin-bottom:12px;padding-bottom:10px;border-bottom:1px solid #F3E5F5}.rules-preview-panel .section-icon{font-size:16px}.rules-preview-panel h5{margin:0;font-size:14px;font-weight:600;color:#4a148c}.rules-preview-panel .rule-items{display:flex;flex-direction:column;gap:10px}.rules-preview-panel .rule-item{display:flex;justify-content:space-between;align-items:center;padding:8px 12px;background:#fafafa;border-radius:6px}.rules-preview-panel .rule-item.warning{background:#fff8e1}.rules-preview-panel .rule-item.error{background:#ffebee}.rules-preview-panel .rule-label{display:flex;align-items:center;gap:8px;font-size:13px;color:#555}.rules-preview-panel .type-indicator{font-size:10px}.rules-preview-panel .type-indicator.regular{color:#1976d2}.rules-preview-panel .type-indicator.student{color:#7b1fa2}.rules-preview-panel .rule-value{font-size:13px;color:#333}.rules-preview-panel .rule-value strong{color:#4a148c}.rules-preview-panel .duration-visual{background:#fff;border-radius:8px;padding:16px;border:1px solid #E1BEE7;margin-bottom:16px}.rules-preview-panel .duration-bar{display:flex;height:32px;border-radius:6px;overflow:hidden;margin-bottom:8px}.rules-preview-panel .zone{display:flex;align-items:center;justify-content:center;color:#fff;font-size:11px;font-weight:500;text-transform:uppercase;letter-spacing:.5px}.rules-preview-panel .zone.standard{background:linear-gradient(135deg,#66bb6a,#4caf50)}.rules-preview-panel .zone.warning{background:linear-gradient(135deg,#ffb74d,#ff9800)}.rules-preview-panel .zone.danger{background:linear-gradient(135deg,#ef5350,#f44336)}.rules-preview-panel .duration-labels{display:flex;justify-content:space-between;font-size:11px;color:#666;padding:0 4px}.rules-preview-panel .enforcement-section{margin-top:4px}.rules-preview-panel .enforcement-status{display:flex;align-items:center;gap:10px;padding:12px 16px;border-radius:8px;font-size:14px}.rules-preview-panel .enforcement-status.active{background:#e8f5e9;color:#2e7d32}.rules-preview-panel .enforcement-status.inactive{background:#fff3e0;color:#e65100}.rules-preview-panel .status-icon{font-size:16px}.rules-preview-panel .status-text strong{font-weight:600}@media (max-width: 600px){.rules-preview-panel .rules-grid{grid-template-columns:1fr}.rules-preview-panel .panel-header{flex-direction:column;align-items:flex-start;gap:12px}.rules-preview-panel .compact-content{flex-direction:column;align-items:flex-start}}.quick-build-workflow{max-width:800px;margin:0 auto}.quick-build-select{padding:24px}.quick-build-header{display:flex;align-items:center;gap:16px;margin-bottom:32px;text-align:left}.quick-build-header .header-icon{font-size:48px;background:linear-gradient(135deg,#ffd54f,#ffa726);width:80px;height:80px;border-radius:20px;display:flex;align-items:center;justify-content:center}.quick-build-header h2{margin:0 0 8px;font-size:28px;color:#1a1a2e}.quick-build-header p{margin:0;color:#666;font-size:16px}.date-selection-section{margin-bottom:24px}.date-selection-section h3{margin:0 0 16px;font-size:16px;color:#333;font-weight:600}.date-options-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:12px;margin-bottom:16px}.date-option-card{display:flex;flex-direction:column;align-items:center;padding:20px 16px;background:#fff;border:2px solid #E0E0E0;border-radius:12px;cursor:pointer;transition:all .2s ease}.date-option-card:hover{border-color:#2196f3;background:#f5f9ff;transform:translateY(-2px)}.date-option-card.selected{border-color:#2196f3;background:linear-gradient(135deg,#e3f2fd,#bbdefb);box-shadow:0 4px 12px #2196f333}.date-option-card .option-icon{font-size:28px;margin-bottom:8px}.date-option-card .option-label{font-weight:600;color:#333;font-size:14px;margin-bottom:4px}.date-option-card .option-dates{font-size:12px;color:#666}.date-option-card.selected .option-label{color:#1565c0}.custom-dates-input{display:flex;align-items:flex-end;gap:16px;padding:20px;background:#f5f5f5;border-radius:12px;margin-top:16px}.date-input-group{flex:1}.date-input-group label{display:block;font-size:12px;font-weight:600;color:#666;margin-bottom:6px;text-transform:uppercase;letter-spacing:.5px}.date-input-group input{width:100%;padding:12px;border:2px solid #E0E0E0;border-radius:8px;font-size:14px;transition:border-color .2s}.date-input-group input:focus{border-color:#2196f3;outline:none}.date-separator{color:#999;font-weight:500;padding-bottom:12px}.rules-section{margin-bottom:24px}.quick-build-actions{display:flex;flex-direction:column;align-items:center;gap:16px;padding-top:16px;border-top:1px solid #E0E0E0}.quick-build-actions .btn-large{display:flex;align-items:center;gap:10px;padding:16px 40px;font-size:18px;font-weight:600;border-radius:12px;min-width:280px;justify-content:center;box-shadow:0 4px 12px #2196f34d;transition:all .2s}.quick-build-actions .btn-large:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 6px 16px #2196f366}.quick-build-actions .btn-link{background:none;border:none;color:#666;font-size:14px;cursor:pointer;transition:color .2s}.quick-build-actions .btn-link:hover{color:#2196f3}.quick-build-generating{padding:60px 24px;text-align:center}.generating-header{margin-bottom:48px}.spinner-container{margin-bottom:24px}.spinner{width:64px;height:64px;border:4px solid #E3F2FD;border-top-color:#2196f3;border-radius:50%;animation:spin 1s linear infinite;margin:0 auto}.generating-header h3{margin:0 0 8px;font-size:24px;color:#1565c0}.progress-detail{margin:0;color:#666;font-size:14px}.progress-steps{display:flex;justify-content:center;gap:32px;margin-bottom:40px}.progress-step{display:flex;flex-direction:column;align-items:center;gap:8px}.step-indicator{width:48px;height:48px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:20px;transition:all .3s ease}.progress-step.pending .step-indicator{background:#f5f5f5;color:#bdbdbd}.progress-step.active .step-indicator{background:linear-gradient(135deg,#42a5f5,#1e88e5);color:#fff;box-shadow:0 4px 12px #2196f366}.progress-step.complete .step-indicator{background:linear-gradient(135deg,#66bb6a,#43a047);color:#fff}.step-icon.pulse{animation:pulse 1s ease-in-out infinite}@keyframes pulse{0%,to{transform:scale(1)}50%{transform:scale(1.1)}}.step-label{font-size:12px;color:#666;font-weight:500;text-transform:uppercase;letter-spacing:.5px}.progress-step.active .step-label{color:#1565c0;font-weight:600}.progress-step.complete .step-label{color:#2e7d32}.generating-footer{color:#999;font-size:14px}.quick-build-results{padding:24px}.results-header{display:flex;align-items:center;gap:16px;margin-bottom:24px;text-align:left}.results-header .header-icon{font-size:48px}.results-header h2{margin:0 0 4px;font-size:24px;color:#1a1a2e}.results-header .date-range{margin:0;color:#666;font-size:14px}.conflicts-warning{display:flex;align-items:center;gap:10px;padding:14px 18px;background:#fff3e0;border:1px solid #FFB74D;border-radius:8px;margin-bottom:24px;color:#e65100;font-size:14px}.conflicts-warning .warning-icon{font-size:18px}.results-actions{display:flex;gap:16px;justify-content:center;padding-top:24px;border-top:1px solid #E0E0E0;margin-top:24px}.results-actions .btn-large{display:flex;align-items:center;gap:10px;padding:14px 32px;font-size:16px;font-weight:600;border-radius:10px}.results-actions .btn-secondary{background:#f5f5f5;color:#666;border:1px solid #E0E0E0;padding:14px 24px;border-radius:10px;cursor:pointer;font-size:14px;transition:all .2s}.results-actions .btn-secondary:hover{background:#eee;border-color:#bdbdbd}@media (max-width: 600px){.quick-build-header{flex-direction:column;text-align:center}.date-options-grid{grid-template-columns:1fr 1fr}.custom-dates-input{flex-direction:column}.date-separator{padding:8px 0}.progress-steps{flex-wrap:wrap;gap:24px}.results-actions{flex-direction:column}}.site-rules-override-panel{border:1px solid var(--border);border-radius:var(--radius);background:var(--card);overflow:hidden;transition:all .2s ease}.site-rules-override-panel.disabled{opacity:.6;pointer-events:none}.site-rules-override-panel.loading{padding:var(--spacing-4)}.loading-indicator{display:flex;align-items:center;gap:var(--spacing-2);color:var(--muted-foreground);font-size:var(--text-sm)}.spinner{width:16px;height:16px;border:2px solid var(--border);border-top-color:var(--primary);border-radius:50%;animation:spin .8s linear infinite}.panel-header{display:flex;justify-content:space-between;align-items:center;padding:var(--spacing-3) var(--spacing-4);cursor:pointer;transition:background .2s}.panel-header:hover{background:var(--accent)}.header-left{display:flex;align-items:center;gap:var(--spacing-2)}.header-icon{color:var(--primary)}.header-title{font-weight:var(--font-weight-medium);font-size:var(--text-sm)}.header-right{display:flex;align-items:center;gap:var(--spacing-2)}.expand-toggle{background:none;border:none;color:var(--muted-foreground);cursor:pointer;padding:var(--spacing-1);border-radius:var(--radius);display:flex;align-items:center;justify-content:center}.expand-toggle:hover{background:var(--muted);color:var(--foreground)}.panel-content{padding:var(--spacing-4);border-top:1px solid var(--border);display:flex;flex-direction:column;gap:var(--spacing-4)}.enable-row{display:flex;justify-content:space-between;align-items:center;padding:var(--spacing-2) 0}.toggle-label{display:flex;align-items:center;gap:var(--spacing-3);cursor:pointer;font-size:var(--text-sm)}.toggle-label input[type=checkbox]{display:none}.toggle-switch{position:relative;width:40px;height:22px;background:var(--muted);border-radius:11px;transition:background .3s;flex-shrink:0}.toggle-switch:after{content:"";position:absolute;top:2px;left:2px;width:18px;height:18px;background:#fff;border-radius:50%;transition:transform .3s;box-shadow:0 2px 4px #0003}.toggle-label input:checked+.toggle-switch{background:var(--primary)}.toggle-label input:checked+.toggle-switch:after{transform:translate(18px)}.presets-section{display:flex;flex-direction:column;gap:var(--spacing-2)}.section-label{font-size:var(--text-xs);font-weight:var(--font-weight-medium);color:var(--muted-foreground);text-transform:uppercase;letter-spacing:.05em}.presets-grid{display:flex;gap:var(--spacing-2);flex-wrap:wrap}.preset-btn{display:flex;align-items:center;gap:var(--spacing-1);padding:var(--spacing-2) var(--spacing-3);border:1px solid var(--border);border-radius:var(--radius);background:var(--background);color:var(--foreground);font-size:var(--text-sm);cursor:pointer;transition:all .2s}.preset-btn:hover{border-color:var(--primary);background:var(--primary-bg)}.preset-btn.active{border-color:var(--primary);background:var(--primary);color:#fff}.preset-btn.off{border-color:var(--warning)}.preset-btn.off:hover{background:var(--warning-bg);border-color:var(--warning)}.preset-btn.off.active{background:var(--warning);border-color:var(--warning);color:var(--warning-foreground)}.preset-description{margin:0;font-size:var(--text-xs);color:var(--muted-foreground);padding:var(--spacing-2);background:var(--muted);border-radius:var(--radius)}.override-section{border:1px solid var(--border);border-radius:var(--radius);overflow:hidden}.section-header{width:100%;display:flex;justify-content:space-between;align-items:center;padding:var(--spacing-3);background:var(--muted);border:none;cursor:pointer;font-size:var(--text-sm);color:var(--foreground)}.section-header:hover{background:var(--accent)}.section-header-left{display:flex;align-items:center;gap:var(--spacing-2)}.section-content{padding:var(--spacing-3);display:flex;flex-direction:column;gap:var(--spacing-3);background:var(--card)}.constraint-row{display:grid;grid-template-columns:auto 1fr auto;align-items:start;gap:var(--spacing-3);padding:var(--spacing-2);border-radius:var(--radius);cursor:pointer;transition:background .2s}.constraint-row:hover{background:var(--muted)}.constraint-row input[type=checkbox]{width:18px;height:18px;cursor:pointer;margin-top:2px}.constraint-info{display:flex;flex-direction:column;gap:2px}.constraint-label{font-size:var(--text-sm);font-weight:var(--font-weight-medium)}.constraint-desc{font-size:var(--text-xs);color:var(--muted-foreground)}.fallback-content{gap:var(--spacing-4)}.fallback-row{display:flex;flex-direction:column;gap:var(--spacing-2)}.fallback-row>label{font-size:var(--text-sm);font-weight:var(--font-weight-medium)}.threshold-input-group{display:flex;align-items:center;gap:var(--spacing-3)}.threshold-slider{flex:1;height:6px;-webkit-appearance:none;-moz-appearance:none;appearance:none;background:var(--muted);border-radius:3px;outline:none}.threshold-slider::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:18px;height:18px;border-radius:50%;background:var(--primary);cursor:pointer;transition:transform .2s}.threshold-slider::-webkit-slider-thumb:hover{transform:scale(1.1)}.threshold-slider::-moz-range-thumb{width:18px;height:18px;border-radius:50%;background:var(--primary);cursor:pointer;border:none}.threshold-value{min-width:32px;font-weight:var(--font-weight-semibold);color:var(--primary);font-size:var(--text-lg)}.fallback-desc{margin:0;font-size:var(--text-xs);color:var(--muted-foreground)}.fallback-toggle-row{display:flex;align-items:center;gap:var(--spacing-2);cursor:pointer;font-size:var(--text-sm)}.fallback-toggle-row input[type=checkbox]{width:16px;height:16px;cursor:pointer}.disabled-alert{display:flex;align-items:flex-start;gap:var(--spacing-2)}.disabled-alert svg{flex-shrink:0;margin-top:2px}@media (max-width: 640px){.presets-grid{display:grid;grid-template-columns:repeat(2,1fr)}.preset-btn{justify-content:center}.enable-row{flex-direction:column;align-items:flex-start;gap:var(--spacing-2)}.constraint-row{grid-template-columns:auto 1fr}.constraint-row>.badge{grid-column:2}}.mode-selector{padding:24px;background:#fff;border-radius:8px;margin-bottom:24px}.mode-selector h3{margin:0 0 8px;color:#333;font-size:20px}.mode-selector-description{color:#666;margin:0 0 24px;font-size:14px}.mode-options{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:16px;margin-bottom:16px}.mode-option{position:relative;padding:20px;border:2px solid #e0e0e0;border-radius:8px;cursor:pointer;transition:all .2s;background:#fff}.mode-option:hover:not(.disabled){border-color:#2196f3;box-shadow:0 2px 8px #2196f31a;transform:translateY(-2px)}.mode-option.selected{border-color:#4caf50;background:#f1f8f4;box-shadow:0 2px 8px #4caf5033}.mode-option.disabled{opacity:.6;cursor:not-allowed;background:#f5f5f5}.mode-icon{font-size:32px;margin-bottom:12px}.mode-content h4{margin:0 0 8px;color:#333;font-size:18px}.mode-content p{margin:0 0 12px;color:#666;font-size:14px;line-height:1.5}.mode-features{list-style:none;padding:0;margin:0}.mode-features li{color:#555;font-size:13px;position:relative;padding:4px 0 4px 20px}.mode-features li:before{content:"✓";position:absolute;left:0;color:#4caf50;font-weight:700}.mode-checkmark{position:absolute;top:12px;right:12px;width:24px;height:24px;background:#4caf50;color:#fff;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:14px}.mode-unavailable{position:absolute;bottom:12px;left:20px;right:20px;padding:8px;background:#fff3cd;border:1px solid #ffc107;border-radius:4px;color:#856404;font-size:12px;text-align:center}.mode-switch-note{padding:12px;background:#e3f2fd;border-left:4px solid #2196F3;border-radius:4px;margin-top:16px}.mode-switch-note p{margin:0;color:#1976d2;font-size:13px}.roster-builder{padding:20px}.roster-builder-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:30px}.header-actions{display:flex;gap:12px;align-items:center}.btn-assistant-toggle{background:transparent;color:#2196f3;border:1px solid #2196F3;padding:8px 16px;font-size:14px;border-radius:4px;cursor:pointer;transition:all .2s}.btn-assistant-toggle:hover:not(:disabled){background:#e3f2fd;border-color:#1976d2}.assistant-section{margin-bottom:24px}.roster-builder h2{margin:0}.btn-start-over{background:transparent;color:#6c757d;border:1px solid #ced4da;padding:8px 16px;font-size:14px;border-radius:4px;cursor:pointer;transition:all .2s}.btn-start-over:hover:not(:disabled){background:#f8f9fa;border-color:#adb5bd;color:#495057}.btn-start-over:disabled{opacity:.6;cursor:not-allowed}.create-session-action{margin-top:24px;text-align:center}.optimization-section{margin-bottom:32px;padding:20px;background:#f9f9f9;border-radius:8px}.skip-optimization{margin-top:20px;text-align:center}.roster-builder-step{background:#f8f9fa;padding:20px;border-radius:8px;margin-bottom:20px}.roster-builder-step h3{margin-top:0;margin-bottom:15px}.date-range-selector{display:flex;gap:20px;align-items:flex-end}.date-range-selector .form-group{flex:1}.date-range-selector label{display:block;margin-bottom:5px;font-weight:500}.date-range-selector input{width:100%;padding:8px;border:1px solid #ddd;border-radius:4px;font-size:14px}.btn{padding:10px 20px;border:none;border-radius:4px;cursor:pointer;font-size:14px}.btn-primary{background:#007bff;color:#fff}.btn-primary:hover:not(:disabled){background:#0056b3}.btn-primary:disabled{background:#6c757d;cursor:not-allowed}.dashboard-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:var(--spacing-4);margin-bottom:var(--spacing-6)}.dashboard-stat-card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius-card);padding:var(--spacing-5);transition:transform var(--duration-normal) var(--ease-in-out),box-shadow var(--duration-normal) var(--ease-in-out)}.dashboard-stat-card:hover{transform:translateY(-2px);box-shadow:var(--elevation-md)}.dashboard-stat-header{display:flex;align-items:flex-start;gap:var(--spacing-3)}.dashboard-stat-icon{display:flex;align-items:center;justify-content:center;width:48px;height:48px;border-radius:var(--radius-lg);background:var(--muted);color:var(--foreground);flex-shrink:0}.dashboard-stat-icon-primary{background:color-mix(in srgb,var(--primary) 10%,transparent);color:var(--primary)}.dashboard-stat-icon-success{background:color-mix(in srgb,var(--chart-2) 10%,transparent);color:var(--chart-2)}.dashboard-stat-icon-warning{background:color-mix(in srgb,var(--chart-3) 10%,transparent);color:var(--chart-3)}.dashboard-stat-icon-destructive{background:color-mix(in srgb,var(--destructive) 10%,transparent);color:var(--destructive)}.dashboard-stat-content{flex:1;min-width:0}.dashboard-stat-label{font-size:var(--text-sm);color:var(--muted-foreground);margin:0 0 var(--spacing-1) 0}.dashboard-stat-value{font-size:var(--text-2xl);font-weight:var(--font-weight-semibold);color:var(--foreground);margin:0 0 var(--spacing-1) 0;line-height:1.2}.dashboard-stat-trend{display:flex;align-items:center;gap:var(--spacing-1);font-size:var(--text-xs);font-weight:var(--font-weight-medium);margin-top:var(--spacing-1)}.dashboard-stat-trend-up{color:var(--chart-2)}.dashboard-stat-trend-down{color:var(--destructive)}.dashboard-stat-trend-neutral,.dashboard-stat-trend-label{color:var(--muted-foreground)}.dashboard-stat-description{font-size:var(--text-xs);color:var(--muted-foreground);margin:var(--spacing-2) 0 0 0;padding-top:var(--spacing-2);border-top:1px solid var(--border)}.dashboard-stats-empty{text-align:center;padding:var(--spacing-8);color:var(--muted-foreground)}@media (max-width: 640px){.dashboard-stats{grid-template-columns:1fr}}.staff-hours-widget{background:#fff;border-radius:12px;box-shadow:0 2px 8px #00000014;overflow:hidden}.staff-hours-widget.loading .loading-content,.staff-hours-widget.error .error-content{display:flex;align-items:center;justify-content:center;gap:10px;padding:40px 20px;color:#666}.staff-hours-widget .spinner{animation:spin 1s linear infinite}.staff-hours-widget.error .error-content{color:#e65100}.staff-hours-widget.error button{background:#fff3e0;border:1px solid #FFB74D;color:#e65100;padding:6px 12px;border-radius:6px;cursor:pointer}.staff-hours-widget .widget-header{display:flex;justify-content:space-between;align-items:center;padding:16px 20px;background:linear-gradient(135deg,#e3f2fd,#bbdefb);border-bottom:1px solid #90CAF9}.staff-hours-widget .header-main{display:flex;flex-direction:column;gap:4px}.staff-hours-widget h3{margin:0;font-size:16px;font-weight:600;color:#1565c0}.staff-hours-widget .fortnight-label{font-size:12px;color:#42a5f5}.staff-hours-widget .refresh-btn{background:transparent;border:none;font-size:16px;cursor:pointer;padding:6px;border-radius:6px;transition:background .2s}.staff-hours-widget .refresh-btn:hover{background:#ffffff80}.staff-hours-widget .hours-overview{padding:16px 20px}.staff-hours-widget .summary-cards{display:flex;gap:12px;margin-bottom:16px}.staff-hours-widget .summary-card{flex:1;display:flex;align-items:center;gap:12px;padding:14px;background:#f5f5f5;border-radius:10px;transition:transform .2s}.staff-hours-widget .summary-card:hover{transform:translateY(-2px)}.staff-hours-widget .summary-card.regular{background:linear-gradient(135deg,#e8f5e9,#c8e6c9)}.staff-hours-widget .summary-card.students{background:linear-gradient(135deg,#e8eaf6,#c5cae9)}.staff-hours-widget .card-icon{font-size:24px}.staff-hours-widget .card-content{display:flex;flex-direction:column}.staff-hours-widget .card-count{font-size:24px;font-weight:700;color:#333}.staff-hours-widget .card-label{font-size:11px;color:#666;text-transform:uppercase;letter-spacing:.3px}.staff-hours-widget .alert-section{margin-bottom:12px;border-radius:8px;overflow:hidden}.staff-hours-widget .alert-section.near-capacity{background:#fff3e0;border:1px solid #FFB74D}.staff-hours-widget .alert-section.over-limit{background:#ffebee;border:1px solid #EF5350}.staff-hours-widget .alert-header{display:flex;align-items:center;gap:10px;padding:12px 14px;cursor:pointer;transition:background .2s}.staff-hours-widget .alert-section.near-capacity .alert-header:hover{background:#ff98001a}.staff-hours-widget .alert-icon{font-size:18px}.staff-hours-widget .alert-title{flex:1;font-size:14px;font-weight:500}.staff-hours-widget .alert-section.near-capacity .alert-title{color:#e65100}.staff-hours-widget .alert-section.over-limit .alert-title{color:#c62828}.staff-hours-widget .toggle{font-size:12px;color:#999}.staff-hours-widget .alert-details{padding:0 14px 14px}.staff-hours-widget .staff-item{display:flex;align-items:center;gap:12px;padding:10px 12px;background:#fff;border-radius:6px;margin-top:8px}.staff-hours-widget .staff-item.over{background:#ffcdd2}.staff-hours-widget .staff-info{display:flex;align-items:center;gap:8px;min-width:140px}.staff-hours-widget .staff-name{font-weight:500;color:#333;font-size:13px}.staff-hours-widget .staff-type{font-size:10px;padding:2px 6px;border-radius:8px;text-transform:uppercase}.staff-hours-widget .staff-type.student{background:#e8eaf6;color:#3949ab}.staff-hours-widget .staff-type.regular,.staff-hours-widget .staff-type.hired,.staff-hours-widget .staff-type.contractor{background:#e3f2fd;color:#1565c0}.staff-hours-widget .hours-bar-mini{flex:1;height:8px;background:#fff8e1;border-radius:4px;overflow:hidden}.staff-hours-widget .hours-bar-mini .fill{height:100%;background:linear-gradient(135deg,#ffa726,#ff9800);border-radius:4px}.staff-hours-widget .hours-text{font-size:12px;font-weight:600;color:#e65100;min-width:70px;text-align:right}.staff-hours-widget .hours-over{font-size:12px;font-weight:600;color:#c62828}.staff-hours-widget .all-good{display:flex;align-items:center;justify-content:center;gap:10px;padding:20px;background:#e8f5e9;border-radius:8px;color:#2e7d32;font-size:14px}.staff-hours-widget .all-good .icon{font-size:20px}.staff-hours-widget .widget-footer{padding:12px 20px;border-top:1px solid #E0E0E0;background:#fafafa}.staff-hours-widget .view-all-btn{background:transparent;border:none;color:#1976d2;font-size:13px;cursor:pointer;padding:0;transition:color .2s}.staff-hours-widget .view-all-btn:hover{color:#1565c0;text-decoration:underline}@media (max-width: 480px){.staff-hours-widget .summary-cards{flex-direction:column}.staff-hours-widget .staff-item{flex-wrap:wrap}.staff-hours-widget .staff-info{width:100%;min-width:auto}}.rules-widget{background:#fff;border-radius:12px;box-shadow:0 2px 8px #00000014;overflow:hidden}.rules-widget.loading .loading-content,.rules-widget.error .error-content{display:flex;align-items:center;justify-content:center;gap:10px;padding:40px 20px;color:#666}.rules-widget .spinner{animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.rules-widget.error .error-content{color:#e65100}.rules-widget.error button{background:#fff3e0;border:1px solid #FFB74D;color:#e65100;padding:6px 12px;border-radius:6px;cursor:pointer}.rules-widget .widget-header{display:flex;justify-content:space-between;align-items:center;padding:16px 20px;background:linear-gradient(135deg,#f3e5f5,#e1bee7);border-bottom:1px solid #CE93D8}.rules-widget h3{margin:0;font-size:16px;font-weight:600;color:#6a1b9a}.rules-widget .configure-btn{background:#fff;border:1px solid #9C27B0;color:#7b1fa2;padding:6px 14px;border-radius:6px;font-size:13px;cursor:pointer;transition:all .2s}.rules-widget .configure-btn:hover{background:#9c27b0;color:#fff}.rules-widget .rules-content{padding:16px 20px}.rules-widget .rule-group{display:flex;align-items:flex-start;gap:14px;padding:14px;background:#fafafa;border-radius:8px;margin-bottom:12px}.rules-widget .rule-icon{font-size:24px;flex-shrink:0}.rules-widget .rule-details{flex:1}.rules-widget .rule-label{display:block;font-size:12px;font-weight:600;color:#666;text-transform:uppercase;letter-spacing:.5px;margin-bottom:8px}.rules-widget .rule-values{display:flex;flex-wrap:wrap;gap:12px}.rules-widget .value{display:flex;align-items:center;gap:6px;font-size:13px;color:#555}.rules-widget .value strong{color:#333}.rules-widget .value.warning strong{color:#e65100}.rules-widget .value.danger strong{color:#c62828}.rules-widget .type-dot{width:8px;height:8px;border-radius:50%}.rules-widget .type-dot.regular{background:#1976d2}.rules-widget .type-dot.student{background:#7b1fa2}.rules-widget .enforcement-status{display:flex;align-items:center;gap:10px;padding:12px 14px;border-radius:8px;font-size:13px}.rules-widget .enforcement-status.active{background:#e8f5e9;color:#2e7d32}.rules-widget .enforcement-status.inactive{background:#fff3e0;color:#e65100}.rules-widget .status-icon{font-size:16px}.rules-widget .status-text{flex:1}.rules-widget .widget-footer{padding:12px 20px;border-top:1px solid #E0E0E0;background:#fafafa}.rules-widget .footer-note{margin:0;font-size:12px;color:#666}@media (max-width: 480px){.rules-widget .rule-values{flex-direction:column;gap:8px}.rules-widget .widget-header{flex-direction:column;gap:12px;align-items:flex-start}}.dashboard{padding:var(--spacing-10) var(--spacing-8);max-width:1400px;margin:0 auto;min-height:calc(100vh - 64px)}.dashboard-header{margin-bottom:var(--spacing-10);padding-bottom:var(--spacing-6);border-bottom:1px solid transparent;border-image:linear-gradient(to right,transparent,var(--border) 20%,var(--border) 80%,transparent) 1}.dashboard-title{font-size:var(--text-3xl);font-weight:var(--font-weight-semibold);margin:0 0 var(--spacing-3) 0;color:var(--foreground);letter-spacing:-.02em;line-height:1.15}.dashboard-subtitle{font-size:var(--text-base);color:var(--muted-foreground);margin:0;line-height:1.6;max-width:60ch}.dashboard-stats-skeleton{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:var(--spacing-4);margin-bottom:var(--spacing-8)}.dashboard-error{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--spacing-12);text-align:center}.dashboard-error-icon{width:48px;height:48px;color:var(--destructive);margin-bottom:var(--spacing-4)}.dashboard-error h3{font-size:var(--text-xl);margin:0 0 var(--spacing-2) 0}.dashboard-error p{color:var(--muted-foreground);margin:0 0 var(--spacing-4) 0}.dashboard-section-title{font-size:var(--text-2xl);font-weight:var(--font-weight-semibold);margin:0 0 var(--spacing-4) 0;color:var(--foreground)}.dashboard-quick-actions{margin-bottom:var(--spacing-8)}.dashboard-quick-actions-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:var(--spacing-4)}.dashboard-quick-action-card{cursor:pointer;transition:transform var(--duration-normal) var(--ease-in-out),box-shadow var(--duration-normal) var(--ease-in-out)}.dashboard-quick-action-card:hover{transform:translateY(-2px);box-shadow:var(--elevation-md)}.dashboard-quick-action-icon{display:flex;align-items:center;justify-content:center;width:48px;height:48px;border-radius:var(--radius-lg);background:color-mix(in srgb,var(--primary) 10%,transparent);color:var(--primary);margin-bottom:var(--spacing-3)}.dashboard-widgets-section{margin-bottom:var(--spacing-8)}.dashboard-widgets-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(360px,1fr));gap:var(--spacing-4)}.dashboard-recent-activity{margin-bottom:var(--spacing-8)}.dashboard-activity-empty{text-align:center;color:var(--muted-foreground);padding:var(--spacing-8) 0}@media (max-width: 1024px){.dashboard{padding:var(--spacing-8) var(--spacing-6)}.dashboard-header{margin-bottom:var(--spacing-8);padding-bottom:var(--spacing-5)}}@media (max-width: 768px){.dashboard{padding:var(--spacing-6) var(--spacing-4)}.dashboard-header{margin-bottom:var(--spacing-6);padding-bottom:var(--spacing-4)}.dashboard-title{font-size:var(--text-2xl)}.dashboard-quick-actions-grid,.dashboard-widgets-grid{grid-template-columns:1fr}}@media (max-width: 640px){.dashboard{padding:var(--spacing-4) var(--spacing-3)}.dashboard-title{font-size:var(--text-xl)}.dashboard-subtitle{font-size:var(--text-sm)}}.input-wrapper{display:flex;flex-direction:column;gap:var(--spacing-1);width:100%}.input-label{font-size:var(--text-xs);font-weight:var(--font-weight-medium);color:var(--foreground);line-height:1.33}.input-container{position:relative;display:flex;align-items:center}.input{width:100%;padding:var(--spacing-2) var(--spacing-3);border:1px solid var(--border);border-radius:var(--radius);font-size:var(--text-base);font-weight:var(--font-weight-normal);font-family:Inter,sans-serif;background-color:var(--input-background);color:var(--foreground);transition:all var(--duration-normal) var(--ease-in-out);outline:none}.input::placeholder{color:var(--muted-foreground)}.input:focus{border-color:var(--ring);box-shadow:0 0 0 2px color-mix(in srgb,var(--ring) 20%,transparent)}.input:disabled{opacity:.5;cursor:not-allowed;background-color:var(--muted)}.input-error{border-color:var(--destructive)}.input-error .input:focus{border-color:var(--destructive);box-shadow:0 0 0 2px color-mix(in srgb,var(--destructive) 20%,transparent)}.input-with-icon-left .input{padding-left:calc(var(--spacing-3) + 16px + var(--spacing-2))}.input-with-icon-right .input{padding-right:calc(var(--spacing-3) + 16px + var(--spacing-2))}.input-icon-left,.input-icon-right{position:absolute;display:flex;align-items:center;justify-content:center;width:16px;height:16px;color:var(--muted-foreground);pointer-events:none;z-index:1}.input-icon-left{left:var(--spacing-3)}.input-icon-right{right:var(--spacing-3)}.input-error-message{font-size:var(--text-xs);color:var(--destructive);line-height:1.33}.input-helper-text{font-size:var(--text-xs);color:var(--muted-foreground);line-height:1.33}.dark .input:disabled{background-color:color-mix(in srgb,var(--muted) 50%,transparent)}.select-wrapper{display:flex;flex-direction:column;gap:var(--spacing-1);width:100%;position:relative}.select-label{font-size:var(--text-xs);font-weight:var(--font-weight-medium);color:var(--foreground);line-height:1.33}.select-container{position:relative}.select-trigger{width:100%;padding:var(--spacing-2) var(--spacing-3);border:1px solid var(--border);border-radius:var(--radius);font-size:var(--text-base);font-weight:var(--font-weight-normal);font-family:Inter,sans-serif;background-color:var(--input-background);color:var(--foreground);cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:var(--spacing-2);transition:all var(--duration-normal) var(--ease-in-out);outline:none;text-align:left}.select-trigger:hover:not(:disabled){border-color:var(--ring)}.select-trigger:focus{border-color:var(--ring);box-shadow:0 0 0 2px color-mix(in srgb,var(--ring) 20%,transparent)}.select-trigger:disabled{opacity:.5;cursor:not-allowed;background-color:var(--muted)}.select-value{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.select-placeholder{color:var(--muted-foreground)}.select-arrow{flex-shrink:0;width:16px;height:16px;display:flex;align-items:center;justify-content:center;color:var(--muted-foreground);transition:transform var(--duration-normal) var(--ease-in-out);font-size:12px}.select-open .select-arrow{transform:rotate(180deg)}.select-error .select-trigger{border-color:var(--destructive)}.select-error .select-trigger:focus{border-color:var(--destructive);box-shadow:0 0 0 2px color-mix(in srgb,var(--destructive) 20%,transparent)}.select-dropdown{position:absolute;top:calc(100% + var(--spacing-1));left:0;right:0;z-index:9999;background-color:var(--popover);color:var(--popover-foreground);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--elevation-lg);max-height:300px;overflow:hidden;display:flex;flex-direction:column;animation:slideDown var(--duration-fast) var(--ease-out);pointer-events:auto}.select-search{padding:var(--spacing-2);border-bottom:1px solid var(--border)}.select-search-input{width:100%;padding:var(--spacing-1) var(--spacing-2);border:1px solid var(--border);border-radius:var(--radius);font-size:var(--text-sm);background-color:var(--input-background);color:var(--foreground);outline:none}.select-search-input:focus{border-color:var(--ring)}.select-options{overflow-y:auto;max-height:250px}.select-option{padding:var(--spacing-2) var(--spacing-3);cursor:pointer;display:flex;align-items:center;gap:var(--spacing-2);transition:background-color var(--duration-fast) var(--ease-in-out);font-size:var(--text-sm);user-select:none;-webkit-user-select:none}.select-option:hover{background-color:var(--accent);color:var(--accent-foreground)}.select-option-selected{background-color:var(--primary);color:var(--primary-foreground)}.select-option-empty{color:var(--muted-foreground);cursor:default;justify-content:center;padding:var(--spacing-4)}.select-checkbox{width:16px;height:16px;display:flex;align-items:center;justify-content:center;flex-shrink:0;border:1px solid var(--border);border-radius:var(--radius);font-size:12px}.select-option-selected .select-checkbox{background-color:currentColor;border-color:currentColor}.select-error-message{font-size:var(--text-xs);color:var(--destructive);line-height:1.33}.select-helper-text{font-size:var(--text-xs);color:var(--muted-foreground);line-height:1.33}.smart-suggestions{display:flex;flex-direction:column;gap:var(--spacing-4)}.smart-suggestions-header{display:flex;align-items:center;gap:var(--spacing-2)}.smart-suggestions-title{font-size:var(--text-lg);font-weight:var(--font-weight-semibold);color:var(--foreground);margin:0}.smart-suggestions-list{display:flex;flex-direction:column;gap:var(--spacing-3)}.smart-suggestion-card{transition:all var(--duration-normal) var(--ease-in-out)}.smart-suggestion-card:hover{box-shadow:var(--elevation-md);transform:translateY(-1px)}.smart-suggestion-card-warning{border-left:3px solid var(--chart-3)}.smart-suggestion-card-success{border-left:3px solid var(--chart-2)}.smart-suggestion-content{display:flex;flex-direction:column;gap:var(--spacing-3)}.smart-suggestion-header{display:flex;align-items:flex-start;gap:var(--spacing-3)}.smart-suggestion-icon{width:20px;height:20px;flex-shrink:0;margin-top:2px}.smart-suggestion-icon-info{color:var(--primary)}.smart-suggestion-icon-warning{color:var(--chart-3)}.smart-suggestion-icon-success{color:var(--chart-2)}.smart-suggestion-text{flex:1;min-width:0}.smart-suggestion-title{font-size:var(--text-sm);font-weight:var(--font-weight-semibold);color:var(--foreground);margin:0 0 var(--spacing-1) 0}.smart-suggestion-description{font-size:var(--text-sm);color:var(--muted-foreground);margin:0;line-height:1.5}.smart-suggestion-details{padding:var(--spacing-3);background:var(--muted);border-radius:var(--radius);font-size:var(--text-xs);color:var(--muted-foreground)}.smart-suggestion-actions{display:flex;align-items:center;gap:var(--spacing-2);margin-top:var(--spacing-3);padding-top:var(--spacing-3);border-top:1px solid var(--border)}.smart-suggestion-dismiss{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border:none;background:transparent;border-radius:var(--radius);cursor:pointer;color:var(--muted-foreground);transition:all var(--duration-normal) var(--ease-in-out);margin-left:auto}.smart-suggestion-dismiss:hover{background:var(--muted);color:var(--foreground)}.smart-suggestion-dismiss-icon{width:16px;height:16px}@media (max-width: 768px){.smart-suggestion-actions{flex-wrap:wrap}.smart-suggestion-dismiss{margin-left:0}}.staff-form-container{padding:var(--spacing-6);max-width:800px;margin:0 auto}.staff-form-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--spacing-4)}.staff-form-skeleton{display:flex;flex-direction:column;gap:var(--spacing-4)}.staff-form-error{margin-bottom:var(--spacing-4)}.staff-form-fields{display:flex;flex-direction:column;gap:var(--spacing-4)}.staff-form-suggestions{margin-bottom:var(--spacing-4)}.staff-form-textarea-group{display:flex;flex-direction:column;gap:var(--spacing-1)}.staff-form-label{font-size:.875rem;font-weight:500;color:var(--text-primary)}.staff-form-textarea{width:100%;padding:.75rem;font-size:.875rem;border:1px solid var(--border-color, #e2e8f0);border-radius:6px;background:var(--bg-primary, #ffffff);color:var(--text-primary);resize:vertical;min-height:80px;font-family:inherit;transition:border-color .2s ease,box-shadow .2s ease}.staff-form-textarea:focus{outline:none;border-color:var(--primary, #3b82f6);box-shadow:0 0 0 3px #3b82f61a}.staff-form-textarea::placeholder{color:var(--text-tertiary, #94a3b8)}.staff-form-helper-text{font-size:.75rem;color:var(--text-secondary, #64748b)}.staff-form-section-divider{display:flex;align-items:center;gap:var(--spacing-2);margin:var(--spacing-4) 0 var(--spacing-2) 0;padding-top:var(--spacing-4);border-top:1px solid var(--border-color, #e2e8f0)}.staff-form-section-divider span{font-size:.875rem;font-weight:600;color:var(--text-secondary, #64748b);text-transform:uppercase;letter-spacing:.05em}.dark .staff-form-label{color:var(--foreground)}.dark .staff-form-textarea{background:var(--input-background);border-color:var(--border);color:var(--foreground)}.dark .staff-form-textarea::placeholder{color:var(--muted-foreground)}.dark .staff-form-helper-text{color:var(--muted-foreground)}@media (max-width: 640px){.staff-form-container{padding:var(--spacing-4)}}.skills-tab{padding:0}.skills-tab-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--spacing-6)}.skills-tab-header h2{margin:0;font-size:var(--text-xl);font-weight:var(--font-weight-semibold);color:var(--foreground)}.skills-tab-error{margin-bottom:var(--spacing-6)}.skills-tab-empty{text-align:center;padding:var(--spacing-12);color:var(--muted-foreground)}.skills-tab-groups{display:flex;flex-direction:column;gap:var(--spacing-6)}.skills-tab-group h3{margin:0 0 var(--spacing-4) 0;font-size:var(--text-base);font-weight:var(--font-weight-semibold);color:var(--foreground);text-transform:capitalize}.skills-tab-list{display:flex;flex-direction:column;gap:var(--spacing-3)}.skills-tab-item{display:flex;justify-content:space-between;align-items:center;padding:var(--spacing-4);border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--card)}.skills-tab-item-content{display:flex;align-items:center;gap:var(--spacing-3);flex:1}.skills-tab-item-name{font-weight:var(--font-weight-medium);color:var(--foreground)}.skills-tab-badge{padding:var(--spacing-1) var(--spacing-2);border-radius:var(--radius-md);font-size:var(--text-xs);font-weight:var(--font-weight-medium);background:var(--muted);color:var(--muted-foreground)}.skills-tab-badge.certified{background:color-mix(in srgb,var(--primary) 20%,transparent);color:var(--primary)}.skills-tab-badge.expired{background:color-mix(in srgb,var(--destructive) 20%,transparent);color:var(--destructive)}.skills-tab-item-actions{display:flex;gap:var(--spacing-2)}.skills-tab-modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000}.skills-tab-modal{background:var(--card);border-radius:var(--radius-lg);width:90%;max-width:600px;max-height:90vh;overflow-y:auto;display:flex;flex-direction:column}.skills-tab-modal-header{display:flex;justify-content:space-between;align-items:center;padding:var(--spacing-5);border-bottom:1px solid var(--border)}.skills-tab-modal-header h3{margin:0;font-size:var(--text-lg);font-weight:var(--font-weight-semibold);color:var(--foreground)}.skills-tab-modal-content{padding:var(--spacing-5);display:flex;flex-direction:column;gap:var(--spacing-4)}.skills-tab-form-group{display:flex;flex-direction:column;gap:var(--spacing-2)}.skills-tab-form-group label{font-size:var(--text-sm);font-weight:var(--font-weight-medium);color:var(--foreground)}.skills-tab-textarea{width:100%;padding:var(--spacing-2) var(--spacing-3);border:1px solid var(--border);border-radius:var(--radius-md);font-size:var(--text-sm);font-family:inherit;resize:vertical;background:var(--input-background);color:var(--foreground)}.skills-tab-textarea:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px color-mix(in srgb,var(--ring) 30%,transparent)}.skills-tab-modal-footer{display:flex;justify-content:flex-end;gap:var(--spacing-2);padding:var(--spacing-5);border-top:1px solid var(--border)}.staff-documents-panel{width:100%}.staff-documents-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--spacing-4)}.staff-documents-header-left{display:flex;align-items:center;gap:var(--spacing-2)}.staff-documents-title{font-size:1.5rem;font-weight:600;color:var(--foreground);margin:0}.staff-documents-count{font-size:.875rem;color:var(--muted-foreground)}.staff-documents-filters{display:flex;gap:var(--spacing-4);margin-bottom:var(--spacing-4);flex-wrap:wrap}.staff-documents-filter{min-width:200px;flex:1}.staff-documents-upload-card{margin-bottom:var(--spacing-6)}.staff-documents-upload-form{display:flex;flex-direction:column;gap:var(--spacing-4)}.staff-documents-form-row{display:grid;grid-template-columns:1fr 1fr;gap:var(--spacing-4)}.staff-documents-file-input{display:flex;flex-direction:column;gap:var(--spacing-2);grid-column:1 / -1}.staff-documents-file-input label{font-size:.875rem;font-weight:500;color:var(--foreground)}.staff-documents-file-input input[type=file]{padding:var(--spacing-2);border:1px solid var(--border);border-radius:6px;background:var(--background);color:var(--foreground);cursor:pointer}.staff-documents-file-name{font-size:.875rem;color:var(--muted-foreground);font-style:italic}.staff-documents-textarea{display:flex;flex-direction:column;gap:var(--spacing-2);grid-column:1 / -1}.staff-documents-textarea label{font-size:.875rem;font-weight:500;color:var(--foreground)}.staff-documents-textarea textarea{padding:var(--spacing-3);border:1px solid var(--border);border-radius:6px;background:var(--background);color:var(--foreground);font-family:inherit;resize:vertical}.staff-documents-form-actions{display:flex;gap:var(--spacing-3);justify-content:flex-end;margin-top:var(--spacing-2)}.staff-documents-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--spacing-8);text-align:center;color:var(--muted-foreground)}.staff-documents-empty-icon{margin-bottom:var(--spacing-4);opacity:.5}.staff-documents-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(350px,1fr));gap:var(--spacing-4)}.staff-documents-card{transition:transform .2s ease,box-shadow .2s ease}.staff-documents-card:hover{transform:translateY(-2px);box-shadow:0 4px 12px #0000001a}.staff-documents-card-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:var(--spacing-4);gap:var(--spacing-3)}.staff-documents-card-info{display:flex;gap:var(--spacing-3);flex:1;min-width:0}.staff-documents-card-icon{width:24px;height:24px;color:var(--primary);flex-shrink:0;margin-top:2px}.staff-documents-card-name{font-size:1rem;font-weight:600;color:var(--foreground);margin:0 0 4px;word-break:break-word}.staff-documents-card-type{font-size:.875rem;color:var(--muted-foreground);margin:0}.staff-documents-card-details{display:flex;flex-direction:column;gap:var(--spacing-2);margin-bottom:var(--spacing-4)}.staff-documents-detail-item{display:flex;gap:var(--spacing-2);font-size:.875rem}.staff-documents-detail-label{font-weight:500;color:var(--muted-foreground);min-width:80px}.staff-documents-card-notes{margin-bottom:var(--spacing-4);padding:var(--spacing-3);background:var(--muted);border-radius:6px;font-size:.875rem;color:var(--muted-foreground);font-style:italic}.staff-documents-card-actions{display:flex;gap:var(--spacing-2);justify-content:flex-end;padding-top:var(--spacing-3);border-top:1px solid var(--border)}@media (max-width: 768px){.staff-documents-form-row,.staff-documents-grid{grid-template-columns:1fr}.staff-documents-filters{flex-direction:column}.staff-documents-filter{width:100%}.staff-documents-header{flex-direction:column;align-items:flex-start;gap:var(--spacing-3)}}.entity-shifts-panel{width:100%}.entity-shifts-header{display:flex;justify-content:space-between;align-items:center;width:100%}.entity-shifts-actions{display:flex;gap:8px}.entity-shifts-error{margin-bottom:16px}.entity-shifts-skeleton{display:flex;flex-direction:column;gap:12px}.entity-shifts-navigation{display:flex;justify-content:space-between;align-items:center;padding:12px 0;margin-bottom:16px;border-bottom:1px solid var(--border)}.entity-shifts-nav-controls{display:flex;align-items:center;gap:4px}.entity-shifts-date-range{display:flex;align-items:center;gap:8px;font-size:.875rem;color:var(--muted-foreground)}.entity-shifts-date-icon{width:16px;height:16px}.entity-shifts-list{display:flex;flex-direction:column;gap:16px}.entity-shifts-date-group{display:flex;flex-direction:column;gap:8px}.entity-shifts-date-header{font-size:.75rem;font-weight:600;color:var(--muted-foreground);text-transform:uppercase;letter-spacing:.05em;padding:4px 0}.entity-shifts-item{display:flex;align-items:center;gap:16px;padding:12px 16px;background:var(--card);border:1px solid var(--border);border-radius:8px;cursor:pointer;transition:all .15s ease}.entity-shifts-item:hover{background:var(--accent);border-color:var(--accent-foreground)}.entity-shifts-item.unassigned{border-left:3px solid var(--warning);background:#f59e0b0d}.entity-shifts-item.unassigned:hover{background:#f59e0b1a}.entity-shifts-item-time{display:flex;align-items:center;gap:8px;min-width:120px;font-weight:500;color:var(--foreground)}.entity-shifts-item-icon{width:16px;height:16px;color:var(--muted-foreground);flex-shrink:0}.entity-shifts-item-entity{display:flex;align-items:center;gap:8px;flex:1;font-size:.875rem;color:var(--foreground)}.entity-shifts-item-entity .unassigned-text{color:var(--warning);font-style:italic}.entity-shifts-item-actions{display:flex;align-items:center;gap:4px;opacity:0;transition:opacity .15s ease}.entity-shifts-item:hover .entity-shifts-item-actions{opacity:1}@media (max-width: 640px){.entity-shifts-navigation{flex-direction:column;gap:12px;align-items:flex-start}.entity-shifts-item{flex-direction:column;align-items:flex-start;gap:8px}.entity-shifts-item-time{min-width:auto}.entity-shifts-item-actions{opacity:1;width:100%;justify-content:flex-end;padding-top:8px;border-top:1px solid var(--border);margin-top:4px}}.progress{width:100%}.progress-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--spacing-2)}.progress-label{font-size:var(--text-sm);color:var(--foreground);font-weight:var(--font-weight-medium)}.progress-value{font-size:var(--text-sm);color:var(--muted-foreground)}.progress-bar{width:100%;background-color:var(--muted);border-radius:var(--radius-full);overflow:hidden;position:relative}.progress-fill{height:100%;background-color:var(--primary);border-radius:var(--radius-full);transition:width var(--duration-normal) var(--ease-in-out)}.progress-indeterminate{width:30%;animation:progress-indeterminate 1.5s ease-in-out infinite}@keyframes progress-indeterminate{0%{transform:translate(-100%)}50%{transform:translate(400%)}to{transform:translate(400%)}}.progress-sm .progress-bar{height:4px}.progress-default .progress-bar{height:8px}.progress-lg .progress-bar{height:12px}.progress-success .progress-fill{background-color:var(--chart-2)}.progress-warning .progress-fill{background-color:var(--chart-3)}.progress-error .progress-fill{background-color:var(--destructive)}.staff-optimization-profile{display:flex;flex-direction:column;gap:1.5rem}.score-display{display:flex;align-items:baseline;gap:.25rem;margin-bottom:.5rem}.score-value{font-size:2.5rem;font-weight:700;line-height:1}.score-max{font-size:1rem;color:var(--text-tertiary)}.score-progress{margin-bottom:1rem}.reliability-content,.workload-content{display:flex;flex-direction:column}.reliability-details,.workload-details{display:flex;flex-direction:column;gap:.5rem;margin-top:.5rem}.detail-row{display:flex;justify-content:space-between;align-items:center;font-size:.85rem}.detail-row span:first-child{color:var(--text-secondary)}.detail-row span:last-child{color:var(--text-primary);font-weight:500}.trend-display{display:flex;align-items:center;gap:.25rem;text-transform:capitalize}.trend-improving{color:var(--success)}.trend-declining{color:var(--destructive)}.trend-stable{color:var(--text-tertiary)}.confidence-badge{margin-top:.75rem;align-self:flex-start;text-transform:capitalize}.workload-main{display:flex;align-items:baseline;gap:.25rem;margin-bottom:.5rem}.hours-worked{font-size:2rem;font-weight:700;color:var(--text-primary)}.hours-limit{font-size:.9rem;color:var(--text-tertiary)}.workload-progress{margin-bottom:1rem}.client-familiarity-content{padding:.5rem 0}.familiarity-list,.site-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:.5rem}.familiarity-item,.site-item{display:flex;justify-content:space-between;align-items:center;padding:.5rem;background:var(--bg-secondary);border-radius:6px}.client-name,.site-name{font-size:.875rem;font-weight:500;color:var(--text-primary)}.no-clients,.more-sites{font-size:.8rem;color:var(--text-tertiary);text-align:center;margin-top:.5rem}.site-relationships-content{padding:.5rem 0}.site-info{display:flex;align-items:center;gap:.5rem}.site-meta{display:flex;align-items:center;gap:.5rem;font-size:.75rem;color:var(--text-secondary)}.preference-preferred{color:var(--success)}.preference-avoid{color:var(--warning)}.travel-time{display:flex;align-items:center;gap:.25rem}.optimization-fields{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1rem}.field-group{display:flex;flex-direction:column;gap:.25rem}.field-group label{font-size:.75rem;font-weight:500;text-transform:uppercase;letter-spacing:.05em;color:var(--text-tertiary)}.field-group span{font-size:.9rem;color:var(--text-primary)}.field-notes{grid-column:1 / -1}.field-notes p{margin:0;font-size:.875rem;color:var(--text-secondary);padding:.5rem;background:var(--bg-secondary);border-radius:4px}.dark .familiarity-item,.dark .site-item,.dark .field-notes p{background:var(--card)}@media (max-width: 768px){.optimization-profile-grid{grid-template-columns:1fr}}.staff-detail{padding:var(--spacing-6);max-width:1400px;margin:0 auto}.staff-detail-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:var(--spacing-6);padding-bottom:var(--spacing-6);border-bottom:1px solid transparent;border-image:linear-gradient(to right,transparent,var(--border) 20%,var(--border) 80%,transparent) 1;gap:var(--spacing-4)}.staff-detail-header h1{margin:0 0 var(--spacing-2) 0;font-size:var(--text-3xl);font-weight:var(--font-weight-semibold);color:var(--foreground);letter-spacing:-.02em;line-height:1.15}.staff-detail-description{margin:0;color:var(--muted-foreground);font-size:var(--text-sm);line-height:1.6;max-width:60ch}.staff-detail-header-actions{display:flex;gap:var(--spacing-2);align-items:center}.staff-detail-tabs{display:flex;gap:var(--spacing-1);margin:0 0 var(--spacing-6) 0;padding:var(--spacing-1);background:var(--muted);border-radius:var(--radius-lg);overflow-x:auto;scrollbar-width:none;-ms-overflow-style:none}.staff-detail-tabs::-webkit-scrollbar{display:none}.staff-detail-tab{position:relative;padding:var(--spacing-2-5) var(--spacing-5);background:transparent;border:none;border-radius:var(--radius-md);cursor:pointer;font-size:var(--text-sm);font-weight:var(--font-weight-medium);color:var(--muted-foreground);transition:all var(--duration-normal) var(--ease-out);white-space:nowrap;outline:none;min-height:36px;display:inline-flex;align-items:center;justify-content:center}.staff-detail-tab:hover{color:var(--foreground);background:color-mix(in srgb,var(--card) 60%,transparent)}.staff-detail-tab:focus-visible{outline:2px solid var(--ring);outline-offset:2px}.staff-detail-tab.active{color:var(--primary);background:var(--card);box-shadow:0 1px 2px #0000000d,0 1px 3px #0000001a;font-weight:var(--font-weight-semibold)}.staff-detail-tab.active:after{content:"";position:absolute;bottom:-2px;left:50%;transform:translate(-50%);width:24px;height:2px;background:var(--primary);border-radius:var(--radius-full)}.staff-detail-content{min-height:400px}@media (max-width: 768px){.staff-detail{padding:var(--spacing-4)}.staff-detail-header{flex-direction:column;align-items:flex-start;margin-bottom:var(--spacing-4);padding-bottom:var(--spacing-4)}.staff-detail-header-actions{width:100%;justify-content:flex-end}.staff-detail-tabs{overflow-x:auto;-webkit-overflow-scrolling:touch}.staff-detail-tab{padding:var(--spacing-2) var(--spacing-3);font-size:var(--text-xs);min-height:32px}}.multi-select-wrapper{display:flex;flex-direction:column;gap:var(--spacing-1);width:100%;position:relative}.multi-select-label{font-size:var(--text-xs);font-weight:var(--font-weight-medium);color:var(--foreground);line-height:1.33;display:flex;align-items:center;gap:var(--spacing-1)}.multi-select-label-icon{display:flex;align-items:center;color:var(--muted-foreground)}.multi-select{position:relative;width:100%}.multi-select-trigger{display:flex;align-items:center;justify-content:space-between;width:100%;padding:var(--spacing-2) var(--spacing-3);border:1px solid var(--border);border-radius:var(--radius);background:var(--input-background);color:var(--foreground);font-size:var(--text-base);font-family:Inter,sans-serif;cursor:pointer;transition:all var(--duration-normal) var(--ease-in-out);outline:none;text-align:left;min-height:40px}.multi-select-trigger:hover:not(:disabled){border-color:var(--ring)}.multi-select-trigger:focus{border-color:var(--ring);box-shadow:0 0 0 2px color-mix(in srgb,var(--ring) 20%,transparent)}.multi-select-trigger:disabled{opacity:.5;cursor:not-allowed;background-color:var(--muted)}.multi-select-trigger-error{border-color:var(--destructive)}.multi-select-trigger-error:focus{border-color:var(--destructive);box-shadow:0 0 0 2px color-mix(in srgb,var(--destructive) 20%,transparent)}.multi-select-trigger-disabled{opacity:.5;cursor:not-allowed}.multi-select-trigger-open{border-color:var(--ring);box-shadow:0 0 0 2px color-mix(in srgb,var(--ring) 20%,transparent)}.multi-select-value-container{flex:1;display:flex;align-items:center;gap:var(--spacing-1);min-width:0}.multi-select-placeholder{color:var(--muted-foreground)}.multi-select-selected-chips{display:flex;align-items:center;gap:var(--spacing-1);flex-wrap:wrap;flex:1;min-width:0}.multi-select-chip{display:inline-flex;align-items:center;gap:var(--spacing-1);padding:var(--spacing-1) var(--spacing-2);background:var(--primary);color:var(--primary-foreground);border-radius:var(--radius-sm);font-size:var(--text-xs);font-weight:var(--font-weight-medium);white-space:nowrap;max-width:150px}.multi-select-chip-remove{display:flex;align-items:center;justify-content:center;padding:0;border:none;background:transparent;color:inherit;cursor:pointer;border-radius:var(--radius-sm);transition:background-color var(--duration-fast);flex-shrink:0}.multi-select-chip-remove:hover{background:color-mix(in srgb,currentColor 20%,transparent)}.multi-select-chip-more{display:inline-flex;align-items:center;padding:var(--spacing-1) var(--spacing-2);background:var(--muted);color:var(--muted-foreground);border-radius:var(--radius-sm);font-size:var(--text-xs);white-space:nowrap}.multi-select-arrow{width:16px;height:16px;color:var(--muted-foreground);transition:transform var(--duration-normal) var(--ease-in-out);flex-shrink:0}.multi-select-arrow-open{transform:rotate(180deg)}.multi-select-dropdown{position:absolute;top:calc(100% + var(--spacing-1));left:0;right:0;background:var(--popover);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--elevation-lg);z-index:9999;max-height:300px;display:flex;flex-direction:column;overflow:hidden;animation:slideDown var(--duration-fast) var(--ease-out);pointer-events:auto}.multi-select-search{padding:var(--spacing-2);border-bottom:1px solid var(--border)}.multi-select-search-input{width:100%;padding:var(--spacing-2);border:1px solid var(--border);border-radius:var(--radius);background:var(--input-background);color:var(--foreground);font-size:var(--text-sm);outline:none}.multi-select-search-input:focus{border-color:var(--ring);box-shadow:0 0 0 2px color-mix(in srgb,var(--ring) 20%,transparent)}.multi-select-actions{padding:var(--spacing-2);border-bottom:1px solid var(--border)}.multi-select-action{width:100%;padding:var(--spacing-1) var(--spacing-2);border:none;background:transparent;color:var(--primary);font-size:var(--text-xs);font-weight:var(--font-weight-medium);cursor:pointer;text-align:left;border-radius:var(--radius);transition:background-color var(--duration-normal) var(--ease-in-out)}.multi-select-action:hover{background:var(--muted)}.multi-select-list{flex:1;overflow-y:auto;padding:var(--spacing-1)}.multi-select-item{display:flex;align-items:center;gap:var(--spacing-2);padding:var(--spacing-2);border-radius:var(--radius);cursor:pointer;transition:background-color var(--duration-normal) var(--ease-in-out);user-select:none;-webkit-user-select:none}.multi-select-item:hover{background:var(--accent);color:var(--accent-foreground)}.multi-select-item-selected{background:color-mix(in srgb,var(--primary) 10%,transparent)}.multi-select-item-checkbox{display:flex;align-items:center;justify-content:center;width:18px;height:18px;border:2px solid var(--border);border-radius:var(--radius-sm);flex-shrink:0;transition:all var(--duration-normal) var(--ease-in-out)}.multi-select-item-selected .multi-select-item-checkbox{background:var(--primary);border-color:var(--primary)}.multi-select-item-check{width:12px;height:12px;color:var(--primary-foreground)}.multi-select-item-content{flex:1;font-size:var(--text-sm);color:var(--foreground);display:flex;align-items:center;gap:var(--spacing-2)}.multi-select-item-color{width:12px;height:12px;border-radius:50%;flex-shrink:0;border:1px solid var(--border)}.multi-select-empty{padding:var(--spacing-4);text-align:center;color:var(--muted-foreground);font-size:var(--text-sm)}.multi-select-error-message{font-size:var(--text-xs);color:var(--destructive);line-height:1.33}.multi-select-helper-text{font-size:var(--text-xs);color:var(--muted-foreground);line-height:1.33}.client-form-container{padding:var(--spacing-6);max-width:800px;margin:0 auto}.client-form-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--spacing-4)}.client-form-skeleton{display:flex;flex-direction:column;gap:var(--spacing-4)}.client-form-error{margin-bottom:var(--spacing-4)}.client-form-fields{display:flex;flex-direction:column;gap:var(--spacing-4)}.client-form-suggestions{margin-bottom:var(--spacing-4)}.client-form-checkbox-group{display:flex;flex-direction:column;gap:var(--spacing-1)}.client-form-checkbox-label{display:flex;align-items:center;gap:var(--spacing-2);font-size:.875rem;font-weight:500;color:var(--text-primary);cursor:pointer}.client-form-checkbox-label input[type=checkbox]{width:18px;height:18px;accent-color:var(--primary, #3b82f6);cursor:pointer}.client-form-textarea-group{display:flex;flex-direction:column;gap:var(--spacing-1)}.client-form-label{font-size:.875rem;font-weight:500;color:var(--text-primary)}.client-form-textarea{width:100%;padding:.75rem;font-size:.875rem;border:1px solid var(--border-color, #e2e8f0);border-radius:6px;background:var(--bg-primary, #ffffff);color:var(--text-primary);resize:vertical;min-height:80px;font-family:inherit;transition:border-color .2s ease,box-shadow .2s ease}.client-form-textarea:focus{outline:none;border-color:var(--primary, #3b82f6);box-shadow:0 0 0 3px #3b82f61a}.client-form-textarea::placeholder{color:var(--text-tertiary, #94a3b8)}.client-form-helper-text{font-size:.75rem;color:var(--text-secondary, #64748b)}.dark .client-form-label,.dark .client-form-checkbox-label{color:var(--foreground)}.dark .client-form-textarea{background:var(--input-background);border-color:var(--border);color:var(--foreground)}.dark .client-form-textarea::placeholder{color:var(--muted-foreground)}.dark .client-form-helper-text{color:var(--muted-foreground)}@media (max-width: 640px){.client-form-container{padding:var(--spacing-4)}}.profile-tab{padding:0}.profile-tab-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--spacing-6)}.profile-tab-header h2{margin:0;font-size:var(--text-xl);font-weight:var(--font-weight-semibold);color:var(--foreground)}.profile-tab-actions{display:flex;gap:var(--spacing-2)}.profile-tab-error{margin-bottom:var(--spacing-6)}.profile-tab-sections{display:flex;flex-direction:column;gap:var(--spacing-8)}.profile-tab-section{border-bottom:1px solid var(--border);padding-bottom:var(--spacing-6)}.profile-tab-section:last-child{border-bottom:none;padding-bottom:0}.profile-tab-section h3{margin:0 0 var(--spacing-4) 0;font-size:var(--text-base);font-weight:var(--font-weight-semibold);color:var(--foreground)}.profile-tab-form-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--spacing-4)}.profile-tab-form-group{display:flex;flex-direction:column;gap:var(--spacing-2)}.profile-tab-form-group.full-width{grid-column:1 / -1}.profile-tab-form-group label{font-size:var(--text-sm);font-weight:var(--font-weight-medium);color:var(--foreground)}.profile-tab-value{font-size:var(--text-sm);color:var(--muted-foreground);padding:var(--spacing-2) 0;min-height:38px;display:flex;align-items:center}.profile-tab-textarea{width:100%;padding:var(--spacing-2) var(--spacing-3);border:1px solid var(--border);border-radius:var(--radius-md);font-size:var(--text-sm);font-family:inherit;resize:vertical;min-height:100px;background:var(--input-background);color:var(--foreground)}.profile-tab-textarea:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px color-mix(in srgb,var(--ring) 30%,transparent)}@media (max-width: 768px){.profile-tab-form-grid{grid-template-columns:1fr}.profile-tab-header{flex-direction:column;align-items:flex-start;gap:var(--spacing-4)}.profile-tab-actions{width:100%;justify-content:flex-end}}.medical-tab{padding:0}.medical-tab-header{margin-bottom:var(--spacing-6)}.medical-tab-header h2{margin:0;font-size:var(--text-xl);font-weight:var(--font-weight-semibold);color:var(--foreground)}.medical-tab-error{margin-bottom:var(--spacing-6)}.medical-tab-section{margin-bottom:var(--spacing-8);padding-bottom:var(--spacing-6);border-bottom:1px solid var(--border)}.medical-tab-section:last-child{border-bottom:none;margin-bottom:0;padding-bottom:0}.medical-tab-section-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--spacing-4)}.medical-tab-section-header h3{margin:0;font-size:var(--text-base);font-weight:var(--font-weight-semibold);color:var(--foreground)}.medical-tab-empty{text-align:center;padding:var(--spacing-6);color:var(--muted-foreground)}.medical-tab-list{display:flex;flex-direction:column;gap:var(--spacing-3)}.medical-tab-item{display:flex;justify-content:space-between;align-items:center;padding:var(--spacing-4);border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--card)}.medical-tab-item-content{display:flex;align-items:center;gap:var(--spacing-3);flex:1;flex-wrap:wrap}.medical-tab-item-name{font-weight:var(--font-weight-medium);color:var(--foreground)}.medical-tab-badge{padding:var(--spacing-1) var(--spacing-2);border-radius:var(--radius-md);font-size:var(--text-xs);font-weight:var(--font-weight-medium);background:var(--muted);color:var(--muted-foreground)}.medical-tab-badge.severity-mild{background:color-mix(in srgb,var(--primary) 20%,transparent);color:var(--primary)}.medical-tab-badge.severity-moderate{background:color-mix(in srgb,var(--chart-3) 20%,transparent);color:var(--chart-3)}.medical-tab-badge.severity-severe,.medical-tab-badge.severity-profound{background:color-mix(in srgb,var(--destructive) 20%,transparent);color:var(--destructive)}.medical-tab-badge.priority-low{background:var(--muted);color:var(--muted-foreground)}.medical-tab-badge.priority-normal{background:color-mix(in srgb,var(--primary) 20%,transparent);color:var(--primary)}.medical-tab-badge.priority-high{background:color-mix(in srgb,var(--chart-3) 20%,transparent);color:var(--chart-3)}.medical-tab-badge.priority-critical{background:color-mix(in srgb,var(--destructive) 20%,transparent);color:var(--destructive)}.medical-tab-badge.warning{background:color-mix(in srgb,var(--chart-3) 20%,transparent);color:var(--chart-3)}.medical-tab-item-actions{display:flex;gap:var(--spacing-2)}.medical-tab-modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000}.medical-tab-modal{background:var(--card);border-radius:var(--radius-lg);width:90%;max-width:600px;max-height:90vh;overflow-y:auto;display:flex;flex-direction:column}.medical-tab-modal-header{display:flex;justify-content:space-between;align-items:center;padding:var(--spacing-5);border-bottom:1px solid var(--border)}.medical-tab-modal-header h3{margin:0;font-size:var(--text-lg);font-weight:var(--font-weight-semibold);color:var(--foreground)}.medical-tab-modal-content{padding:var(--spacing-5);display:flex;flex-direction:column;gap:var(--spacing-4)}.medical-tab-form-group{display:flex;flex-direction:column;gap:var(--spacing-2)}.medical-tab-form-group label{font-size:var(--text-sm);font-weight:var(--font-weight-medium);color:var(--foreground)}.medical-tab-textarea{width:100%;padding:var(--spacing-2) var(--spacing-3);border:1px solid var(--border);border-radius:var(--radius-md);font-size:var(--text-sm);font-family:inherit;resize:vertical;background:var(--input-background);color:var(--foreground)}.medical-tab-textarea:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px color-mix(in srgb,var(--ring) 30%,transparent)}.medical-tab-modal-footer{display:flex;justify-content:flex-end;gap:var(--spacing-2);padding:var(--spacing-5);border-top:1px solid var(--border)}.documents-tab{padding:0}.documents-tab-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--spacing-6)}.documents-tab-header h2{margin:0;font-size:var(--text-xl);font-weight:var(--font-weight-semibold);color:var(--foreground)}.documents-tab-error{margin-bottom:var(--spacing-6)}.documents-tab-filters{display:flex;gap:var(--spacing-4);margin-bottom:var(--spacing-6)}.documents-tab-empty{text-align:center;padding:var(--spacing-12);color:var(--muted-foreground)}.documents-tab-groups{display:flex;flex-direction:column;gap:var(--spacing-6)}.documents-tab-group h3{margin:0 0 var(--spacing-4) 0;font-size:var(--text-base);font-weight:var(--font-weight-semibold);color:var(--foreground);text-transform:capitalize}.documents-tab-list{display:flex;flex-direction:column;gap:var(--spacing-3)}.documents-tab-item{display:flex;align-items:center;gap:var(--spacing-4);padding:var(--spacing-4);border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--card)}.documents-tab-item-icon{color:var(--muted-foreground);flex-shrink:0}.documents-tab-item-content{flex:1;min-width:0}.documents-tab-item-name{font-weight:var(--font-weight-medium);color:var(--foreground);margin-bottom:var(--spacing-1)}.documents-tab-item-meta{display:flex;gap:var(--spacing-3);flex-wrap:wrap;font-size:var(--text-xs);color:var(--muted-foreground)}.documents-tab-item-meta .expired{color:var(--destructive);font-weight:var(--font-weight-medium)}.documents-tab-item-meta .family-visible{color:var(--chart-2)}.documents-tab-item-meta .confidential{color:var(--chart-3)}.documents-tab-item-actions{display:flex;gap:var(--spacing-2);flex-shrink:0}.documents-tab-modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000}.documents-tab-modal{background:var(--card);border-radius:var(--radius-lg);width:90%;max-width:600px;max-height:90vh;overflow-y:auto;display:flex;flex-direction:column}.documents-tab-modal-header{display:flex;justify-content:space-between;align-items:center;padding:var(--spacing-5);border-bottom:1px solid var(--border)}.documents-tab-modal-header h3{margin:0;font-size:var(--text-lg);font-weight:var(--font-weight-semibold);color:var(--foreground)}.documents-tab-modal-content{padding:var(--spacing-5);display:flex;flex-direction:column;gap:var(--spacing-4)}.documents-tab-form-group{display:flex;flex-direction:column;gap:var(--spacing-2)}.documents-tab-form-group label{font-size:var(--text-sm);font-weight:var(--font-weight-medium);color:var(--foreground)}.documents-tab-file-info{font-size:var(--text-xs);color:var(--muted-foreground);margin-top:var(--spacing-1)}.documents-tab-textarea{width:100%;padding:var(--spacing-2) var(--spacing-3);border:1px solid var(--border);border-radius:var(--radius-md);font-size:var(--text-sm);font-family:inherit;resize:vertical;background:var(--input-background);color:var(--foreground)}.documents-tab-textarea:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px color-mix(in srgb,var(--ring) 30%,transparent)}.documents-tab-modal-footer{display:flex;justify-content:flex-end;gap:var(--spacing-2);padding:var(--spacing-5);border-top:1px solid var(--border)}@media (max-width: 768px){.documents-tab-filters{flex-direction:column}.documents-tab-item{flex-direction:column;align-items:flex-start}.documents-tab-item-actions{width:100%;justify-content:flex-end}}.family-members-tab{padding:0}.family-members-tab-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--spacing-6)}.family-members-tab-header h2{margin:0;font-size:var(--text-xl);font-weight:var(--font-weight-semibold);color:var(--foreground)}.family-members-tab-error{margin-bottom:var(--spacing-6)}.family-members-tab-empty{text-align:center;padding:var(--spacing-12);color:var(--muted-foreground)}.family-members-tab-list{display:flex;flex-direction:column;gap:var(--spacing-4)}.family-members-tab-item{display:flex;justify-content:space-between;align-items:flex-start;padding:var(--spacing-5);border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--card);gap:var(--spacing-4)}.family-members-tab-item-content{flex:1;min-width:0}.family-members-tab-item-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:var(--spacing-3);gap:var(--spacing-3)}.family-members-tab-item-header h3{margin:0;font-size:var(--text-lg);font-weight:var(--font-weight-semibold);color:var(--foreground)}.family-members-tab-badges{display:flex;gap:var(--spacing-2);flex-wrap:wrap}.family-members-tab-badge{padding:var(--spacing-1) var(--spacing-2);border-radius:var(--radius-md);font-size:var(--text-xs);font-weight:var(--font-weight-medium)}.family-members-tab-badge.primary{background:color-mix(in srgb,var(--primary) 20%,transparent);color:var(--primary)}.family-members-tab-badge.emergency{background:color-mix(in srgb,var(--destructive) 20%,transparent);color:var(--destructive)}.family-members-tab-badge.portal{background:color-mix(in srgb,var(--chart-2) 20%,transparent);color:var(--chart-2)}.family-members-tab-item-details{display:flex;flex-direction:column;gap:var(--spacing-2);margin-bottom:var(--spacing-3);font-size:var(--text-sm);color:var(--muted-foreground)}.family-members-tab-item-permissions{display:flex;gap:var(--spacing-3);flex-wrap:wrap;font-size:var(--text-xs);color:var(--muted-foreground)}.family-members-tab-item-actions{display:flex;gap:var(--spacing-2);flex-shrink:0;flex-wrap:wrap}.family-members-tab-modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000}.family-members-tab-modal{background:var(--card);border-radius:var(--radius-lg);width:90%;max-width:600px;max-height:90vh;overflow-y:auto;display:flex;flex-direction:column}.family-members-tab-modal-header{display:flex;justify-content:space-between;align-items:center;padding:var(--spacing-5);border-bottom:1px solid var(--border)}.family-members-tab-modal-header h3{margin:0;font-size:var(--text-lg);font-weight:var(--font-weight-semibold);color:var(--foreground)}.family-members-tab-modal-content{padding:var(--spacing-5);display:flex;flex-direction:column;gap:var(--spacing-4)}.family-members-tab-form-group{display:flex;flex-direction:column;gap:var(--spacing-2)}.family-members-tab-form-group label{font-size:var(--text-sm);font-weight:var(--font-weight-medium);color:var(--foreground)}.family-members-tab-modal-footer{display:flex;justify-content:flex-end;gap:var(--spacing-2);padding:var(--spacing-5);border-top:1px solid var(--border)}@media (max-width: 768px){.family-members-tab-item{flex-direction:column}.family-members-tab-item-actions{width:100%;justify-content:flex-end}}.relationships-tab{padding:0}.relationships-tab-header{margin-bottom:var(--spacing-6)}.relationships-tab-header h2{margin:0 0 var(--spacing-2) 0;font-size:var(--text-xl);font-weight:var(--font-weight-semibold);color:var(--foreground)}.relationships-tab-description{margin:0;color:var(--muted-foreground);font-size:var(--text-sm)}.relationships-tab-empty{text-align:center;padding:var(--spacing-12);color:var(--muted-foreground)}.relationships-tab-list{display:flex;flex-direction:column;gap:var(--spacing-4)}.relationships-tab-item{padding:var(--spacing-5);border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--card)}.relationships-tab-item-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--spacing-4)}.relationships-tab-item-header h3{margin:0;font-size:var(--text-lg);font-weight:var(--font-weight-semibold);color:var(--foreground)}.relationships-tab-score{font-size:var(--text-base);font-weight:var(--font-weight-semibold);color:var(--foreground)}.relationships-tab-item-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:var(--spacing-4);margin-bottom:var(--spacing-3)}.relationships-tab-stat{display:flex;flex-direction:column;gap:var(--spacing-1)}.relationships-tab-stat-label{font-size:var(--text-xs);color:var(--muted-foreground);text-transform:uppercase;letter-spacing:.05em}.relationships-tab-stat-value{font-size:var(--text-lg);font-weight:var(--font-weight-semibold);color:var(--foreground)}.relationships-tab-stat-value.warning{color:var(--destructive)}.relationships-tab-item-footer{padding-top:var(--spacing-3);border-top:1px solid var(--border);font-size:var(--text-xs);color:var(--muted-foreground)}@media (max-width: 768px){.relationships-tab-item-stats{grid-template-columns:1fr}}.client-optimization-profile{display:flex;flex-direction:column;gap:1.5rem}.optimization-profile-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:1rem}.optimization-card{height:100%}.optimization-card-title{display:flex;align-items:center;gap:.5rem;font-size:.95rem}.optimization-card-title.preferred{color:var(--success)}.optimization-card-title.blocked{color:var(--destructive)}.service-types-content{padding:.5rem 0}.service-types-list{display:flex;flex-wrap:wrap;gap:.5rem}.staffing-requirements{display:flex;flex-direction:column;gap:1rem;padding:.5rem 0}.requirement-row{display:flex;justify-content:space-between;align-items:center}.requirement-label{font-size:.875rem;color:var(--text-secondary)}.familiar-staff-content{padding:.5rem 0}.familiar-staff-list,.staff-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:.5rem}.familiar-staff-item,.staff-item{display:flex;justify-content:space-between;align-items:center;padding:.5rem .75rem;background:var(--bg-secondary);border-radius:6px}.staff-name{font-size:.875rem;font-weight:500;color:var(--text-primary)}.staff-preferences-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:1rem}.half-card{min-height:150px}.staff-list-content{padding:.25rem 0}.staff-item{justify-content:flex-start;gap:.5rem}.staff-item.preferred{border-left:3px solid var(--success)}.staff-item.blocked{border-left:3px solid var(--destructive)}.icon-preferred{color:var(--success);fill:var(--success)}.icon-blocked{color:var(--destructive)}.no-data{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:2rem 1rem;color:var(--text-tertiary);text-align:center}.no-data.small{padding:1rem}.no-data p{margin:.5rem 0 0;font-size:.875rem}.optimization-summary-card{margin-top:.5rem}.special-notes{margin:0;font-size:.9rem;color:var(--text-secondary);padding:.75rem;background:var(--bg-secondary);border-radius:6px;border-left:3px solid var(--primary)}.dark .familiar-staff-item,.dark .staff-item,.dark .special-notes{background:var(--card)}@media (max-width: 768px){.optimization-profile-grid,.staff-preferences-row{grid-template-columns:1fr}}.client-detail{padding:var(--spacing-6);max-width:1400px;margin:0 auto}.client-detail-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:var(--spacing-6);padding-bottom:var(--spacing-6);border-bottom:1px solid transparent;border-image:linear-gradient(to right,transparent,var(--border) 20%,var(--border) 80%,transparent) 1;gap:var(--spacing-4)}.client-detail-header h1{margin:0 0 var(--spacing-2) 0;font-size:var(--text-3xl);font-weight:var(--font-weight-semibold);color:var(--foreground);letter-spacing:-.02em;line-height:1.15}.client-detail-description{margin:0;color:var(--muted-foreground);font-size:var(--text-sm);line-height:1.6;max-width:60ch}.client-detail-header-actions{display:flex;gap:var(--spacing-2);align-items:center}.client-detail-tabs{display:flex;gap:var(--spacing-1);margin:0 0 var(--spacing-6) 0;padding:var(--spacing-1);background:var(--muted);border-radius:var(--radius-lg);overflow-x:auto;scrollbar-width:none;-ms-overflow-style:none}.client-detail-tabs::-webkit-scrollbar{display:none}.client-detail-tab{position:relative;padding:var(--spacing-2-5) var(--spacing-5);background:transparent;border:none;border-radius:var(--radius-md);cursor:pointer;font-size:var(--text-sm);font-weight:var(--font-weight-medium);color:var(--muted-foreground);transition:all var(--duration-normal) var(--ease-out);white-space:nowrap;outline:none;min-height:36px;display:inline-flex;align-items:center;justify-content:center}.client-detail-tab:hover{color:var(--foreground);background:color-mix(in srgb,var(--card) 60%,transparent)}.client-detail-tab:focus-visible{outline:2px solid var(--ring);outline-offset:2px}.client-detail-tab.active{color:var(--primary);background:var(--card);box-shadow:0 1px 2px #0000000d,0 1px 3px #0000001a;font-weight:var(--font-weight-semibold)}.client-detail-tab.active:after{content:"";position:absolute;bottom:-2px;left:50%;transform:translate(-50%);width:24px;height:2px;background:var(--primary);border-radius:var(--radius-full)}.client-detail-content{min-height:400px}@media (max-width: 768px){.client-detail{padding:var(--spacing-4)}.client-detail-header{flex-direction:column;align-items:flex-start;margin-bottom:var(--spacing-4);padding-bottom:var(--spacing-4)}.client-detail-header-actions{width:100%;justify-content:flex-end}.client-detail-tabs{-webkit-overflow-scrolling:touch}.client-detail-tab{padding:var(--spacing-2) var(--spacing-3);font-size:var(--text-xs);min-height:32px}}.family-dashboard{padding:20px;max-width:1400px;margin:0 auto}.family-dashboard-header{margin-bottom:24px}.family-dashboard-header h1{margin:0 0 8px;font-size:28px;font-weight:600;color:#1a1a1a}.family-dashboard-description{margin:0;color:#666;font-size:14px}.site-management{padding:24px}.site-management-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:24px}.site-management-header h2{margin:0 0 8px;font-size:24px;font-weight:600}.site-management-header p{margin:0;color:var(--muted-foreground)}.site-management-actions{display:flex;gap:12px}.site-management-skeleton{display:flex;flex-direction:column;gap:12px}.site-management-filters{display:flex;gap:16px;margin-bottom:24px;padding:16px;background:var(--accent, #f3f4f6);border-radius:8px;flex-wrap:wrap}.site-management-filter-group{display:flex;flex-direction:column;gap:8px;min-width:200px}.site-management-filter-label{display:flex;align-items:center;gap:6px;font-size:14px;font-weight:500;color:var(--foreground, #111827)}@media (max-width: 768px){.site-management-filters{flex-direction:column}.site-management-filter-group{width:100%}}.site-form-container{padding:24px}.site-form-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px}.site-form-skeleton,.site-form-fields{display:flex;flex-direction:column;gap:16px}.site-form-row{display:grid;grid-template-columns:2fr 1fr 1fr;gap:16px}@media (max-width: 768px){.site-form-row{grid-template-columns:1fr}}.site-form-error{margin-bottom:16px}.site-form-section{margin-top:24px;padding-top:24px;border-top:1px solid var(--border-color, #e5e7eb)}.site-form-section-title{font-size:16px;font-weight:600;margin-bottom:16px;color:var(--foreground, #111827)}.site-form-field{display:flex;flex-direction:column;gap:8px}.site-form-label{font-size:14px;font-weight:500;color:var(--foreground, #111827)}.site-form-textarea{width:100%;padding:8px 12px;border:1px solid var(--border-color, #d1d5db);border-radius:6px;font-size:14px;font-family:inherit;resize:vertical;min-height:80px}.site-form-textarea:focus{outline:none;border-color:var(--primary, #3b82f6);box-shadow:0 0 0 3px #3b82f61a}.site-form-help-text{font-size:12px;color:var(--muted-foreground, #6b7280);margin:0}.certification-input-group{display:flex;gap:8px;align-items:flex-start}.certification-input-group .input-wrapper{flex:1}.certification-tags{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px}.certification-tag{display:inline-flex;align-items:center;gap:6px;padding:4px 8px;background-color:var(--secondary, #f3f4f6);border:1px solid var(--border-color, #d1d5db);border-radius:4px;font-size:13px}.certification-remove{display:inline-flex;align-items:center;justify-content:center;padding:0;background:none;border:none;cursor:pointer;color:var(--muted-foreground, #6b7280);transition:color .2s}.certification-remove:hover{color:var(--destructive, #ef4444)}.certification-remove:focus{outline:2px solid var(--primary, #3b82f6);outline-offset:2px;border-radius:2px}.site-form-select{width:100%;padding:8px 12px;border:1px solid var(--border-color, #d1d5db);border-radius:6px;font-size:14px;font-family:inherit;background-color:#fff}.site-form-select:focus{outline:none;border-color:var(--primary, #3b82f6);box-shadow:0 0 0 3px #3b82f61a}.site-form-checkbox-wrapper{display:flex;align-items:center;gap:8px;padding:8px 0}.site-form-checkbox{width:18px;height:18px;cursor:pointer}.site-form-checkbox-label{font-size:14px;color:var(--foreground, #111827);cursor:pointer}.site-form-json-textarea{font-family:Monaco,Menlo,Ubuntu Mono,monospace;font-size:13px}.staff-site-assignment-panel{width:100%}.assignment-error{margin-bottom:var(--spacing-4)}.assignment-columns{display:grid;grid-template-columns:1fr auto 1fr;gap:var(--spacing-4);min-height:400px}.assignment-column{display:flex;flex-direction:column;max-height:600px}.column-title{display:flex;align-items:center;gap:var(--spacing-2);font-size:var(--text-base)}.column-search{margin-bottom:var(--spacing-3)}.selection-actions{display:flex;align-items:center;gap:var(--spacing-2);padding:var(--spacing-2) var(--spacing-3);background:var(--primary-bg);border-radius:var(--radius);margin-bottom:var(--spacing-3);font-size:var(--text-sm)}.bulk-actions{margin-bottom:var(--spacing-2)}.staff-list{flex:1;overflow-y:auto;display:flex;flex-direction:column;gap:var(--spacing-2)}.empty-list{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--spacing-8);text-align:center;color:var(--muted-foreground);gap:var(--spacing-2)}.empty-hint{font-size:var(--text-sm)}.skeleton-list{display:flex;flex-direction:column;gap:var(--spacing-2);margin-top:var(--spacing-4)}.staff-card{display:flex;align-items:flex-start;gap:var(--spacing-3);padding:var(--spacing-3);background:var(--card);border:1px solid var(--border);border-radius:var(--radius);transition:all .2s}.staff-card.available{cursor:pointer}.staff-card.available:hover{border-color:var(--primary);background:var(--accent)}.staff-card.available.selected{border-color:var(--primary);background:var(--primary-bg)}.staff-checkbox{padding-top:2px}.staff-checkbox input[type=checkbox]{width:18px;height:18px;cursor:pointer}.staff-info{flex:1;min-width:0}.staff-name-row{display:flex;align-items:center;gap:var(--spacing-2)}.staff-name{font-weight:var(--font-weight-medium);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.primary-icon{color:var(--warning);flex-shrink:0}.staff-meta{display:flex;flex-wrap:wrap;align-items:center;gap:var(--spacing-1);margin-top:var(--spacing-1)}.staff-email{font-size:var(--text-xs);color:var(--muted-foreground)}.staff-travel{display:flex;align-items:center;gap:var(--spacing-1);font-size:var(--text-xs);color:var(--muted-foreground);margin-top:var(--spacing-1)}.staff-actions{display:flex;gap:var(--spacing-1)}.remove-btn:hover{color:var(--destructive)}.transfer-arrows{display:flex;flex-direction:column;align-items:center;justify-content:center;color:var(--muted-foreground);gap:var(--spacing-2)}.staff-edit-form{width:100%}.edit-form-header{margin-bottom:var(--spacing-3);padding-bottom:var(--spacing-2);border-bottom:1px solid var(--border)}.edit-form-fields{display:flex;flex-direction:column;gap:var(--spacing-3)}.edit-field{display:flex;flex-direction:column;gap:var(--spacing-1)}.edit-field label{font-size:var(--text-xs);font-weight:var(--font-weight-medium);color:var(--muted-foreground)}.checkbox-field label{display:flex;align-items:center;gap:var(--spacing-2);cursor:pointer;font-size:var(--text-sm);color:var(--foreground)}.checkbox-field input[type=checkbox]{width:16px;height:16px}.edit-form-actions{display:flex;justify-content:flex-end;gap:var(--spacing-2);margin-top:var(--spacing-4);padding-top:var(--spacing-3);border-top:1px solid var(--border)}.assignment-legend{display:flex;align-items:center;gap:var(--spacing-2);margin-top:var(--spacing-4);padding:var(--spacing-2) var(--spacing-3);background:var(--muted);border-radius:var(--radius);font-size:var(--text-sm)}.legend-title{color:var(--muted-foreground);margin-right:var(--spacing-2)}@media (max-width: 768px){.assignment-columns{grid-template-columns:1fr}.transfer-arrows{flex-direction:row;padding:var(--spacing-2) 0}.assignment-column{max-height:350px}}.staff-list::-webkit-scrollbar{width:6px}.staff-list::-webkit-scrollbar-track{background:var(--muted);border-radius:3px}.staff-list::-webkit-scrollbar-thumb{background:var(--border);border-radius:3px}.staff-list::-webkit-scrollbar-thumb:hover{background:var(--muted-foreground)}.asset-list{display:flex;flex-direction:column;gap:var(--spacing-3)}.asset-list-empty{padding:var(--spacing-6);text-align:center;color:var(--muted-foreground)}.asset-list-item{display:flex;justify-content:space-between;align-items:flex-start;padding:var(--spacing-4);border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--card);transition:box-shadow var(--duration-normal) var(--ease-out)}.asset-list-item:hover{box-shadow:var(--elevation-sm)}.asset-list-item-content{flex:1}.asset-list-item-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:var(--spacing-2);gap:var(--spacing-3)}.asset-list-item-name{margin:0;font-size:var(--text-base);font-weight:var(--font-weight-semibold);color:var(--foreground)}.asset-list-item-badges{display:flex;gap:var(--spacing-1-5);flex-wrap:wrap}.asset-list-item-details{display:flex;flex-wrap:wrap;gap:var(--spacing-4);margin-top:var(--spacing-2);font-size:var(--text-sm)}.asset-list-item-detail{display:flex;gap:var(--spacing-1-5)}.asset-list-item-label{font-weight:var(--font-weight-medium);color:var(--muted-foreground)}.asset-list-item-warning{color:var(--destructive);font-weight:var(--font-weight-medium)}.asset-list-item-notes{margin-top:var(--spacing-2);padding-top:var(--spacing-2);border-top:1px solid var(--border);font-size:13px;color:var(--muted-foreground);font-style:italic}.asset-list-item-actions{display:flex;gap:var(--spacing-2);margin-left:var(--spacing-4)}@media (max-width: 768px){.asset-list-item{flex-direction:column}.asset-list-item-actions{margin-left:0;margin-top:12px;width:100%}.asset-list-item-header{flex-direction:column;align-items:flex-start}}.site-detail-container{padding:var(--spacing-6);max-width:800px;margin:0 auto}.site-detail-header{margin-bottom:var(--spacing-4)}.site-detail-skeleton{display:flex;flex-direction:column;gap:var(--spacing-4)}.site-detail-title-row{display:flex;justify-content:space-between;align-items:flex-start;gap:var(--spacing-4)}.site-detail-info{display:flex;flex-direction:column;gap:var(--spacing-6)}.site-detail-info-item{display:flex;gap:var(--spacing-3);align-items:flex-start}.site-detail-icon{width:20px;height:20px;color:var(--muted-foreground);flex-shrink:0;margin-top:2px}.site-detail-label{font-size:var(--text-sm);color:var(--muted-foreground);margin-bottom:var(--spacing-1)}.site-detail-value{font-size:var(--text-base);font-weight:var(--font-weight-medium);color:var(--foreground)}.site-detail-actions{margin-top:var(--spacing-4)}.assigned-clients-list{display:flex;flex-wrap:wrap;gap:var(--spacing-2)}.client-badge{display:inline-flex;align-items:center;gap:var(--spacing-1)}.remove-client-btn{padding:0;width:16px;height:16px;min-width:16px}.site-detail-assign-client{display:flex;gap:var(--spacing-2);align-items:flex-end;margin-top:var(--spacing-4)}.site-detail-assign-client .select-wrapper{flex:1}.site-detail-tabs{display:flex;gap:var(--spacing-1);border-bottom:1px solid var(--border);margin:var(--spacing-6) 0 var(--spacing-4) 0}.site-detail-tab{display:flex;align-items:center;gap:var(--spacing-2);padding:var(--spacing-3) var(--spacing-4);background:none;border:none;border-bottom:2px solid transparent;color:var(--muted-foreground);font-size:var(--text-sm);font-weight:var(--font-weight-medium);cursor:pointer;transition:all .2s}.site-detail-tab:hover{color:var(--foreground);background:var(--accent)}.site-detail-tab.active{color:var(--primary);border-bottom-color:var(--primary)}.site-detail-tab-content{padding:var(--spacing-4) 0}.site-detail-section{margin:var(--spacing-6) 0;padding-top:var(--spacing-6);border-top:1px solid var(--border)}.site-detail-section-title{font-size:var(--text-lg);font-weight:var(--font-weight-semibold);color:var(--foreground);margin-bottom:var(--spacing-4)}.site-detail-info-item-full{flex-direction:column;gap:var(--spacing-2)}.site-detail-notes{white-space:pre-wrap;line-height:1.6;padding:var(--spacing-3);background:var(--accent);border-radius:var(--radius);font-weight:var(--font-weight-normal)}.certification-badges{display:flex;flex-wrap:wrap;gap:var(--spacing-2)}.certification-badge{font-size:var(--text-sm)}.site-detail-phone-link{color:var(--primary, #3b82f6);text-decoration:none}.site-detail-phone-link:hover{text-decoration:underline}.site-detail-json{background:var(--accent, #f3f4f6);padding:var(--spacing-3);border-radius:var(--radius);font-family:Monaco,Menlo,Ubuntu Mono,monospace;font-size:var(--text-sm);white-space:pre-wrap;word-wrap:break-word;margin:0}.site-detail-operating-hours{display:flex;flex-direction:column;gap:var(--spacing-2)}.site-detail-hours-row{display:flex;gap:var(--spacing-2)}.site-detail-hours-day{font-weight:var(--font-weight-medium);min-width:80px}.site-detail-hours-time{color:var(--muted-foreground, #6b7280)}@media (max-width: 640px){.site-detail-container{padding:var(--spacing-4);max-width:100%}.site-detail-assign-client{flex-direction:column;align-items:stretch}.site-detail-tabs{overflow-x:auto}.site-detail-tab{white-space:nowrap}}.site-detail-assets-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:24px;padding-bottom:16px;border-bottom:1px solid var(--border-color, #e5e7eb)}.site-detail-assets-header h3{margin:0 0 4px;font-size:18px;font-weight:600;color:var(--foreground, #111827)}.site-detail-assets-header p{margin:0;font-size:14px;color:var(--muted-foreground, #6b7280)}.site-detail-loading{padding:24px;text-align:center;color:var(--muted-foreground, #6b7280)}.shift-view-container{padding:var(--spacing-6);max-width:800px;margin:0 auto}.shift-view-header{margin-bottom:var(--spacing-4)}.shift-view-skeleton{display:flex;flex-direction:column;gap:var(--spacing-4)}.shift-view-info{display:flex;flex-direction:column;gap:var(--spacing-6);margin-bottom:var(--spacing-6)}.shift-view-info-item{display:flex;gap:var(--spacing-3);align-items:flex-start}.shift-view-icon{width:20px;height:20px;color:var(--muted-foreground);flex-shrink:0;margin-top:2px}.shift-view-icon-small{width:16px;height:16px;color:var(--muted-foreground);flex-shrink:0}.shift-view-label{font-size:var(--text-sm);color:var(--muted-foreground);margin-bottom:var(--spacing-1)}.shift-view-value{font-size:var(--text-base);font-weight:var(--font-weight-medium);color:var(--foreground)}.shift-view-assignments{margin-top:var(--spacing-6);padding-top:var(--spacing-6);border-top:1px solid var(--border)}.shift-view-section-title{font-size:var(--text-lg);font-weight:var(--font-weight-semibold);margin:0 0 var(--spacing-4) 0;color:var(--foreground)}.shift-view-assignments-list{display:flex;flex-direction:column;gap:var(--spacing-3)}.shift-view-assignment-card{margin:0}.shift-view-assignment-info{display:flex;flex-direction:column;gap:var(--spacing-2)}.shift-view-assignment-item{display:flex;align-items:center;gap:var(--spacing-2);font-size:var(--text-sm);color:var(--foreground)}.shift-view-no-assignments,.shift-view-forms{margin-top:var(--spacing-6);padding-top:var(--spacing-6);border-top:1px solid var(--border)}.shift-view-forms-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--spacing-4)}.shift-view-forms-table,.shift-view-actions{margin-top:var(--spacing-4)}@media (max-width: 640px){.shift-view-container{padding:var(--spacing-4)}}.shift-type-selector{width:100%}.shift-type-selector__grid,.shift-type-selector__loading{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:var(--spacing-3)}.shift-type-selector__error{display:flex;align-items:center;gap:var(--spacing-2);padding:var(--spacing-4);color:var(--destructive);background:hsl(var(--destructive-hsl) / .1);border-radius:var(--radius-md);font-size:var(--font-size-sm)}.shift-type-selector__empty{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--spacing-8);text-align:center;color:var(--muted-foreground)}.shift-type-selector__empty p{margin:0 0 var(--spacing-2)}.shift-type-selector__empty-link{color:var(--primary);text-decoration:none;font-size:var(--font-size-sm)}.shift-type-selector__empty-link:hover{text-decoration:underline}.shift-type-card{position:relative;display:flex;align-items:flex-start;gap:var(--spacing-3);padding:var(--spacing-4);background:var(--card);border:2px solid var(--border);border-radius:var(--radius-lg);cursor:pointer;transition:all var(--duration-fast) var(--ease-out)}.shift-type-card:hover{border-color:var(--muted-foreground);background:var(--accent)}.shift-type-card:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px hsl(var(--primary-hsl) / .1)}.shift-type-card--selected{border-color:var(--primary);background:hsl(var(--primary-hsl) / .05)}.shift-type-card--selected:hover{border-color:var(--primary);background:hsl(var(--primary-hsl) / .1)}.shift-type-card--custom{border-style:dashed}.shift-type-card--custom .shift-type-card__icon{color:var(--muted-foreground)}.shift-type-card--skeleton{pointer-events:none}.shift-type-card__check{position:absolute;top:var(--spacing-2);right:var(--spacing-2);display:flex;align-items:center;justify-content:center;width:20px;height:20px;background:var(--primary);color:var(--primary-foreground);border-radius:50%}.shift-type-card__icon{display:flex;align-items:center;justify-content:center;width:40px;height:40px;font-size:var(--font-size-xl);flex-shrink:0}.shift-type-card__content{flex:1;min-width:0}.shift-type-card__name{margin:0;font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);color:var(--foreground);line-height:1.3}.shift-type-card__time{display:flex;align-items:center;gap:var(--spacing-1);margin-top:var(--spacing-1);font-size:var(--font-size-xs);color:var(--muted-foreground)}.shift-type-card__description{margin:var(--spacing-1) 0 0;font-size:var(--font-size-xs);color:var(--muted-foreground);line-height:1.4;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.shift-type-card__duration{position:absolute;bottom:var(--spacing-2);right:var(--spacing-2);font-size:10px}.skeleton-pulse{background:linear-gradient(90deg,var(--muted) 0%,hsl(var(--muted-hsl) / .5) 50%,var(--muted) 100%);background-size:200% 100%;animation:skeleton-shimmer 1.5s infinite;border-radius:var(--radius-sm)}@keyframes skeleton-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}@media (max-width: 640px){.shift-type-selector__grid{grid-template-columns:1fr}}.time-range-picker{display:flex;flex-direction:column;gap:16px}.time-range-picker__inputs{display:flex;align-items:flex-end;gap:12px;flex-wrap:wrap}.time-range-picker__field{display:flex;flex-direction:column;gap:4px;flex:1;min-width:120px}.time-range-picker__label{display:flex;align-items:center;gap:6px;font-size:.875rem;font-weight:500;color:var(--color-text-secondary, #64748b)}.time-range-picker__input{padding:8px 12px;border:1px solid var(--color-border, #e2e8f0);border-radius:6px;font-size:.875rem;background:var(--color-background, #fff);color:var(--color-text, #1e293b);transition:border-color .15s,box-shadow .15s}.time-range-picker__input:focus{outline:none;border-color:var(--color-primary, #3b82f6);box-shadow:0 0 0 3px #3b82f61a}.time-range-picker__input:disabled{background:var(--color-muted, #f1f5f9);cursor:not-allowed}.time-range-picker__separator{padding-bottom:10px;color:var(--color-text-secondary, #64748b);font-size:.875rem}.time-range-picker__duration{display:flex;align-items:center;gap:8px;padding:8px 12px;background:var(--color-muted, #f8fafc);border-radius:6px}.time-range-picker__duration-label{font-size:.8125rem;color:var(--color-text-secondary, #64748b)}.time-range-picker__duration-value{font-size:.875rem;font-weight:500;color:var(--color-text, #1e293b)}.time-range-picker__overnight{font-size:.75rem;color:var(--color-warning, #f59e0b);font-weight:400}.time-range-picker__presets{display:flex;flex-direction:column;gap:8px}.time-range-picker__presets-label{font-size:.8125rem;color:var(--color-text-secondary, #64748b)}.time-range-picker__presets-list{display:flex;flex-wrap:wrap;gap:6px}.time-range-picker__preset{padding:6px 10px;font-size:.75rem;font-weight:500;border:1px solid var(--color-border, #e2e8f0);border-radius:4px;background:var(--color-background, #fff);color:var(--color-text-secondary, #64748b);cursor:pointer;transition:all .15s}.time-range-picker__preset:hover:not(:disabled){border-color:var(--color-primary, #3b82f6);color:var(--color-primary, #3b82f6)}.time-range-picker__preset.active{background:var(--color-primary, #3b82f6);border-color:var(--color-primary, #3b82f6);color:#fff}.time-range-picker__preset:disabled{opacity:.5;cursor:not-allowed}.client-selector{position:relative}.client-selector__trigger{display:flex;align-items:center;width:100%;padding:10px 12px;background:var(--color-background, #fff);border:1px solid var(--color-border, #e2e8f0);border-radius:6px;font-size:.875rem;text-align:left;cursor:pointer;transition:border-color .15s,box-shadow .15s}.client-selector__trigger:hover:not(:disabled){border-color:var(--color-primary, #3b82f6)}.client-selector__trigger:focus{outline:none;border-color:var(--color-primary, #3b82f6);box-shadow:0 0 0 3px #3b82f61a}.client-selector__trigger:disabled{background:var(--color-muted, #f1f5f9);cursor:not-allowed}.client-selector__loading{display:flex;align-items:center;gap:8px;color:var(--color-text-secondary, #64748b)}.client-selector__spinner{animation:spin 1s linear infinite}.client-selector__selected{display:flex;align-items:center;gap:8px;color:var(--color-text, #1e293b)}.client-selector__placeholder{color:var(--color-text-secondary, #64748b)}.client-selector__dropdown{position:absolute;top:100%;left:0;right:0;margin-top:4px;background:var(--color-background, #fff);border:1px solid var(--color-border, #e2e8f0);border-radius:6px;box-shadow:0 4px 12px #0000001a;z-index:50;max-height:300px;overflow:hidden;display:flex;flex-direction:column}.client-selector__search{display:flex;align-items:center;gap:8px;padding:8px 12px;border-bottom:1px solid var(--color-border, #e2e8f0);color:var(--color-text-secondary, #64748b)}.client-selector__search-input{flex:1;border:none;outline:none;font-size:.875rem;background:transparent;color:var(--color-text, #1e293b)}.client-selector__search-input::placeholder{color:var(--color-text-secondary, #94a3b8)}.client-selector__options{flex:1;overflow-y:auto;padding:4px}.client-selector__empty{padding:16px;text-align:center;color:var(--color-text-secondary, #64748b);font-size:.875rem}.client-selector__option{display:flex;align-items:center;justify-content:space-between;width:100%;padding:8px 10px;border:none;background:transparent;border-radius:4px;font-size:.875rem;text-align:left;cursor:pointer;transition:background-color .1s}.client-selector__option:hover{background:var(--color-muted, #f1f5f9)}.client-selector__option.selected{background:var(--color-primary-light, #eff6ff);color:var(--color-primary, #3b82f6)}.client-selector__option-name{flex:1}.client-selector__backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:40}.requirement-matcher{display:flex;flex-direction:column;gap:12px;padding:12px;background:var(--color-muted, #f8fafc);border-radius:6px}.requirement-matcher__loading,.requirement-matcher__empty{display:flex;align-items:center;justify-content:center;gap:8px;padding:16px;color:var(--color-text-secondary, #64748b);font-size:.875rem}.requirement-matcher__spinner{animation:spin 1s linear infinite}.requirement-matcher__header{display:flex;align-items:center;justify-content:space-between}.requirement-matcher__title{font-size:.875rem;font-weight:500;color:var(--color-text, #1e293b)}.requirement-matcher__list{display:flex;flex-direction:column;gap:8px}.requirement-matcher__item{display:flex;align-items:center;justify-content:space-between;padding:10px 12px;background:var(--color-background, #fff);border:1px solid var(--color-border, #e2e8f0);border-radius:6px;transition:border-color .15s}.requirement-matcher__item.applied{border-color:var(--color-success, #22c55e);background:#22c55e0d}.requirement-matcher__item-info{display:flex;flex-direction:column;gap:4px}.requirement-matcher__item-time{display:flex;align-items:center;gap:6px;font-size:.875rem;font-weight:500;color:var(--color-text, #1e293b)}.requirement-matcher__item-days{display:flex;align-items:center;gap:6px;font-size:.75rem;color:var(--color-text-secondary, #64748b)}.requirement-matcher__item-staff{font-size:.75rem;color:var(--color-text-secondary, #64748b)}.requirement-matcher__item-actions{flex-shrink:0}.staff-selector{display:flex;flex-direction:column;gap:8px}.staff-selector__search{display:flex;align-items:center;gap:8px;padding:8px 12px;background:var(--color-background, #fff);border:1px solid var(--color-border, #e2e8f0);border-radius:6px;color:var(--color-text-secondary, #64748b)}.staff-selector__search-input{flex:1;border:none;outline:none;font-size:.875rem;background:transparent;color:var(--color-text, #1e293b)}.staff-selector__search-input::placeholder{color:var(--color-text-secondary, #94a3b8)}.staff-selector__search-input:disabled{cursor:not-allowed}.staff-selector__status{display:flex;align-items:center;justify-content:space-between;padding:6px 8px;background:var(--color-muted, #f8fafc);border-radius:4px;font-size:.8125rem;color:var(--color-text-secondary, #64748b)}.staff-selector__list{display:flex;flex-direction:column;gap:4px;overflow-y:auto;padding:4px;background:var(--color-background, #fff);border:1px solid var(--color-border, #e2e8f0);border-radius:6px}.staff-selector__loading,.staff-selector__empty{display:flex;align-items:center;justify-content:center;gap:8px;padding:24px;color:var(--color-text-secondary, #64748b);font-size:.875rem}.staff-selector__spinner{animation:spin 1s linear infinite}.staff-selector__item{display:flex;align-items:center;gap:10px;width:100%;padding:8px 10px;border:none;background:transparent;border-radius:4px;text-align:left;cursor:pointer;transition:background-color .1s}.staff-selector__item:hover:not(:disabled){background:var(--color-muted, #f1f5f9)}.staff-selector__item.selected{background:var(--color-primary-light, #eff6ff)}.staff-selector__item.unavailable{opacity:.6}.staff-selector__item:disabled{cursor:not-allowed}.staff-selector__item-check{display:flex;align-items:center;justify-content:center;width:20px;height:20px;border:1px solid var(--color-border, #cbd5e1);border-radius:4px;color:#fff;transition:all .1s}.staff-selector__item.selected .staff-selector__item-check{background:var(--color-primary, #3b82f6);border-color:var(--color-primary, #3b82f6)}.staff-selector__item-info{flex:1;display:flex;flex-direction:column;gap:2px}.staff-selector__item-name{display:flex;align-items:center;gap:6px;font-size:.875rem;font-weight:500;color:var(--color-text, #1e293b)}.staff-selector__item-hours{display:flex;align-items:center;gap:4px;font-size:.75rem;color:var(--color-text-secondary, #64748b)}.staff-selector__item.has-conflict{background:#ea580c14;border:1px solid rgba(234,88,12,.2)}.staff-selector__item.has-conflict:hover:not(:disabled){background:#ea580c1f}.staff-selector__item.has-conflict.selected .staff-selector__item-check{background:#ea580c;border-color:#ea580c}.staff-selector__item-conflict{display:flex;align-items:center;gap:4px;font-size:.6875rem;font-weight:500;margin-top:2px}.staff-selector__item-conflict--critical{color:#dc2626}.staff-selector__item-conflict--high{color:#ea580c}.staff-selector__item-conflict--medium{color:#ca8a04}.staff-selector__item-conflict--low{color:#16a34a}.staff-selector__item-badges{display:flex;align-items:center;gap:4px;flex-shrink:0}.shift-preview-panel{height:100%}.shift-preview-panel__card{height:100%;position:sticky;top:var(--spacing-4)}.shift-preview-panel__title{display:flex;align-items:center;gap:var(--spacing-2)}.shift-preview-panel__content{display:flex;flex-direction:column;gap:var(--spacing-5)}.shift-preview-panel__summary{display:flex;flex-direction:column;gap:var(--spacing-2);padding:var(--spacing-4);background:linear-gradient(135deg,hsl(var(--primary-hsl) / .1),hsl(var(--primary-hsl) / .05));border-radius:var(--radius-lg)}.shift-preview-panel__time-display{display:flex;align-items:center;gap:var(--spacing-2);flex-wrap:wrap}.shift-preview-panel__time{font-size:var(--font-size-xl);font-weight:var(--font-weight-bold);color:var(--foreground)}.shift-preview-panel__duration{display:flex;align-items:center;gap:var(--spacing-1);font-size:var(--font-size-sm);color:var(--muted-foreground)}.shift-preview-panel__details{display:flex;flex-direction:column;gap:var(--spacing-3)}.preview-item{display:flex;align-items:flex-start;gap:var(--spacing-3)}.preview-item__icon{display:flex;align-items:center;justify-content:center;width:28px;height:28px;color:var(--muted-foreground);background:var(--muted);border-radius:var(--radius-md);flex-shrink:0}.preview-item--filled .preview-item__icon,.preview-item--success .preview-item__icon{color:var(--primary);background:hsl(var(--primary-hsl) / .1)}.preview-item--warning .preview-item__icon{color:#e7b008;background:#e7b0081a}.preview-item__content{display:flex;flex-direction:column;gap:2px}.preview-item__label{font-size:var(--font-size-xs);color:var(--muted-foreground);text-transform:uppercase;letter-spacing:.5px}.preview-item__value{font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--foreground)}.preview-item--empty .preview-item__value{color:var(--muted-foreground);font-style:italic}.shift-preview-panel__staff-list{padding:var(--spacing-3);background:var(--muted);border-radius:var(--radius-md)}.shift-preview-panel__staff-list-title{margin:0 0 var(--spacing-2);font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);color:var(--muted-foreground);text-transform:uppercase;letter-spacing:.5px}.shift-preview-panel__staff-names{margin:0;padding:0;list-style:none}.shift-preview-panel__staff-names li{padding:var(--spacing-1) 0;font-size:var(--font-size-sm);color:var(--foreground);border-bottom:1px solid var(--border)}.shift-preview-panel__staff-names li:last-child{border-bottom:none}.shift-preview-panel__cost{display:flex;align-items:center;gap:var(--spacing-2);padding:var(--spacing-3);font-size:var(--font-size-sm);color:var(--muted-foreground);background:var(--muted);border-radius:var(--radius-md)}.shift-preview-panel__cost strong{margin-left:auto;color:var(--foreground)}.shift-preview-panel__warnings{padding:var(--spacing-3);background:hsl(var(--destructive-hsl) / .1);border:1px solid hsl(var(--destructive-hsl) / .2);border-radius:var(--radius-md)}.shift-preview-panel__warnings-title{display:flex;align-items:center;gap:var(--spacing-2);margin:0 0 var(--spacing-2);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--destructive)}.shift-preview-panel__warnings-list{margin:0;padding-left:var(--spacing-4)}.shift-preview-panel__warnings-list li{font-size:var(--font-size-sm);color:var(--foreground);margin-bottom:var(--spacing-1)}.shift-preview-panel__status{display:flex;align-items:center;justify-content:center;gap:var(--spacing-2);padding:var(--spacing-3);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--muted-foreground);background:var(--muted);border-radius:var(--radius-md);margin-top:auto}.shift-preview-panel__status--ready{color:#16a249;background:#16a2491a}.shift-conflict-panel{border-radius:8px;border:1px solid var(--conflict-color, #e5e7eb);background:var(--conflict-bg, #f9fafb);overflow:hidden}.shift-conflict-panel--success{border-color:#22c55e;background:#f0fdf4}.shift-conflict-panel__success{display:flex;align-items:center;gap:8px;padding:12px 16px;color:#16a34a;font-size:13px;font-weight:500}.shift-conflict-panel__success-icon{color:#22c55e}.shift-conflict-panel--loading{border-color:#e5e7eb;background:#f9fafb}.shift-conflict-panel__loading{display:flex;align-items:center;gap:8px;padding:12px 16px;color:#6b7280;font-size:13px}.shift-conflict-panel__spinner{animation:spin 1s linear infinite}.shift-conflict-panel__header{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;border-bottom:1px solid rgba(0,0,0,.06);background:#00000005}.shift-conflict-panel__title{display:flex;align-items:center;gap:8px;font-size:14px;font-weight:600;color:var(--conflict-color, #374151)}.shift-conflict-panel__title svg{flex-shrink:0}.shift-conflict-panel__warning{display:flex;align-items:center;gap:8px;padding:10px 16px;background:#dc262614;border-bottom:1px solid rgba(220,38,38,.12);color:#dc2626;font-size:12px;font-weight:500}.shift-conflict-panel__warning svg{flex-shrink:0}.shift-conflict-panel__list{max-height:320px;overflow-y:auto}.shift-conflict-panel__group{border-bottom:1px solid rgba(0,0,0,.04)}.shift-conflict-panel__group:last-child{border-bottom:none}.shift-conflict-panel__group-header{padding:8px 16px 4px;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.5px}.shift-conflict-panel__group-label{opacity:.9}.shift-conflict-panel__item{border-bottom:1px solid rgba(0,0,0,.04)}.shift-conflict-panel__item:last-child{border-bottom:none}.shift-conflict-panel__item.acknowledged{opacity:.6;background:#00000005}.shift-conflict-panel__item-header{display:flex;align-items:flex-start;gap:8px;padding:12px 16px;cursor:pointer;transition:background-color .15s ease}.shift-conflict-panel__item-header:hover{background:#00000005}.shift-conflict-panel__item-expand{flex-shrink:0;color:#9ca3af;margin-top:2px}.shift-conflict-panel__item-icon{flex-shrink:0;margin-top:2px}.shift-conflict-panel__item-content{flex:1;min-width:0}.shift-conflict-panel__item-type{display:flex;align-items:center;gap:6px;margin-bottom:4px}.shift-conflict-panel__item-message{font-size:13px;color:#374151;line-height:1.4}.shift-conflict-panel__item-body{padding:0 16px 12px 46px;animation:slideDown .2s ease}.shift-conflict-panel__item-details{display:flex;flex-wrap:wrap;gap:12px;margin-bottom:12px}.shift-conflict-panel__detail{display:flex;align-items:center;gap:4px;font-size:12px;color:#6b7280}.shift-conflict-panel__detail svg{flex-shrink:0;opacity:.7}.shift-conflict-panel__detail--highlight{color:var(--item-color, #ea580c);font-weight:500}.shift-conflict-panel__detail--highlight svg{opacity:1}.shift-conflict-panel__item-actions{display:flex;gap:8px;flex-wrap:wrap}.shift-conflict-panel__item-actions button{font-size:12px}.shift-conflict-panel__footer{padding:10px 16px;border-top:1px solid rgba(0,0,0,.06);background:#00000005}.shift-conflict-panel__summary{font-size:12px;color:#6b7280}.shift-conflict-panel--critical{border-color:#dc2626;background:#fef2f2}.shift-conflict-panel--high{border-color:#ea580c;background:#fff7ed}.shift-conflict-panel--medium{border-color:#ca8a04;background:#fefce8}.shift-conflict-panel--low{border-color:#16a34a;background:#f0fdf4}.shift-conflict-panel__list::-webkit-scrollbar{width:6px}.shift-conflict-panel__list::-webkit-scrollbar-track{background:transparent}.shift-conflict-panel__list::-webkit-scrollbar-thumb{background:#00000026;border-radius:3px}.shift-conflict-panel__list::-webkit-scrollbar-thumb:hover{background:#00000040}.shift-builder{display:flex;flex-direction:column;gap:var(--spacing-5);padding:var(--spacing-5);max-width:1280px;margin:0 auto;min-height:100%}.shift-builder__header{display:flex;align-items:center;gap:var(--spacing-4);flex-wrap:wrap}.shift-builder__title{flex:1;margin:0;font-size:var(--font-size-xl);font-weight:var(--font-weight-semibold);color:var(--foreground)}.shift-builder__actions{display:flex;align-items:center;gap:var(--spacing-3)}.shift-builder__error{display:flex;align-items:center;gap:var(--spacing-2)}.shift-builder__layout{display:grid;grid-template-columns:1fr 340px;gap:var(--spacing-5);align-items:start}.shift-builder__main{display:flex;flex-direction:column;gap:var(--spacing-5)}.shift-builder__sidebar{position:sticky;top:var(--spacing-4)}.shift-builder__section{background:var(--card);border:1px solid var(--border);border-radius:var(--radius-lg)}.shift-builder__section-title{display:flex;align-items:center;gap:var(--spacing-2);font-size:var(--font-size-base);font-weight:var(--font-weight-semibold)}.shift-builder__section-content{display:flex;flex-direction:column;gap:var(--spacing-5)}.shift-builder__divider{height:1px;background:var(--border);margin:var(--spacing-1) 0}.shift-builder__field-group{display:flex;flex-direction:column;gap:var(--spacing-3)}.shift-builder__field-group--optional{opacity:.9}.shift-builder__label{display:flex;align-items:center;gap:var(--spacing-2);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--foreground)}.shift-builder__label-hint{font-size:var(--font-size-xs);font-weight:var(--font-weight-normal);color:var(--muted-foreground);margin-left:auto}.shift-builder__field-error{display:flex;align-items:center;gap:var(--spacing-1);font-size:var(--font-size-xs);color:var(--destructive)}.shift-builder__date-presets{display:flex;flex-wrap:wrap;gap:var(--spacing-2)}.shift-builder__preset-btn{padding:var(--spacing-2) var(--spacing-3);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);color:var(--foreground);background:var(--muted);border:1px solid var(--border);border-radius:var(--radius-md);cursor:pointer;transition:all var(--duration-fast) var(--ease-out)}.shift-builder__preset-btn:hover{background:var(--accent);border-color:var(--primary)}.shift-builder__date-inputs{display:flex;align-items:center;gap:var(--spacing-3);flex-wrap:wrap}.shift-builder__date-field{display:flex;flex-direction:column;gap:var(--spacing-1);flex:1;min-width:140px}.shift-builder__date-separator{font-size:var(--font-size-sm);color:var(--muted-foreground);padding-top:var(--spacing-1)}.shift-builder__date-display{font-size:var(--font-size-xs);color:var(--muted-foreground)}.shift-builder__input,.shift-builder__select{width:100%;padding:var(--spacing-2-5) var(--spacing-3);font-size:var(--font-size-sm);color:var(--foreground);background:var(--input);border:1px solid var(--border);border-radius:var(--radius-md);outline:none;transition:border-color var(--duration-fast) var(--ease-out),box-shadow var(--duration-fast) var(--ease-out)}.shift-builder__input:focus,.shift-builder__select:focus{border-color:var(--primary);box-shadow:0 0 0 3px hsl(var(--primary-hsl) / .1)}.shift-builder__input--error{border-color:var(--destructive)}.shift-builder__select{cursor:pointer}.shift-builder__custom-time{margin-top:var(--spacing-4);padding-top:var(--spacing-4);border-top:1px solid var(--border)}.shift-builder__requirements{padding:var(--spacing-3);background:hsl(var(--primary-hsl) / .05);border:1px solid hsl(var(--primary-hsl) / .15);border-radius:var(--radius-md)}.shift-builder__staff-hint{display:flex;align-items:center;gap:var(--spacing-2);padding:var(--spacing-6);font-size:var(--font-size-sm);color:var(--muted-foreground);background:var(--muted);border:1px dashed var(--border);border-radius:var(--radius-md);justify-content:center}.shift-builder__staff-complete{display:flex;align-items:center;gap:var(--spacing-2);padding:var(--spacing-2) var(--spacing-3);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:hsl(var(--success-hsl));background:hsl(var(--success-hsl) / .1);border-radius:var(--radius-md)}.shift-builder__mobile-actions{display:none;padding:var(--spacing-4);background:var(--background);border-top:1px solid var(--border);position:sticky;bottom:0;left:0;right:0;margin:var(--spacing-4) calc(var(--spacing-5) * -1) calc(var(--spacing-5) * -1)}.shift-builder__mobile-submit{width:100%}.shift-builder__conflict-section{margin-top:var(--spacing-2)}.shift-builder__conflict-error{display:flex;align-items:center;gap:var(--spacing-2);padding:var(--spacing-3);background:#dc262614;border:1px solid rgba(220,38,38,.2);border-radius:var(--radius);color:#dc2626;font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);margin-top:var(--spacing-3)}.shift-builder__conflict-error svg{flex-shrink:0}@media (max-width: 1024px){.shift-builder__layout{grid-template-columns:1fr}.shift-builder__sidebar{position:relative;top:0;order:-1}.shift-builder__actions{display:none}.shift-builder__mobile-actions{display:block}}@media (max-width: 640px){.shift-builder{padding:var(--spacing-4)}.shift-builder__header{flex-direction:column;align-items:flex-start;gap:var(--spacing-2)}.shift-builder__title{font-size:var(--font-size-lg)}.shift-builder__date-inputs{flex-direction:column;align-items:stretch}.shift-builder__date-separator{text-align:center;padding:var(--spacing-1) 0}.shift-builder__date-field{min-width:100%}}.login-container{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#667eea,#764ba2);padding:20px}.login-card{background:#fff;border-radius:12px;box-shadow:0 10px 40px #0000001a;padding:40px;width:100%;max-width:400px}.login-title{font-size:32px;font-weight:700;color:#1a202c;margin:0 0 8px;text-align:center}.login-subtitle{font-size:16px;color:#718096;margin:0 0 32px;text-align:center;font-weight:400}.login-error{background:#fed7d7;color:#c53030;padding:12px;border-radius:6px;margin-bottom:24px;font-size:14px}.login-form{display:flex;flex-direction:column;gap:20px}.form-group{display:flex;flex-direction:column;gap:8px}.form-group input{padding:12px;border:1px solid #e2e8f0;border-radius:6px;font-size:16px;transition:border-color .2s}.form-group input:focus{outline:none;border-color:#667eea;box-shadow:0 0 0 3px #667eea1a}.form-group input:disabled{background:#f7fafc;cursor:not-allowed}.login-button{padding:12px;background:#667eea;color:#fff;border:none;border-radius:6px;font-size:16px;font-weight:600;cursor:pointer;transition:background .2s;margin-top:8px}.login-button:hover:not(:disabled){background:#5568d3}.login-button:disabled{background:#a0aec0;cursor:not-allowed}.admin-container{padding:24px;max-width:1400px;margin:0 auto}.admin-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px}.admin-header h1{margin:0;font-size:28px;font-weight:600}.error-message{background:#fed7d7;color:#c53030;padding:12px;border-radius:6px;margin-bottom:24px}.admin-table{width:100%;border-collapse:collapse;background:#fff;border-radius:8px;overflow:hidden;box-shadow:0 1px 3px #0000001a}.admin-table thead{background:#f7fafc}.admin-table th{padding:12px;text-align:left;font-weight:600;color:#4a5568;border-bottom:2px solid #e2e8f0}.admin-table td{padding:12px;border-bottom:1px solid #e2e8f0}.admin-table tbody tr:hover{background:#f7fafc}.status-badge{display:inline-block;padding:4px 8px;border-radius:4px;font-size:12px;font-weight:500}.status-badge.active{background:#c6f6d5;color:#22543d}.status-badge.inactive{background:#fed7d7;color:#c53030}.action-buttons{display:flex;gap:8px}.btn{padding:8px 16px;border:none;border-radius:6px;font-size:14px;font-weight:500;cursor:pointer;text-decoration:none;display:inline-block;transition:all .2s}.btn-primary{background:#667eea;color:#fff}.btn-primary:hover{background:#5568d3}.btn-secondary{background:#e2e8f0;color:#4a5568}.btn-secondary:hover{background:#cbd5e0}.btn-danger{background:#fc8181;color:#fff}.btn-danger:hover{background:#f56565}.btn-sm{padding:4px 8px;font-size:12px}.admin-layout{display:grid;grid-template-columns:1fr 2fr;gap:24px}.admin-list{background:#fff;border-radius:8px;padding:16px;box-shadow:0 1px 3px #0000001a}.admin-list h2{margin:0 0 16px;font-size:20px;font-weight:600}.list-group{list-style:none;padding:0;margin:0}.list-item{padding:12px;border:1px solid #e2e8f0;border-radius:6px;margin-bottom:8px;cursor:pointer;transition:all .2s}.list-item:hover{background:#f7fafc;border-color:#cbd5e0}.list-item.active{background:#edf2f7;border-color:#667eea}.badge{display:inline-block;padding:2px 6px;background:#cbd5e0;color:#4a5568;border-radius:4px;font-size:10px;font-weight:600;margin-left:8px}.text-muted{color:#718096;font-size:14px;margin-top:4px}.admin-detail{background:#fff;border-radius:8px;padding:24px;box-shadow:0 1px 3px #0000001a}.admin-detail h2{margin:0 0 8px;font-size:24px;font-weight:600}.admin-detail h3{margin:24px 0 12px;font-size:18px;font-weight:600}.category-group{margin-bottom:24px}.category-group h3{margin:0 0 12px;font-size:16px;font-weight:600;color:#4a5568}.admin-form{background:#fff;border-radius:8px;padding:24px;box-shadow:0 1px 3px #0000001a}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px}.form-section{display:flex;flex-direction:column;gap:16px}.form-section h2{margin:0 0 16px;font-size:20px;font-weight:600;padding-bottom:12px;border-bottom:2px solid #e2e8f0}.form-group{display:flex;flex-direction:column;gap:6px}.form-group label{font-size:14px;font-weight:500;color:#4a5568}.form-group input,.form-group select,.form-group textarea{padding:10px;border:1px solid #e2e8f0;border-radius:6px;font-size:14px;transition:border-color .2s}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{outline:none;border-color:#667eea;box-shadow:0 0 0 3px #667eea1a}.form-group input:disabled,.form-group select:disabled{background:#f7fafc;cursor:not-allowed}.form-group small{font-size:12px;color:#718096}.checkbox-label{display:flex;align-items:center;gap:8px;cursor:pointer}.checkbox-label input[type=checkbox]{width:auto;cursor:pointer}.form-actions{display:flex;justify-content:flex-end;gap:12px;margin-top:24px;padding-top:24px;border-top:1px solid #e2e8f0}.btn:disabled{opacity:.5;cursor:not-allowed}.permissions-preview{background:#f7fafc;border-radius:6px;padding:16px;max-height:500px;overflow-y:auto}.permissions-preview h3{margin:0 0 12px;font-size:18px;font-weight:600}.feature-list{list-style:none;padding:0;margin:0}.feature-list li{padding:8px 0;border-bottom:1px solid #e2e8f0}.feature-list li:last-child{border-bottom:none}.permissions-assignment{background:#fff;border-radius:8px;padding:24px;box-shadow:0 1px 3px #0000001a}.permission-category{margin-bottom:32px;padding-bottom:24px;border-bottom:2px solid #e2e8f0}.permission-category:last-child{border-bottom:none;margin-bottom:0;padding-bottom:0}.category-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.category-header h3{margin:0;font-size:18px;font-weight:600}.feature-item{margin-bottom:12px}.feature-checkbox{display:flex;align-items:flex-start;gap:12px;cursor:pointer;padding:12px;border:1px solid #e2e8f0;border-radius:6px;transition:all .2s}.feature-checkbox:hover{background:#f7fafc;border-color:#cbd5e0}.feature-checkbox input[type=checkbox]{margin-top:4px;cursor:pointer}.feature-content{flex:1}.feature-name{font-weight:500;color:#2d3748;margin-bottom:4px}.feature-description{font-size:13px;line-height:1.5}.matrix-container{background:#fff;border-radius:8px;padding:24px;box-shadow:0 1px 3px #0000001a;overflow-x:auto}.category-filter{display:flex;align-items:center;gap:8px}.category-filter label{font-size:14px;font-weight:500}.category-filter select{padding:6px 12px;border:1px solid #e2e8f0;border-radius:6px;font-size:14px}.matrix-table-wrapper{overflow-x:auto}.matrix-table{width:100%;border-collapse:collapse;min-width:800px}.matrix-table thead{background:#f7fafc;position:sticky;top:0;z-index:10}.matrix-table th{padding:12px;text-align:left;font-weight:600;color:#4a5568;border-bottom:2px solid #e2e8f0;white-space:nowrap}.matrix-table td{padding:12px;border-bottom:1px solid #e2e8f0;text-align:center}.matrix-feature-col{min-width:300px;position:sticky;left:0;background:#fff;z-index:5}.matrix-user-type-col{min-width:150px;text-align:center}.matrix-feature-cell{text-align:left;background:#fff;position:sticky;left:0;z-index:5}.matrix-cell{text-align:center}.matrix-checkbox{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;border:2px solid #cbd5e0;border-radius:4px;font-weight:700;color:#22543d}.matrix-checkbox.checked{background:#c6f6d5;border-color:#9ae6b4}.matrix-legend{display:flex;gap:24px;margin-top:24px;padding-top:24px;border-top:1px solid #e2e8f0}.legend-item{display:flex;align-items:center;gap:8px;font-size:14px}.feature-description-small{font-size:12px;margin-top:4px;line-height:1.4}.matrix-filters{display:flex;gap:1.5rem;margin-bottom:1.5rem;flex-wrap:wrap;background:var(--card-bg, #fff);padding:1rem;border-radius:8px;border:1px solid var(--border-color, #e5e7eb)}.filter-group{display:flex;align-items:center;gap:.5rem}.filter-group label{font-weight:500;color:var(--text-secondary, #6b7280);font-size:.875rem}.filter-group select{padding:.5rem 1rem;border:1px solid var(--border-color, #e5e7eb);border-radius:6px;background:var(--input-bg, #fff);color:var(--text-primary, #111827);font-size:.875rem;min-width:150px}.admin-subtitle{color:var(--text-secondary, #6b7280);font-size:.875rem;margin-top:.25rem}.tech-matrix-container{background:var(--card-bg, #fff);border-radius:8px;border:1px solid var(--border-color, #e5e7eb);overflow:hidden}.tech-matrix-table-wrapper{overflow-x:auto;max-height:calc(100vh - 350px);overflow-y:auto}.tech-matrix-table{width:100%;border-collapse:collapse;font-size:.875rem}.tech-matrix-table thead{position:sticky;top:0;z-index:10;background:var(--table-header-bg, #f9fafb)}.tech-matrix-table th{padding:.75rem 1rem;text-align:left;font-weight:600;color:var(--text-primary, #111827);border-bottom:2px solid var(--border-color, #e5e7eb);white-space:nowrap}.tech-matrix-table td{padding:.5rem 1rem;border-bottom:1px solid var(--border-color-light, #f3f4f6)}.tech-matrix-resource-col{min-width:140px;max-width:180px}.tech-matrix-action-col{min-width:100px;max-width:120px}.tech-matrix-user-type-col{min-width:100px;text-align:center!important}.tech-matrix-cell{text-align:center}.resource-separator td{height:8px;background:var(--bg-secondary, #f3f4f6);padding:0}.first-in-group{border-top:2px solid var(--border-color, #e5e7eb)}.resource-name{font-weight:600;color:var(--text-primary, #111827);text-transform:capitalize}.tech-matrix-resource-cell{vertical-align:top;padding-top:.75rem}.action-badge{display:inline-block;padding:.25rem .5rem;border-radius:4px;font-size:.75rem;font-weight:500;text-transform:uppercase;letter-spacing:.025em}.action-create{background:#dcfce7;color:#166534}.action-read{background:#dbeafe;color:#1e40af}.action-update{background:#fef3c7;color:#92400e}.action-delete{background:#fee2e2;color:#991b1b}.action-approve{background:#e9d5ff;color:#7c3aed}.action-generate,.action-export,.action-process,.action-chat,.action-optimize{background:#f3e8ff;color:#6b21a8}.user-type-header{display:flex;flex-direction:column;align-items:center;gap:.25rem}.user-type-name{font-size:.75rem}.badge.system{font-size:.625rem;padding:.125rem .375rem;background:var(--primary-light, #e0e7ff);color:var(--primary, #4f46e5);border-radius:9999px}.tech-matrix-checkbox{width:28px;height:28px;border-radius:6px;display:inline-flex;align-items:center;justify-content:center;font-size:.875rem;font-weight:600;transition:all .15s ease}.tech-matrix-checkbox.empty{background:var(--bg-tertiary, #f9fafb);border:1px solid var(--border-color-light, #e5e7eb)}.tech-matrix-checkbox.checked{background:#22c55e;color:#fff}.tech-matrix-checkbox.checked.scope-own{background:#3b82f6;color:#fff}.tech-matrix-legend{margin-top:1.5rem;padding:1rem;background:var(--card-bg, #fff);border-radius:8px;border:1px solid var(--border-color, #e5e7eb)}.tech-matrix-legend h4{margin:0 0 .75rem;font-size:.875rem;color:var(--text-secondary, #6b7280);text-transform:uppercase;letter-spacing:.05em}.legend-items{display:flex;flex-wrap:wrap;gap:1.5rem}.legend-item{display:flex;align-items:center;gap:.5rem;font-size:.875rem;color:var(--text-primary, #374151)}.actions-legend{gap:.5rem}@media (max-width: 768px){.matrix-filters{flex-direction:column;gap:1rem}.filter-group{width:100%}.filter-group select{flex:1}.legend-items{flex-direction:column;gap:.75rem}}@media (prefers-color-scheme: dark){.tech-matrix-table thead{background:#1f2937}.resource-separator td{background:#374151}.tech-matrix-checkbox.empty{background:#374151;border-color:#4b5563}}.timesheet-approval-container{padding:1rem}.status-badge{padding:.25rem .5rem;border-radius:4px;font-size:.85rem;text-transform:capitalize;background-color:#f3f4f6;color:#374151}.action-buttons{display:flex;gap:.5rem}.approval-modal-content,.reject-modal-content{display:flex;flex-direction:column;gap:1rem}.modal-actions{display:flex;gap:.5rem;justify-content:flex-end;margin-top:1rem}.timesheet-history-container{padding:1rem}.header-row{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:1rem}.header-actions{display:flex;gap:.5rem}.stats-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:1rem;margin-bottom:1.5rem}.stat-card{display:flex;flex-direction:column;align-items:center;padding:1rem;background:var(--background-secondary, #f8fafc);border-radius:8px;border:1px solid var(--border-color, #e2e8f0)}.stat-value{font-size:1.5rem;font-weight:600;color:var(--text-primary, #1e293b)}.stat-label{font-size:.85rem;color:var(--text-secondary, #64748b);margin-top:.25rem}.stat-card.stat-approved .stat-value{color:#16a34a}.stat-card.stat-pending .stat-value{color:#ca8a04}.stat-card.stat-rejected .stat-value{color:#dc2626}.filters-panel{background:var(--background-secondary, #f8fafc);border:1px solid var(--border-color, #e2e8f0);border-radius:8px;padding:1rem;margin-bottom:1.5rem}.filters-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:1rem;align-items:end}.filter-group{display:flex;flex-direction:column;gap:.5rem}.filter-group label{font-size:.85rem;font-weight:500;color:var(--text-secondary, #64748b)}.filter-select{padding:.5rem .75rem;border:1px solid var(--border-color, #e2e8f0);border-radius:6px;background:var(--background-primary, #ffffff);font-size:.9rem;color:var(--text-primary, #1e293b)}.filter-select:focus{outline:none;border-color:var(--primary-color, #3b82f6);box-shadow:0 0 0 2px #3b82f61a}.filter-actions{justify-content:flex-end}.status-badge{display:inline-flex;align-items:center;gap:.35rem;padding:.25rem .6rem;border-radius:9999px;font-size:.8rem;font-weight:500;text-transform:capitalize}.status-approved{background-color:#dcfce7;color:#166534}.status-pending{background-color:#fef9c3;color:#854d0e}.status-completed{background-color:#dbeafe;color:#1e40af}.status-rejected{background-color:#fee2e2;color:#991b1b}.status-icon{width:14px;height:14px}.status-icon-approved{color:#16a34a}.status-icon-pending{color:#ca8a04}.status-icon-completed{color:#2563eb}.status-icon-rejected{color:#dc2626}.table-wrapper{overflow-x:auto}.table{width:100%;border-collapse:collapse}.table th,.table td{padding:.75rem;text-align:left;border-bottom:1px solid var(--border-color, #e2e8f0)}.table th{font-weight:600;font-size:.85rem;color:var(--text-secondary, #64748b);background:var(--background-secondary, #f8fafc);white-space:nowrap}.table td{font-size:.9rem;color:var(--text-primary, #1e293b)}.table tbody tr:hover{background:var(--background-secondary, #f8fafc)}.loading-state,.empty-state{text-align:center;padding:3rem;color:var(--text-secondary, #64748b)}.error-message{padding:1rem;background-color:#fee2e2;color:#991b1b;border-radius:8px;margin-bottom:1rem}@media (max-width: 768px){.header-row{flex-direction:column;align-items:flex-start}.stats-row{grid-template-columns:repeat(2,1fr)}.filters-grid{grid-template-columns:1fr}}.timesheet-settings-container{padding:1rem}.settings-section{margin-bottom:2rem;padding-bottom:2rem;border-bottom:1px solid #e0e0e0}.settings-section:last-child{border-bottom:none}.settings-section h3{margin-bottom:1rem;font-size:1.1rem;font-weight:600}.checkbox-label{display:flex;align-items:center;gap:.5rem;cursor:pointer;font-weight:500}.checkbox-label input[type=checkbox]{width:18px;height:18px;cursor:pointer}.checkbox-label input[type=checkbox]:disabled{cursor:not-allowed;opacity:.5}.helper-text{margin-top:.25rem;font-size:.85rem;color:#666;margin-left:1.75rem}.form-actions{margin-top:2rem;display:flex;justify-content:flex-end}.rate-settings-modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000}.rate-settings-modal{background:#fff;padding:24px;border-radius:8px;width:90%;max-width:500px;max-height:90vh;overflow-y:auto}.rate-settings-modal-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.rate-settings-modal-header h3{margin:0;font-size:20px;font-weight:600}.modal-close-button{background:none;border:none;font-size:24px;cursor:pointer;color:#6b7280;padding:0;width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:4px}.modal-close-button:hover{background:#f3f4f6;color:#374151}.rate-settings-modal-body{margin-top:20px}.rate-settings-modal-body .form-group{margin-bottom:16px}.rate-settings-modal-body .form-group label{display:block;margin-bottom:6px;font-size:14px;font-weight:500;color:#374151}.rate-settings-modal-body .form-group select,.rate-settings-modal-body .form-group input{width:100%;padding:8px 12px;border:1px solid #d1d5db;border-radius:6px;font-size:14px}.rate-settings-modal-body .form-group small{display:block;margin-top:4px;font-size:12px;color:#6b7280}.rate-settings-modal-body .modal-actions{display:flex;justify-content:flex-end;gap:12px;margin-top:24px}.rate-settings-modal-body .loading{text-align:center;padding:40px;color:#6b7280}.rate-settings-modal-body .error{text-align:center;padding:40px;color:#dc2626}.rules-overview-tab{padding:var(--spacing-4)}.rules-overview-header{margin-bottom:var(--spacing-6)}.rules-overview-tab h2{margin-bottom:var(--spacing-2)}.rules-overview-tab .description{color:var(--text-secondary);font-size:var(--text-sm);line-height:1.5}.dashboard-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:var(--spacing-4);margin-bottom:var(--spacing-6)}.stat-card{padding:var(--spacing-4);background:var(--background-secondary);border:1px solid var(--border);border-radius:var(--radius-md);border-left:4px solid var(--primary);transition:all .2s}.stat-card:hover{box-shadow:var(--shadow-sm);transform:translateY(-2px)}.stat-card-header{font-size:var(--text-sm);font-weight:var(--font-weight-medium);color:var(--text-secondary);margin-bottom:var(--spacing-2)}.stat-card-value{font-size:var(--text-3xl);font-weight:var(--font-weight-semibold);color:var(--foreground);margin-bottom:var(--spacing-1)}.stat-card-details{font-size:var(--text-xs);color:var(--text-secondary)}.stat-card-details .warning-text{color:var(--destructive);font-weight:var(--font-weight-medium)}.stat-card-details .success-text{color:var(--chart-2);font-weight:var(--font-weight-medium)}.category-rate-section{margin-bottom:var(--spacing-6)}.section-header{margin-bottom:var(--spacing-4)}.section-header h3{margin:0 0 var(--spacing-2) 0;font-size:var(--text-xl);font-weight:var(--font-weight-semibold)}.section-description{color:var(--text-secondary);font-size:var(--text-sm);line-height:1.5;margin:0}.categories-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:var(--spacing-4)}.category-rate-card{display:flex;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--background);overflow:hidden;transition:all .2s}.category-rate-card:hover{box-shadow:var(--shadow-sm);transform:translateY(-2px)}.category-rate-card.inactive{opacity:.6}.category-rate-card.needs-config{border-color:var(--destructive);border-left-width:4px}.category-color-bar{width:4px;flex-shrink:0}.category-rate-content{flex:1;padding:var(--spacing-4);display:flex;flex-direction:column;gap:var(--spacing-3)}.category-rate-header{display:flex;justify-content:space-between;align-items:flex-start;gap:var(--spacing-2)}.category-name{font-weight:var(--font-weight-semibold);font-size:var(--text-base);color:var(--foreground);flex:1}.config-badge{font-size:var(--text-xs);padding:var(--spacing-1) var(--spacing-2);background:var(--destructive);color:#fff;border-radius:var(--radius-sm);font-weight:var(--font-weight-medium);white-space:nowrap}.category-description{font-size:var(--text-sm);color:var(--text-secondary);line-height:1.4}.category-rate-info{display:flex;flex-direction:column;gap:var(--spacing-2)}.rate-display{display:flex;align-items:center;gap:var(--spacing-2)}.rate-label{font-size:var(--text-sm);color:var(--text-secondary);font-weight:var(--font-weight-medium)}.rate-value{font-size:var(--text-base);font-weight:var(--font-weight-semibold);color:var(--foreground)}.rate-value.not-configured{color:var(--destructive);font-style:italic}.targeting-rules-info{font-size:var(--text-xs);color:var(--text-secondary)}.category-rate-actions{display:flex;gap:var(--spacing-2)}.rules-summary-section,.weekly-pay-section{margin-bottom:var(--spacing-6);border:1px solid var(--border);border-radius:var(--radius-md);background:var(--background-secondary);overflow:hidden}.collapsible-header{display:flex;justify-content:space-between;align-items:center;padding:var(--spacing-4);cursor:pointer;-webkit-user-select:none;user-select:none;transition:background-color .2s}.collapsible-header:hover{background:var(--background)}.collapsible-header h3{margin:0;font-size:var(--text-lg);font-weight:var(--font-weight-semibold)}.collapse-icon{font-size:var(--text-sm);color:var(--text-secondary);transition:transform .2s}.rules-summary-content{padding:var(--spacing-4);border-top:1px solid var(--border)}.summary-description{color:var(--text-secondary);font-size:var(--text-sm);margin-bottom:var(--spacing-4);line-height:1.5}.rule-hierarchy{display:flex;flex-direction:column;gap:var(--spacing-4)}.hierarchy-level{display:flex;flex-direction:column;gap:var(--spacing-2)}.hierarchy-level-label{font-weight:var(--font-weight-semibold);color:var(--foreground);margin-bottom:var(--spacing-1);font-size:var(--text-sm)}.hierarchy-rule{display:flex;align-items:center;gap:var(--spacing-2);padding:var(--spacing-1) 0;font-size:var(--text-sm)}.hierarchy-rule.inactive{opacity:.5;color:var(--muted-foreground)}.hierarchy-rule-indent{color:var(--text-secondary);font-family:monospace}.hierarchy-rule-name{font-weight:var(--font-weight-medium);color:var(--foreground)}.hierarchy-rule-meta{font-size:var(--text-xs);color:var(--text-secondary);margin-left:auto}.hierarchy-empty{padding:var(--spacing-2);color:var(--text-secondary);font-style:italic;font-size:var(--text-sm)}.weekly-pay-content{padding:var(--spacing-4);border-top:1px solid var(--border)}.calculator-description{color:var(--text-secondary);font-size:var(--text-sm);margin-bottom:var(--spacing-4);line-height:1.5}.weekly-pay-controls{display:flex;align-items:center;gap:var(--spacing-3);margin-bottom:var(--spacing-4);flex-wrap:wrap}.weekly-pay-controls label{display:flex;align-items:center;gap:var(--spacing-2);font-size:var(--text-sm);color:var(--foreground)}.base-rate-input{width:100px;padding:var(--spacing-2);border:1px solid var(--border);border-radius:var(--radius-sm);font-size:var(--text-sm)}.weekly-pay-placeholder{padding:var(--spacing-8);text-align:center;color:var(--text-secondary);font-style:italic}.weekly-pay-results{display:flex;flex-direction:column;gap:var(--spacing-6)}.weekly-timesheet-summary h4{margin:0 0 var(--spacing-3) 0;font-size:var(--text-base);font-weight:var(--font-weight-semibold)}.timesheet-table-container{overflow-x:auto;border:1px solid var(--border);border-radius:var(--radius-sm)}.timesheet-table{width:100%;border-collapse:collapse;font-size:var(--text-sm)}.timesheet-table thead{background:var(--background);border-bottom:2px solid var(--border)}.timesheet-table th{padding:var(--spacing-3);text-align:left;font-weight:var(--font-weight-semibold);color:var(--foreground)}.timesheet-table td{padding:var(--spacing-3);border-bottom:1px solid var(--border)}.timesheet-table tbody tr:hover{background:var(--background-secondary)}.timesheet-table tfoot{background:var(--background);border-top:2px solid var(--border)}.timesheet-table tfoot td{font-weight:var(--font-weight-semibold);padding:var(--spacing-3)}.timesheet-time{font-family:monospace;color:var(--text-secondary)}.rule-applied{font-size:var(--text-xs);color:var(--text-secondary)}.categorization-display{font-size:var(--text-xs);color:var(--foreground)}.pay-calculation-breakdown h4{margin:0 0 var(--spacing-3) 0;font-size:var(--text-base);font-weight:var(--font-weight-semibold)}.pay-breakdown-table-container{overflow-x:auto;border:1px solid var(--border);border-radius:var(--radius-sm);margin-bottom:var(--spacing-4)}.pay-breakdown-table{width:100%;border-collapse:collapse;font-size:var(--text-sm)}.pay-breakdown-table thead{background:var(--background);border-bottom:2px solid var(--border)}.pay-breakdown-table th{padding:var(--spacing-3);text-align:left;font-weight:var(--font-weight-semibold);color:var(--foreground)}.pay-breakdown-table td{padding:var(--spacing-3);border-bottom:1px solid var(--border)}.pay-breakdown-table tbody tr:hover{background:var(--background-secondary)}.pay-breakdown-table tfoot{background:var(--background);border-top:2px solid var(--border)}.pay-breakdown-table tfoot td{padding:var(--spacing-3)}.pay-breakdown-table tfoot .total-row{font-weight:var(--font-weight-semibold);font-size:var(--text-base);border-top:2px solid var(--border)}.category-badge-inline{display:inline-flex;align-items:center;padding:var(--spacing-1) var(--spacing-2);border-radius:var(--radius-sm);font-size:var(--text-xs);font-weight:var(--font-weight-medium);border:1px solid}.empty-state{padding:var(--spacing-8);text-align:center;color:var(--text-secondary);font-style:italic;grid-column:1 / -1}@media (max-width: 1024px){.categories-grid{grid-template-columns:repeat(auto-fill,minmax(280px,1fr))}}@media (max-width: 768px){.dashboard-stats{grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}.categories-grid{grid-template-columns:1fr}.weekly-pay-controls{flex-direction:column;align-items:flex-start}.timesheet-table,.pay-breakdown-table{font-size:var(--text-xs)}.timesheet-table th,.timesheet-table td,.pay-breakdown-table th,.pay-breakdown-table td{padding:var(--spacing-2)}}.timesheet-table-container::-webkit-scrollbar,.pay-breakdown-table-container::-webkit-scrollbar{height:6px}.timesheet-table-container::-webkit-scrollbar-track,.pay-breakdown-table-container::-webkit-scrollbar-track{background:var(--background-secondary);border-radius:var(--radius-sm)}.timesheet-table-container::-webkit-scrollbar-thumb,.pay-breakdown-table-container::-webkit-scrollbar-thumb{background:var(--border);border-radius:var(--radius-sm)}.timesheet-table-container::-webkit-scrollbar-thumb:hover,.pay-breakdown-table-container::-webkit-scrollbar-thumb:hover{background:var(--muted-foreground)}.loading{text-align:center;padding:var(--spacing-8);color:var(--text-secondary)}.categories-tab{padding:0}.categories-tab-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:var(--spacing-6);gap:var(--spacing-5)}.categories-tab-header h2{margin:0 0 var(--spacing-2) 0;font-size:var(--text-xl);font-weight:var(--font-weight-semibold);color:var(--foreground)}.categories-tab-description{margin:0;color:var(--muted-foreground);font-size:var(--text-sm)}.categories-tab-loading{text-align:center;padding:var(--spacing-10);color:var(--muted-foreground)}.categories-section{margin-bottom:var(--spacing-8)}.categories-section h3{margin:0 0 var(--spacing-4) 0;font-size:var(--text-base);font-weight:var(--font-weight-semibold);color:var(--foreground)}@media (max-width: 768px){.category-list-header{flex-wrap:wrap}.category-list-name{min-width:100%;margin-bottom:var(--spacing-2)}.category-list-rate{text-align:left;padding-right:0;flex:1 1 auto}.category-list-actions{flex:0 0 auto}}.categories-list{display:flex;flex-direction:column;gap:0;border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--card);overflow:hidden}.category-list-item{border-bottom:1px solid var(--border);transition:background var(--duration-normal) var(--ease-out)}.category-list-item:last-child{border-bottom:none}.category-list-item:hover{background:var(--muted)}.category-list-header{display:flex;align-items:center;padding:var(--spacing-4);gap:var(--spacing-4)}.category-list-name{font-weight:var(--font-weight-semibold);font-size:var(--text-base);color:var(--foreground);min-width:180px;flex-shrink:0}.category-list-rate{flex:1;font-size:var(--text-sm);color:var(--foreground);font-weight:var(--font-weight-medium);text-align:right;padding-right:var(--spacing-4)}.category-list-actions{flex-shrink:0;display:flex;gap:var(--spacing-2)}.category-list-description{padding:0 var(--spacing-4) var(--spacing-4) var(--spacing-4);font-size:var(--text-sm);color:var(--muted-foreground);line-height:1.5;margin-top:calc(var(--spacing-1) * -1)}.category-full-description{font-size:var(--text-sm);color:var(--foreground);margin-bottom:var(--spacing-5);padding:var(--spacing-3);background:var(--card);border-radius:var(--radius-md)}.category-details-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--spacing-6);margin-top:var(--spacing-5)}@media (max-width: 768px){.category-details-grid{grid-template-columns:1fr}}.category-rules-section h4,.category-rates-section h4{margin:0 0 var(--spacing-3) 0;font-size:var(--text-sm);font-weight:var(--font-weight-semibold);color:var(--foreground)}.rate-display{background:var(--card);border:1px solid var(--border);border-radius:var(--radius-md);padding:var(--spacing-4);display:flex;flex-direction:column;gap:var(--spacing-3)}.rate-info{display:flex;flex-direction:column;gap:var(--spacing-2)}.rate-method,.rate-type,.rate-value{font-size:var(--text-sm);color:var(--foreground)}.rate-method strong,.rate-type strong,.rate-value strong{color:var(--foreground);margin-right:var(--spacing-1-5)}.category-rules-section h5{margin:var(--spacing-4) 0 var(--spacing-2) 0;font-size:13px;font-weight:var(--font-weight-semibold);color:var(--muted-foreground)}.empty-rules{padding:var(--spacing-6);text-align:center;background:var(--card);border-radius:var(--radius-md);border:1px dashed var(--border)}.empty-rules p{margin:0 0 var(--spacing-3) 0;color:var(--muted-foreground);font-size:var(--text-sm)}.rules-list{display:flex;flex-direction:column;gap:var(--spacing-2)}.rules-list.inactive-rules{margin-top:var(--spacing-4);padding-top:var(--spacing-4);border-top:1px solid var(--border)}.rule-item{display:flex;justify-content:space-between;align-items:center;padding:var(--spacing-3);background:var(--card);border:1px solid var(--border);border-radius:var(--radius-md)}.rule-item.inactive{opacity:.6;background:var(--muted)}.rule-info{flex:1}.rule-name{font-weight:var(--font-weight-medium);font-size:var(--text-sm);color:var(--foreground);margin-bottom:var(--spacing-1)}.rule-description{font-size:13px;color:var(--muted-foreground);margin-bottom:var(--spacing-1)}.rule-meta{font-size:var(--text-xs);color:var(--muted-foreground)}.rule-actions{display:flex;gap:var(--spacing-2)}.empty-state{padding:var(--spacing-6);text-align:center;color:var(--muted-foreground);font-size:var(--text-sm)}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000}.modal-content{background:var(--card);padding:var(--spacing-6);border-radius:var(--radius-lg);width:90%;max-width:500px;max-height:90vh;overflow-y:auto}.modal-content h3{margin:0 0 var(--spacing-5) 0;font-size:var(--text-xl);font-weight:var(--font-weight-semibold);color:var(--foreground)}.form-group{margin-bottom:var(--spacing-4)}.form-group label{display:block;margin-bottom:var(--spacing-1-5);font-size:var(--text-sm);font-weight:var(--font-weight-medium);color:var(--foreground)}.form-group input[type=text],.form-group input[type=number],.form-group textarea{width:100%;padding:var(--spacing-2) var(--spacing-3);border:1px solid var(--border);border-radius:var(--radius-md);font-size:var(--text-sm);background:var(--input-background);color:var(--foreground)}.form-group input:focus,.form-group textarea:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px color-mix(in srgb,var(--ring) 30%,transparent)}.form-group textarea{resize:vertical;min-height:80px}.form-group input[type=checkbox]{margin-right:var(--spacing-2)}.modal-actions{display:flex;justify-content:flex-end;gap:var(--spacing-3);margin-top:var(--spacing-6)}.loading{text-align:center;padding:var(--spacing-10);color:var(--muted-foreground)}.category-info-section{margin:var(--spacing-5) 0;padding:var(--spacing-4);background:var(--card);border:1px solid var(--border);border-radius:var(--radius-md)}.category-info-item{display:flex;justify-content:space-between;align-items:center;padding:var(--spacing-2) 0;border-bottom:1px solid var(--border)}.category-info-item:last-child{border-bottom:none}.category-info-label{font-size:var(--text-sm);font-weight:var(--font-weight-medium);color:var(--muted-foreground)}.category-info-value{font-size:var(--text-sm);color:var(--foreground);font-weight:var(--font-weight-medium)}.status-badge{display:inline-block;padding:var(--spacing-1) var(--spacing-2);border-radius:var(--radius-sm);font-size:var(--text-xs);font-weight:var(--font-weight-medium)}.status-badge.active{background:color-mix(in srgb,var(--success) 20%,transparent);color:var(--success)}.status-badge.inactive{background:color-mix(in srgb,var(--muted-foreground) 20%,transparent);color:var(--muted-foreground)}.category-note{margin-top:var(--spacing-5);padding:var(--spacing-4);background:color-mix(in srgb,var(--primary) 10%,transparent);border:1px solid color-mix(in srgb,var(--primary) 30%,transparent);border-radius:var(--radius-md)}.note-text{margin:0;font-size:var(--text-sm);color:var(--foreground);line-height:1.5}.note-text strong{color:var(--primary)}.holidays-management{padding:20px}.holidays-management-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.holidays-management-header h2{margin:0}.holidays-management-filters{display:flex;gap:20px;margin-bottom:20px;padding:15px;background:#f5f5f5;border-radius:4px}.holidays-management-filters label{display:flex;align-items:center;gap:8px}.holidays-management-filters input[type=number],.holidays-management-filters select{padding:4px 8px;border:1px solid #ddd;border-radius:4px}.holidays-management-table{overflow-x:auto}.holidays-management-table table{width:100%;border-collapse:collapse;background:#fff}.holidays-management-table th,.holidays-management-table td{padding:12px;text-align:left;border-bottom:1px solid #ddd}.holidays-management-table th{background:#f5f5f5;font-weight:600}.holidays-management-empty{text-align:center;color:#999;padding:40px}.holiday-badge{display:inline-block;padding:4px 8px;border-radius:4px;font-size:12px;font-weight:500}.holiday-badge.recurring{background:#e3f2fd;color:#1976d2}.holiday-badge.one-time{background:#f3e5f5;color:#7b1fa2}.holiday-status{display:inline-block;padding:4px 8px;border-radius:4px;font-size:12px;font-weight:500}.holiday-status.active{background:#e8f5e9;color:#2e7d32}.holiday-status.inactive{background:#ffebee;color:#c62828}.holidays-management-actions{display:flex;gap:8px}.holidays-management-modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000}.holidays-management-modal{background:#fff;padding:24px;border-radius:8px;max-width:500px;width:90%;max-height:90vh;overflow-y:auto}.holidays-management-modal h3{margin-top:0;margin-bottom:20px}.form-group{margin-bottom:16px}.form-group label{display:block;margin-bottom:4px;font-weight:500}.form-group input[type=text],.form-group input[type=date],.form-group input[type=number],.form-group select{width:100%;padding:8px;border:1px solid #ddd;border-radius:4px;font-size:14px}.form-group input[type=checkbox]{margin-right:8px}.recurrence-pattern-fields{display:flex;gap:12px;margin-top:8px;flex-wrap:wrap}.recurrence-pattern-fields label{display:flex;flex-direction:column;gap:4px;flex:1;min-width:100px}.form-actions{display:flex;gap:12px;justify-content:flex-end;margin-top:24px}.holidays-management-loading{text-align:center;padding:40px;color:#999}.payrun-settings{padding:var(--spacing-6);max-width:1400px;margin:0 auto}.payrun-settings-header{margin-bottom:var(--spacing-6);padding-bottom:var(--spacing-6);border-bottom:1px solid transparent;border-image:linear-gradient(to right,transparent,var(--border) 20%,var(--border) 80%,transparent) 1}.payrun-settings-header h1{margin:0 0 var(--spacing-2) 0;font-size:var(--text-3xl);font-weight:var(--font-weight-semibold);color:var(--foreground);letter-spacing:-.02em;line-height:1.15}.payrun-settings-description{margin:0;color:var(--muted-foreground);font-size:var(--text-sm);line-height:1.6;max-width:60ch}.payrun-settings-tabs{display:flex;gap:var(--spacing-1);margin:0 0 var(--spacing-6) 0;padding:var(--spacing-1);background:var(--muted);border-radius:var(--radius-lg);overflow-x:auto;scrollbar-width:none;-ms-overflow-style:none}.payrun-settings-tabs::-webkit-scrollbar{display:none}.payrun-settings-tab{position:relative;padding:var(--spacing-2-5) var(--spacing-5);background:transparent;border:none;border-radius:var(--radius-md);cursor:pointer;font-size:var(--text-sm);font-weight:var(--font-weight-medium);color:var(--muted-foreground);transition:all var(--duration-normal) var(--ease-out);white-space:nowrap;outline:none;min-height:36px;display:inline-flex;align-items:center;justify-content:center}.payrun-settings-tab:hover{color:var(--foreground);background:color-mix(in srgb,var(--card) 60%,transparent)}.payrun-settings-tab:focus-visible{outline:2px solid var(--ring);outline-offset:2px}.payrun-settings-tab.active{color:var(--primary);background:var(--card);box-shadow:0 1px 2px #0000000d,0 1px 3px #0000001a;font-weight:var(--font-weight-semibold)}.payrun-settings-tab.active:after{content:"";position:absolute;bottom:-2px;left:50%;transform:translate(-50%);width:24px;height:2px;background:var(--primary);border-radius:var(--radius-full)}.payrun-settings-content{min-height:400px}.combined-admin-page{padding:var(--spacing-6);max-width:1400px;margin:0 auto}.combined-admin-page .admin-header{margin-bottom:var(--spacing-6);padding-bottom:var(--spacing-6);border-bottom:1px solid transparent;border-image:linear-gradient(to right,transparent,var(--border) 20%,var(--border) 80%,transparent) 1}.combined-admin-page .admin-header h1{margin:0 0 var(--spacing-1) 0;font-size:var(--text-3xl);font-weight:var(--font-weight-semibold);color:var(--foreground);letter-spacing:-.02em;line-height:1.15}.admin-subtitle{margin:var(--spacing-1) 0 0 0;font-size:var(--text-sm);color:var(--muted-foreground)}.admin-tabs{display:flex;gap:var(--spacing-1);margin:0 0 var(--spacing-6) 0;padding:var(--spacing-1);background:var(--muted);border-radius:var(--radius-lg);overflow-x:auto;scrollbar-width:none;-ms-overflow-style:none}.admin-tabs::-webkit-scrollbar{display:none}.admin-tab{position:relative;display:flex;align-items:center;gap:var(--spacing-2);padding:var(--spacing-2-5) var(--spacing-5);background:transparent;border:none;border-radius:var(--radius-md);font-size:var(--text-sm);font-weight:var(--font-weight-medium);color:var(--muted-foreground);cursor:pointer;transition:all var(--duration-normal) var(--ease-out);white-space:nowrap;outline:none;min-height:36px}.admin-tab:hover{color:var(--foreground);background:color-mix(in srgb,var(--card) 60%,transparent)}.admin-tab:focus-visible{outline:2px solid var(--ring);outline-offset:2px}.admin-tab.active{color:var(--primary);background:var(--card);box-shadow:0 1px 2px #0000000d,0 1px 3px #0000001a;font-weight:var(--font-weight-semibold)}.admin-tab.active:after{content:"";position:absolute;bottom:-2px;left:50%;transform:translate(-50%);width:24px;height:2px;background:var(--primary);border-radius:var(--radius-full)}.tab-icon{font-size:var(--text-base)}.admin-tab-content{background:var(--card);border-radius:var(--radius-xl);box-shadow:var(--elevation-sm);min-height:400px}.admin-tab-content .admin-container{padding:0;max-width:none;box-shadow:none}.admin-tab-content .admin-container.embedded{padding:var(--spacing-6)}.admin-tab-content .admin-header{display:none}.admin-tab-content .matrix-container,.admin-tab-content .permissions-assignment{box-shadow:none;border-radius:0}.embedded-actions{display:flex;justify-content:flex-end;align-items:center;gap:var(--spacing-4);padding:var(--spacing-4) var(--spacing-6);background:var(--muted);border-bottom:1px solid var(--border)}.embedded-actions:empty{display:none}.access-denied{text-align:center;padding:var(--spacing-12) var(--spacing-6)}.access-denied h2{margin:0 0 var(--spacing-2) 0;font-size:var(--text-2xl);color:var(--destructive)}.access-denied p{margin:0;color:var(--muted-foreground)}@media (max-width: 768px){.admin-tabs{flex-wrap:wrap;gap:var(--spacing-2)}.admin-tab{flex:1;min-width:120px;justify-content:center;padding:var(--spacing-2) var(--spacing-3);font-size:var(--text-xs);min-height:32px}.combined-admin-page{padding:var(--spacing-4)}.combined-admin-page .admin-header h1{font-size:var(--text-2xl)}}.form-group{margin-bottom:1rem}.modal-actions{display:flex;gap:.5rem;justify-content:flex-end;margin-top:1.5rem}.error-message{padding:.75rem;background-color:#fee2e2;color:#991b1b;border-radius:4px;margin-bottom:1rem;font-size:.9rem}.timesheet-card{margin-bottom:1rem}.timesheet-info{display:flex;flex-direction:column;gap:1rem}.timesheet-shift-info{padding:.5rem 0;border-bottom:1px solid #e0e0e0}.shift-time{font-size:1rem}.timesheet-status{display:flex;align-items:center;gap:.5rem;padding:.5rem;border-radius:4px;background-color:#f5f5f5}.status-icon{width:20px;height:20px}.status-text{font-weight:500}.timesheet-times{display:flex;flex-direction:column;gap:.5rem}.time-entry{font-size:.9rem}.timesheet-notes{padding:.5rem;background-color:#f9fafb;border-radius:4px;font-size:.9rem}.timesheet-approval{padding:.5rem;background-color:#ecfdf5;border-radius:4px;font-size:.9rem;color:#065f46}.timesheet-rejection{padding:.5rem;background-color:#fef2f2;border-radius:4px;font-size:.9rem;color:#991b1b}.timesheet-actions{display:flex;gap:.5rem;margin-top:1rem}.clock-in-btn,.clock-out-btn,.edit-btn{flex:1}.error-message{padding:.5rem;background-color:#fef2f2;color:#991b1b;border-radius:4px;font-size:.9rem}.icon{width:16px;height:16px;margin-right:.5rem}.staff-calendar-container{padding:var(--spacing-4)}.staff-calendar-header{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:var(--spacing-4)}.staff-calendar-title{display:flex;align-items:center;gap:var(--spacing-2)}.staff-calendar-title-icon{width:20px;height:20px;color:var(--primary)}.staff-calendar-view-toggle{display:flex;gap:var(--spacing-2)}.staff-calendar-navigation{display:flex;align-items:center;justify-content:space-between;gap:var(--spacing-4);margin-bottom:var(--spacing-4);padding:var(--spacing-3);background:var(--muted);border-radius:var(--radius-card)}.staff-calendar-nav-icon{width:16px;height:16px}.staff-calendar-date-range{display:flex;align-items:center;gap:var(--spacing-2)}.staff-calendar-date-text{font-size:var(--text-base);font-weight:var(--font-weight-semibold);color:var(--foreground);min-width:200px;text-align:center}.staff-calendar-loading{display:flex;align-items:center;justify-content:center;padding:var(--spacing-8);color:var(--muted-foreground)}.staff-calendar-error{padding:var(--spacing-4);background:color-mix(in srgb,var(--destructive) 10%,transparent);color:var(--destructive);border-radius:var(--radius);margin-bottom:var(--spacing-4);font-size:var(--text-sm)}.staff-calendar-grid-wrapper{overflow-x:auto}.staff-calendar-grid{background:var(--card);border:1px solid var(--border);border-radius:var(--radius-card);overflow:hidden}.staff-calendar-table{display:grid;width:100%;min-width:900px}.staff-calendar-row{display:grid;grid-template-columns:200px repeat(var(--days-count, 7),1fr);border-bottom:1px solid var(--border);gap:0}.staff-calendar-row:last-child{border-bottom:none}.staff-calendar-row:hover:not(.staff-calendar-header-row){background:color-mix(in srgb,var(--muted) 50%,transparent)}.staff-calendar-row .staff-calendar-cell{display:block;border-right:1px solid var(--border);padding:var(--spacing-3)}.staff-calendar-row .staff-calendar-cell:last-child{border-right:none}.staff-calendar-content-row{display:grid!important}.staff-calendar-content-row .staff-calendar-cell{display:block;border-right:1px solid var(--border)}.staff-calendar-content-row .staff-calendar-cell:last-child{border-right:none}.staff-calendar-content-row .multi-day-bar{height:28px;margin:2px 0}.staff-calendar-content-row:hover{background:color-mix(in srgb,var(--muted) 50%,transparent)}.staff-calendar-header-row{background:var(--muted);position:sticky;top:0;z-index:10}.staff-calendar-entity-cell{min-width:200px;max-width:250px;background:var(--card);position:sticky;left:0;z-index:5;border-right:2px solid var(--border)}.staff-calendar-header-entity{font-weight:var(--font-weight-semibold);font-size:var(--text-sm);color:var(--muted-foreground);text-transform:uppercase;letter-spacing:.05em;background:var(--muted);vertical-align:middle}.staff-calendar-entity-info{display:flex;align-items:flex-start;gap:var(--spacing-3)}.staff-calendar-entity-avatar{width:36px;height:36px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:var(--primary);color:var(--primary-foreground);flex-shrink:0}.staff-calendar-entity-details{display:flex;flex-direction:column;gap:2px}.staff-calendar-entity-name{font-size:var(--text-sm);font-weight:var(--font-weight-semibold);color:var(--foreground)}.staff-calendar-entity-subtitle{font-size:var(--text-xs);color:var(--muted-foreground)}.staff-calendar-day-header{text-align:center;min-width:120px;background:var(--muted);padding:var(--spacing-2) var(--spacing-3);vertical-align:middle}.staff-calendar-day-name{font-size:var(--text-xs);font-weight:var(--font-weight-medium);color:var(--muted-foreground);text-transform:uppercase;margin-bottom:2px}.staff-calendar-day-number{font-size:var(--text-lg);font-weight:var(--font-weight-semibold);color:var(--foreground)}.staff-calendar-day-today{background:color-mix(in srgb,var(--primary) 10%,transparent)}.staff-calendar-day-today .staff-calendar-day-number,.staff-calendar-day-today .staff-calendar-day-name{color:var(--primary)}.staff-calendar-shifts-cell{min-width:120px;min-height:90px;vertical-align:top}.staff-calendar-shifts{display:flex;flex-direction:column;gap:var(--spacing-2)}.staff-calendar-empty-cell{display:flex;align-items:center;justify-content:center;min-height:60px;color:var(--muted-foreground)}.staff-calendar-no-shifts{font-size:var(--text-xs);font-style:italic}.staff-calendar-shift-card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:var(--spacing-2);cursor:pointer;transition:all var(--duration-normal) var(--ease-in-out);border-left-width:3px;border-left-style:solid}.staff-calendar-shift-card:hover{box-shadow:var(--elevation-md);transform:translateY(-2px)}.staff-calendar-shift-time{display:flex;align-items:center;gap:var(--spacing-1);font-size:var(--text-xs);font-weight:var(--font-weight-semibold);color:var(--foreground);margin-bottom:var(--spacing-1)}.staff-calendar-shift-client{font-size:var(--text-xs);font-weight:var(--font-weight-medium);color:var(--foreground);margin-bottom:var(--spacing-1);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.staff-calendar-shift-status{font-size:10px;font-weight:var(--font-weight-medium);text-transform:capitalize;padding:2px 6px;border-radius:var(--radius-sm);display:inline-block}.staff-calendar-shift-card.status-not-started{border-left-color:var(--muted-foreground)}.staff-calendar-shift-card.status-clocked-in{border-left-color:var(--chart-3);background:color-mix(in srgb,var(--chart-3) 8%,var(--card))}.staff-calendar-shift-card.status-completed{border-left-color:var(--chart-1);background:color-mix(in srgb,var(--chart-1) 8%,var(--card))}.staff-calendar-shift-card.status-approved{border-left-color:var(--chart-2);background:color-mix(in srgb,var(--chart-2) 8%,var(--card))}.staff-calendar-shift-card.status-rejected{border-left-color:var(--chart-4);background:color-mix(in srgb,var(--chart-4) 8%,var(--card))}.staff-calendar-shift-status.status-not-started{background:var(--muted);color:var(--muted-foreground)}.staff-calendar-shift-status.status-clocked-in{background:color-mix(in srgb,var(--chart-3) 15%,transparent);color:var(--chart-3)}.staff-calendar-shift-status.status-completed{background:color-mix(in srgb,var(--chart-1) 15%,transparent);color:var(--chart-1)}.staff-calendar-shift-status.status-approved{background:color-mix(in srgb,var(--chart-2) 15%,transparent);color:#166534}.staff-calendar-shift-status.status-rejected{background:color-mix(in srgb,var(--chart-4) 15%,transparent);color:var(--chart-4)}.staff-calendar-multiday-row{background:color-mix(in srgb,var(--muted) 40%,transparent);border-bottom:1px dashed var(--border)}.staff-calendar-multiday-row:hover{background:color-mix(in srgb,var(--muted) 60%,transparent)}.staff-calendar-multiday-entity{padding:var(--spacing-2) var(--spacing-3);min-height:calc(var(--lane-count, 1) * 32px + 8px)}.staff-calendar-entity-avatar-sm{width:24px;height:24px}.staff-calendar-multiday-label{font-size:var(--text-xs);color:var(--muted-foreground);font-weight:var(--font-weight-medium)}.staff-calendar-multiday-container{display:table-cell;position:relative;padding:var(--spacing-1) 0;min-height:calc(var(--lane-count, 1) * 32px + 8px);display:grid;grid-template-columns:repeat(7,1fr);grid-auto-rows:32px;gap:2px;align-content:start}.staff-calendar-multiday-row .staff-calendar-multiday-container{grid-column:2 / -1}.staff-calendar-multiday-container .multi-day-bar{grid-row:calc(var(--lane-index, 0) + 1);margin:0;height:28px}.staff-calendar-detail{margin-top:var(--spacing-6);padding-top:var(--spacing-6);border-top:1px solid var(--border)}.staff-calendar-detail-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--spacing-4)}.staff-calendar-detail-header h3{margin:0;font-size:var(--text-lg);font-weight:var(--font-weight-semibold);color:var(--foreground)}@media (max-width: 768px){.staff-calendar-container{padding:var(--spacing-2)}.staff-calendar-header{flex-direction:column;align-items:flex-start}.staff-calendar-navigation{flex-wrap:wrap;gap:var(--spacing-2)}.staff-calendar-date-range{flex-direction:column;gap:var(--spacing-1);min-width:auto}.staff-calendar-date-text{min-width:auto;font-size:var(--text-sm)}.staff-calendar-entity-cell{min-width:150px;max-width:180px}.staff-calendar-day-header,.staff-calendar-shifts-cell{min-width:100px}.staff-calendar-entity-avatar{width:30px;height:30px}.staff-calendar-shift-card{padding:var(--spacing-1)}.staff-calendar-shift-time,.staff-calendar-shift-client{font-size:10px}}.my-timesheets-container{padding:1rem}.filters{display:flex;gap:1rem;margin-bottom:1rem;flex-wrap:wrap}.status-filter{padding:.5rem;border:1px solid #d1d5db;border-radius:4px;font-size:.9rem}.status-cell{display:flex;align-items:center;gap:.5rem}.status-icon{width:18px;height:18px}.status-icon.approved{color:#22c55e}.status-icon.rejected{color:#ef4444}.status-icon.completed{color:#3b82f6}.status-icon.pending{color:#f59e0b}.status-text{text-transform:capitalize}.empty-state{text-align:center;padding:2rem;color:#999}.error-message{padding:1rem;background-color:#fee2e2;color:#991b1b;border-radius:4px;margin-bottom:1rem}.icon{width:16px;height:16px;margin-right:.25rem}.optimizer-calendar-view{background:var(--card-bg, #ffffff);border-radius:12px;border:1px solid var(--border-color, #e5e7eb);overflow:hidden;-webkit-user-select:none;user-select:none}.ocv-header{display:flex;justify-content:space-between;align-items:center;padding:16px 20px;border-bottom:1px solid var(--border-color, #e5e7eb);background:var(--surface-subtle, #f9fafb)}.ocv-view-toggle{display:flex;gap:8px}.ocv-view-toggle button{display:flex;align-items:center;gap:6px}.ocv-nav{display:flex;align-items:center;gap:8px}.ocv-nav-title{font-weight:600;min-width:180px;text-align:center;color:var(--text-primary, #111827)}.ocv-selection-bar{display:flex;justify-content:space-between;align-items:center;padding:12px 20px;background:var(--primary-subtle, #eff6ff);border-bottom:1px solid var(--primary-border, #bfdbfe)}.ocv-selection-info{display:flex;align-items:center;gap:8px;color:var(--primary, #2563eb);font-size:14px;font-weight:500}.ocv-hint{color:var(--text-muted, #6b7280);font-weight:400}.ocv-selection-actions{display:flex;gap:8px}.ocv-grid{padding:16px 20px}.ocv-header-row{display:grid;gap:8px;margin-bottom:8px}.ocv-grid-week .ocv-header-row,.ocv-grid-month .ocv-header-row{grid-template-columns:repeat(7,1fr)}.ocv-header-cell{text-align:center;font-size:12px;font-weight:600;color:var(--text-muted, #6b7280);text-transform:uppercase;padding:8px 4px}.ocv-body{display:grid;gap:8px}.ocv-body-week,.ocv-body-month{grid-template-columns:repeat(7,1fr)}.ocv-cell{position:relative;min-height:72px;padding:8px;background:var(--surface, #ffffff);border:2px solid var(--border-color, #e5e7eb);border-radius:8px;cursor:pointer;transition:all var(--duration-fast) var(--ease-out);display:flex;flex-direction:column;gap:4px}.ocv-cell:hover{border-color:var(--primary, #2563eb);background:var(--primary-subtle, #eff6ff)}.ocv-cell-selected{border-color:var(--primary, #2563eb);background:var(--primary-subtle, #eff6ff);box-shadow:0 0 0 2px var(--primary-light, rgba(37, 99, 235, .2))}.ocv-cell-today{border-color:var(--success, #10b981)}.ocv-cell-today:after{content:"";position:absolute;top:4px;right:4px;width:6px;height:6px;background:var(--success, #10b981);border-radius:50%}.ocv-cell-past{opacity:.6}.ocv-cell-date{font-size:12px;font-weight:600;color:var(--text-secondary, #374151)}.ocv-cell-content{flex:1;display:flex;flex-direction:column;justify-content:center;gap:4px}.ocv-cell-stats{display:flex;gap:8px;justify-content:center}.ocv-stat{display:flex;align-items:center;gap:3px;font-size:11px;color:var(--text-secondary, #374151);background:var(--surface-subtle, #f3f4f6);padding:2px 6px;border-radius:4px}.ocv-unassigned-indicator{position:absolute;top:4px;left:4px;font-size:10px}.ocv-cell-empty{display:flex;align-items:center;justify-content:center;flex:1;color:var(--text-muted, #9ca3af);font-size:14px}.ocv-cell-loading{display:flex;align-items:center;justify-content:center;flex:1}.ocv-cell-loading .spin{animation:spin 1s linear infinite;color:var(--text-muted, #9ca3af)}.ocv-legend{display:flex;justify-content:center;gap:24px;padding:12px 20px;background:var(--surface-subtle, #f9fafb);border-top:1px solid var(--border-color, #e5e7eb)}.ocv-legend-item{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--text-muted, #6b7280)}.ocv-legend-unassigned{font-size:10px}.ocv-action{padding:16px 20px;display:flex;justify-content:center;border-top:1px solid var(--border-color, #e5e7eb);background:var(--surface-subtle, #f9fafb)}.ocv-optimize-btn{min-width:280px;display:flex;align-items:center;justify-content:center;gap:10px;font-size:16px;font-weight:600;padding:14px 28px}.ocv-optimize-btn .spin{animation:spin 1s linear infinite}.dark .optimizer-calendar-view{background:var(--card);border-color:var(--border)}.dark .ocv-header{background:var(--muted);border-color:var(--border)}.dark .ocv-selection-bar{background:color-mix(in srgb,var(--primary) 15%,transparent);border-color:color-mix(in srgb,var(--primary) 30%,transparent)}.dark .ocv-cell{background:var(--card);border-color:var(--border)}.dark .ocv-cell:hover{background:color-mix(in srgb,var(--primary) 15%,transparent)}.dark .ocv-cell-selected{background:color-mix(in srgb,var(--primary) 20%,transparent)}.dark .ocv-legend,.dark .ocv-action{background:var(--muted);border-color:var(--border)}.dark .ocv-stat{background:#ffffff1a}@media (max-width: 768px){.ocv-header{flex-direction:column;gap:12px}.ocv-selection-bar{flex-direction:column;gap:8px;text-align:center}.ocv-cell{min-height:60px;padding:6px}.ocv-header-cell{font-size:10px}.ocv-stat{font-size:10px;padding:2px 4px}.ocv-optimize-btn{min-width:100%}}.optimization-page{padding:24px;max-width:1400px;margin:0 auto}.optimization-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:400px;gap:16px;color:var(--text-muted, #6b7280)}.optimization-loading .spin{animation:spin 1s linear infinite}.optimization-header{margin-bottom:24px}.optimization-header .header-content{display:flex;align-items:center;gap:16px}.optimization-header .header-icon{width:56px;height:56px;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,var(--primary),color-mix(in srgb,var(--primary) 80%,black));border-radius:12px;color:#fff}.optimization-header h1{margin:0;font-size:28px;font-weight:700;color:var(--text-primary, #111827)}.optimization-header p{margin:4px 0 0;color:var(--text-muted, #6b7280);font-size:14px}.optimization-error{display:flex;align-items:center;gap:8px;padding:12px 16px;background:var(--error-bg, #fef2f2);border:1px solid var(--error-border, #fecaca);border-radius:8px;color:var(--error, #dc2626);margin-bottom:24px}.optimization-content{display:flex;flex-direction:column;gap:32px}.optimization-section{background:var(--card-bg, #ffffff);border-radius:12px;border:1px solid var(--border-color, #e5e7eb);overflow:hidden}.optimization-section>.section-header{display:flex;justify-content:space-between;align-items:center;padding:16px 20px;border-bottom:1px solid var(--border-color, #e5e7eb);background:var(--surface-subtle, #f9fafb)}.optimization-section .section-header h2{margin:0;font-size:16px;font-weight:600;display:flex;align-items:center;gap:8px;color:var(--text-primary, #111827)}.section-count{font-size:13px;color:var(--text-muted, #6b7280);background:var(--surface, #ffffff);padding:4px 10px;border-radius:20px;border:1px solid var(--border-color, #e5e7eb)}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:48px 24px;text-align:center;color:var(--text-muted, #6b7280)}.empty-state h3{margin:16px 0 8px;color:var(--text-primary, #111827);font-size:18px}.empty-state p{margin:0;font-size:14px}.sessions-list{padding:12px;display:flex;flex-direction:column;gap:12px}.session-card{background:var(--surface, #ffffff);border:1px solid var(--border-color, #e5e7eb);border-radius:10px;cursor:pointer;transition:all .2s ease;overflow:hidden}.session-card:hover{border-color:var(--primary, #2563eb);box-shadow:0 4px 12px #0000000d}.session-card-main{display:flex;justify-content:space-between;align-items:center;padding:16px;gap:16px}.session-info h3{margin:0 0 8px;font-size:15px;font-weight:600;color:var(--text-primary, #111827)}.session-meta{display:flex;gap:16px;font-size:13px;color:var(--text-muted, #6b7280)}.session-meta span{display:flex;align-items:center;gap:6px}.session-actions{display:flex;align-items:center;gap:12px}.btn-delete{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border:none;background:transparent;color:var(--text-muted, #6b7280);border-radius:6px;cursor:pointer;transition:all .15s ease}.btn-delete:hover{background:var(--error-bg, #fef2f2);color:var(--error, #dc2626)}.btn-delete:disabled{opacity:.5;cursor:not-allowed}.chevron{color:var(--text-muted, #9ca3af)}.session-card-cta{display:flex;align-items:center;gap:6px;padding:10px 16px;background:var(--primary-subtle, #eff6ff);color:var(--primary, #2563eb);font-size:13px;font-weight:500;border-top:1px solid var(--border-color, #e5e7eb)}.status-badge{display:inline-flex;align-items:center;gap:4px;padding:4px 10px;font-size:12px;font-weight:500;border-radius:20px}.status-draft{background:var(--warning-bg, #fffbeb);color:var(--warning, #d97706)}.status-saved{background:var(--info-bg, #eff6ff);color:var(--info, #2563eb)}.status-published{background:var(--success-bg, #ecfdf5);color:var(--success, #059669)}.dark .optimization-page{background:transparent}.dark .optimization-section{background:var(--card);border-color:var(--border)}.dark .optimization-section>.section-header{background:var(--muted);border-color:var(--border)}.dark .session-card{background:var(--card);border-color:var(--border)}.dark .session-card-cta{background:color-mix(in srgb,var(--primary) 15%,transparent);border-color:var(--border)}@media (max-width: 768px){.optimization-page{padding:16px}.optimization-header .header-content{flex-direction:column;text-align:center}.session-card-main{flex-direction:column;align-items:flex-start}.session-actions{width:100%;justify-content:flex-end}.session-meta{flex-direction:column;gap:8px}}.resizable-panel-layout{display:flex;height:100%;width:100%;overflow:hidden;background:var(--bg-primary, #f8fafc)}.resizable-panel-layout.resizing{cursor:col-resize}.resizable-panel-layout.resizing .rpl-left-panel,.resizable-panel-layout.resizing .rpl-right-panel{pointer-events:none;-webkit-user-select:none;user-select:none}.rpl-left-panel{height:100%;overflow:hidden;display:flex;flex-direction:column;background:var(--bg-secondary, #ffffff);border-right:1px solid var(--border-color, #e2e8f0);transition:width var(--duration-fast) var(--ease-out)}.resizable-panel-layout.resizing .rpl-left-panel{transition:none}.rpl-right-panel{height:100%;overflow:hidden;display:flex;flex-direction:column;background:var(--bg-primary, #f8fafc);transition:width var(--duration-fast) var(--ease-out)}.resizable-panel-layout.resizing .rpl-right-panel{transition:none}.rpl-divider{width:8px;height:100%;background:var(--bg-secondary, #ffffff);border-left:1px solid var(--border-color, #e2e8f0);border-right:1px solid var(--border-color, #e2e8f0);cursor:col-resize;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:background-color var(--duration-fast) var(--ease-out)}.rpl-divider:hover{background:var(--bg-hover, #f1f5f9)}.rpl-divider-handle{display:flex;flex-direction:column;align-items:center;justify-content:center;height:48px;opacity:.5;transition:opacity var(--duration-fast) var(--ease-out)}.rpl-divider:hover .rpl-divider-handle{opacity:1}.rpl-divider-dots{display:flex;flex-direction:column;gap:3px}.rpl-divider-dots span{width:4px;height:4px;border-radius:50%;background:var(--text-muted, #94a3b8)}.rpl-divider:hover .rpl-divider-dots span{background:var(--primary, #3b82f6)}.resizable-panel-layout.resizing .rpl-divider{background:var(--primary-light, #dbeafe)}.resizable-panel-layout.resizing .rpl-divider-dots span{background:var(--primary, #3b82f6)}.dark .resizable-panel-layout{background:var(--background)}.dark .rpl-left-panel{background:var(--card);border-color:var(--border)}.dark .rpl-right-panel{background:var(--background)}.dark .rpl-divider{background:var(--card);border-color:var(--border)}.dark .rpl-divider:hover{background:var(--accent)}@media (max-width: 768px){.resizable-panel-layout{flex-direction:column}.rpl-left-panel{width:100%!important;height:50%;border-right:none;border-bottom:1px solid var(--border-color, #e2e8f0)}.rpl-right-panel{width:100%!important;height:50%}.rpl-divider{width:100%;height:8px;cursor:row-resize;border-left:none;border-right:none;border-top:1px solid var(--border-color, #e2e8f0);border-bottom:1px solid var(--border-color, #e2e8f0)}.rpl-divider-handle{flex-direction:row;height:auto;width:48px}.rpl-divider-dots{flex-direction:row;gap:3px}}.scores-dashboard{background:var(--bg-secondary, #ffffff);border-radius:12px;border:1px solid var(--border-color, #e2e8f0);overflow:hidden}.scores-header{display:flex;align-items:center;justify-content:space-between;padding:14px 16px;background:var(--bg-tertiary, #f8fafc);border-bottom:1px solid var(--border-color, #e2e8f0)}.scores-title{display:flex;align-items:center;gap:8px;color:var(--text-primary, #1e293b)}.scores-title h3{margin:0;font-size:14px;font-weight:600}.scores-refresh{width:28px;height:28px;display:flex;align-items:center;justify-content:center;border:1px solid var(--border-color, #e2e8f0);border-radius:6px;background:var(--bg-secondary, #ffffff);color:var(--text-muted, #64748b);cursor:pointer;font-size:14px;transition:all var(--duration-fast) var(--ease-out)}.scores-refresh:hover{background:var(--bg-hover, #f1f5f9);color:var(--primary, #3b82f6);border-color:var(--primary, #3b82f6)}.scores-loading{padding:16px;display:flex;flex-direction:column;gap:12px}.score-skeleton{height:72px;background:linear-gradient(90deg,var(--bg-tertiary, #f1f5f9) 25%,var(--bg-secondary, #ffffff) 50%,var(--bg-tertiary, #f1f5f9) 75%);background-size:200% 100%;animation:shimmer 1.5s infinite;border-radius:8px}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.scores-empty-message{padding:24px 16px;text-align:center;color:var(--text-muted, #64748b);font-size:14px}.scores-list{padding:12px;display:flex;flex-direction:column;gap:8px}.score-item{background:var(--bg-tertiary, #f8fafc);border:1px solid var(--border-color, #e2e8f0);border-radius:10px;padding:12px;transition:all var(--duration-normal) var(--ease-out)}.score-item:hover{border-color:var(--border-hover, #cbd5e1);box-shadow:0 2px 4px #0000000a}.score-item.expanded{background:var(--bg-secondary, #ffffff);border-color:var(--primary-light, #93c5fd)}.score-item-header{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:10px}.score-item-left{display:flex;align-items:center;gap:10px;flex:1;min-width:0}.score-icon{width:32px;height:32px;display:flex;align-items:center;justify-content:center;background:var(--bg-secondary, #ffffff);border-radius:8px;flex-shrink:0}.score-info{display:flex;flex-direction:column;min-width:0}.score-label{font-size:13px;font-weight:600;color:var(--text-primary, #1e293b)}.score-description{font-size:11px;color:var(--text-muted, #64748b);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.score-item-right{display:flex;align-items:center;gap:8px}.score-value-container{display:flex;align-items:baseline;gap:2px}.score-value{font-size:20px;font-weight:700;color:var(--text-primary, #1e293b)}.score-unit{font-size:12px;color:var(--text-muted, #64748b)}.score-trend{display:inline-flex;align-items:center;gap:2px;font-size:11px;font-weight:500;padding:2px 6px;border-radius:4px;margin-left:6px}.score-trend.positive{background:var(--success-bg, #dcfce7);color:var(--success, #16a34a)}.score-trend.negative{background:var(--error-bg, #fee2e2);color:var(--error, #dc2626)}.score-trend.neutral{background:var(--bg-tertiary, #f1f5f9);color:var(--text-muted, #64748b)}.score-expand{color:var(--text-muted, #64748b);transition:transform .2s ease}.score-item.expanded .score-expand{color:var(--primary, #3b82f6)}.score-bar-container{height:6px;background:var(--bg-secondary, #e2e8f0);border-radius:3px;overflow:hidden}.score-bar{height:100%;border-radius:3px;transition:width .5s ease-out}.score-item.score-excellent .score-value{color:var(--success, #16a34a)}.score-item.score-good .score-value{color:var(--info, #3b82f6)}.score-item.score-fair .score-value{color:var(--warning, #f59e0b)}.score-item.score-poor .score-value{color:var(--error, #dc2626)}.score-details{margin-top:12px;padding-top:12px;border-top:1px solid var(--border-color, #e2e8f0);display:flex;flex-direction:column;gap:6px;animation:slideDown .2s ease}.detail-item{display:flex;justify-content:space-between;font-size:12px}.detail-item span:first-child{color:var(--text-muted, #64748b)}.detail-item span:last-child{color:var(--text-primary, #1e293b);font-weight:500}.dark .scores-dashboard{background:var(--card);border-color:var(--border)}.dark .scores-header,.dark .score-item{background:var(--muted);border-color:var(--border)}.dark .score-item.expanded,.dark .score-icon{background:var(--card)}.dark .score-bar-container{background:var(--muted)}.quick-actions-panel{background:var(--bg-secondary, #ffffff);border-radius:12px;border:1px solid var(--border-color, #e2e8f0);overflow:hidden}.qap-header{display:flex;align-items:center;gap:8px;padding:14px 16px;background:var(--bg-tertiary, #f8fafc);border-bottom:1px solid var(--border-color, #e2e8f0);color:var(--text-primary, #1e293b)}.qap-header h3{margin:0;font-size:14px;font-weight:600}.qap-grid{padding:12px;display:grid;grid-template-columns:repeat(2,1fr);gap:10px}.qap-action{display:flex;align-items:flex-start;gap:10px;padding:12px;background:var(--bg-tertiary, #f8fafc);border:1px solid var(--border-color, #e2e8f0);border-radius:10px;cursor:pointer;text-align:left;transition:all var(--duration-normal) var(--ease-out);position:relative}.qap-action:hover:not(:disabled){background:var(--bg-secondary, #ffffff);border-color:var(--border-hover, #cbd5e1);box-shadow:0 2px 8px #0000000f;transform:translateY(-1px)}.qap-action:active:not(:disabled){transform:translateY(0)}.qap-action:disabled{opacity:.6;cursor:not-allowed}.qap-action.active{background:var(--bg-secondary, #ffffff);border-color:var(--primary, #3b82f6);box-shadow:0 0 0 2px #3b82f633}.qap-action.success{background:var(--success-bg, #dcfce7);border-color:var(--success, #16a34a)}.qap-action.error{background:var(--error-bg, #fee2e2);border-color:var(--error, #dc2626)}.qap-action-icon{width:40px;height:40px;display:flex;align-items:center;justify-content:center;border-radius:10px;flex-shrink:0}.qap-action-icon .spin{animation:spin 1s linear infinite}.qap-action-content{display:flex;flex-direction:column;gap:2px;min-width:0;flex:1}.qap-action-label{font-size:13px;font-weight:600;color:var(--text-primary, #1e293b)}.qap-action-description{font-size:11px;color:var(--text-muted, #64748b);line-height:1.3}.qap-action-result{font-size:11px;font-weight:500;line-height:1.3}.qap-action-result.success{color:var(--success, #16a34a)}.qap-action-result.error{color:var(--error, #dc2626)}.qap-action-badge{position:absolute;top:8px;right:8px;min-width:20px;height:20px;padding:0 6px;display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:600;color:#fff;border-radius:10px}.qap-hint{padding:10px 16px;margin:0;font-size:11px;color:var(--text-muted, #64748b);text-align:center;background:var(--bg-tertiary, #f8fafc);border-top:1px solid var(--border-color, #e2e8f0)}.dark .quick-actions-panel{background:var(--card);border-color:var(--border)}.dark .qap-header,.dark .qap-action{background:var(--muted);border-color:var(--border)}.dark .qap-action:hover:not(:disabled){background:var(--card)}.dark .qap-hint{background:var(--muted);border-color:var(--border)}@media (max-width: 640px){.qap-grid{grid-template-columns:1fr}}.weight-sliders-panel{background:var(--bg-secondary, #ffffff);border-radius:12px;border:1px solid var(--border-color, #e2e8f0);overflow:hidden}.wsp-header{width:100%;display:flex;align-items:center;justify-content:space-between;padding:14px 16px;background:var(--bg-tertiary, #f8fafc);border:none;cursor:pointer;color:var(--text-primary, #1e293b);transition:background-color .15s ease}.wsp-header:hover{background:var(--bg-hover, #f1f5f9)}.wsp-header-left{display:flex;align-items:center;gap:8px;font-size:14px;font-weight:600}.wsp-content{padding:16px;border-top:1px solid var(--border-color, #e2e8f0);animation:wsp-slideDown .2s ease}@keyframes wsp-slideDown{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.wsp-sliders{display:flex;flex-direction:column;gap:16px;margin-bottom:16px}.wsp-slider-row{display:flex;flex-direction:column;gap:6px}.wsp-slider-header{display:flex;align-items:center;justify-content:space-between}.wsp-slider-label{font-size:13px;font-weight:600}.wsp-slider-value{display:flex;align-items:center;gap:4px;font-size:13px;color:var(--text-muted, #64748b)}.wsp-value-input{width:48px;padding:4px 8px;border:1px solid var(--border-color, #e2e8f0);border-radius:6px;font-size:13px;text-align:right;background:var(--bg-secondary, #ffffff);color:var(--text-primary, #1e293b)}.wsp-value-input:focus{outline:none;border-color:var(--primary, #3b82f6);box-shadow:0 0 0 2px #3b82f626}.wsp-slider-container{position:relative;height:8px;background:var(--bg-tertiary, #e2e8f0);border-radius:4px;overflow:hidden}.wsp-slider{position:absolute;width:100%;height:100%;opacity:0;cursor:pointer;z-index:2}.wsp-slider-fill{position:absolute;top:0;left:0;height:100%;border-radius:4px;transition:width .1s ease;pointer-events:none}.wsp-total{padding:10px 12px;background:var(--bg-tertiary, #f8fafc);border-radius:8px;text-align:center;font-size:14px;font-weight:600;margin-bottom:12px}.wsp-total.valid{color:var(--success, #16a34a);background:var(--success-bg, #dcfce7)}.wsp-total.invalid{color:var(--error, #dc2626);background:var(--error-bg, #fee2e2)}.wsp-total-hint{font-weight:400;font-size:12px;margin-left:8px}.wsp-presets{display:flex;gap:8px;margin-bottom:12px}.wsp-preset-btn{flex:1;display:flex;align-items:center;justify-content:center;gap:6px;padding:8px 12px;background:var(--bg-tertiary, #f8fafc);border:1px solid var(--border-color, #e2e8f0);border-radius:8px;font-size:12px;font-weight:500;color:var(--text-secondary, #475569);cursor:pointer;transition:all .15s ease}.wsp-preset-btn:hover:not(:disabled){background:var(--bg-secondary, #ffffff);border-color:var(--border-hover, #cbd5e1)}.wsp-preset-btn:disabled{opacity:.6;cursor:not-allowed}.wsp-optimize-btn{width:100%;display:flex;align-items:center;justify-content:center;gap:8px;padding:12px 16px;background:linear-gradient(135deg,var(--primary),color-mix(in srgb,var(--primary) 80%,black));border:none;border-radius:10px;font-size:14px;font-weight:600;color:#fff;cursor:pointer;transition:all .2s ease}.wsp-optimize-btn:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 4px 12px #3b82f64d}.wsp-optimize-btn:active:not(:disabled){transform:translateY(0)}.wsp-optimize-btn:disabled{opacity:.6;cursor:not-allowed;transform:none}.wsp-optimize-btn .spin{animation:wsp-spin 1s linear infinite}@keyframes wsp-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.dark .weight-sliders-panel{background:var(--card);border-color:var(--border)}.dark .wsp-header{background:var(--muted)}.dark .wsp-header:hover{background:var(--accent)}.dark .wsp-content{border-color:var(--border)}.dark .wsp-value-input{background:var(--input-background);border-color:var(--border)}.dark .wsp-slider-container,.dark .wsp-total{background:var(--muted)}.dark .wsp-preset-btn{background:var(--muted);border-color:var(--border)}.ai-chat-panel{background:var(--bg-secondary, #ffffff);border-radius:12px;border:1px solid var(--border-color, #e2e8f0);overflow:hidden}.acp-header{width:100%;display:flex;align-items:center;justify-content:space-between;padding:14px 16px;background:var(--bg-tertiary, #f8fafc);border:none;cursor:pointer;color:var(--text-primary, #1e293b);transition:background-color var(--duration-fast) var(--ease-out)}.acp-header:hover{background:var(--bg-hover, #f1f5f9)}.acp-header-left{display:flex;align-items:center;gap:8px;font-size:14px;font-weight:600}.acp-badge{background:var(--primary, #3b82f6);color:#fff;font-size:11px;font-weight:600;padding:2px 7px;border-radius:10px}.acp-content{display:flex;flex-direction:column;border-top:1px solid var(--border-color, #e2e8f0);height:300px;animation:acp-slideDown var(--duration-normal) var(--ease-out)}@keyframes acp-slideDown{0%{opacity:0;height:0}to{opacity:1;height:300px}}.acp-messages{flex:1;overflow-y:auto;padding:12px;display:flex;flex-direction:column;gap:12px}.acp-welcome{display:flex;flex-direction:column;align-items:center;justify-content:flex-start;height:100%;text-align:center;color:var(--text-muted, #64748b);padding:16px;overflow-y:auto}.acp-welcome-header{display:flex;align-items:center;gap:8px;margin-bottom:8px}.acp-welcome-header h4{margin:0;font-size:15px;font-weight:600;color:var(--text-primary, #1e293b)}.acp-welcome-icon{color:var(--primary, #3b82f6)}.acp-welcome-intro{margin:0 0 16px;font-size:12px;line-height:1.5;color:var(--text-secondary, #64748b)}.acp-welcome-hint{margin:12px 0 0;font-size:11px;color:var(--text-muted, #94a3b8);font-style:italic}.acp-capabilities{width:100%;display:flex;flex-direction:column;gap:12px}.acp-capability-group{display:flex;flex-direction:column;gap:6px}.acp-capability-label{font-size:11px;font-weight:600;color:var(--text-muted, #94a3b8);text-transform:uppercase;letter-spacing:.5px}.acp-suggested-row{display:flex;flex-wrap:wrap;gap:6px;justify-content:center}.acp-suggested-btn{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;background:var(--bg-tertiary, #f8fafc);border:1px solid var(--border-color, #e2e8f0);border-radius:16px;font-size:11px;color:var(--text-secondary, #475569);cursor:pointer;transition:all var(--duration-fast) var(--ease-out);white-space:nowrap}.acp-suggested-btn svg{flex-shrink:0;opacity:.7}.acp-suggested-btn:hover:not(:disabled){background:var(--primary-light, #dbeafe);border-color:var(--primary, #3b82f6);color:var(--primary, #3b82f6)}.acp-suggested-btn:hover:not(:disabled) svg{opacity:1}.acp-suggested-btn:disabled{opacity:.6;cursor:not-allowed}.acp-message{display:flex;gap:10px;max-width:90%}.acp-message.user{align-self:flex-end;flex-direction:row-reverse}.acp-message-avatar{width:28px;height:28px;display:flex;align-items:center;justify-content:center;background:var(--bg-tertiary, #f1f5f9);border-radius:50%;font-size:14px;flex-shrink:0}.acp-message.user .acp-message-avatar{background:var(--primary-light, #dbeafe)}.acp-message-content{padding:10px 14px;background:var(--bg-tertiary, #f1f5f9);border-radius:12px;font-size:13px;line-height:1.5;color:var(--text-primary, #1e293b)}.acp-message.user .acp-message-content{background:var(--primary, #3b82f6);color:#fff}.acp-message.error .acp-message-content{background:var(--error-bg, #fee2e2);color:var(--error, #dc2626)}.acp-message-content p{margin:0}.acp-message-content p+p{margin-top:8px}.acp-tool-calls{margin-top:8px;font-size:11px}.acp-tool-calls summary{cursor:pointer;color:var(--text-muted, #64748b)}.acp-tools-list{margin-top:6px;display:flex;flex-wrap:wrap;gap:4px}.acp-tool-item{display:inline-flex;align-items:center;gap:4px;padding:2px 8px;background:var(--bg-secondary, #ffffff);border-radius:4px;font-size:10px}.acp-tool-name{font-family:inherit;font-size:11px;color:var(--text-secondary, #475569)}.acp-tool-status{font-size:11px}.acp-tool-status.success{color:var(--success, #16a34a)}.acp-tool-status.pending{color:var(--text-muted, #94a3b8)}.acp-typing{display:flex;gap:4px;padding:4px 0}.acp-typing span{width:6px;height:6px;background:var(--text-muted, #94a3b8);border-radius:50%;animation:acp-bounce var(--duration-slower) var(--ease-in-out) infinite}.acp-typing span:nth-child(2){animation-delay:.2s}.acp-typing span:nth-child(3){animation-delay:.4s}@keyframes acp-bounce{0%,60%,to{transform:translateY(0);opacity:.5}30%{transform:translateY(-4px);opacity:1}}.acp-input-container{display:flex;gap:8px;padding:12px;background:var(--bg-tertiary, #f8fafc);border-top:1px solid var(--border-color, #e2e8f0)}.acp-input{flex:1;padding:10px 14px;border:1px solid var(--border-color, #e2e8f0);border-radius:10px;font-size:13px;background:var(--bg-secondary, #ffffff);color:var(--text-primary, #1e293b)}.acp-input:focus{outline:none;border-color:var(--primary, #3b82f6);box-shadow:0 0 0 2px #3b82f626}.acp-input::placeholder{color:var(--text-muted, #94a3b8)}.acp-send-btn{width:40px;height:40px;display:flex;align-items:center;justify-content:center;background:var(--primary, #3b82f6);border:none;border-radius:10px;color:#fff;cursor:pointer;transition:all var(--duration-fast) var(--ease-out)}.acp-send-btn:hover:not(:disabled){background:color-mix(in srgb,var(--primary) 80%,black)}.acp-send-btn:disabled{opacity:.5;cursor:not-allowed}.acp-send-btn .spin{animation:spin 1s linear infinite}.dark .ai-chat-panel{background:var(--card);border-color:var(--border)}.dark .acp-header{background:var(--muted)}.dark .acp-header:hover{background:var(--accent)}.dark .acp-content{border-color:var(--border)}.dark .acp-message-avatar,.dark .acp-message-content{background:var(--muted)}.dark .acp-input-container{background:var(--muted);border-color:var(--border)}.dark .acp-input{background:var(--input-background);border-color:var(--border)}.dark .acp-suggested-btn{background:var(--muted);border-color:var(--border)}.dark .acp-tool-item{background:var(--muted)}.change-queue-panel{background:var(--bg-secondary, #ffffff);border-top:1px solid var(--border-color, #e2e8f0);flex-shrink:0}.cqp-header{width:100%;display:flex;align-items:center;justify-content:space-between;padding:10px 16px;background:var(--bg-tertiary, #f8fafc);border:none;cursor:pointer;color:var(--text-primary, #1e293b);transition:background-color var(--duration-fast) var(--ease-out)}.cqp-header:hover{background:var(--bg-hover, #f1f5f9)}.cqp-header-left{display:flex;align-items:center;gap:8px;font-size:13px;font-weight:600}.cqp-count{background:var(--primary, #3b82f6);color:#fff;font-size:11px;font-weight:600;padding:2px 7px;border-radius:10px}.cqp-header-right{display:flex;align-items:center;gap:10px}.cqp-undo-btn{display:flex;align-items:center;gap:4px;padding:5px 10px;background:var(--bg-secondary, #ffffff);border:1px solid var(--border-color, #e2e8f0);border-radius:6px;font-size:12px;font-weight:500;color:var(--text-secondary, #475569);cursor:pointer;transition:all var(--duration-fast) var(--ease-out)}.cqp-undo-btn:hover:not(:disabled){border-color:var(--primary, #3b82f6);color:var(--primary, #3b82f6)}.cqp-undo-btn:disabled{opacity:.6;cursor:not-allowed}.cqp-undo-btn .spin{animation:spin 1s linear infinite}.cqp-content{max-height:200px;overflow-y:auto;border-top:1px solid var(--border-color, #e2e8f0);animation:slideDown var(--duration-normal) var(--ease-out)}@keyframes cqp-slideDown{0%{opacity:0;max-height:0}to{opacity:1;max-height:200px}}.cqp-empty{padding:24px 16px;text-align:center}.cqp-empty p{margin:0 0 4px;font-size:13px;color:var(--text-secondary, #475569)}.cqp-empty span{font-size:12px;color:var(--text-muted, #94a3b8)}.cqp-list{padding:8px;display:flex;flex-direction:column;gap:6px}.cqp-item{display:flex;align-items:center;gap:10px;padding:10px 12px;background:var(--bg-tertiary, #f8fafc);border-radius:8px;transition:background-color var(--duration-fast) var(--ease-out)}.cqp-item.latest{background:var(--primary-light, #dbeafe);border:1px solid var(--primary-border, #93c5fd)}.cqp-item-icon{width:28px;height:28px;display:flex;align-items:center;justify-content:center;border-radius:6px;flex-shrink:0}.cqp-item-icon.swap{background:var(--info-bg, #dbeafe);color:var(--info, #3b82f6)}.cqp-item-icon.fill_gap{background:var(--success-bg, #dcfce7);color:var(--success, #16a34a)}.cqp-item-icon.remove{background:var(--warning-bg, #fef3c7);color:var(--warning, #d97706)}.cqp-item-content{flex:1;min-width:0}.cqp-item-description{display:block;font-size:12px;font-weight:500;color:var(--text-primary, #1e293b);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cqp-item-meta{display:block;font-size:11px;color:var(--text-muted, #64748b);margin-top:2px}.cqp-item-impact{display:flex;gap:4px;flex-shrink:0}.cqp-impact-badge{font-size:10px;font-weight:600;padding:2px 6px;border-radius:4px}.cqp-impact-badge.positive{background:var(--success-bg, #dcfce7);color:var(--success, #16a34a)}.cqp-impact-badge.negative{background:var(--error-bg, #fee2e2);color:var(--error, #dc2626)}.dark .change-queue-panel{background:var(--card);border-color:var(--border)}.dark .cqp-header{background:var(--muted)}.dark .cqp-header:hover{background:var(--accent)}.dark .cqp-content{border-color:var(--border)}.dark .cqp-item{background:var(--muted)}.dark .cqp-item.latest{background:color-mix(in srgb,var(--primary) 20%,transparent);border-color:color-mix(in srgb,var(--primary) 30%,transparent)}.dark .cqp-undo-btn{background:var(--card);border-color:var(--border)}.roster-preview-panel{display:flex;flex-direction:column;height:100%;background:var(--bg-primary, #f8fafc)}.rpp-header{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;background:var(--bg-secondary, #ffffff);border-bottom:1px solid var(--border-color, #e2e8f0);flex-shrink:0}.rpp-view-toggle{display:flex;gap:4px;background:var(--bg-tertiary, #f1f5f9);padding:4px;border-radius:8px}.rpp-view-btn{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border:none;border-radius:6px;background:transparent;color:var(--text-muted, #64748b);cursor:pointer;transition:all .15s ease}.rpp-view-btn:hover{color:var(--text-primary, #1e293b)}.rpp-view-btn.active{background:var(--bg-secondary, #ffffff);color:var(--primary, #3b82f6);box-shadow:0 1px 3px #0000001a}.rpp-navigation{display:flex;align-items:center;gap:8px}.rpp-nav-btn{display:flex;align-items:center;justify-content:center;width:28px;height:28px;border:1px solid var(--border-color, #e2e8f0);border-radius:6px;background:var(--bg-secondary, #ffffff);color:var(--text-muted, #64748b);cursor:pointer;transition:all .15s ease}.rpp-nav-btn:hover:not(:disabled){border-color:var(--primary, #3b82f6);color:var(--primary, #3b82f6)}.rpp-nav-btn:disabled{opacity:.4;cursor:not-allowed}.rpp-nav-label{font-size:13px;font-weight:500;color:var(--text-primary, #1e293b);min-width:120px;text-align:center}.rpp-summary{display:flex;gap:12px}.rpp-summary-item{display:flex;align-items:center;gap:4px;font-size:12px;font-weight:600}.rpp-summary-item.staffed{color:var(--success, #16a34a)}.rpp-summary-item.unassigned{color:var(--error, #dc2626)}.rpp-calendar{flex:1;overflow:auto;padding:16px}.rpp-calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:8px;min-width:700px}.rpp-day-column{background:var(--bg-secondary, #ffffff);border:1px solid var(--border-color, #e2e8f0);border-radius:10px;overflow:hidden}.rpp-day-header{padding:10px 12px;background:var(--bg-tertiary, #f8fafc);border-bottom:1px solid var(--border-color, #e2e8f0);text-align:center}.rpp-day-name{display:block;font-size:11px;font-weight:500;color:var(--text-muted, #64748b);text-transform:uppercase;letter-spacing:.5px}.rpp-day-date{display:block;font-size:18px;font-weight:700;color:var(--text-primary, #1e293b);margin-top:2px}.rpp-shifts{padding:8px;display:flex;flex-direction:column;gap:6px;min-height:100px}.rpp-no-shifts{display:flex;align-items:center;justify-content:center;height:100px;color:var(--text-muted, #94a3b8);font-size:12px}.rpp-shift{padding:8px 10px;border-radius:8px;border-left:3px solid;background:var(--bg-tertiary, #f8fafc);font-size:12px}.rpp-shift.staffed{border-color:var(--success, #16a34a)}.rpp-shift.partial{border-color:var(--warning, #f59e0b)}.rpp-shift.unassigned{border-color:var(--error, #dc2626);background:var(--error-bg, #fef2f2)}.rpp-shift-time{display:flex;align-items:center;gap:4px;font-weight:600;color:var(--text-primary, #1e293b);margin-bottom:4px}.rpp-shift-client{color:var(--text-muted, #64748b);font-size:11px;margin-bottom:4px}.rpp-shift-staff{display:flex;flex-wrap:wrap;gap:4px}.rpp-staff-name{background:var(--bg-secondary, #ffffff);padding:2px 6px;border-radius:4px;font-size:11px;color:var(--text-secondary, #475569)}.rpp-unassigned{color:var(--error, #dc2626);font-weight:500}.rpp-table-container{flex:1;overflow:auto;padding:16px}.rpp-table{width:100%;border-collapse:collapse;background:var(--bg-secondary, #ffffff);border-radius:10px;overflow:hidden;border:1px solid var(--border-color, #e2e8f0)}.rpp-table th,.rpp-table td{padding:12px 16px;text-align:left;font-size:13px;border-bottom:1px solid var(--border-color, #e2e8f0)}.rpp-table th{background:var(--bg-tertiary, #f8fafc);font-weight:600;color:var(--text-secondary, #475569);text-transform:uppercase;font-size:11px;letter-spacing:.5px}.rpp-table tr:last-child td{border-bottom:none}.rpp-table tr:hover{background:var(--bg-hover, #f8fafc)}.rpp-status-badge{display:inline-flex;padding:4px 10px;border-radius:12px;font-size:11px;font-weight:600}.rpp-status-badge.staffed{background:var(--success-bg, #dcfce7);color:var(--success, #16a34a)}.rpp-status-badge.partial{background:var(--warning-bg, #fef3c7);color:var(--warning, #d97706)}.rpp-status-badge.unassigned{background:var(--error-bg, #fee2e2);color:var(--error, #dc2626)}.rpp-staff-view{flex:1;overflow:auto;padding:16px}.rpp-no-staff{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;height:200px;color:var(--text-muted, #94a3b8)}.rpp-no-staff p{margin:0;font-size:14px}.rpp-staff-list{background:var(--bg-secondary, #ffffff);border:1px solid var(--border-color, #e2e8f0);border-radius:10px;overflow:hidden}.rpp-staff-header-row{display:grid;grid-template-columns:2fr 80px 80px 1fr;gap:12px;padding:12px 16px;background:var(--bg-tertiary, #f8fafc);border-bottom:1px solid var(--border-color, #e2e8f0);font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.5px;color:var(--text-secondary, #475569)}.rpp-staff-row{display:grid;grid-template-columns:2fr 80px 80px 1fr;gap:12px;padding:12px 16px;border-bottom:1px solid var(--border-color, #e2e8f0);align-items:center;font-size:13px}.rpp-staff-row:last-of-type{border-bottom:none}.rpp-staff-row:hover{background:var(--bg-hover, #f8fafc)}.rpp-staff-col-name{font-weight:500;color:var(--text-primary, #1e293b)}.rpp-staff-col-shifts{text-align:center;color:var(--text-muted, #64748b)}.rpp-staff-col-hours{text-align:center;font-weight:600;color:var(--text-primary, #1e293b)}.rpp-staff-col-bar{position:relative;height:20px;background:var(--bg-tertiary, #f1f5f9);border-radius:4px;overflow:hidden}.rpp-staff-bar{height:100%;background:linear-gradient(90deg,#3b82f6,#60a5fa);border-radius:4px;transition:width .3s ease}.rpp-staff-bar.overtime{background:linear-gradient(90deg,#f59e0b,#fbbf24)}.rpp-overtime-badge{position:absolute;right:4px;top:50%;transform:translateY(-50%);font-size:10px;font-weight:700;color:#d97706;background:var(--bg-secondary, #ffffff);padding:1px 4px;border-radius:3px}.rpp-staff-summary{display:flex;justify-content:space-between;padding:12px 16px;background:var(--bg-tertiary, #f8fafc);border-top:1px solid var(--border-color, #e2e8f0);font-size:12px;color:var(--text-muted, #64748b)}.dark .roster-preview-panel{background:var(--background)}.dark .rpp-header{background:var(--card);border-color:var(--border)}.dark .rpp-view-toggle{background:var(--muted)}.dark .rpp-view-btn.active{background:var(--card)}.dark .rpp-day-column{background:var(--card);border-color:var(--border)}.dark .rpp-day-header{background:var(--muted);border-color:var(--border)}.dark .rpp-shift{background:var(--muted)}.dark .rpp-staff-name{background:var(--card)}.dark .rpp-table{background:var(--card);border-color:var(--border)}.dark .rpp-table th{background:var(--muted)}.dark .rpp-table th,.dark .rpp-table td{border-color:var(--border)}.dark .rpp-staff-list{background:var(--card);border-color:var(--border)}.dark .rpp-staff-header-row{background:var(--muted);border-color:var(--border)}.dark .rpp-staff-row{border-color:var(--border)}.dark .rpp-staff-col-bar{background:var(--muted)}.dark .rpp-overtime-badge{background:var(--card)}.dark .rpp-staff-summary{background:var(--muted);border-color:var(--border)}@media (max-width: 768px){.rpp-calendar-grid{grid-template-columns:repeat(3,1fr);min-width:auto}.rpp-header{flex-wrap:wrap;gap:12px}.rpp-navigation{order:3;width:100%;justify-content:center}}.activity-history-panel{display:flex;flex-direction:column;height:100%;background:var(--bg-secondary, #ffffff);overflow:hidden}.ahp-content{flex:1;overflow-y:auto;display:flex;flex-direction:column;padding:16px}.ahp-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:48px 24px;text-align:center;color:var(--text-muted, #64748b);gap:12px;flex:1}.ahp-empty p{margin:0;font-weight:600;color:var(--text-secondary, #475569)}.ahp-empty span{font-size:13px}.ahp-messages{display:flex;flex-direction:column;gap:16px}.ahp-message{display:flex;gap:12px;animation:slideUp var(--duration-slow) var(--ease-out)}.ahp-message.latest{background:var(--primary-light, #dbeafe);border-radius:12px;padding:12px;margin:-12px}.ahp-message-avatar{width:36px;height:36px;border-radius:50%;background:var(--bg-tertiary, #f8fafc);display:flex;align-items:center;justify-content:center;flex-shrink:0;color:var(--primary, #3b82f6);border:2px solid var(--border-color, #e2e8f0)}.ahp-message.latest .ahp-message-avatar{background:var(--primary, #3b82f6);color:#fff;border-color:var(--primary, #3b82f6)}.ahp-message-content{flex:1;display:flex;flex-direction:column;gap:8px;min-width:0}.ahp-message-header{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.ahp-message-action{font-weight:600;font-size:14px;color:var(--text-primary, #1e293b)}.ahp-message-time{font-size:12px;color:var(--text-muted, #64748b);white-space:nowrap}.ahp-message-description{font-size:13px;color:var(--text-secondary, #475569);line-height:1.5}.ahp-changes-summary{font-size:13px;color:var(--text-secondary, #475569);padding:8px 12px;background:var(--bg-tertiary, #f8fafc);border-radius:8px;border-left:3px solid var(--primary, #3b82f6)}.ahp-scores-section{margin-top:4px}.ahp-score-comparison{display:flex;flex-direction:column;gap:8px;padding:12px;background:var(--bg-tertiary, #f8fafc);border-radius:8px;border:1px solid var(--border-color, #e2e8f0)}.ahp-score-item{display:flex;align-items:center;justify-content:space-between;font-size:13px;gap:12px}.ahp-score-label{font-weight:500;color:var(--text-secondary, #475569);text-transform:capitalize;flex-shrink:0}.ahp-score-values{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.ahp-score-before{color:var(--text-muted, #64748b);font-weight:500}.ahp-score-arrow{color:var(--text-muted, #64748b);font-size:12px}.ahp-score-after{color:var(--text-primary, #1e293b);font-weight:600}.ahp-score-change{display:flex;align-items:center;gap:4px;font-size:12px;font-weight:600;padding:2px 6px;border-radius:4px}.ahp-score-change.positive{color:var(--success, #16a34a);background:var(--success-bg, #dcfce7)}.ahp-score-change.negative{color:var(--error, #dc2626);background:var(--error-bg, #fee2e2)}.ahp-score-change.neutral{color:var(--text-muted, #64748b)}.ahp-actions-run{font-size:13px;color:var(--text-secondary, #475569);margin-top:4px}.ahp-actions-tags{display:flex;flex-wrap:wrap;gap:6px;margin-top:6px}.ahp-action-tag{padding:4px 10px;background:var(--bg-tertiary, #f8fafc);border:1px solid var(--border-color, #e2e8f0);border-radius:6px;font-size:12px;color:var(--text-secondary, #475569)}.ahp-message-actions{margin-top:8px;padding-top:8px;border-top:1px solid var(--border-color, #e2e8f0)}.ahp-undo-btn{display:flex;align-items:center;gap:6px;padding:6px 12px;background:var(--bg-secondary, #ffffff);border:1px solid var(--border-color, #e2e8f0);border-radius:6px;font-size:12px;font-weight:500;color:var(--text-secondary, #475569);cursor:pointer;transition:all var(--duration-fast) var(--ease-out)}.ahp-undo-btn:hover:not(:disabled){background:var(--bg-hover, #f1f5f9);border-color:var(--primary, #3b82f6);color:var(--primary, #3b82f6)}.ahp-undo-btn:disabled{opacity:.5;cursor:not-allowed}.ahp-undo-btn .spin{animation:spin 1s linear infinite}.dark .activity-history-panel{background:var(--card)}.dark .ahp-message.latest{background:color-mix(in srgb,var(--primary) 10%,transparent)}.dark .ahp-score-comparison,.dark .ahp-changes-summary{background:var(--muted);border-color:var(--border)}.ahp-scores-header{font-size:13px;font-weight:600;color:var(--text-primary, #1e293b);margin-bottom:8px}.ahp-scores-missing{font-size:12px;color:var(--text-muted, #64748b);font-style:italic;padding:8px;background:var(--bg-tertiary, #f8fafc);border-radius:6px}.ahp-changes-details{font-size:13px;color:var(--text-secondary, #475569);margin-top:8px}.ahp-changes-details strong{display:block;margin-bottom:6px;color:var(--text-primary, #1e293b)}.ahp-changes-list{margin:0;padding-left:20px;list-style-type:disc}.ahp-changes-list li{margin:4px 0;line-height:1.5}.ahp-more-changes{color:var(--text-muted, #64748b);font-style:italic}.dark .ahp-scores-missing{background:var(--muted)}.dark .ahp-changes-details{color:var(--muted-foreground)}.ahp-changes-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:6px;gap:12px;flex-wrap:wrap}.ahp-expand-btn{display:flex;align-items:center;gap:4px;padding:4px 8px;background:var(--bg-tertiary, #f8fafc);border:1px solid var(--border-color, #e2e8f0);border-radius:6px;font-size:12px;font-weight:500;color:var(--text-secondary, #475569);cursor:pointer;transition:all var(--duration-fast) var(--ease-out);white-space:nowrap}.ahp-expand-btn:hover{background:var(--bg-hover, #f1f5f9);border-color:var(--primary, #3b82f6);color:var(--primary, #3b82f6)}.dark .ahp-expand-btn{background:var(--muted);border-color:var(--border);color:var(--muted-foreground)}.dark .ahp-expand-btn:hover{background:var(--accent);border-color:var(--primary);color:var(--primary)}.optimization-session-page{display:flex;flex-direction:column;height:calc(100vh - 64px);background:var(--bg-primary, #f8fafc);overflow:hidden}.osp-loading,.osp-error{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;gap:16px;color:var(--text-muted, #64748b)}.osp-loading .spin{animation:spin 1s linear infinite}.osp-error{color:var(--text-secondary, #475569)}.osp-error h2{margin:0;color:var(--text-primary, #1e293b)}.osp-error p{margin:0 0 16px}.osp-header{display:flex;align-items:center;justify-content:space-between;padding:12px 20px;background:var(--bg-secondary, #ffffff);border-bottom:1px solid var(--border-color, #e2e8f0);flex-shrink:0}.osp-header-left{display:flex;align-items:center;gap:16px}.osp-back-btn{display:flex;align-items:center;justify-content:center;gap:8px;width:36px;height:36px;border:1px solid var(--border-color, #e2e8f0);border-radius:10px;background:var(--bg-secondary, #ffffff);color:var(--text-muted, #64748b);cursor:pointer;transition:all var(--duration-fast) var(--ease-out)}.osp-back-btn:hover{border-color:var(--primary, #3b82f6);color:var(--primary, #3b82f6);background:var(--primary-light, #dbeafe)}.osp-header-title{display:flex;align-items:center;gap:12px}.osp-icon{width:40px;height:40px;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#6366f1,#8b5cf6);border-radius:10px;color:#fff}.osp-header-title h1{margin:0;font-size:18px;font-weight:700;color:var(--text-primary, #1e293b)}.osp-header-meta{display:flex;align-items:center;gap:12px;margin-top:2px;font-size:13px;color:var(--text-muted, #64748b)}.osp-header-meta span{display:flex;align-items:center;gap:6px}.osp-status{padding:3px 10px;border-radius:12px;font-size:11px;font-weight:600;text-transform:capitalize}.osp-status.draft{background:var(--warning-bg, #fef3c7);color:var(--warning, #d97706)}.osp-status.published{background:var(--success-bg, #dcfce7);color:var(--success, #16a34a)}.osp-header-actions{display:flex;gap:10px}.osp-publish-btn{display:flex;align-items:center;gap:8px;padding:10px 20px;background:linear-gradient(135deg,var(--primary),color-mix(in srgb,var(--primary) 80%,black));border:none;border-radius:10px;font-size:14px;font-weight:600;color:#fff;cursor:pointer;transition:all .2s ease}.osp-publish-btn:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 4px 12px #3b82f64d}.osp-publish-btn:disabled{opacity:.7;cursor:not-allowed;transform:none}.osp-publish-btn .spin{animation:spin 1s linear infinite}.osp-error-banner{display:flex;align-items:center;gap:10px;padding:12px 20px;background:var(--error-bg, #fee2e2);border-bottom:1px solid var(--error-border, #fca5a5);color:var(--error, #dc2626);font-size:13px}.osp-error-banner button{margin-left:auto;padding:4px 8px;background:none;border:none;color:var(--error, #dc2626);cursor:pointer;font-size:18px;line-height:1}.osp-content{flex:1;overflow:hidden}.osp-controls-panel{display:flex;flex-direction:column;gap:12px;padding:16px;height:100%;overflow-y:auto}.osp-modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;animation:osp-fadeIn .2s ease}@keyframes osp-fadeIn{0%{opacity:0}to{opacity:1}}.osp-modal{background:var(--bg-secondary, #ffffff);border-radius:16px;padding:24px;max-width:440px;width:90%;box-shadow:0 20px 40px #00000026;animation:osp-slideUp .3s ease}@keyframes osp-slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.osp-modal h3{margin:0 0 8px;font-size:18px;color:var(--text-primary, #1e293b)}.osp-modal p{margin:0 0 20px;color:var(--text-muted, #64748b);font-size:14px}.osp-publish-stats{background:var(--bg-tertiary, #f8fafc);border-radius:10px;padding:16px;margin-bottom:20px}.osp-stat{display:flex;justify-content:space-between;padding:6px 0;font-size:13px}.osp-stat:not(:last-child){border-bottom:1px solid var(--border-color, #e2e8f0)}.osp-stat span:first-child{color:var(--text-muted, #64748b)}.osp-stat span:last-child{font-weight:600;color:var(--text-primary, #1e293b)}.osp-modal-actions{display:flex;gap:12px;justify-content:flex-end}.osp-modal-cancel,.osp-modal-confirm{padding:10px 20px;border-radius:10px;font-size:14px;font-weight:600;cursor:pointer;transition:all var(--duration-fast) var(--ease-out);display:flex;align-items:center;gap:8px}.osp-modal-cancel{background:var(--bg-tertiary, #f1f5f9);border:1px solid var(--border-color, #e2e8f0);color:var(--text-secondary, #475569)}.osp-modal-cancel:hover:not(:disabled){background:var(--bg-hover, #e2e8f0)}.osp-modal-confirm{background:linear-gradient(135deg,var(--success, #16a34a),#15803d);border:none;color:#fff}.osp-modal-confirm:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 4px 12px #16a34a4d}.osp-modal-confirm:disabled,.osp-modal-cancel:disabled{opacity:.7;cursor:not-allowed}.dark .optimization-session-page{background:var(--background)}.dark .osp-header,.dark .osp-back-btn{background:var(--card);border-color:var(--border)}.dark .osp-modal{background:var(--card)}.dark .osp-publish-stats{background:var(--muted)}.dark .osp-modal-cancel{background:var(--muted);border-color:var(--border)}.osp-right-panel-container{display:flex;flex-direction:column;height:100%;background:var(--bg-secondary, #ffffff)}.osp-right-panel-tabs{display:flex;border-bottom:1px solid var(--border-color, #e2e8f0);background:var(--bg-tertiary, #f8fafc);flex-shrink:0}.osp-tab{flex:1;display:flex;align-items:center;justify-content:center;gap:8px;padding:12px 16px;background:none;border:none;border-bottom:2px solid transparent;font-size:14px;font-weight:500;color:var(--text-muted, #64748b);cursor:pointer;transition:all var(--duration-fast) var(--ease-out);position:relative}.osp-tab:hover{background:var(--bg-hover, #f1f5f9);color:var(--text-secondary, #475569)}.osp-tab.active{color:var(--primary, #3b82f6);border-bottom-color:var(--primary, #3b82f6);background:var(--bg-secondary, #ffffff)}.osp-tab-badge{background:var(--primary, #3b82f6);color:#fff;border-radius:10px;padding:2px 6px;font-size:11px;font-weight:600;margin-left:4px}.osp-right-panel-content{flex:1;overflow:hidden;display:flex;flex-direction:column}@media (max-width: 768px){.optimization-session-page{height:auto;min-height:calc(100vh - 64px)}.osp-header{flex-direction:column;align-items:flex-start;gap:12px}.osp-header-actions{width:100%}.osp-publish-btn{flex:1;justify-content:center}.osp-content{flex:none;min-height:0}.osp-controls-panel{padding:12px}}.sidebar{position:fixed;left:0;top:0;height:100vh;width:256px;background:var(--sidebar);border-right:1px solid var(--sidebar-border);display:flex;flex-direction:column;transition:width var(--duration-normal) var(--ease-in-out),transform var(--duration-normal) var(--ease-in-out);z-index:1000;overflow:hidden}.sidebar-collapsed{width:64px}.sidebar-header{display:flex;align-items:center;justify-content:space-between;padding:var(--spacing-4);border-bottom:1px solid var(--sidebar-border);min-height:64px}.sidebar-title{font-size:var(--text-lg);font-weight:var(--font-weight-semibold);color:var(--sidebar-foreground);margin:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sidebar-toggle{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border:none;background:transparent;border-radius:var(--radius);cursor:pointer;color:var(--sidebar-foreground);transition:background-color var(--duration-normal) var(--ease-in-out);flex-shrink:0}.sidebar-toggle:hover{background:var(--sidebar-accent)}.sidebar-mobile-close{display:none;align-items:center;justify-content:center;width:32px;height:32px;border:none;background:transparent;border-radius:var(--radius);cursor:pointer;color:var(--sidebar-foreground);transition:background-color var(--duration-normal) var(--ease-in-out)}.sidebar-mobile-close:hover{background:var(--sidebar-accent)}.sidebar-nav{flex:1;overflow-y:auto;padding:var(--spacing-2)}.sidebar-item{display:flex;align-items:center;gap:var(--spacing-3);width:100%;padding:var(--spacing-2) var(--spacing-3);border:none;background:transparent;border-radius:var(--radius);color:var(--sidebar-foreground);text-decoration:none;font-size:var(--text-sm);font-weight:var(--font-weight-medium);cursor:pointer;transition:background-color var(--duration-normal) var(--ease-in-out),color var(--duration-normal) var(--ease-in-out);white-space:nowrap}.sidebar-item:hover{background:var(--sidebar-accent);color:var(--sidebar-accent-foreground)}.sidebar-item-active{background:var(--sidebar-primary);color:var(--sidebar-primary-foreground)}.sidebar-item-active:hover{background:color-mix(in srgb,var(--sidebar-primary) 90%,black)}.sidebar-item-icon{width:20px;height:20px;flex-shrink:0}.sidebar-item-label{flex:1;overflow:hidden;text-overflow:ellipsis}.sidebar-item-external{position:relative}.sidebar-item-external-icon{width:14px;height:14px;flex-shrink:0;opacity:.6;margin-left:auto}.sidebar-item-group{justify-content:space-between}.sidebar-item-chevron{width:16px;height:16px;transition:transform var(--duration-normal) var(--ease-in-out)}.sidebar-item-chevron-expanded{transform:rotate(-90deg)}.sidebar-group{margin-bottom:var(--spacing-1)}.sidebar-group-collapsed .sidebar-item-label{display:none}.sidebar-subitems{margin-left:var(--spacing-4);margin-top:var(--spacing-1)}.sidebar-item-level-1{padding-left:var(--spacing-6);font-size:var(--text-xs)}.sidebar-overlay{display:none;position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;z-index:999}.sidebar-mobile-toggle{display:none;position:fixed;top:var(--spacing-2);left:var(--spacing-2);width:40px;height:40px;border:none;background:var(--card);border-radius:var(--radius);box-shadow:var(--elevation-md);cursor:pointer;color:var(--foreground);z-index:1001;align-items:center;justify-content:center;transition:background-color var(--duration-normal) var(--ease-in-out)}.sidebar-mobile-toggle:hover{background:var(--muted)}@media (max-width: 1024px){.sidebar{transform:translate(-100%)}.sidebar-mobile-open{transform:translate(0)}.sidebar-overlay{display:block}.sidebar-mobile-toggle,.sidebar-mobile-close{display:flex}}@media (min-width: 1025px){.app-content-with-sidebar{margin-left:256px}.app-content-with-sidebar-collapsed{margin-left:64px}}.theme-toggle{display:flex;align-items:center;justify-content:center;width:36px;height:36px;border:none;background:transparent;border-radius:var(--radius);cursor:pointer;color:var(--foreground);transition:background-color var(--duration-normal) var(--ease-in-out),transform var(--duration-normal) var(--ease-in-out)}.theme-toggle:hover{background:var(--muted)}.theme-toggle:active{transform:scale(.95)}.theme-toggle-icon{width:18px;height:18px;transition:transform var(--duration-normal) var(--ease-in-out)}.theme-toggle:hover .theme-toggle-icon{transform:rotate(15deg)}.breadcrumb{display:flex;align-items:center}.breadcrumb-list{display:flex;align-items:center;list-style:none;margin:0;padding:0;gap:var(--spacing-1)}.breadcrumb-item{display:flex;align-items:center;gap:var(--spacing-1)}.breadcrumb-separator{width:16px;height:16px;color:var(--muted-foreground);flex-shrink:0}.breadcrumb-link{display:flex;align-items:center;gap:var(--spacing-1);color:var(--muted-foreground);text-decoration:none;font-size:var(--text-sm);transition:color var(--duration-normal) var(--ease-in-out)}.breadcrumb-link:hover{color:var(--foreground)}.breadcrumb-icon{width:16px;height:16px}.breadcrumb-text{display:none}.breadcrumb-current{color:var(--foreground);font-size:var(--text-sm);font-weight:var(--font-weight-medium)}@media (min-width: 640px){.breadcrumb-text{display:inline}}.notifications-container{width:100%;max-width:400px}.notifications-header{display:flex;justify-content:space-between;align-items:center;padding:var(--spacing-4);border-bottom:1px solid var(--border)}.notifications-header-content{display:flex;align-items:center;gap:var(--spacing-2)}.notifications-header-actions{display:flex;gap:var(--spacing-2)}.notifications-content{max-height:500px;overflow-y:auto;padding:0}.notifications-group{border-bottom:1px solid var(--border)}.notifications-group:last-child{border-bottom:none}.notifications-group-header{padding:var(--spacing-3) var(--spacing-4);font-size:var(--text-xs);font-weight:var(--font-weight-semibold);color:var(--muted-foreground);text-transform:uppercase;background:var(--muted);border-bottom:1px solid var(--border)}.notifications-list{display:flex;flex-direction:column}.notification-item{display:flex;align-items:flex-start;justify-content:space-between;padding:var(--spacing-3) var(--spacing-4);border-bottom:1px solid var(--border);transition:background-color var(--duration-normal) var(--ease-in-out);cursor:pointer}.notification-item:last-child{border-bottom:none}.notification-item:hover{background:var(--muted)}.notification-item.notification-unread{background:color-mix(in srgb,var(--primary) 5%,transparent)}.notification-content{display:flex;gap:var(--spacing-3);flex:1;min-width:0}.notification-icon-wrapper{flex-shrink:0;margin-top:2px}.notification-icon{width:18px;height:18px}.notification-item.notification-info .notification-icon{color:var(--chart-1)}.notification-item.notification-success .notification-icon{color:var(--chart-2)}.notification-item.notification-warning .notification-icon{color:var(--chart-3)}.notification-item.notification-error .notification-icon{color:var(--chart-4)}.notification-text{flex:1;min-width:0}.notification-title{font-size:var(--text-sm);font-weight:var(--font-weight-medium);color:var(--foreground);margin-bottom:var(--spacing-1)}.notification-message{font-size:var(--text-sm);color:var(--muted-foreground);margin-bottom:var(--spacing-1);line-height:1.4}.notification-time{font-size:var(--text-xs);color:var(--muted-foreground)}.notification-actions{display:flex;gap:var(--spacing-1);flex-shrink:0;margin-left:var(--spacing-2)}.notifications-empty{width:100%;max-width:400px}.notifications-empty-content{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--spacing-8);text-align:center}.notifications-empty-icon{width:48px;height:48px;color:var(--muted-foreground);margin-bottom:var(--spacing-4)}.notifications-empty-content p{color:var(--muted-foreground);font-size:var(--text-sm)}.topbar{display:flex;align-items:center;justify-content:space-between;height:64px;padding:0 var(--spacing-4);background:var(--card);border-bottom:1px solid var(--border);position:sticky;top:0;z-index:100;gap:var(--spacing-4)}.topbar-left{display:flex;align-items:center;gap:var(--spacing-4);flex:0 0 auto}.topbar-menu-button{display:none;align-items:center;justify-content:center;width:40px;height:40px;border:none;background:transparent;border-radius:var(--radius);cursor:pointer;color:var(--foreground);transition:background-color var(--duration-normal) var(--ease-in-out)}.topbar-menu-button:hover{background:var(--muted)}.topbar-menu-icon{width:20px;height:20px}.topbar-center{flex:1;max-width:600px;margin:0 auto}.topbar-search{position:relative;display:flex;align-items:center;width:100%}.topbar-search-icon{position:absolute;left:var(--spacing-3);width:18px;height:18px;color:var(--muted-foreground);pointer-events:none}.topbar-search-input{width:100%;padding:var(--spacing-2) var(--spacing-3) var(--spacing-2) 40px;border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--input-background);color:var(--foreground);font-size:var(--text-sm);transition:border-color var(--duration-normal) var(--ease-in-out),box-shadow var(--duration-normal) var(--ease-in-out)}.topbar-search-input:focus{outline:none;border-color:var(--ring);box-shadow:0 0 0 2px color-mix(in srgb,var(--ring) 20%,transparent)}.topbar-right{display:flex;align-items:center;gap:var(--spacing-2);flex:0 0 auto}.topbar-quick-actions{display:flex;align-items:center;gap:var(--spacing-1)}.topbar-quick-action{display:flex;align-items:center;justify-content:center;width:36px;height:36px;border:none;background:transparent;border-radius:var(--radius);cursor:pointer;color:var(--foreground);transition:background-color var(--duration-normal) var(--ease-in-out)}.topbar-quick-action:hover{background:var(--muted)}.topbar-quick-action-icon{width:18px;height:18px}.topbar-notifications{position:relative}.topbar-notification-button{position:relative;display:flex;align-items:center;justify-content:center;width:36px;height:36px;border:none;background:transparent;border-radius:var(--radius);cursor:pointer;color:var(--foreground);transition:background-color var(--duration-normal) var(--ease-in-out)}.topbar-notification-button:hover{background:var(--muted)}.topbar-notification-icon{width:18px;height:18px}.topbar-notification-badge{position:absolute;top:4px;right:4px;display:flex;align-items:center;justify-content:center;min-width:18px;height:18px;padding:0 4px;background:var(--destructive);color:var(--destructive-foreground);border-radius:var(--radius-full);font-size:10px;font-weight:var(--font-weight-semibold);line-height:1}.topbar-notifications-dropdown{position:absolute;top:calc(100% + var(--spacing-2));right:0;width:360px;max-height:480px;background:var(--popover);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--elevation-lg);overflow:hidden;z-index:1000}.topbar-notifications-header{display:flex;align-items:center;justify-content:space-between;padding:var(--spacing-4);border-bottom:1px solid var(--border)}.topbar-notifications-header h3{font-size:var(--text-base);font-weight:var(--font-weight-semibold);margin:0}.topbar-notifications-content{padding:var(--spacing-4);max-height:400px;overflow-y:auto}.topbar-notifications-empty{text-align:center;color:var(--muted-foreground);font-size:var(--text-sm);padding:var(--spacing-8) 0}.topbar-user{position:relative}.topbar-user-button{display:flex;align-items:center;gap:var(--spacing-2);padding:var(--spacing-1) var(--spacing-2);border:none;background:transparent;border-radius:var(--radius);cursor:pointer;color:var(--foreground);transition:background-color var(--duration-normal) var(--ease-in-out)}.topbar-user-button:hover{background:var(--muted)}.topbar-user-avatar{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:var(--radius-full);background:var(--primary);color:var(--primary-foreground);font-size:var(--text-sm);font-weight:var(--font-weight-semibold)}.topbar-user-name{font-size:var(--text-sm);font-weight:var(--font-weight-medium)}.topbar-user-menu{position:absolute;top:calc(100% + var(--spacing-2));right:0;min-width:200px;background:var(--popover);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--elevation-lg);overflow:hidden;z-index:1000}.topbar-user-menu-item{display:flex;align-items:center;gap:var(--spacing-2);width:100%;padding:var(--spacing-3) var(--spacing-4);border:none;background:transparent;text-align:left;cursor:pointer;color:var(--foreground);font-size:var(--text-sm);transition:background-color var(--duration-normal) var(--ease-in-out)}.topbar-user-menu-item:hover{background:var(--muted)}.topbar-user-menu-icon{width:16px;height:16px}@media (max-width: 768px){.topbar-menu-button{display:flex}.topbar-center,.topbar-quick-actions,.topbar-user-name{display:none}}.App{min-height:100vh;background-color:var(--background);display:flex;flex-direction:row;overflow:hidden}.app-main{flex:1;display:flex;flex-direction:column;margin-left:256px;transition:margin-left var(--duration-normal) var(--ease-in-out);min-width:0}.app-content-with-sidebar-collapsed{margin-left:64px}.app-content{flex:1;display:flex;flex-direction:column;overflow:hidden;height:calc(100vh - 64px)}@media (max-width: 1024px){.app-main,.app-content-with-sidebar-collapsed{margin-left:0}}:root{--font-size: 16px;--text-6xl: 60px;--text-5xl: 48px;--text-4xl: 36px;--text-3xl: 30px;--text-2xl: 24px;--text-xl: 20px;--text-lg: 18px;--text-base: 16px;--text-sm: 14px;--text-xs: 12px;--font-weight-normal: 400;--font-weight-medium: 500;--font-weight-semibold: 600;--spacing-1: 4px;--spacing-2: 8px;--spacing-2-5: 10px;--spacing-3: 12px;--spacing-4: 16px;--spacing-5: 20px;--spacing-6: 24px;--spacing-8: 32px;--spacing-10: 40px;--spacing-12: 48px;--spacing-16: 64px;--background: rgba(243, 244, 246, 1);--foreground: rgba(3, 7, 18, 1);--card: rgba(255, 255, 255, 1);--card-foreground: rgba(3, 7, 18, 1);--popover: rgba(255, 255, 255, 1);--popover-foreground: rgba(3, 7, 18, 1);--primary: rgba(67, 56, 202, 1);--primary-foreground: rgba(255, 255, 255, 1);--secondary: rgba(243, 244, 246, 1);--secondary-foreground: rgba(3, 7, 18, 1);--muted: rgba(229, 231, 235, 1);--muted-foreground: rgba(156, 163, 175, 1);--accent: rgba(224, 231, 255, 1);--accent-foreground: rgba(3, 7, 18, 1);--destructive: rgba(185, 28, 28, 1);--destructive-foreground: rgba(255, 255, 255, 1);--border: rgba(156, 163, 175, 1);--input: rgba(255, 255, 255, 1);--input-background: rgba(255, 255, 255, 1);--ring: rgba(147, 197, 253, 1);--chart-1: rgba(59, 130, 246, 1);--chart-2: rgba(34, 197, 94, 1);--chart-3: rgba(234, 179, 8, 1);--chart-4: rgba(239, 68, 68, 1);--chart-5: rgba(168, 85, 247, 1);--radius: 4px;--radius-sm: 2px;--radius-md: 4px;--radius-lg: 8px;--radius-card: 8px;--radius-xl: 12px;--radius-2xl: 16px;--radius-full: 9999px;--elevation-subtle: 0px 1px 1px 0px rgba(0, 0, 0, .05);--elevation-soft: 0px 2px 4px 0px rgba(0, 0, 0, .05);--elevation-sm: 0px 1px 2px -1px rgba(0, 0, 0, .1), 0px 1px 3px 0px rgba(0, 0, 0, .1);--elevation-md: 0px 4px 6px -1px rgba(0, 0, 0, .1), 0px 2px 4px -1px rgba(0, 0, 0, .06);--elevation-lg: 0px 10px 15px -3px rgba(0, 0, 0, .1), 0px 4px 6px -2px rgba(0, 0, 0, .05);--sidebar: rgba(255, 255, 255, 1);--sidebar-foreground: rgba(3, 7, 18, 1);--sidebar-primary: rgba(67, 56, 202, 1);--sidebar-primary-foreground: rgba(255, 255, 255, 1);--sidebar-accent: rgba(224, 231, 255, 1);--sidebar-accent-foreground: rgba(3, 7, 18, 1);--sidebar-border: rgba(156, 163, 175, 1);--sidebar-ring: rgba(147, 197, 253, 1);--duration-instant: 50ms;--duration-fast: .15s;--duration-normal: .2s;--duration-slow: .3s;--duration-slower: .5s;--ease-in: cubic-bezier(.4, 0, 1, 1);--ease-out: cubic-bezier(0, 0, .2, 1);--ease-in-out: cubic-bezier(.4, 0, .2, 1);--ease-spring: cubic-bezier(.68, -.55, .265, 1.55);--ease-smooth: cubic-bezier(.25, .1, .25, 1)}.dark{--background: rgba(17, 24, 39, 1);--foreground: rgba(249, 250, 251, 1);--card: rgba(31, 41, 55, 1);--card-foreground: rgba(249, 250, 251, 1);--popover: rgba(31, 41, 55, 1);--popover-foreground: rgba(249, 250, 251, 1);--primary: rgba(99, 102, 241, 1);--primary-foreground: rgba(255, 255, 255, 1);--secondary: rgba(55, 65, 81, 1);--secondary-foreground: rgba(249, 250, 251, 1);--muted: rgba(75, 85, 99, 1);--muted-foreground: rgba(156, 163, 175, 1);--accent: rgba(55, 65, 81, 1);--accent-foreground: rgba(249, 250, 251, 1);--destructive: rgba(239, 68, 68, 1);--destructive-foreground: rgba(255, 255, 255, 1);--border: rgba(75, 85, 99, 1);--input: rgba(31, 41, 55, 1);--input-background: rgba(31, 41, 55, 1);--ring: rgba(99, 102, 241, 1);--sidebar: rgba(31, 41, 55, 1);--sidebar-foreground: rgba(249, 250, 251, 1);--sidebar-primary: rgba(99, 102, 241, 1);--sidebar-primary-foreground: rgba(255, 255, 255, 1);--sidebar-accent: rgba(55, 65, 81, 1);--sidebar-accent-foreground: rgba(249, 250, 251, 1);--sidebar-border: rgba(75, 85, 99, 1);--sidebar-ring: rgba(99, 102, 241, 1)}html{font-size:var(--font-size)}body{font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:var(--background);color:var(--foreground);line-height:1.5}h1{font-size:var(--text-6xl);font-weight:var(--font-weight-semibold);line-height:1.2;font-family:Inter,sans-serif}h2{font-size:var(--text-3xl);font-weight:var(--font-weight-semibold);line-height:1.2;font-family:Inter,sans-serif}h3{font-size:var(--text-xl);font-weight:var(--font-weight-medium);line-height:1.5;font-family:Inter,sans-serif}h4{font-size:var(--text-base);font-weight:var(--font-weight-medium);line-height:1.5;font-family:Inter,sans-serif}p{font-size:var(--text-lg);font-weight:var(--font-weight-normal);line-height:1.56;font-family:Inter,sans-serif}label{font-size:var(--text-xs);font-weight:var(--font-weight-normal);line-height:1.33;font-family:Inter,sans-serif}button{font-size:var(--text-sm);font-weight:var(--font-weight-medium);line-height:1.43;font-family:Inter,sans-serif}input,select,textarea{font-size:var(--text-base);font-weight:var(--font-weight-normal);line-height:1.5;font-family:Inter,sans-serif}*{transition:background-color var(--duration-normal) var(--ease-in-out),color var(--duration-normal) var(--ease-in-out),border-color var(--duration-normal) var(--ease-in-out)}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes slideDown{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}@keyframes slideInRight{0%{opacity:0;transform:translate(-10px)}to{opacity:1;transform:translate(0)}}@keyframes slideInLeft{0%{opacity:0;transform:translate(10px)}to{opacity:1;transform:translate(0)}}@keyframes scaleIn{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}@keyframes fadeOut{0%{opacity:1}to{opacity:0}}@keyframes scaleOut{0%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(.95)}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}@keyframes shake{0%,to{transform:translate(0)}10%,30%,50%,70%,90%{transform:translate(-5px)}20%,40%,60%,80%{transform:translate(5px)}}@keyframes bounce{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.animate-fade-in{animation:fadeIn var(--duration-normal) var(--ease-in-out)}.animate-fade-out{animation:fadeOut var(--duration-normal) var(--ease-in-out)}.animate-slide-up{animation:slideUp var(--duration-normal) var(--ease-in-out)}.animate-slide-down{animation:slideDown var(--duration-normal) var(--ease-in-out)}.animate-slide-in-right{animation:slideInRight var(--duration-normal) var(--ease-in-out)}.animate-slide-in-left{animation:slideInLeft var(--duration-normal) var(--ease-in-out)}.animate-scale-in{animation:scaleIn var(--duration-normal) var(--ease-in-out)}.animate-scale-out{animation:scaleOut var(--duration-normal) var(--ease-in-out)}.animate-pulse{animation:pulse 2s var(--ease-in-out) infinite}.animate-shake{animation:shake var(--duration-slower) var(--ease-in-out)}.animate-bounce{animation:bounce 1s var(--ease-in-out) infinite}.animate-spin{animation:spin 1s linear infinite}.transition-fast{transition:all var(--duration-fast) var(--ease-out)}.transition-normal{transition:all var(--duration-normal) var(--ease-out)}.transition-slow{transition:all var(--duration-slow) var(--ease-out)}.transition-colors{transition:color var(--duration-normal) var(--ease-out),background-color var(--duration-normal) var(--ease-out),border-color var(--duration-normal) var(--ease-out)}.transition-transform{transition:transform var(--duration-normal) var(--ease-out)}:focus-visible{outline:2px solid var(--ring);outline-offset:2px}::selection{background-color:var(--primary);color:var(--primary-foreground)}.ripple{position:relative;overflow:hidden}.ripple:after{content:"";position:absolute;top:50%;left:50%;width:0;height:0;border-radius:50%;background:#ffffff80;transform:translate(-50%,-50%);transition:width var(--duration-slower) var(--ease-out),height var(--duration-slower) var(--ease-out)}.ripple:active:after{width:300px;height:300px}.hover-lift{transition:transform var(--duration-normal) var(--ease-in-out),box-shadow var(--duration-normal) var(--ease-in-out)}.hover-lift:hover{transform:translateY(-2px);box-shadow:var(--elevation-md)}.focus-ring{transition:box-shadow var(--duration-normal) var(--ease-in-out)}.focus-ring:focus-visible{box-shadow:0 0 0 3px color-mix(in srgb,var(--ring) 30%,transparent);outline:none}.stagger-item{opacity:0;animation:fadeIn var(--duration-normal) var(--ease-in-out) forwards}.stagger-item:nth-child(1){animation-delay:0ms}.stagger-item:nth-child(2){animation-delay:50ms}.stagger-item:nth-child(3){animation-delay:.1s}.stagger-item:nth-child(4){animation-delay:.15s}.stagger-item:nth-child(5){animation-delay:.2s}.stagger-item:nth-child(6){animation-delay:.25s}.stagger-item:nth-child(7){animation-delay:.3s}.stagger-item:nth-child(8){animation-delay:.35s}.stagger-item:nth-child(9){animation-delay:.4s}.stagger-item:nth-child(10){animation-delay:.45s}.page-enter{opacity:0;transform:translateY(10px)}.page-enter-active{opacity:1;transform:translateY(0);transition:opacity var(--duration-normal) var(--ease-in-out),transform var(--duration-normal) var(--ease-in-out)}.page-exit{opacity:1;transform:translateY(0)}.page-exit-active{opacity:0;transform:translateY(-10px);transition:opacity var(--duration-normal) var(--ease-in-out),transform var(--duration-normal) var(--ease-in-out)}@keyframes spin-reverse{0%{transform:rotate(360deg)}to{transform:rotate(0)}}@keyframes checkmark{0%{stroke-dashoffset:100}to{stroke-dashoffset:0}}.checkmark-animated{stroke-dasharray:100;stroke-dashoffset:100;animation:checkmark var(--duration-slower) var(--ease-in-out) forwards}.error-shake{animation:shake var(--duration-slower) var(--ease-in-out)}.smooth-scroll{scroll-behavior:smooth}*{margin:0;padding:0;box-sizing:border-box}body{font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:var(--background);color:var(--foreground)}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}.container{max-width:1200px;margin:0 auto;padding:20px}.btn{padding:var(--spacing-2) var(--spacing-5);border:none;border-radius:var(--radius);cursor:pointer;font-size:var(--text-sm);font-weight:var(--font-weight-medium);transition:all var(--duration-normal) var(--ease-in-out)}.btn-primary{background-color:var(--primary);color:var(--primary-foreground)}.btn-primary:hover{background-color:color-mix(in srgb,var(--primary) 90%,black)}.btn-secondary{background-color:var(--secondary);color:var(--secondary-foreground)}.btn-secondary:hover{background-color:color-mix(in srgb,var(--secondary) 80%,black)}.btn-success{background-color:var(--chart-2);color:#fff}.btn-success:hover{background-color:color-mix(in srgb,var(--chart-2) 90%,black)}.btn-danger{background-color:var(--destructive);color:var(--destructive-foreground)}.btn-danger:hover{background-color:color-mix(in srgb,var(--destructive) 90%,black)}input,select,textarea{padding:var(--spacing-2) var(--spacing-3);border:1px solid var(--border);border-radius:var(--radius);font-size:var(--text-base);background-color:var(--input-background);color:var(--foreground);transition:border-color var(--duration-normal) var(--ease-in-out)}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--ring);box-shadow:0 0 0 2px color-mix(in srgb,var(--ring) 20%,transparent)}table{width:100%;border-collapse:collapse;background:var(--card);margin:var(--spacing-5) 0;border-radius:var(--radius-card);overflow:hidden}th,td{padding:var(--spacing-3);text-align:left;border-bottom:1px solid var(--border)}th{background-color:var(--muted);font-weight:var(--font-weight-semibold);color:var(--foreground)}tr:hover{background-color:var(--muted)}.card{background:var(--card);border-radius:var(--radius-card);padding:var(--spacing-5);margin:var(--spacing-5) 0;box-shadow:var(--elevation-sm);border:1px solid var(--border);color:var(--card-foreground)}.form-group{margin-bottom:15px}.form-group label{display:block;margin-bottom:5px;font-weight:500}.loading{text-align:center;padding:40px;color:#666}.error{background-color:color-mix(in srgb,var(--destructive) 10%,transparent);color:var(--destructive);padding:var(--spacing-3);border-radius:var(--radius);margin:var(--spacing-2) 0;border:1px solid color-mix(in srgb,var(--destructive) 30%,transparent)}.success{background-color:color-mix(in srgb,var(--chart-2) 10%,transparent);color:var(--chart-2);padding:var(--spacing-3);border-radius:var(--radius);margin:var(--spacing-2) 0;border:1px solid color-mix(in srgb,var(--chart-2) 30%,transparent)}:root{--transparency-success-bg: #E8F5E9;--transparency-success-bg-gradient: linear-gradient(135deg, #E8F5E9 0%, #C8E6C9 100%);--transparency-success-text: #2E7D32;--transparency-success-text-light: #43A047;--transparency-success-border: #81C784;--transparency-success-icon: #4CAF50;--transparency-warning-bg: #FFF3E0;--transparency-warning-bg-gradient: linear-gradient(135deg, #FFF8E1 0%, #FFE0B2 100%);--transparency-warning-text: #E65100;--transparency-warning-text-light: #FF9800;--transparency-warning-border: #FFB74D;--transparency-warning-icon: #FF9800;--transparency-error-bg: #FFEBEE;--transparency-error-bg-gradient: linear-gradient(135deg, #FFEBEE 0%, #FFCDD2 100%);--transparency-error-text: #C62828;--transparency-error-text-light: #EF5350;--transparency-error-border: #EF5350;--transparency-error-icon: #F44336;--transparency-info-bg: #E3F2FD;--transparency-info-bg-gradient: linear-gradient(135deg, #E3F2FD 0%, #BBDEFB 100%);--transparency-info-text: #1565C0;--transparency-info-text-light: #42A5F5;--transparency-info-border: #64B5F6;--transparency-info-icon: #2196F3;--staff-regular-bg: #E3F2FD;--staff-regular-text: #1565C0;--staff-regular-dot: #1976D2;--staff-student-bg: #E8EAF6;--staff-student-text: #3949AB;--staff-student-dot: #7B1FA2;--staff-contractor-bg: #E8F5E9;--staff-contractor-text: #2E7D32;--staff-contractor-dot: #388E3C;--state-pending-bg: #F5F5F5;--state-pending-text: #9E9E9E;--state-pending-icon: #BDBDBD;--state-active-bg: #E3F2FD;--state-active-text: #1565C0;--state-active-icon: #2196F3;--state-complete-bg: #E8F5E9;--state-complete-text: #2E7D32;--state-complete-icon: #4CAF50;--state-skipped-bg: #FFF3E0;--state-skipped-text: #E65100;--state-skipped-icon: #FF9800;--rules-hours-color: #7B1FA2;--rules-hours-bg: #F3E5F5;--rules-duration-color: #0288D1;--rules-duration-bg: #E1F5FE;--coverage-full-gradient: linear-gradient(135deg, #66BB6A, #4CAF50);--coverage-good-gradient: linear-gradient(135deg, #42A5F5, #2196F3);--coverage-warning-gradient: linear-gradient(135deg, #FFA726, #FF9800);--coverage-critical-gradient: linear-gradient(135deg, #EF5350, #F44336);--zone-standard-gradient: linear-gradient(135deg, #66BB6A, #4CAF50);--zone-extended-gradient: linear-gradient(135deg, #FFB74D, #FF9800);--zone-critical-gradient: linear-gradient(135deg, #EF5350, #F44336);--transparency-success-shadow: 0 4px 12px rgba(76, 175, 80, .2);--transparency-warning-shadow: 0 4px 12px rgba(255, 152, 0, .2);--transparency-error-shadow: 0 4px 12px rgba(244, 67, 54, .2);--transparency-info-shadow: 0 4px 12px rgba(33, 150, 243, .2)}.transparency-success{background:var(--transparency-success-bg);color:var(--transparency-success-text);border-color:var(--transparency-success-border)}.transparency-warning{background:var(--transparency-warning-bg);color:var(--transparency-warning-text);border-color:var(--transparency-warning-border)}.transparency-error{background:var(--transparency-error-bg);color:var(--transparency-error-text);border-color:var(--transparency-error-border)}.transparency-info{background:var(--transparency-info-bg);color:var(--transparency-info-text);border-color:var(--transparency-info-border)}.staff-badge-regular{background:var(--staff-regular-bg);color:var(--staff-regular-text)}.staff-badge-student{background:var(--staff-student-bg);color:var(--staff-student-text)}.staff-badge-contractor{background:var(--staff-contractor-bg);color:var(--staff-contractor-text)}
