body{font-family:Arial,sans-serif;margin:0;padding:20px;background-color:#f5f5f5}.calendar-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px;padding:20px;background-color:#fff;border-radius:8px;box-shadow:0 2px 4px #0000001a}.calendar-header button{margin-left:10px;padding:8px 16px;background-color:#2196f3;color:#fff;border:none;border-radius:4px;cursor:pointer}.calendar-grid{display:grid;grid-template-columns:repeat(8,1fr);gap:10px;background-color:#fff;padding:20px;border-radius:8px;box-shadow:0 2px 4px #0000001a}.calendar-grid>div{padding:10px;border-radius:4px}.calendar-grid .calendar-header{font-weight:700;background-color:#f0f0f0;margin:0;box-shadow:none}.store-name{background-color:#bbdefb;font-weight:700}.calendar-cell{min-height:120px;background-color:#fff;border:1px solid #e0e0e0;transition:background-color .2s}.calendar-cell:hover{background-color:#f8f8f8}.shift-card{position:relative;background-color:#2196f3;color:#fff;padding:8px;margin-bottom:8px;border-radius:4px;cursor:move;box-shadow:0 2px 4px #0000001a;-webkit-user-select:none;user-select:none}.shift-card:hover{box-shadow:0 4px 8px #0003}.resize-handle{position:absolute;bottom:2px;right:2px;width:10px;height:10px;background-color:#fff;border-radius:50%;cursor:e-resize}.calendar-controls{margin-top:20px;display:flex;gap:10px}.calendar-controls button{padding:8px 16px;background-color:#4caf50;color:#fff;border:none;border-radius:4px;cursor:pointer}.calendar-controls button:hover{background-color:#388e3c}.select-container{margin:20px 0;padding:20px;background-color:#fff;border-radius:8px;box-shadow:0 2px 4px #0000001a}.select-container select{width:100%;padding:8px;border:1px solid #e0e0e0;border-radius:4px;margin-top:8px}.header{background-color:#1976d2;color:#fff;padding:20px;margin:-20px -20px 20px}.header h1{margin:0;font-size:24px}.modal{position:fixed;top:0;left:0;right:0;bottom:0;background-color:#00000080;display:flex;justify-content:center;align-items:center;z-index:1000}.modal-content{background-color:#fff;padding:20px;border-radius:8px;width:400px;max-width:90%}.modal-content form>div{margin-bottom:15px}.modal-content label{display:block;margin-bottom:5px}.modal-content input,.modal-content select{width:100%;padding:8px;border:1px solid #ddd;border-radius:4px}.modal-buttons{display:flex;justify-content:flex-end;gap:10px}.modal-buttons button{padding:8px 16px;border:none;border-radius:4px;cursor:pointer}.modal-buttons button[type=submit]{background-color:#4caf50;color:#fff}.modal-buttons button[type=button]{background-color:#f44336;color:#fff}.calendar-grid{display:grid;grid-template-columns:auto auto repeat(7,1fr);gap:4px}.weekly-hours-cell{padding:8px;background-color:#f5f5f5;border-radius:4px;text-align:center;font-size:.9em;border:1px solid #e0e0e0}.employee-list{max-height:200px;overflow-y:auto;margin:10px 0;padding:10px;border:1px solid #ddd;border-radius:4px}.employee-checkbox{display:block;margin:5px 0}.employee-name{display:flex;align-items:center;gap:8px;padding:8px}.required-shifts-info{background-color:#e3f2fd;padding:12px;border-radius:4px;margin-bottom:16px}.remaining-hours{margin-left:8px;color:#666;font-size:.9em}.special-day{background-color:#fff3e0;border:2px solid #ff9800}.shift-card.special-day{background-color:#ff9800}.modal-content.wide{width:20%;max-width:800px;margin:0 auto;display:block;position:relative;transform:translate(0)}.problematic-days{display:flex;justify-content:center;flex-wrap:wrap;gap:20px;overflow-y:auto;max-height:80vh;padding:20px 0}.day-card{width:300px;flex:0 0 auto;padding:15px;border:1px solid #ddd;border-radius:8px;background:#fff}.employee-row{padding:8px;border-bottom:1px solid #eee}.remaining-hours{color:#666;margin-left:8px}.confirm-day-button{margin-top:10px;padding:8px 16px;background-color:#4caf50;color:#fff;border:none;border-radius:4px;cursor:pointer}.confirm-day-button:disabled{background-color:#ccc;cursor:not-allowed}.absence-dayOff{background-color:#cce5ff}.absence-sickLeave{background-color:#fcc}.staffing-cell{padding:4px;border:1px solid #ddd;background:#f9f9f9}.staffing-table{width:100%;font-size:.8em;border-collapse:collapse}.staffing-table tr{border-bottom:1px solid #eee}.staffing-table tr.understaffed{background:#fff0f0;color:#d32f2f}.staffing-table td{padding:2px 4px}.staffing-table td:last-child{text-align:right}.understaffed-block{margin-bottom:4px;background:#ffebee;padding:8px;border-radius:4px;font-size:.9em;display:flex;justify-content:space-between;align-items:center;gap:8px}.understaffed-block:last-child{margin-bottom:0}.understaffed-block.sufficient{background:#e8f5e9}.time-range{font-weight:700;color:#d32f2f;margin-right:4px}.time-range.sufficient{color:#2e7d32}.staff-count{color:#d32f2f;white-space:nowrap}.staff-count.sufficient{color:#2e7d32}.shift-times{margin-top:8px;margin-left:24px;display:flex;align-items:center;gap:8px}.shift-times input[type=time]{padding:4px;border:1px solid #ddd;border-radius:4px}.employee-checkbox{display:flex;align-items:center;gap:8px}.employee-row{padding:12px;border-bottom:1px solid #eee}.employee-row:last-child{border-bottom:none}.shift-warning{color:#d32f2f;font-size:.9em;margin-left:24px;margin-top:4px}.modal-close-button{position:absolute;top:10px;right:10px;background:none;border:none;font-size:20px;cursor:pointer;color:#666;padding:5px;line-height:1}.modal-close-button:hover{color:#333}.modal-content{position:relative}.employee-name{display:flex;align-items:center;gap:4px}.day-header{position:relative;display:flex;flex-direction:column;align-items:center;padding:8px 4px}.day-name{margin-bottom:4px}.day-date{font-size:.9em}.hours-section,.closed-days-section{margin:20px 0;padding:15px;border:1px solid #ddd;border-radius:8px}.time-inputs{display:flex;gap:20px;margin:10px 0}.time-inputs label{display:flex;flex-direction:column;gap:5px}.time-inputs input[type=time]{padding:8px;border:1px solid #ddd;border-radius:4px;width:120px}.sunday-section{margin-top:10px}.closed-checkbox{display:flex;align-items:center;gap:8px;margin-bottom:10px}.add-closed-day{display:flex;gap:10px;margin-bottom:15px}.add-closed-day input[type=date]{padding:8px;border:1px solid #ddd;border-radius:4px;flex:1}.add-closed-day button{padding:8px 16px;background-color:#4caf50;color:#fff;border:none;border-radius:4px;cursor:pointer}.closed-days-list{max-height:200px;overflow-y:auto;border:1px solid #eee;border-radius:4px;padding:10px}.closed-day-item{display:flex;justify-content:space-between;align-items:center;padding:8px;border-bottom:1px solid #eee}.closed-day-item:last-child{border-bottom:none}.remove-button{background:none;border:none;color:#f44336;font-size:20px;cursor:pointer;padding:0 8px}.remove-button:hover{color:#d32f2f}.calendar-footer{display:flex;justify-content:center;gap:20px;padding:20px;margin-top:20px;border-top:1px solid #ddd;background:#f9f9f9}.calendar-footer button{padding:10px 20px;border:none;border-radius:4px;background-color:#4caf50;color:#fff;cursor:pointer;transition:background-color .2s}.calendar-footer button:hover{background-color:#45a049}.calendar-footer-buttons{display:flex;gap:20px;align-items:center}.day-header .understaffed-day-button{padding:4px;background-color:transparent;border:none;cursor:pointer;position:absolute;top:50%;right:4px;transform:translateY(-50%);display:flex;align-items:center;justify-content:center;width:24px;height:24px}.day-header .understaffed-day-button:hover{background-color:#ff00001a;border-radius:50%}.shift-card-container{margin-bottom:3px}.shift-actions{display:grid;grid-template-columns:1fr 1fr;gap:3px;margin-top:1px}.shift-edit-button,.shift-delete-button{padding:4px;border:none;border-radius:4px;cursor:pointer;display:flex;align-items:center;justify-content:center}.shift-edit-button{background-color:#1976d2}.shift-delete-button{background-color:#d32f2f}.shift-edit-button img,.shift-delete-button img{width:16px;height:16px;filter:invert(100%)}.shift-info{margin:10px 0;padding:8px;background-color:#f5f5f5;border-radius:4px}.shift-info p{margin:0;font-size:.9em;color:#666}.modal-buttons button:disabled{background-color:#ccc;cursor:not-allowed}.calendar-cell{position:relative}.calendar-cell:hover .add-shift-hover{display:block}.add-shift-hover{display:none;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.add-shift-button{background:none;border:none;padding:0;cursor:pointer}.add-shift-button img{width:24px;height:24px;filter:invert(50%)}.add-shift-button:hover img{filter:invert(0%)}.weekly-hours-cell.overtime-warning{background-color:#e44242d9}.absence-request-button{margin:10px;padding:8px 16px;background-color:#2196f3;color:#fff;border:none;border-radius:4px;cursor:pointer}.calendar-header button:hover{background-color:#1976d2}.staff-request-button{margin-left:4px;padding:8px 16px;background-color:#2196f3;color:#fff;border:none;border-radius:4px;cursor:pointer}.staff-requests-container{margin:20px 0;width:100%}.staff-requests-content{background-color:#fff;border-radius:8px;box-shadow:0 2px 4px #0000001a;padding:20px}.staff-requests-content h3{margin:0 0 16px;color:#333}.staff-request-item{display:flex;justify-content:space-between;align-items:center;padding:12px;border-bottom:1px solid #eee}.staff-request-item:last-child{border-bottom:none}.request-info{display:flex;flex-direction:column;gap:4px}.request-info span{color:#666}.respond-button{padding:8px 16px;background-color:#4caf50;color:#fff;border:none;border-radius:4px;cursor:pointer}.respond-button:hover{background-color:#45a049}.existing-requests{margin-top:10px;padding:15px;background-color:#f5f5f5;border-radius:4px}.existing-requests h3{margin:0 0 10px;font-size:1rem;color:#333}.request-list{display:flex;flex-direction:column;gap:8px}.request-item{display:flex;gap:15px;padding:8px;background-color:#fff;border-radius:4px;border:1px solid #ddd}.request-item span{font-size:.9rem}.request-status{color:#666;font-style:italic}.available-employees-list{max-height:400px;overflow-y:auto;margin:15px 0;padding:10px;border:1px solid #ddd;border-radius:4px}.day-off-badge{background-color:#ffebee;color:#d32f2f;padding:2px 6px;border-radius:4px;font-size:.8em;margin-left:8px}.employee-checkbox{display:flex;align-items:center;flex-wrap:wrap;gap:8px;padding:8px 0}.remaining-hours{color:#666;font-size:.9em}.remaining-hours.overtime{color:#d32f2f}.calendar-cell.read-only{background-color:#f5f5f5;cursor:default}.respond-button.resolved{background-color:#ccc;cursor:not-allowed}@tailwind base;@tailwind components;@tailwind utilities;:root{font-family:Inter,system-ui,Avenir,Helvetica,Arial,sans-serif;line-height:1.5;font-weight:400}body{margin:0;min-width:320px;min-height:100vh}#root{max-width:1280px;margin:0 auto;padding:2rem}
