:root{--bg:#f5f7fb;--surface:#fff;--surface-2:#f0f3f8;--text:#162033;--muted:#667085;--border:#d9e0ea;--primary:#1f4f7a;--primary-2:#173a5a;--danger:#b42318;--gold:#d6ad42}*{box-sizing:border-box}html,body,#root{max-width:100%;min-height:100%;overflow-x:hidden}body{background:var(--bg);color:var(--text);margin:0;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}button,input,textarea{font:inherit}.loading{min-height:100vh;color:var(--muted);place-items:center;font-weight:800;display:grid}.login-page{place-items:center;min-height:100vh;padding:24px;display:grid}.login-card,.panel,.section-head,.item{background:var(--surface);border:1px solid var(--border);border-radius:10px}.login-card{gap:16px;width:min(420px,100%);padding:24px;display:grid}.login-card p{color:var(--muted);margin:8px 0 0}label{color:var(--muted);gap:6px;font-size:13px;font-weight:800;display:grid}input,textarea{border:1px solid var(--border);width:100%;color:var(--text);border-radius:8px;padding:10px}textarea{resize:vertical}.app-shell{grid-template-columns:280px minmax(0,1fr);min-width:0;min-height:100vh;display:grid}.sidebar{color:#fff;background:#182638;flex-direction:column;gap:26px;padding:24px;display:flex}.brand{align-items:center;gap:12px;display:flex}.brand-mark{background:var(--gold);color:#182638;border-radius:8px;place-items:center;width:42px;height:42px;font-weight:900;display:grid}.brand span,.account-box span{color:#b8c2d2;margin-top:2px;font-size:13px;display:block}.nav{gap:8px;display:grid}.nav button{color:#d8deea;cursor:pointer;text-align:left;background:0 0;border:0;border-radius:8px;justify-content:space-between;align-items:center;gap:10px;padding:12px 14px;display:flex}.nav button:hover,.nav button.active{color:#fff;background:#ffffff1a}.account-box{gap:8px;margin-top:auto;display:grid}.powered-by{color:#aab5c6;font-size:12px}.powered-by .kitchen{color:#fff}.powered-by .control{color:var(--gold)}.main{min-width:0;padding:28px}.topbar,.section-head,.item{justify-content:space-between;align-items:center;gap:18px;display:flex}.topbar{margin-bottom:22px}.eyebrow{color:var(--muted);text-transform:uppercase;letter-spacing:.08em;margin:0 0 4px;font-size:13px;font-weight:800}h1,h2{margin:0}h1{font-size:clamp(26px,4vw,38px)}h2{font-size:22px}.section-head{margin-bottom:14px;padding:18px}.section-head p,.panel p{color:var(--muted);margin:6px 0 0}.panel{padding:18px}.list{gap:12px;display:grid}.item{padding:16px}.meta{color:var(--muted);margin-top:3px}.details{color:var(--muted);margin-top:10px;font-size:13px}.form-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-bottom:14px;display:grid}.wide{grid-column:1/-1}.form-actions{justify-content:flex-end;gap:10px;display:flex}.checkbox-label{flex-direction:row;align-items:center;gap:10px;display:flex}.checkbox-label input{width:auto}.button{border:1px solid var(--border);cursor:pointer;background:var(--surface);color:var(--text);border-radius:8px;padding:10px 14px;font-weight:800}.button.primary{border-color:var(--primary);background:var(--primary);color:#fff}.button.primary:hover{background:var(--primary-2)}.button.secondary:hover{background:var(--surface-2)}.button.compact{padding:7px 10px;font-size:12px}.notice{border-radius:8px;margin-bottom:14px;padding:12px 14px}.notice.error{color:var(--danger);background:#fff5f4;border:1px solid #f3b4ad}.dashboard-overview{gap:14px;display:grid}.dashboard-hero{background:linear-gradient(135deg,#fff 0%,#f4f8fb 100%)}.dashboard-grid{grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:12px;display:grid}.dashboard-card{border:1px solid var(--border);background:#fff;border-radius:10px;gap:12px;padding:16px;display:grid;box-shadow:0 8px 18px #0f172a0a}.dashboard-card.needs-attention{border-color:#c9d9e8;box-shadow:0 12px 26px #1f4f7a1a}.dashboard-card-head{justify-content:space-between;align-items:center;gap:14px;display:flex}.dashboard-card-head span{color:var(--muted);font-size:13px;font-weight:900}.dashboard-card-head strong{background:var(--primary);color:#fff;border-radius:999px;justify-content:center;align-items:center;min-width:42px;height:42px;padding:0 12px;font-size:20px;display:inline-flex}.dashboard-card p{color:var(--text);margin:0}.dashboard-card-list{gap:6px;min-height:56px;display:grid}.dashboard-card-list small{color:var(--muted);font-size:12px;font-weight:800}@media (width<=860px){.app-shell{grid-template-columns:1fr}.main,.sidebar{width:100%;min-width:0;padding:16px}input,select,textarea{font-size:16px}.sidebar{z-index:20;gap:14px;max-width:100vw;position:sticky;top:0}.brand{justify-content:space-between}.brand-mark{width:36px;height:36px}.brand span{display:none}.nav{scrollbar-width:none;gap:8px;max-width:calc(100vw + 32px);margin:0 -16px;padding:0 16px 4px;display:flex;overflow-x:auto}.nav::-webkit-scrollbar{display:none}.nav button{white-space:nowrap;border:1px solid #ffffff1f;flex:none;min-height:42px;padding:9px 12px}.account-box{grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:8px;margin-top:0;display:grid}.account-box span,.account-box strong{text-overflow:ellipsis;white-space:nowrap;min-width:0;font-size:12px;overflow:hidden}.account-box .button{grid-area:1/2/span 2;padding:8px 12px}.powered-by{display:none}.topbar,.section-head,.item{flex-direction:column;align-items:stretch}.form-grid{grid-template-columns:1fr}.form-actions{flex-direction:column-reverse}.form-actions .button,.form-actions button{width:100%}.button{min-height:44px}.panel,.section-head,.item,.login-card{max-width:100%}.dashboard-grid{grid-template-columns:1fr}}.table-wrap{overflow-x:auto}.mobile-schedule-list{display:none}.schedule-table{border-collapse:collapse;width:100%;min-width:900px}.schedule-table th,.schedule-table td{border-bottom:1px solid var(--border);text-align:left;vertical-align:top;padding:12px}.schedule-table th{background:var(--surface-2);color:var(--muted);font-size:13px}.shift-pill{background:#f8fbff;border:1px solid #c8d7e6;border-radius:8px;gap:4px;padding:9px;display:grid}.shift-pill span,.muted{color:var(--muted);font-size:12px}.schedule-total-row td{border-top:2px solid var(--border);background:#eef4fa}.schedule-total-row strong{color:var(--primary)}select{border:1px solid var(--border);width:100%;color:var(--text);background:var(--surface);border-radius:8px;padding:10px}.shift-edit{border:1px solid var(--border);background:var(--surface);width:fit-content;color:var(--primary);cursor:pointer;border-radius:7px;padding:5px 7px;font-size:12px;font-weight:800}.shift-edit:hover{background:var(--surface-2)}.shift-actions{flex-wrap:wrap;gap:6px;display:flex}.shift-delete{width:fit-content;color:var(--danger);cursor:pointer;background:#fff5f4;border:1px solid #f3b4ad;border-radius:7px;padding:5px 7px;font-size:12px;font-weight:800}.shift-delete:hover{background:#ffe7e4}.field-hint{color:var(--muted);font-size:12px;font-weight:600}.button:disabled{cursor:not-allowed;opacity:.55}.availability-controls{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:10px;display:flex}.month-switcher{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.month-switcher strong{text-align:center;text-transform:capitalize;min-width:150px}.availability-grid{grid-template-columns:repeat(7,minmax(0,1fr));gap:10px;display:grid}.availability-day{background:var(--surface);border:1px solid var(--border);border-radius:10px;gap:9px;min-height:140px;padding:12px;display:grid}.availability-day strong{font-size:15px}.availability-day select,.availability-day input{width:100%}@media (width<=1100px){.availability-controls{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:10px;display:flex}.month-switcher{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.month-switcher strong{text-align:center;text-transform:capitalize;min-width:150px}.availability-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (width<=680px){.availability-controls{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:10px;display:flex}.month-switcher{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.month-switcher strong{text-align:center;text-transform:capitalize;min-width:150px}.availability-grid{grid-template-columns:1fr}}.period-select{min-width:180px}@media (width<=760px){.empty-state.small{padding:10px;font-size:13px}}.schedule-cell.editable{cursor:pointer;min-width:120px}.schedule-cell.editable:hover{background:#f8fafc}.shift-stack{gap:8px;min-height:38px;display:grid}.cell-add-shift{color:var(--primary);cursor:pointer;background:#fff;border:1px dashed #bfd0df;border-radius:8px;width:100%;padding:8px;font-size:12px;font-weight:800}.cell-add-shift:hover{background:#eef4fa}.shift-pill-editable{cursor:pointer}.shift-pill-editable:hover{border-color:var(--primary);box-shadow:0 6px 18px #1438581a}.modal-backdrop{z-index:40;background:#0f172a6b;justify-content:center;align-items:center;padding:20px;display:flex;position:fixed;inset:0}.modal-card{background:var(--surface);border:1px solid var(--border);border-radius:10px;width:min(760px,100%);max-width:760px;box-shadow:0 24px 70px #0f172a3d}.modal-head{justify-content:space-between;align-items:flex-start;gap:14px;display:flex}.modal-head h3{margin:0 0 4px}.modal-head p{color:var(--muted);margin:0}.availability-day.is-readonly{opacity:.72;background:#f8fafc}.availability-day.is-readonly select,.availability-day.is-readonly input{cursor:not-allowed}@media (width<=680px){.modal-backdrop{align-items:flex-end;padding:8px}.modal-card{border-radius:10px 10px 0 0;max-height:calc(100dvh - 16px);overflow-y:auto}.modal-head{flex-direction:column;align-items:stretch}.modal-head .button{align-self:stretch}.time-input-row>div{grid-template-columns:minmax(0,1fr)}}.free-day-pill{color:#6f5200;text-align:center;background:#fff8dd;border:1px solid #d7b84a;border-radius:8px;place-items:center;min-height:42px;padding:9px;display:grid}.time-input-row>div{grid-template-columns:minmax(0,1fr) auto;gap:8px;display:grid}.time-input-row input{min-width:0}.schedule-controls{flex-wrap:wrap;justify-content:flex-end;align-items:end;gap:10px;display:flex}.schedule-controls label{color:var(--muted);min-width:110px;font-size:12px;font-weight:800}.schedule-controls select{min-width:110px;margin-top:4px}@media (width<=860px){.schedule-controls{justify-content:stretch}.schedule-controls label,.schedule-controls button{width:100%}}.availability-reminder{color:#536174;background:#f6f8fb;border:1px solid #dce4ee;border-left:3px solid #9fb2c8;border-radius:7px;justify-content:space-between;align-items:center;gap:6px;padding:6px 7px;font-size:11px;font-weight:800;line-height:1.2;display:flex}.availability-reminder span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.availability-reminder strong{color:#9a3412;text-transform:uppercase;flex:none;font-size:10px}.availability-available{border-left-color:#6aa77a}.availability-available_from{border-left-color:#d6ad42}.availability-unavailable,.availability-preferred_off,.availability-reminder.has-conflict{color:#7c4a03;background:#fff8ed;border-color:#f2d0a7 #f2d0a7 #f2d0a7 #d97706}.availability-time-fields{gap:6px;display:grid}.vacation-balance-panel{gap:14px;margin-bottom:14px;display:grid}.vacation-balance-panel h3{margin:0 0 4px}.vacation-balance-grid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:10px;display:grid}.vacation-balance-card{border:1px solid var(--border);background:#f8fafc;border-radius:8px;gap:4px;padding:12px;display:grid}.vacation-balance-card span{color:var(--muted);font-size:12px}.vacation-balance-card b{color:var(--primary);font-size:13px}.employee-card{align-items:flex-start}.employee-card-main{gap:4px;width:100%;display:grid}.employee-stat-grid{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:8px;margin-top:10px;display:grid}.employee-stat{border:1px solid var(--border);background:#f8fafc;border-radius:8px;gap:2px;padding:10px;display:grid}.employee-stat b{color:var(--primary);font-size:14px}.employee-stat small{color:var(--muted);font-weight:800}.employee-balance-box{border:1px solid var(--border);background:#f8fafc;border-radius:8px;gap:8px;padding:12px;display:grid}.employee-card-grid{grid-template-columns:repeat(auto-fit,minmax(min(420px,100%),1fr));gap:14px;display:grid}.employee-card{background:linear-gradient(#fff 0%,#f8fafc 100%);border-color:#d8e2ee;align-items:stretch;min-height:220px;padding:18px;position:relative;box-shadow:0 10px 24px #0f172a0d}.employee-card-main{gap:14px}.employee-card-top{grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:12px;display:grid}.employee-avatar{background:var(--primary);color:#fff;letter-spacing:0;border-radius:10px;justify-content:center;align-items:center;width:46px;height:46px;font-weight:900;display:flex}.employee-name{color:var(--text);font-size:18px;line-height:1.2;display:block}.role-pill{color:var(--primary);white-space:nowrap;background:#edf3f9;border:1px solid #d5e2ef;border-radius:999px;padding:6px 10px;font-size:12px;font-weight:900}.role-admin{color:#7a5500;background:#fff7df;border-color:#ebcf75}.role-manager{color:#146239;background:#eaf7f0;border-color:#b9dfc9}.employee-card-body{grid-template-columns:minmax(170px,.8fr) minmax(220px,1.2fr);gap:10px;display:grid}.vacation-total-card{color:#fff;background:#10243a;border-radius:10px;gap:3px;padding:14px;display:grid}.vacation-total-card span,.vacation-total-card small{color:#cbd6e5;font-size:12px;font-weight:800}.vacation-total-card strong{color:#fff;font-size:28px;line-height:1.05}.employee-stat-grid{margin-top:0}.employee-stat{background:#fff;border-color:#dbe5f0}.employee-card-footer{color:var(--muted);border-top:1px solid #e4ebf3;flex-wrap:wrap;gap:8px 14px;padding-top:12px;font-size:12px;font-weight:800;display:flex}.employee-edit-button{white-space:nowrap;align-self:flex-start}@media (width<=760px){.employee-card-grid,.employee-card-top,.employee-card-body{grid-template-columns:1fr}.role-pill,.employee-edit-button{justify-self:start}}.employee-detail-panel{margin-bottom:16px}.employee-detail-head{border-bottom:1px solid #e4ebf3;justify-content:space-between;align-items:center;margin:-2px 0 4px;padding-bottom:12px;display:flex}.employee-detail-head h3{margin:0;font-size:22px}.employee-detail-head p{color:var(--muted);margin:4px 0 0}.employee-directory-grid{grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:12px;display:grid}.employee-quick-actions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:10px;margin-bottom:14px;display:flex}.employee-tile{color:var(--text);cursor:pointer;text-align:left;background:#fff;border:1px solid #d8e2ee;border-radius:10px;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:12px;min-height:86px;padding:14px;transition:border-color .15s,box-shadow .15s,transform .15s;display:grid;box-shadow:0 8px 18px #0f172a0a}.employee-tile:hover,.employee-tile.active{border-color:var(--primary);transform:translateY(-1px);box-shadow:0 12px 26px #1f4f7a1f}.employee-tile.active{background:#f8fbff}.employee-tile .employee-avatar{width:44px;height:44px}.employee-tile-text{gap:3px;min-width:0;display:grid}.employee-tile-text strong{text-overflow:ellipsis;white-space:nowrap;font-size:16px;overflow:hidden}.employee-tile-text small{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;font-weight:800;overflow:hidden}.employee-directory-grid .role-pill{justify-self:end}@media (width<=760px){.employee-directory-grid{grid-template-columns:1fr}.employee-detail-head{flex-direction:column;align-items:stretch;gap:12px}.employee-head-actions,.employee-quick-actions{justify-content:stretch}.employee-head-actions .button,.employee-quick-actions .button{flex:100%}.employee-tile{grid-template-columns:auto minmax(0,1fr)}.employee-directory-grid .role-pill{grid-column:2;justify-self:start}}.vacation-layout{grid-template-columns:minmax(280px,360px) minmax(0,1fr);align-items:start;gap:16px;display:grid}.vacation-request-form{gap:12px;display:grid}.vacation-request-form h3{margin:0}.vacation-date-row{grid-template-columns:1fr 1fr;gap:10px;display:grid}.vacation-days-preview{color:#fff;background:#10243a;border-radius:10px;align-items:baseline;gap:8px;padding:12px;display:flex}.vacation-days-preview strong{font-size:28px;line-height:1}.vacation-days-preview span{color:#cbd6e5;font-size:13px;font-weight:800}.notice.warning{color:#7a5500;background:#fff8e5;border-color:#e8c668}.vacation-list{gap:12px;display:grid}.vacation-card{border:1px solid var(--border);background:#fff;border-radius:10px;justify-content:space-between;align-items:center;gap:16px;padding:16px;display:flex}.vacation-card-main{gap:4px;display:grid}.vacation-status{border-radius:999px;justify-self:start;padding:5px 9px;font-size:12px;font-weight:900}.status-requested{color:#7a5500;background:#fff8e5}.status-approved{color:#146239;background:#eaf7f0}.status-rejected{color:#b42318;background:#fff0f0}.status-cancelled{color:#536176;background:#eef2f7}.vacation-actions{flex-wrap:wrap;justify-content:flex-end;gap:8px;display:flex}@media (width<=900px){.vacation-layout,.vacation-date-row{grid-template-columns:1fr}.vacation-days-preview{flex-direction:column;align-items:flex-start}.vacation-card{flex-direction:column;align-items:stretch}.vacation-actions{justify-content:stretch}.vacation-actions .button{flex:100%}}.nav-badge{background:var(--gold);color:#182638;border-radius:999px;justify-content:center;align-items:center;min-width:24px;padding:3px 7px;font-size:12px;font-weight:900;display:inline-flex}.heading-badge{color:#7a5500;vertical-align:middle;background:#fff7df;border:1px solid #ebcf75;border-radius:999px;margin-left:8px;padding:4px 9px;font-size:13px;font-weight:900;display:inline-flex}.birthday-badge,.birthday-heading-badge{color:#9b1b5a;background:#fde7f3;border-color:#f6b9d6}.birthday-note{color:#9b1b5a;background:#fff6fb;border:1px solid #f6b9d6;border-radius:8px;padding:10px 12px;font-weight:900}.employee-tile.has-birthday{border-color:#f6b9d6;box-shadow:0 12px 26px #9b1b5a1a}.employee-tile-badges{flex-direction:column;justify-self:end;align-items:flex-end;gap:6px;display:flex}.birthday-chip{color:#9b1b5a;white-space:nowrap;background:#fde7f3;border:1px solid #f6b9d6;border-radius:999px;padding:5px 9px;font-size:12px;font-weight:900}@media (width<=760px){.employee-tile-badges{grid-column:2;justify-self:start;align-items:flex-start}}.employee-head-actions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:10px;display:flex}.button.danger{color:#b42318;background:#fff1f0;border-color:#f3b6ad}.inactive-pill{color:#536176;white-space:nowrap;background:#eef2f7;border:1px solid #cfd8e3;border-radius:999px;align-items:center;padding:5px 9px;font-size:12px;font-weight:900;display:inline-flex}.employee-tile.inactive{opacity:.72;background:#f8fafc}.employee-tile.inactive .employee-avatar{background:#64748b}.employee-balance-summary{gap:14px;display:grid}.employee-balance-title{justify-content:space-between;align-items:center;display:flex}.employee-balance-title span{color:var(--muted);margin-top:3px;font-size:13px;font-weight:700;display:block}.employee-balance-main{grid-template-columns:minmax(220px,1.2fr) repeat(2,minmax(150px,.8fr));gap:10px;display:grid}.employee-vacation-card{min-height:112px}.vacation-calculation-details{border-top:1px solid #dbe5f0;padding-top:10px}.vacation-calculation-details summary{color:var(--primary);cursor:pointer;margin-bottom:10px;font-size:13px;font-weight:900}@media (width<=900px){.employee-balance-main{grid-template-columns:1fr}}.schedule-head{align-items:center}.schedule-controls .icon-button{min-width:42px;padding-left:0;padding-right:0}.schedule-controls label:first-of-type select{min-width:245px}@media (width<=720px){.schedule-table-wrap{display:none}.mobile-schedule-list{gap:12px;display:grid}.mobile-day-card{background:var(--surface);border:1px solid var(--border);border-radius:10px;overflow:hidden}.mobile-day-head{background:var(--surface-2);justify-content:space-between;align-items:center;padding:12px 14px;display:flex}.mobile-day-head span{color:var(--primary);font-weight:900}.mobile-day-rows{display:grid}.mobile-schedule-row{grid-template-columns:minmax(86px,32%) minmax(0,1fr);gap:10px;padding:12px 14px;display:grid}.mobile-schedule-row+.mobile-schedule-row{border-top:1px solid var(--border)}.mobile-person{align-content:start;gap:3px;min-width:0;display:grid}.mobile-person strong,.mobile-person span{overflow-wrap:anywhere}.mobile-person span{color:var(--muted);font-size:12px;font-weight:800}.mobile-shifts{gap:8px;min-width:0;display:grid}.mobile-week-total{border:1px solid var(--border);color:var(--primary);background:#eef4fa;border-radius:10px;justify-content:space-between;align-items:center;padding:12px 14px;display:flex}.schedule-controls .icon-button{width:calc(50% - 5px)}}.temporary-roster-badge{color:#536176;white-space:nowrap;background:#eef2f7;border:1px solid #cfd8e3;border-radius:999px;padding:3px 7px;font-size:11px;font-weight:900;display:inline-flex}.availability-reminder{min-height:22px;padding:4px 7px}.availability-reminder span{font-size:11px;font-weight:900}.availability-available{background:#f2f8f4;border-left-color:#4b9562}.availability-available_from{background:#f3f7fc;border-left-color:#3876ad}.availability-unavailable{background:#fff1f0;border-color:#f3b6ad #f3b6ad #f3b6ad #c2410c}.availability-preferred_off{background:#fff8ed;border-left-color:#d97706}.availability-reminder.has-conflict strong{color:#fff;background:#d97706;border-radius:999px;justify-content:center;align-items:center;width:17px;height:17px;display:inline-flex}
