body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}.login-container{align-items:center;background:linear-gradient(135deg,#e3f2fd,#fff 50%,#bbdefb);display:flex;justify-content:center;min-height:100vh;position:relative}.login-container:before{background:radial-gradient(circle at 20% 50%,#2196f31a 0,#0000 50%),radial-gradient(circle at 80% 80%,#42a5f51a 0,#0000 50%);bottom:0;content:"";left:0;pointer-events:none;position:absolute;right:0;top:0}.login-box{background:#fff;border:1px solid #2196f31a;border-radius:16px;box-shadow:0 8px 32px #2196f326;max-width:420px;padding:45px;position:relative;width:100%}.login-box h2{color:#1976d2;font-size:28px;font-weight:600;margin:0 0 8px;text-align:center}.login-box h3{color:#64b5f6;font-size:18px;font-weight:400;margin:0 0 35px;text-align:center}.form-group{margin-bottom:24px}.form-group label{color:#1565c0;font-size:14px;font-weight:500;margin-bottom:8px}.form-group input{background:#fafafa;border:2px solid #e3f2fd;border-radius:8px;font-size:15px;padding:12px 16px;transition:all .3s ease;width:100%}.form-group input:focus{background:#fff;border-color:#2196f3;box-shadow:0 0 0 3px #2196f31a;outline:none}.login-button{background:linear-gradient(135deg,#2196f3,#1976d2);border:none;border-radius:8px;box-shadow:0 4px 12px #2196f34d;color:#fff;cursor:pointer;font-size:16px;font-weight:600;padding:14px;transition:all .3s ease;width:100%}.login-button:hover{background:linear-gradient(135deg,#1976d2,#1565c0);box-shadow:0 6px 16px #2196f366;transform:translateY(-2px)}.login-button:active{box-shadow:0 2px 8px #2196f34d;transform:translateY(0)}.error-message{background:#ffebee;border-left:4px solid #ef5350;border-radius:8px;color:#c62828;font-size:14px;margin-bottom:20px;padding:12px;text-align:center}.navbar{align-items:center;background-color:#2c3e50;box-shadow:0 2px 4px #0000001a;display:flex;justify-content:space-between;padding:1rem 2rem}.nav-left h1{color:#fff;font-size:1.5rem;margin:0}.nav-links{display:flex;gap:2rem}.nav-links a{color:#fff;font-weight:500;text-decoration:none;transition:color .3s}.nav-links a:hover{color:#3498db}.nav-right{align-items:center;display:flex;gap:1rem}.logout-button,.user-info{color:#fff;font-size:14px}.logout-button{background:#e74c3c;border:none;border-radius:5px;cursor:pointer;padding:8px 16px;transition:background .3s}.logout-button:hover{background:#c0392b}.schedule-container{padding:20px}.schedule-header{gap:20px;justify-content:center;margin-bottom:30px}.schedule-header h2{color:#2c3e50;margin:0}.schedule-header button{background:#3498db;border:none;border-radius:5px;color:#fff;cursor:pointer;font-size:14px;padding:10px 20px;transition:background .2s}.schedule-header button:hover{background:#2980b9}.schedule-grid{border:1px solid #ddd;border-radius:8px;overflow:hidden}.grid-header{background:#34495e;color:#fff;display:grid;font-weight:700;grid-template-columns:200px repeat(5,1fr)}.area-label,.day-header{border-right:1px solid #2c3e50;padding:15px}.day-header{text-align:center;transition:background .2s}.day-header.clickable{cursor:pointer}.day-header.clickable:hover{background:#2c3e50}.day-header:last-child{border-right:none}.day-name{font-size:16px;margin-bottom:5px}.day-date{font-size:12px;opacity:.8}.view-detail{font-size:10px;margin-top:5px;opacity:.7}.area-row{border-top:1px solid #ddd;display:grid;grid-template-columns:200px repeat(5,1fr)}.area-name{align-items:center;background:#ecf0f1;display:flex;font-weight:600;padding:15px}.area-name,.schedule-cell{border-right:1px solid #ddd}.schedule-cell{background:#fff;cursor:pointer;min-height:100px;padding:10px;transition:background .2s}.schedule-cell:hover{background:#f8f9fa}.schedule-cell:last-child{border-right:none}.empty-cell{color:#95a5a6;font-style:italic;padding:20px 10px;text-align:center}.shift-card{border-radius:4px;color:#fff;font-size:13px;margin-bottom:5px;padding:8px}.shift-card:last-child{margin-bottom:0}.staff-name{font-weight:600;margin-bottom:3px}.shift-time{font-size:11px;opacity:.9}.timeline-view{background:#fff;border:1px solid #ddd;border-radius:8px;overflow:hidden}.timeline-header{background:#34495e;color:#fff;display:grid;font-weight:700;grid-template-columns:80px repeat(auto-fit,minmax(150px,1fr));position:-webkit-sticky;position:sticky;top:0;z-index:10}.area-column-header,.time-column-header{border-right:1px solid #2c3e50;padding:15px;text-align:center}.area-column-header:last-child{border-right:none}.timeline-body{display:grid;grid-template-columns:80px repeat(auto-fit,minmax(150px,1fr));position:relative}.time-column{border-right:1px solid #ddd}.time-slot{border-bottom:1px solid #ecf0f1;color:#7f8c8d;font-size:11px;height:30px;padding:5px;text-align:center}.area-column{background:linear-gradient(180deg,#f8f9fa 0,#f8f9fa 50%,#fff 0,#fff);background-size:100% 60px;border-right:1px solid #ddd;position:relative}.area-column:last-child{border-right:none}.shifts-container{height:100%;min-height:1560px;position:relative}.timeline-shift-box{border-radius:4px;box-shadow:0 2px 4px #0003;color:#fff;font-size:12px;left:5px;overflow:hidden;padding:8px;position:absolute;right:5px;z-index:5}.timeline-staff-name{font-size:13px;font-weight:600;margin-bottom:2px}.timeline-staff-role{font-size:10px;margin-bottom:4px;opacity:.8}.timeline-shift-time{font-size:10px;opacity:.9}.legend{background:#f8f9fa;border-radius:8px;margin-top:20px;padding:15px}.legend h3{color:#2c3e50;font-size:14px;margin:0 0 10px}.legend-items{display:flex;gap:20px}.legend-item{align-items:center;display:flex;gap:8px}.legend-color{border-radius:3px;height:20px;width:20px}.add-shift-button{background:#2ecc71!important}.add-shift-button:hover{background:#27ae60!important}.clickable-shift{cursor:pointer;transition:transform .1s,box-shadow .1s}.clickable-shift:hover{box-shadow:0 4px 8px #0000004d;transform:scale(1.02)}.schedule-cell.covered{border-left:4px solid #2ecc71}.schedule-cell.understaffed{background:#fef5e7!important;border-left:4px solid #f39c12}.schedule-cell.empty{background:#fadbd8!important;border-left:4px solid #e74c3c}.coverage-warning{background:#f39c12;border-radius:3px;color:#fff;font-size:11px;margin-top:5px;padding:4px 6px;text-align:center}.coverage-legend{background:#f8f9fa;border-radius:8px;margin-top:20px;padding:15px}.coverage-legend h3{color:#2c3e50;font-size:14px;margin:0 0 10px}.coverage-legend-items{display:flex;flex-wrap:wrap;gap:20px}.coverage-legend-item{align-items:center;display:flex;gap:8px}.coverage-indicator{border-radius:3px;height:20px;width:20px}.ai-buttons{display:flex;gap:10px;margin-left:auto}.ai-fill-button,.ai-generate-button{border:none;border-radius:5px;cursor:pointer;font-size:14px;font-weight:600;padding:10px 20px;transition:all .2s}.ai-fill-button{background:#3498db;color:#fff}.ai-fill-button:hover:not(:disabled){background:#2980b9}.ai-generate-button{background:#9b59b6;color:#fff}.ai-generate-button:hover:not(:disabled){background:#8e44ad}.ai-fill-button:disabled,.ai-generate-button:disabled{cursor:not-allowed;opacity:.5}.preview-banner{background:linear-gradient(135deg,#667eea,#764ba2);border-radius:8px;box-shadow:0 4px 6px #0000001a;color:#fff;justify-content:space-between;margin-bottom:20px;padding:15px 20px}.preview-banner,.preview-info{align-items:center;display:flex}.preview-info{gap:15px}.preview-icon{font-size:24px}.preview-error{color:#fcc;margin-left:15px}.preview-actions{display:flex;gap:10px}.apply-button,.cancel-preview-button{border:none;border-radius:5px;cursor:pointer;font-weight:600;padding:10px 20px;transition:all .2s}.apply-button{background:#fff;color:#667eea}.apply-button:hover:not(:disabled){background:#f0f0f0}.cancel-preview-button{background:#fff3;border:2px solid #fff;color:#fff}.cancel-preview-button:hover:not(:disabled){background:#ffffff4d}.apply-button:disabled,.cancel-preview-button:disabled{cursor:not-allowed;opacity:.5}.preview-shift{animation:pulse 2s infinite;border:2px dashed #667eea!important;opacity:.6;position:relative}@keyframes pulse{0%,to{opacity:.6}50%{opacity:.8}}.preview-badge{background:#667eea;border-radius:3px;color:#fff;font-size:9px;font-weight:700;padding:2px 5px;position:absolute;right:2px;text-transform:uppercase;top:2px}.ai-loading{background:#f8f9fa;border:2px dashed #3498db;border-radius:8px;margin-bottom:20px;padding:40px;text-align:center}.spinner{animation:spin 1s linear infinite;border:4px solid #f3f3f3;border-radius:50%;border-top-color:#3498db;height:40px;margin:0 auto 15px;width:40px}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.ai-loading p{color:#7f8c8d;margin:0}.schedule-header{flex-wrap:wrap;gap:15px;justify-content:space-between;margin-bottom:20px}.schedule-header,.schedule-nav{align-items:center;display:flex}.schedule-nav{gap:10px}.schedule-actions{display:flex;flex-wrap:wrap;gap:10px}.history-button{background:#95a5a6;border:none;border-radius:5px;color:#fff;cursor:pointer;font-size:14px;font-weight:600;padding:10px 16px;transition:all .2s}.history-button:hover:not(:disabled){background:#7f8c8d}.history-button:disabled{cursor:not-allowed;opacity:.4}.clear-schedule-button{background:#e74c3c;border:none;border-radius:5px;color:#fff;cursor:pointer;font-size:14px;font-weight:600;padding:10px 20px;transition:all .2s}.clear-schedule-button:hover:not(:disabled){background:#c0392b}.clear-schedule-button:disabled{cursor:not-allowed;opacity:.5}.modal-overlay{align-items:center;background:#00000080;bottom:0;display:flex;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:1000}.modal-content{background:#fff;border-radius:8px;box-shadow:0 4px 6px #0000001a;max-height:90vh;max-width:600px;overflow-y:auto;width:90%}.modal-header{align-items:center;border-bottom:1px solid #ddd;display:flex;justify-content:space-between;padding:20px}.modal-header h2{color:#2c3e50;margin:0}.close-button{align-items:center;background:none;border:none;color:#95a5a6;cursor:pointer;display:flex;font-size:28px;height:30px;justify-content:center;padding:0;transition:color .2s;width:30px}.close-button:hover{color:#2c3e50}form{padding:20px}.error-message{background:#fee;border:1px solid #fcc;border-radius:5px;color:#c00;margin-bottom:15px;padding:10px}.form-group{margin-bottom:20px}.form-group label{color:#2c3e50;display:block;font-weight:600;margin-bottom:5px}.form-group input,.form-group select{border:1px solid #ddd;border-radius:5px;font-size:14px;padding:10px;transition:border-color .2s;width:100%}.form-group input:focus,.form-group select:focus{border-color:#3498db;outline:none}.form-row{grid-gap:15px;display:grid;gap:15px;grid-template-columns:1fr 1fr}.form-actions{border-top:1px solid #ddd;display:flex;justify-content:space-between;margin-top:30px;padding-top:20px}.right-buttons{display:flex;gap:10px}.cancel-button,.delete-button,.submit-button{border:none;border-radius:5px;cursor:pointer;font-size:14px;padding:10px 20px;transition:background .2s}.submit-button{background:#3498db;color:#fff}.submit-button:hover:not(:disabled){background:#2980b9}.cancel-button{background:#95a5a6;color:#fff}.cancel-button:hover:not(:disabled){background:#7f8c8d}.delete-button{background:#e74c3c}.delete-button:hover:not(:disabled){background:#c0392b}button:disabled{cursor:not-allowed;opacity:.6}.staff-modal{max-width:600px}.checkbox-group,.checkbox-group label{align-items:center;display:flex}.checkbox-group label{cursor:pointer;gap:8px;margin:0}.checkbox-group input[type=checkbox]{cursor:pointer;width:auto}small{color:#7f8c8d;display:block;font-size:12px;margin-top:5px}.days-checkbox-group{display:flex;flex-wrap:wrap;gap:15px;margin-top:10px}.day-checkbox{align-items:center;border:1px solid #ddd;border-radius:5px;cursor:pointer;display:flex;gap:5px;padding:8px 12px;transition:all .2s}.day-checkbox:hover{background:#f8f9fa;border-color:#3498db}.day-checkbox input[type=checkbox]{cursor:pointer;width:auto}.day-checkbox input[type=checkbox]:checked+span,.day-checkbox:has(input:checked){background:#e3f2fd;border-color:#3498db;font-weight:600}.areas-checkbox-group{grid-gap:10px;display:grid;gap:10px;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));margin-top:10px}.area-checkbox{align-items:center;background:#fff;border:1px solid #ddd;border-radius:5px;cursor:pointer;display:flex;gap:8px;padding:10px 12px;transition:all .2s}.area-checkbox:hover{background:#f8f9fa;border-color:#3498db}.area-checkbox input[type=checkbox]:checked~*,.area-checkbox:has(input:checked){background:#e3f2fd;border-color:#3498db;font-weight:600}.area-checkbox.all-areas{background:#f8f9fa;border:2px solid #95a5a6;grid-column:1/-1}.area-checkbox.all-areas:has(input:checked){background:#d5f4e6;border-color:#2ecc71}.staff-list-container{margin:0 auto;max-width:1400px;padding:20px}.staff-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:30px}.staff-header h1{color:#2c3e50;margin:0}.add-staff-button{background:#2ecc71;border:none;border-radius:5px;color:#fff;cursor:pointer;font-size:16px;font-weight:600;padding:12px 24px;transition:background .2s}.add-staff-button:hover{background:#27ae60}.staff-filters{align-items:center;display:flex;flex-wrap:wrap;gap:15px;margin-bottom:30px}.search-input{flex:1 1;min-width:250px}.role-filter,.search-input{border:1px solid #ddd;border-radius:5px;font-size:14px;padding:10px 15px}.role-filter{cursor:pointer}.staff-count{color:#7f8c8d;font-size:14px}.staff-grid{grid-gap:20px;display:grid;gap:20px;grid-template-columns:repeat(auto-fill,minmax(320px,1fr))}.staff-card{background:#fff;border:1px solid #ddd;border-radius:8px;padding:20px;position:relative;transition:box-shadow .2s}.staff-card:hover{box-shadow:0 4px 8px #0000001a}.staff-card.inactive{background:#f8f9fa;opacity:.6}.staff-card-header{align-items:center;border-bottom:1px solid #ecf0f1;display:flex;justify-content:space-between;margin-bottom:15px;padding-bottom:15px}.staff-card-header h3{color:#2c3e50;font-size:18px;margin:0}.role-badge{border-radius:12px;color:#fff;font-size:12px;font-weight:600;padding:4px 12px}.staff-details{margin-bottom:15px}.detail-row{display:flex;justify-content:space-between;margin-bottom:8px}.detail-label{color:#7f8c8d;font-size:14px}.detail-value{color:#2c3e50;font-size:14px;font-weight:500}.per-diem-badge{background:#f39c12;border-radius:4px;color:#fff;display:inline-block;font-size:11px;font-weight:600;margin-top:5px;padding:4px 8px}.staff-actions{display:flex;gap:10px}.activate-button,.deactivate-button,.edit-button{border:none;border-radius:5px;cursor:pointer;flex:1 1;font-size:14px;font-weight:500;padding:8px 16px;transition:background .2s}.edit-button{background:#3498db;color:#fff}.edit-button:hover{background:#2980b9}.deactivate-button{background:#e74c3c;color:#fff}.deactivate-button:hover{background:#c0392b}.activate-button{background:#2ecc71;color:#fff}.activate-button:hover{background:#27ae60}.inactive-overlay{background:#000c;border-radius:5px;color:#fff;font-size:18px;font-weight:700;left:50%;padding:10px 20px;pointer-events:none;position:absolute;top:50%;transform:translate(-50%,-50%)}.no-results{color:#95a5a6;font-size:16px;padding:60px 20px;text-align:center}.time-off-modal{max-width:600px}textarea{border:1px solid #ddd;border-radius:5px;font-family:inherit;font-size:14px;padding:10px;resize:vertical;transition:border-color .2s;width:100%}textarea:focus{border-color:#3498db;outline:none}.time-off-container{margin:0 auto;max-width:1400px;padding:20px}.time-off-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:30px}.time-off-header h1{color:#2c3e50;margin:0}.add-request-button{background:#3498db;border:none;border-radius:5px;color:#fff;cursor:pointer;font-size:16px;font-weight:600;padding:12px 24px;transition:background .2s}.add-request-button:hover{background:#2980b9}.time-off-filters{margin-bottom:30px}.filter-buttons{display:flex;gap:10px}.filter-buttons button{background:#fff;border:2px solid #ddd;border-radius:5px;cursor:pointer;font-size:14px;font-weight:500;padding:10px 20px;transition:all .2s}.filter-buttons button:hover{background:#f8f9fa;border-color:#3498db}.filter-buttons button.active{background:#3498db;border-color:#3498db;color:#fff}.requests-list{background:#fff;border-radius:8px;box-shadow:0 2px 4px #0000001a;overflow:hidden}.requests-table{border-collapse:collapse;width:100%}.requests-table thead{background:#34495e;color:#fff}.requests-table th{font-size:14px;font-weight:600;padding:15px;text-align:left}.requests-table tbody tr{border-bottom:1px solid #ecf0f1;transition:background .2s}.requests-table tbody tr:hover{background:#f8f9fa}.requests-table td{font-size:14px;padding:15px}.staff-name-cell strong{color:#2c3e50}.status-badge{border-radius:12px;font-size:12px;font-weight:600;padding:4px 12px;text-transform:uppercase}.status-pending{background:#fff3cd;color:#856404}.status-approved{background:#d4edda;color:#155724}.status-denied{background:#f8d7da;color:#721c24}.actions-cell{display:flex;flex-wrap:wrap;gap:5px}.approve-button,.delete-button,.deny-button{border:none;border-radius:4px;cursor:pointer;font-size:12px;font-weight:500;padding:6px 12px;transition:all .2s}.approve-button{background:#2ecc71;color:#fff}.approve-button:hover{background:#27ae60}.deny-button{background:#e74c3c;color:#fff}.deny-button:hover{background:#c0392b}.delete-button{background:#95a5a6;color:#fff}.delete-button:hover{background:#7f8c8d}.no-requests{color:#95a5a6;font-size:16px;padding:60px 20px;text-align:center}.error,.loading{font-size:18px;padding:40px;text-align:center}.error{color:#e74c3c}*{box-sizing:border-box}body{background:#f5f6fa;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;margin:0}.App{min-height:100vh}
/*# sourceMappingURL=main.80266dd7.css.map*/