@charset "UTF-8";:root{--color-primary: #C8102E;--color-primary-hover: #A00D24;--color-primary-muted: #FBE7EB;--color-accent-dark: #1F2228;--color-bg-canvas: #F4F5F7;--color-bg-surface: #FFFFFF;--color-bg-surface-hover: #F9FAFC;--color-text-main: #1A1C20;--color-text-secondary: #5C6574;--color-text-tertiary: #8A94A6;--color-border-subtle: #E2E4E9;--color-border-strong: #C3C8D2;--color-success: #0D8930;--color-success-bg: #E7F6EC;--color-warning: #DD7D00;--color-warning-bg: #FFF5E6;--color-error: #B0152A;--color-error-bg: #FCE9E9;--color-drag-overlay: rgba(200, 16, 46, .08);--font-heading: "Outfit", sans-serif;--font-body: "Manrope", sans-serif;--text-xs: .75rem;--text-sm: .875rem;--text-base: 1rem;--text-lg: 1.125rem;--text-xl: 1.25rem;--text-2xl: 1.5rem;--text-3xl: 1.875rem;--line-height-tight: 1.2;--line-height-base: 1.5;--letter-spacing-tight: -.02em;--letter-spacing-wide: .05em;--space-1: .25rem;--space-2: .5rem;--space-3: .75rem;--space-4: 1rem;--space-5: 1.25rem;--space-6: 1.5rem;--space-8: 2rem;--space-10: 2.5rem;--space-12: 3rem;--space-16: 4rem;--radius-sm: 4px;--radius-md: 6px;--radius-lg: 8px;--radius-full: 9999px;--border-1: 1px;--border-2: 2px;--shadow-sm: 0 1px 2px rgba(9, 10, 11, .05);--shadow-md: 0 4px 6px -1px rgba(9, 10, 11, .08), 0 2px 4px -1px rgba(9, 10, 11, .04);--shadow-lg: 0 10px 15px -3px rgba(9, 10, 11, .1), 0 4px 6px -2px rgba(9, 10, 11, .05);--shadow-drag: 0 20px 25px -5px rgba(200, 16, 46, .18), 0 10px 10px -5px rgba(31, 34, 40, .08);--transition-fast: .15s;--transition-base: .2s;--transition-slow: .3s;--ease-out: cubic-bezier(.16, 1, .3, 1);--ease-in-out: cubic-bezier(.65, 0, .35, 1);--ease-spring: cubic-bezier(.175, .885, .32, 1.275)}html.dark{--color-primary: #FF4257;--color-primary-hover: #FF6473;--color-primary-muted: #3A1A21;--color-accent-dark: #E5E7EB;--color-bg-canvas: #0F1115;--color-bg-surface: #181B22;--color-bg-surface-hover: #20242C;--color-text-main: #F1F2F5;--color-text-secondary: #B5BBC6;--color-text-tertiary: #7E8694;--color-border-subtle: #262A33;--color-border-strong: #353A45;--color-success: #4ADE80;--color-success-bg: #143524;--color-warning: #F5A524;--color-warning-bg: #3A2810;--color-error: #FF6473;--color-error-bg: #3A1A21;--color-drag-overlay: rgba(255, 66, 87, .12);--shadow-sm: 0 1px 2px rgba(0, 0, 0, .4);--shadow-md: 0 4px 6px -1px rgba(0, 0, 0, .5), 0 2px 4px -1px rgba(0, 0, 0, .3);--shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, .55), 0 4px 6px -2px rgba(0, 0, 0, .35);--shadow-drag: 0 20px 25px -5px rgba(255, 66, 87, .25), 0 10px 10px -5px rgba(0, 0, 0, .5)}*{box-sizing:border-box}html,body{margin:0;padding:0;height:100%;background:var(--color-bg-canvas);color:var(--color-text-main);font-family:var(--font-body);font-size:var(--text-base);line-height:var(--line-height-base);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;transition:background-color var(--transition-base) var(--ease-out),color var(--transition-base) var(--ease-out)}h1,h2,h3,h4{font-family:var(--font-heading);letter-spacing:var(--letter-spacing-tight);margin:0}button{font-family:var(--font-body)}a{color:var(--color-primary);text-decoration:none}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);height:36px;padding:0 var(--space-4);border-radius:var(--radius-md);font-family:var(--font-body);font-size:var(--text-sm);font-weight:600;border:var(--border-1) solid transparent;cursor:pointer;transition:background var(--transition-fast) var(--ease-out),color var(--transition-fast) var(--ease-out),border-color var(--transition-fast) var(--ease-out),transform var(--transition-fast) var(--ease-out);white-space:nowrap}.btn:disabled{opacity:.55;cursor:not-allowed}.btn-primary{background:var(--color-primary);color:#fff}.btn-primary:hover:not(:disabled){background:var(--color-primary-hover)}.btn-secondary{background:var(--color-bg-surface);color:var(--color-text-main);border-color:var(--color-border-strong)}.btn-secondary:hover:not(:disabled){background:var(--color-bg-canvas)}.btn-ghost{background:transparent;color:var(--color-text-secondary)}.btn-ghost:hover:not(:disabled){background:var(--color-border-subtle);color:var(--color-text-main)}.btn-danger{background:var(--color-error);color:#fff}.btn-icon{width:36px;height:36px;padding:0;border-radius:var(--radius-md)}.field{display:flex;flex-direction:column;gap:var(--space-1);margin-bottom:var(--space-3)}.field label{font-size:var(--text-sm);font-weight:600;color:var(--color-text-main)}.input,.select,textarea.input{width:100%;height:36px;padding:0 var(--space-3);border-radius:var(--radius-md);border:var(--border-1) solid var(--color-border-strong);background:var(--color-bg-surface);color:var(--color-text-main);font-size:var(--text-sm);font-family:var(--font-body);transition:border-color var(--transition-fast),box-shadow var(--transition-fast)}textarea.input{height:auto;padding:var(--space-2) var(--space-3);resize:vertical}.input:focus,.select:focus,textarea.input:focus{border-color:var(--color-primary);box-shadow:0 0 0 2px var(--color-primary-muted);outline:none}.checkbox{display:inline-flex;align-items:center;gap:var(--space-2);font-size:var(--text-sm)}.data-table{width:100%;border-collapse:collapse;background:var(--color-bg-surface)}.data-table thead th{padding:var(--space-3);font-size:var(--text-xs);font-weight:700;text-transform:uppercase;letter-spacing:var(--letter-spacing-wide);color:var(--color-text-secondary);text-align:left;background:var(--color-bg-canvas);border-bottom:var(--border-2) solid var(--color-border-strong)}.data-table tbody td{padding:var(--space-3);font-size:var(--text-sm);color:var(--color-text-main);border-bottom:var(--border-1) solid var(--color-border-subtle)}.data-table tbody tr:hover{background:var(--color-bg-surface-hover)}.card{background:var(--color-bg-surface);border:var(--border-1) solid var(--color-border-subtle);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm)}.card-header{padding:var(--space-4) var(--space-5);border-bottom:var(--border-1) solid var(--color-border-subtle);display:flex;align-items:center;justify-content:space-between;gap:var(--space-3)}.card-header h2{font-size:var(--text-lg);font-weight:700}.card-body{padding:var(--space-4) var(--space-5)}.badge{display:inline-flex;align-items:center;padding:2px var(--space-2);font-size:var(--text-xs);font-weight:600;border-radius:var(--radius-full);background:var(--color-primary-muted);color:var(--color-primary)}.badge-warning{background:var(--color-warning-bg);color:var(--color-warning)}.badge-success{background:var(--color-success-bg);color:var(--color-success)}.badge-error{background:var(--color-error-bg);color:var(--color-error)}.cdk-drag-preview{box-shadow:var(--shadow-drag);border-radius:var(--radius-md);background:var(--color-bg-surface)}.cdk-drag-placeholder{opacity:.25}.cdk-drag-animating{transition:transform var(--transition-slow) var(--ease-out)}.cdk-drop-list-dragging .cdk-drag{transition:transform var(--transition-base) var(--ease-out)}.toast-host{position:fixed;bottom:var(--space-6);right:var(--space-6);display:flex;flex-direction:column;gap:var(--space-2);z-index:100}.toast{min-width:280px;padding:var(--space-3) var(--space-4);background:var(--color-bg-surface);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);border-left:3px solid var(--color-primary);font-size:var(--text-sm);color:var(--color-text-main);animation:toast-in var(--transition-base) var(--ease-out)}.toast.success{border-left-color:var(--color-success)}.toast.error{border-left-color:var(--color-error)}@keyframes toast-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}html.dark .brand-logo{background:#000}html.dark ::ng-deep .cell.weekend,html.dark .cell.weekend.weekend{background:repeating-linear-gradient(-45deg,var(--color-bg-canvas) 0 8px,rgba(255,255,255,.04) 8px 16px)!important}html.dark .input,html.dark .select,html.dark textarea.input{color-scheme:dark}html.dark .toast{background:var(--color-bg-surface);border:var(--border-1) solid var(--color-border-subtle);border-left-width:3px}html.dark .role-switcher{background:var(--color-bg-canvas)}html.dark .capacity-fill.high{background:var(--color-warning)}html.dark .capacity-fill.over{background:var(--color-error)}
