:root{--bg:#edf1f4;--surface:#fff;--surface-2:#f5f7f9;--line:#d6dde4;--line-strong:#b4c0cb;--ink:#14202b;--muted:#586777;--accent:#1c4f8a;--accent-ink:#fff;--accent-soft:#e2ebf6;--patrol:#c62828;--warn:#c2261c;--warn-soft:#cf3a2f1f;--amber-soft:#f1ae2b33;--today:#1c4f8a;--weekend:#e8edf2;--ok:#2e9a58;--ok-soft:#2e9a581f;--snow:#2f6dc0;--snow-soft:#3a7bd51f;--st-confirmed:#2e9a58;--st-confirmed-ink:#fff;--st-available:#f1ae2b;--st-available-ink:#3a2900;--st-trainee:#3a7bd5;--st-trainee-ink:#fff;--st-unavailable:#858e99;--st-unavailable-ink:#fff;--st-injured:#cf3a2f;--st-injured-ink:#fff;--off:#e4e8ec;--hatch:#d9dfe5;--hatch-bg:#f3f5f7;--shadow:0 10px 30px #14202b2e, 0 2px 6px #14202b1f;--display:"Barlow Condensed", "Arial Narrow", system-ui, sans-serif;--body:"Barlow", system-ui, -apple-system, "Segoe UI", sans-serif;--emoji:"Apple Color Emoji", "Segoe UI Emoji", "Noto Color Emoji", sans-serif}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#0e151c;--surface:#151f29;--surface-2:#1a2632;--line:#283746;--line-strong:#3b4e61;--ink:#e5ecf2;--muted:#93a3b4;--accent:#74aaea;--accent-ink:#0b1520;--accent-soft:#1b3250;--patrol:#e0493f;--warn:#ff8a80;--warn-soft:#ff8a8024;--amber-soft:#f1ae2b2e;--today:#74aaea;--weekend:#1d2a37;--ok:#6fcf97;--ok-soft:#6fcf9724;--snow:#8db8f2;--snow-soft:#8db8f224;--st-unavailable:#46505b;--st-unavailable-ink:#e5ecf2;--off:#202b36;--hatch:#2a3847;--hatch-bg:#18232e;--shadow:0 10px 30px #00000080, 0 2px 6px #0006}}:root[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#0e151c;--surface:#151f29;--surface-2:#1a2632;--line:#283746;--line-strong:#3b4e61;--ink:#e5ecf2;--muted:#93a3b4;--accent:#74aaea;--accent-ink:#0b1520;--accent-soft:#1b3250;--patrol:#e0493f;--warn:#ff8a80;--warn-soft:#ff8a8024;--amber-soft:#f1ae2b2e;--today:#74aaea;--weekend:#1d2a37;--ok:#6fcf97;--ok-soft:#6fcf9724;--snow:#8db8f2;--snow-soft:#8db8f224;--st-unavailable:#46505b;--st-unavailable-ink:#e5ecf2;--off:#202b36;--hatch:#2a3847;--hatch-bg:#18232e;--shadow:0 10px 30px #00000080, 0 2px 6px #0006}*{box-sizing:border-box}[hidden]{display:none!important}html,body{background:var(--bg)}body{color:var(--ink);font:15px/1.45 var(--body);margin:0}button,input,select{font:inherit;color:inherit}h1,h2{font-family:var(--display);letter-spacing:.01em;text-wrap:balance;margin:0;font-weight:700}.muted{color:var(--muted)}.small{font-size:13px}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.top{background:var(--surface);border-bottom:1px solid var(--line);flex-wrap:wrap;align-items:center;gap:12px 24px;padding:12px 16px;display:flex}.brand{align-items:center;gap:10px;display:flex}.cross{background:var(--patrol);border-radius:6px;flex:none;width:30px;height:30px;position:relative}.cross:before,.cross:after{content:"";background:#fff;border-radius:1px;position:absolute}.cross:before{width:6px;height:18px;top:6px;left:12px}.cross:after{width:18px;height:6px;top:12px;left:6px}.wordmark{font-family:var(--display);text-transform:uppercase;letter-spacing:.04em;font-size:21px;font-weight:700;line-height:1}.season{color:var(--muted);letter-spacing:.02em;font-size:12px}.tabs{flex-wrap:wrap;gap:4px;display:flex}.tab{font-family:var(--display);letter-spacing:.03em;text-transform:uppercase;color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:6px;padding:8px 14px;font-size:17px;font-weight:600;text-decoration:none;display:inline-block}.tab[aria-current=page]{background:var(--accent-soft);color:var(--accent)}.tab:hover{color:var(--ink)}.who{align-items:center;gap:8px;margin-left:auto;font-size:13px;display:flex}.avatar{background:var(--accent);width:28px;height:28px;color:var(--accent-ink);border-radius:50%;flex:none;place-items:center;font-size:12px;font-weight:700;display:grid}.tab-badge{background:var(--patrol);color:#fff;text-align:center;letter-spacing:0;vertical-align:2px;border-radius:99px;min-width:18px;margin-left:6px;padding:1px 5px;font-size:11px;font-weight:700;line-height:16px;display:inline-block}.tab-badge.new{background:var(--accent);color:var(--accent-ink)}.me{color:inherit;border-radius:99px;align-items:center;gap:8px;padding:2px 8px 2px 2px;text-decoration:none;display:flex}.me:hover,.me[aria-current=page]{background:var(--accent-soft);color:var(--accent)}.role-pill{text-transform:uppercase;letter-spacing:.06em;border:1px solid var(--line-strong);color:var(--muted);border-radius:99px;padding:2px 7px;font-size:11px}.help-link{color:inherit;text-decoration:none}.help-link[aria-current=page]{background:var(--accent-soft);border-color:var(--accent);color:var(--accent)}.page{padding-block:16px 40px;padding-inline:16px}.btn{border:1px solid var(--line-strong);background:var(--surface);cursor:pointer;white-space:nowrap;border-radius:7px;justify-content:center;align-items:center;gap:6px;padding:7px 12px;font-size:14px;font-weight:500;display:inline-flex}.btn:hover{border-color:var(--accent)}.btn:disabled{opacity:.45;cursor:not-allowed}.btn.primary{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}.btn.ghost{background:0 0}.btn.danger{color:var(--warn);border-color:var(--warn)}.btn.small{padding:4px 9px;font-size:13px}.linkbtn{color:var(--accent);cursor:pointer;background:0 0;border:0;padding:0;font-size:13px;text-decoration:underline}.notice{background:var(--surface);border:1px solid var(--line);border-radius:7px;flex-wrap:wrap;align-items:center;gap:10px;margin:0 0 10px;padding:8px 12px;font-size:14px;display:flex}.notice b{font-family:var(--display);text-transform:uppercase;letter-spacing:.05em;color:var(--muted);font-size:13px}.r-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:12px;margin-bottom:14px;display:flex}.r-head h1{font-size:30px;line-height:1}.r-head p{margin:4px 0 0;font-size:14px}.table-wrap{border:1px solid var(--line);background:var(--surface);border-radius:9px;overflow-x:auto}table.rtable{border-collapse:collapse;font-variant-numeric:tabular-nums;width:100%;font-size:14px}.rtable th{font-family:var(--display);letter-spacing:.06em;text-transform:uppercase;color:var(--muted);text-align:left;background:var(--surface-2);border-bottom:1px solid var(--line);white-space:nowrap;padding:10px;font-size:13px}.rtable td{border-bottom:1px solid var(--line);white-space:nowrap;padding:9px 10px}.rtable tbody tr:last-child td{border-bottom:0}.rtable .nm{font-size:14px}.rtable .rad{font-family:var(--display);width:1%;font-size:16px;font-weight:700}.center-page{place-items:center;min-height:100dvh;padding:24px 16px;display:grid}.card{background:var(--surface);border:1px solid var(--line);border-radius:12px;width:100%;max-width:420px;padding:28px 24px;box-shadow:0 2px 6px #14202b0f}.card>.brand{margin-bottom:22px}.card p{margin:0 0 14px}.card-title{margin-bottom:6px;font-size:28px;line-height:1.05}.card-lede{font-size:15px}.card .email{overflow-wrap:anywhere}.card .card-foot{border-top:1px solid var(--line);text-align:center;margin:22px 0 0;padding-top:14px}.card-foot a{color:inherit}.actions{flex-wrap:wrap;gap:8px;display:flex}.btn.google{gap:10px;width:100%;padding:10px 12px;font-size:15px}.divider{color:var(--muted);text-transform:uppercase;letter-spacing:.06em;align-items:center;gap:12px;margin:18px 0;font-size:13px;display:flex}.divider:before,.divider:after{content:"";border-top:1px solid var(--line);flex:1}.email-form{gap:8px;display:grid}.email-form label{font-size:14px;font-weight:600}.email-form input{border:1px solid var(--line-strong);background:var(--surface);width:100%;color:var(--ink);border-radius:7px;padding:10px 11px;font-size:16px}.email-form .btn{width:100%;padding:10px 12px;font-size:15px}.msg{border:1px solid;border-radius:7px;margin:16px 0 0;padding:10px 12px;font-size:14px}.msg.ok{background:var(--ok-soft);border-color:var(--ok);color:var(--ink)}.msg.error{background:var(--warn-soft);border-color:var(--warn);color:var(--ink)}.msg.msg-top{margin:0 0 16px}.msg-sub{color:var(--muted);margin-top:4px;font-size:13px;display:block}.loading{color:var(--muted);align-items:center;gap:10px;padding:12px 0;font-size:14px;display:flex}.spinner{border:2px solid var(--line-strong);border-top-color:var(--accent);border-radius:50%;flex:none;width:18px;height:18px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.iconbtn{width:34px;height:34px;padding:0;font-size:18px}.toolbar{flex-wrap:wrap;align-items:center;gap:10px 16px;margin-bottom:10px;display:flex}.period{align-items:center;gap:6px;display:flex}.period select{font-family:var(--display);border:1px solid var(--line-strong);background:var(--surface);border-radius:7px;min-width:0;padding:3px 8px;font-size:20px;font-weight:700}.chk{cursor:pointer;align-items:center;gap:7px;font-size:14px;display:flex}.chk input{width:16px;height:16px;accent-color:var(--accent);flex:none}.spacer{flex:1}.fsel{align-items:center;gap:6px;font-size:14px;display:flex}.fsel select{border:1px solid var(--line-strong);background:var(--surface);border-radius:7px;padding:6px 8px}.fsel input[type=date]{border:1px solid var(--line-strong);background:var(--surface);color:var(--ink);font:inherit;border-radius:7px;padding:5px 8px}.sortnote{background:var(--accent-soft);color:var(--accent);border-radius:99px;align-items:center;gap:8px;padding:4px 6px 4px 10px;font-size:13px;font-weight:600;display:inline-flex}.sortnote button{color:inherit;cursor:pointer;background:0 0;border:0;padding:0 4px;font-size:14px}.legend{color:var(--muted);flex-wrap:wrap;gap:6px 14px;margin-bottom:10px;font-size:13px;display:flex}.lg{align-items:center;gap:6px;display:inline-flex}.sw{background:var(--cell-bg);width:20px;height:20px;color:var(--cell-ink);border-radius:4px;flex:none;place-items:center;font-size:12px;font-weight:700;display:inline-grid}.sw.hatch{background:repeating-linear-gradient(135deg, var(--hatch) 0 3px, var(--hatch-bg) 3px 7px);border:1px solid var(--line)}.sw.blank{background:var(--surface);border:1px solid var(--line-strong)}.sw .tsy,.b .tsy{letter-spacing:.02em;font-size:10.5px}.lg-star{font-size:18px}.s-confirmed{--cell-bg:var(--st-confirmed);--cell-ink:var(--st-confirmed-ink)}.s-available{--cell-bg:var(--st-available);--cell-ink:var(--st-available-ink)}.s-trainee,.s-ts{--cell-bg:var(--st-trainee);--cell-ink:var(--st-trainee-ink)}.s-unavailable{--cell-bg:var(--st-unavailable);--cell-ink:var(--st-unavailable-ink)}.s-injured{--cell-bg:var(--st-injured);--cell-ink:var(--st-injured-ink)}.s-noinfo,.s-none{--cell-bg:var(--surface);--cell-ink:var(--muted)}.sw.s-noinfo{box-shadow:inset 0 0 0 1px var(--line-strong)}.sk{--sk:#46586e;font:700 12px/1 var(--display);letter-spacing:.05em;background:var(--sk);color:#fff;white-space:nowrap;border-radius:4px;padding:3px 6px 2px;display:inline-block}.sk.aux{color:var(--muted);box-shadow:inset 0 0 0 1.5px var(--line-strong);background:0 0}.grid-wrap{border:1px solid var(--line);background:var(--surface);border-radius:9px;min-height:380px;max-height:calc(100dvh - 250px);overflow:auto}table.grid{border-collapse:separate;border-spacing:0;font-variant-numeric:tabular-nums}.grid th,.grid td{border-right:1px solid var(--line);border-bottom:1px solid var(--line);padding:0}.grid thead th{z-index:2;background:var(--surface-2);font-weight:500;position:sticky;top:0}.grid .c-radio{z-index:1;background:var(--surface);text-align:center;min-width:56px;max-width:56px;font-family:var(--display);font-size:16px;font-weight:700;position:sticky;left:0}.grid .c-name{z-index:1;background:var(--surface);text-align:left;min-width:180px;max-width:180px;position:sticky;left:56px}.grid thead .c-radio,.grid thead .c-name{z-index:4}.grid .c-pos{text-align:left;min-width:128px;max-width:146px;color:var(--muted);font-size:13px}.grid tbody .c-pos span{text-overflow:ellipsis;white-space:nowrap;padding:0 8px;display:block;overflow:hidden}.hcell{align-items:center;gap:2px;height:52px;padding:0 4px 0 6px;display:flex}.c-radio .hcell{justify-content:center;padding:0}.hbtn{cursor:pointer;font-family:var(--display);letter-spacing:.04em;text-transform:uppercase;background:0 0;border:0;border-radius:5px;align-items:center;gap:3px;padding:4px;font-size:15px;font-weight:700;display:inline-flex}.hbtn:hover{background:var(--accent-soft)}.hbtn .arr{color:var(--accent);min-width:9px;font-size:11px}.hbtn.filt{color:var(--muted);margin-left:auto;font-size:13px}.hbtn.filt.on{color:var(--accent-ink);background:var(--accent)}.c-day{width:42px;min-width:42px}.dh{width:100%;height:52px;font-family:var(--display);color:inherit;cursor:pointer;background:0 0;border:0;flex-direction:column;justify-content:center;align-items:center;padding:0;display:flex}.dh:hover{background:var(--accent-soft)}.dw{text-transform:uppercase;letter-spacing:.05em;color:var(--muted);text-overflow:ellipsis;white-space:nowrap;max-width:40px;font-size:11.5px;font-weight:600;overflow:hidden}.dn{font-size:18px;font-weight:700;line-height:1.05}.c-day.we .dh{background:var(--weekend)}.c-day.labeled .dw{color:var(--accent);text-transform:none;letter-spacing:0;font-weight:700}.c-day.today .dh{box-shadow:inset 0 -4px 0 var(--today)}.c-day.today .dn{color:var(--today)}.c-day.closed .dh{background:repeating-linear-gradient(135deg, var(--hatch) 0 3px, var(--hatch-bg) 3px 7px)}.c-day.sorted .dh{box-shadow:inset 0 4px 0 var(--accent);background:var(--accent-soft)}.c-day.sorted .dw:after{content:" ▼";color:var(--accent)}.c-count{text-align:center;min-width:54px;font-weight:700;font-family:var(--display);font-size:17px}thead .c-count{letter-spacing:.05em;text-transform:uppercase;color:var(--muted);font-size:13px}.nm{text-align:left;cursor:pointer;color:var(--ink);text-overflow:ellipsis;white-space:nowrap;background:0 0;border:0;max-width:100%;padding:0;font-size:14.5px;font-weight:600;display:block;overflow:hidden}.nm:hover{color:var(--accent);text-decoration:underline}.namecell{flex-direction:column;justify-content:center;gap:3px;height:46px;padding:0 10px;display:flex}.sub{white-space:nowrap;align-items:center;gap:4px;display:flex;overflow:hidden}.tag{color:var(--muted);font-size:11px;font-style:italic;line-height:1.1}tr.inactive .nm{color:var(--muted);font-weight:500}.grid tr.mine .c-radio,.grid tr.mine .c-name,.grid tr.mine .c-pos,.grid tr.mine .c-count{background:var(--accent-soft)}.grid tr.mine .c-radio{box-shadow:inset 4px 0 0 var(--accent)}.grid tr.mine>*{border-bottom:2px solid var(--accent)}.you-tag{background:var(--st-available);color:var(--st-available-ink);letter-spacing:.04em;text-transform:uppercase;vertical-align:1px;border-radius:99px;margin-left:6px;padding:0 6px;font-size:11px;font-weight:700}tr.inactive .c-name,tr.inactive .c-radio{background:var(--surface-2)}.noradio{color:var(--line-strong);font-weight:500}td.cell{width:42px;min-width:42px;height:46px}.b{background:var(--cell-bg);width:100%;height:46px;color:var(--cell-ink);border:0;justify-content:center;align-items:center;margin:0;padding:0;font-size:14px;font-weight:700;display:flex;position:relative}button.b{cursor:pointer}button.b:hover{filter:brightness(1.08);box-shadow:inset 0 0 0 2px var(--ink)}button.b:focus-visible{outline:3px solid var(--accent);outline-offset:-3px}td.s-closed{background:repeating-linear-gradient(135deg, var(--hatch) 0 3px, var(--hatch-bg) 3px 7px)}td.s-off{background:var(--off)}.star{color:#ffd23f;-webkit-text-stroke:1.2px #5c4200;text-shadow:0 1px 2px #00000059;font-size:24px;line-height:1}.cake{font-size:20px;line-height:1;font-family:var(--emoji)}.bday{font-size:13px;line-height:1;font-family:var(--emoji);position:absolute;top:0;right:1px}tfoot td,tfoot th{background:var(--surface-2)}tfoot tr:first-child>*{border-top:2px solid var(--line-strong)}.tl{z-index:1;text-align:left;white-space:nowrap;background:var(--surface-2);height:28px;font-size:13px;font-weight:500;position:sticky;left:0;padding:0 10px!important}.tl .sw{vertical-align:-1px;border-radius:3px;width:12px;height:12px;margin-right:7px}.tl .sk{margin-right:6px}.tc{text-align:center;height:28px;font-size:13px}.tc.zero{color:var(--line-strong)}.tc.warn{color:var(--warn);font-weight:700}.tc.short{color:var(--warn);background:var(--warn-soft);font-size:15px;font-weight:800}.tc.tot{font-size:12px;font-weight:700}.tc.tot.short{font-size:12px}.tc.tot.met{color:var(--st-confirmed)}tr.t-onHill .tl,tr.t-onHill .tc{font-size:14px;font-weight:700}tr.t-onHill .tc:not(.short):not(.zero):not(.tot){color:var(--st-confirmed)}tr.t-onHill .tc.short{font-size:16px}tr.divide>*{border-top:2px solid var(--line-strong)}.tc .mini-star,.mini-star{color:#e0a800;font-size:15px}.mini-star.lead{margin-right:6px}.empty-row td{text-align:left;color:var(--muted);padding:18px!important}.hint{color:var(--muted);max-width:110ch;margin:10px 0 0;font-size:13px}.scrim{z-index:40;background:#0a101659;position:fixed;inset:0}.pop{z-index:41;background:var(--surface);border:1px solid var(--line);width:310px;max-width:calc(100vw - 16px);max-height:calc(100dvh - 16px);box-shadow:var(--shadow);border-radius:10px;flex-direction:column;gap:12px;padding:14px;display:flex;position:fixed;overflow:auto}.pop.is-sheet{width:auto;max-width:none;padding-bottom:calc(18px + env(safe-area-inset-bottom,0px));border-radius:14px 14px 0 0;bottom:0;right:0;top:auto!important;left:0!important}.pop-h{flex-direction:column;gap:1px;display:flex}.pop-h strong{font-family:var(--display);font-size:20px;line-height:1.1}.pop-h span{color:var(--muted);font-size:13px}.st-grid{grid-template-columns:1fr 1fr;gap:6px;display:grid}.st-opt{border:1px solid var(--line);background:var(--surface);cursor:pointer;text-align:left;border-radius:7px;align-items:center;gap:8px;padding:8px;font-size:14px;font-weight:500;display:flex}.st-opt:hover{border-color:var(--ink)}.st-opt.on{border-color:var(--ink);box-shadow:inset 0 0 0 1px var(--ink);font-weight:700}.st-opt.s-noinfo .sw{box-shadow:inset 0 0 0 1px var(--line-strong)}.pop [aria-disabled=true]{cursor:progress}.sup-toggle{border:1.5px dashed var(--line-strong);cursor:pointer;background:0 0;border-radius:8px;justify-content:center;align-items:center;gap:10px;width:100%;padding:10px;font-size:15px;font-weight:600;display:flex}.sup-toggle .star{color:var(--line-strong);-webkit-text-stroke:0;text-shadow:none;font-size:26px}.sup-toggle.on{background:#ffd23f29;border-style:solid;border-color:#c99700}.sup-toggle.on .star{color:#ffd23f;-webkit-text-stroke:1.2px #5c4200}.sup-toggle:disabled{opacity:.5;cursor:not-allowed}.pop-note{color:var(--muted);margin:0;font-size:13px}.pop-note.ink{color:var(--ink)}.sup-note{margin-top:6px}.rule-note{background:var(--surface-2);color:var(--ink);border-radius:7px;padding:8px 10px}.pop-actions{flex-wrap:wrap;justify-content:flex-end;gap:8px;display:flex}.thru{flex-direction:column;gap:6px;display:flex}.thru-row{gap:8px;display:flex}.thru-row input{border:1px solid var(--line-strong);background:var(--surface);min-width:0;color:var(--ink);border-radius:7px;flex:1;padding:8px 10px;font-size:15px}.thru-lbl{color:var(--ink);font-size:14px;font-weight:600}.thru-lbl .muted{font-weight:400}.rconf{flex-direction:column;gap:8px;display:flex}.lift{flex-direction:column;gap:6px;display:flex}.lift-grid{grid-template-columns:repeat(3,1fr);gap:6px;display:grid}.lift-grid .st-opt{justify-content:center;padding:8px 4px}.lead-toggle{border:1.5px dashed var(--line-strong);cursor:pointer;background:0 0;border-radius:8px;justify-content:center;align-items:center;gap:10px;width:100%;padding:9px;font-size:15px;font-weight:600;display:flex}.lead-toggle.on{border-style:solid;border-color:var(--accent);background:var(--accent-soft)}.lead-mark,.hb-mark{font:700 12px/1 var(--display);letter-spacing:.05em;border:1.5px solid var(--accent);color:var(--accent);border-radius:4px;padding:3px 6px 2px}.lead-toggle.on .lead-mark,.hb-mark{background:var(--accent);color:var(--accent-ink)}.menu{flex-direction:column;gap:6px;display:flex}.mitem{text-align:left;border:1px solid var(--line);background:var(--surface);cursor:pointer;border-radius:8px;flex-direction:column;align-items:flex-start;gap:1px;padding:10px 12px;font-weight:600;display:flex}.mitem:hover{border-color:var(--accent)}.mitem span{font-size:12.5px;font-weight:400}.fld{color:var(--muted);flex-direction:column;gap:4px;font-size:13px;display:flex}.fld input,.fld select{border:1px solid var(--line-strong);background:var(--surface);color:var(--ink);border-radius:7px;min-width:0;padding:8px 10px;font-size:15px}.pf-list{flex-direction:column;gap:6px;max-height:300px;display:flex;overflow:auto}.pf-list .n{color:var(--muted);margin-left:auto;font-size:12px}dl.contact{grid-template-columns:auto 1fr;align-items:center;gap:6px 14px;margin:0;font-size:15px;display:grid}dl.contact dt{text-transform:uppercase;letter-spacing:.06em;color:var(--muted);font-size:12px}dl.contact dd{flex-wrap:wrap;align-items:center;gap:6px;margin:0;display:flex}.sel{-webkit-user-select:all;user-select:all;font-variant-numeric:tabular-nums;font-weight:600}.copy{padding:3px 8px;font-size:12px}.leftnote{background:var(--surface-2);color:var(--muted);border-radius:6px;padding:6px 10px;font-size:13px}.toast{left:50%;bottom:calc(20px + env(safe-area-inset-bottom,0px));background:var(--ink);color:var(--bg);z-index:80;max-width:calc(100vw - 32px);box-shadow:var(--shadow);cursor:default;border-radius:8px;padding:10px 16px;font-size:14px;position:fixed;transform:translate(-50%)}.toast.error{background:var(--warn);color:#fff}.today{max-width:1040px}.today-layout{align-items:start;gap:12px;display:grid}.today-main,.today-side{gap:12px;min-width:0;display:grid}@media (width>=860px){.today-layout{grid-template-columns:minmax(0,1fr) 340px}.today-side{order:2;position:sticky;top:12px}}.tcard{background:var(--surface);border:1px solid var(--line);border-radius:10px;padding:12px 14px}.tcard.short{border-color:var(--warn);background:linear-gradient(var(--warn-soft), var(--warn-soft)), var(--surface)}.tcard-h{align-items:baseline;gap:8px;margin-bottom:6px;display:flex}.tcard-h h2{text-transform:uppercase;letter-spacing:.04em;font-size:19px}.tcard-h a{color:var(--accent);margin-left:auto}.tcount{font-family:var(--display);color:var(--muted);font-size:17px;font-weight:700}.tnote{color:var(--muted);margin:-2px 0 6px;font-size:13px}.today-none{color:var(--warn);margin:0;font-size:14px;font-weight:600}.today-empty{margin:0;font-size:16px}.today-foot{flex-wrap:wrap;gap:8px;margin:4px 0 0;display:flex}.today-head{grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:2px 12px;margin-bottom:12px;display:grid}.today-head h1{font-size:30px;line-height:1.05}.daynav{align-items:center;gap:6px;display:flex}.daynav .iconbtn{min-width:40px;min-height:40px;font-size:18px}.daypick-btn{background:var(--accent-soft);min-height:32px;color:var(--accent);cursor:pointer;border:1px solid #0000;border-radius:99px;align-items:center;gap:6px;padding:4px 12px;font-size:14.5px;font-weight:600;display:inline-flex;position:relative}.daypick-btn:hover{border-color:var(--accent)}.daypick-btn:focus-within{outline:2px solid var(--accent);outline-offset:2px}.daypick-icon{flex:none;width:15px;height:15px}.daypick-caret{font-size:11px}.daypick{opacity:0;cursor:pointer;border:0;width:100%;height:100%;margin:0;padding:0;font-size:16px;position:absolute;inset:0}.today-sub{flex-wrap:wrap;grid-column:1/-1;align-items:center;gap:6px 14px;min-width:0;margin-top:4px;display:flex}.today-back{font-size:14px;font-weight:600}.today-sub .today-print{margin-left:auto}.today-none.quiet{color:var(--muted);font-weight:500}.tgroup .today-none+.tlist{margin-top:4px}.tliftwx{color:var(--muted);margin-left:auto;font-size:13px;font-weight:600}.fc-halves{gap:8px;display:grid}.fc-half{grid-template-columns:62px minmax(0,1fr) auto;align-items:baseline;gap:1px 10px;display:grid}.fc-label{font-family:var(--display);letter-spacing:.04em;text-transform:uppercase;font-size:15px;font-weight:700}.fc-short{min-width:0;font-size:14.5px;font-weight:600}.fc-temp{font-family:var(--display);text-align:right;font-variant-numeric:tabular-nums;font-size:21px;font-weight:700;line-height:1}.fc-sub{color:var(--muted);grid-column:2/-1;font-size:13px}.snowpill{background:var(--snow-soft);color:var(--snow);white-space:nowrap;vertical-align:1px;border-radius:99px;margin-left:6px;padding:0 7px;font-size:13px;font-weight:700;display:inline-block}.fc-more{border-top:1px solid var(--line);margin-top:8px;padding-top:6px}.fc-more summary{cursor:pointer;min-height:32px;color:var(--accent);align-items:center;font-size:14px;font-weight:600;list-style:none;display:flex}.fc-more summary::-webkit-details-marker{display:none}.fc-more summary:after{content:"▾";margin-left:6px;font-size:12px}.fc-more[open] summary:after{content:"▴"}details.fc-week>summary{align-items:center}details.fc-week>summary .snowpill{margin-left:0}.fc-more p{color:var(--muted);margin:4px 0 0;font-size:13.5px}.fc-more p b{color:var(--ink);font-weight:600}.fc-week ul{margin:0;padding:0;list-style:none}.fc-week button{border:0;border-top:1px solid var(--line);text-align:left;cursor:pointer;background:0 0;border-radius:0;grid-template-columns:46px minmax(0,1fr) auto 44px;align-items:center;gap:8px;width:100%;padding:6px 4px;font-size:14px;display:grid}.fc-week li:first-child button{border-top:0}.fc-week button:hover .fw-day{color:var(--accent)}.fc-week button.sel{background:var(--accent-soft);border-radius:6px}.fw-day{font-family:var(--display);text-transform:uppercase;font-size:15px;font-weight:700;line-height:1.05}.fw-day small{font-family:var(--body);color:var(--muted);text-transform:none;font-size:11px;font-weight:500;display:block}.fw-sky{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.fw-temp{white-space:nowrap;font-variant-numeric:tabular-nums;font-weight:600}.fw-temp span{color:var(--muted);font-weight:500}.fw-snow{text-align:right}.fw-snow .snowpill{margin-left:0}.on-tag{background:var(--st-available);color:var(--st-available-ink);letter-spacing:.04em;text-transform:uppercase;vertical-align:1px;border-radius:99px;margin-left:5px;padding:0 5px;font-size:10px;font-weight:700;display:inline-block}.fc-slim{flex-wrap:wrap;align-items:baseline;gap:2px 10px;margin:0;padding:8px 14px;font-size:14px;display:flex}.fc-slim-h{font-family:var(--display);letter-spacing:.04em;text-transform:uppercase;font-size:15px;font-weight:700}.fc-slim a{color:var(--accent);margin-left:auto;font-size:13px;font-weight:600}.wx-alert{border:1.5px solid var(--warn);background:linear-gradient(var(--warn-soft), var(--warn-soft)), var(--surface);border-radius:10px;gap:2px;padding:10px 12px;display:grid}.wx-alert b{font-family:var(--display);letter-spacing:.03em;text-transform:uppercase;color:var(--warn);font-size:18px}.wx-alert-when{font-size:14px;font-weight:600}.wx-alert-what{-webkit-line-clamp:3;-webkit-box-orient:vertical;font-size:13.5px;display:-webkit-box;overflow:hidden}.wx-alert a{color:var(--accent);font-size:13px;font-weight:600}details.tgroup>summary{cursor:pointer;min-height:28px;margin-bottom:0;list-style:none}details.tgroup>summary::-webkit-details-marker{display:none}details.tgroup>summary:after{content:"Show ▾";color:var(--accent);margin-left:auto;font-size:13px}details.tgroup[open]>summary{margin-bottom:6px}details.tgroup[open]>summary:after{content:"Hide ▴"}.staffing{flex-wrap:wrap;align-items:center;gap:8px 18px;display:flex}.st-main{align-items:baseline;gap:8px;font-size:16px;font-weight:600;display:flex}.st-num{font-family:var(--display);color:var(--st-confirmed);font-size:38px;line-height:1}.staffing.short .st-num,.staffing.short .st-min{color:var(--warn)}.st-min{color:var(--muted);font-weight:500}.st-skills{font-variant-numeric:tabular-nums;flex-wrap:wrap;gap:6px 14px;margin:0;padding:0;font-weight:700;list-style:none;display:flex}.st-skills li{align-items:center;gap:5px;display:inline-flex}.st-skills li.short{color:var(--warn)}.tlist{margin:0;padding:0;list-style:none}.tlist li+li{border-top:1px solid var(--line)}.reqnote{border:1.5px solid var(--st-available);background:linear-gradient(var(--amber-soft), var(--amber-soft)), var(--surface);color:var(--ink);border-radius:10px;flex-wrap:wrap;align-items:baseline;gap:4px 8px;margin:0 0 12px;padding:10px 14px;text-decoration:none;display:flex}.reqnote:hover .reqnote-go{text-decoration:underline}.reqnote-go{color:var(--accent);margin-left:auto;font-weight:600}.reqbar{border:1.5px solid var(--st-available);background:linear-gradient(var(--amber-soft), var(--amber-soft)), var(--surface);border-radius:10px;margin:0 0 12px;padding:8px 14px}.reqbar summary{cursor:pointer;align-items:center;gap:6px;min-height:32px;display:flex}.reqbar summary:after{content:"▾";color:var(--muted)}.reqbar[open] summary:after{content:"▴"}.reqbar[open] summary{margin-bottom:4px}.req-day input{min-height:40px}.req-mine{border-top:1px solid var(--line);margin-top:12px;padding-top:10px;font-size:14px}.req-mine ul{margin:6px 0 0;padding:0;list-style:none}.req-mine li{justify-content:space-between;align-items:center;gap:12px;min-height:36px;display:flex}.ci-row{align-items:center;gap:10px;min-height:48px;padding:4px 2px;display:flex}.ci-day{text-align:left;min-width:92px;font-weight:600}.ci-name{flex:1;min-width:0;font-weight:600}.tperson{text-align:left;cursor:pointer;background:0 0;border:0;align-items:center;gap:10px;width:100%;min-height:48px;padding:6px 2px;display:flex}.tperson:hover .tname{color:var(--accent);text-decoration:underline}.trad{font-family:var(--display);text-align:center;min-width:36px;color:var(--muted);font-size:17px;font-weight:700}.twho{flex-direction:column;flex:1;min-width:0;display:flex}.tname{font-size:15px;font-weight:600}.tpos{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;font-size:12.5px;overflow:hidden}.tpills{flex-wrap:wrap;justify-content:flex-end;gap:4px;display:flex}.cake-sm{font-family:var(--emoji)}.assign-start{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.assign-start p{margin:0}.clear-confirm{flex-wrap:wrap;align-items:center;gap:8px;display:inline-flex}.assign-note{margin:0}.tmin{color:var(--muted);text-transform:uppercase;letter-spacing:.05em;font-size:12px;font-weight:600}.assign-bar{bottom:calc(10px + env(safe-area-inset-bottom,0px));z-index:5;background:var(--surface);border:1.5px solid var(--accent);box-shadow:var(--shadow);border-radius:12px;gap:8px;padding:12px 14px;display:grid;position:sticky}.assign-top{align-items:center;gap:12px;display:flex}.assign-done{margin-left:auto}.assign-targets{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.assign-targets .btn{min-height:40px}.tperson.ticked{background:var(--accent-soft);border-radius:8px}.tperson:disabled{opacity:.45;cursor:default}.tcheck{border:1.5px solid var(--line-strong);width:22px;height:22px;color:var(--accent-ink);border-radius:5px;flex:none;place-items:center;font-size:14px;font-weight:700;display:inline-grid}.tperson.ticked .tcheck{background:var(--accent);border-color:var(--accent)}.yourday{gap:10px;margin:0 0 12px;display:grid}.yd-card{border:1px solid var(--line);background:var(--surface);border-radius:10px;gap:4px;padding:12px 14px;display:grid}.yd-card.on{border-color:var(--accent);background:var(--accent);color:var(--accent-ink)}.yd-kicker{font-family:var(--display);letter-spacing:.08em;text-transform:uppercase;color:var(--muted);font-size:13px;font-weight:700}.yd-card.on .yd-kicker{color:inherit;opacity:.8}.yd-main{margin:0;font-size:16px;font-weight:600}.yd-card.on .yd-main{font-family:var(--display);font-size:26px;font-weight:700;line-height:1.1}.yd-sub{color:var(--muted);margin:0;font-weight:500}.yd-card.on .yd-sub{color:inherit;opacity:.9}.yd-clock{flex-wrap:wrap;align-items:center;gap:4px 10px;margin-top:6px;display:flex}.yd-clock .btn{min-height:44px;font-size:15px;text-decoration:none}.yd-card.on .yd-clock .btn{background:var(--accent-ink);border-color:var(--accent-ink);color:var(--accent)}.yd-geo{color:var(--muted);font-size:13px}.yd-card.on .yd-geo{color:inherit;opacity:.8}.yd-next{gap:6px;margin-top:8px;display:grid}.yd-days{grid-template-columns:repeat(5,minmax(0,1fr));gap:6px;max-width:380px;margin:0;padding:0;list-style:none;display:grid}.yd-day{background:var(--accent-soft);width:100%;color:var(--accent);cursor:pointer;border:1px solid #0000;border-radius:8px;justify-items:center;padding:5px 2px;line-height:1.15;display:grid}.yd-day b{font-family:var(--display);white-space:nowrap;font-size:17px}.yd-day:hover{border-color:var(--accent)}.yd-day.training{border:1px dashed var(--accent);background:0 0}.yd-wk{letter-spacing:.05em;text-transform:uppercase;font-size:11px;font-weight:600}.yd-card.on .yd-day{color:inherit;background:#ffffff24;border-color:#ffffff47}.yd-card.on .yd-day.training{background:0 0;border-style:dashed}.yd-card.on .yd-day:hover{border-color:var(--accent-ink)}.yd-card.on .linkbtn{color:inherit}.today-rolled{color:var(--muted);margin:-4px 0 12px;font-size:14px}.today-rolled .linkbtn{font-size:14px;font-weight:600}.staffing.compact{padding:10px 14px}.staffing.compact .st-num{font-size:28px}.tperson.you{background:var(--accent-soft);border-radius:8px;padding-inline:8px}.tcard.tgroup.crew{border:2px solid var(--accent)}.crew-kicker{font-family:var(--display);letter-spacing:.08em;text-transform:uppercase;color:var(--accent);font-size:13px;font-weight:700;display:block}.tperson.flash{background:var(--amber-soft);border-radius:8px;transition:background .3s}.name-mark{vertical-align:2px;margin-left:6px;padding:2px 5px 1px;font-size:11px}.today-banner{border:1px solid var(--line);background:var(--surface);border-radius:10px;align-items:center;gap:12px;margin:0 0 12px;padding:12px 16px;display:flex}.today-banner.holiday{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}.today-banner.bday-banner{background:var(--amber-soft);border-color:var(--st-available)}.banner-kicker{font-family:var(--display);letter-spacing:.08em;text-transform:uppercase;opacity:.85;font-size:13px;font-weight:700;display:block}.banner-text{font-family:var(--display);font-size:24px;font-weight:700;line-height:1.1;display:block}.bday-banner .banner-text{font-family:var(--body);font-size:16px;font-weight:600}.banner-icon{font-family:var(--emoji);font-size:28px;line-height:1}.wx-msg{margin:0}.wx-sec{letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin:10px 0 4px;font-size:12px;font-weight:700}.wx-main{grid-template-columns:auto minmax(0,1fr);align-items:center;gap:4px 14px;display:grid}.wx-main.off{color:var(--muted);gap:8px;display:flex}.wx-big{font-family:var(--display);font-variant-numeric:tabular-nums;font-size:48px;font-weight:700;line-height:.95}.wx-facts{gap:1px;min-width:0;font-size:14px;display:grid}.wx-facts b{font-weight:600}.wx-cold{color:var(--snow);font-weight:700}.wx-tiles{grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;margin:0;padding:0;list-style:none;display:grid}.wx-tile{background:var(--surface-2);text-align:center;font-variant-numeric:tabular-nums;border-radius:8px;align-content:start;justify-items:center;padding:6px 3px;font-size:12px;line-height:1.25;display:grid}.wx-tile b{font-family:var(--display);font-size:22px;line-height:1.05}.wx-tn{font-weight:600}.wx-tile.off{color:var(--muted)}@media (width<=640px){.hide-sm{display:none}.wordmark{font-size:18px}.top{gap:10px 8px}.who{gap:6px}.signout,.help-link{width:30px;height:30px;padding:0}.top .tabs{order:3;width:100%}.tab{padding:7px 10px;font-size:16px}.card{padding:22px 16px}.grid .c-radio{min-width:46px;max-width:46px;font-size:14px}.grid .c-radio .hbtn{letter-spacing:.01em;gap:1px;padding:4px 1px}.grid .c-name{min-width:136px;max-width:136px;left:46px}.grid .c-pos{min-width:104px;max-width:104px}.period select{font-size:18px}.grid-wrap{max-height:calc(100dvh - 200px)}}@media (prefers-reduced-motion:reduce){*{transition:none!important}.spinner{animation-duration:2.4s}}.roster .r-actions{flex-wrap:wrap;align-items:center;gap:14px;display:flex}.roster .flagline{margin-top:6px}.roster .warnlink{color:var(--warn);font-size:14px;font-weight:700}.roster .saved{color:var(--st-confirmed);min-width:90px;font-size:13px;font-weight:600}.roster .flush{margin:0}.roster .switch{cursor:pointer;align-items:center;gap:8px;font-size:14px;font-weight:500;display:inline-flex}.roster .switch input{appearance:none;background:var(--line-strong);cursor:pointer;border-radius:99px;flex:none;width:38px;height:22px;margin:0;transition:background .15s;position:relative}.roster .switch input:after{content:"";background:#fff;border-radius:50%;width:16px;height:16px;transition:transform .15s;position:absolute;top:3px;left:3px}.roster .switch input:checked{background:var(--accent)}.roster .switch input:checked:after{transform:translate(16px)}.roster .rfilters{flex-wrap:wrap;align-items:center;gap:8px 10px;margin-bottom:10px;display:flex}.roster .rfilters input,.roster .rfilters select{border:1px solid var(--line-strong);background:var(--surface);color:var(--ink);border-radius:7px;min-width:0;padding:7px 9px;font-size:14px}.roster .rfilters input[type=search]{width:240px;max-width:100%}.roster .rtable .pills{align-items:center;gap:4px;display:inline-flex}.roster .thb{cursor:pointer;font:inherit;color:inherit;letter-spacing:inherit;text-transform:inherit;background:0 0;border:0;align-items:center;gap:4px;padding:0;display:inline-flex}.roster .thb:hover{color:var(--accent)}.roster .thb .arr{color:var(--accent);font-size:10px}.roster .rtable th[aria-sort=none] .thb .arr{color:var(--line-strong)}.roster .rtable tbody tr.row{cursor:pointer}.roster .rtable tbody tr.row:hover td{background:var(--accent-soft)}.roster .rtable tr.inactive td{color:var(--muted)}.roster .rtable .nm{max-width:none;font-size:14px;display:inline}.roster .rtable tr.inactive .nm{color:var(--muted);font-weight:500}.roster .rtable td.empty{white-space:normal;padding:18px}.roster .pill{letter-spacing:.05em;text-transform:uppercase;border:1px solid var(--line-strong);color:var(--muted);white-space:nowrap;border-radius:99px;margin-left:6px;padding:2px 7px;font-size:11px;font-style:normal;font-weight:500;display:inline-block}.roster .pill.flush{margin-left:0}.roster .pill.ed{border-color:var(--accent);color:var(--accent)}.roster .pill.bad{border-color:var(--warn);color:var(--warn);background:var(--warn-soft)}.roster .pill.warnp{color:#8a6200;background:var(--amber-soft);border-color:#b7860b}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .roster .pill.warnp{color:#f1c46b;border-color:#d9a73a}}:root[data-theme=dark] .roster .pill.warnp{color:#f1c46b;border-color:#d9a73a}.roster .rtable.bulk td{padding:4px 5px}.roster .rtable.bulk th.cb,.roster .rtable.bulk td.cb{text-align:center}.roster .rtable.bulk input:not([type=checkbox]),.roster .rtable.bulk select{border:1px solid var(--line);background:var(--surface);width:100%;min-width:90px;color:var(--ink);border-radius:5px;padding:6px 7px;font-size:14px}.roster .rtable.bulk input[data-bf=radio_id]{width:64px;min-width:64px}.roster .rtable.bulk input[data-bf=name]{min-width:150px}.roster .rtable.bulk input[data-bf=email]{min-width:200px}.roster .rtable.bulk input[data-bf=phone]{min-width:124px}.roster .rtable.bulk td>select{min-width:120px}.roster .rtable.bulk input[type=date]{min-width:132px}.roster .rtable.bulk input[type=checkbox]{width:18px;height:18px;accent-color:var(--accent)}.roster .rtable.bulk .bsel select{min-width:70px;padding:6px 4px;font-size:14px}.roster .rtable.bulk .ro{padding:0 6px}.roster .back{color:var(--accent);cursor:pointer;background:0 0;border:0;margin-bottom:10px;padding:0;font-size:15px;font-weight:600}.roster .detail{grid-template-columns:minmax(0,660px) minmax(0,380px);align-items:start;gap:20px;display:grid}.roster .pform{flex-direction:column;gap:14px;min-width:0;display:flex}.roster .fs{background:var(--surface);border:1px solid var(--line);border-radius:10px;grid-template-columns:1fr 1fr;gap:12px 14px;min-width:0;margin:0;padding:14px 18px 18px;display:grid}.roster .fs.one{grid-template-columns:1fr}.roster .fs legend{font-family:var(--display);text-transform:uppercase;letter-spacing:.07em;color:var(--muted);margin-left:-6px;padding:0 6px;font-size:15px;font-weight:700}.roster .fs .full{grid-column:1/-1}.roster .fs .note{color:var(--muted);grid-column:1/-1;margin:0;font-size:13px}.roster .fld .ro{color:var(--ink);padding:8px 0 0;font-size:15px}.roster .lbl-row{flex-wrap:wrap;align-items:center;gap:6px;display:inline-flex}.roster .lbl-row .pill{margin-left:0}.roster .form-err{background:var(--warn-soft);color:var(--warn);border-radius:7px;margin:0;padding:10px 12px;font-size:14px}.roster .bsel{gap:6px;display:flex}.roster .bsel select{border:1px solid var(--line-strong);background:var(--surface);color:var(--ink);border-radius:7px;min-width:0;padding:8px 6px;font-size:15px}.roster .state-zip{align-items:flex-end;min-width:0}.roster .state-zip .fld{min-width:0}.roster .state-zip .fld:last-child{flex:1}.roster .state-zip input.state{text-transform:uppercase;width:64px}.roster .chips{flex-wrap:wrap;gap:6px;display:flex}.roster .chipcb{border:1px solid var(--line-strong);cursor:pointer;color:var(--ink);background:var(--surface);border-radius:99px;align-items:center;gap:6px;padding:6px 10px;font-size:14px;display:inline-flex}.roster .chipcb:has(input:checked){background:var(--accent-soft);border-color:var(--accent);color:var(--accent);font-weight:600}.roster .chipcb input{accent-color:var(--accent);margin:0}.roster .rrows{flex-direction:column;gap:8px;display:flex}.roster .rrow{border-bottom:1px solid var(--line);grid-template-columns:minmax(0,1fr) auto minmax(0,1fr) auto;align-items:center;gap:6px;padding-bottom:8px;display:grid}.roster .rrow .rnote{grid-column:1/-1}.roster .rrow input{border:1px solid var(--line-strong);background:var(--surface);color:var(--ink);border-radius:7px;min-width:0;padding:7px 8px;font-size:14px}.roster .icon2{width:30px;height:30px;padding:0;font-size:14px}.roster .side{background:var(--surface);border:1px solid var(--line);border-radius:10px;flex-direction:column;gap:10px;min-width:0;padding:16px;font-size:14px;display:flex}.roster .side h2{text-transform:uppercase;letter-spacing:.06em;color:var(--muted);font-size:16px}.roster .side .email{overflow-wrap:anywhere}.roster .side .loading{padding:0}.roster .side .msg{margin:0}.roster .big{font-family:var(--display);font-size:34px;font-weight:700;line-height:1}.roster .danger-zone{border-color:var(--warn-soft)}.roster .danger-zone .confirm{background:var(--warn-soft);border-radius:8px;flex-direction:column;gap:10px;padding:12px;display:flex}.roster .pop-actions.start{justify-content:flex-start}@media (width<=820px){.roster .detail{grid-template-columns:1fr}}@media (width<=560px){.roster .fs{grid-template-columns:1fr;padding:12px 14px 16px}.roster .rfilters input[type=search]{width:100%}.roster .r-actions{justify-content:space-between;width:100%}.roster .r-actions .saved{order:3;width:100%;min-width:0}}.roster .signinline{flex-wrap:wrap;align-items:center;gap:6px 12px;margin-top:6px;font-size:14px;display:flex}.roster .signinline .linkbtn{font-size:14px}.roster .signinline .linkbtn[aria-pressed=true]{font-weight:700;text-decoration-thickness:2px}.roster .bulk-invite{border-color:var(--accent);max-width:720px;margin-bottom:14px}.roster .bulk-invite details summary{cursor:pointer;color:var(--accent);font-size:14px}.roster .bulk-invite .who{margin-top:6px;line-height:1.5}.roster .bulk-invite .skipped{gap:3px;margin:4px 0 0;padding-left:20px;display:grid}.roster .bulk-invite .warnnote{background:var(--amber-soft);border-radius:7px;padding:8px 10px}.roster .bulk-invite progress{width:100%;height:10px;accent-color:var(--accent)}.roster .fld textarea{border:1px solid var(--line-strong);background:var(--surface);font:inherit;color:var(--ink);resize:vertical;border-radius:7px;min-width:0;padding:8px 10px;font-size:15px}.roster .reqlink{font-size:14px}.roster .reqlink.waiting{color:var(--patrol);font-weight:700}.roster .warnnote{background:var(--amber-soft);color:var(--ink);border-radius:7px;padding:8px 10px}.roster .req-cards{flex-direction:column;gap:14px;max-width:760px;margin-bottom:20px;display:flex}.roster .req-recent{max-width:760px}.roster .req-top{flex-wrap:wrap;align-items:baseline;gap:4px 10px;display:flex}.roster .req-name{font-size:17px;font-weight:700;text-decoration:none}.roster .req-diff{border-collapse:collapse;width:100%;font-size:14px}.roster .req-diff th,.roster .req-diff td{text-align:left;border-bottom:1px solid var(--line);vertical-align:top;padding:6px 8px}.roster .req-diff thead th{text-transform:uppercase;letter-spacing:.05em;color:var(--muted);font-size:12px;font-weight:600}.roster .req-diff tbody th{color:var(--muted);white-space:nowrap;font-weight:500}.roster .req-diff td:last-child{background:var(--accent-soft)}.roster .req-note{border-left:3px solid var(--line-strong);color:var(--ink);white-space:pre-wrap;overflow-wrap:anywhere;margin:0;padding:8px 12px}.roster .req-reply{overflow-wrap:anywhere;margin:0;font-size:14px}.roster .req-card .confirm{background:var(--warn-soft);border-radius:8px;flex-direction:column;gap:10px;padding:12px;display:flex}.roster .req-list{flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.roster .req-item{border-bottom:1px solid var(--line);flex-direction:column;gap:6px;padding:10px 0;display:flex}.roster .req-item:first-child{padding-top:0}.roster .req-item:last-child{border-bottom:0;padding-bottom:0}.roster .req-lines{gap:2px;margin:0;padding-left:18px;display:grid}.roster .pill.st-pending{color:#8a6200;background:var(--amber-soft);border-color:#b7860b}.roster .pill.st-approved{border-color:var(--ok);color:var(--ok);background:var(--ok-soft)}.roster .pill.st-declined{border-color:var(--warn);color:var(--warn);background:var(--warn-soft)}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .roster .pill.st-pending{color:#f1c46b;border-color:#d9a73a}}:root[data-theme=dark] .roster .pill.st-pending{color:#f1c46b;border-color:#d9a73a}@media (width<=560px){.roster .req-diff thead{display:none}.roster .req-diff tr{border-bottom:1px solid var(--line);grid-template-columns:minmax(0,1fr) minmax(0,1fr);display:grid}.roster .req-diff tbody th{white-space:normal;border:0;grid-column:1/-1;padding-bottom:0}.roster .req-diff td{overflow-wrap:anywhere;border:0}.roster .req-diff td:before{text-transform:uppercase;letter-spacing:.05em;color:var(--muted);font-size:11px;font-weight:600;display:block}.roster .req-diff td:first-of-type:before{content:"On file now"}.roster .req-diff td:nth-of-type(2):before{content:"Asked for"}}.roster .onfile{grid-template-columns:max-content minmax(0,1fr);gap:6px 14px;margin:0;display:grid}.roster .onfile dt{color:var(--muted)}.roster .onfile dd{overflow-wrap:anywhere;min-width:0;margin:0}.roster .onfile .onfile-skill{align-items:center;gap:4px;margin-right:10px;display:inline-flex}@media (width<=420px){.roster .onfile{grid-template-columns:1fr;gap:2px}.roster .onfile dd{margin-bottom:6px}}.reports-page .rep{grid-template-columns:260px minmax(0,1fr);align-items:start;gap:20px;display:grid}.reports-page .repnav{flex-direction:column;gap:4px;display:flex}.reports-page .repbtn{text-align:left;cursor:pointer;color:var(--ink);background:0 0;border:1px solid #0000;border-radius:8px;justify-content:space-between;align-items:center;gap:10px;padding:10px 12px;font-size:14px;font-weight:600;display:flex}.reports-page .repbtn:hover{background:var(--surface)}.reports-page .repbtn[aria-current=page]{background:var(--surface);border-color:var(--line);box-shadow:inset 3px 0 0 var(--accent)}.reports-page .cnt{font:700 12px/1 var(--body);background:var(--surface-2);color:var(--muted);border-radius:99px;flex:none;padding:4px 7px}.reports-page .cnt.has{background:var(--warn-soft);color:var(--warn)}.reports-page .rep-main{background:var(--surface);border:1px solid var(--line);border-radius:10px;flex-direction:column;gap:10px;min-width:0;padding:16px;font-size:14px;display:flex}.reports-page .rephead{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.reports-page .rephead h2{font-size:22px;line-height:1.1}.reports-page .rephead p{margin:2px 0 0}.reports-page .r-actions{flex-wrap:wrap;align-items:center;gap:10px 14px;display:flex}.reports-page .rep-note{margin:0;font-size:13px}.reports-page .rep-empty{background:var(--surface-2);border:1px solid var(--line);border-radius:7px;margin:0;padding:12px}.reports-page .rtable .num{text-align:right}.reports-page .rtable .mid{text-align:center}.reports-page .rtable td.wrap{white-space:normal;min-width:180px}.reports-page .rtable td.bad{color:var(--warn);background:var(--warn-soft);font-weight:800}.reports-page .rtable th .sk{vertical-align:1px;margin-right:2px}.reports-page .rtable .nm{max-width:none;font-size:14px;display:inline}.reports-page .rtable tfoot th{text-align:left;border-top:2px solid var(--line-strong);background:var(--surface-2);font-family:var(--body);color:var(--ink);text-transform:none;letter-spacing:0;border-bottom:0;padding:10px;font-size:14px}.reports-page .rtable tfoot th.num{text-align:right}.reports-page .ok{color:var(--st-confirmed);font-weight:700}.reports-page .no{color:var(--warn);font-weight:700}.reports-page .pill{letter-spacing:.05em;text-transform:uppercase;border:1px solid var(--line-strong);color:var(--muted);white-space:nowrap;border-radius:99px;padding:2px 7px;font-size:11px;font-weight:500;display:inline-block}.reports-page .pill.bad{border-color:var(--warn);color:var(--warn);background:var(--warn-soft)}.reports-page .pill.warnp{color:#8a6200;background:var(--amber-soft);border-color:#b7860b}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .reports-page .pill.warnp{color:#f1c46b;border-color:#d9a73a}}:root[data-theme=dark] .reports-page .pill.warnp{color:#f1c46b;border-color:#d9a73a}@media (width<=820px){.reports-page .rep{grid-template-columns:1fr;gap:14px}.reports-page .repnav{flex-flow:wrap}.reports-page .repbtn{border-color:var(--line);background:var(--surface);padding:7px 10px;font-size:13px}.reports-page .repbtn[aria-current=page]{border-color:var(--accent);background:var(--accent-soft);box-shadow:none}}@media (width<=640px){.reports-page .rep-main{padding:12px}.reports-page .rephead h2{font-size:20px}.reports-page .r-actions{width:100%}.reports-page .r-actions .fsel{flex:auto}.reports-page .r-actions .fsel select{flex:1;min-width:0}}body.pv-open{overflow:hidden}.pv{z-index:60;background:var(--bg);padding:16px;padding-top:calc(16px + env(safe-area-inset-top,0px));padding-bottom:calc(16px + env(safe-area-inset-bottom,0px));position:fixed;inset:0;overflow:hidden auto}.pv-head{flex-wrap:wrap;align-items:flex-end;gap:12px 18px;margin-bottom:12px;display:flex}.pv-head h2{flex-basis:100%;margin-right:auto;font-size:26px}.pv-head .chk{min-height:38px}.pv-actions{gap:10px;margin-left:auto;display:flex}.pv-note{color:var(--muted);max-width:70ch;margin:0 0 12px;font-size:13px}.pv .notice{max-width:70ch}.sheet-scroll{max-width:100%;padding-bottom:12px;overflow-x:auto}@media (width>=900px){.pv-head h2{flex-basis:auto}}.sheet{--surface:#fff;--muted:#586777;--line-strong:#9aa4ae;--st-confirmed:#2e9a58;--st-confirmed-ink:#fff;--st-available:#f1ae2b;--st-available-ink:#3a2900;--st-trainee:#3a7bd5;--st-trainee-ink:#fff;--st-unavailable:#858e99;--st-unavailable-ink:#fff;--st-injured:#cf3a2f;--st-injured-ink:#fff;--sh-line:#9aa4ae;--sh-hatch:repeating-linear-gradient(135deg, #d3d9df 0 2px, #f4f6f8 2px 5px);--sh-out:#e9ecef;--rh:14px;--fs:9px;box-sizing:border-box;color:#111;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;width:11in;height:8.5in;font-family:var(--body);background:#fff;flex-direction:column;gap:6px;margin-inline:auto;padding:.25in;display:flex;overflow:hidden;box-shadow:0 4px 20px #0000002e}.sheet,.sheet *{-webkit-print-color-adjust:exact;print-color-adjust:exact}.sh-top{border-bottom:2px solid #111;flex:none;align-items:baseline;gap:14px;padding-bottom:4px;display:flex}.sh-top h3{font-family:var(--display);text-transform:uppercase;letter-spacing:.04em;margin:0;font-size:22px;line-height:1.1}.sh-top .rng{font-family:var(--display);font-size:20px;font-weight:600;line-height:1.1}.sh-top .meta{color:#555;margin-left:auto;font-size:10px}.sheet table{table-layout:fixed;border-collapse:collapse;width:100%;font-size:var(--fs);font-variant-numeric:tabular-nums;flex:none;line-height:1}.sheet col.w-radio{width:30px}.sheet col.w-name{width:132px}.sheet col.w-pos{width:88px}.sheet col.w-days{width:36px}.sheet th,.sheet td{border:1px solid var(--sh-line);height:var(--rh);white-space:nowrap;text-overflow:ellipsis;text-align:left;padding:0 3px;font-weight:400;overflow:hidden}.sheet thead th{text-align:center;height:24px;font:600 9.5px/1.05 var(--display);background:#eef1f4;padding:0 1px}.sheet thead th.we{background:#dce3ea}.sheet thead th.l{text-align:left;padding:0 3px}.sheet .sh-dw,.sheet .sh-dn{text-overflow:ellipsis;display:block;overflow:hidden}.sheet .sh-dn{font-size:10.5px}.sheet td.rad,.sheet td.tot{text-align:center;font-weight:700}.sheet td b{font-weight:700}.sheet .tg{margin-left:3px;font-size:.8em;font-weight:700}.sheet td.c{text-align:center;background:var(--cell-bg);color:var(--cell-ink);padding:0;font-weight:700;position:relative}.sheet td.c.s-none{background:#fff}.sheet td.c.s-none.we{background:#eef2f5}.sheet td.c .tsy{font-size:.85em}.sheet td.off{background:var(--sh-hatch)}.sheet td.out{background:var(--sh-out)}.sheet .st{color:#e0a800;-webkit-text-stroke:.6px #5c4200;font-size:1.2em;line-height:1}.sheet .ck{font-size:1.05em;line-height:1;font-family:var(--emoji)}.sheet .bd{font-size:.75em;line-height:1;font-family:var(--emoji);position:absolute;top:0;right:0}.sheet tfoot th,.sheet tfoot td{text-align:center;background:#f4f6f8}.sheet tfoot th{text-align:left;font-weight:600}.sheet tfoot tr:first-child>*{border-top:2px solid #111}.sheet tfoot td.off{background:var(--sh-hatch)}.sheet tfoot td.short{color:#b3261e;background:#fbe3e1;font-weight:800}.sheet tfoot td.tot{font-weight:700}.sheet .lgd{color:#333;flex-wrap:wrap;flex:none;align-items:center;gap:3px 12px;margin-top:auto;font-size:9.5px;line-height:1.2;display:flex}.sheet .lg{white-space:nowrap;align-items:center;gap:4px;display:inline-flex}.sheet .lgd .sw{border-radius:2px;width:12px;height:12px;font-size:8px}.sheet .lgd .sw .tsy{font-size:6.5px}.sheet .lgd .sw.off{background:var(--sh-hatch);box-shadow:inset 0 0 0 1px var(--sh-line)}.sheet .lgd .sw.out{background:var(--sh-out);box-shadow:inset 0 0 0 1px var(--sh-line)}.sheet .lgd .st{font-size:12px}.sheet .lgd .note{color:#555}.dsheet{--rh:22px;--fs:11px;--sh-line:#9aa4ae;box-sizing:border-box;color:#111;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;width:8.5in;height:11in;font-family:var(--body);background:#fff;flex-direction:column;gap:6px;margin-inline:auto;padding:.4in;display:flex;overflow:hidden;box-shadow:0 4px 20px #0000002e}.dsheet.long{height:auto;min-height:11in}.dsheet,.dsheet *{-webkit-print-color-adjust:exact;print-color-adjust:exact}.ds-top{border-bottom:2px solid #111;flex:none;align-items:baseline;gap:14px;padding-bottom:4px;display:flex}.ds-top h3{font-family:var(--display);text-transform:uppercase;letter-spacing:.04em;margin:0;font-size:20px;line-height:1.1}.ds-top .meta{color:#555;margin-left:auto;font-size:10px}.ds-day{flex-wrap:wrap;flex:none;align-items:baseline;gap:4px 14px;display:flex}.ds-date{font-family:var(--display);font-size:24px;font-weight:600;line-height:1.1}.ds-holiday{color:#7a4b00;font-size:13px;font-weight:700}.ds-staff{flex-wrap:wrap;flex:none;gap:3px 16px;font-size:12px;display:flex}.ds-staff b{font-size:14px}.ds-staff .short{color:#b3261e;font-weight:700}.ds-fc{border:1px solid var(--sh-line);background:#f4f6f8;border-radius:3px;flex:none;grid-template-columns:1fr 1fr;gap:4px 12px;padding:4px 6px;font-size:10.5px;line-height:1.3;display:grid}.dsheet table{table-layout:fixed;border-collapse:collapse;width:100%;font-size:var(--fs);font-variant-numeric:tabular-nums;flex:none;line-height:1.1}.dsheet col.w-radio{width:34px}.dsheet col.w-name{width:172px}.dsheet col.w-role{width:124px}.dsheet col.w-skills{width:60px}.dsheet col.w-phone{width:104px}.dsheet th,.dsheet td{border:1px solid var(--sh-line);height:var(--rh);white-space:nowrap;text-overflow:ellipsis;text-align:left;padding:0 4px;font-weight:400;overflow:hidden}.dsheet thead th{height:20px;font:600 10px/1 var(--display);text-transform:uppercase;letter-spacing:.03em;background:#eef1f4}.dsheet td.rad{text-align:center;font-weight:700}.dsheet td b{font-weight:700}.dsheet td.none{color:#777;font-style:italic}.dsheet tr.grp th{height:calc(var(--rh) * .9);font:700 calc(var(--fs) + 1px)/1 var(--display);background:#e3e8ed;border-top:2px solid #111}.dsheet tr.grp.short th{background:#fbe3e1}.dsheet tr.gap td{height:max(8px, calc(var(--rh) * .5));background:0 0;border:none;padding:0}.dsheet tr.grp .cnt{color:#444;margin-left:6px;font-weight:600}.dsheet tr.grp .min{font:400 .85em var(--body);color:#555;margin-left:8px}.dsheet tr.grp .warn{font:700 .85em var(--body);color:#b3261e;margin-left:8px}.dsheet tr.grp .gnote{font:400 .8em var(--body);color:#555;margin-left:8px}.dsheet .tg{margin-right:4px;font-size:.85em;font-weight:700}.dsheet .st{color:#e0a800;-webkit-text-stroke:.6px #5c4200}.dsheet .hb{border:1px solid #111;border-radius:2px;margin-left:5px;padding:0 3px;font-size:.75em;font-weight:700}.dsheet .ck{font-family:var(--emoji)}.ds-lgd{color:#333;flex-wrap:wrap;flex:none;gap:3px 14px;margin-top:auto;padding-top:4px;font-size:9.5px;display:flex}.ds-lgd .note{color:#555}.ds-lgd .hb{margin-left:0}@media print{@page{size:letter landscape;margin:.25in}body.pv-open{background:#fff;height:auto;overflow:visible}html:has(>body.pv-open){background:#fff;height:auto;overflow:visible}body.pv-open>:not(.pv){display:none!important}.pv{background:0 0;padding:0;position:static;overflow:visible}.pv-head,.pv-note,.pv-msg,.pv .loading{display:none!important}.sheet-scroll{padding:0;overflow:visible}.sheet{width:10.5in;height:8in;box-shadow:none;break-inside:avoid;break-after:avoid;margin:0;padding:0}@page daysheet{size:letter portrait;margin:.4in}.pv-day,.dsheet{page:daysheet}.dsheet{width:7.7in;height:10.2in;box-shadow:none;margin:0;padding:0}.dsheet.long{height:auto;min-height:0}.dsheet tr{break-inside:avoid}}.season-page .stack{flex-direction:column;gap:20px;display:flex}.season-page .detail{grid-template-columns:minmax(0,660px) minmax(0,380px);align-items:start;gap:20px;display:grid}.season-page .flat{margin:0}.season-page .side{background:var(--surface);border:1px solid var(--line);border-radius:10px;flex-direction:column;gap:10px;min-width:0;padding:16px;font-size:14px;display:flex}.season-page .side h2{text-transform:uppercase;letter-spacing:.06em;color:var(--muted);font-size:16px}.season-page .shead{justify-content:space-between;align-items:baseline;gap:12px;display:flex}.season-page .saved{color:var(--st-confirmed);text-align:right;min-width:60px;font-size:13px;font-weight:600}.season-page .pill{letter-spacing:.05em;text-transform:uppercase;border:1px solid var(--line-strong);color:var(--muted);white-space:nowrap;border-radius:99px;margin-left:6px;padding:2px 7px;font-size:11px;display:inline-block}.season-page .fs{background:var(--surface);border:1px solid var(--line);border-radius:10px;grid-template-columns:1fr 1fr;gap:12px 14px;min-width:0;margin:0;padding:14px 18px 18px;display:grid}.season-page .fs-title{text-transform:uppercase;letter-spacing:.07em;color:var(--muted);font-size:15px}.season-page .fs .full{grid-column:1/-1}.season-page .fs .note{color:var(--muted);grid-column:1/-1;margin:0;font-size:13px}.season-page .form-err{background:var(--warn-soft);color:var(--warn);border-radius:7px;margin:0;padding:10px 12px;font-size:14px}.season-page .plist{font-variant-numeric:tabular-nums;flex-direction:column;gap:4px;margin:0;padding-left:22px;display:flex}.season-page .plist li span:first-child{margin-right:8px;font-weight:600}.season-page .plist li .muted{font-size:12px}.season-page .dlist{flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.season-page .dlist li{border-bottom:1px solid var(--line);grid-template-columns:110px 1fr auto;align-items:center;gap:10px;padding:7px 0;display:grid}.season-page .dlist .dd{font-variant-numeric:tabular-nums;font-weight:600}.season-page .dlist .what{flex-wrap:wrap;align-items:center;gap:6px;min-width:0;display:flex}.season-page .dlist .pill{margin-left:0}.season-page .elist{flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.season-page .erow{border-bottom:1px solid var(--line);align-items:center;gap:8px;padding:6px 0;display:grid}.season-page .erow.skr,.season-page .ehead.skr{grid-template-columns:minmax(120px,1fr) 64px 150px 72px 76px 124px}.season-page .erow.posr{grid-template-columns:minmax(120px,1fr) auto auto 76px auto}.season-page .erow.liftr,.season-page .ehead.liftr{grid-template-columns:minmax(120px,320px) 76px 96px auto}.season-page .needs-hb{align-items:center;gap:6px;font-size:13px;display:flex}.season-page .lead-skill{max-width:320px;margin:0 0 10px}.season-page .clock-fields{grid-template-columns:minmax(0,220px) minmax(0,420px);gap:10px;display:grid}.season-page .clock-fields input{border:1px solid var(--line-strong);background:var(--surface);color:var(--ink);border-radius:7px;width:100%;padding:7px 9px;font-size:14px}@media (width<=640px){.season-page .clock-fields{grid-template-columns:1fr}}.season-page .ehead{color:var(--muted);text-transform:uppercase;letter-spacing:.05em;gap:8px;font-size:12px;display:grid}.season-page .erow input[type=text],.season-page .erow input[type=number],.season-page .eadd input{border:1px solid var(--line-strong);background:var(--surface);color:var(--ink);border-radius:7px;width:100%;min-width:0;padding:7px 9px;font-size:14px}.season-page .erow .tagin{text-transform:uppercase}.season-page .erow .n{color:var(--muted);text-align:right;white-space:nowrap;font-size:12px}.season-page .ecell{flex-direction:column;gap:3px;min-width:0;display:flex}.season-page .mcap{color:var(--muted);font-size:12px;display:none}.season-page .colorpick{align-items:center;gap:6px;min-width:0;display:flex}.season-page .colorpick select{border:1px solid var(--line-strong);background:var(--surface);border-radius:7px;flex:1;min-width:0;padding:6px;font-size:13px}.season-page .mini{white-space:nowrap;cursor:pointer;align-items:center;gap:5px;font-size:13px;display:inline-flex}.season-page .mini input{accent-color:var(--accent);width:16px;height:16px;margin:0}.season-page .arrows{justify-content:flex-end;gap:6px;display:inline-flex}.season-page .icon2{width:30px;height:30px;padding:0;font-size:14px}.season-page .btn.rm{white-space:normal;text-align:center;line-height:1.15}.season-page .btn.danger.armed{background:var(--warn);color:#fff;padding-inline:8px;font-size:13px}.season-page .eadd{gap:8px;margin-top:4px;display:flex}@media (width<=820px){.season-page .detail{grid-template-columns:1fr}}@media (width<=700px){.season-page .ehead{display:none}.season-page .mcap{display:block}.season-page .erow{padding:10px 0}.season-page .erow.skr{grid-template-columns:1fr 1fr 1fr;align-items:start}.season-page .erow.skr .colorpick{min-height:35px}.season-page .erow.skr>:first-child{grid-column:1/-1}.season-page .erow.skr .ecell:nth-child(3){grid-column:2/-1}.season-page .erow.skr .n{text-align:left;align-self:end;padding-bottom:9px}.season-page .erow.skr .rm{align-self:end}.season-page .erow.posr{grid-template-columns:auto 1fr;column-gap:18px}.season-page .erow.posr .arrows{justify-self:end}.season-page .icon2{width:36px;height:36px}.season-page .erow.posr>:first-child{grid-column:1/-1}.season-page .erow.posr .n{text-align:left}}@media (width<=560px){.season-page .fs{grid-template-columns:1fr}.season-page .dlist li{grid-template-columns:96px 1fr auto}}
