:root{--bg: #f6f7f9;--surface: #ffffff;--border: #dfe3e8;--border-strong: #c4cad2;--text: #1c2430;--muted: #6b7684;--accent: #1f5fa9;--accent-soft: #e8f0fa;--tool-soft: #f1eef8;--tool-line: #b9aed6;--tool-text: #4a3f6b;--p-iea: #3d7dca;--p-spc: #4c9f70;--p-sps: #b5813b;--p-other: #8a7bb0;--p-estp: #9aa3ad;--p-nowp: #cbd1d8;--p-parttime: #4f95a0;--ok: #2e7d4f;--warn: #a8720f;--bad: #b3261e;--band-red: #c0392b;--band-orange: #d97b29;--band-yellow: #d8b62c;--band-blue: #2f74c0;--band-green: #2e9e5b;--declared-red: #c0392b;--declared-blue: #2f74c0;--declared-green: #2e9e5b;--load-orange: #d97b29;--load-green: #2e9e5b;--load-red: #c0392b;--radius: 6px;--mono: ui-monospace, SFMono-Regular, "SF Mono", Menlo, monospace}*{box-sizing:border-box}body{margin:0;font:13px/1.45 -apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased}button{font:inherit;color:inherit;border:1px solid var(--border-strong);background:var(--surface);border-radius:var(--radius);padding:5px 11px;cursor:pointer}button:hover:not(:disabled){background:var(--accent-soft);border-color:var(--accent)}button:disabled{opacity:.45;cursor:not-allowed}button.primary{background:var(--accent);border-color:var(--accent);color:#fff}button.primary:hover:not(:disabled){background:#17497f}button.tool{background:var(--tool-soft);border-color:var(--tool-line);color:var(--tool-text)}button.tool:hover:not(:disabled){background:#e6e0f2;border-color:#8f7fbe}button.danger{background:var(--bad);border-color:var(--bad);color:#fff;font-size:11px;padding:3px 9px;white-space:nowrap;flex:none}button.danger:hover:not(:disabled){background:#8e1d16;border-color:#8e1d16}input,select{font:inherit;padding:5px 8px;border:1px solid var(--border-strong);border-radius:var(--radius);background:var(--surface);color:inherit}input:focus,select:focus,button:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.shell{display:grid;grid-template-columns:168px 1fr;height:100vh}.rail{background:#1c2430;color:#cfd6de;display:flex;flex-direction:column;padding:14px 0}.rail h1{font-size:13px;letter-spacing:.14em;text-transform:uppercase;margin:0 16px 18px;color:#fff}.rail nav{display:flex;flex-direction:column}.rail button{background:none;border:none;border-left:3px solid transparent;border-radius:0;color:inherit;text-align:left;padding:8px 16px}.rail button:hover{background:#253040;color:#fff}.rail button[aria-current=true]{background:#253040;border-left-color:var(--accent);color:#fff;font-weight:600}.bell{position:relative;margin-top:10px;padding-top:10px;border-top:1px solid #2b3644}.rail .bell-button{display:flex;align-items:center;gap:7px;width:100%}.rail .bell-button[aria-expanded=true]{background:#253040;color:#fff}.rail .bell-button .count{margin-left:auto;font-style:normal;font-size:11px;font-weight:600;font-variant-numeric:tabular-nums;min-width:18px;text-align:center;padding:1px 5px;border-radius:999px;background:var(--accent);color:#fff}.inbox{position:fixed;left:176px;bottom:14px;z-index:40;width:420px;max-height:70vh;display:flex;flex-direction:column;background:var(--surface);color:var(--text);border:1px solid var(--border-strong);border-radius:var(--radius);box-shadow:0 10px 30px #1c243038}.inbox header{display:flex;align-items:center;gap:8px;padding:9px 11px;border-bottom:1px solid var(--border)}.inbox header .spacer{flex:1}.inbox header button{font-size:12px;padding:2px 8px}.inbox .empty{margin:0;padding:14px 12px;color:var(--muted);font-size:12px}.inbox footer{border-top:1px solid var(--border);padding:7px 11px}.inbox footer .link{border:0;background:none;padding:0;font:inherit;font-size:12px;color:var(--muted)}.inbox .feed{list-style:none;margin:0;padding:0;overflow:auto}.inbox .feed li{border-bottom:1px solid var(--border)}.inbox .feed .line{display:block;width:100%;text-align:left;border:0;border-left:3px solid transparent;border-radius:0;background:none;padding:8px 11px}.inbox .feed .line:hover{background:var(--accent-soft)}.inbox .feed li.unread .line{border-left-color:var(--accent);background:#fbfcfe}.inbox .feed li.unread .what{font-weight:600}.inbox .feed .what{display:block;font-size:12px;line-height:1.35}.inbox .feed .meta{display:block;margin-top:3px;font-size:11px;color:var(--muted)}.inbox .feed .moves{display:grid;grid-template-columns:auto 1fr auto;gap:1px 8px;margin-top:4px;font-size:11px;font-variant-numeric:tabular-nums}.inbox .feed .move{display:contents}.inbox .feed .move code{font-size:10.5px;color:var(--text)}.inbox .feed .move .was{color:var(--muted)}.inbox .feed .move b{text-align:right;font-weight:600}.inbox .feed .move b.up{color:var(--ok)}.inbox .feed .move b.down{color:var(--warn)}.mutes{list-style:none;margin:7px 0 0;padding:0;display:grid;gap:3px}.mutes label{display:flex;align-items:center;gap:6px;font-size:12px}.mutes .note{font-size:11px;color:var(--muted)}.mutes li.note{padding-left:21px;margin-top:4px}.mutes label+.note{padding-left:21px;display:block}.rail .foot{margin-top:auto;padding:12px 16px 0;font-size:11px;color:#7d8896;word-break:break-all}.main{overflow:auto;padding:18px 22px 60px}.topbar{display:flex;align-items:center;gap:10px;margin-bottom:16px}.topbar h2{margin:0;font-size:19px}.topbar .sub{color:var(--muted)}.topbar .spacer{flex:1}.topbar .crumb{padding:0;border:0;background:none;font:inherit;color:var(--muted);cursor:pointer;border-radius:4px}.topbar .crumb:hover{color:var(--accent);text-decoration:underline}.topbar .crumb:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.helplink{flex:none;display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:999px;border:1px solid var(--border-strong);background:var(--surface);color:var(--muted);font-size:12px;font-weight:700;text-decoration:none}.helplink:hover{background:var(--accent-soft);border-color:var(--accent);color:var(--accent)}.helplink:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.topbar .toggle{flex:none;height:22px;padding:0 9px;border-radius:999px;border:1px solid var(--border-strong);background:var(--surface);color:var(--muted);font-size:11px;font-weight:600;cursor:pointer}.topbar .toggle:hover{border-color:var(--accent);color:var(--accent)}.topbar .toggle[aria-pressed=true]{background:var(--accent-soft);border-color:var(--accent);color:var(--accent)}.topbar .toggle:focus-visible{outline:2px solid var(--accent);outline-offset:1px}[hidden]{display:none!important}.pill{display:inline-flex;align-items:center;gap:5px;padding:2px 9px;border-radius:999px;font-size:11px;font-weight:600;border:1px solid transparent}.pill.ok{background:#e6f4ec;color:var(--ok);border-color:#bfe0cd}.pill.warn{background:#fdf3e0;color:var(--warn);border-color:#efdcb4}.pill.bad{background:#fdeceb;color:var(--bad);border-color:#f2c9c6}.pill.mute{background:#eef0f3;color:var(--muted);border-color:var(--border)}.pill .heldnote{margin-left:2px;padding-left:6px;border-left:1px solid currentColor;font-weight:500;color:var(--warn)}.capbar{display:inline-flex;width:100%;height:10px;border:.5px solid var(--border);border-radius:3px;background:var(--bg);overflow:hidden;vertical-align:middle}.capbar .seg{height:100%;display:block}.capbar .seg.firm{background:var(--band-blue)}.capbar .seg.held{background:#e09a2c}.capbar .seg.ghost{background:repeating-linear-gradient(-45deg,#b9aed6,#b9aed6 3px,transparent 3px,transparent 6px)}.pill.green{background:#e6f4ec;color:#24693f;border-color:#bfe0cd}.pill.lime{background:#eef6e0;color:#55801f;border-color:#d3e6b4}.pill.cyan{background:#e0f3f8;color:#0e7490;border-color:#b9e0ea}.pill.red{background:#fdeceb;color:var(--bad);border-color:#f2c9c6}.pill.pink{background:#fbe8f2;color:#a3266b;border-color:#f0c9de}.pill.orange{background:#fdf1e0;color:#a2650c;border-color:#f0d8b0}.demand-pills button.pill{cursor:pointer;font-family:inherit;line-height:1.6}.demand-pills button.pill:hover{filter:brightness(.97)}.demand-pills button.pill.chosen{box-shadow:0 0 0 2px var(--accent)}.demand-pills button.pill:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.field output{display:block;padding:5px 8px;font-size:12px;border:1px dashed var(--border);border-radius:6px;color:var(--muted);background:var(--panel-alt, transparent)}.split{display:grid;grid-template-columns:260px 1fr;gap:18px;align-items:start}.split>*{min-width:0}.panel{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius)}.panel>header{padding:9px 12px;border-bottom:1px solid var(--border);font-weight:600;display:flex;align-items:center;gap:8px}.panel>header .count{color:var(--muted);font-weight:400}.panel .body{padding:12px}.colmenu{position:relative;display:inline-flex}.colmenu-pop{position:absolute;top:calc(100% + 6px);right:0;z-index:30;width:260px;max-height:60vh;overflow:auto;background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--radius);box-shadow:0 10px 30px #1c243038;font-weight:400}.colmenu-pop .head{margin:0;padding:8px 11px;border-bottom:1px solid var(--border);font-size:12px;font-weight:600}.colmenu-pop .head .count{color:var(--muted);font-weight:400;margin-left:6px}.colmenu-pop ul{list-style:none;margin:0;padding:4px 0}.colmenu-pop li{display:flex;align-items:center;gap:6px;padding:2px 8px 2px 11px}.colmenu-pop li:hover{background:var(--bg)}.colmenu-pop label{flex:1;display:flex;align-items:center;gap:7px;font-size:12px;cursor:pointer;min-width:0}.colmenu-pop label>span:not(.note){overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.colmenu-pop .note{color:var(--muted);font-size:10px;text-transform:uppercase;letter-spacing:.04em}.colmenu-pop .moves{display:inline-flex;gap:2px}.colmenu-pop .moves button{padding:0 5px;font-size:12px;line-height:18px}.colmenu-pop footer{border-top:1px solid var(--border);padding:6px 8px;text-align:right}.colmenu-pop footer button{font-size:12px}.panel-row{align-items:stretch}.panel-row>.panel{display:flex;flex-direction:column}.panel-row>.panel>.body{flex:1;display:flex;flex-direction:column}.panel-row>.panel>.body>.dim:last-child:not(:only-child){margin-top:auto}.fills-window{display:flex;flex-direction:column;min-height:100%}.fills-window>.panel{display:flex;flex-direction:column}.fills-window>.panel:has(>.scroll){flex:1;min-height:260px}.fills-window>.panel>.scroll{flex:1;min-height:0;max-height:none!important}.tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px;margin-bottom:12px}.tile{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:11px 13px}.tile .label{color:var(--muted);font-size:11px;text-transform:uppercase;letter-spacing:.06em}.tile .value{font-size:22px;font-weight:600;margin-top:3px;font-variant-numeric:tabular-nums;display:flex;flex-wrap:wrap;align-items:baseline;column-gap:3px}.tile .value .unit{font-size:12px;font-weight:400;color:var(--muted)}.tile .value .note{font-size:12px;font-weight:400;color:var(--muted);white-space:nowrap;margin-left:2px}.tile .foot{color:var(--muted);font-size:11px;margin-top:2px}button.tile{text-align:left;font:inherit;color:inherit;cursor:pointer}button.tile.clickable:hover{border-color:var(--accent);background:var(--accent-soft)}button.tile[aria-pressed=true]{border-color:var(--accent);background:var(--accent-soft);box-shadow:inset 0 -2px 0 var(--accent)}.spread{margin-bottom:6px}.spread .bar{display:flex;height:12px;border-radius:3px;overflow:hidden;background:#eef0f3}.spread .bar span{display:block}.spread .legend{display:flex;flex-wrap:wrap;gap:10px;margin-top:7px;font-size:11px;color:var(--muted)}.spread .legend i{display:inline-block;width:9px;height:9px;border-radius:2px;margin-right:4px}.spread .legend b{color:var(--text);font-variant-numeric:tabular-nums}.spread .legend.stacked{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:10px 16px;align-items:start}.spread .legend.stacked>span{display:flex;flex-direction:column;gap:1px;min-width:0}.spread .legend .item{display:flex;align-items:center;min-width:0}.spread .legend .item>b{margin-left:4px}.spread .legend .name{color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.spread .legend .foot{display:inline-flex;gap:8px;padding-left:13px}.spread .legend .delta{font-variant-numeric:tabular-nums}.spread .legend .delta.over{color:var(--declared-red);font-weight:600}.spread .legend .figure,.spread .legend .lead{font-variant-numeric:tabular-nums}.spread .legend .lead{min-width:4.7em}.spread .legend .unit{color:var(--muted);font-weight:400}.loadchart .bars{position:relative;display:flex;gap:5px;height:170px;padding-right:96px;border-bottom:1px solid var(--border-strong)}.loadchart .bars .month{flex:1;height:100%}.loadchart .stack{display:flex;flex-direction:column-reverse;height:100%}.loadchart .stack span{display:block;min-height:1px}.loadchart .stack span:last-child{border-radius:2px 2px 0 0}.loadchart .rule{position:absolute;left:0;right:0;border-top:1px dashed var(--border-strong);pointer-events:none}.loadchart .rule.high{border-top-color:var(--load-red)}.loadchart .rule.low{border-top-color:var(--load-orange)}.loadchart .rule i{position:absolute;right:0;top:-7px;font-style:normal;font-size:10px;color:var(--muted);background:var(--surface);padding-left:5px;white-space:nowrap}.loadchart .axis{display:flex;gap:5px;padding-right:96px;margin-top:4px}.loadchart .axis .month{flex:1;text-align:center}.loadchart .axis .total{font-size:11px;font-weight:600;font-variant-numeric:tabular-nums}.loadchart .axis .label{font-size:11px;color:var(--muted)}.loadchart .keys{display:flex;flex-wrap:wrap;gap:4px 14px;margin-top:10px;max-height:108px;overflow-y:auto;font-size:11px}.loadchart .keys label,.loadchart .keys .check{display:inline-flex;align-items:center;gap:4px;color:var(--muted)}.loadchart .keys i{display:inline-block;width:9px;height:9px;border-radius:2px}.loadchart .keys b{color:var(--text);font-variant-numeric:tabular-nums}table{width:100%;border-collapse:collapse;font-variant-numeric:tabular-nums}th,td{padding:5px 9px;text-align:left;border-bottom:1px solid var(--border)}th{position:sticky;top:0;background:#f2f4f7;font-size:11px;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);cursor:pointer;-webkit-user-select:none;user-select:none;white-space:nowrap;z-index:1}th:hover{color:var(--text)}th .arrow{color:var(--accent)}tbody th{position:static;background:transparent;font-size:12px;text-transform:none;letter-spacing:0;color:var(--text);cursor:default;vertical-align:top;z-index:auto}td.num,th.num{text-align:right;font-family:var(--mono);font-size:12px}tbody tr:hover{background:#f7f9fc}tfoot tr.totals td{position:sticky;bottom:0;background:var(--accent-soft);color:var(--accent);font-weight:700;border-top:1px solid var(--accent);cursor:default}tbody tr[aria-selected=true]{background:var(--accent-soft)}tbody tr{cursor:pointer}.scroll{max-height:460px;overflow:auto}.code{font-family:var(--mono);font-size:12px}.dim{color:var(--muted)}.sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}.people{max-height:calc(100vh - 190px);overflow:auto}.people button{display:block;width:100%;text-align:left;border:none;border-bottom:1px solid var(--border);border-radius:0;padding:7px 12px;background:none}.people button:hover{background:#f7f9fc}.people button[aria-current=true]{background:var(--accent-soft);font-weight:600}.people .name{display:block}.people .meta{display:flex;align-items:center;gap:6px;color:var(--muted);font-size:11px;margin-top:2px}.people .gauge{flex:1;height:4px;background:#e6e9ed;border-radius:2px;overflow:hidden}.people .capbar{flex:1}.people .gauge i{display:block;height:100%;background:var(--accent)}.people .free{min-width:34px;text-align:right;font-variant-numeric:tabular-nums;color:var(--muted)}.people .pct{min-width:34px;text-align:right;font-variant-numeric:tabular-nums}.facet{display:flex;flex-direction:column;max-height:calc(100vh - 300px);overflow:auto}.facet button{display:grid;grid-template-columns:1fr auto;gap:3px 6px;align-items:baseline;width:100%;text-align:left;font:inherit;color:inherit;background:none;border:none;border-left:3px solid transparent;border-radius:0;padding:5px 12px}.facet button:hover{background:#f7f9fc}.facet button[aria-pressed=true]{background:var(--accent-soft);border-left-color:var(--accent);font-weight:600}.facet button .n{font-family:var(--mono);font-size:11px;color:var(--muted)}.facet button .bar{grid-column:1 / -1;height:3px;background:#eef0f3;border-radius:2px;overflow:hidden}.facet button .bar i{display:block;height:100%;background:#b9c8db}.facet button[aria-pressed=true] .bar i{background:var(--accent)}.months{display:flex;align-items:flex-end;gap:3px;height:46px}.months i{flex:1;display:block;min-height:1px;background:#b9c8db;border-radius:2px 2px 0 0}.months i.peak{background:var(--accent)}.months.paired{gap:4px}.months .pair{flex:1;align-self:stretch;height:100%;display:flex;align-items:flex-end;gap:1px;min-width:0}.months .pair i{flex:1}.months i.need{background:#b9c8db}.months i.plan{background:#86b79a}.months .pair:hover i.need{background:var(--accent)}.months .pair:hover i.plan{background:var(--ok)}.months-key{display:flex;gap:10px;margin-top:5px;font-size:11px;color:var(--muted)}.months-key span{display:flex;align-items:center;gap:4px}.months-key span:before{content:"";width:8px;height:8px;border-radius:2px}.months-key .need:before{background:#b9c8db}.months-key .plan:before{background:#86b79a}.month-labels{display:flex;gap:3px;margin-top:4px;font-size:10px;color:var(--muted);font-family:var(--mono)}.month-labels span{flex:1;text-align:center}.months-chart{flex:1;display:flex;flex-direction:column;min-height:140px}.months-chart .months-plot{flex:1;display:flex;min-height:0}.months-chart .y-axis{position:relative;flex:none;width:22px;border-right:1px solid var(--border);font-family:var(--mono);font-size:10px;color:var(--muted)}.months-chart .y-axis span{position:absolute;right:4px;transform:translateY(50%);line-height:1}.months-chart .months-area{position:relative;flex:1;min-width:0;display:flex}.months-chart .gridlines{position:absolute;top:0;right:0;bottom:0;left:0}.months-chart .gridlines i{position:absolute;left:0;right:0;height:1px;background:#eef1f5}.months-chart .gridlines i:first-child{background:var(--border)}.months-chart .months{flex:1;height:auto;gap:5px;min-width:0;position:relative}.months-chart .months i{border-radius:3px 3px 0 0;display:flex;align-items:center;justify-content:center;overflow:hidden}.months-chart .months i:hover{background:var(--accent)}.months-chart .months i b{font-family:var(--mono);font-size:9px;font-weight:600;line-height:1;color:#37475a}.months-chart .months i.peak b,.months-chart .months i:hover b{color:#fff}.months-chart .month-labels{gap:5px;font-size:11px}.months-chart .month-labels span.peak{color:var(--text);font-weight:600}.months-chart .month-labels span.unit{flex:none;width:22px;padding-right:4px;text-align:right;font-size:9px;letter-spacing:.04em}.detail-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(270px,1fr));gap:16px}.detail-grid h4{margin:0 0 6px;font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}.detail-grid h4:not(:first-child){margin-top:14px}.kv{display:grid;grid-template-columns:auto minmax(0,1fr);gap:2px 10px;font-size:12px;margin:0}.kv dt{color:var(--muted)}.kv dd{margin:0;min-width:0}.kv dd input,.kv dd select,.kv dd textarea{max-width:100%}.window-edit{display:inline-flex;flex-wrap:wrap;align-items:center;gap:5px}.panel .body.pending-edits{display:flex;flex-wrap:wrap;align-items:center;gap:8px;padding:8px 12px;font-size:12px;border-top:1px solid #efdcb4;background:#fdf3e0}.pending-edits span{flex:1;min-width:140px}.pending-edits button{font-size:12px;padding:3px 10px;flex:none}.window-edit input{font-size:11px;padding:1px 4px}.quote{font-size:12px;border-left:2px solid var(--border-strong);padding:1px 0 1px 8px;margin-bottom:6px}.quote b{display:block;color:var(--muted);font-size:10px;text-transform:uppercase;letter-spacing:.06em}.history{list-style:none;margin:0;padding:0}.history li{border-left:2px solid var(--border-strong);padding:1px 0 4px 8px;margin-bottom:6px;position:relative}.history li:before{content:"";position:absolute;left:-4px;top:6px;width:6px;height:6px;border-radius:50%;background:var(--border-strong)}.history li:first-child:before{background:var(--accent)}.cov{display:inline-flex;align-items:center;gap:5px;justify-content:flex-end}.cov .track{flex:none;width:34px;height:5px;border-radius:3px;background:#eef0f3;overflow:hidden}.cov .track i{display:block;height:100%}.bands{display:flex;flex-wrap:wrap;gap:4px;padding:0 12px 10px}.bands button{display:inline-flex;align-items:center;gap:5px;padding:2px 7px;font-size:11px;font-variant-numeric:tabular-nums;border-radius:999px;border:1px solid var(--border);background:var(--surface)}.bands button[aria-pressed=true]{border-color:var(--accent);background:var(--accent-soft);font-weight:600}.bands button i{width:8px;height:8px;border-radius:2px;display:inline-block}.bands button.empty{opacity:.45}.controls{display:grid;gap:6px}.controls select{width:100%}.cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:11px}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:13px;cursor:pointer;text-align:left;font:inherit;color:inherit}.card:hover{border-color:var(--accent);background:var(--accent-soft)}.card h3{margin:0 0 8px;font-size:13px}.card h3 .note{font-weight:400;color:var(--muted);font-size:11px}.card .row{display:flex;justify-content:space-between;color:var(--muted);font-size:12px;padding:1px 0}.card .row b{color:var(--text);font-variant-numeric:tabular-nums}.card .row b .note{font-weight:400;font-size:11px;color:var(--muted);white-space:nowrap}.card .row.fte b{font-size:13px}.card .row.split{font-size:11px}.card .row.split span{padding-left:14px}.card .row.split b{color:var(--muted);font-weight:500}.card .gauge{display:flex;height:5px;background:#e6e9ed;border-radius:3px;margin-top:9px;overflow:hidden}.card .gauge i{display:block;height:100%;background:var(--accent);flex:none}td .note{color:var(--muted);font-size:11px;white-space:nowrap;margin-left:4px}.cards+.panel,.cards+.cards{margin-top:12px}.cardswitch{display:inline-flex}.cardswitch button{border-radius:0;margin-left:-1px}.cardswitch button:first-child{border-radius:var(--radius) 0 0 var(--radius);margin-left:0}.cardswitch button:last-child{border-radius:0 var(--radius) var(--radius) 0}.cardswitch button[aria-pressed=true]{border-color:var(--accent);background:var(--accent-soft);color:var(--accent);font-weight:600;position:relative}.field{display:flex;flex-direction:column;gap:3px}.field label{font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.05em}.swatch{display:inline-block;width:9px;height:9px;border-radius:2px;vertical-align:baseline}.swatch.band-orange{background:var(--band-orange)}.swatch.band-yellow{background:var(--band-yellow)}.swatch.band-blue{background:var(--band-blue)}.swatch.band-green{background:var(--band-green)}.row-form{display:flex;gap:10px;flex-wrap:wrap;align-items:flex-end}.row-form.top{align-items:flex-start}.demand-editor .field{flex:1 1 110px;min-width:100px}.demand-editor .field>input{width:100%;min-width:0}.demand-editor .field.answered{flex:2 1 210px}.demand-editor .readout{display:block;padding:4px 0 3px;border:0;background:none;color:var(--text);font-size:15px;font-variant-numeric:tabular-nums;line-height:20px}.demand-editor .prov{display:block;font-size:10.5px;color:var(--muted);line-height:1.35}.demand-editor .prov.off{color:var(--bad)}.field.missing>input,.field.missing>select,.field.missing>textarea,.field.missing .combo input,.field.missing .window-edit input{border-color:var(--bad);background:#fdf6f5}.field.missing>label{color:var(--bad)}.new-request .detail-grid{gap:20px}.new-request textarea,.new-request .field>input,.new-request .field>select{width:100%}dialog{border:1px solid var(--border-strong);border-radius:8px;padding:0;width:min(760px,94vw);box-shadow:0 18px 48px #141e2d38}dialog::backdrop{background:#121a246b}dialog.wide{max-width:1000px;width:92vw}dialog.wide .body{max-height:68vh;overflow:auto}.report table{margin-bottom:10px}.report th{position:static}.report h3:first-child{margin-top:0}dialog header{padding:12px 16px;border-bottom:1px solid var(--border);font-weight:600}dialog .body{padding:16px}dialog footer{padding:12px 16px;border-top:1px solid var(--border);display:flex;gap:8px;justify-content:flex-end}button.ghost{border-color:transparent;background:none;color:var(--muted);padding:2px 8px;font-size:11px;white-space:nowrap;flex:none}button.ghost:hover:not(:disabled){color:var(--accent);background:var(--accent-soft);border-color:var(--border)}.combo{position:relative}.combo input{width:100%;font-family:var(--mono);font-size:12px}.combo.names input{font-family:inherit;font-size:13px}.combo-list{position:absolute;top:100%;left:0;right:0;z-index:20;margin:2px 0 0;padding:3px;list-style:none;max-height:240px;overflow:auto;background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--radius);box-shadow:0 10px 26px #141e2d2e}.combo-list li{padding:4px 8px;border-radius:4px;cursor:pointer;display:flex;gap:9px;align-items:baseline}.combo-list li[aria-selected=true]{background:var(--accent-soft)}.combo-list li .code{flex:none}.combo-list li .md{flex:none;width:46px;text-align:right;font-variant-numeric:tabular-nums;font-size:11px;color:var(--muted)}.combo-list li .dim{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:11px}.combo-list li.none{color:var(--muted);cursor:default}.combo-foot{margin-top:3px;font-size:11px;color:var(--muted);display:flex;gap:6px;align-items:center}.combo-foot .combo-clear{margin-left:auto;padding:0 6px;font-size:11px;line-height:17px}.row-form .field.combo-field .combo-foot{position:absolute;top:100%;left:0;right:0}.row-form:has(.combo-field){padding-bottom:16px}tbody tr.over{color:var(--bad);font-weight:600}tbody tr.exact{color:var(--accent)}tbody tr.incomplete{color:var(--bad);font-weight:600}tbody tr.since td:first-child{box-shadow:inset 3px 0 0 var(--accent)}tbody tr.derived{background:#fafbfc;cursor:default}tbody tr.derived:hover{background:#fafbfc}.pop-window>.main{display:flex;flex-direction:column;min-height:0;overflow:hidden;padding-bottom:18px}.pop-window .fills{display:flex;flex-direction:column;flex:1;min-height:0}.pop-window .fills>.body{display:flex;flex-direction:column;flex:1;min-height:0;overflow:auto}.pop-window .fills>.body>.panel{display:flex;flex-direction:column;flex:1;min-height:0}.pop-window .fills .panel>.scroll{flex:1;min-height:0;max-height:none!important}.edit-actions{display:flex;gap:8px;align-items:center;justify-content:flex-end;border-top:1px solid var(--border);padding-top:12px;margin-top:14px}.total{display:inline-flex;align-items:center;gap:7px;color:var(--muted);font-size:12px}.total b{font-size:15px;font-variant-numeric:tabular-nums}.banner{padding:9px 12px;border-radius:var(--radius);margin-bottom:12px;border:1px solid}.banner.error{background:#fdeceb;border-color:#f2c9c6;color:var(--bad)}.banner.info{background:var(--accent-soft);border-color:#c3d7ee;color:var(--accent)}.banner.away{background:var(--accent-soft);border-color:#c3d7ee;color:var(--accent);display:flex;align-items:center;gap:8px}.banner.away .spacer{flex:1}.banner.away button{font-size:12px;padding:3px 9px}.confirm{border:1px solid var(--border-strong);border-left:3px solid var(--warn);border-radius:var(--radius);background:#fffdf7;padding:11px 13px;margin-bottom:12px;display:flex;flex-direction:column;gap:6px}.confirm p{margin:0}.confirm .actions{display:flex;gap:8px;justify-content:flex-end;margin-top:4px}.confirm label.check{color:var(--text);align-items:flex-start}.empty{padding:34px;text-align:center;color:var(--muted)}.toolbar{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-bottom:9px}.toolbar .grow{flex:1}label.check{display:inline-flex;align-items:center;gap:5px;color:var(--muted)}.panel>header label.check{white-space:nowrap}.statuses,.gaps{display:flex;flex-wrap:wrap;gap:4px;align-items:center;margin-bottom:9px}.statuses button,.gaps button{display:inline-flex;align-items:center;gap:5px;padding:2px 8px;font-size:11px;border-radius:999px;border:1px solid var(--border);background:var(--surface);white-space:nowrap}.statuses button[aria-pressed=true],.gaps button[aria-pressed=true]{border-color:var(--accent);background:var(--accent-soft);font-weight:600}.statuses button.empty,.gaps button.empty{opacity:.45}.statuses button b,.gaps button b{font-variant-numeric:tabular-nums;color:var(--muted)}.statuses button[aria-pressed=true] b,.gaps button[aria-pressed=true] b{color:var(--accent)}.statuses .spacer{flex:1}.threshold{display:inline-flex;align-items:center;gap:4px;padding:2px 8px;font-size:11px;border-radius:999px;border:1px solid var(--border);background:var(--surface);color:var(--muted);white-space:nowrap}.threshold input{width:56px;padding:1px 4px;font-size:11px;color:var(--text);font-variant-numeric:tabular-nums}.threshold:has(input:not(:placeholder-shown)){border-color:var(--accent);background:var(--accent-soft);color:var(--accent);font-weight:600}.signin{display:grid;place-items:center;min-height:100vh;padding:24px;background:var(--bg)}.signin .panel{width:min(380px,100%)}.signin label,dialog.signin-dialog label{display:block;margin-bottom:10px}.signin label span,dialog.signin-dialog label span{display:block;font-size:12px;color:var(--muted);margin-bottom:3px}.signin label input,dialog.signin-dialog label input{width:100%}.signin button[type=submit],dialog.signin-dialog button[type=submit]{width:100%;margin-top:4px}dialog.signin-dialog{width:min(380px,92vw)}.pwbuttons{display:flex;gap:8px;margin-top:4px}.pwbuttons button[type=submit]{margin-top:0}.pwbuttons button[type=button]{flex:0 0 auto}.muted{color:var(--muted);font-size:12px}.form-row{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-bottom:8px}.codelist{display:flex;flex-wrap:wrap;gap:4px 10px;margin-top:8px;max-height:180px;overflow:auto;font-family:var(--mono);font-size:12px}button.linkish{border:none;background:none;padding:0 2px;color:var(--muted);font:inherit;cursor:pointer}button.linkish:hover{color:var(--accent);background:none}.rail .who{color:#9fb0c4;font-size:11px}.rail .who strong{color:#fff;display:block;font-size:12px}.rail .who button{padding:2px 6px;font-size:11px;margin-top:4px}.rail .who .acts{display:flex;flex-wrap:wrap;gap:6px}.request-totals{display:flex;flex-wrap:wrap;align-items:stretch;gap:6px;margin-bottom:9px}.request-totals .years{display:flex;flex-direction:column;justify-content:center;gap:3px;margin-right:4px}.request-totals .years button{padding:1px 9px;font-size:11px;border-radius:999px;border:1px solid var(--border);background:var(--surface);font-variant-numeric:tabular-nums;white-space:nowrap}.request-totals .years button[aria-pressed=true]{border-color:var(--accent);background:var(--accent-soft);font-weight:600;color:var(--accent)}.request-total{display:flex;flex-direction:column;gap:1px;min-width:116px;padding:5px 10px;border-radius:8px;border:1px solid var(--border);background:#eef0f3;color:var(--muted)}.request-total .label{font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.03em}.request-total .value{font-size:17px;font-weight:700;font-variant-numeric:tabular-nums;line-height:1.15}.request-total .value .unit{font-size:10px;font-weight:600}.request-total .note{font-size:10px;font-variant-numeric:tabular-nums}.request-total.empty{opacity:.55}.request-total.mute{background:#eef0f3;color:var(--muted);border-color:var(--border)}.request-total.green{background:#e6f4ec;color:#24693f;border-color:#bfe0cd}.request-total.lime{background:#eef6e0;color:#55801f;border-color:#d3e6b4}.request-total.cyan{background:#e0f3f8;color:#0e7490;border-color:#b9e0ea}.request-total.red{background:#fdeceb;color:var(--bad);border-color:#f2c9c6}.request-total.pink{background:#fbe8f2;color:#a3266b;border-color:#f0c9de}.request-total.orange{background:#fdf1e0;color:#a2650c;border-color:#f0d8b0}.yearstrip{display:flex;width:100%}.yearstrip button{flex:1;padding:4px 0 3px;font-size:12px;border-radius:0;border-left-width:0;line-height:1.2}.yearstrip button:first-child{border-left-width:1px;border-radius:var(--radius) 0 0 var(--radius)}.yearstrip button:last-child{border-radius:0 var(--radius) var(--radius) 0}.yearstrip button.on{background:var(--accent);border-color:var(--accent);color:#fff;font-weight:600}.yearstrip button.on:hover{background:#17497f}.yearstrip button span{display:block;font-size:9px;letter-spacing:.06em;text-transform:uppercase;opacity:.7;min-height:11px}.pickrow{display:flex;align-items:baseline;gap:10px;padding:4px 2px;border-bottom:1px solid #eef1f4;cursor:pointer;font-size:12.5px}.pickrow:last-child{border-bottom:0}.pickrow:hover{background:#fafbfc}.pickrow input{margin:0}.pickrow code{font-family:var(--mono);font-size:11.5px;flex:none}.pickrow .grow{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pickrow .num{font-variant-numeric:tabular-nums;flex:none}.pickrow .dim{flex:none;font-size:11.5px}.topbar .yearstrip{width:auto;flex:none}.topbar .yearstrip button{flex:none;padding-inline:10px}.boardgrid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);gap:12px;margin-bottom:12px}@media(max-width:1100px){.boardgrid{grid-template-columns:minmax(0,1fr)}}.board .topbar select{max-width:260px}.board .boardnote{margin:0 0 10px;padding:7px 10px;border:.5px solid #f2c9c6;border-radius:var(--radius);background:#fdeceb;color:var(--bad);font-size:12px}.queue{display:flex;flex-direction:column;max-height:558px;overflow:auto}.queue .qhead{margin:12px 0 4px;padding:0 12px;font-size:11px;text-transform:uppercase;letter-spacing:.04em;color:var(--muted)}.queue .req{display:grid;grid-template-columns:44px minmax(0,.7fr) minmax(0,1.3fr) auto 64px;gap:8px;align-items:center;padding:7px 12px;border:0;border-bottom:.5px solid var(--border);border-left:2px solid transparent;border-radius:0;background:none;text-align:left;font:inherit}.queue button.req{cursor:pointer}.queue button.req:hover{background:var(--bg)}.queue .req[aria-current=true]{border-left-color:var(--accent);background:var(--accent-soft)}.queue .req.held{grid-template-columns:88px minmax(0,1.3fr) minmax(0,.7fr) auto 44px auto}.queue .req .what,.queue .req .proj{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.queue .req .proj{color:var(--muted);font-size:12px}.queue .req.qsort{position:sticky;top:0;z-index:1;padding-top:4px;padding-bottom:4px;background:var(--surface);border-bottom:.5px solid var(--border)}.queue .req.qsort .sorth{display:flex;align-items:center;gap:3px;padding:0;border:0;background:none;font:inherit;font-size:11px;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);cursor:pointer}.queue .req.qsort .sorth:hover{color:var(--text)}.queue .req.qsort .sorth.on{color:var(--text);font-weight:600}.queue .req.qsort .sorth .arrow{font-size:9px}.queue .req.qsort .sorth:last-child{justify-content:flex-end}.queue .req button.what{border:0;background:none;padding:0;text-align:left;font:inherit;color:inherit;cursor:pointer}.queue .req button.what:hover{text-decoration:underline}.queue .req .num{text-align:right;font-variant-numeric:tabular-nums}.queue .req .chip{font-size:10.5px;padding:1px 6px;border-radius:var(--radius);text-align:center;white-space:nowrap}.queue .req .chip.with-coe{background:#faeeda;color:#854f0b}.queue .req .chip.discussing{background:var(--tool-soft);color:var(--tool-text)}.queue .req .chip.assessing,.queue .req .chip.asked{background:var(--bg);color:var(--muted)}.queue .req .chip.booked{background:#e3f0e6;color:#1f6b48}.queue .req .chip.set-aside{background:#f6e5e5;color:var(--bad)}.board .panel>header .count{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.board .panel>header .filter{margin-left:auto;flex:none;width:148px}.board .panel>header .onlymine{margin-left:auto;flex:none;display:flex;align-items:center;gap:5px;font-size:11px;font-weight:400;color:var(--muted);white-space:nowrap;cursor:pointer}.board .panel>header .onlymine input{margin:0;cursor:pointer}.board .panel>header .onlymine:hover{color:var(--text)}.crew{display:flex;flex-direction:column;max-height:348px;overflow:auto}.member{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(190px,1fr) 124px;gap:10px;align-items:center;padding:7px 12px;border-bottom:.5px solid var(--border)}.member .name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.member .bar{display:flex;flex-direction:column;gap:3px}.member .bar .sub{font-size:11px;color:var(--muted);font-variant-numeric:tabular-nums}.member .act{text-align:right}.member .act button{width:100%;font-size:11px;padding:3px 8px}.member .act button.over{border-color:#f2c9c6;color:var(--bad);background:#fdeceb}.member .act button.over:hover{border-color:var(--bad)}.boardright{display:flex;flex-direction:column;gap:12px;min-width:0}.boardright>.panel:last-child{flex:1 1 auto;min-height:0;display:flex;flex-direction:column}.boardright>.panel:last-child .boardfoot{margin-top:auto}.onproject{display:flex;flex-direction:column;max-height:112px;overflow:auto}.onprow{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.4fr) 92px;gap:8px;align-items:baseline;padding:5px 12px;border-bottom:.5px solid var(--border);font-size:12px}.onprow .name,.onprow .what,.onprow .num{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.onprow .what{color:var(--muted)}.onprow .num{text-align:right;font-variant-numeric:tabular-nums;color:var(--muted)}button.onprow{border:0;border-bottom:.5px solid var(--border);border-radius:0;background:none;font:inherit;font-size:12px;color:inherit;text-align:left;cursor:pointer;width:100%}button.onprow:hover{background:var(--bg)}button.onprow.on{background:var(--accent-soft)}.onprow.outside .name{color:var(--muted)}.member.on{background:var(--accent-soft);box-shadow:inset 2px 0 0 var(--accent)}dialog.personyear header>span{white-space:nowrap}.persontasks .code{font-family:var(--mono);font-size:11.5px;white-space:nowrap}.persontasks .num,.persontasks th.num{text-align:right}.persontasks tbody tr.marked{background:var(--accent-soft)}.persontasks tbody tr.marked td{color:var(--accent);font-weight:600}.persontasks th{cursor:default}.projsides{margin-bottom:14px}.projsides th{cursor:default}.projsides tbody th{font-weight:600;white-space:nowrap;text-transform:none;font-size:13px;color:var(--text);position:static;background:none}.projsides .num{text-align:right;white-space:nowrap}.projsides td.bar,.projsides th.bar{width:40%}.projbar{display:flex;width:100%;height:10px;border:.5px solid var(--border);border-radius:3px;background:var(--bg);overflow:hidden}.projbar .seg{height:100%;display:block}.projbar .seg.alloc{background:var(--band-blue)}.projbar .seg.open{background:#e09a2c}.projsides td.alloc{color:var(--band-blue);font-weight:600}.projsides td.open{color:#a8720f;font-weight:600}.projtasks tbody tr.marked td{color:var(--accent);font-weight:600}.boardfoot{padding:8px 12px;border-top:.5px solid var(--border);font-size:12px;color:var(--muted)}.ribbon{display:flex;flex-wrap:wrap;gap:4px;margin:0 0 8px;padding:0}.ribbon .step{font-size:10.5px;line-height:18px;padding:0 9px;border-radius:9px;border:1px solid var(--border);color:var(--muted);background:var(--surface);white-space:nowrap}.ribbon .step.done{border-color:transparent;background:var(--bg)}.ribbon .step.on{border-color:#d8a24a;background:#faeeda;color:#854f0b;font-weight:600}.ribbon.aside{font-size:11.5px;color:var(--bad);background:#f6e5e5;border-radius:var(--radius);padding:4px 9px}.answer-lines td{vertical-align:top}.answer-lines .linky{padding:0;color:var(--accent);text-decoration:underline}.answer-lines .heldmd{color:var(--warn);font-weight:600}.answer-cover{font-size:12px;margin:8px 0 0;color:var(--muted)}.answer-cover .ok{color:var(--ok);font-weight:600}.answer-cover .warn{color:var(--warn);font-weight:600}.answer-drift{margin:6px 0 0;padding:6px 9px;border-radius:var(--radius);background:#fdeceb;color:var(--bad);font-size:11.5px;line-height:1.4}.answer-drift button{margin-left:6px;color:var(--bad);text-decoration:underline;padding:0}.statusline{display:flex;align-items:center;gap:8px}.statusline select{flex:1;min-width:0}fieldset.locked{border:0;margin:0;padding:0;min-width:0;opacity:.72}fieldset.locked select,fieldset.locked input,fieldset.locked button{cursor:not-allowed}.portfolio .topbar select{max-width:260px}.portfolio .lens{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:8px 12px;margin-bottom:12px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius)}.portfolio .lens .label,.portfolio .hidefilters .label{font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}.portfolio .lens .sep{width:1px;height:22px;background:var(--border)}.portfolio .lens .count{margin-left:auto;font-size:12px;color:var(--muted)}.portfolio .lens select{max-width:320px}.portfolio .choice{display:inline-flex;border:1px solid var(--border-strong);border-radius:var(--radius);overflow:hidden}.portfolio .choice button{border:0;border-radius:0;border-right:1px solid var(--border);padding:4px 10px}.portfolio .choice button:last-child{border-right:0}.portfolio .choice button[aria-pressed=true]{background:var(--accent-soft);color:var(--accent);font-weight:600}.portfolio .pager{display:inline-flex;align-items:center;gap:4px}.portfolio .pager button{padding:3px 9px}.portfolio .pager .pos{font-family:var(--mono);font-size:11.5px;color:var(--muted);padding:0 4px}.portfoliogrid{display:grid;grid-template-columns:minmax(340px,420px) minmax(0,1fr);gap:12px;margin-bottom:12px;align-items:start}@media(max-width:1100px){.portfoliogrid{grid-template-columns:1fr}}.portfolio .reqlist{display:flex;flex-direction:column;max-height:232px;overflow:auto;border-bottom:1px solid var(--border)}.portfolio .reqrow{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:2px 10px;align-items:baseline;padding:6px 12px;border:0;border-left:3px solid transparent;border-bottom:1px solid var(--border);border-radius:0;background:none;text-align:left;font:inherit;color:inherit;cursor:pointer}.portfolio .reqrow:last-child{border-bottom:0}.portfolio .reqrow:hover{background:var(--bg)}.portfolio .reqrow.on{border-left-color:var(--accent);background:var(--accent-soft)}.portfolio .reqrow.answered{opacity:.6}.portfolio .reqrow .t{font-weight:600;font-size:12.5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.portfolio .reqrow .md{font-family:var(--mono);font-size:12px;text-align:right;font-variant-numeric:tabular-nums}.portfolio .reqrow .m{font-size:11px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.portfolio .reqrow .pill{justify-self:end}.portfolio .brief{padding:12px;display:flex;flex-direction:column;gap:10px}.portfolio .kv{display:grid;grid-template-columns:112px minmax(0,1fr);gap:5px 10px;margin:0;font-size:12.5px}.portfolio .kv dt{color:var(--muted)}.portfolio .kv dd{margin:0;min-width:0}.portfolio .kv dd .code{font-family:var(--mono);font-size:11.5px;color:var(--muted)}.portfolio .kv dd.desc div{margin-top:2px;line-height:1.45}.portfolio .need{border:1px solid var(--border);border-radius:var(--radius);padding:9px 11px}.portfolio .need .head{display:flex;align-items:baseline;gap:8px;margin-bottom:6px;flex-wrap:wrap}.portfolio .need .head .label{font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}.portfolio .need .head .big{font-size:20px;font-weight:600;font-family:var(--mono)}.portfolio .need .head .unit{font-size:11px;color:var(--muted)}.portfolio .need .head .split{margin-left:auto;font-size:11px;color:var(--muted)}.portfolio .need .chart{display:grid;grid-template-columns:30px minmax(0,1fr);gap:0 6px}.portfolio .need .y{display:flex;flex-direction:column;justify-content:space-between;height:70px;font-family:var(--mono);font-size:9.5px;color:var(--muted);text-align:right}.portfolio .need .months{height:70px;border-bottom:1px solid var(--border);position:relative}.portfolio .need .months:before{content:"";position:absolute;left:0;right:0;top:50%;border-top:1px dashed var(--border)}.portfolio .need .month-labels{grid-column:2}.portfolio .need .foot{display:flex;gap:12px;margin-top:6px;font-size:11px;color:var(--muted)}.portfolio .need .foot b{color:var(--text);font-family:var(--mono);font-weight:500}.portfolio .need .coverage{margin-top:8px;padding-top:8px;border-top:1px solid var(--border)}.portfolio .need .cov{display:flex;justify-content:flex-start;gap:0;height:8px;background:#e6e9ed;border-radius:4px;overflow:hidden}.portfolio .need .cov i{display:block;height:100%}.portfolio .need .cov i.plan{background:#86b79a}.portfolio .need .cov i.held{background:#e09a2c}.portfolio .need .key{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-top:5px;font-size:11px;color:var(--muted)}.portfolio .need .key b{color:var(--text);font-family:var(--mono);font-weight:500}.portfolio .need .key .ratio{margin-right:auto}.portfolio .need .key .sw{display:inline-block;width:8px;height:8px;border-radius:2px;margin-right:4px;vertical-align:baseline}.portfolio .need .key .sw.plan{background:#86b79a}.portfolio .need .key .sw.held{background:#e09a2c}.portfolio .need .key .sw.gap{background:#e6e9ed;border:1px solid var(--border-strong)}.portfolio .need .key .full{color:var(--ok)}.portfolio .comment{margin:0;border-left:3px solid var(--border-strong);padding:4px 10px;font-size:12.5px;background:#fbfcfe}.portfolio .comment.none{color:var(--muted);border-left-color:var(--border)}.portfolio .comment .who{display:block;font-size:11px;color:var(--muted);margin-top:3px}.portfolio .crewcards>header{flex-wrap:wrap}.portfolio .hidefilters{display:flex;align-items:center;gap:12px;margin-left:auto;font-size:12px;font-weight:400}.portfolio .hidefilters .n{font-family:var(--mono);font-size:11px;color:var(--muted)}.portfolio .showing{display:flex;gap:14px;padding:7px 12px;font-size:11.5px;color:var(--muted);border-bottom:1px solid var(--border);flex-wrap:wrap}.portfolio .showing b{color:var(--text);font-weight:500}.portfolio .cards{padding:12px}.portfolio .pcard{cursor:default}.portfolio .pcard h3{display:flex;align-items:baseline;gap:6px}.portfolio .pcard h3 .note{flex:1 1 auto;min-width:0}.portfolio .pcard h3 .stars{flex:0 0 auto;margin-left:auto;font-size:13px;letter-spacing:1px;line-height:1;white-space:nowrap}.stars i{font-style:normal}.stars i.lit,.starlegend .stars.lit{color:#e6a817;text-shadow:0 0 .5px #b5800a}.stars i.dim{color:var(--border-strong);opacity:.55}.portfolio .starlegend{padding-top:0}.portfolio .starlegend .stars{font-weight:500;letter-spacing:1px}.portfolio .pcard .on{display:flex;gap:4px;flex-wrap:wrap;margin-bottom:8px}.portfolio .pcard .on .pill{font-size:10.5px;padding:0 6px}.portfolio .pcard .on .pill.no{opacity:.55;text-decoration:line-through;text-decoration-color:var(--border-strong)}.portfolio .pcard .on .pill .when{font-family:var(--mono);font-weight:400;opacity:.8;margin-left:4px}.portfolio .pcard .row.remain b{font-size:13.5px;font-weight:600}.portfolio .pcard .gauge i.firm{background:var(--band-blue)}.portfolio .pcard .gauge i.held{background:#e09a2c}.portfolio .pcard .gauge i.ghost{background:repeating-linear-gradient(135deg,var(--band-green) 0 3px,transparent 3px 6px)}.portfolio .pcard .gauge i.over{background:var(--bad)}.portfolio .pcard .why{font-size:10.5px;color:var(--muted);margin-top:5px;min-height:14px}.portfolio .pcard .why.bad{color:var(--bad)}.portfolio .pcard .why.ok{color:var(--ok)}.portfolio .pcard .act{display:flex;gap:6px;margin-top:8px}.portfolio .pcard .act button{padding:3px 8px;font-size:11.5px}.portfolio .pcard .act button.over{color:var(--bad);border-color:#f2c9c6}.portfolio .legend{display:flex;gap:12px;padding:0 12px 10px;font-size:11px;color:var(--muted)}.portfolio .legend span{display:inline-flex;align-items:center;gap:4px}.portfolio .legend i{display:inline-block;width:14px;height:5px;border-radius:2px}.portfolio .legend i.firm{background:var(--band-blue)}.portfolio .legend i.held{background:#e09a2c}.portfolio .legend i.ghost{background:repeating-linear-gradient(135deg,var(--band-green) 0 3px,transparent 3px 6px)}.portfolio .hiddenline{padding:8px 12px 12px;font-size:11.5px;color:var(--muted);border-top:1px solid var(--border)}.portfolio .crewcards .empty{padding:22px 12px}.projreq .topbar{flex-wrap:nowrap}.projreq .topbar h2{white-space:nowrap}.projreq .topbar .sub{flex:1 1 0;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.projreq .topbar .frames{display:flex;align-items:center;gap:8px;flex:none}.projreq .topbar .frames .label{font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin-left:6px}.projreq .topbar .frames .combo{width:250px}.projreq .topbar .frames .combo input{height:30px}.projreq .topbar .frames select{height:30px;max-width:230px}.projreq .topbar .frames .yearstrip{margin-left:4px}.projecthead{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px 20px;align-items:start;padding:11px 14px;margin-bottom:12px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius)}.projecthead .name{font-size:17px;font-weight:600}.projecthead .name code{font-family:var(--mono);font-size:12px;color:var(--muted);font-weight:400;margin-left:8px}.projecthead .meta{display:flex;gap:14px;flex-wrap:wrap;font-size:12px;color:var(--muted);margin-top:3px}.projecthead .meta b{color:var(--text);font-weight:500}.projecthead .tiles{display:flex;gap:8px;margin:0}.projecthead .tile{min-width:96px;padding:6px 10px}.projecthead .tile .value{font-size:17px}.statusrow{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:12px;font-size:12px}.statusrow .label{font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin-right:2px}.statusrow .chip{display:inline-flex;align-items:center;gap:6px;padding:2px 9px;border-radius:12px;border:1px solid var(--border);background:#eef0f3;color:var(--muted);font-size:11.5px}.statusrow .chip i{width:8px;height:8px;border-radius:50%;background:currentColor;display:inline-block}.statusrow .chip .n{font-family:var(--mono);font-size:10.5px;opacity:.8}.statusrow .chip[aria-pressed=false]{opacity:.45;background:transparent;text-decoration:line-through;text-decoration-color:var(--border-strong)}.statusrow .chip.green{background:#e6f4ec;color:#24693f;border-color:#bfe0cd}.statusrow .chip.cyan{background:#e0f3f8;color:#0e7490;border-color:#b9e0ea}.statusrow .chip.pink{background:#fbe8f2;color:#a3266b;border-color:#f0c9de}.statusrow .chip.orange{background:#fdf1e0;color:#a2650c;border-color:#f0d8b0}.statusrow .chip.red{background:#fdeceb;color:var(--bad);border-color:#f2c9c6}.statusrow .chip.lime{background:#eef6e0;color:#55801f;border-color:#d3e6b4}.statusrow .quick{margin-left:auto;display:flex;gap:6px}.statusrow .quick button{padding:2px 8px;font-size:11.5px}.statusrow .showing{font-size:11.5px;color:var(--muted)}.wallbar{display:flex;align-items:flex-start;gap:12px;margin-bottom:12px}.wallbar .statusrow{flex:1;margin-bottom:0}.wallbar .cardswitch{flex:none;margin-top:1px}.rcards{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:12px;margin-bottom:12px}.rcards:has(.rcard.compact){grid-template-columns:repeat(auto-fill,minmax(250px,1fr))}.rcard.compact{gap:6px}.rcard.compact .head h3{font-size:13px}.rcard.compact .meta{font-size:11.5px;color:var(--muted);display:flex;flex-wrap:wrap;align-items:center;gap:4px}.rcard.compact .meta .who{color:var(--text)}.rcard.compact .meta .pill{font-size:10px;padding:0 6px}.rcard.compact .need{padding:5px 8px}.rcard.compact .need .nh .big{font-size:16px}.rcard.compact .need .cover.short{color:var(--text)}.rcard.compact .foot{margin-top:0}.rcard .cstamp{font-size:11px;color:var(--muted);font-variant-numeric:tabular-nums}.rcard.compact .cstamp{margin-top:-2px}.rcard{background:var(--surface);border:1px solid var(--border);border-left-width:5px;border-radius:var(--radius);padding:10px 12px;display:flex;flex-direction:column;gap:8px;cursor:pointer;text-align:left}.rcard:hover{border-color:var(--accent)}.rcard.on{background:var(--accent-soft);border-color:var(--accent)}.rcard:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.rcard.green{border-left-color:#24693f}.rcard.cyan{border-left-color:#0e7490}.rcard.pink{border-left-color:#a3266b}.rcard.orange{border-left-color:#a2650c}.rcard.red{border-left-color:var(--bad)}.rcard.lime{border-left-color:#55801f}.rcard.mute{border-left-color:var(--border-strong)}.rcard .head{display:flex;align-items:flex-start;gap:8px}.rcard .head h3{flex:1;margin:0;font-size:13.5px;line-height:1.3}.rcard .head .id{font-family:var(--mono);font-size:10.5px;color:var(--muted);white-space:nowrap}.rcard .head h3 .for{font-weight:400;color:var(--muted)}.rcard .head .cmark{flex:none;width:18px;height:18px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;font-size:11px;font-weight:700;line-height:1;margin-top:1px;border:1px solid var(--border-strong);color:var(--muted);background:#fff;cursor:help}.rcard .head .cmark.lead{color:#fff;background:var(--bad);border-color:var(--bad);font-size:12px}.rcard .head .cmark.contribute{color:var(--accent);border-color:var(--accent)}.rcard .head .cmark.advise{font-size:10px;border-color:var(--ok)}.rcard .head .cmark.unknown{color:var(--muted)}.rcard .head h3 .for .proj{font-weight:700;color:var(--ok)}.rcard .pref{font-size:12px;margin-top:6px;line-height:1.35}.rcard .pref .stars{font-size:12px;letter-spacing:1px;line-height:1;white-space:nowrap}.rcard .pref .name{font-weight:600;color:var(--bad)}.rcard .pref .dim{font-size:11px}.rcard .kv dd .pref{margin-top:0}.rcard .detail{font-size:12px;line-height:1.45;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.rcard .kv{display:grid;grid-template-columns:auto minmax(0,1fr);gap:3px 10px;font-size:12px;margin:0}.rcard .kv dt{color:var(--muted)}.rcard .kv dd{margin:0;min-width:0}.rcard .kv .who .name b{font-family:var(--mono);font-weight:500}.rcard .need{border:1px solid var(--border);border-radius:var(--radius);padding:7px 9px;background:#fbfcfe}.rcard .need .nh{display:flex;align-items:baseline;gap:6px;flex-wrap:wrap}.rcard .need .nh .label{font-size:10px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}.rcard .need .nh .big{font-family:var(--mono);font-size:18px;font-weight:600}.rcard .need .nh .unit{font-size:10.5px;color:var(--muted)}.rcard .need .nh .split{margin-left:auto;font-size:10.5px;color:var(--muted);white-space:nowrap}.rcard .need .cover{font-size:10.5px;color:var(--muted);margin-top:2px}.rcard .need .cover b{color:var(--text);font-family:var(--mono);font-weight:500}.rcard .need .cov{display:flex;justify-content:flex-start;gap:0;height:4px;background:#e6e9ed;border-radius:2px;margin:5px 0 6px;overflow:hidden}.rcard .need .cov i{display:block;height:100%}.rcard .need .cov i.plan{background:#86b79a}.rcard .need .cov i.held{background:#e09a2c}.rcard .need .months{height:34px;gap:2px;border-bottom:1px solid var(--border)}.rcard .need .month-labels{gap:2px;margin-top:2px;font-size:9px}.rcard .need .nf{display:flex;gap:10px;margin-top:4px;font-size:10.5px;color:var(--muted)}.rcard .need .nf b{color:var(--text);font-family:var(--mono);font-weight:500}.rcard .comment{margin:0;border-left:3px solid var(--border-strong);padding:3px 9px;font-size:12px;background:#fbfcfe}.rcard .comment.none{color:var(--muted);border-left-color:var(--border);font-size:11.5px}.rcard .comment .who{display:block;font-size:10.5px;color:var(--muted);margin-top:2px}.rcard .foot{display:flex;align-items:center;gap:8px;font-size:11px;color:var(--muted);margin-top:auto}.rcard .foot .spacer{flex:1}.rcard .foot .open{font-size:11px;padding:2px 8px}.rcards .empty{grid-column:1 / -1}.rcards .rcards-detail{grid-column:1 / -1;min-width:0}.rcards .rcards-detail>.panel{margin-bottom:0!important}.placement.inline{border:1px solid var(--border);border-radius:var(--radius);background:#f7f8fa;padding:10px}.placement.inline .inlinebar{display:flex;align-items:baseline;gap:10px;margin:0 2px 10px;font-size:13px}.placement.inline .inlinebar .sub{color:var(--muted);font-size:12px}.placement.inline .inlinebar .spacer{flex:1}.placement.inline .portfoliogrid{margin-bottom:0}.kanban{display:flex;gap:8px;align-items:flex-start;overflow-x:auto;margin-bottom:12px}.kcol{flex:0 0 260px;width:260px;display:flex;flex-direction:column;gap:8px;background:#eef0f3;border:1px solid var(--border);border-radius:var(--radius);padding:8px}.kanban:has(.rcard:not(.compact)) .kcol{flex-basis:330px;width:330px}.kcol.aside .kbody .rcard{opacity:.85}.kcol .khead{display:flex;align-items:center;gap:6px;flex-wrap:wrap;font-size:12px;font-weight:600;padding:2px 2px 6px;border-bottom:2px solid var(--border-strong)}.kcol .khead i{width:9px;height:9px;border-radius:50%;display:inline-block;background:var(--border-strong);flex:none}.kcol .khead .n{font-family:var(--mono);font-size:11px;font-weight:500;color:var(--muted)}.kcol .khead .open{font:inherit;font-size:10.5px;font-weight:400;color:var(--muted);background:transparent;border:1px solid var(--border-strong);border-radius:9px;padding:0 6px;white-space:nowrap;line-height:1.5}.kcol .khead .open:hover:not(:disabled){color:var(--accent);border-color:var(--accent);background:transparent}.kcol .khead .open[aria-pressed=true]{color:#fff;background:var(--accent);border-color:var(--accent)}.kcol .khead .sum{flex-basis:100%;margin-left:15px;margin-top:-2px;font-weight:400;font-size:11px;color:var(--muted);font-family:var(--mono);white-space:nowrap}.kcol .khead .sum b{color:var(--text);font-weight:500}.kcol.pink .khead{border-bottom-color:#a3266b}.kcol.pink .khead i{background:#a3266b}.kcol.orange .khead{border-bottom-color:#a2650c}.kcol.orange .khead i{background:#a2650c}.kcol.cyan .khead{border-bottom-color:#0e7490}.kcol.cyan .khead i{background:#0e7490}.kcol.green .khead{border-bottom-color:#24693f}.kcol.green .khead i{background:#24693f}.kcol.lime .khead{border-bottom-color:#55801f}.kcol.lime .khead i{background:#55801f}.kcol.red .khead{border-bottom-color:var(--bad)}.kcol.red .khead i{background:var(--bad)}.kcol .kbody{display:flex;flex-direction:column;gap:8px}.kcol .kbody .rcard{border-left-width:4px}.kcol .kbody .rcard.compact .foot{justify-content:flex-end}.placement .topbar h2{font-size:15px}.record-editor{display:grid;grid-template-columns:300px minmax(0,1fr);gap:12px;align-items:start;margin-bottom:12px}.record-editor>.panel{margin:0}.record-list .filters{display:flex;gap:6px 12px;align-items:center;flex-wrap:wrap;padding:8px 12px;border-bottom:1px solid var(--border);font-size:12px}.record-list .filters select{font-size:12px;flex:1 1 100%;width:100%;min-width:0;box-sizing:border-box}.record-list .people.rows{max-height:calc(100vh - 300px)}.record-list .people button{display:flex;align-items:center;gap:10px;padding:6px 12px}.record-list .people .row-face{flex:none}.record-list .people .row-text{min-width:0;flex:1}.record-list .people .name{display:flex;align-items:center;gap:6px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.record-list .people .meta{margin-top:1px;flex-wrap:wrap}.record-list .people .meta .pill{font-size:10px;padding:0 6px}.edited-dot{display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--accent);flex:none}.avatar{border-radius:50%;object-fit:cover;background:#e6e9ed;display:inline-flex;align-items:center;justify-content:center;flex:none;vertical-align:middle}.avatar.initials{color:var(--accent);background:var(--accent-soft);font-weight:600;letter-spacing:.02em}.avatar.large{width:72px;height:72px}.record-pane{min-height:320px}.record-pane>header.record-head{display:flex;align-items:center;gap:14px;padding:14px 16px}.record-title{min-width:0}.record-name{font-size:17px;font-weight:600}.photo-control{display:flex;align-items:center;gap:10px;flex:none}.photo-actions{display:flex;flex-direction:column;gap:2px;align-items:flex-start}.photo-actions .bad-text{color:var(--bad);font-size:11px;max-width:220px}.record-tabs{display:flex;gap:2px;padding:0 12px;border-bottom:1px solid var(--border)}.record-tabs button{border:none;border-bottom:2px solid transparent;border-radius:0;background:none;padding:7px 10px;color:var(--muted);font-size:12px}.record-tabs button:hover:not(:disabled){background:none;color:var(--text);border-bottom-color:var(--border-strong)}.record-tabs button[aria-current=true]{color:var(--text);font-weight:600;border-bottom-color:var(--accent)}.record-body{padding:14px 16px}.record-fields{grid-template-columns:140px minmax(0,1fr);gap:8px 14px;font-size:13px;align-items:center}.record-fields dt{padding-top:0}.record-fields dd{display:flex;align-items:center;gap:6px;flex-wrap:wrap;min-height:26px}.record-fields .text-field{display:inline-flex;align-items:center;gap:6px}.record-fields .text-field input{min-width:220px}.record-fields .source-tag{font-size:10px}.record-save{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:14px;padding-top:12px;border-top:1px solid var(--border);font-size:12px}.record-save .spacer{flex:1}.record-save .saved{color:var(--ok)}.record-save .pending{color:var(--warn)}.record-fields .text-field input.dirty,.record-fields input.dirty{border-color:var(--warn);background:#fffbf2}.record-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}.record-pane .confirm{margin-top:14px}.related-block{margin-bottom:16px}.related-block h4{margin:0 0 6px;font-size:12px;text-transform:uppercase;letter-spacing:.05em;color:var(--muted)}.related-block h4 .count{font-weight:400;margin-left:4px}.related-block table{width:100%}ul.plain{list-style:none;margin:0;padding:0;display:grid;gap:3px;font-size:13px}.new-person{display:grid;gap:10px;max-width:420px}.record-name.code{font-size:16px}.record-fields .chips{display:flex;flex-wrap:wrap;gap:4px;align-items:center}.record-fields .chips.dirty .pill{border-color:var(--warn)}.record-fields select.dirty,.record-fields textarea.dirty{border-color:var(--warn);background:#fffbf2}.record-fields .dirty-box{outline:1px solid var(--warn);border-radius:var(--radius)}.segmented{display:inline-flex;border:1px solid var(--border-strong);border-radius:var(--radius);overflow:hidden}.segmented button{border:none;border-radius:0;border-right:1px solid var(--border);background:none;padding:4px 10px;font-size:12px;color:var(--muted)}.segmented button:last-child{border-right:none}.segmented button.on{background:var(--accent-soft);color:var(--accent);font-weight:600}.members .member,.record-body .member{display:inline-flex;align-items:center;gap:6px}.record-pane.request-pane{padding:0}.record-pane.request-pane>.panel{margin:0;border:none;box-shadow:none}.subprogrammes td{vertical-align:top}.subprogrammes input,.subprogrammes select,.subprogrammes textarea{font-size:12px}.subprogrammes td:first-child{white-space:nowrap}.progband{margin:8px 0 12px;padding:10px 16px;border-radius:8px;font-size:18px;font-weight:700;color:#000;background:#e5e7eb;display:flex;align-items:baseline;gap:12px}.progband{cursor:pointer;-webkit-user-select:none;user-select:none}.progband:hover{filter:brightness(.96)}.progband:focus-visible{outline:2px solid var(--accent, #2563eb);outline-offset:2px}.progband .chevron{font-size:14px;width:1em;display:inline-block}.progband .count{font-size:13px;font-weight:500;color:#000;opacity:.7}.progband.folded{margin-bottom:8px}.progband[data-programme=SPC]{background:#cfe3ff}.progband[data-programme=IEA]{background:#cdeed6}.progband[data-programme=SPS]{background:#ffe3b3}.progband[data-programme=OTHER]{background:#e6d9ff}table.changed td{vertical-align:top}table.changed td .dim{font-size:11.5px;margin-top:2px}ul.moved{list-style:none;margin:0;padding:0;display:grid;gap:2px}ul.moved li{display:grid;grid-template-columns:minmax(120px,max-content) 1fr auto 1fr;align-items:baseline;gap:8px;font-size:12px}ul.moved .f{color:var(--muted)}ul.moved .was{color:var(--muted);text-align:right;font-variant-numeric:tabular-nums}ul.moved .arrow{color:var(--border-strong)}ul.moved .now{font-weight:600;font-variant-numeric:tabular-nums}.ev-person{color:var(--text);font-weight:700}.ev-effort{color:var(--ok);font-weight:700;font-variant-numeric:tabular-nums}.ev-code{color:var(--accent);font-weight:700}.contrib{display:flex;flex-direction:column;height:calc(100vh - 40px);min-height:560px}.contrib-grid{flex:1;min-height:0;display:grid;grid-template-columns:240px minmax(0,1fr) 320px;gap:14px}.contrib-grid>.panel{display:flex;flex-direction:column;min-height:0}.contrib-grid>.panel>.body{overflow:auto}.contrib-controls{display:grid;gap:10px}.contrib-controls .field>span{font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.05em}.contrib-controls select,.contrib-controls input:not([type=checkbox]){width:100%}.contrib-controls .check{display:flex;align-items:center;gap:6px;font-size:12px}.ctiles{display:grid;grid-template-columns:1fr 1fr;gap:6px}.ctiles>div{border:1px solid var(--border);border-radius:var(--radius);padding:6px 9px}.ctiles b{display:block;font-size:17px;font-variant-numeric:tabular-nums}.ctiles span{font-size:11px;color:var(--muted)}.ctiles .warn b{color:var(--warn)}.contrib-legend{display:grid;gap:1px;border-top:1px solid var(--border);padding-top:8px}.contrib-legend .legend-head{font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.05em;margin-bottom:3px}.contrib-legend button{display:flex;align-items:center;gap:7px;border:0;background:none;padding:3px 4px;text-align:left;font-size:12px}.contrib-legend button .n{margin-left:auto;color:var(--muted);font-variant-numeric:tabular-nums}.contrib-legend button[aria-pressed=false]{opacity:.35}.contrib .dot{display:inline-block;width:10px;height:10px;border-radius:50%;flex:none;vertical-align:middle;margin-right:5px}.contrib .dot.sq{background:#8aa0b8;border-radius:2px}.contrib .dot.open{background:var(--surface);border:1.5px dashed}.contrib-canvas{position:relative}.netwrap{position:relative;flex:1;min-height:0}svg.network{width:100%;height:100%;display:block;cursor:grab;touch-action:none;-webkit-user-select:none;user-select:none}svg.network:active{cursor:grabbing}svg.network text{font-family:inherit}svg.network .node{cursor:pointer}svg.network .node.pinned .shape{stroke-dasharray:none}svg.network .node .lbl{font-size:10px;fill:var(--text);paint-order:stroke;stroke:var(--surface);stroke-width:3px;stroke-linejoin:round}svg.network .node .lbl.strong{font-size:12px;font-weight:600}svg.network .node .sub{font-size:9px;fill:var(--muted);paint-order:stroke;stroke:var(--surface);stroke-width:3px;font-variant-numeric:tabular-nums}svg.network .node .warn{fill:var(--warn)}svg.network .leaf .shape{stroke:var(--surface);stroke-width:1.5}svg.network .hub .shape{fill:#eef3fa;stroke:#7da3d0}svg.network .hub text:not(.sub):not(.badge-text){font-size:10.5px;font-weight:600;fill:#1f4f86}svg.network .centre .shape{fill:var(--text)}svg.network .centre text{fill:#fff;font-size:12px;font-weight:600}svg.network .person-centre .shape{stroke:var(--surface);stroke-width:3}svg.network .initials{fill:#fff;font-size:12px;font-weight:700}svg.network .q{font-size:11px;font-weight:700}svg.network .badge{fill:var(--accent)}svg.network .badge-text{fill:#fff;font-size:9.5px;font-weight:700}svg.network .dim{opacity:.12}svg.network .sel .shape{stroke:var(--accent)!important;stroke-width:3!important}.net-tools{position:absolute;top:8px;right:8px;display:flex;gap:4px}.net-tools button{font-size:11px;padding:3px 9px}.net-key{display:flex;gap:14px;flex-wrap:wrap;font-size:11px;color:var(--muted);padding:6px 12px;border-top:1px solid var(--border)}.net-key i{display:inline-block;vertical-align:middle;margin-right:4px;width:22px}.net-key .k-line{height:3px;background:#8aa0b8}.net-key .k-held{border-top:2px dashed #e09a2c}.net-key .k-demand{width:10px;height:10px;border-radius:50%;border:1.5px dashed var(--warn)}.net-tip{position:absolute;pointer-events:none;background:var(--text);color:#fff;font-size:11px;padding:5px 8px;border-radius:4px;max-width:300px;box-shadow:0 2px 8px #0003;z-index:5}.net-tip div{color:#c6ced8}.contrib-detail .det h3{margin:0 0 4px;font-size:15px}.contrib-detail .meta{display:grid;grid-template-columns:auto 1fr;gap:2px 10px;font-size:12px;margin:8px 0 4px}.contrib-detail .meta dt{color:var(--muted)}.contrib-detail .meta dd{margin:0}.contrib-detail .actions{display:flex;gap:6px;flex-wrap:wrap;margin:10px 0 4px}.contrib-detail .actions button{font-size:12px;padding:3px 9px}.contrib-detail .grp{margin-top:12px}.contrib-detail .grp h4{margin:0 0 3px;font-size:12px;display:flex;gap:6px;align-items:baseline}.contrib-detail .grp h4.clickable{cursor:pointer}.contrib-detail .grp h4 .md{margin-left:auto;font-variant-numeric:tabular-nums}.contrib-detail .grp .desc{font-size:11px;color:var(--muted);margin-bottom:4px}.contrib-detail code{font-family:var(--mono);font-size:11px}.contrib-detail .line{display:grid;grid-template-columns:12px 1fr auto;gap:6px;align-items:center;padding:3px 4px;border-radius:4px;cursor:pointer}.contrib-detail .line:hover{background:var(--accent-soft)}.contrib-detail .line .nm{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.contrib-detail .line .nm small{color:var(--muted);margin-left:5px}.contrib-detail .line .v{font-variant-numeric:tabular-nums;text-align:right}.contrib-detail .line .v small{display:block;color:var(--muted);font-size:10px;line-height:1.1}.contrib-detail .held,.contrib-detail .line.demand .nm{color:var(--warn)}.contrib-detail .caplbl{display:flex;justify-content:space-between;font-size:11px;color:var(--muted);font-variant-numeric:tabular-nums;margin-top:2px}.contrib-detail .small{font-size:11px;margin-top:14px}.contrib-detail .capbar .seg{height:100%}.matrix-wrap{flex:1;overflow:auto}table.matrix{border-collapse:separate;border-spacing:0;font-size:12px;min-width:100%}table.matrix th,table.matrix td{padding:4px 8px;border-bottom:1px solid var(--border);white-space:nowrap;text-align:right;font-variant-numeric:tabular-nums}table.matrix th{position:sticky;top:0;background:#f0f2f5;font-size:11px;z-index:1}table.matrix th:first-child,table.matrix td:first-child{text-align:left;position:sticky;left:0;background:var(--surface)}table.matrix th:first-child{background:#f0f2f5;z-index:2}table.matrix td small{color:var(--muted)}table.matrix td.z{color:var(--border-strong)}table.matrix td .held{color:var(--warn);font-size:10px;margin-left:3px}table.matrix tr.tot td,table.matrix tr.own td{font-weight:600;background:var(--bg)}
