:root{--bg:#f5f7fb;--bg-soft:#eef4ff;--panel:#ffffff;--panel-subtle:#f8fafc;--line:#e5e7eb;--line-strong:#d1d5db;--text:#111827;--muted:#667085;--muted-2:#98a2b3;--brand:#2563eb;--brand-dark:#1d4ed8;--brand-soft:#dbeafe;--brand-ink:#1e3a8a;--danger:#b42318;--danger-bg:#fee4e2;--warn:#b54708;--warn-bg:#fef0c7;--ok:#067647;--ok-bg:#dcfae6;--purple:#6941c6;--purple-bg:#ebe9fe;--shadow:0 14px 40px rgba(15,23,42,0.08);--shadow-soft:0 8px 24px rgba(15,23,42,0.06);--radius:16px;--radius-sm:12px;--mobile-bottom-nav-height:72px}*{box-sizing:border-box}html{background:var(--bg)}body{margin:0;background:radial-gradient(circle at top left,rgba(37,99,235,.045),transparent 34rem),var(--bg);color:var(--text);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:15px;letter-spacing:0}a{color:inherit;text-decoration:none}.button,button{align-items:center;background:var(--brand);border:1px solid var(--brand);border-radius:10px;color:white;cursor:pointer;display:inline-flex;font:inherit;font-weight:750;gap:8px;justify-content:center;min-height:44px;padding:10px 15px;transition:background .16s ease,box-shadow .16s ease,transform .16s ease}.button:hover,button:hover{background:var(--brand-dark);box-shadow:0 8px 18px rgba(37,99,235,.2);transform:translateY(-1px)}.button.ghost,.button.secondary,button.ghost,button.secondary{background:white;border-color:var(--line);color:#344054}.button.ghost:hover,.button.secondary:hover,button.ghost:hover,button.secondary:hover{background:#f9fafb;box-shadow:var(--shadow-soft)}button.danger{background:var(--danger);border-color:var(--danger)}button:disabled{cursor:not-allowed;opacity:.55;transform:none}.button:focus-visible,a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible,textarea:focus-visible{outline:3px solid rgba(37,99,235,.35);outline-offset:2px}input:not([type=checkbox]):not([type=radio]),select,textarea{background:white;border:1px solid var(--line);border-radius:12px;color:var(--text);font:inherit;min-height:44px;outline:none;padding:10px 12px;width:100%}textarea{resize:vertical}input[type=checkbox],input[type=radio]{height:20px;min-width:20px;width:20px}.app-shell,.shell{min-height:100vh}.app-shell{display:grid;grid-template-columns:280px minmax(0,1fr)}.sidebar{background:rgba(255,255,255,.9);border-right:1px solid var(--line);display:flex;flex-direction:column;gap:22px;height:100vh;padding:22px 18px;position:-webkit-sticky;position:sticky;top:0}.brand-block{align-items:center;display:flex;gap:12px;padding:6px 6px 14px}.brand-mark{align-items:center;background:linear-gradient(135deg,#2563eb,#38bdf8);border-radius:14px;box-shadow:0 10px 24px rgba(37,99,235,.24);color:white;display:inline-flex;flex:0 0 auto;height:44px;justify-content:center;width:44px}.brand-mark svg,.card h2 svg,.icon-button svg,.kpi-icon svg,.mobile-bottom-nav svg,.nav svg,.office-title svg,.panel h2 svg{display:block;flex:0 0 auto}.brand-title{display:flex;flex-direction:column;gap:2px}.brand-title strong{font-size:14px;line-height:1.15}.brand-title span{color:var(--muted);font-size:12px;font-weight:650}.nav{display:flex;flex-direction:column;gap:6px}.logout,.nav a{align-items:center;background:transparent;border:0;border-radius:12px;color:#344054;display:flex;font-size:14px;font-weight:750;gap:10px;justify-content:flex-start;min-height:42px;padding:10px 12px;width:100%}.logout:hover,.nav a.active,.nav a:hover{background:var(--brand-soft);box-shadow:none;color:var(--brand-ink);transform:none}.main-content{min-width:0}.container{margin:0 auto;max-width:1260px;padding:32px}.page-head{align-items:flex-start;display:flex;gap:16px;justify-content:space-between;margin-bottom:22px}.eyebrow{color:var(--brand);font-size:12px;font-weight:850;margin:0 0 8px;text-transform:uppercase}h1{font-size:32px;line-height:1.12;margin:0 0 7px}h1,h2,h3{letter-spacing:0}.subtle{color:var(--muted);margin:0}.card,.panel{background:rgba(255,255,255,.94);border:1px solid rgba(229,231,235,.9);border-radius:var(--radius);box-shadow:0 8px 22px rgba(15,23,42,.045);margin-bottom:18px;padding:20px}.card h2,.panel h2{align-items:center;display:flex;font-size:18px;gap:9px;margin:0 0 16px}.cards,.grid{grid-gap:16px;grid-template-columns:repeat(4,minmax(0,1fr))}.cards,.grid,.grid-2{display:grid;gap:16px}.grid-2{grid-gap:16px;grid-template-columns:repeat(2,minmax(0,1fr))}.field{display:flex;flex-direction:column;gap:7px}.field span{color:#344054;font-size:13px;font-weight:750}.form-grid{display:grid;grid-gap:14px;gap:14px}.form-actions{align-items:center;display:flex;flex-wrap:wrap;gap:10px;justify-content:flex-end;margin-top:18px}.employee-search-row{align-items:end;display:grid;grid-gap:10px;gap:10px;grid-template-columns:minmax(0,1fr) auto auto;margin:14px 0}.button-link{align-items:center;border:1px solid var(--line);border-radius:8px;display:inline-flex;font-weight:800;justify-content:center;min-height:40px;padding:10px 15px}.page-actions{align-items:center;display:flex;flex-wrap:wrap;gap:10px;justify-content:flex-end;margin:0 0 14px}.check-row{align-items:flex-start;color:#344054;display:flex;font-size:13px;font-weight:700;gap:9px;line-height:1.35}.kpi{background:white;border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-soft);color:var(--text);display:grid;padding:18px;transition:border-color .16s ease,box-shadow .16s ease,transform .16s ease}.action-kpi:focus-visible,.action-kpi:hover{border-color:#93c5fd;box-shadow:0 12px 28px rgba(37,99,235,.16);transform:translateY(-1px)}.action-kpi:active{transform:translateY(0)}.kpi-icon{align-items:center;background:var(--brand-soft);border-radius:12px;color:var(--brand);display:inline-flex;height:36px;justify-content:center;margin-bottom:12px;width:36px}.kpi strong{display:block;font-size:28px;line-height:1.1}.kpi span{color:var(--muted);display:block;font-size:13px;font-weight:750;margin-top:5px}.kpi small{align-items:center;color:var(--brand);display:inline-flex;font-size:12px;font-weight:850;gap:5px;margin-top:12px}.segmented-tabs{background:white;border:1px solid var(--line);border-radius:14px;display:inline-flex;gap:4px;margin:0 0 16px;padding:4px}.segmented-tabs a{border-radius:10px;color:#344054;font-weight:850;min-height:40px;padding:10px 14px}.segmented-tabs a.active{background:var(--brand);color:white}.schedule-snapshot h2{font-size:24px;margin:12px 0 6px}.today-shift-summary{background:#f8fbff;border:1px solid #bfdbfe;border-radius:16px;display:grid;grid-gap:6px;gap:6px;margin-top:16px;padding:16px}.today-shift-summary span{color:var(--muted);font-weight:850}.today-shift-summary strong{font-size:20px}.muted-summary{background:#f8fafc;border-color:var(--line)}.office-snapshot-grid,.snapshot-grid{display:grid;grid-gap:12px;gap:12px;grid-template-columns:repeat(2,minmax(0,1fr));margin-top:16px}.office-snapshot{border:1px solid var(--line);border-radius:14px;display:grid;grid-gap:10px;gap:10px;padding:14px}.office-snapshot h3,.template-editor-head h2{align-items:center;display:flex;gap:8px;margin:0}.my-day-card,.staffing-row{align-items:center;border-top:1px solid var(--line);display:flex;gap:12px;justify-content:space-between;padding-top:10px}.staffing-row:first-of-type{border-top:0;padding-top:0}.my-week-list{display:grid;grid-gap:10px;gap:10px}.my-day-card{border:1px solid var(--line);border-radius:14px;padding:12px}.action-choice-list,.schedule-actions-menu{display:flex;flex-wrap:wrap;gap:10px;justify-content:flex-end}.action-choice-list{display:grid}.action-choice-list form{align-items:center;border:1px solid var(--line);border-radius:14px;display:grid;grid-gap:10px;gap:10px;grid-template-columns:minmax(0,1fr) auto;padding:12px}.action-choice-list p{display:grid;grid-gap:4px;gap:4px;margin:0}.action-choice-list span{color:var(--muted);font-size:13px}.edit-details summary{align-items:center;color:var(--brand);cursor:pointer;display:inline-flex;font-weight:850;gap:8px}.checkbox-field{border:1px solid var(--line);border-radius:12px;padding:12px}.checkbox-field legend{color:#344054;font-size:13px;font-weight:750;padding:0 6px}.separated-actions{border-top:1px solid var(--line);justify-content:flex-start;padding-top:12px}.compact-empty{padding:10px}.template-editor-head{align-items:center;display:flex;gap:14px;justify-content:space-between}.template-day-grid{display:grid;grid-gap:14px;gap:14px;grid-template-columns:repeat(2,minmax(0,1fr))}.template-day-card{margin-bottom:0}.template-row,.template-shift-list{display:grid;grid-gap:8px;gap:8px}.template-row{align-items:center;background:white;border:1px solid var(--line);border-radius:12px;cursor:pointer;grid-template-columns:minmax(0,1fr) minmax(90px,auto) minmax(110px,auto);list-style:none;padding:11px 12px}.editor-sheet>summary::-webkit-details-marker,.template-row::-webkit-details-marker{display:none}.template-row span{color:var(--muted);font-size:13px;font-weight:750;text-align:right}.template-shift-sheet{display:grid}.add-template-sheet{justify-items:start}.editor-sheet>summary{list-style:none}.editor-surface{background:white;border:1px solid var(--line);border-radius:16px;box-shadow:var(--shadow-soft);display:grid;grid-gap:14px;gap:14px;margin-top:12px;padding:16px}.editor-header{align-items:flex-start;border-bottom:1px solid var(--line);display:flex;gap:12px;justify-content:space-between;padding-bottom:12px}.editor-header h2{margin:0 0 4px}.editor-form{display:contents}.editor-body{display:grid;grid-gap:14px;gap:14px}.editor-footer{align-items:center;display:flex;flex-wrap:wrap;gap:10px;justify-content:flex-end}.editor-danger,.editor-footer{border-top:1px solid var(--line);padding-top:12px}.delete-unavailable{align-self:center;max-width:560px}.warning-summary{padding:0}.warning-summary summary{align-items:center;cursor:pointer;display:flex;gap:12px;justify-content:space-between;list-style:none;padding:16px 18px}.warning-summary summary::-webkit-details-marker{display:none}.warning-summary summary span{align-items:center;display:inline-flex;font-weight:900;gap:8px}.warning-summary summary strong{color:var(--brand);font-size:13px}.warning-summary .warning-list{padding:0 18px 18px}.pill,.status{align-items:center;border-radius:999px;display:inline-flex;font-size:12px;font-weight:850;gap:5px;padding:5px 9px;white-space:nowrap}.status.draft,.status.pending,.status.warning{background:var(--warn-bg);color:var(--warn)}.status.approved,.status.covered,.status.published{background:var(--ok-bg);color:var(--ok)}.status.info{background:var(--brand-soft);color:var(--brand-ink)}.status.denied{background:var(--danger-bg);color:var(--danger)}.pill{background:#f2f4f7;color:#344054}.notice{background:#eff6ff;border:1px solid #bfdbfe;border-radius:14px;color:var(--brand-ink);margin:14px 0;padding:13px 14px}.notice.success{background:var(--ok-bg);border-color:#86efac;color:var(--ok)}.warning-list{display:grid;grid-gap:10px;gap:10px;margin:0;padding:0}.warning-list li{align-items:flex-start;background:#fffbeb;border:1px solid #fde68a;border-radius:14px;color:#713f12;display:flex;gap:9px;list-style:none;padding:12px}.user-card{align-items:center;background:#f8fafc;border:1px solid var(--line);border-radius:16px;display:flex;gap:10px;padding:12px}.user-card div{display:flex;flex-direction:column;gap:2px;min-width:0}.avatar{background:var(--brand-soft);border-radius:999px;color:var(--brand-ink);display:inline-grid;flex:0 0 32px;font-size:12px;font-weight:850;height:32px;place-items:center;width:32px}.sidebar-footer{margin-top:auto}.mobile-bottom-nav,.mobile-topbar{display:none}.login-page{align-items:center;display:grid;grid-gap:34px;gap:34px;grid-template-columns:minmax(0,1fr) minmax(320px,440px);min-height:100vh;padding:48px}.login-intro h1{font-size:46px;line-height:1.04;max-width:620px}.login-intro p{color:var(--muted);font-size:17px;line-height:1.5;max-width:560px}.login-card{background:white;border:1px solid var(--line);border-radius:20px;box-shadow:var(--shadow);padding:22px}.demo-buttons{display:grid;grid-gap:10px;gap:10px;margin-top:16px}.home-next{align-items:stretch;display:grid;grid-gap:16px;gap:16px;grid-template-columns:minmax(0,1.3fr) minmax(240px,.7fr)}.next-shift-card{background:linear-gradient(135deg,#ffffff,#eff6ff);border:1px solid #bfdbfe}.next-shift-time{display:block;font-size:34px;font-weight:900;line-height:1.05;margin:8px 0}.quick-actions,.schedule-toolbar{display:flex;flex-wrap:wrap;gap:10px}.schedule-toolbar{align-items:center;justify-content:space-between}.week-grid{display:grid;grid-gap:14px;gap:14px}.day-section{background:white;border:1px solid var(--line);border-radius:16px;overflow:hidden}.day-head{align-items:center;background:#f8fafc;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;padding:14px 16px}.office-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.office-column{display:grid;grid-gap:10px;gap:10px;padding:14px}.office-column+.office-column{border-left:1px solid var(--line)}.office-title{align-items:center;color:var(--muted);display:flex;font-size:12px;font-weight:850;gap:6px;text-transform:uppercase}.shift-card{background:#ffffff;border:1px solid var(--line);border-radius:14px;display:grid;grid-gap:7px;gap:7px;padding:12px;text-align:left;width:100%}button.shift-card{color:var(--text);justify-content:stretch;min-height:auto}button.shift-card:hover{background:#f8fbff;border-color:#bfdbfe;box-shadow:var(--shadow-soft)}.shift-card strong{font-size:15px}.shift-meta{align-items:center;color:var(--muted);display:flex;flex-wrap:wrap;font-size:13px;gap:8px}.admin-planner{display:grid;grid-gap:18px;gap:18px;grid-template-columns:minmax(0,1fr) 330px}.request-list{display:grid;grid-gap:12px;gap:12px}.request-card{background:white;border:1px solid var(--line);border-radius:16px;display:grid;grid-gap:9px;gap:9px;padding:14px}.request-card.unread{border-color:#93c5fd;box-shadow:0 0 0 3px rgba(37,99,235,.08)}.request-card-head{align-items:flex-start;display:flex;gap:12px;justify-content:space-between}.request-actions{display:flex;flex-wrap:wrap;gap:8px}.request-facts{display:grid;grid-gap:8px;gap:8px;grid-template-columns:repeat(auto-fit,minmax(190px,1fr))}.request-facts .profile-row{align-items:flex-start;display:grid;grid-gap:4px;gap:4px}.action-required{background:#f8fafc;border:1px solid var(--line);border-radius:10px;color:#344054;font-weight:800;margin:0;padding:9px 10px}.admin-actions,.request-tabs{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:16px}.request-tabs a{background:white;border:1px solid var(--line);border-radius:12px;color:#344054;font-weight:800;padding:10px 12px}.request-tabs span{color:var(--brand)}.activity-block,.admin-action-panel,.denial-box,.impact-preview{border-top:1px solid var(--line);display:grid;grid-gap:12px;gap:12px;margin-top:6px;padding-top:12px}.activity-block h3{font-size:14px;margin:0}.confirm-dialog{border:0;border-radius:16px;box-shadow:var(--shadow);max-width:min(720px,calc(100vw - 28px));padding:0;width:720px}.confirm-dialog::-webkit-backdrop{background:rgba(15,23,42,.42)}.confirm-dialog::backdrop{background:rgba(15,23,42,.42)}.confirm-dialog-body{padding:18px}.warning-inline{align-items:center;background:#fffbeb;border:1px solid #fde68a;border-radius:10px;color:var(--warn);display:inline-flex;font-size:12px;font-weight:800;gap:6px;margin:4px 0 0;padding:7px 9px}.timeline{display:grid;grid-gap:4px;gap:4px;margin-top:6px}.profile-list{display:grid;grid-gap:10px;gap:10px}.profile-row{align-items:center;background:white;border:1px solid var(--line);border-radius:14px;display:flex;justify-content:space-between;padding:12px 14px}.drawer-backdrop{align-items:stretch;background:rgba(15,23,42,.34);display:flex;inset:0;justify-content:flex-end;position:fixed;z-index:80}.drawer{background:white;border-left:1px solid var(--line);box-shadow:var(--shadow);display:flex;flex-direction:column;max-width:460px;min-height:100vh;padding:18px;width:min(460px,100%)}.drawer-head{align-items:flex-start;display:flex;gap:12px;justify-content:space-between;margin-bottom:16px}.drawer-head h2{margin:0 0 4px}.icon-button{align-items:center;background:white;border:1px solid var(--line);border-radius:10px;color:#344054;height:44px;justify-content:center;min-height:44px;padding:0;width:44px}.mobile-topbar-actions{align-items:center;display:flex;gap:8px}.notification-link{position:relative}.notification-badge{align-items:center;background:var(--danger);border:2px solid white;border-radius:999px;color:white;display:inline-flex;font-size:10px;font-weight:900;height:18px;justify-content:center;min-width:18px;padding:0 4px;position:absolute;right:-5px;top:-5px}.history-line{border-left:2px solid #bfdbfe;display:grid;grid-gap:4px;gap:4px;margin-left:8px;padding:0 0 16px 16px}.empty{align-items:center;background:#f8fafc;border:1px dashed var(--line-strong);border-radius:14px;color:var(--muted);display:flex;gap:8px;padding:14px}@media (max-width:1050px){.app-shell{grid-template-columns:1fr}.sidebar{display:none}.mobile-topbar{align-items:center;background:rgba(255,255,255,.96);border-bottom:1px solid var(--line);display:flex;justify-content:space-between;padding:10px 14px;position:-webkit-sticky;position:sticky;top:0;z-index:50}.mobile-bottom-nav{background:rgba(255,255,255,.97);border-top:1px solid var(--line);bottom:0;display:grid;grid-gap:2px;gap:2px;grid-template-columns:repeat(4,minmax(0,1fr));left:0;min-height:calc(var(--mobile-bottom-nav-height) + env(safe-area-inset-bottom));padding:7px 8px calc(7px + env(safe-area-inset-bottom));position:fixed;right:0;z-index:50}.mobile-bottom-nav a{align-items:center;border-radius:12px;color:var(--muted);display:grid;font-size:11px;font-weight:800;grid-gap:3px;gap:3px;justify-items:center;min-height:52px;padding:6px 3px}.mobile-bottom-nav a.active{background:var(--brand-soft);color:var(--brand-ink)}.container{padding:18px 14px calc(var(--mobile-bottom-nav-height) + 28px)}.page-head{display:grid}h1{font-size:27px}.admin-planner,.cards,.grid,.grid-2,.home-next,.office-grid,.office-snapshot-grid,.snapshot-grid,.template-day-grid{grid-template-columns:1fr}.office-column+.office-column{border-left:0;border-top:1px solid var(--line)}.login-page{grid-template-columns:1fr;padding:24px}.login-intro h1{font-size:34px}}@media (max-width:640px){.brand-title strong{font-size:13px}.brand-title span{display:none}.card,.panel{padding:16px}.next-shift-time{font-size:28px}.drawer-backdrop{align-items:flex-end}.drawer{border-left:0;min-height:auto;max-height:92vh;overflow-y:auto}.confirm-dialog,.drawer{border-radius:18px 18px 0 0}.confirm-dialog{bottom:0;margin:auto 0 0;max-height:calc(100dvh - 24px);max-width:100vw;width:100vw}.confirm-dialog-body{max-height:calc(100dvh - 24px);overflow-y:auto;padding-bottom:calc(18px + env(safe-area-inset-bottom))}.employee-search-row{align-items:stretch;grid-template-columns:1fr}.action-choice-list form,.profile-row,.request-card-head,.template-editor-head{align-items:stretch;display:grid}.segmented-tabs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));width:100%}.segmented-tabs a{text-align:center}.form-actions,.page-actions,.schedule-actions-menu{align-items:stretch;display:grid;grid-template-columns:1fr;justify-content:stretch}.form-actions .button,.form-actions button,.form-actions>*,.schedule-actions-menu>*{width:100%}.sticky-actions{background:rgba(255,255,255,.96);border-top:1px solid var(--line);bottom:var(--mobile-bottom-nav-height);margin:0 -16px -16px;padding:12px 16px;position:-webkit-sticky;position:sticky}.template-row{grid-template-columns:1fr}.template-row span{text-align:left}.sticky-template-actions{background:white;border-top:1px solid var(--line);bottom:var(--mobile-bottom-nav-height);margin:12px -16px -16px;padding:12px 16px;position:-webkit-sticky;position:sticky;z-index:12}.sticky-template-actions .icon-button{justify-self:end;min-width:44px;width:44px}.editor-sheet[open] .editor-surface{border:0;border-radius:0;display:grid;grid-template-rows:auto minmax(0,1fr) auto;inset:0;margin:0;max-height:100dvh;padding:0;position:fixed;z-index:120}.editor-sheet[open] .editor-header{background:rgba(255,255,255,.98);padding:calc(14px + env(safe-area-inset-top)) 16px 14px;position:-webkit-sticky;position:sticky;top:0;z-index:2}.editor-sheet[open] .editor-body{align-content:start;min-height:0;overflow-y:auto;padding:16px 16px 120px}.editor-sheet[open] .editor-footer{background:rgba(255,255,255,.98);border-top:1px solid var(--line);bottom:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(92px,1fr));padding:12px 16px calc(12px + env(safe-area-inset-bottom));position:fixed;width:100%;z-index:3}.editor-sheet[open] .editor-footer>*{width:100%}.editor-sheet[open] .editor-danger{background:white;padding:0 16px 120px}.add-shift-panel{padding:16px}.today-shift-summary strong{font-size:18px}.warning-summary summary{align-items:stretch;display:grid}}@media (prefers-reduced-motion:reduce){*,:after,:before{scroll-behavior:auto!important;transition:none!important}}