:root{--ground: #f3f7ff;--ground-2: #e8effc;--surface: #ffffff;--surface-2: #f4f8ff;--ink: #0c1428;--ink-2: #42527a;--ink-3: #7787ac;--rule: #d6e1f5;--rule-soft: #e8effb;--brand: #1b4fd9;--brand-deep: #123aa8;--brand-wash: #e4ebff;--on-brand: #ffffff;--gap: #e07c00;--gap-wash: #fff3e0;--ok: #069668;--ok-wash: #e6f7f1;--away: #6b4fcf;--away-wash: #efeafd;--p-default: #7787ac;--on-person: #ffffff;--shadow: 0 1px 2px rgb(12 20 40 / .05), 0 10px 30px -14px rgb(18 58 168 / .22);--shadow-lift: 0 2px 6px rgb(12 20 40 / .07), 0 26px 54px -26px rgb(18 58 168 / .34);--sans: ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", system-ui, sans-serif;--mono: ui-monospace, "SF Mono", SFMono-Regular, "Cascadia Mono", "Roboto Mono", Menlo, monospace}@media(prefers-color-scheme:dark){:root:not([data-theme=light]){--ground: #0c0f16;--ground-2: #11151e;--surface: #161b26;--surface-2: #1c2230;--ink: #eef1f7;--ink-2: #a6b0c6;--ink-3: #6f7b94;--rule: #2a3244;--rule-soft: #212837;--brand: #5b8cff;--brand-deep: #93b4ff;--brand-wash: #16203a;--on-brand: #060c1a;--gap: #ffa92e;--gap-wash: #2c1f0b;--ok: #2bd79b;--ok-wash: #0d2a22;--away: #a78bfa;--away-wash: #1e1836;--p-default: #6f7b94;--on-person: #0c0f16;--shadow: 0 1px 2px rgb(0 0 0 / .5), 0 10px 30px -14px rgb(0 0 0 / .7);--shadow-lift: 0 2px 6px rgb(0 0 0 / .55), 0 26px 54px -26px rgb(0 0 0 / .8)}}:root[data-theme=dark]{--ground: #0c0f16;--ground-2: #11151e;--surface: #161b26;--surface-2: #1c2230;--ink: #eef1f7;--ink-2: #a6b0c6;--ink-3: #6f7b94;--rule: #2a3244;--rule-soft: #212837;--brand: #5b8cff;--brand-deep: #93b4ff;--brand-wash: #16203a;--on-brand: #060c1a;--gap: #ffa92e;--gap-wash: #2c1f0b;--ok: #2bd79b;--ok-wash: #0d2a22;--away: #a78bfa;--away-wash: #1e1836;--p-default: #6f7b94;--on-person: #0c0f16;--shadow: 0 1px 2px rgb(0 0 0 / .5), 0 10px 30px -14px rgb(0 0 0 / .7);--shadow-lift: 0 2px 6px rgb(0 0 0 / .55), 0 26px 54px -26px rgb(0 0 0 / .8)}*{box-sizing:border-box}html,body,#root{min-height:100%}body{margin:0;background:var(--ground);color:var(--ink);font-family:var(--sans);font-size:16px;line-height:1.55;-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent}h1,h2,h3{margin:0;font-weight:800;letter-spacing:-.028em;line-height:1.1;text-wrap:balance}p{margin:0}button{font-family:inherit}:focus-visible{outline:2px solid var(--brand);outline-offset:3px;border-radius:6px}@media(prefers-reduced-motion:reduce){*{animation-duration:.001ms!important;transition-duration:.001ms!important}}.safe-b{padding-bottom:max(.75rem,env(safe-area-inset-bottom))}.safe-t{padding-top:max(.75rem,env(safe-area-inset-top))}.shell{max-width:900px;margin:0 auto;padding:0 16px 108px}.topbar{display:flex;align-items:center;gap:12px;padding:18px 0 10px}.topbar .title{font-size:15px;font-weight:800;letter-spacing:-.02em}.topbar .spacer{margin-left:auto}.iconbtn{border:1px solid var(--rule);background:var(--surface);color:var(--ink-2);border-radius:10px;width:36px;height:36px;display:grid;place-items:center;cursor:pointer;font-size:15px;line-height:1}.iconbtn:hover{border-color:var(--ink-3);color:var(--ink)}.daterow{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap;margin:6px 0 2px}.daterow h1{font-size:clamp(26px,6vw,34px)}.daterow .sub{font-family:var(--mono);font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-3);margin-top:4px}.pill{display:inline-flex;align-items:center;gap:8px;padding:8px 15px;border-radius:999px;font-size:13.5px;font-weight:700;letter-spacing:-.005em;color:#fff;background:var(--gap)}.pill.clear{background:var(--ok)}.pill .dot{width:7px;height:7px;border-radius:999px;background:currentColor}.av{width:24px;height:24px;border-radius:999px;flex:none;display:grid;place-items:center;color:var(--on-person);background:var(--p-default);font-family:var(--mono);font-size:9.5px;font-weight:700;letter-spacing:-.02em}.av.lg{width:30px;height:30px;font-size:11px}.av.open{background:transparent;color:var(--ink-3);border:1.5px dashed var(--rule)}.lanes{display:grid;grid-template-columns:1fr;gap:14px;margin-top:18px}@media(min-width:720px){.lanes{grid-template-columns:1fr 1fr}}.lane{border:1px solid var(--rule);border-radius:15px;background:var(--surface);overflow:hidden}.lane-head{display:flex;align-items:center;gap:9px;padding:12px 15px;background:var(--surface-2);border-bottom:1px solid var(--rule-soft)}.lane-head .name{font-weight:750;font-size:14.5px;letter-spacing:-.012em}.lane-head .count{margin-left:auto;font-family:var(--mono);font-size:11px;color:var(--ink-3)}.lane-body{padding:13px;display:flex;flex-direction:column;gap:11px}.lane-empty{padding:22px 15px;text-align:center;color:var(--ink-3);font-size:13.5px}.ev{border:1px solid var(--rule-soft);border-left:4px solid var(--p-default);border-radius:12px;padding:13px 14px;display:flex;flex-direction:column;gap:8px;background:var(--surface)}.ev-top{display:flex;align-items:baseline;gap:10px}.ev-time{font-family:var(--mono);font-size:12.5px;font-variant-numeric:tabular-nums;color:var(--ink-2);font-weight:600;flex:none}.ev-title{font-weight:700;font-size:14.5px;letter-spacing:-.015em}.ev-kind{margin-left:auto;font-family:var(--mono);font-size:9.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-3);flex:none}.ev-loc{font-size:12.5px;color:var(--ink-3);margin-top:-3px}.legs{display:flex;flex-direction:column;gap:6px;padding-top:2px}.leg{display:flex;align-items:center;gap:9px;font-size:13px}.leg .dir{font-family:var(--mono);font-size:9.5px;letter-spacing:.11em;text-transform:uppercase;color:var(--ink-3);width:38px;flex:none}.leg .who{display:inline-flex;align-items:center;gap:7px;font-weight:600}.leg .state{margin-left:auto;font-family:var(--mono);font-size:9.5px;letter-spacing:.09em;text-transform:uppercase;font-weight:600;color:var(--ok)}.leg.open .who{color:var(--gap);font-weight:750}.leg.open .state{color:var(--gap)}.leg button.claim{margin-left:auto;border:0;background:var(--gap);color:#fff;border-radius:8px;padding:5px 11px;font-size:11.5px;font-weight:700;cursor:pointer}.leg button.claim:hover{filter:brightness(1.07)}.leg button.claim:disabled{opacity:.55;cursor:default}.rail{display:flex;gap:3px;height:5px}.rail i{flex:1;height:5px;border-radius:3px;display:block;background:var(--rule)}.rail i.covered{background:var(--ok)}.rail i.gap{background:repeating-linear-gradient(90deg,var(--gap) 0 5px,transparent 5px 10px)}.week{display:flex;flex-direction:column;gap:10px;margin-top:18px}.day{border:1px solid var(--rule);border-radius:14px;background:var(--surface);overflow:hidden}.day-head{display:flex;align-items:center;gap:12px;padding:11px 15px;background:var(--surface-2);border-bottom:1px solid var(--rule-soft)}.day-head .dw{font-family:var(--mono);font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-3)}.day-head .dn{font-size:16px;font-weight:800;letter-spacing:-.02em}.day-head .rail{margin-left:auto;width:90px}.day-body{padding:11px 15px;display:flex;flex-direction:column;gap:8px}.day-empty{padding:12px 15px;color:var(--ink-3);font-size:13px}.wk-row{display:flex;align-items:center;gap:10px;font-size:13.5px}.wk-row .t{font-family:var(--mono);font-size:11.5px;font-variant-numeric:tabular-nums;color:var(--ink-3);width:52px;flex:none}.wk-row .n{font-weight:620;letter-spacing:-.01em}.wk-row .flag{margin-left:auto;font-family:var(--mono);font-size:9.5px;letter-spacing:.09em;text-transform:uppercase;color:var(--gap);font-weight:700;flex:none}.nav{position:fixed;left:0;right:0;bottom:0;z-index:40;background:color-mix(in srgb,var(--ground) 90%,transparent);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-top:1px solid var(--rule)}.nav-in{max-width:900px;margin:0 auto;display:flex;gap:6px;padding:8px 16px}.nav button{flex:1;border:0;background:transparent;color:var(--ink-3);border-radius:11px;padding:9px 6px;font-size:12.5px;font-weight:650;cursor:pointer;display:flex;flex-direction:column;align-items:center;gap:3px}.nav button .g{font-size:16px;line-height:1}.nav button[aria-current=page]{color:var(--brand);background:var(--brand-wash)}.login{min-height:100dvh;display:grid;place-items:center;padding:24px}.login-card{width:100%;max-width:380px;text-align:center;display:flex;flex-direction:column;gap:18px;align-items:center}.login h1{font-size:clamp(38px,11vw,54px);letter-spacing:-.042em}.login h1 .dot{color:var(--brand)}.login .lede{color:var(--ink-2);font-size:16px;max-width:28ch}.login .fine{font-size:12.5px;color:var(--ink-3)}.card{border:1px solid var(--rule);border-radius:14px;background:var(--surface);padding:18px}.err{border-color:var(--gap);background:var(--gap-wash);color:var(--gap);font-size:13.5px;font-weight:600}.skel{border-radius:12px;background:var(--rule-soft);animation:pulse 1.5s ease-in-out infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.55}}.empty{text-align:center;color:var(--ink-3);padding:40px 16px;font-size:14px}.sheet-scrim{position:fixed;top:0;right:0;bottom:0;left:0;z-index:60;background:#060a1480;display:flex;align-items:flex-end;justify-content:center;animation:fade .16s ease both}@keyframes fade{0%{opacity:0}}.sheet{width:100%;max-width:560px;max-height:92dvh;display:flex;flex-direction:column;background:var(--ground);border:1px solid var(--rule);border-bottom:0;border-radius:20px 20px 0 0;box-shadow:var(--shadow-lift);animation:rise .2s cubic-bezier(.2,.8,.3,1) both}@keyframes rise{0%{transform:translateY(14px);opacity:0}}@media(min-width:640px){.sheet-scrim{align-items:center}.sheet{border-radius:18px;border-bottom:1px solid var(--rule)}}.sheet-head{display:flex;align-items:center;gap:12px;padding:16px 18px;border-bottom:1px solid var(--rule)}.sheet-head h2{font-size:19px;flex:1}.sheet-body{padding:16px 18px;display:flex;flex-direction:column;gap:14px;overflow-y:auto}.sheet-foot{display:flex;gap:10px;justify-content:flex-end;padding:14px 18px;border-top:1px solid var(--rule)}.field{display:flex;flex-direction:column;gap:6px;min-width:0}.field>span{font-family:var(--mono);font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-3);font-weight:600}.field input,.field select{font-family:inherit;font-size:15px;color:var(--ink);background:var(--surface);border:1.5px solid var(--rule);border-radius:10px;padding:10px 12px;width:100%}.field input:focus,.field select:focus{border-color:var(--brand);outline:none}.field-row{display:grid;grid-template-columns:1.3fr 1fr 1fr;gap:10px}.chips{display:flex;flex-wrap:wrap;gap:8px}.chip{display:inline-flex;align-items:center;gap:8px;border:1.5px solid var(--rule);background:var(--surface);color:var(--ink);border-radius:999px;padding:5px 13px 5px 5px;font-size:13.5px;font-weight:620;cursor:pointer}.chip.on{background:var(--brand-wash);border-color:var(--brand)}.toggle{display:flex;align-items:flex-start;gap:11px;cursor:pointer;font-size:14px;font-weight:620}.toggle input{margin-top:3px;width:18px;height:18px;accent-color:var(--brand)}.toggle em{display:block;font-style:normal;font-weight:400;font-size:12.5px;color:var(--ink-3);margin-top:2px}.btn{border:1.5px solid var(--rule);background:var(--surface);color:var(--ink);border-radius:10px;padding:10px 16px;font-size:14px;font-weight:650;cursor:pointer}.btn:hover{border-color:var(--ink-3)}.btn.primary{background:var(--brand);border-color:var(--brand);color:var(--on-brand)}.btn.primary:disabled{opacity:.6;cursor:default}.ev-title.as-link{border:0;background:none;padding:0;color:inherit;font:inherit;font-weight:700;letter-spacing:-.015em;text-align:left;cursor:pointer}.ev-title.as-link:hover{text-decoration:underline;text-underline-offset:3px}.btn.danger{border-color:var(--gap);color:var(--gap);background:transparent}.btn.danger:hover{background:var(--gap-wash)}.leg{display:flex;flex-direction:column;gap:7px}.leg-main{display:flex;align-items:center;gap:9px}.leg .who.as-link{border:0;background:none;padding:0;color:inherit;font:inherit;font-weight:600;cursor:pointer;display:inline-flex;align-items:center;gap:7px}.leg.open .who.as-link{color:var(--gap);font-weight:750}.leg .who.as-link .caret{font-size:9px;color:var(--ink-3)}.leg .who.as-link:hover{text-decoration:underline;text-underline-offset:3px}.leg .drop{margin-left:auto;border:1px solid var(--rule);background:var(--surface);color:var(--ink-3);border-radius:8px;padding:5px 11px;font-size:11.5px;font-weight:650;cursor:pointer}.leg .drop:hover{border-color:var(--gap);color:var(--gap)}.leg .picker{display:flex;flex-wrap:wrap;gap:6px;padding:3px 0 4px 47px}.leg .pick{display:inline-flex;align-items:center;gap:6px;border:1.5px solid var(--rule);background:var(--surface);color:var(--ink);border-radius:999px;padding:4px 11px 4px 4px;font-size:12.5px;font-weight:620;cursor:pointer}.leg .pick:hover{border-color:var(--ink-3)}.leg .pick.on{background:var(--brand-wash);border-color:var(--brand)}.leg .pick.clear{padding:4px 12px;color:var(--ink-3);border-style:dashed}.person{display:flex;flex-direction:column;gap:10px;padding:12px 13px;border:1px solid var(--rule-soft);border-radius:12px;background:var(--surface)}.person-top{display:flex;align-items:center;gap:11px;flex-wrap:wrap}.person-id{display:flex;flex-direction:column;min-width:0}.person-id .pn{font-size:15px;font-weight:720;letter-spacing:-.015em}.person-id .ps{font-size:12.5px;color:var(--ink-3)}.person-actions{margin-left:auto;display:flex;gap:7px}.btn.sm{padding:6px 12px;font-size:12.5px;border-radius:9px}.fresh-link{display:flex;flex-direction:column;gap:9px;padding:12px;border:1px solid var(--brand);background:var(--brand-wash);border-radius:11px}.fl-note{font-size:12.5px;font-weight:650;color:var(--brand-deep)}.fl-url{font-family:var(--mono);font-size:11.5px;word-break:break-all;background:var(--surface);border:1px solid var(--rule);border-radius:8px;padding:9px 10px;color:var(--ink-2)}.fl-actions{display:flex;gap:8px}.fine{font-size:12.5px;color:var(--ink-3);line-height:1.55}.pn.as-link{border:0;background:none;padding:0;color:inherit;font:inherit;font-size:15px;font-weight:720;letter-spacing:-.015em;text-align:left;cursor:pointer}.pn.as-link:hover{text-decoration:underline;text-underline-offset:3px}.conflicts{display:flex;flex-direction:column;gap:8px;margin-top:16px}.conflicts .conflict{display:flex;gap:10px;align-items:flex-start;background:var(--gap-wash);border:1px solid var(--gap);border-radius:12px;padding:12px 14px;font-size:13.5px;line-height:1.5;color:var(--ink)}.conflicts .conflict-mark{color:var(--gap);font-size:12px;padding-top:2px;flex:none}
