:root{--navy:#0c1226;--navy-2:#171e38;--accent:#b32b47;--accent-2:#932850;--accent-grad:linear-gradient(135deg,#b32b47,#932850);--accent-line:linear-gradient(90deg,#b32b47,#4b3f96,#1f8f9e);--accent-on-dark:#f0708d;--accent-ink:#fff;--bg:#f5f6fa;--card:#fff;--ink:#0e1730;--mute:#566079;--line:#e2e5ee;--line-strong:#cdd2e0;--ok:#17794f;--ok-bg:#e3f4ec;--warn-bg:#fff0cc;--warn-ink:#8a5a00;--bad:#b3362f;--bad-bg:#fbe6e4;--radius:12px;--shadow:0 1px 2px rgba(12,18,38,.05);--side:248px;--hover:#fbeff2;--tint:#fae3e9;--tint-ink:#8f1f3c;--ln:#0f2350;--lr:#d42f3b;color-scheme:light}[data-theme=dark]{color-scheme:dark;--navy:#070a14;--navy-2:#141a2e;--ink:#e8ebf5;--mute:#98a1bb;--line:#252c45;--line-strong:#343d5f;--ok:#4cc68f;--ok-bg:#12392c;--warn-bg:#3d2f08;--warn-ink:#f7c65a;--bad:#f08a82;--bad-bg:#40211f;--shadow:none;--hover:#1d2440;--tint:#3a1c2b;--tint-ink:#f08aa3;--card:#151a2c;--bg:#090d19;--ln:#f3f6ff;--lr:#ee4a58}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{margin:0;background:var(--bg);color:var(--ink);font:15px/1.5 system-ui,-apple-system,Segoe UI,Roboto,sans-serif;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;-webkit-font-smoothing:antialiased}a{color:inherit}p{margin:0 0 10px}code{font-size:.92em;background:var(--bg);border:1px solid var(--line);border-radius:6px;padding:1px 6px}.app{display:grid;grid-template-columns:var(--side) minmax(0,1fr);min-height:100vh}.navtoggle{position:absolute;opacity:0;pointer-events:none}.bottombar,.mobbar,.scrim{display:none}.content{min-width:0}main{max-width:1040px;margin:0 auto;padding:32px 32px 64px}.side{position:-webkit-sticky;position:sticky;top:0;height:100vh;overflow-y:auto;background:var(--navy);color:#c9d2e3;padding:18px 12px 12px;display:flex;flex-direction:column;gap:4px}.side nav{flex:1 1;padding-top:10px}.brand{text-decoration:none;padding:4px 10px;display:inline-flex}.logo-badge{background:#fff;border-radius:8px;padding:5px 10px;display:flex}.logo-badge img{max-height:30px;max-width:150px;object-fit:contain}.biz{padding:2px 10px 8px;font-size:13px;color:#8f9cb6;overflow-wrap:anywhere}.navgroup{margin-top:14px}.navlabel{padding:0 10px 4px;font-size:12px;color:#7f8ca8;letter-spacing:.02em}.navlink{position:relative;display:flex;align-items:center;gap:11px;padding:8px 10px;border-radius:8px;text-decoration:none;color:#c9d2e3;font-size:14.5px}.navlink.on,.navlink:hover{background:var(--navy-2);color:#fff}.navlink.on{font-weight:600}.navlink.on:before{content:"";position:absolute;left:-12px;top:7px;bottom:7px;width:4px;border-radius:0 4px 4px 0;background:var(--accent)}.navlink svg{flex:none;opacity:.85}.navlink.on svg{opacity:1;color:var(--accent-on-dark)}.who{display:flex;align-items:center;gap:10px;padding:12px 8px 4px;border-top:1px solid #22314f;margin-top:10px}.avatar,.mobwho{width:32px;height:32px;border-radius:50%;display:grid;place-items:center;flex:none;background:var(--accent-grad);color:#fff;font-weight:700;font-size:12px}.whoname{flex:1 1;min-width:0;font-size:14px;color:#fff;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}button.ghost{background:transparent;border:0;color:#9aa6bb;padding:6px;min-height:0;border-radius:8px;display:grid}button.ghost:hover{background:var(--navy-2);color:#fff}h1{font-size:28px;line-height:1.15;margin:0 0 20px;letter-spacing:-.025em;font-weight:750}h2{font-size:17px;margin:28px 0 10px;letter-spacing:-.01em;font-weight:700}h3{font-size:15px;margin:18px 0 6px;font-weight:650}.mute{color:var(--mute);font-size:13px}.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:16px;margin-bottom:10px;box-shadow:var(--shadow)}.row{display:flex;gap:10px 14px;flex-wrap:wrap;align-items:center;justify-content:space-between}details.card>summary{cursor:pointer;font-weight:600;list-style-position:inside}details.card[open]>summary{margin-bottom:10px}.card.clock{display:flex;align-items:center;justify-content:space-between;gap:12px;border-left:4px solid var(--line-strong)}.card.clock.live{border-left-color:var(--ok)}.chip{display:inline-block;border-radius:999px;padding:2px 10px;font-size:12px;font-weight:600;background:var(--line);color:var(--ink);line-height:1.5}.chip.warn{background:var(--warn-bg);color:#8a5a00}.chip.off{background:var(--bad-bg);color:var(--bad)}[data-theme=dark] .chip.warn{color:#f7c65a}.notice{padding:11px 14px;border-radius:10px;margin-bottom:14px;background:var(--card);border:1px solid var(--line);border-left:4px solid var(--accent)}.notice.error{border-color:var(--bad);border-left-color:var(--bad);background:var(--bad-bg);color:var(--bad)}.notice.ok{border-color:var(--ok);border-left-color:var(--ok);background:var(--ok-bg)}.attention{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));grid-gap:10px;gap:10px;margin-bottom:12px}.attn{display:flex;align-items:center;gap:12px;padding:14px;border-radius:var(--radius);text-decoration:none;background:var(--warn-bg);color:var(--ink);border:1px solid transparent}.attn svg{color:#8a5a00;flex:none}.attn span{display:flex;flex-direction:column;line-height:1.25}.attn b{font-size:16px}.attn small{color:var(--mute);font-size:13px}.tiles{display:grid;grid-template-columns:repeat(auto-fill,minmax(168px,1fr));grid-gap:10px;gap:10px}.tile{display:flex;align-items:center;gap:12px;padding:14px;border-radius:var(--radius);text-decoration:none;font-weight:600;background:var(--card);border:1px solid var(--line);box-shadow:var(--shadow)}.tile:hover{border-color:var(--line-strong)}.tile svg{flex:none}.tile svg,label{color:var(--mute)}label{display:block;font-size:13px;font-weight:500;margin:12px 0 4px}input,select,textarea{width:100%;font:inherit;padding:9px 11px;min-height:42px;border-radius:9px;border:1px solid var(--line-strong);background:var(--card);color:var(--ink)}textarea{min-height:0}input::placeholder,textarea::placeholder{color:#8b96a9}input[type=checkbox],input[type=radio]{width:auto;min-height:0;accent-color:var(--accent)}.btn,button{font:inherit;font-weight:500;cursor:pointer;border:1px solid var(--line-strong);background:var(--card);color:var(--ink);border-radius:9px;padding:8px 16px;min-height:42px;text-decoration:none;display:inline-flex;align-items:center;justify-content:center;gap:6px}.btn:hover,button:hover{border-color:var(--ink)}.btn.primary,button.primary{background:var(--accent-grad);color:#fff;border-color:var(--accent-2);font-weight:650}.btn.primary:hover,button.primary:hover{filter:brightness(1.08);border-color:var(--accent-2)}button.danger{color:var(--bad);border-color:var(--bad);background:transparent}button:disabled{opacity:.55;cursor:not-allowed}:focus-visible{outline:3px solid var(--accent);outline-offset:2px}.toolbar{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin-bottom:14px}.toolbar .grow{flex:1 1}.toolbar input{min-width:0}.grid2{display:grid;grid-template-columns:1fr 1fr;grid-gap:0 14px;gap:0 14px}.checks{display:flex;flex-wrap:wrap;gap:10px}.checks label{display:flex;align-items:center;gap:6px;margin:0;color:var(--ink)}.subnav{display:inline-flex;gap:2px;padding:3px;border-radius:10px;background:var(--line);margin-bottom:16px;flex-wrap:wrap}.subnav a{padding:7px 14px;border-radius:8px;text-decoration:none;font-size:14px;color:var(--mute)}.subnav a.on{background:var(--card);color:var(--ink);font-weight:600;box-shadow:var(--shadow)}nav.tabs{display:flex;gap:8px;flex-wrap:wrap;margin:12px 0}nav.tabs a,nav.tabs span{padding:8px 12px;border-radius:8px;border:1px solid var(--line);background:var(--card);text-decoration:none}nav.tabs a.on{background:var(--navy);color:#fff;border-color:var(--navy)}.auth{max-width:420px;margin:8vh auto 40px;padding:0 16px}.auth h1{font-size:26px}.cal{display:grid;grid-gap:1px;gap:1px;background:var(--line);border:1px solid var(--line);border-radius:var(--radius);overflow-x:auto;font-size:13px}.cal>div{background:var(--card);min-width:0}.cal .head{padding:8px 6px;font-weight:600;text-align:center;position:-webkit-sticky;position:sticky;top:0}.cal .head.away{background:repeating-linear-gradient(45deg,var(--line),var(--line) 6px,transparent 6px,transparent 12px);color:var(--mute)}.cal .hour{padding:2px 6px;color:var(--mute);text-align:right}.cal .col{position:relative}.cal .col.off{background:repeating-linear-gradient(45deg,var(--line),var(--line) 6px,var(--card) 6px,var(--card) 12px)}.cal .shade{position:absolute;left:0;right:0;background:var(--line);opacity:.55;pointer-events:none}.cal .job{position:absolute;left:2px;right:2px;background:var(--navy);color:#fff;border-radius:8px;padding:3px 6px;overflow:hidden;text-decoration:none;border-left:4px solid var(--accent)}.cal .job.emergency{background:var(--bad);border-left-color:#fff;color:#fff}.cal .job.done{opacity:.6}.cal .awaylabel{position:absolute;inset:4px;font-size:12px;color:var(--mute);text-align:center}.monthgrid{display:grid;grid-template-columns:repeat(7,1fr);grid-gap:1px;gap:1px;background:var(--line);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden}.monthgrid>div{background:var(--card);min-height:84px;padding:5px;font-size:12px}.monthgrid .dim{color:var(--mute);background:var(--bg)}.monthgrid .today{outline:2px solid var(--accent);outline-offset:-2px}.monthgrid a{display:block;text-decoration:none;margin-top:2px;padding:1px 5px;border-radius:5px;background:var(--navy);color:#fff;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.monthgrid a.emergency{background:var(--bad)}.slot{display:inline-block;padding:2px 9px;border-radius:999px;background:var(--line);margin:2px 4px 2px 0;font-size:12px}.slot.busy{background:var(--navy);color:#fff}.slot.away{background:var(--bad);color:#fff}table.sched{width:100%;border-collapse:collapse}table.sched td,table.sched th{padding:6px 4px;text-align:left;font-weight:400;border-bottom:1px solid var(--line)}table.sched th{color:var(--mute);font-size:13px;font-weight:500}table.sched input[type=checkbox],table.sched input[type=time]{width:auto}@media (max-width:860px){.app{display:block}.side{position:fixed;z-index:50;inset:0 auto 0 0;width:min(300px,86vw);height:100dvh;transform:translateX(-102%);transition:transform .2s ease;box-shadow:8px 0 32px rgba(0,0,0,.35)}.navtoggle:checked~.side{transform:none}.navtoggle:checked~.scrim{display:block;position:fixed;inset:0;z-index:40;background:rgba(8,14,28,.55)}.navlink.on:before{left:-12px}.mobbar{display:flex;align-items:center;justify-content:space-between;gap:10px;position:-webkit-sticky;position:sticky;top:0;z-index:30;background:var(--navy);padding:8px 12px}.menubtn{margin:0;color:#fff;padding:8px;border-radius:8px;display:grid;cursor:pointer}.mobbar .brand{padding:0}.mobwho{width:30px;height:30px}main{padding:18px 14px 96px}h1{font-size:24px;margin-bottom:14px}.bottombar{display:grid;grid-auto-flow:column;grid-auto-columns:1fr;position:fixed;z-index:30;left:0;right:0;bottom:0;background:var(--card);border-top:1px solid var(--line);padding:4px 4px calc(4px + env(safe-area-inset-bottom))}.bottombar .morebtn,.bottombar a{display:flex;flex-direction:column;align-items:center;gap:2px;padding:6px 2px;margin:0;border-radius:8px;text-decoration:none;font-size:11px;color:var(--mute);cursor:pointer;text-align:center;line-height:1.15;min-width:0}.bottombar span{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.bottombar a.on{color:var(--ink);font-weight:650}.bottombar a.on svg{color:var(--accent)}.grid2{grid-template-columns:1fr}.card{padding:14px}.monthgrid>div{min-height:64px}}@media (prefers-reduced-motion:reduce){.side{transition:none}}body{background:linear-gradient(180deg,color-mix(in srgb,var(--accent) 7%,var(--bg)) 0,var(--bg) 300px) no-repeat,var(--bg)}.card,.tile{box-shadow:0 1px 2px rgba(15,27,51,.05),0 8px 20px -14px rgba(15,27,51,.25)}[data-theme=dark] .card,[data-theme=dark] .tile{box-shadow:none}h1{font-weight:800;letter-spacing:-.03em}.attn,.btn,.navlink,.subnav a,.tile,button,nav.tabs a{transition:transform .14s ease,box-shadow .14s ease,background-color .14s ease,border-color .14s ease,color .14s ease}.btn:hover,button:hover:not(:disabled){transform:translateY(-2px);border-color:var(--accent);background:var(--hover);box-shadow:0 8px 16px -8px rgba(15,27,51,.35)}.btn:active,button:active:not(:disabled){transform:translateY(0);box-shadow:none}.btn.primary,button.primary{box-shadow:0 2px 0 rgba(75,18,40,.4)}.btn.primary:hover,button.primary:hover:not(:disabled){filter:brightness(1.1);box-shadow:0 10px 20px -8px rgba(179,43,71,.7)}button.danger:hover:not(:disabled){background:var(--bad-bg);border-color:var(--bad);box-shadow:0 8px 16px -8px rgba(179,54,47,.5)}button.ghost:hover{transform:none;box-shadow:none;border:0}.attn svg,.tile svg{box-sizing:content-box;padding:9px;border-radius:10px;background:var(--tint);color:var(--tint-ink)}.tile:hover{transform:translateY(-3px);border-color:var(--accent);box-shadow:0 14px 24px -14px rgba(15,27,51,.4)}.tile:hover svg{background:var(--accent);color:#fff}.attn{background:var(--card);border:1px solid var(--line);border-left:4px solid var(--accent)}.attn:hover{transform:translateY(-2px);border-color:var(--accent);box-shadow:0 12px 22px -14px rgba(179,43,71,.6)}.attn svg{background:var(--warn-bg);color:var(--warn-ink)}.navlink:hover{transform:translateX(3px)}.subnav a:hover:not(.on),nav.tabs a:hover:not(.on){color:var(--ink);background:var(--hover)}nav.tabs a:hover:not(.on){transform:translateY(-1px);border-color:var(--accent)}input:hover,select:hover,textarea:hover{border-color:var(--mute)}input:focus,select:focus,textarea:focus{border-color:var(--accent);outline:3px solid color-mix(in srgb,var(--accent) 40%,transparent);outline-offset:0}.themebtn{display:grid;place-items:center}.mobtools{display:inline-flex;align-items:center;gap:6px}.mobbar .themebtn{color:#c9d2e3;padding:7px}@media (prefers-reduced-motion:reduce){.attn,.btn,.navlink,.subnav a,.tile,button,nav.tabs a{transition:none}.attn:hover,.btn:hover,.navlink:hover,.tile:hover,button:hover:not(:disabled),nav.tabs a:hover{transform:none}}.navlink.locked{color:#7f8ca8}.navlink.locked:hover{transform:none;background:transparent;color:#c9d2e3}.navlink.locked svg{opacity:.55}.padlock{margin-left:auto;display:inline-flex;color:var(--accent)}.padlock svg{opacity:1!important}.bottombar a.locked{color:var(--mute);opacity:.75}.bottombar a.locked svg{color:var(--accent)}.subnav a.locked{color:var(--mute);display:inline-flex;align-items:center;gap:6px}.subnav a.locked svg{color:var(--accent)}.lockhero{display:flex;gap:20px;align-items:flex-start}.lockbadge{flex:none;width:64px;height:64px;border-radius:18px;display:grid;place-items:center;background:var(--navy);color:var(--accent)}.lockactions{display:flex;flex-wrap:wrap;gap:10px;margin-top:18px}.count{margin-left:auto;min-width:20px;height:20px;padding:0 6px;border-radius:99px;background:var(--accent);color:#fff;font-size:12px;font-weight:800;display:inline-grid;place-items:center;line-height:1;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.chip.ok{background:var(--ok-bg);color:var(--ok)}.sidehead{display:flex;align-items:center;justify-content:space-between;gap:8px}.bell{position:relative;display:grid;place-items:center;width:38px;height:38px;border-radius:10px;color:#c9d2e3;text-decoration:none;flex:none}.bell:hover{background:var(--navy-2);color:#fff}.bell .count{position:absolute;top:-3px;right:-4px;margin:0;box-shadow:0 0 0 2px var(--navy)}.mobtools .bell{width:36px;height:36px}.bottombar .morebtn,.bottombar a{position:relative}.bottombar .count{position:absolute;top:0;left:calc(50% + 4px);margin:0;min-width:18px;height:18px;font-size:11px;box-shadow:0 0 0 2px var(--card)}.helpbanner{flex-wrap:wrap;gap:4px 16px;padding:12px 32px;background:var(--accent);color:#fff;border-bottom:1px solid rgba(46,31,0,.2)}.helpbanner,.helpbanner a{display:flex;align-items:center}.helpbanner a{gap:10px;text-decoration:none;color:inherit;flex:1 1;min-width:0}.helpbanner a:hover u{text-decoration-thickness:2px}.helpbanner .more{flex:none;font-weight:700}.helpbanner svg{flex:none}@media (max-width:860px){.helpbanner{padding:10px 14px}}.presence{display:flex;align-items:center;justify-content:center;gap:6px;font-size:12px;font-weight:600;margin-top:2px}.presence i{width:9px;height:9px;border-radius:50%;background:var(--bad,#c0392b);flex:none}.presence i.on{background:var(--ok,#17794f);box-shadow:0 0 0 3px var(--ok-bg,#e3f4ec)}.lv{display:block;margin-top:2px;padding:1px 6px;border-radius:5px;font-size:12px;line-height:1.4;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.lv-ok{background:var(--ok,#17794f);color:#fff}.lv-abs{background:var(--bad-bg,#fde8e8);color:var(--bad,#a12626)}.lv-pend{background:var(--warn-bg,#fff4d6);color:#8a5a00;border:1px dashed #c98a00}p .lv{display:inline-block;margin:0}.logo{display:inline-flex;align-items:center;gap:10px;color:var(--ln);line-height:1}.logo-light{--ln:#f3f6ff;--lr:#ee4a58}.logo-mark{flex:none;display:block}.logo-name{font-weight:800;letter-spacing:.02em;font-size:20px}.logo-sub{font-weight:300;letter-spacing:.32em;font-size:14px;margin-left:-2px;opacity:.9}.logo-sub-long{letter-spacing:.16em;font-size:12px}.logo-stack{flex-direction:column;gap:6px}.logo-stack .logo-name{font-size:30px;letter-spacing:.03em}.logo-one{display:flex;align-items:center;gap:10px;font-weight:300;letter-spacing:.5em;font-size:14px}.logo-one i{display:block;width:28px;height:2px;background:var(--lr);border-radius:2px}.accentbar{height:3px;border-radius:3px;background:var(--accent-line)}