:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#000;--surface:#141416;--chip:#222226;--chip-border:#37373c;--hairline:#232327;--text:#fff;--text-dim:#9a9aa2;--text-faint:#6b6b72;--orange:#ff9f0a;--blue:#6aa9ff;--blue-bg:#11233c;--blue-active:#1d4e96;background:var(--bg);color:var(--text);font-family:Inter,ui-sans-serif,system-ui,-apple-system,Segoe UI,sans-serif}*{box-sizing:border-box}body{background:var(--bg);min-width:320px;min-height:100vh;margin:0}button,input{font:inherit}.gate{min-height:100vh;padding:max(24px, env(safe-area-inset-top)) 20px max(24px, env(safe-area-inset-bottom));place-items:center;display:grid}.gate-card{background:#101013;border:1px solid #29292e;border-radius:16px;width:min(100%,380px);padding:28px}.eyebrow{color:var(--blue);letter-spacing:.12em;text-transform:uppercase;font-size:.75rem;font-weight:700}.gate-card h1{margin:6px 0 8px;font-size:1.65rem}.gate-card p{color:var(--text-dim)}.gate-card label{margin:16px 0 7px;font-size:.85rem;font-weight:650;display:block}.gate-card input{color:#fff;background:#050507;border:1px solid #3c3c42;border-radius:10px;width:100%;padding:12px}.gate-card button{color:#06101f;background:#86bdf5;border:0;border-radius:10px;width:100%;margin-top:14px;padding:12px;font-weight:750}.error{color:#ff9f9f;margin:8px 0 0;font-size:.85rem}.message{color:var(--text-dim);padding:40px 20px}.app{min-height:100vh;padding:max(14px, env(safe-area-inset-top)) 0 calc(76px + env(safe-area-inset-bottom));flex-direction:column;display:flex}.topbar{align-items:center;gap:12px;padding:6px 16px 12px;display:flex}.title{letter-spacing:-.01em;min-width:0;margin:0;font-size:1.35rem;font-weight:800;line-height:1.15}.spacer{flex:1}.icon-btn{width:40px;height:40px;color:var(--text);cursor:pointer;background:0 0;border:0;border-radius:10px;place-items:center;padding:0;display:grid}.icon-btn svg{width:24px;height:24px}.icon-btn:hover{background:#1a1a1e}.logout-btn{color:var(--text-dim);cursor:pointer;background:#121215;border:1px solid #2c2c31;border-radius:9px;padding:7px 10px;font-size:.78rem;font-weight:700}.logout-btn:hover{color:var(--text);background:#1a1a1e}.period{color:var(--text);cursor:pointer;background:#121215;border:1px solid #2c2c31;border-radius:12px;align-items:center;gap:6px;margin-left:6px;padding:8px 12px 8px 16px;font-size:.95rem;font-weight:600;display:inline-flex}.period svg{width:16px;height:16px;color:var(--text-dim)}.subbar{flex-wrap:wrap;align-items:center;gap:12px;padding:4px 16px 14px;display:flex}.overrides-pill{color:var(--orange);border:1.5px solid var(--orange);white-space:nowrap;background:#ff9f0a12;border-radius:999px;align-items:center;gap:8px;padding:9px 14px;font-size:.95rem;font-weight:700;display:inline-flex}.overrides-pill .pin-icon{width:17px;height:17px}.banner{color:var(--blue);background:var(--blue-bg);white-space:nowrap;border-radius:12px;align-items:center;gap:9px;padding:10px 16px;font-size:.95rem;font-weight:600;display:inline-flex}.info-icon{flex:none;width:18px;height:18px}.segmented{background:#131316;border:1px solid #26262b;border-radius:12px;margin-left:auto;padding:3px;display:inline-flex}.seg{color:var(--text-dim);cursor:pointer;background:0 0;border:0;border-radius:9px;align-items:center;gap:8px;padding:8px 18px;font-size:.95rem;font-weight:650;display:inline-flex}.seg.active{color:#fff;background:var(--blue-active)}.moon-icon{width:15px;height:15px}.seg .moon-icon{color:#9ec4ff}.grid-wrap{border-block:1px solid var(--hairline);flex:1;overflow:auto}.grid{border-collapse:collapse;font-size:.95rem}.grid th,.grid td{border-bottom:1px solid var(--hairline);border-right:1px solid var(--hairline);text-align:center;white-space:nowrap;padding:8px 6px}.grid thead th{z-index:2;background:var(--bg);padding:12px 14px;position:sticky;top:0}.date-head{min-width:128px}.date-md{color:var(--text);font-size:.95rem;font-weight:700;display:block}.date-wd{color:var(--text-dim);margin-top:2px;font-size:.85rem;font-weight:500;display:block}.corner-head,.row-head{z-index:1;background:var(--bg);min-width:84px;color:var(--text);text-align:left;padding:8px 16px;font-weight:700;position:sticky;left:0}.corner-head{z-index:3;color:var(--text);font-size:.95rem}.row-head{font-size:1.05rem}.person-name{font-size:.95rem;display:block}.person-count{color:var(--text-faint);margin-top:1px;font-size:.75rem;font-weight:550;display:block}.cell{min-width:116px;min-height:52px}.chip{border-radius:10px;justify-content:center;align-items:center;padding:0 12px;display:flex;position:relative}.chip.filled{color:var(--text);background:var(--chip);border:1px solid var(--chip-border);font-weight:650}.chip-name{text-overflow:ellipsis;overflow:hidden}.chip.open{color:var(--text-faint);background:#0b0b0d;border:1.5px dashed #45454b;font-weight:550}.chip.pinned{border-color:#ff9f0a8c}.chip.pinned .pin-icon{width:16px;height:16px;color:var(--orange);position:absolute;right:8px}.chip.pinned .chip-name{padding-right:18px}.blank{border-radius:10px}.night-cards,.people-list{flex-direction:column;flex:1;gap:12px;padding:2px 16px 8px;display:flex}.night-card,.person-card{background:var(--surface);border:1px solid var(--hairline);border-radius:14px;padding:12px 14px 14px}.night-card-head{border-bottom:1px solid var(--hairline);align-items:baseline;gap:8px;margin-bottom:10px;padding-bottom:10px;display:flex}.night-card-head .date-md{font-size:1.05rem}.night-card-roles{flex-direction:column;gap:8px;display:flex}.role-row{align-items:center;gap:12px;display:flex}.role-label{width:30px;color:var(--text-dim);flex:none;font-size:.9rem;font-weight:700}.role-row .cell{flex:1;justify-content:flex-start;min-width:0;min-height:40px}.role-row .chip.open{justify-content:flex-start}.person-card-head{align-items:baseline;gap:10px;margin-bottom:6px;display:flex}.person-card-head .person-name{font-size:1.05rem;font-weight:700}.person-card-head .person-count{margin:0;font-size:.85rem}.person-fte{color:var(--text-faint);margin:-4px 0 6px;font-size:.75rem;font-weight:550}.person-profile{color:var(--text-faint);margin:-2px 0 6px;font-size:.75rem;font-weight:550}.role-legend{flex-wrap:wrap;gap:8px 14px;padding:2px 2px 4px;display:flex}.legend-item{align-items:center;gap:5px;font-size:.75rem;font-weight:700;display:inline-flex}.legend-dot{background:currentColor;border-radius:50%;width:8px;height:8px}.cal-pager{justify-content:space-between;align-items:center;margin-bottom:4px;display:flex}.cal-month-label{font-size:.9rem;font-weight:700}.cal-nav{width:30px;height:30px;color:var(--text-dim);cursor:pointer;background:0 0;border:0;border-radius:8px;place-items:center;padding:0;display:grid}.cal-nav svg{width:18px;height:18px}.cal-nav:hover:not(:disabled){color:var(--text);background:#1a1a1e}.cal-nav:disabled{color:#3b3b41;cursor:default}.cal-grid{text-align:center;grid-template-columns:repeat(7,1fr);gap:2px;display:grid}.cal-dow{color:var(--text-faint);padding-bottom:2px;font-size:.65rem;font-weight:650}.cal-day{border-radius:7px;flex-direction:column;align-items:center;gap:1px;min-height:30px;padding:2px 0;display:flex;position:relative}.cal-num{color:var(--text-dim);font-size:.8rem;font-weight:600;line-height:1.15}.cal-day.on .cal-num{color:var(--text)}.cal-code{letter-spacing:.02em;font-size:.62rem;font-weight:800;line-height:1}.cal-day.washed .cal-num{color:#1c2433}.cal-star{color:var(--text-faint);font-size:.55rem;line-height:1;position:absolute;top:1px;right:3px}.cal-day.washed .cal-star{color:#1c2433c7}.wash-legend{justify-content:center;gap:14px;margin-top:8px;display:flex}.wash-legend-item{color:var(--text-dim);letter-spacing:.07em;align-items:center;gap:6px;font-size:.66rem;font-weight:750;display:inline-flex}.wash-legend-swatch{border-radius:3px;width:10px;height:10px}.holiday-legend{border-top:1px solid var(--hairline);flex-wrap:wrap;justify-content:center;gap:5px 14px;margin-top:8px;padding-top:8px;display:flex}.holiday-legend-item{color:var(--text-dim);font-size:.7rem;font-weight:650}.holiday-star{color:var(--text-faint);margin-right:4px}.flip-target{cursor:pointer}.flip-name{color:var(--text);cursor:pointer;background:0 0;border:0;padding:0;font-weight:700}.person-card-head .cal-chip{color:var(--blue);background:var(--blue-bg);cursor:pointer;border:1px solid #21406b;border-radius:999px;margin-left:auto;padding:4px 11px;font-size:.78rem;font-weight:700}.dist-table{border-collapse:collapse;width:100%;font-size:.85rem}.dist-table th,.dist-table td{border-bottom:1px solid var(--hairline);text-align:right;font-variant-numeric:tabular-nums;padding:6px 4px}.dist-table thead th{color:var(--text-faint);letter-spacing:.05em;text-transform:uppercase;font-size:.68rem;font-weight:700}.dist-table th[scope=row]{color:var(--text-dim);text-align:left;letter-spacing:.03em;font-size:.78rem;font-weight:700}.dist-table thead th:first-child{text-align:left}.dist-table tbody tr:last-child th,.dist-table tbody tr:last-child td{border-bottom:0}.dist-table .dim{color:var(--text-faint)}.dist-foot{color:var(--text-faint);margin:6px 0 0;font-size:.72rem}.pref-toggle{color:var(--text-dim);letter-spacing:.09em;cursor:pointer;background:0 0;border:0;align-items:center;gap:7px;margin-left:auto;padding:4px 2px;font-size:.72rem;font-weight:800;display:inline-flex}.pref-toggle[aria-pressed=true]{color:var(--blue)}.pref-switch{background:#3b3b41;border-radius:999px;flex:none;width:26px;height:16px;transition:background .15s;position:relative}.pref-switch:after{content:"";background:#9a9aa2;border-radius:50%;width:12px;height:12px;transition:transform .15s,background .15s;position:absolute;top:2px;left:2px}.pref-toggle[aria-pressed=true] .pref-switch{background:var(--blue-active)}.pref-toggle[aria-pressed=true] .pref-switch:after{background:#fff;transform:translate(10px)}.build-note{color:var(--text-faint);text-align:center;padding:16px;font-size:.9rem}.app-tabs{z-index:20;padding:8px 10px max(8px, env(safe-area-inset-bottom));border-top:1px solid var(--hairline);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);background:#0d0d0ff5;grid-template-columns:repeat(4,1fr);gap:4px;display:grid;position:fixed;inset:auto 0 0}.app-tab{min-height:44px;color:var(--text-dim);letter-spacing:.09em;cursor:pointer;background:0 0;border:0;border-radius:9px;padding:8px 6px;font-size:.78rem;font-weight:800}.app-tab.active{color:#fff;background:var(--blue-active)}.tab-panel{flex:1;padding:8px 16px 20px}.panel-intro{margin:2px 0 16px}.panel-intro h2,.empty-panel h2{margin:5px 0 4px;font-size:1.4rem}.panel-intro p,.empty-panel p{color:var(--text-dim);margin:0}.pref-toolbar{z-index:5;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#000000f0;align-items:flex-start;gap:16px;padding:6px 0 10px;display:flex;position:sticky;top:0}.pref-toolbar .panel-intro{flex:1}.pref-toolbar .segmented{flex:none}.pref-panel{width:min(100%,760px);margin:0 auto}.pref-toolbar .panel-intro h2{letter-spacing:.025em;margin-bottom:16px;font-size:clamp(1.45rem,5vw,2rem);font-weight:500}.lock-period{color:#d9d9de;cursor:default;background:#242428;border:1px solid #303035;border-radius:10px;align-items:center;gap:10px;padding:10px 13px;font-size:.95rem;display:inline-flex}.preference-card-list{flex-direction:column;gap:12px;display:flex}.pref-card{border:1px solid var(--hairline);background:#101013;border-radius:14px;padding:14px}.pref-card-head{justify-content:space-between;align-items:center;margin-bottom:8px;display:flex}.pref-person-heading,.pref-card-status{align-items:center;gap:9px;display:flex}.pref-person-heading{min-width:0}.pref-person-copy{flex-direction:column;gap:3px;min-width:0;display:flex}.pref-person-heading .person-name{font-size:1rem;font-weight:750}.person-avatar{color:#fff;background:#303035;border:1px solid #4b4b52;border-radius:50%;flex:0 0 44px;place-items:center;width:44px;height:44px;font-size:.82rem;font-weight:800;display:grid;overflow:hidden}.person-avatar img{object-fit:cover;width:100%;height:100%}.pref-back{width:30px;height:30px;color:var(--text);cursor:pointer;background:#1b1b1f;border:1px solid #333338;border-radius:8px;place-items:center;padding:0;font-size:1.5rem;line-height:1;display:grid}.read-only{color:var(--text-faint);letter-spacing:.08em;font-size:.65rem;font-weight:800}.completion{align-items:center;gap:7px;min-width:102px;display:inline-flex}.completion-track{background:#303036;border-radius:999px;width:58px;height:6px;overflow:hidden}.completion-fill{border-radius:inherit;height:100%;display:block}.completion-value{font-variant-numeric:tabular-nums;min-width:37px;font-size:.72rem;font-weight:800}.completion.complete .completion-fill{background:#57d38c}.completion.complete .completion-value{color:#78e5a6}.completion.incomplete .completion-fill{background:#f2aaa5}.completion.incomplete .completion-value{color:#f2aaa5}.roster-list{border:1px solid var(--hairline);background:#101013;border-radius:14px;overflow:hidden}.roster-row{border-bottom:1px solid var(--hairline);align-items:stretch;min-height:58px;display:flex}.roster-row:last-child{border-bottom:0}.roster-person{min-width:0;color:var(--text);text-align:left;cursor:pointer;background:0 0;border:0;flex:1;justify-content:space-between;align-items:center;gap:16px;padding:12px 14px;display:flex}.roster-person:hover{background:#17171b}.roster-person .person-name{text-overflow:ellipsis;white-space:nowrap;font-weight:700;overflow:hidden}.roster-details{min-width:0;color:var(--text-dim);flex-direction:column;flex:1;gap:7px;font-size:.84rem;line-height:1.25;display:flex}.roster-details .person-name{color:#fff;font-size:1.15rem}.coverage-count{color:#b7b7bd;margin-top:-4px;font-weight:650}.profile-meta{color:#c5c5ca;flex-wrap:wrap;align-items:center;gap:7px;display:flex}.profile-meta i{color:#5f5f65;font-style:normal}.site-badge{color:#78b8ff;background:#14365e;border-radius:5px;padding:3px 7px;font-size:.7rem}.site-none{color:#c7c7cc;background:#3a3a3f}.fte-expand{color:inherit;cursor:pointer;background:0 0;border:0;padding:0}.inline-fte{color:#fff;width:min(100%,330px);padding-top:3px;display:block}.inline-fte small{color:var(--text-dim);margin-bottom:5px;display:block}.lock-toggle{color:var(--text-dim);border:0;border-left:1px solid var(--hairline);cursor:pointer;background:0 0;align-items:center;gap:7px;padding:0 14px;font-size:.72rem;font-weight:750;display:inline-flex}.lock-switch{background:#3b3b41;border-radius:999px;width:28px;height:17px;position:relative}.lock-switch:after{content:"";background:#aaaab1;border-radius:50%;width:13px;height:13px;transition:transform .15s;position:absolute;top:2px;left:2px}.lock-toggle[aria-pressed=true]{color:var(--blue)}.lock-toggle[aria-pressed=true] .lock-switch{background:var(--blue-active)}.lock-toggle[aria-pressed=true] .lock-switch:after{background:#fff;transform:translate(11px)}.locked-label{color:var(--text-faint);letter-spacing:.08em;margin-left:auto;font-size:.65rem;font-weight:800}.person-card-head .lock-toggle{border-left:0;margin-left:auto;padding:0}.pref-card-status .lock-toggle{border-left:0;padding:0}.pref-card>.person-fte{margin-top:0}.edit-profile{width:100%;color:var(--text-faint);border:1px solid var(--hairline);background:#141417;border-radius:10px;margin-top:10px;padding:10px}.edit-profile:not(:disabled){color:var(--blue);cursor:pointer;border-color:#21406b}.stepper{border:1px solid #414147;border-radius:9px;grid-template-columns:1fr 1.6fr 1fr;min-height:44px;display:grid;overflow:hidden}.stepper button{color:#fff;cursor:pointer;background:0 0;border:0;font-size:1.5rem}.stepper button:first-child{border-right:1px solid #303035}.stepper button:last-child{border-left:1px solid #303035}.stepper button:disabled{color:#505057}.stepper output{font-variant-numeric:tabular-nums;place-items:center;display:grid}.sheet-overlay{z-index:50;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);background:#000000b8;place-items:center;padding:16px;display:grid;position:fixed;inset:0}.profile-sheet{color:#f5f5f7;background:linear-gradient(145deg,#1b1b1e,#101012);border:1px solid #323237;border-radius:14px;width:min(100%,430px);max-height:calc(100vh - 28px);padding:18px 20px 14px;overflow-y:auto;box-shadow:0 22px 70px #000000a6}.profile-sheet h2{margin:0;font-size:1.35rem;font-weight:500}.profile-sheet-head{align-items:center;gap:14px;margin-bottom:18px;display:flex}.profile-sheet-head p{color:var(--text-dim);margin:4px 0 0;font-size:.82rem}.profile-avatar{color:#fff;cursor:pointer;background:#303035;border:1px solid #4b4b52;border-radius:50%;flex:none;place-items:center;width:64px;height:64px;padding:0;font-size:1.15rem;font-weight:750;display:grid;position:relative;overflow:hidden}.profile-avatar img{object-fit:cover;width:100%;height:100%}.profile-avatar i{background:#0867f9;border-radius:50%;place-items:center;width:23px;height:23px;font-size:.8rem;font-style:normal;display:grid;position:absolute;bottom:0;right:0}.profile-avatar i svg{width:13px;height:13px}.avatar-picker{display:none}.profile-field{grid-template-columns:62px 1fr;align-items:start;gap:10px;margin-bottom:12px;display:grid}.profile-field>span{padding-top:11px}.profile-field.name-field{grid-template-columns:80px 1fr}.profile-field .field-glyph{text-align:center;font-size:1.05rem}.profile-field small{color:var(--text-dim);font-size:.72rem;display:block}.profile-field input{color:#fff;background:0 0;border:1px solid #414147;border-radius:9px;width:100%;padding:10px 12px}.fte-pace{color:#2991ff;margin:9px 0 4px}.profile-section{border:0;margin:22px 0 0;padding:0}.profile-section legend{margin-bottom:8px;font-size:.84rem}.profile-section legend span,.profile-section>small{color:var(--text-dim)}.profile-section>small{margin:4px 0 10px;font-size:.75rem;display:block}.institution-segments{border:1px solid #414147;border-radius:9px;grid-template-columns:repeat(3,1fr);display:grid;overflow:hidden}.institution-segments button{color:#eee;background:0 0;border:0;border-right:1px solid #303035;padding:11px 5px}.institution-segments button:last-child{border:0}.institution-segments button.active{color:#2991ff;outline-offset:-1px;border-radius:8px;outline:1px solid #1682ff}.dual-steppers{grid-template-columns:1fr 1fr;gap:18px;display:grid}.dual-steppers label,.single-stepper label{grid-template-columns:auto 1fr;align-items:center;gap:10px;display:grid}.single-stepper{width:54%}.dual-steppers .stepper,.single-stepper .stepper{min-height:40px}.stretch-honesty{color:#b8b8be;gap:8px;margin:20px 0 12px;font-size:.74rem;line-height:1.35;display:flex}.sheet-actions{grid-template-columns:1fr 1fr;gap:34px;display:grid}.sheet-actions button{color:#fff;cursor:pointer;background:0 0;border:1px solid #414147;border-radius:9px;padding:11px}.sheet-actions .save-profile{background:#0867f9;border-color:#0867f9}.sheet-actions .save-profile:disabled{color:#8b8b92;cursor:not-allowed;background:#29292e;border-color:#34343a}.fte-expand small{color:var(--text-faint);margin-left:4px;font-size:.72rem}.edit-stubs{grid-template-columns:1fr 1fr;gap:8px;margin-bottom:8px;display:grid}.gap-list{background:var(--surface);border:1px solid var(--hairline);border-radius:14px;overflow:hidden}.gap-row{border-bottom:1px solid var(--hairline);color:var(--text-dim);justify-content:space-between;padding:12px 14px;display:flex}.gap-row:last-child{border-bottom:0}.gap-row strong{color:var(--text)}.empty-copy{color:var(--text-dim);margin:0;padding:18px}.mnl-cta{width:100%;color:var(--text-faint);background:#17171a;border:1px solid #303035;border-radius:11px;margin-top:14px;padding:13px;font-weight:800}.empty-panel{text-align:center;place-content:center;display:grid}@media (width>=700px){.topbar,.subbar{padding-inline:28px}}@media (width<=480px){.topbar{align-items:flex-start;gap:7px;padding-inline:10px}.title{flex:1;font-size:.92rem;line-height:1.2}.topbar .period{display:none}.topbar .icon-btn{width:32px;height:32px}.subbar{gap:8px;padding-bottom:10px}.overrides-pill{gap:6px;padding:5px 10px;font-size:.8rem}.overrides-pill .pin-icon{width:14px;height:14px}.banner{border-radius:999px;gap:6px;padding:5px 10px;font-size:.8rem}.info-icon{width:15px;height:15px}.seg{padding:7px 14px;font-size:.9rem}.night-cards,.people-list{gap:6px;padding:0 10px 4px}.night-card,.person-card{border-radius:10px;padding:6px 8px}.night-card-head{margin-bottom:4px;padding-bottom:3px}.night-card-head .date-md{font-size:.9rem}.night-card-head .date-wd{font-size:.75rem}.night-card-roles{gap:2px}.role-row{gap:6px}.role-label{width:24px;font-size:.75rem}.role-row .cell{min-height:26px}.role-row .chip{border-radius:7px;padding:0 8px;font-size:.8rem}.role-row .chip.pinned .pin-icon{width:12px;height:12px;right:6px}.build-note{padding:8px 14px 2px;font-size:.75rem}.pref-toolbar{align-items:center}.pref-toolbar .panel-intro p{display:none}.pref-toolbar .segmented{margin-left:0}.pref-card-head{align-items:flex-start}.pref-card-status{flex-direction:column-reverse;align-items:flex-end;gap:4px}.roster-person,.lock-toggle{padding-inline:10px}.edit-stubs{grid-template-columns:1fr;gap:0}}
