:root{color:#172033;background:#f4f5f7;font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-synthesis:none;text-rendering:optimizeLegibility;--line: #e2e5ea;--muted: #6b7280;--sidebar: 248px}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh;background:#f4f5f7}button,input,select{font:inherit}button{color:inherit}.app-shell{min-height:100vh}.app-header{height:70px;display:flex;align-items:center;gap:24px;padding:0 28px;background:#fff;border-bottom:1px solid var(--line)}.brand{display:flex;align-items:center;gap:11px;min-width:220px}.brand>div:last-child{display:flex;flex-direction:column;line-height:1.12}.brand strong{font-size:16px;letter-spacing:-.025em}.brand small{color:#89909c;font-size:11px;margin-top:4px}.brand-mark{width:34px;height:34px;border-radius:9px;display:flex;align-items:flex-end;justify-content:center;gap:3px;padding-bottom:8px;color:#fff;background:#263349;box-shadow:0 3px 9px #2633492e}.brand-mark span{width:4px;border-radius:2px;background:#fff}.brand-mark span:nth-child(1){height:9px;opacity:.6}.brand-mark span:nth-child(2){height:16px}.brand-mark span:nth-child(3){height:12px;opacity:.8}.header-status{margin-right:auto;color:#7b8290;font-size:12px;display:flex;align-items:center;gap:7px}.save-dot{width:7px;height:7px;border-radius:50%;background:#2da56a;box-shadow:0 0 0 3px #e7f6ee}.header-actions{display:flex;gap:9px}.button{height:38px;border-radius:8px;border:1px solid transparent;padding:0 14px;display:inline-flex;align-items:center;justify-content:center;gap:8px;font-size:13px;font-weight:650;cursor:pointer;transition:.15s ease}.button:hover{transform:translateY(-1px)}.button.subtle{border-color:#dfe2e7;background:#fff;color:#414a5b}.button.subtle:hover{border-color:#c9ced6;background:#fafafa}.button.primary{background:#263349;color:#fff;box-shadow:0 2px 5px #2633492e}.button.primary:hover{background:#1c2739}.button:disabled{opacity:.45;cursor:not-allowed;transform:none}.workspace{display:grid;grid-template-columns:var(--sidebar) minmax(0,1fr);min-height:calc(100vh - 70px)}.sidebar{background:#fff;border-right:1px solid var(--line);padding:27px 18px}.sidebar-section+.sidebar-section{margin-top:34px;padding-top:25px;border-top:1px solid #eceef1}.section-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}.section-heading.compact{align-items:center}.eyebrow{color:#9298a4;font-size:10px;font-weight:750;letter-spacing:.105em;text-transform:uppercase}.section-heading h2{margin:4px 0 0;font-size:16px;letter-spacing:-.02em}.section-help{color:#848b97;font-size:11.5px;line-height:1.5;margin:10px 0 16px}.text-button{border:0;background:none;color:#4263eb;font-size:12px;font-weight:700;cursor:pointer;padding:3px}.shift-list{display:grid;gap:15px}.palette-group{display:grid;gap:7px}.palette-label-row{min-height:20px;display:flex;align-items:center;justify-content:space-between}.palette-label{color:#a0a6b0;font-size:9px;font-weight:750;letter-spacing:.08em;text-transform:uppercase}.palette-manage{width:21px;height:21px;display:grid;place-items:center;padding:0;border:0;border-radius:5px;background:transparent;color:#9ba2ad;opacity:.42;cursor:pointer;transition:opacity .15s,color .15s,background .15s}.palette-group:hover .palette-manage,.palette-manage:focus-visible{opacity:1;color:#536071;background:#f0f2f5}.shift-template{position:relative;width:100%;min-height:54px;display:flex;align-items:center;gap:10px;padding:9px 10px;text-align:left;border:1px solid #e0e3e8;border-radius:9px;background:#fff;cursor:grab;transition:border-color .15s,box-shadow .15s,background .15s,transform .15s}.shift-template:hover{border-color:var(--tone-border);box-shadow:0 3px 12px #1e293b12;transform:translateY(-1px)}.shift-template.selected{border-color:var(--tone);background:var(--tone-soft);box-shadow:0 0 0 2px var(--tone-ring)}.shift-template-copy{flex:1;display:flex;flex-direction:column;min-width:0}.shift-template-copy strong{font-size:12.5px}.shift-template-copy small{color:#7f8794;font-size:10.5px;margin-top:3px}.drag-handle{margin-left:auto;color:#b1b6bf;font-size:16px;transform:rotate(90deg)}.selected-check{margin-left:auto;width:20px;height:20px;border-radius:50%;display:grid;place-items:center;color:#fff;background:var(--tone)}.tone-blue{--tone: #536bc0;--tone-soft: #f3f6fc;--tone-border: #b8c3e6;--tone-ring: #e4e9f7}.tone-slate{--tone: #697386;--tone-soft: #f0f2f5;--tone-border: #c9ced7;--tone-ring: #e4e7eb}.tone-cool{--tone: #5e718d;--tone-soft: #eef2f8;--tone-border: #c9d5e6;--tone-ring: #e1e7f0}.tone-rose{--tone: #ca4c68;--tone-soft: #fff0f3;--tone-border: #eda7b7;--tone-ring: #fbdbe2}.icon-button{width:34px;height:34px;border:1px solid #e0e3e8;border-radius:8px;background:#fff;display:grid;place-items:center;cursor:pointer;color:#646c79}.icon-button:hover{background:#f7f8fa;color:#263349}.avatar-stack{display:flex;margin-top:15px;padding-left:4px}.mini-avatar{width:30px;height:30px;margin-left:-5px;display:grid;place-items:center;border:2px solid #fff;border-radius:50%;background:var(--avatar);color:#fff;font-size:8.5px;font-weight:800}.schedule-area{min-width:0;padding:27px 30px 50px}.schedule-toolbar{display:flex;align-items:center;justify-content:space-between;gap:24px;margin-bottom:18px}.title-line{display:flex;align-items:center;gap:10px}.schedule-toolbar h1{margin:0;font-size:23px;letter-spacing:-.035em}.schedule-toolbar p{margin:5px 0 0;color:#737b89;font-size:12.5px}.demo-badge{padding:4px 7px;border-radius:5px;background:#e9edf3;color:#677082;font-size:9px;font-weight:750;letter-spacing:.04em;text-transform:uppercase}.week-controls{display:flex;align-items:center;gap:8px}.segmented{height:38px;display:flex;border:1px solid #dfe2e7;border-radius:8px;overflow:hidden;background:#fff}.segmented button{width:39px;border:0;border-right:1px solid #e3e5e9;background:#fff;display:grid;place-items:center;cursor:pointer}.segmented button:last-child{border-right:0}.segmented button:hover{background:#f7f8fa}.coverage-summary{display:flex;align-items:center;gap:11px;min-height:54px;border:1px solid;border-radius:10px;padding:9px 13px;margin-bottom:12px}.coverage-summary.has-risk{color:#93452d;border-color:#f0c8ba;background:#fff8f5}.coverage-summary.all-good{color:#246a48;border-color:#b9ddca;background:#f2fbf6}.summary-icon{flex:0 0 auto;width:31px;height:31px;border-radius:8px;display:grid;place-items:center;background:#ffffffb3}.coverage-summary div{display:flex;flex-direction:column}.coverage-summary strong{font-size:12.5px}.coverage-summary span:not(.summary-icon){margin-top:3px;font-size:10.5px;opacity:.75}.paint-banner{display:flex;align-items:center;gap:7px;min-height:38px;padding:7px 12px;margin-bottom:12px;border:1px solid #cbd7f8;border-radius:8px;background:#f4f7ff;color:#43506a;font-size:12px}.paint-banner button{margin-left:auto;border:0;background:none;color:#4169e1;font-size:11px;font-weight:750;cursor:pointer}.schedule-card{border:1px solid #dde1e6;border-radius:11px;background:#fff;overflow:hidden;box-shadow:0 5px 18px #1e293b0b}.schedule-scroll{min-width:1080px}.schedule-card{overflow-x:auto}.schedule-grid{display:grid;grid-template-columns:180px repeat(7,minmax(119px,1fr)) 60px}.header-row{min-height:78px;background:#fafbfc;border-bottom:1px solid #dde1e6}.person-header,.hours-header{padding:16px;display:flex;align-items:flex-end;color:#8a919e;font-size:10px;font-weight:750;letter-spacing:.06em;text-transform:uppercase}.person-header{border-right:1px solid #e5e8ec}.hours-header{justify-content:center;border-left:1px solid #e5e8ec}.day-header{padding:11px 9px 9px;border-right:1px solid #eceef1}.day-header.today{background:#f3f6ff}.day-heading{display:flex;align-items:baseline;gap:7px}.day-heading span{color:#838b98;font-size:10.5px;font-weight:700;text-transform:uppercase}.day-heading strong{font-size:18px;letter-spacing:-.04em}.coverage-pill{display:inline-block;margin-top:9px;padding:3px 6px;border-radius:5px;font-size:9px;font-weight:700;white-space:nowrap}.coverage-pill.ok{color:#536071;background:#edf1f5}.coverage-pill.short{color:#a34a34;background:#ffebe6}.coverage-pill.closed{color:#77808e;background:#eceff3}.person-row{min-height:78px;border-bottom:1px solid #e8eaee}.person-row:last-child{border-bottom:0}.person-cell{padding:12px 13px;display:flex;align-items:center;gap:10px;border-right:1px solid #e5e8ec;min-width:0}.person-avatar{flex:0 0 auto;width:32px;height:32px;border-radius:9px;display:grid;place-items:center;background:var(--avatar);color:#fff;font-size:9px;font-weight:800}.person-avatar.small{width:31px;height:31px;border-radius:8px}.person-copy{display:flex;flex-direction:column;min-width:0}.person-copy strong{font-size:11.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.person-copy small{margin-top:4px;color:#89909c;font-size:9.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.schedule-cell{position:relative;min-width:0;padding:8px;border:0;border-right:1px solid #eceef1;background:#fff;text-align:left;cursor:pointer;transition:background .12s,box-shadow .12s}.schedule-cell.today{background:#fbfcff}.schedule-cell:hover{background:#f8f9fb;box-shadow:inset 0 0 0 1px #dce1e8}.schedule-cell.paintable:hover,.schedule-cell.drag-over{background:#f0f4ff;box-shadow:inset 0 0 0 2px #8099e8}.schedule-cell.unassigned-cell{background:transparent}.unassigned-state{height:58px;display:flex;align-items:center;justify-content:center;border:0;border-radius:7px;background:transparent}.assign-affordance{display:none;align-items:center;gap:4px;color:#5268b5;font-size:10.5px;font-weight:650}.schedule-cell:hover .unassigned-state,.schedule-cell:focus-visible .unassigned-state,.schedule-cell.paintable .unassigned-state{border:1px dashed #c3ccd9}.schedule-cell:hover .assign-affordance,.schedule-cell:focus-visible .assign-affordance,.schedule-cell.paintable .assign-affordance{display:inline-flex}.assignment{position:relative;height:58px;display:flex;align-items:center;padding:8px 25px 8px 11px;border:0;border-radius:7px;background:transparent;color:#273143;cursor:grab}.assignment.working-assignment{border-left:3px solid #5b74c9;background:#f4f7fd}.shift-time-primary{color:#1c2739;font-size:12.5px;font-weight:680;font-variant-numeric:tabular-nums;white-space:nowrap}.assignment.away-assignment{border:1px solid var(--tone-border);background:var(--tone-soft);color:var(--tone)}.assignment.assignment-vacation{border-color:#c9d5e6;background:#eef2f8;color:#3c5270}.assignment.assignment-sick{border-color:#e8b7c3;background:#fdf1f4;color:#a63d51}.assignment.off-assignment{border:0;background:transparent;color:#6b7280}.assignment-name{display:block;padding-right:12px;font-size:11px;font-weight:650;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.off-label{font-size:10.5px;font-weight:600}.assignment-remove{position:absolute;top:50%;right:3px;width:21px;height:21px;transform:translateY(-50%);border:0;border-radius:5px;background:transparent;color:#9097a3;display:none;place-items:center;cursor:pointer}.assignment:hover .assignment-remove{display:grid}.assignment-remove:hover{color:#a63d51;background:#ffffffb3}.hours-cell{display:flex;align-items:center;justify-content:center;border-left:1px solid #e5e8ec;color:#4d5666}.hours-cell strong{font-size:13px}.hours-cell span{margin-left:2px;color:#9aa1ac;font-size:9px}.schedule-footer{min-width:1080px;height:40px;display:flex;align-items:center;justify-content:flex-end;padding:0 15px;border-top:1px solid #e4e7eb;background:#fafbfc;color:#858d99;font-size:9.5px}.schedule-footer button{border:0;background:none;color:#8b5b62;font-size:10px;font-weight:650;cursor:pointer}.schedule-footer button:hover{color:#b03648}.modal-backdrop,.drawer-backdrop{position:fixed;inset:0;z-index:40;background:#1b233161;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.modal-backdrop{display:grid;place-items:center;padding:20px}.assign-modal{width:min(460px,100%);max-height:calc(100vh - 40px);overflow:auto;padding:22px;border-radius:13px;background:#fff;box-shadow:0 25px 70px #151d2a3b}.modal-header,.drawer-header{display:flex;align-items:flex-start;justify-content:space-between;gap:18px}.modal-header h2,.drawer-header h2{margin:4px 0 0;font-size:19px;letter-spacing:-.025em}.modal-header p,.drawer-header p{margin:5px 0 0;color:#7e8693;font-size:11px}.assign-options{margin-top:20px;display:grid;grid-template-columns:1fr 1fr;gap:9px}.assign-option{min-height:67px;padding:10px 12px;display:flex;align-items:center;gap:10px;border:1px solid #e0e3e8;border-radius:9px;background:#fff;text-align:left;cursor:pointer}.assign-option:hover,.assign-option.active{border-color:var(--tone);background:var(--tone-soft)}.assign-option .option-copy,.clear-option>span:nth-child(2){display:flex;flex-direction:column}.assign-option strong{font-size:12px}.assign-option small{margin-top:4px;color:#818996;font-size:10px}.assign-option>svg{margin-left:auto;color:var(--tone)}.assign-option.work-option:hover,.assign-option.work-option.active{border-color:#7e8fd0;background:#f2f5ff}.off-option,.clear-option{grid-column:1 / -1}.off-option{--tone: #697386;--tone-soft: #f0f2f5}.clear-option{--tone: #a47636;--tone-soft: #fff8ec;border-style:dashed}.off-symbol{width:24px;height:24px;border-radius:6px;display:grid;place-items:center;background:#eef0f3;color:#7c8491;font-weight:700}.drawer-backdrop{display:flex;justify-content:flex-end}.setup-drawer{width:min(480px,100%);height:100%;overflow-y:auto;background:#fff;box-shadow:-20px 0 60px #1922302e}.drawer-header{padding:24px 25px 21px;border-bottom:1px solid #e5e7eb}.drawer-section{padding:23px 25px;border-bottom:1px solid #e9ebee;scroll-margin-top:8px}.drawer-section-title{display:flex;align-items:center;gap:8px;margin-bottom:13px}.drawer-section-title.split{justify-content:space-between}.drawer-section-title.split>div{display:flex;align-items:center;gap:8px}.drawer-section-title h3{margin:0;font-size:13px;letter-spacing:-.01em}.drawer-section-title>span,.drawer-section-title.split>div>span{min-width:20px;height:20px;padding:0 6px;display:grid;place-items:center;border-radius:10px;background:#edf0f4;color:#6f7785;font-size:9px;font-weight:750}.section-add-button{height:28px;display:inline-flex;align-items:center;gap:5px;padding:0 7px;border:0;border-radius:6px;background:transparent;color:#7b8390;font-size:10px;font-weight:700;cursor:pointer}.section-add-button:hover,.section-add-button:focus-visible{color:#465269;background:#f1f3f6}.drawer-help{margin:-5px 0 15px;color:#818996;font-size:11px;line-height:1.5}.schedule-type-list{display:grid;gap:6px}.shift-setting,.status-setting{min-height:44px;display:flex;align-items:center;gap:7px;padding:5px 6px 5px 9px;border:1px solid #e3e6ea;border-radius:8px;background:#fff}.shift-setting:hover,.status-setting:hover{border-color:#d2d7de;background:#fbfcfd}.shift-setting input[type=time]{width:84px;height:30px;padding:0 4px;border:0;border-radius:5px;background:transparent;color:#2e3747;font-size:11px;font-weight:650;font-variant-numeric:tabular-nums;outline:none}.shift-setting input[type=time]:focus{background:#eef2fa;box-shadow:0 0 0 2px #dce4f6}.time-separator{color:#9aa1ac;font-size:11px}.config-hours{margin-left:auto;color:#9299a4;font-size:9.5px;white-space:nowrap}.config-remove{flex:0 0 auto;width:28px;height:28px;display:grid;place-items:center;padding:0;border:0;border-radius:6px;background:transparent;color:#b1b6bf;opacity:0;cursor:pointer}.shift-setting:hover .config-remove,.status-setting:hover .config-remove,.config-remove:focus-visible{opacity:1}.config-remove:hover{color:#a94051;background:#fff0f2}.config-remove:disabled{opacity:0;cursor:not-allowed}.status-setting input{flex:1;min-width:0;height:31px;padding:0 4px;border:0;border-radius:5px;background:transparent;color:#2e3747;font-size:11.5px;font-weight:650;outline:none}.status-setting input:focus{padding:0 7px;background:#eef2f8;box-shadow:0 0 0 2px #dde4ee}.inline-config-form{margin-top:10px;padding:11px;display:flex;align-items:flex-end;gap:8px;border:1px solid #dfe3e8;border-radius:9px;background:#fafbfc}.inline-config-form .button{height:34px;padding:0 11px;font-size:10.5px}.time-field{flex:1;display:flex;flex-direction:column;gap:5px}.time-field>span{color:#848c98;font-size:9px;font-weight:700}.time-field input,.status-form>input{width:100%;height:34px;padding:0 8px;border:1px solid #d9dde3;border-radius:6px;background:#fff;color:#2e3747;font-size:11px;outline:none}.time-field input:focus,.status-form>input:focus{border-color:#899bd2;box-shadow:0 0 0 2px #e5eaf8}.status-form>input{flex:1}.people-list{display:grid;gap:5px}.person-setting{min-height:49px;display:flex;align-items:center;gap:10px;padding:6px 8px;border-radius:8px}.person-setting:hover{background:#f7f8fa}.person-setting>span:nth-child(2){display:flex;flex-direction:column;min-width:0}.person-setting strong{font-size:11.5px}.person-setting small{margin-top:3px;color:#8c939e;font-size:9.5px}.person-setting button{margin-left:auto;width:30px;height:30px;border:0;border-radius:6px;background:transparent;color:#a1a7b0;display:grid;place-items:center;cursor:pointer}.person-setting button:hover{color:#b43f51;background:#fff0f2}.add-person-form{margin-top:16px;padding:14px;display:grid;grid-template-columns:1fr 1fr;gap:10px;border:1px solid #e2e5e9;border-radius:10px;background:#fafbfc}.add-person-form label,.coverage-inputs label{display:flex;flex-direction:column;gap:6px}.add-person-form label>span,.coverage-inputs label>span{color:#747c89;font-size:9.5px;font-weight:700}.add-person-form input,.add-person-form select,.coverage-inputs input{width:100%;height:36px;padding:0 10px;border:1px solid #d9dde3;border-radius:7px;outline:none;background:#fff;font-size:11px}.add-person-form input:focus,.add-person-form select:focus,.coverage-inputs input:focus{border-color:#7891df;box-shadow:0 0 0 3px #e8edfd}.add-person-form button{grid-column:1 / -1;margin-top:2px}.coverage-inputs{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.drawer-footer{position:sticky;bottom:0;min-height:70px;padding:15px 25px;display:flex;align-items:center;justify-content:space-between;gap:12px;border-top:1px solid #e3e6ea;background:#fffffff2;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.danger-link{border:0;background:none;color:#a64a59;font-size:11px;font-weight:650;cursor:pointer}.toast{position:fixed;z-index:80;left:50%;bottom:25px;transform:translate(-50%);min-height:42px;display:flex;align-items:center;gap:8px;padding:9px 15px;border-radius:9px;background:#263349;color:#fff;box-shadow:0 10px 30px #141d2b40;font-size:12px;font-weight:650}.toast svg{color:#7fe0ac}@media(max-width:900px){.app-header{padding:0 16px}.brand{min-width:0;margin-right:auto}.header-status{display:none}.workspace{display:block}.sidebar{border-right:0;border-bottom:1px solid var(--line);padding:16px}.sidebar-section+.sidebar-section{display:none}.section-heading,.section-help{display:none}.shift-list{display:flex;overflow-x:auto;padding:2px 1px 7px}.palette-group{display:contents}.palette-label-row{display:none}.shift-template{flex:0 0 145px;min-height:50px}.schedule-area{padding:20px 16px 40px}}@media(max-width:620px){.brand small,.header-actions .subtle,.today-button,.coverage-summary span:not(.summary-icon){display:none}.app-header{height:62px}.header-actions{gap:4px}.workspace{min-height:calc(100vh - 62px)}.schedule-toolbar{align-items:flex-start}.schedule-toolbar h1{font-size:20px}.demo-badge{display:none}.coverage-summary{min-height:45px}.assign-options{grid-template-columns:1fr}.off-option,.clear-option{grid-column:auto}.add-person-form,.coverage-inputs{grid-template-columns:1fr}}@media print{.app-header,.sidebar,.coverage-summary,.paint-banner,.schedule-footer,.week-controls{display:none!important}.workspace{display:block}.schedule-area{padding:0}.schedule-card{box-shadow:none;overflow:visible}}
