.cdk-overlay-container,.cdk-global-overlay-wrapper{pointer-events:none;top:0;left:0;height:100%;width:100%}.cdk-overlay-container{position:fixed;z-index:1000}.cdk-overlay-container:empty{display:none}.cdk-global-overlay-wrapper{display:flex;position:absolute;z-index:1000}.cdk-overlay-pane{position:absolute;pointer-events:auto;box-sizing:border-box;z-index:1000;display:flex;max-width:100%;max-height:100%}.cdk-overlay-backdrop{position:absolute;inset:0;z-index:1000;pointer-events:auto;-webkit-tap-highlight-color:rgba(0,0,0,0);transition:opacity .4s cubic-bezier(.25,.8,.25,1);opacity:0}.cdk-overlay-backdrop.cdk-overlay-backdrop-showing{opacity:1}.cdk-high-contrast-active .cdk-overlay-backdrop.cdk-overlay-backdrop-showing{opacity:.6}.cdk-overlay-dark-backdrop{background:#00000052}.cdk-overlay-transparent-backdrop{transition:visibility 1ms linear,opacity 1ms linear;visibility:hidden;opacity:1}.cdk-overlay-transparent-backdrop.cdk-overlay-backdrop-showing{opacity:0;visibility:visible}.cdk-overlay-backdrop-noop-animation{transition:none}.cdk-overlay-connected-position-bounding-box{position:absolute;z-index:1000;display:flex;flex-direction:column;min-width:1px;min-height:1px}.cdk-global-scrollblock{position:fixed;width:100%;overflow-y:scroll}:root{--bg-primary: #ffffff;--bg-secondary: #f8fafc;--bg-tertiary: #fafbfc;--bg-gray: #f8f9fa;--bg-overlay: rgba(0, 0, 0, .5);--weekend-bg: #f1f3f4;--text-primary: #1e293b;--text-secondary: #64748b;--text-muted: #94a3b8;--text-dark: #2d3748;--border-color: rgba(226, 232, 240, .8);--border-light: rgba(241, 245, 249, .8);--border-lighter: rgba(233, 236, 239, .8);--border-focus: rgba(226, 232, 240, .8);--border-hover: rgba(203, 213, 224, .8);--border-active: rgba(156, 163, 175, .8);--roster-employee-column-width: 150px;--roster-day-column-width: 36px;--roster-grid-template: var(--roster-employee-column-width) repeat(31, var(--roster-day-column-width))}.theme-dark{--bg-primary: #1a1a1a;--bg-secondary: #2d2d2d;--bg-tertiary: #3a3a3a;--bg-gray: #1a1a1a;--bg-overlay: rgba(0, 0, 0, .8);--weekend-bg: #2d2d2d;--text-primary: #ffffff;--text-secondary: #b0b0b0;--text-muted: #808080;--text-dark: #ffffff;--border-color: rgba(255, 255, 255, .1);--border-light: rgba(255, 255, 255, .05);--border-lighter: rgba(255, 255, 255, .08);--border-focus: rgba(255, 255, 255, .2);--border-hover: rgba(255, 255, 255, .15);--border-active: rgba(255, 255, 255, .3)}.has-rule-violations{position:relative}.has-rule-warnings{background-color:#f5d80b80!important}.has-rule-errors{background-color:#ef4444b3!important}.has-rule-violations:hover{transform:scale(1.02);transition:transform .1s ease-in-out;z-index:5}@media (prefers-color-scheme: dark){.has-rule-warnings{background-color:#f59e0b66!important}.has-rule-errors{background-color:#ef444466!important}}@media (prefers-contrast: high){.has-rule-warnings{background-color:#f59e0b80!important}.has-rule-errors{background-color:#ef44444d!important}}@media (prefers-reduced-motion: reduce){.has-rule-violations:hover{transform:none;transition:none}}.shift-cell{position:relative}.validation-tooltip{position:absolute;z-index:9999;background:#000000f2;color:#fff;padding:10px 14px;border-radius:8px;font-size:12px;font-weight:400;line-height:1.5;max-width:280px;min-width:180px;word-wrap:break-word;white-space:pre-wrap;box-shadow:0 4px 12px #0006;opacity:0;visibility:hidden;transform:translateY(-8px);transition:all .15s ease-out;pointer-events:none;bottom:calc(100% + 8px);left:50%;transform:translate(-50%) translateY(-8px)}.shift-cell:hover .validation-tooltip{opacity:1;visibility:visible;transform:translate(-50%) translateY(0);transition:all .15s ease-out}.validation-tooltip:after{content:"";position:absolute;top:100%;left:50%;transform:translate(-50%);border:6px solid transparent;border-top-color:#000000e6}.shift-cell.tooltip-bottom .validation-tooltip{top:calc(100% + 8px);bottom:auto;transform:translate(-50%) translateY(8px)}.shift-cell.tooltip-bottom:hover .validation-tooltip{transform:translate(-50%) translateY(0)}.shift-cell.tooltip-bottom .validation-tooltip:after{top:-12px;border-top-color:transparent;border-bottom-color:#000000e6}.shift-cell.tooltip-right .validation-tooltip{left:0;transform:translateY(-8px)}.shift-cell.tooltip-right:hover .validation-tooltip{transform:translateY(0)}.shift-cell.tooltip-right .validation-tooltip:after{left:24px}.shift-cell.tooltip-left .validation-tooltip{left:auto;right:0;transform:translateY(-8px)}.shift-cell.tooltip-left:hover .validation-tooltip{transform:translateY(0)}.shift-cell.tooltip-left .validation-tooltip:after{left:auto;right:24px}.shift-cell.has-rule-errors .validation-tooltip{background:#000000f2}.shift-cell.has-rule-errors .validation-tooltip:after{border-top-color:#000000f2}.shift-cell.has-rule-errors.tooltip-bottom .validation-tooltip:after{border-top-color:transparent;border-bottom-color:#000000f2}.shift-cell.has-rule-warnings:not(.has-rule-errors) .validation-tooltip{background:#000000f2;color:#fff}.shift-cell.has-rule-warnings:not(.has-rule-errors) .validation-tooltip:after{border-top-color:#000000f2}.shift-cell.has-rule-warnings:not(.has-rule-errors).tooltip-bottom .validation-tooltip:after{border-top-color:transparent;border-bottom-color:#000000f2}@media (prefers-color-scheme: dark){.validation-tooltip{background:#0f0f0ff2}.validation-tooltip:after{border-top-color:#0f0f0ff2}.shift-cell.tooltip-bottom .validation-tooltip:after{border-top-color:transparent;border-bottom-color:#0f0f0ff2}}@media (prefers-contrast: high){.validation-tooltip{background:#000;font-weight:600}.shift-cell.has-rule-errors .validation-tooltip{background:#000}.shift-cell.has-rule-warnings:not(.has-rule-errors) .validation-tooltip{background:#000;color:#fff}}@media (prefers-reduced-motion: reduce){.validation-tooltip{transition:opacity .1s ease-out,visibility .1s ease-out;transform:translate(-50%)}.shift-cell:hover .validation-tooltip{transform:translate(-50%)}.shift-cell.tooltip-right .validation-tooltip,.shift-cell.tooltip-right:hover .validation-tooltip,.shift-cell.tooltip-left .validation-tooltip,.shift-cell.tooltip-left:hover .validation-tooltip{transform:none}}.horizontal-roster-tooltip{z-index:10000!important}.horizontal-roster-tooltip .validation-tooltip-overlay{font-size:11px!important;padding:6px 10px!important;max-width:200px!important;min-width:120px!important;white-space:normal!important;word-break:break-word!important}.shift-modal-overlay{z-index:10001!important}.shift-modal-content{pointer-events:auto;position:relative}@media (max-width: 768px){.validation-tooltip{font-size:11px;padding:8px 12px;max-width:240px;min-width:150px}.horizontal-roster-tooltip .validation-tooltip-overlay{font-size:10px!important;padding:5px 8px!important;max-width:160px!important;min-width:100px!important}}body.theme-light app-login .login-container,body:not(.theme-dark) app-login .login-container{background:#fff}body.theme-light app-login .login-card,body:not(.theme-dark) app-login .login-card{background:#f8f9fa;border-color:#e1e5e9}body.theme-light app-login .form-group label,body:not(.theme-dark) app-login .form-group label{color:#333}body.theme-light app-login .form-control,body:not(.theme-dark) app-login .form-control{background:#fff;border-color:#e1e5e9;color:#333}body.theme-light app-login .form-control:focus,body:not(.theme-dark) app-login .form-control:focus{border-color:#4a5568;box-shadow:0 0 0 3px #4a55681a}body.theme-light app-login .error-message,body:not(.theme-dark) app-login .error-message{color:#e53e3e}body.theme-light app-login .login-button,body:not(.theme-dark) app-login .login-button{background:#4a5568}body.theme-light app-login .login-button:hover:not(:disabled),body:not(.theme-dark) app-login .login-button:hover:not(:disabled){background:#2d3748}body.theme-light app-login .login-button:disabled,body:not(.theme-dark) app-login .login-button:disabled{background:#cbd5e0}body.theme-dark app-login .login-container{background:#0f0f10}body.theme-dark app-login .login-card{background:#1a1a1b;border-color:#2d2d30;box-shadow:0 4px 6px #0000004d}body.theme-dark app-login .form-group label{color:#e2e8f0}body.theme-dark app-login .form-control{background:#0f0f10;border-color:#4a5568;color:#e2e8f0}body.theme-dark app-login .form-control::placeholder{color:#718096}body.theme-dark app-login .form-control:focus{border-color:#63b3ed;box-shadow:0 0 0 3px #63b3ed1a}body.theme-dark app-login .form-control.error{border-color:#fc8181}body.theme-dark app-login .error-message{color:#fc8181}body.theme-dark app-login .login-button{background:#4299e1}body.theme-dark app-login .login-button:hover:not(:disabled){background:#3182ce;box-shadow:0 5px 15px #4299e14d}body.theme-dark app-login .login-button:disabled{background:#4a5568}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.transparent-backdrop{background:transparent}.shift-modal-overlay{z-index:1000}.cdk-overlay-container{position:fixed!important;top:0!important;left:0!important;width:100vw!important;height:100vh!important;pointer-events:none!important;z-index:1000!important}.cdk-overlay-pane{pointer-events:auto!important}*{margin:0;padding:0;box-sizing:border-box;-webkit-user-select:none;user-select:none}html,body{height:100%}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;background-color:var(--bg-primary);color:var(--text-primary);line-height:1.4;font-weight:400;font-size:14px;transition:background-color .3s ease,color .3s ease;overscroll-behavior:none}app-root{display:block;min-height:100%}h1,h2,h3,h4,h5,h6{margin:0;font-weight:600;color:var(--text-primary)}h1{font-size:2rem}h2{font-size:1.5rem}h3{font-size:1.25rem}h4{font-size:1.125rem}h5{font-size:1rem}h6{font-size:.875rem}@media (max-width: 768px){h1{font-size:3rem}}p{margin:0;line-height:1.5}input,select,textarea,label,button{font-family:inherit;font-weight:400;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.form-group{margin-bottom:16px}.form-group label{display:block;margin-bottom:8px;font-weight:400;color:var(--text-primary);font-size:14px}.form-group input,.form-group select,.form-group textarea{width:100%;padding:12px;border:1px solid var(--border-color);border-radius:6px;font-size:14px;transition:all .2s ease;box-sizing:border-box;background-color:var(--bg-primary);color:var(--text-primary)}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{outline:none;border-color:#007bff}.form-group input::placeholder,.form-group select::placeholder,.form-group textarea::placeholder{color:var(--text-muted)}.form-group select{cursor:pointer}.btn{display:inline-flex;align-items:center;justify-content:center;padding:10px 20px;border-radius:6px;border:1px solid;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s ease;text-decoration:none}.btn:disabled{opacity:.6;cursor:not-allowed}.btn-primary{background:#007bff;color:#fff;border-color:#007bff}.btn-primary:hover:not(:disabled){background:#0056b3;border-color:#0056b3}.btn-secondary{color:var(--text-secondary);border-color:#e2e8f0cc}.btn-secondary:hover:not(:disabled){background:var(--bg-secondary);color:var(--text-primary);border-color:var(--border-active)}.btn-danger{color:#dc3545;border-color:#dc3545}.btn-danger:hover:not(:disabled){background:#dc3545;color:#fff}.btn-success{background:#28a745;color:#fff;border-color:#28a745}.btn-success:hover:not(:disabled){background:#218838;border-color:#218838}.btn-sm{padding:6px 12px;font-size:12px}.btn-lg{padding:14px 28px;font-size:16px}.card{background:var(--bg-primary);border-radius:8px;box-shadow:0 1px 2px #0000001a;padding:24px;border:1px solid var(--border-color)}.modal-overlay{position:fixed;inset:0;background:var(--bg-overlay);display:flex;align-items:center;justify-content:center;z-index:1100}.modal-content{background:var(--bg-primary);border-radius:8px;box-shadow:0 4px 20px #00000026;max-width:1200px;width:90%;max-height:90vh;display:flex;flex-direction:column}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:16px 20px;border-bottom:1px solid var(--border-color)}.modal-body{padding:20px;overflow-y:auto;flex:1;min-height:0}.modal-actions{display:flex;gap:12px;justify-content:flex-end;margin-top:24px;padding-top:20px;border-top:1px solid var(--border-color)}.close-btn{border:2px solid var(--border-color);font-size:18px;color:var(--text-secondary);cursor:pointer;padding:0;width:36px;height:36px;display:flex;align-items:center;justify-content:center;border-radius:8px;transition:all .2s ease}.close-btn:hover{background:var(--bg-secondary);border-color:var(--border-hover);color:var(--text-primary)}.nav-btn{background:none;border:1px solid var(--border-color);width:32px;height:32px;border-radius:4px;cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:16px;font-weight:500;color:var(--text-secondary);transition:all .2s ease}.nav-btn app-icon{width:1em;height:1em}.nav-btn.spinning app-icon{animation:spin 1s linear infinite}.nav-btn:hover{background:var(--bg-secondary);color:var(--text-primary);border-color:var(--border-hover)}.nav-btn.today-btn{width:auto;padding:0 12px;min-width:60px;font-size:14px}.nav-btn.magic-btn:hover:not(:disabled){background:var(--bg-secondary);transform:scale(1.05)}.nav-btn.magic-btn:disabled{opacity:.6;cursor:not-allowed;transform:none}.nav-btn.magic-btn:disabled app-icon[name=refresh-outline]{animation:spin 1s linear infinite}.nav-btn.magic-btn app-icon[name=checkmark-outline]{color:#28a745}.nav-btn.magic-btn app-icon[name=sparkles-outline]{color:#007bff}.form-row{display:flex;gap:16px;margin-bottom:20px}.form-row .form-group{flex:1;margin-bottom:0}.text-center{text-align:center}.text-left{text-align:left}.text-right{text-align:right}.text-primary{color:var(--text-primary)}.text-secondary{color:var(--text-secondary)}.text-muted{color:var(--text-muted)}.text-success{color:#28a745}.text-danger{color:#dc3545}.bg-white{background:var(--bg-primary)}.bg-light{background:var(--bg-secondary)}.bg-lighter{background:var(--bg-tertiary)}.border{border:1px solid var(--border-color)}.border-light{border:1px solid var(--border-light)}.rounded{border-radius:6px}.rounded-sm{border-radius:4px}.rounded-lg{border-radius:8px}.shadow-sm{box-shadow:0 1px 2px #0000001a}.shadow-md{box-shadow:0 4px 12px #00000026}.shadow-lg{box-shadow:0 4px 20px #00000026}.m-0{margin:0}.mb-1{margin-bottom:4px}.mb-2{margin-bottom:8px}.mb-3{margin-bottom:12px}.mb-4{margin-bottom:16px}.mb-5{margin-bottom:20px}.mb-6{margin-bottom:24px}.p-1{padding:4px}.p-2{padding:8px}.p-3{padding:12px}.p-4{padding:16px}.p-5{padding:20px}.p-6{padding:24px}.d-flex{display:flex}.flex-column{flex-direction:column}.align-center{align-items:center}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.justify-end{justify-content:flex-end}.gap-1{gap:4px}.gap-2{gap:8px}.gap-3{gap:12px}.gap-4{gap:16px}
