:root{--ink: #15171c;--ink-2: #23262e;--canvas: #f4f5f7;--surface: #ffffff;--line: #e2e4e9;--text: #1d2026;--muted: #646b78;--gold: #c9a227;--gold-ink: #7a5f0e;--gold-wash: #fbf5e1;--danger: #b42318;--danger-wash: #fdecea;--ok: #1f7a4d;--ok-wash: #e7f4ec;--radius: 8px;font-family:Albert Sans,system-ui,-apple-system,Segoe UI,sans-serif;font-size:15px;color:var(--text);background:var(--canvas)}*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit;color:inherit}:focus-visible{outline:2px solid var(--gold);outline-offset:2px}.num{font-variant-numeric:tabular-nums}.shell{display:grid;grid-template-columns:232px 1fr;min-height:100vh}.side{background:var(--ink);color:#d7d9de;padding:20px 14px;display:flex;flex-direction:column;gap:4px;position:sticky;top:0;height:100vh;overflow-y:auto}.brand{display:flex;align-items:center;gap:10px;padding:4px 8px 20px;color:#fff;font-weight:700;font-size:17px}.brand-mark{width:30px;height:30px;border-radius:7px;background:var(--gold);display:grid;place-items:center;color:var(--ink);font-weight:700}.brand small{display:block;font-weight:500;font-size:12px;color:#9aa0ab}.nav-group{font-size:12px;color:#8b919c;padding:14px 10px 6px}.nav a{display:flex;justify-content:space-between;padding:8px 10px;border-radius:6px;color:inherit;text-decoration:none;font-weight:500}.nav a:hover{background:var(--ink-2);color:#fff}.nav a.on{background:var(--ink-2);color:#fff;box-shadow:inset 3px 0 0 var(--gold)}.side-foot{margin-top:auto;padding:12px 10px 0;border-top:1px solid #2c3039;font-size:13px}.side-foot .who{color:#fff;font-weight:600;overflow:hidden;text-overflow:ellipsis}.side-foot button{background:none;border:0;color:#9aa0ab;padding:6px 0 0;cursor:pointer;display:block}.side-foot button:hover{color:#fff}.menu-btn{display:none}.main{padding:28px 32px 60px;min-width:0}.page-head{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin-bottom:20px;flex-wrap:wrap}.page-head h1{margin:0;font-size:26px;font-weight:700;letter-spacing:-.01em}.page-head p{margin:4px 0 0;color:var(--muted);max-width:64ch}.row{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.btn{text-decoration:none;color:inherit;border:1px solid var(--line);background:var(--surface);padding:8px 14px;border-radius:6px;cursor:pointer;font-weight:600;font-size:14px}.btn:hover{border-color:#c7cad2}.btn.primary{background:var(--ink);color:#fff;border-color:var(--ink)}.btn.primary:hover{background:#000}.btn.gold{background:var(--gold);border-color:var(--gold);color:var(--ink)}.btn.danger{color:var(--danger)}.btn.small{padding:4px 10px;font-size:13px}.btn:disabled{opacity:.5;cursor:not-allowed}.link{background:none;border:0;padding:0;color:var(--gold-ink);font-weight:600;cursor:pointer}.input,select.input{border:1px solid var(--line);background:var(--surface);padding:8px 10px;border-radius:6px;min-width:0;width:100%}.filters{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:14px}.filters .input{width:auto;min-width:170px}label.field{display:grid;gap:5px;font-size:13px;font-weight:600;color:var(--muted)}label.check{display:flex;gap:8px;align-items:center;font-size:14px}.grid2{display:grid;grid-template-columns:1fr 1fr;gap:12px}.panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius)}.panel-pad{padding:18px 20px}.table-wrap{overflow-x:auto}table{width:100%;border-collapse:collapse;font-size:14px}th{text-align:left;font-weight:600;color:var(--muted);font-size:13px;padding:10px 14px;border-bottom:1px solid var(--line);background:#fafbfc;white-space:nowrap}td{padding:10px 14px;border-bottom:1px solid var(--line);vertical-align:top}tr:last-child td{border-bottom:0}td.actions{text-align:right;white-space:nowrap}.empty{padding:36px 20px;text-align:center;color:var(--muted)}.empty strong{display:block;color:var(--text);margin-bottom:4px}.chip{display:inline-flex;align-items:center;gap:4px;padding:2px 8px;border-radius:999px;background:#eef0f3;font-size:12px;font-weight:600;margin:2px 4px 2px 0}.chip.gold{background:var(--gold-wash);color:var(--gold-ink)}.chip.warn{background:var(--danger-wash);color:var(--danger)}.chip.ok{background:var(--ok-wash);color:var(--ok)}.chip button{background:none;border:0;padding:0;cursor:pointer;color:inherit;font-weight:700}.muted{color:var(--muted)}.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;margin-bottom:20px}.stat{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:14px 16px}.stat b{display:block;font-size:26px;font-variant-numeric:tabular-nums}.stat span{color:var(--muted);font-size:13px}.gaps h3{margin:0 0 10px;font-size:16px}.gap-item{display:flex;justify-content:space-between;gap:12px;padding:10px 0;border-top:1px solid var(--line)}.gap-item:first-of-type{border-top:0}.tree{list-style:none;margin:0;padding:0}.tree .tree{margin-left:22px;padding-left:18px;border-left:2px solid var(--gold-wash)}.node{display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:6px;flex-wrap:wrap}.node:hover{background:#fafbfc}.node .type{font-size:12px;font-weight:600;color:var(--gold-ink);background:var(--gold-wash);border-radius:4px;padding:1px 7px}.node .name{font-weight:600}.node .meta{color:var(--muted);font-size:13px}.node .grow{flex:1}.node.off .name{color:var(--muted);text-decoration:line-through}.scrim{position:fixed;top:0;right:0;bottom:0;left:0;background:#15171c73;display:grid;place-items:center;padding:16px;z-index:50}.modal{background:var(--surface);border-radius:10px;width:min(560px,100%);max-height:90vh;overflow:auto}.modal header{padding:18px 20px 6px}.modal header h2{margin:0;font-size:19px}.modal header p{margin:4px 0 0;color:var(--muted);font-size:14px}.modal .body{padding:12px 20px;display:grid;gap:12px}.modal footer{padding:12px 20px 18px;display:flex;justify-content:flex-end;gap:8px}.note{font-size:13px;padding:8px 10px;border-radius:6px;background:var(--gold-wash);color:var(--gold-ink)}.note.err{background:var(--danger-wash);color:var(--danger)}.toast{position:fixed;bottom:20px;left:50%;transform:translate(-50%);background:var(--ink);color:#fff;padding:10px 16px;border-radius:8px;font-size:14px;z-index:60;box-shadow:0 6px 24px #0003}.toast.err{background:var(--danger)}.auth{min-height:100vh;display:grid;grid-template-columns:1.1fr 1fr}.auth-art{background:var(--ink);color:#fff;padding:48px;display:flex;flex-direction:column;justify-content:space-between}.auth-art h1{font-size:clamp(30px,4vw,46px);line-height:1.08;margin:0;max-width:14ch;letter-spacing:-.02em}.auth-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:6px;max-width:420px}.auth-grid i{aspect-ratio:1.6;border-radius:4px;background:var(--ink-2)}.auth-grid i.g{background:var(--gold)}.auth-grid i.d{background:#3a3e48}.auth-form{display:grid;place-items:center;padding:32px}.auth-form form{width:min(360px,100%);display:grid;gap:14px}.auth-form h2{margin:0;font-size:22px}.loader{padding:40px;color:var(--muted)}.dropzone{border:2px dashed var(--line);border-radius:var(--radius);padding:28px;text-align:center;background:var(--surface)}.log{font-size:13px;max-height:280px;overflow:auto}.log div{padding:4px 0;border-bottom:1px solid var(--line)}@media (max-width: 860px){.shell{grid-template-columns:1fr}.side{position:fixed;inset:0 auto 0 0;width:250px;transform:translate(-100%);transition:transform .2s;z-index:40}.side.open{transform:none}.menu-btn{display:inline-flex;margin-bottom:12px}.main{padding:18px 16px 48px}.auth{grid-template-columns:1fr}.auth-art{padding:28px;gap:24px}.grid2{grid-template-columns:1fr}}@media (prefers-reduced-motion: reduce){*{transition:none!important}}.chip.demo{background:#e8ecf7;color:#3b4a7a;margin-left:6px}.demo-banner{display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap;padding:14px 18px;border-radius:var(--radius);background:#e8ecf7;color:#2b3760;margin-bottom:16px}.demo-banner strong{display:block}.demo-banner span{font-size:14px}.plan{display:grid;gap:12px}.phase{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius)}.phase.passed{border-color:#b9dcc8}.phase.testing{border-color:var(--gold)}.phase-head{width:100%;display:flex;align-items:center;gap:14px;padding:14px 18px;background:none;border:0;text-align:left;cursor:pointer;flex-wrap:wrap}.phase-num{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;background:var(--ink);color:var(--gold);font-weight:700;flex:none}.phase.passed .phase-num{background:var(--ok);color:#fff}.phase-title{flex:1;min-width:220px;display:grid;gap:2px}.phase-title span{color:var(--muted);font-size:14px}.phase-count{color:var(--muted);font-size:13px}.phase-body{display:grid;grid-template-columns:1fr 1fr;gap:24px;padding:4px 18px 18px 66px}.phase-body h3{font-size:14px;margin:0 0 8px;color:var(--muted)}.steps{margin:0;padding-left:20px;display:grid;gap:8px}.steps li{font-size:14px}.steps li span:first-child{margin-right:6px}.steps li.done span:first-child{color:var(--muted)}.criteria{list-style:none;margin:0;padding:0;display:grid;gap:12px}.criteria .check{align-items:flex-start}.criteria .check input{margin-top:3px;flex:none;width:16px;height:16px;accent-color:var(--ok)}.crit-note{margin:6px 0 0 24px;width:calc(100% - 24px);font-size:13px;padding:6px 8px}@media (max-width: 860px){.phase-body{grid-template-columns:1fr;padding-left:18px}}.kicker{margin:0 0 6px;color:var(--muted);font-size:13px;font-weight:600}.tabs{display:flex;gap:2px;flex-wrap:wrap;border-bottom:1px solid var(--line);margin-bottom:18px}.tabs button{background:none;border:0;padding:9px 12px;font-weight:600;font-size:14px;color:var(--muted);cursor:pointer;border-bottom:2px solid transparent;margin-bottom:-1px}.tabs button:hover{color:var(--text)}.tabs button.on{color:var(--text);border-bottom-color:var(--gold)}.badge{display:inline-block;margin-left:6px;background:var(--gold);color:var(--ink);border-radius:999px;font-size:11px;padding:0 6px}.tabbed .page-head h1{font-size:20px}.seg{display:inline-flex;border:1px solid var(--line);border-radius:7px;padding:3px;background:var(--surface);gap:2px}.seg button{border:0;background:none;padding:6px 12px;border-radius:5px;font-weight:600;font-size:14px;cursor:pointer;color:var(--muted)}.seg button.on{background:var(--ink);color:#fff}.pills{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:12px}.pills button{border:1px solid var(--line);background:var(--surface);border-radius:999px;padding:6px 12px;font-size:13px;font-weight:600;cursor:pointer;color:var(--muted)}.pills button.on{background:var(--ink);color:#fff;border-color:var(--ink)}.switch{min-width:86px;border:1px solid var(--line);background:var(--surface);color:var(--muted);border-radius:6px;padding:4px 10px;font-weight:600;font-size:13px;cursor:pointer}.switch.on{background:var(--ok-wash);border-color:#b9dcc8;color:var(--ok)}.switch:disabled{cursor:default}.group-row td{background:#fafbfc;font-size:13px;font-weight:700;color:var(--muted);padding:7px 14px}.modal.wide{width:min(760px,100%)}.viewas-bar{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;background:var(--gold-wash);color:var(--gold-ink);border:1px solid #ecdca6;border-radius:var(--radius);padding:10px 14px;margin-bottom:16px;font-size:14px}.type{font-size:12px;font-weight:600;border-radius:4px;padding:1px 7px;background:var(--gold-wash);color:var(--gold-ink)}.type.t-head_office{background:var(--ink);color:var(--gold)}.type.t-central_office{background:#f3e7c2;color:#6b520b}.type.t-zone{background:#e8ecf7;color:#3b4a7a}.type.t-campus{background:var(--ok-wash);color:var(--ok)}.type.t-department{background:#eef0f3;color:var(--muted)}.htree{list-style:none;margin:0;padding:0;display:grid;gap:8px}.hkids{margin:8px 0 0 14px;padding-left:14px;border-left:2px solid var(--gold-wash);display:grid;gap:8px}.hrow{border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);padding:10px 12px}.hrow.slim{padding:7px 10px}.hrow.over,.acad.over{border-color:var(--gold);box-shadow:0 0 0 2px var(--gold-wash)}.hrow[draggable=true]{cursor:grab}.hline{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.hline .grow{flex:1}.hline .meta{color:var(--muted);font-size:13px}.hsub{margin:4px 0 0;font-size:13px;color:var(--muted)}.hsub b{color:var(--text);font-weight:600}.people{display:flex;flex-wrap:wrap;gap:4px;margin-top:6px}.tog{border:1px solid var(--line);background:var(--surface);border-radius:4px;font-size:12px;padding:0 6px;color:var(--muted);cursor:pointer;font-variant-numeric:tabular-nums}.acad{border:1px dashed var(--line);border-radius:var(--radius);padding:10px}.acad-h{margin:0 0 6px;font-size:12px;font-weight:700;color:var(--muted)}.sec-body{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:10px}.leaf{display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-size:13px;padding:5px 8px;border-radius:6px;background:#f6f7f9;margin-bottom:4px}.leaf[draggable=true]{cursor:grab}@media (max-width: 860px){.sec-body{grid-template-columns:1fr}}.bp h1{margin:0;font-size:30px;letter-spacing:-.01em}.bp-top{display:flex;justify-content:space-between;gap:24px;flex-wrap:wrap;align-items:flex-start;margin-bottom:20px}.bp-top>div:first-child{flex:1;min-width:260px}.bp-count{margin:4px 0 10px;color:var(--muted)}.bp-count b{color:var(--text)}.bp-strip{display:flex;flex-wrap:wrap;gap:4px;max-width:520px}.bub{width:13px;height:13px;border-radius:50%;border:1.6px solid var(--ink);display:inline-block;flex:none;background:transparent}.bub.b-done{background:var(--ink)}.bub.b-doing{border-style:dashed;border-color:var(--gold-ink)}.bub.b-blocked{border-color:var(--danger);background:var(--danger-wash)}.bub.b-not_needed{border-color:#c7cad2;background:repeating-linear-gradient(45deg,transparent 0 2px,#c7cad2 2px 3px)}.bp-next{border:1.6px solid var(--ink);border-radius:10px;padding:14px 18px;background:var(--surface);box-shadow:6px 6px 0 var(--gold);width:min(360px,100%)}.bp-next-k{font-size:12px;font-weight:700;color:var(--gold-ink)}.bp-next-t{margin:4px 0;font-weight:700;font-size:16px}.bp-next-d{margin:0;font-size:13px;color:var(--muted)}.code{color:var(--gold-ink);font-weight:700;font-variant-numeric:tabular-nums}.bp-tabs{display:flex;gap:4px;border-bottom:1px solid var(--line);margin-bottom:16px;overflow-x:auto}.bp-tabs button{background:none;border:0;padding:10px 12px;font-weight:600;color:var(--muted);cursor:pointer;border-bottom:2px solid transparent;margin-bottom:-1px;white-space:nowrap}.bp-tabs button.on{color:var(--text);border-bottom-color:var(--gold)}.bp-phase{background:var(--surface);border:1px solid var(--line);border-radius:10px;margin-bottom:10px}.bp-phase.testing{border-style:dashed}.bp-ph-head{width:100%;display:flex;align-items:center;gap:14px;padding:14px 16px;background:none;border:0;text-align:left;cursor:pointer;flex-wrap:wrap}.bp-ph-num{width:32px;height:32px;border-radius:50%;background:var(--ink);color:var(--gold);display:grid;place-items:center;font-weight:700;flex:none}.bp-ph-title{flex:1;min-width:200px;display:grid;gap:2px}.bp-ph-title span{font-size:13px;color:var(--muted)}.bp-ph-bubs{display:flex;flex-wrap:wrap;gap:3px;max-width:260px;justify-content:flex-end}.bp-ph-n{font-weight:700;font-size:14px;min-width:40px;text-align:right}.bp-steps{list-style:none;margin:0;padding:0 16px 6px;border-top:1px solid var(--line)}.bp-steps li{display:flex;gap:12px;padding:14px 0;border-bottom:1px solid var(--line)}.bp-steps li:last-child{border-bottom:0}.bp-steps li>.bub{margin-top:4px}.bp-step{flex:1;min-width:0}.bp-step-h{margin:0 0 4px}.pill{display:inline-block;border:1px solid var(--ink);border-radius:999px;font-size:11px;font-weight:600;padding:0 8px;margin-left:4px;vertical-align:1px}.pill.p-done{background:var(--ink);color:#fff}.pill.p-doing{border-color:var(--gold-ink);color:var(--gold-ink);border-style:dashed}.pill.p-blocked{border-color:var(--danger);color:var(--danger)}.pill.p-not_needed{border-color:#c7cad2;color:var(--muted)}.bp-desc{margin:0 0 8px;font-size:14px}.bp-when{border-left:3px solid var(--gold);padding:2px 0 2px 10px;font-size:14px;margin-bottom:6px}.bp-when span{display:block;font-size:11px;font-weight:700;color:var(--gold-ink)}.bp-meta{margin:0;font-size:12px;color:var(--muted)}.bp-notes{margin:4px 0 0;font-size:12px;color:var(--muted);font-style:italic}.bp-dec section,.bp-log section,.bp-blue section{background:var(--surface);border:1px solid var(--line);border-radius:10px;padding:16px 18px;margin-bottom:12px}.bp-dec h3,.bp-log h3,.bp-blue h3{margin:0 0 10px;font-size:15px}.bp-dec h3.gold{color:var(--gold-ink)}.bp-dec-row{display:grid;grid-template-columns:minmax(150px,1fr) 2fr;gap:16px;padding:10px 0;border-top:1px solid var(--line);font-size:14px}.bp-dec-row p{margin:0 0 3px}.bp-dec-row .muted{font-size:13px}.bp-log-items{border-left:3px solid var(--ink);padding-left:14px;display:grid;gap:10px}.bp-log-items p{margin:0;font-size:14px}.bp-blue p{white-space:pre-line;margin:0;font-size:14px;line-height:1.6}@media (max-width: 860px){.bp-ph-bubs{display:none}.bp-dec-row{grid-template-columns:1fr;gap:4px}}.h2{margin:0 0 8px;font-size:19px}.h3{margin:0 0 10px;font-size:15px}.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}.tt-wrap{overflow-x:auto;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface)}table.tt{border-collapse:separate;border-spacing:0;width:100%;min-width:640px;table-layout:fixed;font-size:13px}table.tt caption{text-align:left;font-weight:700;padding:8px 10px}.tt thead th{background:var(--ink);color:#d7d9de;padding:7px 4px 6px;text-align:center;border:0;font-weight:500;white-space:nowrap}.tt thead th b{display:block;color:var(--gold);font-size:15px;line-height:1.1}.tt thead th small{display:block;font-size:10.5px;font-variant-numeric:tabular-nums}.tt thead th:first-child{border-top-left-radius:calc(var(--radius) - 1px)}.tt thead th:last-child{border-top-right-radius:calc(var(--radius) - 1px)}.tt th.tt-day{width:92px;text-align:left;padding-left:12px}.tt.compact th.tt-day{width:56px}.tt.campus th.tt-day{width:96px}.tt tbody th.tt-day{background:#fafbfc;color:var(--text);font-weight:600;border-bottom:1px solid var(--line);border-right:1px solid var(--line)}.tt .tt-break{width:16px;padding:0}.tt thead .tt-break span{writing-mode:vertical-rl;transform:rotate(180deg);font-size:9.5px;color:#8b919c}.tt tbody .tt-break{background:repeating-linear-gradient(135deg,var(--gold-wash) 0 4px,#fff 4px 8px);border-bottom:1px solid var(--line)}.tt td{padding:0;height:52px;border-bottom:1px solid var(--line);border-right:1px solid var(--line);vertical-align:middle}.tt.compact td{height:42px}.tt td.tt-off{background:repeating-linear-gradient(45deg,#f4f5f7 0,#f4f5f7 3px,#eceef1 3px,#eceef1 4px)}.tt td.tt-cell>button{all:unset;box-sizing:border-box;display:flex;width:100%;height:100%;align-items:center;justify-content:center;cursor:pointer;padding:4px}.tt td.tt-cell>button:hover{box-shadow:inset 0 0 0 2px var(--ink)}.tt td.tt-cell>button:focus-visible{box-shadow:inset 0 0 0 2px var(--gold)}.tt td.tt-cell.sel{box-shadow:inset 0 0 0 3px var(--gold)}.tt-in{display:grid;text-align:center;line-height:1.2;padding:2px 4px;min-width:0}.tt td.tt-cell>.tt-in{width:100%}.tt-in b{font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tt-in small{font-size:11px;color:#4a505c;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tt-in i{font-style:normal;font-size:10px;color:var(--gold-ink)}.tt-empty{color:#b6bac3;font-size:18px}.vbar{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;padding:10px 14px;border-radius:var(--radius);border:1px solid var(--line);background:var(--surface);margin-bottom:14px;font-size:14px}.vbar.draft{border-color:#ecdca6;background:var(--gold-wash);color:var(--gold-ink)}.vbar.current{border-left:4px solid var(--ok)}.vbar.old{border-left:4px solid var(--muted)}.sec-tabs{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:14px}.sec-tabs button{border:1px solid var(--line);background:var(--surface);border-radius:6px;padding:6px 10px;font-weight:600;font-size:14px;cursor:pointer;display:inline-flex;gap:8px;align-items:center}.sec-tabs button.on{background:var(--ink);color:#fff;border-color:var(--ink)}.sec-n{font-size:11px;font-weight:600;color:var(--muted);font-variant-numeric:tabular-nums}.sec-tabs button.on .sec-n{color:var(--gold)}.sec-n.full:before{content:"✓ ";color:var(--ok)}.entry{display:grid;grid-template-columns:minmax(0,1fr) 270px;gap:16px;align-items:start}.counters ul{list-style:none;margin:0;padding:0;display:grid;gap:8px}.counters li{display:grid;grid-template-columns:10px 1fr auto;gap:4px 8px;align-items:center;font-size:13px}.counters .c-name{display:grid;font-weight:600}.counters .c-name small{font-weight:400;color:var(--muted)}.counters .c-n{font-weight:700}.counters .c-bar{grid-column:2 / 4;height:4px;background:#eef0f3;border-radius:2px;overflow:hidden}.counters .c-bar i{display:block;height:100%;background:var(--gold)}.counters li.ok .c-bar i{background:var(--ok)}.counters li.ok .c-n{color:var(--ok)}.counters li.over .c-bar i{background:var(--danger)}.counters li.over .c-n{color:var(--danger)}.pick-sw{width:10px;height:10px;border-radius:3px;background:var(--tone, #eee);border:1px solid rgba(0,0,0,.12)}.pick-list{display:grid;gap:6px}.pick{display:grid;grid-template-columns:12px 1fr auto;gap:2px 10px;align-items:center;text-align:left;border:1px solid var(--line);background:var(--surface);border-radius:7px;padding:8px 10px;cursor:pointer}.pick:hover:not(:disabled){border-color:var(--ink)}.pick:disabled{cursor:not-allowed;opacity:.62;background:#fafbfc}.pick.on{border-color:var(--ok);opacity:1}.pick .pick-sw{width:12px;height:12px}.pick-main{display:grid}.pick-main small{color:var(--muted)}.pick-n{font-size:12px;font-weight:700;color:var(--muted);font-variant-numeric:tabular-nums}.pick-n.full{color:var(--ok)}.pick-why{grid-column:2 / 4;font-size:12px;color:var(--danger);font-weight:600}.pick-why.ok{color:var(--ok)}.other summary{cursor:pointer;font-weight:600;font-size:14px;color:var(--gold-ink)}.timings{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);gap:14px;align-items:start}.slot-list{display:grid;gap:6px}.slot{display:grid;grid-template-columns:112px 136px auto 136px 1fr;gap:8px;align-items:center}.slot.break{background:var(--gold-wash);border-radius:6px;padding:4px 6px;margin:0 -6px}.slot-act{display:flex;gap:4px;justify-content:flex-end}.xl{display:grid;grid-template-columns:1fr 1fr;gap:14px}.print-only{display:none}@media (max-width: 1100px){.entry{grid-template-columns:1fr}}@media (max-width: 860px){.timings,.xl{grid-template-columns:1fr}.slot{grid-template-columns:1fr 1fr}.slot .muted{display:none}.slot-act{grid-column:1 / -1;justify-content:flex-start}}.print-sheet header{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 16px;margin-bottom:8px}.print-sheet header h2{margin:0;font-size:18px;flex:1}.print-sheet header p{margin:0;font-size:12px;color:#555;width:100%}.ps-brand{display:flex;align-items:center;gap:6px;font-weight:700;font-size:12px;width:100%}.ps-brand .brand-mark{width:18px;height:18px;font-size:11px;border-radius:4px}.print-sheet footer{margin-top:6px;font-size:10px;color:#777}@media print{@page{size:A4 landscape;margin:9mm}body{background:#fff}:root{background:#fff}.side,.menu-btn,.viewas-bar,.tabs,.filters,.btn,.toast,.sec-tabs,.vbar,.counters,.pills{display:none!important}.shell{display:block}.main{padding:0}body:has(.print-only) .main>*:not(.print-only),body:has(.print-only) .main .tabbed>*:not(.print-only){display:none!important}body:has(.print-only) .main .tabbed{display:block!important}.print-only{display:block!important}.print-sheet{break-after:page;page-break-after:always}.print-sheet:last-child{break-after:auto;page-break-after:auto}.tt-wrap{overflow:visible;border-color:#999}table.tt{min-width:0;font-size:11px}.tt thead th{background:#fff!important;color:#000;border-bottom:1.5px solid #000}.tt thead th b{color:#000}.tt td{height:40px;border-color:#bbb}.tt tbody .tt-break{background:#f2f2f2!important}.tt td.tt-cell{background:#fff!important}.tt-in b{white-space:normal;font-size:11.5px}.tt-in small{white-space:normal;color:#333}*{-webkit-print-color-adjust:exact;print-color-adjust:exact}}.kinds{display:flex;flex-wrap:wrap;gap:6px}.kinds button{border:1px solid var(--line);background:var(--surface);border-radius:7px;padding:8px 12px;font-weight:600;font-size:14px;cursor:pointer;text-align:left}.kinds button.on{background:var(--ink);color:#fff;border-color:var(--ink);box-shadow:inset 0 -3px 0 var(--gold)}.small{font-size:13px}table.cmp{width:100%;border-collapse:separate;border-spacing:0;font-size:14px}.cmp thead th{background:var(--ink);color:#d7d9de;padding:10px 14px;text-align:left;vertical-align:bottom}.cmp thead th b{display:block;color:var(--gold);font-size:16px}.cmp thead th small{font-weight:500}.cmp thead th.on{box-shadow:inset 0 -4px 0 var(--gold)}.cmp tbody th{text-align:left;font-weight:600;color:var(--muted);background:#fafbfc;width:210px;padding:9px 14px;border-bottom:1px solid var(--line)}.cmp td{padding:9px 14px;border-bottom:1px solid var(--line);border-left:1px solid var(--line);vertical-align:top}.cmp td.on{background:var(--gold-wash)}.cmp tr.head td{font-size:22px;font-weight:700}.cmp td.bad{color:var(--danger);font-weight:700}.chg-groups{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:12px 20px;margin-top:12px}.chg-groups>div{display:grid;gap:3px;align-content:start}.tt td.chg{box-shadow:inset 0 0 0 3px var(--gold)}.tt td.off-sel{background:repeating-linear-gradient(135deg,var(--danger-wash) 0 6px,#fff 6px 10px)!important}.tt td.off-sel .tt-in b{color:var(--danger)}.subs{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.5fr);gap:14px;align-items:start}.abs-list,.need-list{list-style:none;margin:0 0 12px;padding:0;display:grid;gap:6px}.abs-list li{display:flex;justify-content:space-between;gap:8px;flex-wrap:wrap;align-items:center;padding:8px 0;border-bottom:1px solid var(--line);font-size:14px}.abs-form{display:grid;gap:8px;padding-top:8px;border-top:2px solid var(--gold-wash)}.need-list li{display:grid;grid-template-columns:54px minmax(0,1fr) minmax(0,1.2fr) auto;gap:10px;align-items:center;padding:10px 12px;border:1px solid var(--line);border-left:4px solid var(--gold);border-radius:7px;font-size:14px}.need-list li.done{border-left-color:var(--ok);background:#fbfdfc}.need-p{display:grid;text-align:center}.need-p b{font-size:17px}.need-p small,.need-what small,.need-who small{color:var(--muted);font-size:12px}.need-what,.need-who{display:grid}.need-who .override{color:var(--gold-ink)}.need-act{display:flex;gap:4px;flex-wrap:wrap;justify-content:flex-end}.cand-list{display:grid;gap:6px;max-height:50vh;overflow:auto}.cand{display:flex;gap:10px;align-items:flex-start;border:1px solid var(--line);border-radius:7px;padding:8px 10px;cursor:pointer}.cand.on{border-color:var(--ink);box-shadow:inset 3px 0 0 var(--gold)}.cand.off{opacity:.55;cursor:not-allowed;background:#fafbfc}.cand input{margin-top:3px}.cand-main{display:grid;gap:2px}.cand-main small{color:var(--muted)}.wa{white-space:pre-wrap;font-family:inherit;font-size:14px;background:#f4f8f4;border:1px solid #d5e8d8;border-radius:8px;padding:12px 14px;max-width:70ch}table.sheet td,table.sheet th{padding:8px 12px}.hol-form{display:flex;flex-wrap:wrap;gap:10px}.hol-form .field{flex:1;min-width:150px}.c-bar.fair{display:block;height:6px;background:#eef0f3;border-radius:3px;overflow:hidden}.c-bar.fair i{display:block;height:100%;background:var(--gold)}@media (max-width: 1100px){.subs{grid-template-columns:1fr}}@media (max-width: 640px){.need-list li{grid-template-columns:44px 1fr}.need-who,.need-act{grid-column:2;justify-content:flex-start}}@media print{.wa{display:none}}.pick-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:4px 12px;max-height:280px;overflow:auto;padding:4px 0}.t-pick{align-items:flex-start;padding:5px 6px;border-radius:6px}.t-pick.on{background:var(--gold-wash)}.t-pick span{display:grid}.t-pick small{color:var(--muted);font-size:11px}.chip-btn{display:inline-flex;align-items:center}.chip-btn .x{border:0;background:none;color:var(--muted);cursor:pointer;font-size:16px;padding:0 4px}.slot-results{list-style:none;margin:0;padding:0;display:grid;gap:6px}.slot-results li{display:grid;grid-template-columns:150px 190px minmax(0,1fr) auto;gap:12px;align-items:center;padding:10px 14px;background:var(--surface);border:1px solid var(--line);border-radius:8px}.slot-results li.all{border-left:4px solid var(--ok)}.slot-results li.best{box-shadow:0 0 0 2px var(--gold)}.sr-when,.sr-free{display:grid;gap:3px}.sr-when small{color:var(--muted)}.sr-free .chip{justify-self:start}.free-block{border-top:1px solid var(--line);padding-top:10px;margin-top:10px}.free-block h4{margin:0 0 8px}.free-entry{margin-bottom:10px}.free-opts{display:grid;gap:6px}.free-opt{display:flex;justify-content:space-between;gap:10px;align-items:center;border:1px solid var(--line);border-radius:7px;padding:8px 10px}.free-opt span{display:grid}.free-opt small{color:var(--muted)}@media (max-width: 860px){.slot-results li{grid-template-columns:1fr 1fr}.sr-busy,.sr-act{grid-column:1 / -1}}.rule-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:10px;margin-top:12px}.gen-card{background:var(--surface);border:1px solid var(--line);border-left:4px solid var(--muted);border-radius:var(--radius);padding:14px 16px;margin-top:14px}.gen-card.ok{border-left-color:var(--ok)}.gen-card.warn{border-left-color:var(--gold)}.gen-card.err{border-left-color:var(--danger)}.gen-card h4{margin:14px 0 6px;font-size:14px}.gen-stats{display:flex;flex-wrap:wrap;gap:8px 22px;margin-top:10px;font-size:14px;color:var(--muted)}.gen-stats b{color:var(--text);font-size:18px;font-variant-numeric:tabular-nums}.gen-list{margin:0;padding-left:18px;font-size:14px;display:grid;gap:4px}.gen-list li.bad{color:var(--danger)}.notices{list-style:none;margin:10px 0 0;padding:0;display:grid;gap:6px}.notices li{display:grid;gap:2px;padding:10px 12px;border:1px solid var(--line);border-left:4px solid var(--line);border-radius:7px;background:var(--surface)}.notices li.new{border-left-color:var(--gold);background:#fffdf6}.notices li.k-cancelled{border-left-color:var(--danger)}.n-title{font-weight:700;display:flex;gap:8px;align-items:center}.n-body{font-size:14px}.n-when{font-size:12px;color:var(--muted)}.tiles{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:10px;margin-bottom:20px}.tile{background:var(--surface);border:1px solid var(--line);border-top:3px solid var(--gold);border-radius:var(--radius);padding:12px 14px;display:grid;gap:4px}.tile.warn{border-top-color:var(--danger)}.tile b{font-size:26px;font-variant-numeric:tabular-nums}.tile b small{font-size:14px;color:var(--muted);font-weight:500}.tile span{font-size:13px;color:var(--muted)}td.bad{color:var(--danger);font-weight:700}.nav-badge{margin-left:8px;background:var(--gold);color:var(--ink);border-radius:10px;padding:0 7px;font-size:12px;font-weight:700}
