:root{--paper: #f2f6f8;--ink: #1a2430;--muted: #556779;--accent: #28716a;--warn: #952d34;--ok: #2f744c;--navy: #38488a;--accent-soft: #dee9ea;--accent-fill: #28716a;--warn-soft: #e9e2e4;--ok-soft: #dee9e7;--navy-soft: #dfe5ed;--navy-fill: #38488a;--card: #fbfcfd;--cage: #e8edef;--nav: #e8edef;--nav-hover: #dfe3e6;--line: #cfd4d8;--boxline: #babfc4;--chip-ink: #ffffff;--sans: "Segoe UI", system-ui, sans-serif;--mono: Consolas, "Cascadia Mono", monospace;color-scheme:light}:root[data-mode=dark]{--paper: #111920;--ink: #e8f0f6;--muted: #8496a8;--accent: #54c0b5;--warn: #d1757b;--ok: #64b988;--navy: #8795c9;--accent-soft: #1a3035;--accent-fill: #2d5f5f;--warn-soft: #2c262d;--ok-soft: #1d2f2f;--navy-soft: #222a38;--navy-fill: #434d67;--card: #1a2631;--cage: #0f161c;--nav: #0e151b;--nav-hover: #1f2e3b;--line: #384047;--boxline: #4d555c;color-scheme:dark}*{box-sizing:border-box}html,body,#root{margin:0;height:100%}body{background:var(--paper);color:var(--ink);font:14px/1.45 var(--sans)}button,input,select,textarea{font:inherit;color:inherit}.num,.mono{font-family:var(--mono);font-size:12.5px;font-variant-numeric:tabular-nums}code{font-family:var(--mono);font-size:12.5px;background:var(--cage);padding:0 4px;border-radius:4px}:focus-visible{outline:2px solid var(--navy);outline-offset:2px}.app{display:grid;grid-template-columns:236px 1fr;min-height:100%}nav.side{background:var(--nav);border-right:2px solid var(--ink);padding:16px 12px;display:flex;flex-direction:column;gap:10px;position:sticky;top:0;height:100vh;overflow:auto}.brand{text-align:left;border:0;background:none;padding:0 6px;cursor:pointer;display:flex;flex-direction:column}.brand .title{font-weight:700;font-size:17px}.brand .sub{color:var(--muted);font-size:12px}.cyclepick{display:flex;flex-direction:column;gap:3px;padding:0 6px;font-size:12px}.cyclepick select{width:100%}ol.steps{list-style:none;margin:4px 0 0;padding:0;display:flex;flex-direction:column;gap:2px}ol.steps button{width:100%;display:flex;gap:10px;align-items:flex-start;text-align:left;border:0;background:transparent;padding:8px;border-radius:10px;cursor:pointer}ol.steps button:hover:not(:disabled){background:var(--nav-hover)}ol.steps button:disabled{opacity:.45;cursor:default}ol.steps button[aria-current=step]{background:var(--card);box-shadow:inset 0 0 0 2px var(--ink)}ol.steps .n{flex:none;width:24px;height:24px;border-radius:99px;border:2px solid var(--ink);display:grid;place-items:center;font:700 12px var(--mono);background:var(--card)}ol.steps button.done .n{background:var(--ok);border-color:var(--ok);color:var(--chip-ink)}ol.steps button[aria-current=step] .n{background:var(--accent);border-color:var(--accent);color:var(--chip-ink)}ol.steps .lbl{display:flex;flex-direction:column;font-weight:600}ol.steps .stepnote{font-weight:400;font-size:12px;color:var(--muted)}ol.steps .stepnote.warn{color:var(--warn);font-weight:600}.sidelinks{display:flex;flex-direction:column;gap:2px;border-top:1.5px solid var(--line);padding-top:8px}.sidelinks button{text-align:left;border:0;background:transparent;padding:7px 10px;border-radius:10px;cursor:pointer}.sidelinks button:hover:not(:disabled){background:var(--nav-hover)}.sidelinks button[aria-current=page]{background:var(--card);box-shadow:inset 0 0 0 2px var(--ink);font-weight:600}.sidelinks button:disabled{opacity:.45}nav.side .foot{margin-top:auto;padding:6px;color:var(--muted);font-size:11.5px}nav.side .foot p{margin:6px 0 0}main{padding:20px 26px 60px;min-width:0}.narrow{max-width:920px}h1{font-size:24px;font-weight:700;margin:0}h1.hero{font-size:30px;line-height:1.2;max-width:22ch}h2{font-size:16px;font-weight:650;margin:0 0 8px}h3{font-size:13px;font-weight:650;margin:14px 0 6px;text-transform:uppercase;letter-spacing:.03em;color:var(--muted)}h3.warnh{color:var(--warn)}.eyebrow{margin:0 0 4px;color:var(--accent);font-weight:650;font-size:12px;letter-spacing:.04em;text-transform:uppercase}.lead{margin:4px 0 0;max-width:72ch}.muted{color:var(--muted)}.hint{color:var(--muted);font-size:12px}.row{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.spacer{flex:1}.rule{border:0;border-top:2px solid var(--ink);margin:12px 0 16px}.stephead{margin-bottom:4px}.grid2{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:14px}.nextstep{display:flex;justify-content:flex-end;align-items:center;gap:14px;margin-top:22px;padding-top:14px;border-top:1.5px solid var(--line)}.btn{border:2px solid var(--ink);background:var(--card);border-radius:10px;padding:6px 14px;cursor:pointer;font-weight:600;text-decoration:none;display:inline-block;color:var(--ink)}.btn:hover:not(:disabled){background:var(--nav-hover)}.btn:disabled{opacity:.5;cursor:default}.btn.primary{background:var(--accent);border-color:var(--accent);color:var(--chip-ink)}.btn.primary:hover:not(:disabled){filter:brightness(1.08);background:var(--accent)}.btn.big{padding:10px 22px;font-size:15px}.btn.quiet{border-color:var(--boxline);font-weight:400}.btn.small{padding:3px 10px;font-size:13px}.linkish{border:0;background:none;padding:0;color:var(--navy);cursor:pointer;text-decoration:underline;font-size:inherit}input,select,textarea{background:var(--card);border:1.5px solid var(--boxline);border-radius:8px;padding:5px 8px}input[type=search]{min-width:240px}label{display:inline-flex;gap:6px;align-items:center}.field{display:flex;flex-direction:column;align-items:stretch;gap:3px;font-size:12.5px;color:var(--muted)}.field>input,.field>select{color:var(--ink);font-size:14px}.formgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:12px}.checks{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.pillcheck{border:1.5px solid var(--boxline);border-radius:99px;padding:3px 10px 3px 7px;background:var(--card);cursor:pointer}.pillcheck:has(input:checked){border-color:var(--accent);background:var(--accent-soft)}.seg{display:inline-flex;border:2px solid var(--ink);border-radius:10px;overflow:hidden}.seg button{border:0;background:var(--card);padding:5px 12px;cursor:pointer}.seg button+button{border-left:1.5px solid var(--line)}.seg button[aria-selected=true]{background:var(--ink);color:var(--paper);font-weight:600}.seg.big button{padding:7px 18px;font-size:15px}fieldset{border:0;padding:0;margin:14px 0 0}legend{font-weight:650;margin-bottom:6px;padding:0}details.more{margin-top:14px}details.more>summary{cursor:pointer;color:var(--navy);font-weight:600;padding:4px 0}details.more[open]>summary{margin-bottom:8px}.grp{margin:10px 0 4px;font-weight:650;font-size:13px}.card{background:var(--card);border:2px solid var(--ink);border-radius:12px;padding:14px 16px}.cage{border:1.5px dashed var(--boxline);border-radius:12px;padding:14px 16px;background:var(--cage)}.you{background:var(--accent-soft);border:2px solid var(--accent);border-radius:12px;padding:14px 16px}.you>h2{color:var(--accent)}.err{background:var(--warn-soft);color:var(--warn);border-radius:10px;padding:8px 12px;border:1.5px solid var(--warn)}.note{background:var(--ok-soft);color:var(--ok);border-radius:10px;padding:8px 12px;border:1.5px solid var(--ok)}.chip{display:inline-block;border-radius:99px;padding:0 9px;font-size:12px;border:1.5px solid var(--boxline);background:var(--card);cursor:default}button.chip{cursor:pointer}.chip.warn{color:var(--warn);border-color:var(--warn);background:var(--warn-soft)}.chip.ok{color:var(--ok);border-color:var(--ok);background:var(--ok-soft)}.chip.navy{color:var(--navy);border-color:var(--navy);background:var(--navy-soft)}.badge{font-size:10px;padding:0 4px;border-radius:4px;border:1px solid var(--boxline);margin-left:5px;color:var(--muted);font-weight:400}.badge.sen{color:var(--accent);border-color:var(--accent)}.welcome{max-width:860px;padding-top:10px}.welcome .hero{margin-bottom:10px}.welcome .lead{margin:0 0 14px;font-size:15px}.loading{color:var(--muted);padding:30px 0}ul.promises{list-style:none;padding:0;margin:0 0 20px;display:grid;gap:6px}ul.promises li{padding-left:18px;position:relative}ul.promises li:before{content:"";position:absolute;left:0;top:.6em;width:8px;height:8px;border-radius:2px;background:var(--accent)}ul.checks-list{list-style:none;padding:0;margin:0;display:grid;gap:8px}ul.checks-list>li{display:flex;gap:10px;align-items:flex-start}ul.checks-list .mark{flex:none;width:22px;height:22px;border-radius:99px;display:grid;place-items:center;font-weight:700;color:var(--chip-ink);background:var(--ok)}ul.checks-list li.warn .mark{background:var(--warn)}ul.checks-list li.info .mark{background:var(--navy)}ul.checks-list ul{margin:4px 0 0;padding-left:18px}fieldset.choices{display:grid;gap:6px;margin:10px 0 14px}.choice{border:1.5px solid var(--boxline);border-radius:10px;padding:8px 12px;background:var(--card);cursor:pointer}.choice.on{border-color:var(--accent)}.progress{position:relative;height:40px;border:2px solid var(--accent);border-radius:10px;background:var(--card);overflow:hidden}.progress .bar{position:absolute;inset:0 auto 0 0;background:var(--accent-soft);transition:width .25s linear}.progress span{position:relative;display:block;padding:9px 12px;font-weight:600}@media(prefers-reduced-motion:reduce){.progress .bar{transition:none}}.downloads{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:10px}a.dl{display:flex;flex-direction:column;gap:4px;padding:12px 14px;border:2px solid var(--ink);border-radius:12px;background:var(--card);color:inherit;text-decoration:none}a.dl:hover{background:var(--nav-hover)}a.dl b:after{content:" ↓";color:var(--accent)}.tabs{display:flex;gap:4px;margin:14px 0 10px;border-bottom:2px solid var(--ink);flex-wrap:wrap}.tabs button{border:2px solid transparent;border-bottom:0;background:transparent;padding:6px 14px;border-radius:10px 10px 0 0;cursor:pointer}.tabs button[aria-selected=true]{border-color:var(--ink);background:var(--card);font-weight:600;margin-bottom:-2px}table.list{border-collapse:collapse;width:100%}table.list th,table.list td{text-align:left;padding:6px 8px;border-bottom:1px solid var(--line);vertical-align:top}table.list th{color:var(--muted);font-weight:600;font-size:12.5px}table.list tr:hover td{background:var(--nav-hover)}table.list.clickable tbody tr{cursor:pointer}table.covergrid td,table.covergrid th{text-align:center}table.covergrid td:first-child,table.covergrid th:first-child{text-align:left}.status{display:flex;gap:8px;flex-wrap:wrap;margin:0 0 10px}.pill{border:1.5px solid var(--boxline);border-radius:99px;padding:2px 12px;background:var(--card);font-weight:600}.pill.warn{border-color:var(--warn);color:var(--warn);background:var(--warn-soft)}.pill.ok{border-color:var(--ok);color:var(--ok);background:var(--ok-soft)}.legend{display:flex;flex-wrap:wrap;gap:6px 16px;font-size:12px;color:var(--muted);margin:0 0 10px;align-items:center}.legend span{display:inline-flex;align-items:center;gap:6px}.sw{width:16px;height:12px;border-radius:3px;display:inline-block;border:1px solid var(--boxline)}.sw.leave{background:repeating-linear-gradient(135deg,transparent 0 3px,var(--boxline) 3px 4px)}.sw.prob{border:0;border-bottom:3px solid var(--warn);border-radius:0}.sample{display:inline-block;min-width:34px;text-align:center;border-radius:4px;padding:0 4px;font-weight:650;font-size:11px;color:var(--ink);border:1px solid var(--line)}.sample.f-night{color:var(--chip-ink)}.legend .dot{width:6px;height:6px;border-radius:50%;background:var(--navy);display:inline-block}.legend b.ic,table.grid .ic{font-size:9px;font-weight:700;color:var(--accent)}.f-early{background:var(--accent-soft)}.f-middle{background:var(--ok-soft)}.f-late{background:var(--navy-soft)}.f-night{background:var(--navy-fill);color:var(--chip-ink)}.f-other{background:var(--cage);font-style:italic}.sw.f-night{border-color:var(--navy-fill)}.workspace{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:16px;align-items:start}.gridwrap{overflow:auto;border:2px solid var(--ink);border-radius:12px;background:var(--card);max-height:calc(100vh - 250px)}.panel{position:sticky;top:12px;max-height:calc(100vh - 24px);overflow:auto}table.grid{border-collapse:separate;border-spacing:0;font-size:11.5px}table.grid th,table.grid td{border-bottom:1px solid var(--line);border-right:1px solid var(--line);padding:0;height:26px}table.grid thead th{position:sticky;top:0;background:var(--nav);z-index:2;font-weight:600;padding:3px 4px;text-align:center;line-height:1.15}table.grid tfoot td,table.grid tfoot th{position:static}table.grid .who{position:sticky;left:0;background:var(--card);z-index:1;text-align:left;padding:0 8px;white-space:nowrap;min-width:128px;max-width:168px;overflow:hidden;text-overflow:ellipsis;font-weight:500}table.grid thead .who{z-index:3;background:var(--nav)}table.grid th.wk{background:var(--cage)}table.grid th.ph{box-shadow:inset 0 -3px 0 var(--ok)}table.grid .fsep{border-right:3px solid var(--ink)}table.grid td.c{min-width:40px;text-align:center;cursor:pointer;position:relative}table.grid td.c.wide{min-width:64px}table.grid td.c:hover{outline:2px solid var(--boxline);outline-offset:-2px}table.grid td.sel{outline:3px solid var(--accent)!important;outline-offset:-3px}table.grid td.bad{box-shadow:inset 0 -3px 0 var(--warn)}table.grid td.leave{color:var(--muted);background:repeating-linear-gradient(135deg,transparent 0 5px,var(--cage) 5px 7px)}table.grid td .lv{font-size:10.5px;font-style:italic}table.grid td .code{font-weight:650}table.grid td .r{opacity:.75;font-size:9px;margin-left:1px;vertical-align:super;font-weight:700}table.grid td.f-night .ic{color:var(--chip-ink)}table.grid td.lock:after{content:"";position:absolute;top:3px;right:3px;width:5px;height:5px;border-radius:50%;background:var(--navy)}table.grid td.f-night.lock:after{background:var(--chip-ink)}table.grid td.empty .gapmark,table.grid td .gapmark{color:var(--warn);font-size:11px}table.grid tr.cover td,table.grid tr.cover th{background:var(--cage);font-size:11.5px;text-align:center}table.grid tr.cover .who{text-align:left;font-weight:400}table.grid tr.cover td.short{color:var(--warn);font-weight:700;background:var(--warn-soft);cursor:pointer}table.grid tr.cover td.over{color:var(--warn);font-weight:700;background:var(--warn-soft);cursor:pointer;text-decoration:underline}table.grid .hrs{position:sticky;right:0;background:var(--card);z-index:1;font-family:var(--mono);font-size:11.5px;text-align:right;padding:0 8px;white-space:nowrap;border-left:2px solid var(--ink);min-width:62px}table.grid thead .hrs{z-index:3;background:var(--nav);text-align:center;font-family:var(--sans)}table.grid td.hrs.off{color:var(--warn);font-weight:700;background:var(--warn-soft)}.todo-panel{border:2px solid var(--ink);border-radius:12px;background:var(--card);padding:14px}ul.todos{list-style:none;margin:0;padding:0;display:grid;gap:6px}button.todo{width:100%;text-align:left;border:1.5px solid var(--line);border-left:4px solid var(--boxline);border-radius:8px;background:var(--card);padding:7px 10px;cursor:pointer;display:flex;flex-direction:column;gap:2px}button.todo.must{border-left-color:var(--warn)}button.todo.should{border-left-color:var(--navy)}button.todo:hover:not(:disabled){background:var(--nav-hover)}button.todo .t{font-weight:600}button.todo .d{color:var(--muted);font-size:12.5px}button.todo .go{color:var(--accent);font-weight:600;font-size:12.5px}.editor .back{display:inline-block;margin-bottom:8px}.editor .now{margin:0 0 10px}.editor .actions{margin-bottom:8px}.editor .keep{margin:4px 0 8px;font-size:13px}.optgroup .grp{margin:8px 0 4px}.opts{display:flex;flex-direction:column;gap:4px}.opt{display:flex;justify-content:space-between;align-items:center;gap:8px;text-align:left;padding:6px 10px;border-radius:8px;border:1.5px solid var(--boxline);cursor:pointer}.opt:hover:not(:disabled){border-color:var(--accent)}.opt:disabled{cursor:not-allowed;opacity:.6;border-style:dashed;background:transparent}.opt.current{border:2px solid var(--ink)}.opt small{opacity:.8}.opt .fulltag{color:var(--warn);font-weight:650;opacity:1}.opt.f-night .fulltag,.opt.f-night small,.opt.f-night{color:var(--chip-ink)}.vlist{margin:6px 0 0;padding-left:18px}.vlist li{margin-bottom:3px}.vlist .hard{color:var(--warn)}.form fieldset+fieldset{border-top:1.5px solid var(--accent);padding-top:12px}@media(max-width:1180px){.workspace{grid-template-columns:1fr}.panel{position:static;max-height:none}}@media(max-width:760px){.app{grid-template-columns:1fr}nav.side{position:static;height:auto;border-right:0;border-bottom:2px solid var(--ink)}}nav.side .backup{border:1.5px solid var(--line);border-radius:10px;padding:8px;margin-bottom:10px;background:var(--card);color:var(--ink)}nav.side .backup.unsaved{border-color:var(--warn)}nav.side .backup p{margin:0 0 6px}nav.side .backup .where{color:var(--muted)}nav.side .backup .row{display:flex;gap:10px;align-items:center}.backup-nudge{border-color:var(--warn);margin-bottom:14px}main.boot{max-width:460px;margin:18vh auto 0;padding:0 16px;text-align:center}main.boot h1{font-size:24px;margin-bottom:18px}main.boot .spinner{width:34px;height:34px;margin:0 auto 14px;border-radius:50%;border:3px solid var(--line);border-top-color:var(--accent);animation:spin .9s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}@media(prefers-reduced-motion:reduce){main.boot .spinner{animation:none}}
