:root{--bg:#f3f5f7;--surface:#fff;--ink:#17212b;--muted:#5b6876;--line:#dde3e9;--accent:#0b6d78;--accent-ink:#fff;--accent-soft:#e0f0f1;--warn:#9a5600;--warn-soft:#fff2dc;--ok:#1b7443;--ok-soft:#e2f3e8;--hol:#b4261d;--chip-s:72%;--chip-l:89%;--chip-fg:24%;--blk-s:60%;--blk-l:96%;--font-body:"IBM Plex Sans", system-ui, -apple-system, "Segoe UI", sans-serif;--font-mono:"IBM Plex Mono", ui-monospace, Menlo, monospace;--r:10px;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}@media (prefers-color-scheme:dark){:root{--bg:#0e1317;--surface:#161f26;--ink:#e6ecf1;--muted:#98a5b1;--line:#283540;--accent:#56bcc6;--accent-ink:#06191c;--accent-soft:#13333a;--warn:#f2b45c;--warn-soft:#382811;--ok:#72d39c;--ok-soft:#14321f;--hol:#ff8f86;--chip-s:34%;--chip-l:29%;--chip-fg:88%;--blk-s:26%;--blk-l:17%;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}*{box-sizing:border-box}html,body{margin:0}body{background:var(--bg);color:var(--ink);font-family:var(--font-body);font-size:15px;line-height:1.45}button,select,input{font:inherit;color:inherit}button{cursor:pointer}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.num{font-family:var(--font-mono);font-variant-numeric:tabular-nums}.top{background:var(--surface);border-bottom:1px solid var(--line);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;padding:14px 20px;display:flex;position:relative}.brand{align-items:center;gap:10px;display:flex}.logo{background:var(--accent);width:34px;height:34px;color:var(--accent-ink);border-radius:9px;place-items:center;font-size:18px;font-weight:700;display:grid}.brand .name{letter-spacing:-.01em;font-size:17px;font-weight:700}.brand .sub{color:var(--muted);font-size:13px}.demo{color:var(--warn);background:var(--warn-soft);border-radius:99px;padding:4px 10px;font-size:12px;font-weight:600}.tabs{background:var(--surface);border-bottom:1px solid var(--line);gap:4px;padding:0 16px;display:flex;overflow-x:auto}.tabs button{color:var(--muted);white-space:nowrap;background:0 0;border:0;border-bottom:2px solid #0000;align-items:center;gap:6px;padding:12px;font-weight:600;display:flex}.tabs button.active{color:var(--accent);border-bottom-color:var(--accent)}.badge{background:var(--hol);color:#fff;border-radius:99px;place-items:center;min-width:20px;height:20px;padding:0 6px;font-size:12px;display:inline-grid}.badge:empty{display:none}main{max-width:1120px;margin:0 auto;padding:20px 16px 80px}.tab{display:none}.tab.active{display:block}h2{text-wrap:balance;margin:0 0 4px;font-size:20px}.lead{color:var(--muted);max-width:65ch;margin:0 0 16px}.bar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:14px;display:flex}.month{align-items:center;gap:8px;display:flex}.month h2{text-align:center;min-width:170px;margin:0}.iconbtn{border:1px solid var(--line);background:var(--surface);border-radius:8px;width:36px;height:36px;font-size:18px;line-height:1}.iconbtn:disabled{opacity:.35;cursor:default}.actions{flex-wrap:wrap;gap:8px;display:flex}.btn{border:1px solid var(--line);background:var(--surface);border-radius:8px;padding:8px 14px;font-weight:600}.btn.primary{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}.btn.small{padding:5px 10px;font-size:13px}.btn.ghost{background:0 0}.pill{border-radius:99px;align-items:center;gap:6px;padding:3px 9px;font-size:12px;font-weight:600;display:inline-flex}.pill.ok{background:var(--ok-soft);color:var(--ok)}.pill.warn{background:var(--warn-soft);color:var(--warn)}.pill.neutral{background:var(--accent-soft);color:var(--accent)}.status{color:var(--muted);flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:12px;font-size:13px;display:flex}.legend{flex-wrap:wrap;gap:6px;margin:0 0 12px;display:flex}.legend .chip{border:2px solid #0000}.legend .chip.on{border-color:hsl(var(--h) 60% 45%)}.legend-hint{color:var(--muted);margin:-4px 0 12px;font-size:12px}.chip{--h:200;background:hsl(var(--h) var(--chip-s) var(--chip-l));color:hsl(var(--h) 60% var(--chip-fg));white-space:nowrap;border-radius:6px;align-items:center;gap:4px;padding:3px 8px;font-size:12px;font-weight:600;display:inline-flex}button.chip{border:0}.dow,.grid{grid-template-columns:repeat(7,minmax(0,1fr));gap:4px;display:grid}.dow div{color:var(--muted);text-align:center;text-transform:uppercase;letter-spacing:.04em;padding:4px 0;font-size:12px;font-weight:600}.cell{border:1px solid var(--line);background:var(--surface);text-align:left;border-radius:8px;flex-direction:column;align-items:flex-start;gap:4px;min-height:92px;padding:6px;display:flex}.cell.empty{opacity:.4;background:0 0;border-style:dashed}.cell.blk{background:hsl(var(--h) var(--blk-s) var(--blk-l))}.cell .dn{font-family:var(--font-mono);color:var(--muted);font-size:13px}.cell .tag{text-transform:uppercase;letter-spacing:.04em;color:var(--accent);font-size:10px;font-weight:700}.cell .chip{text-overflow:ellipsis;max-width:100%;margin-top:auto;overflow:hidden}.cell .ini{display:none}.cell.dim{opacity:.28}.cell.conf{box-shadow:inset 0 0 0 2px var(--warn)}.cell:not(.empty):hover{border-color:var(--accent)}.tiles{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px;margin-bottom:18px;display:grid}.tile{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:14px}.tile .k{color:var(--muted);text-transform:uppercase;letter-spacing:.04em;font-size:12px;font-weight:600}.tile .v{margin-top:4px;font-size:24px;font-weight:700}.tile .d{color:var(--muted);font-size:13px}.tablewrap{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);overflow-x:auto}table{border-collapse:collapse;width:100%;min-width:640px}th,td{border-bottom:1px solid var(--line);text-align:left;padding:10px 12px;font-size:14px}th{color:var(--muted);text-transform:uppercase;letter-spacing:.04em;font-size:12px;font-weight:600}td.n,th.n{text-align:right}tr:last-child td{border-bottom:0}.barcell{align-items:center;gap:8px;min-width:150px;display:flex}.barcell .track{background:var(--line);border-radius:99px;flex:1;height:8px;overflow:hidden}.barcell .fill{background:var(--accent);border-radius:99px;height:100%}.foot{color:var(--muted);margin-top:10px;font-size:13px}.list{flex-direction:column;gap:10px;display:flex}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);flex-direction:column;gap:8px;padding:14px;display:flex}.card .row{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;display:flex}.card .meta,.meta{color:var(--muted);font-size:13px}.warnbox{background:var(--warn-soft);color:var(--warn);border-radius:8px;padding:8px 10px;font-size:13px;font-weight:500}.okbox{background:var(--ok-soft);color:var(--ok);border-radius:8px;padding:8px 10px;font-size:13px;font-weight:500}.done{opacity:.7}.section-title{color:var(--muted);text-transform:uppercase;letter-spacing:.05em;margin:22px 0 8px;font-size:13px;font-weight:700}.form{border-top:1px dashed var(--line);grid-template-columns:1fr 1fr auto;align-items:end;gap:8px;padding-top:10px;display:grid}.form label{color:var(--muted);flex-direction:column;gap:4px;font-size:12px;font-weight:600;display:flex}select,input[type=text],input[type=date],input[type=number],input[type=email]{border:1px solid var(--line);background:var(--bg);border-radius:8px;min-width:0;padding:8px 10px}.two{grid-template-columns:1.2fr 1fr;gap:16px;display:grid}.rule{border-bottom:1px solid var(--line);align-items:flex-start;gap:10px;padding:12px 0;display:flex}.rule:last-child{border-bottom:0}.rule .ck{background:var(--accent);width:18px;height:18px;color:var(--accent-ink);border-radius:4px;flex:none;place-items:center;margin-top:2px;font-size:12px;display:grid}.rule b{display:block}.rule span{color:var(--muted);font-size:13px}.member{border-bottom:1px solid var(--line);grid-template-columns:1fr auto;align-items:center;gap:10px;padding:8px 0;display:grid}.member:last-child{border-bottom:0}.member small{color:var(--muted);font-size:12px}.bell{border:1px solid var(--line);background:var(--surface);border-radius:8px;align-items:center;gap:6px;padding:6px 12px;font-weight:600;display:flex}.npanel{background:var(--surface);border:1px solid var(--line);z-index:15;border-radius:12px;width:min(360px,100vw - 32px);max-height:60vh;padding:8px;position:absolute;top:calc(100% + 6px);right:16px;overflow:auto;box-shadow:0 12px 32px #0000002e}.npanel[hidden]{display:none}.note{border-radius:8px;padding:10px;font-size:14px}.note.unread{background:var(--accent-soft)}.note small{color:var(--muted);margin-top:2px;font-size:12px;display:block}.form.perm{border-top:0;grid-template-columns:1.2fr 1fr 1fr auto;padding-top:0}.modal{z-index:20;background:#0a101473;place-items:center;padding:16px;display:grid;position:fixed;inset:0}.modal[hidden]{display:none}.sheet{background:var(--surface);border:1px solid var(--line);border-radius:14px;flex-direction:column;gap:12px;width:100%;max-width:440px;padding:20px;display:flex}.sheet h3{text-wrap:balance;margin:0;font-size:18px}.sheet .foot-actions{justify-content:flex-end;gap:8px;display:flex}.toast{background:var(--ink);color:var(--bg);opacity:0;pointer-events:none;z-index:30;border-radius:10px;max-width:min(92vw,520px);padding:10px 16px;font-size:14px;transition:opacity .2s,transform .2s;position:fixed;bottom:22px;left:50%;transform:translate(-50%)translateY(20px)}.toast.show{opacity:1;transform:translate(-50%)translateY(0)}@media (prefers-reduced-motion:reduce){.toast{transition:none}}@media (max-width:760px){.two,.form,.form.perm{grid-template-columns:1fr}}@media (max-width:600px){.top{padding:12px 16px}.cell{min-height:58px;padding:4px}.cell .full{display:none}.cell .ini{display:inline}.cell .chip{padding:2px 5px;font-size:11px}.cell .tag{font-size:9px}.month h2{min-width:130px;font-size:17px}.dow div{font-size:10px}}.center{place-items:center;min-height:100dvh;padding:24px;display:grid}.login{flex-direction:column;gap:14px;width:min(420px,100%);display:flex}.login h1{margin:0;font-size:22px}.field{color:var(--muted);flex-direction:column;gap:4px;font-size:12px;font-weight:600;display:flex}.field input,.field select,.field textarea{color:var(--ink);font-size:15px;font-weight:400}textarea{border:1px solid var(--line);background:var(--bg);font:inherit;color:inherit;width:100%;min-height:200px;font-family:var(--font-mono);border-radius:8px;padding:8px 10px;font-size:13px}input[type=email],input[type=number],input[type=text]{width:100%}.err{color:var(--hol);font-size:13px;font-weight:600}.btn:disabled{opacity:.5;cursor:default}.grid2{grid-template-columns:1fr 1fr;gap:8px;display:grid}.grid4{grid-template-columns:repeat(4,1fr);gap:8px;display:grid}@media (max-width:600px){.grid4{grid-template-columns:1fr 1fr}}.row-actions{flex-wrap:wrap;justify-content:flex-end;gap:8px;display:flex}.muted{color:var(--muted)}.small{font-size:13px}.spacer{height:12px}.rosterpick,.who-line{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.logout{color:var(--muted);background:0 0;border:0;padding:0;font-size:13px;text-decoration:underline}.cell .hol{color:var(--hol);font-size:11px;font-weight:600;line-height:1.2}.cell.h .dn{color:var(--hol);font-weight:600}@media (max-width:600px){.cell .hol{display:none}}
