:root{--navy:#0f1b33;--navy-2:#182744;--amber:#f5a300;--amber-ink:#2e1f00;--bg:#f4f6f9;--card:#fff;--ink:#0f1b33;--mute:#5a6678;--line:#e3e7ee;--line-strong:#cdd4df;--ok:#17794f;--ok-bg:#e3f4ec;--warn-bg:#fff0cc;--bad:#b3362f;--bad-bg:#fbe6e4;--radius:12px;--shadow:0 1px 2px rgba(15,27,51,.05);--side:248px}@media (prefers-color-scheme:dark){:root{--bg:#0b1322;--card:#131e36;--ink:#e9edf6;--mute:#9aa6bb;--line:#25324f;--line-strong:#34436a;--ok:#4cc68f;--ok-bg:#12392c;--warn-bg:#3d2f08;--bad:#f08a82;--bad-bg:#40211f;--shadow:none}}*{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}.wordmark{color:#fff;font-weight:800;font-size:21px;letter-spacing:-.03em}.wordmark span{color:var(--amber)}.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(--amber)}.navlink svg{flex:none;opacity:.85}.navlink.on svg{opacity:1;color:var(--amber)}.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(--amber);color:var(--amber-ink);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)}@media (prefers-color-scheme: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(--amber)}.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:hover{border-color:var(--amber)}.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(--amber)}.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(--amber);color:var(--amber-ink);border-color:var(--amber);font-weight:650}.btn.primary:hover,button.primary:hover{filter:brightness(.95);border-color:var(--amber)}button.danger{color:var(--bad);border-color:var(--bad);background:transparent}button:disabled{opacity:.55;cursor:not-allowed}:focus-visible{outline:3px solid var(--amber);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(--amber)}.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(--amber);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(--amber)}.grid2{grid-template-columns:1fr}.card{padding:14px}.monthgrid>div{min-height:64px}}@media (prefers-reduced-motion:reduce){.side{transition:none}}