:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--brand-magenta:#cc4cab;--brand-sand:#f4c376;--brand-teal:#045568;--brand-sky:#93d5da;--brand-offwhite:#faf6f4;--ink:#0b2b33;--ground:#faf6f4;--surface:#fff;--surface-2:#eef3f4;--surface-3:#e1ebed;--border:#dae3e5;--border-strong:#b3c6ca;--text:#0b2b33;--muted:#46656d;--faint:#5c7d85;--structure:#045568;--structure-solid:#045568;--structure-lift:#06697f;--structure-on:#faf6f4;--structure-fill:#e3eef1;--structure-edge:#a7c8d1;--support:#045568;--support-strong:#93d5da;--support-fill:#ddf0f3;--support-edge:#7cc4cb;--attention-ink:#8a5a10;--attention-strong:#f4c376;--attention-fill:#fdf1dd;--attention-edge:#e3ae5b;--sharp-ink:#a4237f;--sharp-strong:#cc4cab;--sharp-fill:#fbe8f5;--sharp-edge:#e08ecb;--inert:#566f76;--inert-fill:#eaeeef;--inert-edge:#c2ced1;--auto-fill:#eff3f2;--auto-edge:#cfdcdd;--sidebar-w:236px;--radius:5px;--mono:"Noto Sans Mono", ui-monospace, "Cascadia Mono", "SFMono-Regular", Consolas, monospace;--sans:"Noto Sans", "Segoe UI", system-ui, -apple-system, Roboto, "Helvetica Neue", Arial, sans-serif;--shadow:0 1px 2px #04556814, 0 4px 14px #04556812;--scrim:#0455686b;--focus:#045568}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--ink:#e6f1f3;--ground:#051a20;--surface:#0b2b33;--surface-2:#10373f;--surface-3:#17454f;--border:#1e4b56;--border-strong:#33697a;--text:#e6f1f3;--muted:#9ebcc3;--faint:#83a5ad;--structure:#93d5da;--structure-solid:#06414f;--structure-lift:#075a6d;--structure-on:#eaf6f8;--structure-fill:#0c3a46;--structure-edge:#2c6070;--support:#93d5da;--support-strong:#93d5da;--support-fill:#0d3742;--support-edge:#2f6b78;--attention-ink:#f4c376;--attention-strong:#f4c376;--attention-fill:#33280f;--attention-edge:#7a5b23;--sharp-ink:#e88ace;--sharp-strong:#cc4cab;--sharp-fill:#34112a;--sharp-edge:#7c3565;--inert:#9cb6bc;--inert-fill:#12313a;--inert-edge:#2a5763;--auto-fill:#0e323b;--auto-edge:#1f4d58;--shadow:0 1px 2px #0000008c, 0 6px 18px #00000080;--scrim:#020c0f9e;--focus:#93d5da}}:root[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--ink:#e6f1f3;--ground:#051a20;--surface:#0b2b33;--surface-2:#10373f;--surface-3:#17454f;--border:#1e4b56;--border-strong:#33697a;--text:#e6f1f3;--muted:#9ebcc3;--faint:#83a5ad;--structure:#93d5da;--structure-solid:#06414f;--structure-lift:#075a6d;--structure-on:#eaf6f8;--structure-fill:#0c3a46;--structure-edge:#2c6070;--support:#93d5da;--support-strong:#93d5da;--support-fill:#0d3742;--support-edge:#2f6b78;--attention-ink:#f4c376;--attention-strong:#f4c376;--attention-fill:#33280f;--attention-edge:#7a5b23;--sharp-ink:#e88ace;--sharp-strong:#cc4cab;--sharp-fill:#34112a;--sharp-edge:#7c3565;--inert:#9cb6bc;--inert-fill:#12313a;--inert-edge:#2a5763;--auto-fill:#0e323b;--auto-edge:#1f4d58;--shadow:0 1px 2px #0000008c, 0 6px 18px #00000080;--scrim:#020c0f9e;--focus:#93d5da}*{box-sizing:border-box}html,body,#root{height:100%}body{background:var(--ground);color:var(--text);font-family:var(--sans);-webkit-font-smoothing:antialiased;margin:0;font-size:14px;line-height:1.45}h1,h2,h3,h4{letter-spacing:-.005em;margin:0;font-weight:600}h1{font-size:20px}h2{font-size:16px}h3{font-size:14px}p{margin:0 0 8px}a{color:var(--structure)}a:hover{color:var(--structure-lift)}button,input,select,textarea{font-family:inherit;font-size:inherit;color:inherit}:focus-visible{outline:2px solid var(--focus);outline-offset:1px;border-radius:2px}.shell{grid-template-columns:var(--sidebar-w) minmax(0, 1fr);height:100vh;display:grid;overflow:hidden}.sidebar{background:var(--structure-solid);color:var(--structure-on);border-right:1px solid var(--structure-solid);flex-direction:column;min-height:0;display:flex}.brand{border-bottom:1px solid var(--structure-lift);padding:16px 16px 14px}.brand-name{letter-spacing:-.005em;font-size:15px;font-weight:700}.brand-sub{color:var(--brand-sky);margin-top:2px;font-size:11.5px}.brand-ref{font-family:var(--mono);color:var(--brand-sky);opacity:.78;font-variant-numeric:tabular-nums;margin-top:5px;font-size:11px}.nav{flex:1;padding:10px 8px;overflow-y:auto}.nav a{border-radius:var(--radius);color:var(--structure-on);justify-content:space-between;align-items:center;gap:8px;margin-bottom:1px;padding:7px 10px;font-size:13.5px;text-decoration:none;display:flex}.nav a:hover{background:var(--structure-lift);color:var(--structure-on)}.nav a.active{background:var(--brand-sky);color:var(--brand-teal);font-weight:600}.nav-count{font-family:var(--mono);color:var(--brand-sky);font-variant-numeric:tabular-nums;font-size:11px;font-weight:400}.nav a.active .nav-count{color:var(--brand-teal)}.who{border-top:1px solid var(--structure-lift);align-items:center;gap:10px;padding:12px 14px;display:flex}.who-name{font-size:13px;font-weight:600;line-height:1.25}.who-role{color:var(--brand-sky);font-size:11.5px}.who-body{flex:1;min-width:0}.who-body>div{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.who .btn.subtle{color:var(--brand-sky)}.who .btn.subtle:hover{background:var(--structure-lift);color:var(--structure-on)}.avatar{background:var(--brand-sky);width:30px;height:30px;color:var(--brand-teal);border-radius:50%;flex:0 0 30px;place-items:center;font-size:11.5px;font-weight:700;display:grid}.main{background:var(--ground);min-width:0;overflow:hidden auto}.page-head{justify-content:space-between;align-items:flex-start;gap:16px;padding:18px 24px 0;display:flex}.page-head .sub{color:var(--muted);max-width:78ch;margin-top:3px;font-size:13px}.page-body{min-width:0;padding:14px 24px 32px}.tabs{border-bottom:1px solid var(--border);scrollbar-width:none;gap:2px;margin-top:14px;padding:0 24px;display:flex;overflow-x:auto}.tabs::-webkit-scrollbar{display:none}.tabs button{cursor:pointer;color:var(--muted);white-space:nowrap;background:0 0;border:none;border-bottom:2px solid #0000;padding:8px 12px 9px;font-size:13.5px}.tabs button:hover{color:var(--text)}.tabs button[aria-selected=true]{color:var(--structure);border-bottom-color:var(--structure);font-weight:600}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);min-width:0}.card-head{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:12px;padding:11px 14px;display:flex}.card-head .hint{color:var(--muted);font-size:12px;font-weight:400}.card-body{padding:14px}.card-body.flush{padding:0}.grid{gap:12px;display:grid}.grid.cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid.cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid.cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.grid.cols-6{grid-template-columns:repeat(6,minmax(0,1fr))}@media (width<=1180px){.grid.cols-6{grid-template-columns:repeat(3,minmax(0,1fr))}.grid.cols-4{grid-template-columns:repeat(2,minmax(0,1fr))}}.stat{background:var(--surface);border:1px solid var(--border);border-top:2px solid var(--structure);border-radius:var(--radius);min-width:0;padding:12px 13px}.stat-label{text-transform:uppercase;letter-spacing:.045em;color:var(--muted);font-size:11.5px}.stat-value{font-family:var(--mono);letter-spacing:-.02em;font-variant-numeric:tabular-nums;margin-top:4px;font-size:26px;font-weight:600;line-height:1.15}.stat-value.small{font-size:19px}.stat-note{color:var(--muted);margin-top:3px;font-size:12px}.stat.flag{border-top-color:var(--sharp-strong)}.stat.flag .stat-value{color:var(--sharp-ink)}.stat.warn{border-top-color:var(--attention-strong)}.stat.warn .stat-value{color:var(--attention-ink)}.digest{font-family:var(--mono);background:var(--structure-fill);border:1px solid var(--structure-edge);border-left:3px solid var(--structure);border-radius:var(--radius);color:var(--text);white-space:nowrap;font-variant-numeric:tabular-nums;padding:10px 13px;font-size:12.5px;overflow-x:auto}.digest-label{font-family:var(--sans);text-transform:uppercase;letter-spacing:.05em;color:var(--muted);margin-bottom:5px;font-size:11px}.pill{white-space:nowrap;border:1px solid #0000;border-radius:999px;align-items:center;gap:5px;padding:1px 8px;font-size:12px;font-weight:600;line-height:1.6;display:inline-flex}.pill.sm{padding:0 6px;font-size:11px}.pill-structure{background:var(--structure-fill);color:var(--structure);border-color:var(--structure-edge)}.pill-support{background:var(--support-fill);color:var(--support);border-color:var(--support-edge)}.pill-attention{background:var(--attention-fill);color:var(--attention-ink);border-color:var(--attention-edge)}.pill-sharp{background:var(--sharp-fill);color:var(--sharp-ink);border-color:var(--sharp-edge)}.pill-inert{background:var(--inert-fill);color:var(--inert);border-color:var(--inert-edge)}.chip{background:var(--surface-2);color:var(--muted);border:1px solid var(--border);white-space:nowrap;border-radius:3px;padding:1px 7px;font-size:11.5px;display:inline-block}.chip.warn{background:var(--attention-fill);color:var(--attention-ink);border-color:var(--attention-edge)}.chip.bad{background:var(--sharp-fill);color:var(--sharp-ink);border-color:var(--sharp-edge)}.chip.mono{font-family:var(--mono);font-variant-numeric:tabular-nums;font-size:11px}.table-wrap{border-radius:var(--radius);max-width:100%;overflow:auto}.table-wrap.tall{max-height:calc(100vh - 300px)}table.data{border-collapse:separate;border-spacing:0;width:100%;min-width:100%;font-size:13px}table.data th{z-index:2;background:var(--surface-2);text-align:left;text-transform:uppercase;letter-spacing:.04em;color:var(--structure);border-bottom:2px solid var(--structure);white-space:nowrap;padding:7px 10px;font-size:11.5px;font-weight:600;position:sticky;top:0}table.data th.sortable{cursor:pointer;-webkit-user-select:none;user-select:none}table.data th.sortable:hover{color:var(--structure-lift)}table.data th.auto{background:var(--auto-fill);text-transform:none;letter-spacing:0;font-size:12px;font-style:italic}table.data td.auto{background:var(--auto-fill)}table.data td{border-bottom:1px solid var(--border);vertical-align:top;padding:7px 10px}table.data tbody tr:hover td{background:var(--surface-2)}table.data tbody tr:hover td.auto{background:var(--surface-3)}table.data tbody tr.clickable{cursor:pointer}table.data tbody tr.selected td{background:var(--support-fill)}table.data td.num,table.data th.num{text-align:right;font-variant-numeric:tabular-nums}table.data td.mono{font-family:var(--mono);font-variant-numeric:tabular-nums;font-size:12px}table.data td.wrap{white-space:normal;min-width:260px}table.data td.nowrap{white-space:nowrap}table.data tfoot td{background:var(--surface-2);border-top:2px solid var(--structure);font-weight:600}table.data tr.band td{background:var(--structure-fill);color:var(--structure);text-transform:uppercase;letter-spacing:.04em;border-bottom:1px solid var(--structure-edge);padding:6px 10px;font-size:11.5px;font-weight:700}table.data tr.band td .n{font-family:var(--mono);text-transform:none;letter-spacing:0;color:var(--muted);margin-left:8px;font-weight:400}.muted{color:var(--muted)}.faint{color:var(--faint)}.mono{font-family:var(--mono);font-variant-numeric:tabular-nums}.nowrap{white-space:nowrap}.tabnum{font-variant-numeric:tabular-nums}.right{text-align:right}.center{text-align:center}.ink-sharp{color:var(--sharp-ink)}.ink-attention{color:var(--attention-ink)}.ink-structure{color:var(--structure)}.toolbar{flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:12px;display:flex}.toolbar .spacer{flex:1}input[type=text],input[type=email],input[type=password],input[type=date],input[type=number],select,textarea{background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--radius);min-width:0;padding:5px 8px}input:focus-visible,select:focus-visible,textarea:focus-visible,button:focus-visible{outline:2px solid var(--focus);outline-offset:1px}textarea{resize:vertical}label.field{margin-bottom:10px;display:block}label.field>span{text-transform:uppercase;letter-spacing:.04em;color:var(--muted);margin-bottom:3px;font-size:11.5px;display:block}label.field input,label.field select,label.field textarea{width:100%}.btn{background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--radius);cursor:pointer;color:var(--text);padding:5px 11px;font-size:13px}.btn:hover{background:var(--surface-2)}.btn.primary{background:var(--structure-solid);border-color:var(--structure-solid);color:var(--structure-on);font-weight:600}.btn.primary:hover{background:var(--structure-lift);border-color:var(--structure-lift)}.btn.subtle{color:var(--muted);background:0 0;border-color:#0000}.btn.subtle:hover{background:var(--surface-2);color:var(--text)}.btn.danger{border-color:var(--sharp-strong);color:var(--sharp-ink)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn.sm{padding:2px 8px;font-size:12px}.segmented{border:1px solid var(--border-strong);border-radius:var(--radius);display:inline-flex;overflow:hidden}.segmented button{background:var(--surface);border:none;border-right:1px solid var(--border);cursor:pointer;color:var(--muted);padding:4px 10px;font-size:12.5px}.segmented button:last-child{border-right:none}.segmented button[aria-pressed=true]{background:var(--support-fill);color:var(--support);font-weight:600}.drawer-backdrop{background:var(--scrim);z-index:40;position:fixed;inset:0}.drawer{background:var(--surface);border-left:1px solid var(--border);width:min(560px,92vw);box-shadow:var(--shadow);z-index:41;flex-direction:column;display:flex;position:fixed;top:0;bottom:0;right:0}.drawer-head{border-bottom:2px solid var(--structure);justify-content:space-between;align-items:flex-start;gap:12px;padding:14px 18px;display:flex}.drawer-body{flex:1;padding:16px 18px;overflow-y:auto}.drawer-foot{border-top:1px solid var(--border);flex-wrap:wrap;align-items:center;gap:8px;padding:12px 18px;display:flex}.blocking-error{border:1px solid var(--sharp-edge);border-left:3px solid var(--sharp-strong);background:var(--sharp-fill);border-radius:var(--radius);margin-bottom:14px;padding:10px 12px}.blocking-error .code{font-family:var(--mono);color:var(--sharp-ink);text-transform:uppercase;letter-spacing:.04em;font-size:11px}.blocking-error .msg{color:var(--text);margin-top:3px;font-weight:600}.blocking-error .hint{color:var(--muted);margin-top:4px;font-size:12.5px}.field-error{border-left:3px solid var(--sharp-strong);background:var(--sharp-fill);border-radius:0 var(--radius) var(--radius) 0;margin-top:6px;padding:6px 9px}.field-error .code{font-family:var(--mono);color:var(--sharp-ink);text-transform:uppercase;letter-spacing:.04em;font-size:10.5px}.field-error .msg{margin-top:2px;font-size:12.5px}.field-error .hint{color:var(--muted);margin-top:2px;font-size:11.5px}.banner{border:1px solid var(--attention-edge);background:var(--attention-fill);border-radius:var(--radius);align-items:center;gap:10px;padding:9px 13px;font-size:13px;display:flex}.banner.error{border-color:var(--sharp-edge);background:var(--sharp-fill)}.banner.info{border-color:var(--support-edge);background:var(--support-fill)}.banner strong{font-weight:700}.banner .spacer{flex:1}.note{color:var(--muted);border-left:2px solid var(--structure-edge);max-width:92ch;margin:6px 0 12px;padding-left:10px;font-size:12.5px}.empty{text-align:center;color:var(--muted);padding:26px 20px;font-size:13px}.empty .empty-title{color:var(--text);margin-bottom:3px;font-weight:600}.skel{background:linear-gradient(90deg, var(--surface-2) 25%, var(--surface-3) 50%, var(--surface-2) 75%);background-size:300% 100%;border-radius:3px;animation:1.3s linear infinite shimmer}@keyframes shimmer{to{background-position:-300% 0}}@media (prefers-reduced-motion:reduce){.skel{animation:none}*{scroll-behavior:auto!important}}.bar-track{background:var(--surface-3);border-radius:999px;min-width:60px;height:7px;overflow:hidden}.bar-fill{background:var(--structure);border-radius:999px;height:100%}.bar-row{align-items:center;gap:9px;display:flex}.bar-row .bar-label{text-overflow:ellipsis;white-space:nowrap;flex:0 0 190px;width:190px;font-size:12.5px;overflow:hidden}.bar-row .bar-value{text-align:right;font-variant-numeric:tabular-nums;flex:0 0 52px;width:52px;font-size:12.5px}.progress-strip{background:var(--surface-3);border-radius:3px;height:9px;display:flex;overflow:hidden}.progress-strip span{height:100%;display:block}.legend{color:var(--muted);flex-wrap:wrap;align-items:center;gap:12px;font-size:12px;display:flex}.legend .key{align-items:center;gap:5px;display:inline-flex}.legend .swatch{border:1px solid var(--border);border-radius:2px;width:11px;height:11px;display:inline-block}.gantt{max-height:calc(100vh - 250px);overflow:auto}.gantt table{border-collapse:separate;border-spacing:0;font-size:12px}.gantt th,.gantt td{border-bottom:1px solid var(--border)}.gantt th.month{text-align:center;width:46px;min-width:46px;color:var(--structure);background:var(--surface-2);z-index:2;border-left:1px solid var(--border);border-bottom:2px solid var(--structure);font-variant-numeric:tabular-nums;padding:5px 2px;font-size:10.5px;font-weight:600;position:sticky;top:0}.gantt th.month .yr{color:var(--muted);font-size:9.5px;font-weight:400;display:block}.gantt th.rowhead,.gantt td.rowhead{z-index:3;background:var(--surface);border-right:1px solid var(--border-strong);text-align:left;width:300px;min-width:300px;padding:5px 10px;position:sticky;left:0}.gantt th.rowhead{z-index:4;background:var(--surface-2);color:var(--structure);border-bottom:2px solid var(--structure);top:0}.gantt tbody tr:hover td,.gantt tbody tr:hover td.rowhead{background:var(--surface-2)}.gantt tr.phase td{background:var(--structure-fill);text-transform:uppercase;letter-spacing:.04em;color:var(--structure);padding:5px 10px;font-size:11.5px;font-weight:700;position:sticky;left:0}.gantt td.cell{border-left:1px solid var(--border);height:26px;padding:0;position:relative}.gantt .bar{background:var(--structure);cursor:pointer;border-radius:3px;min-width:3px;height:14px;position:absolute;top:6px}.gantt .bar.rag-Overdue,.gantt .bar.rag-Blocked{background:var(--sharp-strong)}.gantt .bar.rag-Behind,.gantt .bar.rag-AtRisk{background:var(--attention-strong)}.gantt .bar.rag-Watch{background:var(--attention-fill);border:1px solid var(--attention-edge)}.gantt .bar.rag-Complete{background:var(--structure)}.gantt .bar.rag-Ongoing{background:var(--support-strong)}.gantt .bar.unplanned{background-image:repeating-linear-gradient(45deg,#faf6f466 0 3px,#0000 3px 6px)}.gantt .rowtitle{align-items:center;gap:6px;min-width:0;display:flex}.gantt .rowtitle .t{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.gantt .ref{font-family:var(--mono);color:var(--muted);font-variant-numeric:tabular-nums;flex:none;font-size:10.5px}.gantt .mark{cursor:pointer;width:15px;height:15px;margin-left:-7px;position:absolute;top:5px}.gantt .mark.diamond{background:var(--structure);border-radius:2px;transform:rotate(45deg)}.gantt .mark.triangle{border-left:8px solid #0000;border-right:8px solid #0000;border-bottom:14px solid var(--sharp-strong);background:0 0;width:0;height:0;margin-left:-8px}.gantt .mark.late.diamond{background:var(--sharp-strong)}.gantt .mark.watch.diamond{background:var(--attention-strong)}.gantt .mark.late.triangle{border-bottom-color:var(--sharp-strong)}.gantt .mark.watch.triangle{border-bottom-color:var(--attention-strong)}.marker{cursor:help;border-radius:3px;flex:none;place-items:center;width:15px;height:15px;font-size:10px;font-weight:700;display:inline-grid}.marker.warn{background:var(--attention-fill);color:var(--attention-ink);border:1px solid var(--attention-edge)}.marker.bad{background:var(--sharp-fill);color:var(--sharp-ink);border:1px solid var(--sharp-edge)}table.heat{border-collapse:separate;border-spacing:0;width:auto;font-size:12px}table.heat th.corner,table.heat td.actor{z-index:3;background:var(--surface);border-right:1px solid var(--border-strong);text-align:left;width:210px;min-width:210px;padding:5px 10px;position:sticky;left:0}table.heat th.corner{z-index:4;background:var(--surface-2);color:var(--structure);border-bottom:2px solid var(--structure);top:0}table.heat th.m{z-index:2;background:var(--surface-2);color:var(--structure);border-bottom:2px solid var(--structure);border-left:1px solid var(--border);text-align:center;font-variant-numeric:tabular-nums;width:30px;min-width:30px;padding:4px 2px;font-size:10px;font-weight:600;position:sticky;top:0}table.heat th.m .yr{color:var(--muted);font-size:9px;font-weight:400;display:block}table.heat td.hc{border-left:1px solid var(--border);border-bottom:1px solid var(--border);text-align:center;font-family:var(--mono);font-variant-numeric:tabular-nums;color:var(--muted);padding:4px 2px;font-size:11px}table.heat td.hc.l0{color:var(--faint)}table.heat td.hc.l1{background:var(--support-fill);color:var(--support)}table.heat td.hc.l2{background:var(--attention-strong);color:var(--ink);font-weight:600}table.heat td.hc.l3{background:var(--sharp-strong);color:var(--brand-offwhite);font-weight:700}table.heat td.actor .drift{font-family:var(--mono);font-size:10.5px}.board{align-items:flex-start;gap:10px;padding-bottom:10px;display:flex;overflow-x:auto}.board-col{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius);flex:0 0 178px;width:178px;min-height:90px}.board-col h4{text-transform:uppercase;letter-spacing:.04em;color:var(--structure);border-bottom:1px solid var(--border);justify-content:space-between;gap:6px;padding:7px 9px;font-size:11px;display:flex}.board-col h4 .n{font-family:var(--mono);color:var(--muted)}.board-cards{gap:6px;padding:7px;display:grid}.unit-card{background:var(--surface);border:1px solid var(--border);border-radius:4px;padding:7px 8px;font-size:12px}.unit-card .uid{font-family:var(--mono);font-size:11.5px;font-weight:600}.unit-card .meta{color:var(--muted);flex-wrap:wrap;gap:6px;margin-top:2px;font-size:11px;display:flex}.unit-card .bar-track{height:4px;margin-top:6px}.unit-card.behind{border-left:3px solid var(--attention-strong)}.needs{display:grid}.needs-row{border-bottom:1px solid var(--border);color:inherit;align-items:center;gap:12px;padding:9px 14px;text-decoration:none;display:flex}.needs-row:last-child{border-bottom:none}.needs-row:hover{background:var(--surface-2)}.needs-count{font-family:var(--mono);font-variant-numeric:tabular-nums;text-align:right;flex:0 0 46px;min-width:46px;font-size:19px;font-weight:600}.needs-row .rule{background:var(--inert-edge);border-radius:2px;flex:0 0 3px;align-self:stretch;width:3px}.needs-row.sharp .rule{background:var(--sharp-strong)}.needs-row.sharp .needs-count{color:var(--sharp-ink)}.needs-row.attention .rule{background:var(--attention-strong)}.needs-row.attention .needs-count{color:var(--attention-ink)}.needs-row.clear .rule{background:var(--structure)}.needs-row.clear .needs-count{color:var(--structure)}.needs-body{flex:1;min-width:0}.needs-what{font-size:13.5px;font-weight:600}.needs-why{color:var(--muted);margin-top:1px;font-size:12px}.needs-go{color:var(--structure);white-space:nowrap;font-size:12px;font-weight:600}table.rubric{border-collapse:separate;border-spacing:0;width:auto;font-size:12.5px}table.rubric th{background:var(--surface-2);color:var(--structure);border-bottom:2px solid var(--structure);border-left:1px solid var(--border);text-align:left;vertical-align:bottom;z-index:2;padding:7px 9px;font-size:11.5px;position:sticky;top:0}table.rubric th.stage{width:118px;min-width:118px}table.rubric th.stage .lab{white-space:normal;font-size:12px;font-weight:700;display:block}table.rubric th.stage .meta{font-family:var(--mono);color:var(--muted);font-variant-numeric:tabular-nums;margin-top:3px;font-size:10px;font-weight:400;display:block}table.rubric th.stage .from-template{text-transform:uppercase;letter-spacing:.05em;color:var(--support);background:var(--support-fill);border:1px solid var(--support-edge);border-radius:2px;margin-top:3px;padding:0 4px;font-size:9.5px;font-weight:600;display:inline-block}table.rubric td{border-bottom:1px solid var(--border);border-left:1px solid var(--border);vertical-align:top;padding:7px 9px}table.rubric td.no{font-family:var(--mono);text-align:right;width:34px;color:var(--muted);font-variant-numeric:tabular-nums}table.rubric td.feature{min-width:190px;max-width:230px;font-weight:600}table.rubric td.three,table.rubric td.look{min-width:250px;max-width:300px;color:var(--muted);font-size:12px}table.rubric tr.draft td{background:var(--inert-fill);color:var(--muted)}table.rubric tr.draft td.feature{color:var(--muted);font-weight:600}.draft-note{border-left:2px solid var(--inert-edge);color:var(--muted);padding-left:9px;font-size:11.5px}.draft-note>summary{cursor:pointer;color:var(--attention-ink);font-weight:600;list-style:none}.draft-note>summary::marker{display:none}.draft-note>summary::-webkit-details-marker{display:none}.draft-note>summary:before{content:"▸ "}.draft-note[open]>summary:before{content:"▾ "}.draft-note>div{margin-top:5px}table.rubric tfoot td{background:var(--surface-2);border-top:2px solid var(--structure);z-index:1;font-weight:600;position:sticky;bottom:0}.cellbtn{border:1px solid var(--border);background:var(--surface);cursor:pointer;width:100%;min-height:40px;color:var(--text);border-radius:3px;align-content:center;justify-items:center;gap:3px;padding:4px 5px;display:grid}.cellbtn:hover{border-color:var(--structure);background:var(--structure-fill)}.cellbtn .scores{font-family:var(--mono);font-variant-numeric:tabular-nums;align-items:baseline;gap:5px;font-size:15px;font-weight:600;display:flex}.cellbtn .empty-mark{color:var(--faint);font-family:var(--mono);font-size:13px}.cellbtn .gap{text-transform:uppercase;letter-spacing:.04em;color:var(--sharp-ink);background:var(--sharp-fill);border:1px solid var(--sharp-edge);border-radius:2px;padding:0 4px;font-size:10px;font-weight:700}.cellbtn.disagreement{border-color:var(--sharp-edge);background:var(--sharp-fill)}.cellbtn.missing-ref{border-color:var(--attention-edge);background:var(--attention-fill)}.cellbtn .pages{color:var(--muted);font-size:10px;font-family:var(--mono)}.cellbtn:disabled{cursor:not-allowed;background:var(--inert-fill);border-style:dashed}.cellbtn.draft-cell{background:var(--inert-fill);color:var(--muted);border-style:dashed}.cellbtn.draft-cell:hover{border-color:var(--attention-edge);background:var(--attention-fill)}.target-badge{font-family:var(--mono);color:var(--structure);background:var(--structure-fill);border:1px solid var(--structure-edge);font-variant-numeric:tabular-nums;border-radius:2px;padding:0 4px;font-size:10.5px;font-weight:600;display:inline-block}.scale-anchors{gap:5px;display:grid}.scale-anchors .anchor{align-items:baseline;gap:9px;font-size:12.5px;display:flex}.scale-anchors .anchor .k{font-family:var(--mono);color:var(--structure);flex:none;font-weight:700}.kv{grid-template-columns:168px minmax(0,1fr);gap:4px 12px;font-size:13px;display:grid}.kv dt{color:var(--muted);font-size:12.5px}.kv dd{margin:0}.verbatim{background:var(--surface-2);border:1px solid var(--border);border-left:3px solid var(--structure-edge);border-radius:var(--radius);padding:10px 12px;font-size:12.5px}.verbatim h5{text-transform:uppercase;letter-spacing:.045em;color:var(--muted);margin:0 0 6px;font-size:11px;font-weight:600}.verbatim .locked{float:right;text-transform:none;letter-spacing:0;font-size:10.5px}.expand-row td{background:var(--surface-2)!important;padding:14px!important}.login-wrap{background:var(--ground);place-items:center;min-height:100vh;padding:24px;display:grid}.login-card{width:100%;max-width:380px}.reconstructed{color:var(--attention-ink);font-weight:600}tr.is-reconstructed td:first-child{box-shadow:inset 3px 0 0 var(--attention-strong)}.matrix td.cell-yes{background:var(--structure-fill);color:var(--structure);text-align:center;font-weight:600}.matrix td.cell-no{background:var(--surface);color:var(--faint);text-align:center}.matrix td.cell-dropped{background:var(--attention-fill);color:var(--attention-ink);text-align:center;font-weight:600}.scroll-x{max-width:100%;overflow-x:auto}.stack{gap:12px;display:grid}.row{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.sep{background:var(--border);height:1px;margin:12px 0}.tiny{font-size:11.5px}.sheetmap{background:var(--border);grid-template-columns:repeat(2,minmax(0,1fr));gap:1px;display:grid}@media (width<=1080px){.sheetmap{grid-template-columns:minmax(0,1fr)}}.sheetmap .smrow{background:var(--surface);color:inherit;align-items:baseline;gap:12px;padding:8px 12px;text-decoration:none;display:flex}.sheetmap .smrow:hover{background:var(--structure-fill)}.sheetmap .smname{flex:0 0 168px;width:168px;font-size:13px;font-weight:600}.sheetmap .smwhere{color:var(--structure);font-size:12.5px;font-weight:600}.sheetmap .smnote{color:var(--muted);font-size:11.5px}.sheetmap .smbody{min-width:0}.link-grid{grid-template-columns:repeat(auto-fill,minmax(400px,1fr));gap:14px;display:grid}.link-card{background:var(--surface);border:1px solid var(--border);border-left:3px solid var(--structure);grid-template-columns:132px 1fr;gap:16px;padding:16px;display:grid}.link-card.is-closed{border-left-color:var(--inert);opacity:.72}.link-qr img{background:#fff;width:132px;height:132px;padding:6px;display:block}.qr-closed{background:var(--structure-fill);width:132px;height:132px;color:var(--faint);font-family:var(--mono);place-items:center;font-size:12px;display:grid}.link-body{flex-direction:column;gap:10px;min-width:0;display:flex}.link-head{justify-content:space-between;align-items:baseline;gap:10px;display:flex}.link-head h4{margin:0;font-size:15px;font-weight:700}.chip-open{background:var(--structure);color:var(--structure-on)}.chip-shut{background:var(--structure-fill);color:var(--faint)}.link-url{align-items:center;gap:8px;min-width:0;display:flex}.link-url code{text-overflow:ellipsis;white-space:nowrap;background:var(--structure-fill);min-width:0;color:var(--muted);flex:1;padding:5px 8px;font-size:11.5px;overflow:hidden}.link-meta{grid-template-columns:repeat(2,1fr);gap:6px 14px;margin:0;display:grid}.link-meta div{align-items:baseline;gap:6px;display:flex}.link-meta dt{font-family:var(--mono);letter-spacing:.07em;text-transform:uppercase;color:var(--faint);font-size:10px}.link-meta dd{font-variant-numeric:tabular-nums;margin:0;font-size:13px;font-weight:600}.link-actions{align-items:center;gap:14px;margin-top:auto;font-size:13px;display:flex}.link-actions .danger{color:var(--sharp-ink);cursor:pointer;background:0 0;border:none;padding:0;font-size:13px}.link-actions .danger:hover{text-decoration:underline}.form-row{flex-wrap:wrap;align-items:flex-end;gap:12px;display:flex}.form-row label{flex-direction:column;gap:4px;display:flex}.form-row label>span{font-family:var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--faint);font-size:10px}.form-row select,.form-row input[type=text]{border:1px solid var(--border-strong);background:var(--surface);color:var(--ink);font:inherit;padding:7px 9px;font-size:14px}.file-label input[type=file]{max-width:230px;font-size:13px}.import-result{margin-top:12px;font-size:14px}.import-result .problems{color:var(--attention-ink);margin:8px 0 0;padding-left:18px;font-size:13px;line-height:1.5}.sign-page{background:var(--ground);justify-content:center;align-items:flex-start;min-height:100vh;padding:22px 16px 48px;display:flex}.sign-card{background:var(--surface);border:1px solid var(--border);border-top:4px solid var(--structure);flex-direction:column;gap:15px;width:100%;max-width:440px;padding:22px 20px 26px;display:flex}.sign-head{flex-direction:column;gap:4px;display:flex}.sign-head h1{text-wrap:balance;margin:0;font-size:21px;font-weight:700;line-height:1.25}.sign-card .field{border:none;flex-direction:column;gap:5px;margin:0;padding:0;display:flex}.sign-card .field>span,.sign-card .field>legend{color:var(--ink);padding:0;font-size:13px;font-weight:600}.sign-card .field input:not([type=radio]):not([type=checkbox]){font:inherit;border:1px solid var(--border-strong);background:var(--surface);color:var(--ink);border-radius:2px;width:100%;padding:11px 12px;font-size:16px}.sign-card .field input:not([type=radio]):not([type=checkbox]):focus-visible{outline:2px solid var(--structure);outline-offset:1px;border-color:var(--structure)}.sign-card .field small{color:var(--faint);font-size:12px}.choices{flex-wrap:wrap;gap:8px;display:flex}.choice{border:1px solid var(--border-strong);cursor:pointer;align-items:center;gap:6px;padding:9px 13px;font-size:14px;display:flex}.choice:has(input:checked){border-color:var(--structure);background:var(--support-fill);font-weight:600}.sign-card .check{align-items:flex-start;gap:9px;font-size:13.5px;line-height:1.45;display:flex}.sign-card .check input{margin-top:3px}.sign-submit{width:100%;padding:13px;font-size:16px;font-weight:700}.sign-error{background:var(--sharp-fill);border:1px solid var(--sharp-edge);color:var(--sharp-ink);padding:11px 13px;font-size:13.5px;line-height:1.5}.privacy{color:var(--faint);margin:0;font-size:11.5px;line-height:1.5}.sign-done{text-align:center;align-items:center;gap:10px}.sign-done .tick{background:var(--structure);color:#fff;border-radius:50%;place-items:center;width:56px;height:56px;font-size:30px;display:grid}.table-wrap.rubric-wrap{min-height:340px;max-height:calc(100vh - 190px);overflow:auto}table.rubric td.three,table.rubric td.look>span:first-child{-webkit-line-clamp:4;line-clamp:4;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}table.rubric.compact{width:100%}table.rubric.compact th.stage{width:78px;min-width:78px}table.rubric.compact th,table.rubric.compact td{padding:5px 7px}table.rubric.compact td.feature{min-width:210px;max-width:280px}table.rubric.compact td.feature .tiny{-webkit-line-clamp:1;line-clamp:1;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.unit-card .act{border:1px solid var(--border);background:var(--surface-2);color:var(--structure);font:inherit;cursor:pointer;border-radius:3px;padding:1px 7px;font-size:10.5px}.unit-card .act:hover{background:var(--structure-fill);border-color:var(--structure-edge)}.unit-card .concept{-webkit-line-clamp:3;line-clamp:3;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.nav-section{margin-bottom:10px}.nav-section-label{letter-spacing:.08em;text-transform:uppercase;color:var(--brand-sky);opacity:.8;padding:6px 10px 3px;font-size:10.5px}.crumb{align-items:center;gap:8px;font-size:14px;display:flex}.crumb b{font-size:18px;font-weight:700}.linkish{cursor:pointer;color:var(--structure);font:inherit;background:0 0;border:none;padding:0;font-weight:600}.linkish:hover{text-decoration:underline}.help-btn{border:1px solid var(--border-strong);background:var(--surface);width:28px;height:28px;color:var(--muted);cursor:pointer;border-radius:50%;flex:none;font-weight:700}.help-btn[aria-pressed=true]{background:var(--support-fill);color:var(--support);border-color:var(--support-edge)}.home-q{color:var(--muted);margin:4px 0 0;font-size:15px;font-weight:600}.who{letter-spacing:.06em;text-transform:uppercase;color:var(--faint);margin-top:6px;font-size:11px;font-weight:700}.task-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;display:grid}.task{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);text-align:left;cursor:pointer;font:inherit;color:var(--text);flex-direction:column;align-items:flex-start;gap:4px;min-width:0;padding:14px;display:flex}.task:hover{border-color:var(--structure);background:var(--structure-fill)}.task b{font-size:14.5px}.task>span:not(.chip){color:var(--muted);font-size:12.5px}.task .chip{margin-top:4px}.more-tools{margin-top:8px}.more-tools summary{cursor:pointer;color:var(--structure);font-size:13.5px;font-weight:600}.more-tools ul{columns:2;column-gap:24px;margin:8px 0 0;padding-left:18px}.more-tools li{break-inside:avoid;margin:3px 0}.picker{align-items:flex-end}.picker-field{flex-direction:column;gap:2px;display:flex}.picker-field>span{text-transform:uppercase;letter-spacing:.04em;color:var(--muted);font-size:11px}.chip.info{background:var(--support-fill);color:var(--support);border-color:var(--support-edge)}.brief-more summary{cursor:pointer;color:var(--structure);font-size:12.5px;font-weight:600}.tools-layout{grid-template-columns:280px minmax(0,1fr);align-items:start;gap:14px;display:grid}.tools-nav{flex-direction:column;gap:4px;display:flex}.tools-item{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);text-align:left;cursor:pointer;font:inherit;color:var(--text);flex-direction:column;gap:2px;padding:8px 10px;display:flex}.tools-item b{font-size:13px}.tools-item:hover{border-color:var(--structure)}.tools-item[aria-pressed=true]{background:var(--support-fill);border-color:var(--support-edge)}.tools-body{min-width:0}@media (width<=900px){.task-grid{grid-template-columns:1fr}.more-tools ul{columns:1}.tools-layout,.lessons-split{grid-template-columns:1fr}}
