/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-border-style:solid}}}@layer theme{:root,:host{--font-sans:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;-moz-tab-size:4;tab-size:4;line-height:1.5;font-family:var(--default-font-family,-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring:where(:not(iframe)){outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab,red,red)){::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){-webkit-appearance:button;-moz-appearance:button;appearance:button}::file-selector-button{-webkit-appearance:button;-moz-appearance:button;appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.fixed{position:fixed}.block{display:block}.grid{display:grid}.hidden{display:none}.shrink{flex-shrink:1}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.border{border-style:var(--tw-border-style);border-width:1px}}:root{color:#243447;font-synthesis:none;--navy:#142b3a;--teal:#1f6fe0;--blue-soft:#e8f1fe;--line:#e2e7ec;--muted:#566a79;background:#f4f6f8;font-family:Open Sans,Inter,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:14px}*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}button,.file-button,a.button{color:#284352;cursor:pointer;white-space:nowrap;background:#fff;border:1px solid #cfdae1;border-radius:7px;justify-content:center;align-items:center;gap:7px;padding:9px 13px;font-weight:600;display:inline-flex}button:hover:not(:disabled),.file-button:hover,a.button:hover{background:#eef4f5;border-color:#94b5b8}button:disabled{opacity:.48;cursor:not-allowed}.primary{background:var(--teal);color:#fff;border-color:var(--teal)}button.primary:hover:not(:disabled){color:#fff;background:#175bc0}:focus-visible{outline-offset:2px;outline:3px solid #8bb8f5}input,select,textarea{color:#223848;background:#fff;border:1px solid #ced8df;border-radius:6px;min-width:0;max-width:100%;padding:9px 10px}input[type=checkbox]{accent-color:var(--teal);width:16px;height:16px}label{flex-direction:column;gap:7px;font-size:13px;font-weight:550;display:flex}textarea{resize:vertical;width:100%;min-height:90px}.app-shell{grid-template-columns:224px minmax(0,1fr);min-height:100vh;display:grid}.sidebar{background:var(--navy);color:#dbe5eb;flex-direction:column;height:100vh;padding:30px 18px;display:flex;position:sticky;top:0}.brand{align-items:center;gap:12px;margin:0 4px 46px;display:flex}.brand strong{letter-spacing:1.5px;font-size:18px}.brand small{letter-spacing:.4px;color:#a1b7c5;margin-top:5px;font-size:10px;display:block}.brand-mark{color:#fff;border:1px solid #6b8c9d;border-radius:9px;place-items:center;width:38px;height:44px;font-size:30px;font-weight:650;display:grid;position:relative}.brand-mark span{color:#6ee0c5;background:var(--navy);font-size:22px;line-height:20px;position:absolute;top:-8px;right:-6px}.nav-caption{letter-spacing:1.5px;color:#8da8b9;margin:0 10px 13px;font-size:10px}nav{flex-direction:column;gap:7px;display:flex}nav button{color:#adbfcb;background:0 0;border:0;justify-content:flex-start;padding:13px 14px;font-weight:500}nav button.active{color:#fff;background:#284653;box-shadow:inset 3px 0 #64d3ba}.sidebar-bottom{color:#97b3b9;border-top:1px solid #3a4e5c;gap:10px;margin-top:auto;padding-top:22px;display:flex}.sidebar-bottom strong{color:#d9e5e9;font-size:11px;font-weight:500}.sidebar-bottom small{margin-top:6px;font-size:10px;line-height:1.7;display:block}main{min-width:0}.topbar{border-bottom:1px solid var(--line);background:#fff;justify-content:space-between;align-items:center;height:65px;padding:0 32px;display:flex}.topbar>span:first-child{letter-spacing:1.8px;color:#607780;font-size:10px;font-weight:650}.tag{border:1px solid var(--line);white-space:nowrap;background:#f6f8f9;border-radius:20px;align-items:center;gap:5px;padding:4px 8px;font-size:10px;font-weight:500;display:inline-flex}.status-dot{background:#359b82;border-radius:50%;width:6px;height:6px}.page{max-width:2100px;margin:auto;padding:32px}.page-heading{justify-content:space-between;align-items:center;gap:20px;margin-bottom:25px;display:flex}.eyebrow{letter-spacing:1.7px;color:#41706c;margin:0 0 10px;font-size:10px;font-weight:700}h1{letter-spacing:-.8px;margin:0 0 9px;font-size:28px;font-weight:600;line-height:1.2}h2{letter-spacing:-.25px;margin:0 0 8px;font-size:17px;font-weight:650}h3{margin:24px 0 13px;font-size:14px;font-weight:650}p{margin:7px 0;line-height:1.6}.muted{color:var(--muted);font-size:12px}.actions{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.panel{border:1px solid var(--line);background:#fff;border-radius:11px;margin-bottom:20px;padding:22px;box-shadow:0 2px 3px #18344203}.panel-heading{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:16px;display:flex}.panel-heading h2{margin:0}.toolbar{justify-content:space-between;align-items:center;gap:15px;padding:15px 19px;display:flex}.month-control{color:var(--muted);text-transform:uppercase;letter-spacing:1px;flex-direction:row;align-items:center;gap:12px;font-size:11px}.month-control input{text-transform:none;letter-spacing:0;color:#213b4a;font-size:13px}.workspace-fieldset{border:0;min-width:0;margin:0;padding:0}.metrics{grid-template-columns:repeat(4,1fr);gap:15px;margin:22px 0;display:grid}.metric{border:1px solid var(--line);background:#fff;border-radius:9px;flex-direction:column;padding:19px 20px;display:flex}.metric>span{color:var(--muted);font-size:11px;font-weight:600}.metric strong{letter-spacing:-.7px;margin:12px 0 8px;font-size:27px;font-weight:600}.metric small{color:var(--muted);font-size:10px}.metric.bad strong{color:#b95131}.grid-panel{padding:20px 0 0;overflow:hidden}.grid-panel>.panel-heading,.grid-panel>.legend,.grid-panel>.note{margin-left:20px;margin-right:20px}.legend{color:var(--muted);flex-wrap:wrap;gap:18px;padding:0 0 16px;font-size:10px;display:flex}.legend span{align-items:center;gap:6px;display:flex}.legend i{border-radius:2px;width:8px;height:8px;display:block}.red{background:red}.blue{background:#00b0f0}.orange{background:#ffc000}.yellow{background:#ff0}.schedule-scroll{border-top:1px solid var(--line);max-height:65vh;overflow:auto}.schedule-grid{border-collapse:separate;border-spacing:0;white-space:nowrap;width:max-content;min-width:100%;font-size:10px}.schedule-grid th,.schedule-grid td{text-align:center;border-bottom:1px solid #e8edf0;border-right:1px solid #e8edf0;min-width:40px;height:35px;padding:0}.schedule-grid thead th{z-index:2;color:#536975;background:#f6f8fa;height:66px;padding:7px 3px;font-weight:500;position:sticky;top:0}.schedule-grid thead th span,.schedule-grid thead th strong,.schedule-grid thead th small{display:block}.schedule-grid thead th small{color:#536975;margin-bottom:4px;font-size:8px}.schedule-grid thead th strong{color:#2d4553;margin-top:2px;font-size:13px;font-weight:650}.schedule-grid .name-col{z-index:3;text-align:left;background:#fff;width:145px;min-width:145px;padding:0 13px;font-size:11px;position:sticky;left:0}.schedule-grid thead .name-col{z-index:4;background:#f6f8fa}.schedule-grid .coverage-row th{background:#f0f5f5;height:38px;padding:0;top:66px}.coverage-row button{background:0 0;border:0;border-radius:0;min-width:38px;padding:4px;font-size:11px;position:relative}.coverage-row small{margin:0!important;font-size:8px!important}.coverage-row button>span{color:#087b69;font-size:15px;position:absolute;top:-2px;right:1px}.schedule-grid td button{background:0 0;border:0;border-radius:0;width:100%;min-width:39px;min-height:34px;padding:4px 2px;font-size:10px;font-weight:500;position:relative}.schedule-grid td button small{opacity:.6;font-size:8px;position:absolute;bottom:1px;right:2px}.schedule-grid td.cell-request{color:#fff;background:red}.schedule-grid td.cell-request button{color:#170000}.schedule-grid td.cell-leave{color:#052837;background:#00b0f0}.schedule-grid td.cell-status{background:#ffc000}.schedule-grid td.cell-call,.schedule-grid td.generated-call{background:#ff0}.schedule-grid td.cell-solver:not(.generated-call) button{color:#08645e;font-weight:650}.schedule-grid td.total{min-width:105px;padding:0 6px}.total span{margin-right:2px;font-weight:600}.total input{background:0 0;border-color:#0000;width:40px;padding:4px;font-size:10px}.off-target{color:#a84729;background:#fff8f2}.audit-layout,.settings-layout{grid-template-columns:1fr 1fr;gap:20px;display:grid}.audit-list,.issue-list{max-height:340px;margin-top:15px;overflow:auto}details{border-top:1px solid var(--line);padding:12px 0}summary{cursor:pointer;justify-content:space-between;align-items:center;gap:12px;font-size:12px;font-weight:600;display:flex}summary span{color:var(--muted);font-size:10px}details p{color:#637585;border-left:2px solid #dfe7e9;padding-left:10px;font-size:11px}details p strong{margin-left:8px;display:inline-block}.alert{border:1px solid;border-radius:8px;align-items:center;gap:10px;margin:0 0 18px;padding:12px 14px;font-size:12px;display:flex}.alert button{background:0 0;border:0;margin-left:auto;padding:0}.notice{color:#276348;background:#eef8f3;border-color:#c7e3d5}.error{color:#a3382c}.alert.error{background:#fff1ee;border-color:#e6bab3}.success{color:#217554}.note{color:#496b6f;background:#f1f7f7;border-left:3px solid #8ebdb8;margin:16px 0;padding:12px 14px;font-size:12px}.empty-state{text-align:center;min-height:370px;color:var(--muted);flex-direction:column;justify-content:center;align-items:center;padding:55px 20px;display:flex}.empty-state h2{color:#2a4554;margin:19px 0 9px;font-size:21px}.empty-state p{margin-bottom:24px;font-size:13px}.empty-icon{color:#4b8b83;background:#eaf3f2;border-radius:16px;padding:22px}.roster-layout{grid-template-columns:320px minmax(0,1fr);gap:20px;display:grid}.roster-list{max-height:720px;overflow:auto}.roster-item{border:0;border-bottom:1px solid var(--line);text-align:left;white-space:normal;background:#fff;justify-content:space-between;width:100%;padding:15px 10px}.roster-item small{color:var(--muted);margin-top:5px;font-size:10px;font-weight:400;display:block}.roster-item.selected{background:#edf5f3}.form-grid{grid-template-columns:1fr 1fr;gap:16px;margin:20px 0;display:grid}.check{flex-direction:row;align-items:center;gap:8px;font-size:12px;font-weight:500}.checks{flex-wrap:wrap;gap:17px;margin:20px 0;display:flex}.shift-rule-table{grid-template-columns:1fr 75px 85px 135px 135px;align-items:center;gap:12px;font-size:12px;display:grid}.rule-row{display:contents}.rule-row select{font-size:11px}.history-list>div,.proposal{border-top:1px solid var(--line);justify-content:space-between;align-items:center;gap:16px;padding:17px 0;display:flex}.file-button{position:relative;overflow:hidden}.file-button input{opacity:0;cursor:pointer;position:absolute;top:0;right:0;bottom:0;left:0}.table-scroll{overflow:auto}.simple-table{border-collapse:collapse;text-align:left;width:100%}.simple-table th,.simple-table td{border-bottom:1px solid var(--line);padding:12px;font-size:12px}.simple-table th{font-weight:600}.simple-table thead{background:#f4f7f8}.progress-panel{background:#e5f2f0;border:1px solid #add0ca;border-radius:10px;justify-content:space-between;align-items:center;gap:20px;margin-bottom:20px;padding:18px;display:flex}.progress-panel>div{flex:1}.progress-panel p{font-size:12px}progress{width:100%;height:7px;accent-color:var(--teal)}dialog{color:#263f4d;border:1px solid #d2dfe4;border-radius:12px;width:min(510px,92vw);padding:26px;box-shadow:0 24px 100px #14324733}dialog::backdrop{-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#09233166}dialog label{margin:17px 0}dialog .actions{justify-content:space-between;margin-top:22px}footer{text-align:center;color:#566a79;padding:20px 0 0;font-size:10px}@media(min-width:1750px){.schedule-grid th,.schedule-grid td{min-width:44px}.schedule-grid td button{min-width:43px}}@media(max-width:1100px){.app-shell{grid-template-columns:180px minmax(0,1fr)}.sidebar{padding:25px 12px}.page{padding:24px 18px}.page-heading{align-items:flex-start}.page-heading>.actions{max-width:150px}.toolbar{flex-wrap:wrap}.roster-layout{grid-template-columns:240px minmax(0,1fr)}.form-grid,.audit-layout{grid-template-columns:1fr}.metric{padding:15px}.metric strong{font-size:24px}}@media(max-width:760px){.app-shell{display:block}.sidebar{height:auto;padding:15px 16px;position:static}.brand{margin:0 0 17px}.brand-mark{width:30px;height:33px;font-size:23px}.brand small{font-size:9px}.nav-caption,.sidebar-bottom{display:none}nav{flex-direction:row;gap:4px}nav button{flex:1;justify-content:center;gap:5px;padding:10px 5px;font-size:11px}nav button svg{width:15px}nav button.active{box-shadow:inset 0 -2px #64d3ba}.topbar{height:48px;padding:0 17px}.topbar>span:first-child{font-size:8px}.page{padding:22px 14px}.page-heading{display:block}.page-heading>.actions{max-width:none;margin-top:18px}h1{font-size:25px}.metrics{grid-template-columns:1fr 1fr;gap:10px}.metric{padding:14px}.metric strong{margin:9px 0;font-size:23px}.metric small{font-size:9px}.panel{padding:17px}.grid-panel{padding:17px 0 0}.grid-panel .panel-heading{display:block}.grid-panel .panel-heading .actions{margin-top:12px}.actions button{padding:8px 9px;font-size:11px}.toolbar .actions{width:100%}.roster-layout,.settings-layout{grid-template-columns:1fr}.roster-list{max-height:220px}.form-grid{grid-template-columns:1fr 1fr}.shift-rule-table{grid-template-columns:1fr 44px 52px 1fr 1fr;gap:7px;font-size:11px}.rule-row select{width:100%;padding:6px}.panel-heading{flex-wrap:wrap;align-items:flex-start}.schedule-grid .name-col{width:120px;min-width:120px}.schedule-scroll{max-height:65vh}.history-list>div{align-items:flex-start}.history-list p,.history-list button{font-size:10px}.empty-state{min-height:320px}.progress-panel{align-items:flex-start}.progress-panel button{font-size:10px}.note{font-size:11px}}@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}.login-page{background:#edf3f5;place-items:center;min-height:100vh;padding:24px;display:grid}.login-card{width:min(460px,100%);padding:36px}.login-card label{margin:20px 0}.login-card form button{width:100%;margin:10px 0 20px}.sidebar-bottom small{overflow-wrap:anywhere}.notice-list{margin:12px 0;padding-left:18px;font-size:12px}.holiday-ranks{margin:0 0 8px;padding-left:22px;font-size:13px;list-style:decimal}.holiday-summary{border-collapse:collapse;width:100%;font-size:12px}.holiday-summary th,.holiday-summary td{text-align:left;border-bottom:1px solid var(--line,#e3e6ea);vertical-align:top;padding:7px 8px}a.button{font-size:13px;text-decoration:none}.calendar-link .actions{flex-wrap:wrap}.sched-toolbar{border-top:1px solid var(--line);flex-wrap:wrap;align-items:center;gap:12px 16px;padding:12px 16px;display:flex}.segmented{background:#eef1f4;border-radius:9px;padding:3px;display:inline-flex}.segmented button{color:#4a5d6b;background:0 0;border:0;border-radius:7px;padding:6px 16px;font-size:13px}.segmented button.on{color:#17232d;background:#fff;box-shadow:0 1px 2px #142b3a24}.week-nav{align-items:center;gap:6px;font-size:13px;font-weight:600;display:inline-flex}.week-nav button{border-radius:999px;padding:5px 11px}.family-legend{color:var(--muted);flex-wrap:wrap;gap:6px 12px;margin-left:auto;font-size:11px;display:flex}.family-legend span{align-items:center;gap:5px;display:inline-flex}.family-legend i{border-radius:4px;width:12px;height:12px;display:inline-block}.fam-day{--chip-bg:#e3efff;--chip-fg:#1c4f9c;--chip-edge:#4a8ef0}.fam-ft{--chip-bg:#dff5e6;--chip-fg:#1e6b3a;--chip-edge:#3fb069}.fam-mid{--chip-bg:#eee7ff;--chip-fg:#55349e;--chip-edge:#8b66e8}.fam-evening{--chip-bg:#ffecd9;--chip-fg:#9a4410;--chip-edge:#f08a3c}.fam-night{--chip-bg:#dfe4ee;--chip-fg:#1d2a44;--chip-edge:#3d4f73}.family-legend i[class^=fam-]{background:var(--chip-bg);border:1.5px solid var(--chip-edge)}.family-legend .unavailable-key{background:#fff;border:1.5px solid #e0474c}.family-legend .leave-key{background:repeating-linear-gradient(135deg,#d9ecf7 0,#d9ecf7 3px,#fff 3px,#fff 6px);border:1px solid #9cc7de}.schedule-grid{background:#fff;font-size:11px}.schedule-grid th,.schedule-grid td{border-color:#edf0f3;height:44px}.schedule-grid td{padding:3px}.schedule-grid thead th{background:#fff;height:80px}.schedule-grid thead th.weekend{background:#f7f9fb}.schedule-grid thead th.today strong{background:var(--teal);color:#fff;border-radius:999px;padding:2px 8px;display:inline-block}.schedule-grid thead th em{color:#b0561f;text-overflow:ellipsis;max-width:90px;margin:2px auto 0;font-size:9px;font-style:normal;display:block;overflow:hidden}.schedule-grid tbody td.weekend-cell{background:#fafbfc}.schedule-grid .name-col{width:190px;min-width:190px;padding:0 12px}.person{align-items:center;gap:9px;display:flex}.person>span:last-child{flex-direction:column;line-height:1.25;display:flex}.person strong{color:#17232d;font-size:12px}.person small{color:var(--muted);background:0 0;font-size:10.5px;font-weight:500}.person small.off-target{color:#c2410c;background:0 0}.avatar{color:#34495a;letter-spacing:.02em;background:#e6ecf2;border-radius:999px;flex:none;place-items:center;width:28px;height:28px;font-size:10.5px;font-weight:700;display:inline-grid}.schedule-grid .coverage-row th{background:#fbfcfd;height:40px;top:80px}.coverage-row button{border-radius:7px;flex-direction:column;align-items:center;gap:1px;padding:3px 6px;font-weight:600;display:inline-flex}.coverage-row button.open{color:#c2410c;background:#fff4ec}.coverage-row button.filled{color:#1e8a4c}.coverage-row small{color:var(--muted);font-weight:500}.schedule-grid td button.chip{width:100%;min-width:40px;min-height:36px;color:var(--muted);background:0 0;border:1px solid #0000;border-radius:7px;flex-direction:column;justify-content:center;align-items:center;gap:1px;padding:3px 5px;font-size:10.5px;line-height:1.2;display:flex}.schedule-grid td button.chip.shift{background:var(--chip-bg);color:var(--chip-fg);box-shadow:inset 3px 0 0 var(--chip-edge)}.schedule-grid td button.chip b{font-weight:700}.schedule-grid td button.chip span{opacity:.85;font-size:10px}.schedule-grid td button.chip.locked:after{content:"";opacity:.5;background:currentColor;border-radius:999px;width:5px;height:5px;position:absolute;top:4px;right:4px}.schedule-grid td button.chip.unavailable{color:#d63c42;background:#fff;font-weight:600}.schedule-grid td button.chip.leave{color:#1f5f80;background:repeating-linear-gradient(135deg,#e3f1f9 0,#e3f1f9 4px,#f7fbfd 4px,#f7fbfd 8px);border-color:#cfe5f2}.schedule-grid td button.chip.leave.status{color:#8a5a12;background:repeating-linear-gradient(135deg,#fdf0dc 0,#fdf0dc 4px,#fffaf2 4px,#fffaf2 8px);border-color:#f3dfbd}.schedule-grid td button.chip.call{color:#7a5c00;background:#fff6c7;border-color:#f1e08a}.schedule-grid td button.chip.admin{color:#4a5d6b;border:1px dashed #c7d1da}.schedule-grid td button.chip.soft-off{color:#9aa8b3}.schedule-grid td button.chip.unreadable{color:#b3262c;background:#fff1f1;border:1.5px solid #e0474c}.schedule-grid td button.chip.empty:hover{background:var(--blue-soft)}.schedule-grid td button.chip.empty:hover:before{content:"+";color:var(--teal);font-size:14px}.schedule-grid.view-week th:not(.name-col),.schedule-grid.view-week td:not(.total){min-width:118px}.schedule-grid.view-week td button.chip{text-align:left;align-items:flex-start;min-height:46px;padding:5px 10px}.schedule-grid.view-month td button.chip b{font-size:10px}.schedule-grid td.today-cell{background:#f5f9ff}button.publish{background:var(--teal);border-color:var(--teal);color:#fff;border-radius:999px;padding:9px 18px}button.publish:hover:not(:disabled){color:#fff;background:#175bc0}.mobile-day{padding:8px 0 4px}.week-strip{border-bottom:1px solid var(--line);grid-template-columns:26px repeat(7,1fr) 26px;align-items:center;gap:2px;padding:0 4px 10px;display:grid}.week-strip button{background:0 0;border:0;flex-direction:column;align-items:center;gap:3px;min-width:0;padding:4px 0;display:flex;position:relative}.week-strip small{color:var(--muted);font-size:11px}.week-strip strong{border-radius:999px;place-items:center;width:32px;height:32px;font-size:14px;display:grid}.week-strip button.today strong{color:var(--teal)}.week-strip button.on strong{background:var(--teal);color:#fff}.week-strip i{background:#e07a2e;border-radius:999px;width:5px;height:5px;position:absolute;bottom:-2px}.day-head{align-items:baseline;gap:10px;padding:14px 4px 8px;display:flex}.day-head strong{color:var(--teal);font-size:26px;font-weight:700}.day-head span{color:var(--muted);font-size:13px}.day-head em{border-radius:999px;margin-left:auto;padding:3px 9px;font-size:12px;font-style:normal;font-weight:600}.day-head em.open{color:#c2410c;background:#fff4ec}.day-head em.filled{color:#1e8a4c;background:#e7f6ec}.day-cards{flex-direction:column;gap:8px;margin:0;padding:0 4px;list-style:none;display:flex}.day-card{text-align:left;background:var(--chip-bg,#fff6c7);width:100%;color:var(--chip-fg,#7a5c00);box-shadow:inset 4px 0 0 var(--chip-edge,#e2c64a);border:0;border-radius:12px;justify-content:space-between;align-items:center;min-height:56px;padding:11px 12px 11px 14px;display:flex}.day-card>span:first-child{flex-direction:column;display:flex}.day-card b{font-size:15px}.day-card small{opacity:.85;font-size:12.5px}.day-card .who{align-items:center;gap:8px;font-size:13px;font-weight:600;display:inline-flex}.day-card .avatar{color:inherit;background:#ffffffb3}.away{border:1px solid #f3c9cb;border-radius:12px;margin:12px 4px 0;padding:10px 12px}.away summary{color:#d63c42;cursor:pointer;font-weight:600}.away ul{margin:8px 0 0;padding:0;list-style:none}.away li button{background:0 0;border:0;justify-content:space-between;width:100%;padding:7px 0;font-weight:500}.away li span{color:#d63c42}@media(max-width:720px){.sched-toolbar{display:none}}:root{color:#2e3a48;--line:#e4e8ee;--muted:#6b7788;--ink:#1f2a37;background:#f2f4f7}body{background:#f2f4f7}.app-shell{grid-template-columns:216px minmax(0,1fr)}.sidebar{color:var(--ink);border-right:1px solid var(--line);background:#fff;padding:18px 12px}.brand{margin:0 6px 26px}.brand strong{letter-spacing:.2px;color:var(--ink);font-size:16px}.brand small{color:var(--muted);letter-spacing:0;font-size:11px}.brand-mark{background:var(--teal);border:0;border-radius:10px;width:36px;height:36px;font-size:20px;font-weight:800}.brand-mark span{color:#fff;background:0 0;font-size:13px;top:1px;right:3px}.nav-caption,.sidebar-bottom{display:none}nav{gap:2px}nav button{color:#4b5767;border-radius:10px;gap:12px;padding:10px 12px;font-size:14px;font-weight:600}nav button svg{color:#7a8696}nav button:hover:not(:disabled){color:var(--ink);background:#f2f5f9}nav button.active{color:var(--teal);box-shadow:none;background:#e8f1fe}.topbar{border-bottom:1px solid var(--line);height:60px;padding:0 24px}.topbar>span.topbar-title{color:var(--ink);letter-spacing:0;font-size:15px;font-weight:700}.topbar-right{align-items:center;gap:12px;display:flex}.tag{color:#b45309;background:#fff7ed;border-color:#fde2c4;padding:5px 11px;font-size:12px;font-weight:600}.tag .status-dot{background:#f59e0b}.tag.published{color:#15803d;background:#ecfdf3;border-color:#c6f0d6}.tag.published .status-dot{background:#22c55e}.pill{color:#344152;background:#fff;border:1px solid #d6dce4;border-radius:999px;gap:6px;padding:7px 15px;font-size:13px;font-weight:600}.pill:hover:not(:disabled){background:#f7f9fc;border-color:#b9c3cf}.pill.blue{background:var(--teal);border-color:var(--teal);color:#fff}.pill.blue:hover:not(:disabled){color:#fff;background:#175bc0;border-color:#175bc0}details.account,details.actions-menu{position:relative}details.account summary,details.actions-menu summary{cursor:pointer;align-items:center;gap:4px;list-style:none;display:inline-flex}details.account summary::-webkit-details-marker{display:none}details.actions-menu summary::-webkit-details-marker{display:none}.avatar.me{color:#fff;background:#1f2a37;width:34px;height:34px;font-size:13px}.menu{z-index:30;border:1px solid var(--line);background:#fff;border-radius:12px;flex-direction:column;min-width:230px;padding:6px;display:flex;position:absolute;top:calc(100% + 6px);right:0;box-shadow:0 12px 30px #0f1e3224}.menu p{flex-direction:column;margin:4px 8px 8px;line-height:1.4;display:flex}.menu p small{color:var(--muted)}.menu button{border:0;border-radius:8px;justify-content:flex-start;padding:9px 10px;font-size:13px;font-weight:500}.page{padding:20px 24px}.page-heading.hidden{display:none}.page-heading h1{letter-spacing:-.3px;font-size:22px;font-weight:700}.page-heading .eyebrow{display:none}.panel{border-color:var(--line);border-radius:12px;box-shadow:0 1px 2px #0f1e320a}.cs-card{padding:0;overflow:visible}.cs-head{border-bottom:1px solid var(--line);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;padding:16px 20px;display:flex}.cs-title{align-items:center;gap:12px;display:flex}.cs-title h1{letter-spacing:-.2px;color:var(--ink);margin:0;font-size:21px;font-weight:700}.cs-icon{width:40px;height:40px;color:var(--teal);background:#e8f1fe;border-radius:11px;place-items:center;display:grid}.month-pick{color:#344152;background:#f2f4f7;border:1px solid #0000;border-radius:999px;padding:6px 12px;font-size:13px;font-weight:600}.cs-actions{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.cs-card>.note{margin:12px 20px 0}.cs-card .empty-state{text-align:center;padding:40px 20px}.sched-toolbar{border-top:0;gap:10px;padding:12px 20px}.segmented{background:#f2f4f7;border-radius:999px;padding:3px}.segmented button{border-radius:999px;padding:6px 16px;font-weight:600}.range-nav{background:#fff;border:1px solid #d6dce4;border-radius:999px;align-items:center;display:inline-flex;overflow:hidden}.range-nav span{color:#344152;text-align:center;min-width:128px;padding:0 10px;font-size:13px;font-weight:600}.range-nav button{border:0;border-radius:0;padding:6px 12px;font-size:16px;line-height:1}.summary{flex-wrap:wrap;gap:6px;margin-left:auto;display:flex}.sum{border-radius:999px;padding:5px 10px;font-size:12px;font-weight:600}.sum.ok{color:#15803d;background:#ecfdf3}.sum.warn{color:#c2410c;background:#fff7ed}.sum.bad{color:#b91c1c;background:#fef2f2}.family-legend{border-top:1px solid var(--line);margin:0;padding:10px 20px 14px}.schedule-grid thead th{vertical-align:middle;height:62px}.schedule-grid .coverage-row th{top:62px}.schedule-grid thead th .dayname{color:#4b5767;font-size:12.5px;font-weight:600;display:block}.schedule-grid thead th .dayname strong{color:var(--ink);margin:0;font-size:12.5px;display:inline}.schedule-grid thead th.today .dayname{background:var(--teal);color:#fff;border-radius:999px;padding:3px 10px;display:inline-block}.schedule-grid thead th.today .dayname strong{color:#fff;background:0 0;padding:0}.schedule-grid thead th small{color:#8a95a5;margin-top:4px;font-size:10.5px}.schedule-grid .name-col{width:210px;min-width:210px}.schedule-grid thead .name-col,.schedule-grid .coverage-row .name-col{color:#4b5767;font-size:12.5px;font-weight:600}.person small{align-items:center;gap:3px;margin-top:2px;display:inline-flex}.person small svg{color:#9aa5b4;margin-left:5px}.person small svg:first-child{margin-left:0}.avatar{width:32px;height:32px;font-size:11.5px}.tone-0{color:#1e40af;background:#dbeafe}.tone-1{color:#166534;background:#dcfce7}.tone-2{color:#9d174d;background:#fce7f3}.tone-3{color:#92400e;background:#fef3c7}.tone-4{color:#5b21b6;background:#ede9fe}.tone-5{color:#075985;background:#e0f2fe}.schedule-grid.view-week td button.chip{border-radius:8px;min-height:52px}.schedule-grid.view-week td button.chip b{font-size:12.5px}.schedule-grid.view-week td button.chip span{font-size:11.5px}@media(max-width:720px){.app-shell{grid-template-columns:1fr}.cs-head{padding:12px}.topbar-title{display:none}}.sidebar .brand{margin:4px 10px 28px}.sidebar .brand strong{letter-spacing:-.4px;color:var(--ink);font-size:19px;font-weight:800;line-height:1.1;display:block}.sidebar .brand small{color:var(--muted);margin-top:4px;font-size:11.5px}img.avatar.photo{object-fit:cover;background:#e6ecf2;border-radius:999px;flex:none;width:32px;height:32px}.account-panel{flex-direction:column;gap:10px;display:flex}.photo-row{align-items:center;gap:16px;display:flex}.invite-row{flex-wrap:wrap;align-items:flex-end;gap:8px;display:flex}.invite-row label{flex:1;min-width:220px}.profile-card{max-width:720px}.profile-card h1{margin-bottom:18px;font-size:21px;font-weight:700}.schedule-grid.readonly td button.chip{cursor:default}.schedule-grid.readonly td button.chip.empty:hover{background:0 0}.schedule-grid.readonly td button.chip.empty:hover:before{content:none}.cs-head .segmented button:disabled{opacity:.5}.schedule-grid td button.chip.draggable{cursor:grab;touch-action:none}.schedule-grid td button.chip.is-dragging{opacity:.35}.schedule-grid td button.chip.pinned:after{content:"📌";opacity:.9;background:0 0;width:auto;height:auto;font-size:9px;top:2px;right:3px}.schedule-grid td.drop-ok{box-shadow:inset 0 0 0 2px #22a05a;background:#e8f7ee!important}.schedule-grid td.drop-warn{box-shadow:inset 0 0 0 2px #f08a24;background:#fff4e5!important}.schedule-grid td.drop-no{box-shadow:inset 0 0 0 2px #e0474c;background:#fdeced!important}.chip.drag-ghost{background:var(--chip-bg,#fff);color:var(--chip-fg,#1f2a37);box-shadow:inset 3px 0 0 var(--chip-edge,#cbd5e1),0 10px 24px #0f1e3238;white-space:nowrap;cursor:grabbing;border-radius:8px;padding:8px 12px;font-size:12px;display:inline-flex}.drop-hint{z-index:50;color:#fff;background:#1f2a37;border-radius:12px;max-width:min(760px,100vw - 32px);padding:10px 16px;font-size:13px;font-weight:600;position:fixed;bottom:24px;left:50%;transform:translate(-50%);box-shadow:0 12px 30px #0f1e3240}.drop-hint.ok{background:#15803d}.drop-hint.warn{background:#b45309}.drop-hint.no{background:#b91c1c}.open-chips{flex-wrap:wrap;justify-content:center;gap:3px;margin-top:3px;display:flex}.schedule-grid .coverage-row button.chip.open-chip{background:var(--chip-bg);width:auto;min-width:0;min-height:0;color:var(--chip-fg);box-shadow:inset 2px 0 0 var(--chip-edge);border:1px dashed var(--chip-edge);border-radius:6px;flex-direction:row;padding:2px 6px;font-size:10px}.schedule-grid.view-week .coverage-row th{height:auto;padding:4px 3px}.schedule-grid thead th.flagged{background:#fdeced!important}.schedule-grid thead th.flagged .dayname,.schedule-grid thead th.flagged small{color:#b91c1c}.schedule-grid .coverage-row th.flagged{background:#fdeced}.schedule-grid .coverage-row th.flagged button{color:#b91c1c;background:#fff}.schedule-grid td button.chip.conflict{outline-offset:-2px;outline:2px solid #e0474c}.link-button{color:var(--teal);background:0 0;border:0;justify-content:flex-start;padding:6px 0;font-weight:600}.link-button:hover:not(:disabled){background:0 0;text-decoration:underline}:root{--citron:#c6f36b;--citron-hover:#b6e656;--citron-soft:#eff9d9;--deep-green:#143e35;--brand-ink:#19191c;--teal:#143e35;--blue-soft:#eff9d9;--ink:#19191c}:focus-visible{outline:3px solid #9ccb3c}.sidebar .brand{flex-direction:column;gap:6px;margin:2px 8px 26px;display:flex}.sidebar .brand img{align-self:flex-start;width:auto;height:30px}.sidebar .brand small{color:var(--muted);margin:0 0 0 2px;font-size:11px}nav button.active{background:var(--citron-soft);color:var(--deep-green)}nav button.active svg{color:var(--deep-green)}.primary,.pill.blue,button.publish{background:var(--citron);border-color:var(--citron);color:var(--deep-green);font-weight:700}button.primary:hover:not(:disabled),.pill.blue:hover:not(:disabled),button.publish:hover:not(:disabled){background:var(--citron-hover);border-color:var(--citron-hover);color:var(--deep-green)}.cs-icon{background:var(--citron-soft);color:var(--deep-green)}.cs-title h1,.page-heading h1,.profile-card h1,.login-card h1,.login-page h1{letter-spacing:-.3px;font-family:Outfit,Open Sans,sans-serif;font-weight:600}.login-logo{width:auto;height:40px;margin:0 0 22px;display:block}.avatar.me{background:var(--deep-green);color:var(--citron)}.login-page{background:#f4f5f2}.schedule-grid thead th.short{background:#fff8ec!important}.schedule-grid thead th.short .dayname,.schedule-grid thead th.short small{color:#a15c07}.schedule-grid .coverage-row th.short{background:#fff8ec}.req-cal{gap:12px;margin-top:12px;display:grid}.req-modes{flex-wrap:wrap}.req-modes button{align-items:center;gap:6px;display:inline-flex}.req-dot{background:#c7d0d8;border-radius:50%;width:9px;height:9px}.req-dot.off{background:#d92d20}.req-dot.limited{background:#dc8a00}.req-dot.want{background:#1f9254}.req-shifts{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.chip-toggle{border:1px solid var(--line);color:#33475b;background:#fff;border-radius:999px;padding:4px 10px;font-size:12px;font-weight:600}.chip-toggle.on{color:#7a4a00;background:#fff4e0;border-color:#dc8a00}.req-grid{grid-template-columns:repeat(7,minmax(0,1fr));gap:6px;max-width:720px;display:grid}.req-head{color:var(--muted);text-align:center;text-transform:uppercase;letter-spacing:.04em;font-size:11px;font-weight:600}.req-day{border:1px solid var(--line);text-align:left;cursor:pointer;background:#fff;border-radius:10px;flex-direction:column;align-items:flex-start;gap:4px;min-height:62px;padding:6px;display:flex}.req-day:disabled{cursor:default;opacity:.85}.req-day:not(:disabled):hover{border-color:#9fb3c4}.req-num{font-size:13px;font-weight:600}.req-tag{overflow-wrap:anywhere;border-radius:6px;padding:2px 6px;font-size:11px;font-weight:600;line-height:1.2}.req-day.off{background:#fef3f2;border-color:#f4b4ae}.req-day.off .req-tag{color:#fff;background:#d92d20}.req-day.limited{background:#fffaf0;border-color:#f2cf8f}.req-day.limited .req-tag{color:#7a4a00;background:#fff0cc}.req-day.want{background:#eefaf2;border-color:#a6dcb9}.req-day.want .req-tag{color:#fff;background:#1f9254}.req-sum{margin:0;font-size:12px}.req-note{gap:6px;max-width:720px;margin-top:12px;font-size:13px;font-weight:600;display:grid}.req-note textarea{min-height:70px}.deadline{color:#16713c;margin:8px 0 0;font-weight:600}.deadline.closed{color:#8a5a00}.my-requests .cs-title{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.req-admin-grid{gap:18px;margin-top:12px;display:grid}.req-deadline .actions,.my-requests .actions{flex-wrap:wrap;align-items:center;gap:8px;margin-top:8px;display:flex}.req-deadline h2{margin:0 0 4px;font-size:15px}.req-table-wrap{overflow-x:auto}.req-table{border-collapse:collapse;width:100%;font-size:13px}.req-table th{text-align:left;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);border-bottom:1px solid var(--line);padding:8px;font-size:11px}.req-table td{border-bottom:1px solid var(--line);vertical-align:middle;padding:8px}.req-table .who{white-space:nowrap;align-items:center;gap:8px;font-weight:600;display:inline-flex}.req-note-cell{color:#33475b;max-width:280px}.pill.small{padding:4px 12px;font-size:12px}.form-grid.one{grid-template-columns:1fr;max-width:720px}@media(max-width:640px){.req-grid{gap:3px}.req-day{border-radius:8px;min-height:52px;padding:4px}.req-tag{padding:1px 4px;font-size:10px}.req-modes button{padding:6px 10px}}.pp-reason{background:#fef3f2;border:1px solid #f4b4ae;border-radius:10px;gap:6px;margin:10px 0;padding:10px 12px;font-size:13px;display:grid}.pp-reason.ok{border-color:var(--line);background:#f7f9fa}.resident-row td{background:#f5f3ff}.resident-input{background:0 0;border:1px solid #0000;border-radius:5px;width:100%;min-width:0;padding:2px 3px;font-size:11px}.resident-input:focus{background:#fff;border-color:#9fb3c4}.swap-list{border:1px solid var(--line);background:#f7f9fa;border-radius:10px;margin:12px 0 4px;padding:12px}.swap-title{margin:0 0 8px;font-weight:600}.swap-options{flex-wrap:wrap;gap:6px;display:flex}.swap-list .muted{margin:8px 0 0;font-size:12px}.holiday-board-wrap{gap:10px;margin-top:8px;display:grid}.rank-legend{flex-wrap:wrap;align-items:center;gap:6px;font-size:12px;display:flex}.rank-swatch{color:#243447;border-radius:5px;place-items:center;width:24px;height:20px;font-size:11px;font-weight:700;display:inline-grid}.rank-1{background:#f6c9c3}.rank-2{background:#f9dccd}.rank-3{background:#fcecd2}.rank-4{background:#eef3d6}.rank-5{background:#dcefd9}.rank-6{background:#c9e7d0}.rank-none{background:#f3f5f7}.holiday-board-scroll{overflow-x:auto}.holiday-board{border-collapse:separate;border-spacing:3px;font-size:12px}.holiday-board th,.holiday-board td{text-align:center}.holiday-board .hb-name{text-align:left;white-space:nowrap;z-index:1;background:#fff;padding:4px 10px 4px 0;font-weight:600;position:sticky;left:0}.hb-group{color:#143e35;border-bottom:2px solid #c6f36b;padding:4px 6px;font-size:12px;font-weight:700}.hb-date{color:var(--muted);white-space:nowrap;padding:2px 4px;font-size:10px;font-weight:600}.hb-cell{border-radius:7px;min-width:64px;height:36px;padding:4px 6px;position:relative}.hb-chip{color:#fff;white-space:nowrap;background:#143e35;border-radius:6px;padding:2px 7px;font-size:11px;font-weight:700;display:inline-block}.hb-off{color:#5b6b78;font-size:11px}.hb-rank{color:#4a5a66;font-size:9px;font-weight:700;position:absolute;top:2px;right:4px}.hb-total{white-space:nowrap;padding:0 6px}.hb-foot{color:var(--muted);font-size:11px}.holiday-list{margin-top:14px}.holiday-list summary{cursor:pointer;font-weight:600}.tag.unsaved{color:#7a4a00;background:#fff4e0}.plan-status{margin:10px 0 0;font-size:13px;font-weight:600}.plan-status.saved{color:#16713c}.plan-status.unsaved{color:#8a5a00}.next-steps ul{gap:6px;margin:8px 0 0;padding-left:18px;display:grid}.next-steps li.done{color:#16713c}.next-steps li.differs{color:#8a5a00}.roster-layout>.panel{min-width:0}.roster-layout .panel-heading{justify-content:flex-start;gap:8px}.roster-layout .panel-heading h2{flex-basis:100%}.archived-list{margin-top:12px}.archived-list summary{cursor:pointer;color:var(--muted);font-size:13px;font-weight:600}.archived-list .roster-item{opacity:.75}button.danger:not(:disabled){color:#b42318;border-color:#f4b4ae}.small-note{margin:4px 0 12px;font-size:12px}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}
