:root{--sel: #4f8cff;--added: #33d6a6;--modified: #ffb454;--removed: #ff6b6b;--review: #b98cff;--neutral: #5d6f8c;--ifc-mark: #8b7cff;--sched-mark: #ff7edb;--building: #00c2d6;--bg-app: #0d1119;--bg-bar: #12182a;--bg-panel: #141b2b;--bg-input: #12182a;--bg-idle: #1a2236;--bg-chip: #1f2940;--bg-active: #1f3a5c;--bg-row-sel: #14203a;--bg-row-hit: #3b3517;--bg-viewport: #0f1626;--line: #2c3850;--line-soft: #1c2436;--grip: #3a4763;--text: #c6d3e6;--text-dim: #6f829e;--text-head: #9db0cc;--text-sel: #9fc6ff;--text-id: #7fa8dd;--text-mint: #9beece;--text-amber: #ffc87a;--text-danger: #ff9b9b;--text-root: #cfe0ff;--text-mute: #4d5b74;--text-faint: #5f708c;--text-hot: #ffd34d;--bg-hover: #172038;--bg-hover-strong: #29344e;--bg-group: #1b2540;--bg-head: #161e30;--bg-row-alt: #101728;--bg-float: rgba(13, 17, 25, .97);--bg-sel-soft: #16233c;--line-sel: #2a4a6a;--bg-ok-soft: #0f2a20;--bg-ok-strong: #14402e;--line-ok: #1d4436;--bg-warn-soft: #241f14;--bg-warn-strong: #33280f;--line-warn: #4a3a1c;--bg-danger-soft: #241820;--bg-danger-strong: #3a1519;--bg-review-soft: #1a1430;--line-review: #3b2a63;--scroll-thumb: #263048;--scroll-thumb-hover: #34415f;--shadow-col: rgba(0, 0, 0, .5);--overlay-1: rgba(255, 255, 255, .04);--overlay-2: rgba(255, 255, 255, .06);--overlay-3: rgba(255, 255, 255, .16);--help-plan: #8eb7ff;--help-actual: #5f9cff;--help-baseline: #aeb7c6;--h-topbar: 28px;--h-statusbar: 22px;--h-timeline: 46px;--w-leftpanel: 216px;--h-property: 200px;--h-splitter: 6px;--w-gantt-table: 404px;--h-row: 22px;--h-gantt-toolbar: 28px}:root[data-theme=light]{--sel: #1668e3;--added: #0b8f65;--modified: #a56800;--removed: #cf3b3b;--review: #7048c8;--neutral: #64748b;--ifc-mark: #5b46c8;--sched-mark: #b8189a;--building: #0a7f8c;--bg-app: #e9edf4;--bg-bar: #ffffff;--bg-panel: #ffffff;--bg-input: #f3f6fb;--bg-idle: #eef2f8;--bg-chip: #f1f4fa;--bg-active: #d7e5ff;--bg-row-sel: #e4eeff;--bg-row-hit: #fff2b8;--bg-viewport: #f4f6fa;--line: #c8d2e0;--line-soft: #e3e9f2;--grip: #aebbcd;--text: #1c2534;--text-dim: #5b6a7e;--text-head: #3a4859;--text-sel: #0b57d0;--text-id: #15599e;--text-mint: #07684c;--text-amber: #8a5300;--text-danger: #b02a24;--text-root: #123055;--text-mute: #8492a5;--text-faint: #93a0b2;--text-hot: #a05e00;--bg-hover: #e8edf6;--bg-hover-strong: #dae3f1;--bg-group: #dbe4f2;--bg-head: #f2f5fa;--bg-row-alt: #f5f8fc;--bg-float: rgba(255, 255, 255, .98);--bg-sel-soft: #e4eeff;--line-sel: #9dc0f5;--bg-ok-soft: #e3f5ec;--bg-ok-strong: #cfeade;--line-ok: #9bd7bf;--bg-warn-soft: #fbf0da;--bg-warn-strong: #f5e2b6;--line-warn: #e0c286;--bg-danger-soft: #fdeaea;--bg-danger-strong: #f7d5d5;--bg-review-soft: #f1eaff;--line-review: #cdb8f0;--scroll-thumb: #c3cddd;--scroll-thumb-hover: #a7b4c9;--shadow-col: rgba(23, 35, 58, .16);--overlay-1: rgba(15, 23, 42, .035);--overlay-2: rgba(15, 23, 42, .06);--overlay-3: rgba(15, 23, 42, .12);--help-plan: #2f6fd0;--help-actual: #1553b8;--help-baseline: #6b7688}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:var(--bg-app);color:var(--text);font-family:Pretendard,Malgun Gothic,Segoe UI,system-ui,sans-serif;font-size:12px;overflow:hidden;-webkit-font-smoothing:antialiased}button{font-family:inherit;color:inherit;background:none;border:none;cursor:pointer;padding:0}input,select{font-family:inherit;color:inherit}::-webkit-scrollbar{width:9px;height:9px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--scroll-thumb);border-radius:5px}::-webkit-scrollbar-thumb:hover{background:var(--scroll-thumb-hover)}.mono{font-family:Consolas,Cascadia Mono,monospace}.app-shell{display:flex;flex-direction:column;height:100%}.workspace{flex:1;display:flex;min-height:0}.topbar{height:var(--h-topbar);flex:0 0 var(--h-topbar);background:var(--bg-bar);border-bottom:1px solid var(--line);display:flex;align-items:stretch;gap:6px;padding:0 8px}.logo{align-self:center;flex:0 0 auto;width:20px;height:20px;border-radius:4px;background:var(--bg-ok-soft);border:1px solid var(--line-ok);color:var(--added);font-size:9.5px;font-weight:800;letter-spacing:0;display:inline-flex;align-items:center;justify-content:center;cursor:help}.chip{height:26px;border-radius:6px;background:var(--bg-chip);border:1px solid var(--line);color:var(--text);font-size:11px;display:inline-flex;align-items:center;gap:6px;padding:0 9px;white-space:nowrap}.chip.project{width:250px}.axis-badge{height:22px;border-radius:5px;border:1px dashed var(--line-soft);background:var(--bg-idle);color:var(--text-mute);font-size:10px;font-weight:700;letter-spacing:.2px;padding:0 7px;display:inline-flex;align-items:center;white-space:nowrap;cursor:help}.axis-badge.on,.axis-badge.bim{border:1px solid var(--line);background:var(--bg-chip);color:var(--text)}.axis-badge.src{max-width:210px;overflow:hidden;text-overflow:ellipsis;display:inline-block;line-height:20px;font-weight:600}.menubar{flex:0 0 auto;display:flex;align-items:stretch;padding:0;font-size:11px;position:relative;z-index:90}.menu-slot{position:relative;display:flex}.menu-top{border:none;background:transparent;color:var(--text);padding:0 9px;font-size:11px;cursor:pointer;border-radius:4px 4px 0 0}.menu-top:hover{background:var(--bg-hover-strong)}.menu-top.open{background:var(--bg-active);color:var(--text-sel)}.menu-drop{position:absolute;top:100%;left:0;min-width:258px;background:var(--bg-float);border:1px solid var(--line);border-radius:0 5px 5px;box-shadow:0 8px 20px var(--shadow-col);padding:4px;z-index:1}.menu-item{display:flex;width:100%;align-items:center;gap:10px;border:none;background:transparent;color:var(--text);font-size:11px;padding:4px 8px;border-radius:4px;cursor:pointer;text-align:left}.menu-item:hover:not(:disabled){background:var(--bg-active);color:var(--text-sel)}.menu-item:disabled{color:var(--text-mute);cursor:not-allowed}.menu-item.strong .mi-label{font-weight:700}.mi-label{flex:1;white-space:nowrap}.mi-hint{color:var(--text-mute);font-size:10px}.menu-sep{height:1px;background:var(--line);margin:3px 4px}.float-win{position:fixed;z-index:95;display:flex;flex-direction:column;min-width:260px;min-height:180px;background:var(--bg-panel);border:1px solid var(--line);border-radius:7px;box-shadow:0 12px 34px var(--shadow-col);overflow:hidden}.float-title{flex:0 0 26px;height:26px;display:flex;align-items:center;gap:4px;padding:0 4px 0 9px;background:var(--bg-bar);border-bottom:1px solid var(--line);font-size:11px;font-weight:700;color:var(--text-head);cursor:move;-webkit-user-select:none;user-select:none}.ft-name{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ft-btn{width:20px;height:18px;border:1px solid transparent;border-radius:4px;background:transparent;color:var(--text-dim);font-size:11px;cursor:pointer;flex:0 0 auto}.ft-btn:hover{background:var(--bg-hover-strong);color:var(--text);border-color:var(--line)}.float-body{flex:1;min-height:0;display:flex;overflow:hidden}.float-resize{position:absolute;right:0;bottom:0;cursor:nwse-resize;background:linear-gradient(135deg,transparent 0 45%,var(--grip) 45% 55%,transparent 55% 100%),linear-gradient(135deg,transparent 0 70%,var(--grip) 70% 80%,transparent 80% 100%)}.mi-check{flex:0 0 11px;width:11px;color:var(--sel);font-weight:700;font-size:10px}.menu-item.checked .mi-label{color:var(--text-sel)}.mi-arrow{color:var(--text-mute);font-size:9px}.menu-subwrap{position:relative;display:block}.menu-item.open{background:var(--bg-active);color:var(--text-sel)}.menu-drop-sub{top:-5px;left:100%;border-radius:5px}.proj-panel{flex:1;min-width:0;display:flex;flex-direction:column;font-size:11px}.proj-sum{padding:6px 9px;border-bottom:1px solid var(--line);color:var(--text-dim);display:flex;gap:8px;align-items:center}.proj-sum b{color:var(--text)}.proj-sum{flex-wrap:nowrap;overflow:hidden}.proj-stat{flex:0 0 auto;white-space:nowrap;display:inline-flex;align-items:center;gap:2px}.proj-sum .pv-link{margin-left:auto;flex:0 0 auto;white-space:nowrap}.proj-grid{flex:1;overflow:auto}.proj-row{display:flex;gap:6px;align-items:center;padding:4px 9px;border-bottom:1px solid var(--line-soft);cursor:pointer}.proj-row.head{background:var(--bg-head);color:var(--text-head);cursor:default;padding-right:35px;position:sticky;top:0;z-index:1}.proj-row:hover:not(.head):not(.current){background:var(--bg-hover)}.proj-row.current{background:var(--bg-row-sel);box-shadow:inset 2px 0 0 var(--sel);cursor:default}.proj-row{position:relative}.proj-more{flex:0 0 auto;width:20px;height:20px;border:0;border-radius:4px;background:none;color:var(--text-faint);font-size:13px;line-height:1;cursor:pointer;opacity:0}.proj-row:hover .proj-more,.proj-more:focus,.proj-row.current .proj-more{opacity:1}.proj-more:hover{background:var(--bg-hover);color:var(--text)}.proj-menu{position:absolute;right:6px;top:24px;z-index:30;min-width:148px;background:var(--bg-float);border:1px solid var(--line);border-radius:6px;padding:4px;box-shadow:0 8px 22px var(--shadow-col)}.proj-menu button{display:block;width:100%;padding:5px 8px;border:0;border-radius:4px;background:none;color:var(--text);font-size:11.5px;text-align:left;cursor:pointer}.proj-menu button:hover:not(:disabled){background:#4f8cff24}.proj-menu button:disabled{opacity:.4;cursor:default}.proj-menu button.danger{color:var(--removed)}.proj-menu button.danger:hover{background:color-mix(in srgb,var(--removed) 16%,transparent)}.proj-row .c-caret{flex:0 0 auto;width:14px;padding:0;color:var(--text-faint);background:none;border:0;cursor:pointer;text-align:left}.proj-row.head .c-caret{cursor:default}.proj-open{flex:1 1 auto;min-width:0;display:flex;gap:6px;align-items:center;padding:0;font-size:11px;color:inherit;background:none;border:0;text-align:left;cursor:pointer}.proj-open:disabled{cursor:default}.proj-edit{flex:1 1 auto;min-width:0;display:flex;gap:6px;align-items:center}.proj-edit input{padding:1px 5px;font-size:11px;font-family:inherit;color:var(--text);background:var(--bg-input);border:1px solid var(--line-sel);border-radius:3px}.proj-edit input.c-name{flex:1 1 auto}.proj-block{border-bottom:1px solid var(--line-soft)}.proj-block .proj-row{border-bottom:0}.proj-row.head>.c-code,.proj-row.head>.c-num,.proj-row.head>.c-date{position:relative;padding-right:7px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.proj-row.head>.c-num,.proj-row.head>.c-date{padding-right:0;padding-left:7px}.proj-row .c-code{flex:0 0 var(--pw-code, 104px);min-width:0;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;color:var(--text-id);font-weight:700}.proj-row .c-name{flex:1 1 auto;min-width:0;display:flex;gap:6px;align-items:center;overflow:hidden}.proj-row .c-name-t{min-width:0;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.proj-row .c-num{flex:0 0 62px;min-width:0;overflow:hidden;text-align:right}.proj-row .c-p6{flex:0 0 var(--pw-p6, 62px)}.proj-row .c-bim{flex:0 0 var(--pw-bim, 62px)}.proj-row .c-date{flex:0 0 var(--pw-date, 76px);min-width:0;overflow:hidden;white-space:nowrap;color:var(--text-dim)}.proj-na{color:var(--text-mute);font-style:normal}.proj-badge{flex:0 0 auto;border:1px solid var(--line-sel);background:var(--bg-sel-soft);color:var(--text-sel);border-radius:4px;padding:0 4px;font-size:9px;font-weight:700}.proj-axis{flex:0 0 auto;border:1px solid var(--line);background:var(--bg-chip);color:var(--text-dim);border-radius:3px;padding:1px 4px;font-size:8.5px;font-weight:700;line-height:1.2}.proj-axis.bim{border-color:color-mix(in srgb,var(--sel) 45%,transparent);color:var(--text-sel)}.ws-tab.axis-off{opacity:.74;color:var(--text-mute);background:none;border-style:dashed;cursor:not-allowed}.notice-bar{flex:0 0 auto;display:flex;gap:8px;align-items:center;flex-wrap:wrap;padding:4px 12px;background:var(--bg-bar);border-bottom:1px solid var(--line);font-size:11px}.notice{display:inline-flex;align-items:center;gap:6px;padding:2px 8px;border-radius:5px;background:var(--bg-warn-soft);border:1px solid var(--line-warn);color:var(--text-amber)}.notice b{color:var(--text-head)}.notice.bad{background:var(--bg-danger-soft);border-color:var(--removed);color:var(--text-danger)}.notice-x{border:none;background:transparent;color:inherit;cursor:pointer;font-size:11px;padding:0 1px;opacity:.65}.notice-x:hover{opacity:1}.coverage-badge.na{background:var(--bg-idle);border-color:var(--line-soft);color:var(--text-mute)}.chip select{flex:1;min-width:0;background:transparent;border:none;outline:none;font-size:11px;cursor:pointer}.chip select option{background:var(--bg-chip);color:var(--text)}.statusbar{height:var(--h-statusbar);flex:0 0 var(--h-statusbar);background:var(--bg-bar);border-top:1px solid var(--line);display:flex;align-items:center;gap:8px;padding:0 8px;font-size:10px;white-space:nowrap;overflow:hidden}.statusbar .chip,.statusbar .axis-badge,.statusbar .coverage-badge,.statusbar .review-badge{height:18px;border-radius:4px;font-size:10px}.statusbar .chip{padding:0 6px;gap:4px}.statusbar .chip select{font-size:10px}.statusbar .coverage-badge{width:92px}.statusbar .review-badge{padding:0 7px}.statusbar .axis-badge.src{max-width:460px;line-height:16px}.coverage-badge{width:126px;height:26px;border-radius:6px;background:var(--bg-ok-soft);border:1px solid var(--line-ok);color:var(--added);font-size:11px;font-weight:700;display:inline-flex;align-items:center;justify-content:center}.coverage-badge:hover{border-color:var(--added)}.coverage-badge.active{background:var(--bg-ok-strong);border-color:var(--added);color:var(--text-mint)}.review-badge{height:26px;padding:0 9px;border-radius:6px;background:var(--bg-review-soft);border:1px solid var(--line-review);color:var(--review);font-size:11px;font-weight:700}.icon-btn{width:26px;height:26px;border-radius:6px;background:var(--bg-idle);border:1px solid var(--line);color:var(--text-head);display:inline-flex;align-items:center;justify-content:center;font-size:12px}.topbar .icon-btn{width:20px;height:20px;border-radius:4px;font-size:11px;align-self:center;flex:0 0 auto}.icon-btn:hover{color:var(--text-sel);border-color:var(--line-sel)}.icon-btn.active{background:var(--bg-active);border-color:var(--sel);color:var(--text-sel)}.left-panel{flex:0 0 var(--w-leftpanel);width:var(--w-leftpanel);background:var(--bg-panel);border-right:1px solid var(--line);display:flex;flex-direction:column;min-height:0}.panel-head{font-size:10.5px;color:var(--text-head);font-weight:700;letter-spacing:1px;padding:9px 12px 6px}.search-box{width:auto;height:24px;margin:0 12px 7px;background:var(--bg-input);border:1px solid var(--line);border-radius:5px;color:var(--text);font-size:11px;padding:0 8px;outline:none}.search-box::placeholder{color:var(--text-mute)}.tabs{display:flex;gap:4px;padding:0 12px 7px}.tab{height:20px;border-radius:4px;background:var(--bg-idle);border:1px solid var(--line);font-size:10px;color:var(--text-dim)}.tab.active{background:var(--bg-active);border-color:var(--sel);color:var(--text-sel)}.tree{flex:1;overflow:auto;padding:2px 6px 10px;font-size:11px;min-height:0}.tree-row{display:flex;align-items:center;gap:4px;height:19px;border-radius:3px;padding-right:6px;cursor:pointer;white-space:nowrap}.tree-row:hover{background:var(--bg-hover)}.tree-row.selected{background:var(--bg-row-sel);color:var(--text-sel);font-weight:700}.tree-caret{width:12px;text-align:center;color:var(--text-faint);font-size:9px}.tree-count{color:var(--text-dim);font-size:10px}.tree-row.lv-root{color:var(--text-root)}.tree-row.lv-mo{color:var(--text-mint)}.tree-row.lv-st{color:var(--text-amber)}.tree-row.lv-zone{color:var(--text)}.tree-row.unlinked{color:var(--text-danger)}.property-panel{flex:1;border-top:1px solid var(--line);display:flex;flex-direction:column;min-height:0}.prop-box{margin:0 12px 10px;width:auto;background:var(--bg-input);border:1px solid var(--line);border-radius:5px;padding:7px 8px;overflow:auto;flex:1;min-height:0}.prop-row{display:flex;justify-content:space-between;gap:8px;font-size:10px;line-height:16px}.prop-row .k{color:var(--text-dim);flex:0 0 auto}.prop-row .v{color:var(--text);text-align:right;overflow:hidden;text-overflow:ellipsis}.prop-row .v.mint{color:var(--text-mint)}.prop-divider{height:1px;background:var(--line);margin:6px 0}.prop-title{font-size:10px;font-weight:700;margin-bottom:3px}.prop-title.code{color:var(--added)}.prop-title.activity{color:var(--modified)}.prop-title.qty{color:var(--sel)}.prop-title.sub{color:var(--text-dim);font-weight:600;margin-top:4px}.prop-activity{font-size:9.5px;color:var(--text-amber);cursor:pointer;display:block;line-height:15px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.prop-activity:hover{text-decoration:underline}.prop-empty{color:var(--text-mute);font-size:10px}.splitter-v{flex:0 0 5px;cursor:col-resize;background:var(--bg-idle);position:relative}.splitter-v:after{content:"";position:absolute;left:.5px;top:50%;width:4px;height:56px;margin-top:-28px;background:var(--grip);border-radius:2px}.splitter-h{flex:0 0 var(--h-splitter);height:var(--h-splitter);cursor:row-resize;background:var(--bg-idle);position:relative}.splitter-h:after{content:"";position:absolute;top:1px;left:50%;width:56px;height:4px;margin-left:-28px;background:var(--grip);border-radius:2px}.main-area{flex:1;display:flex;flex-direction:column;min-width:0;min-height:0}.viewport{flex:1;position:relative;background:var(--bg-viewport);overflow:hidden;min-height:0;min-width:0}.viewport canvas{display:block;width:100%;height:100%}.vp-overlay{position:absolute}.readonly-badge{left:14px;top:12px;width:150px;height:24px;background:var(--bg-danger-soft);border:1px solid var(--removed);color:var(--text-danger);border-radius:5px;font-size:10.5px;display:flex;align-items:center;justify-content:center;gap:5px}.view-cube{right:14px;top:12px;width:60px;height:60px;background:var(--bg-chip);border:1px solid var(--grip);border-radius:6px;display:grid;grid-template-columns:1fr 1fr 1fr;grid-template-rows:1fr 1fr 1fr;font-size:8px;color:var(--text-head);place-items:center}.view-cube button{font-size:8px;color:var(--text-head);width:100%;height:100%}.view-cube button:hover{background:var(--bg-hover-strong);color:var(--text-sel)}.view-controls{left:14px;bottom:14px;width:234px;height:24px;background:var(--bg-viewport);border:1px solid var(--line);border-radius:5px;display:flex;align-items:center;font-size:10px;color:var(--text-head)}.view-controls button{flex:1;height:100%;font-size:10px;color:var(--text-head)}.view-controls button:hover{color:var(--text-sel);background:var(--bg-hover)}.view-controls button.active{color:var(--text-sel);background:var(--bg-active)}.legend{right:14px;bottom:14px;width:216px;height:24px;background:var(--bg-viewport);border:1px solid var(--line);border-radius:5px;display:flex;align-items:center;font-size:10px;color:var(--text-head)}.legend .dot{width:7px;height:7px;border-radius:50%;display:inline-block;margin-right:4px}.legend-body{flex:1;display:flex;align-items:center;justify-content:space-around}.legend-tabs{display:flex;align-items:stretch;align-self:stretch;border-right:1px solid var(--line)}.legend-tabs button{padding:0 6px;font-size:9.5px;color:var(--neutral);background:transparent;border:0;cursor:pointer}.legend-tabs button:hover:not(:disabled){color:var(--text-sel);background:var(--bg-hover)}.legend-tabs button.active{color:var(--text-sel);background:var(--bg-active);font-weight:700}.legend-tabs button:disabled{opacity:.35;cursor:not-allowed}.legend.heat{width:240px;height:auto;flex-direction:column;align-items:stretch;padding-bottom:3px;gap:3px}.legend.heat .legend-tabs{border-right:0;border-bottom:1px solid var(--line);align-self:stretch}.heat-ramp{display:flex;gap:2px;padding:0 5px}.heat-cell{flex:1;display:flex;flex-direction:column;align-items:stretch;gap:1px}.heat-cell i{display:block;height:9px;border-radius:2px}.heat-cell b{font-size:8.5px;font-weight:600;color:var(--text-faint);text-align:center}.heat-cell.none i{opacity:.75}.legend-note{padding:0 6px;font-size:9px;color:var(--neutral)}.heat-axis{display:flex;justify-content:space-between;gap:4px}.heat-axis-mid{color:var(--text-mute)}.vp-tooltip{left:50%;bottom:46px;transform:translate(-50%);pointer-events:none;opacity:.94;width:192px;min-height:46px;background:var(--bg-float);border:1px solid var(--sel);border-radius:6px;padding:6px 9px}.vp-tooltip .l1{color:var(--text-sel);font-size:10.5px;font-weight:700}.vp-tooltip .l2{color:var(--text-id);font-size:9.5px;margin-top:3px}.vp-tooltip .l4{color:var(--text-mint);font-size:9.5px;margin-top:3px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.vp-tooltip .l3{color:var(--text-amber);font-size:9.5px;margin-top:3px;font-weight:600}.gantt-panel{background:var(--bg-panel);display:flex;flex-direction:column;min-height:0;position:relative}.gantt-toolbar{--tb-h: 18px;--tb-r: 4px;--tb-fs: 11px;--tb-px: 6px;min-height:var(--h-gantt-toolbar);flex:0 0 auto;background:var(--bg-panel);border-bottom:1px solid var(--line);display:flex;flex-wrap:wrap;align-items:center;gap:2px 8px;padding:2px 10px;font-size:11px;color:var(--text-head)}.gantt-toolbar>*{flex:0 0 auto}.gantt-toolbar .title{color:var(--added);font-weight:800;font-size:var(--tb-fs)}.gantt-toolbar button{color:var(--text-head);font-size:var(--tb-fs);white-space:nowrap}.gantt-toolbar [data-kind],.gantt-toolbar .gantt-filter select,.gantt-toolbar .scale-group button,.gantt-toolbar .cpm-badge,.gantt-toolbar .variance-chip,.gantt-toolbar .filter-chip,.gantt-toolbar .ifc-chip,.gantt-toolbar .tl-chip,.gantt-toolbar .pl-chip{box-sizing:border-box;height:var(--tb-h);padding:0 var(--tb-px);border-radius:var(--tb-r);font-size:var(--tb-fs);display:inline-flex;align-items:center}.gantt-toolbar button:disabled{opacity:.4;cursor:default}.gantt-toolbar button:not(:disabled):hover{color:var(--text-sel)}.gantt-toolbar [data-kind=toggle],.gantt-toolbar [data-kind=menu]{border:1px solid var(--line);background:var(--bg-idle)}.gantt-toolbar [data-kind=cmd],.gantt-toolbar [data-kind=route]{border:1px solid transparent;background:none}.gantt-toolbar [data-kind=toggle]:not(:disabled):hover,.gantt-toolbar [data-kind=menu]:not(:disabled):hover{border-color:var(--sel)}.gantt-toolbar [data-kind=toggle].active,.gantt-toolbar [data-kind=menu].active{background:var(--bg-active);border-color:var(--sel);color:var(--text-sel);font-weight:700}.gantt-toolbar [data-kind=menu]:after{content:"▾";margin-left:2px;color:var(--text-dim);font-size:9px}.gantt-toolbar [data-kind=menu].active:after{color:var(--text-sel)}.gantt-toolbar [data-kind=route]:after{content:"…";margin-left:1px;color:var(--text-dim)}.gantt-toolbar [data-kind=cmd]{color:var(--text);font-weight:600}.gantt-toolbar .tb-pill-btns{display:inline-flex;align-items:stretch;border:1px solid var(--line);border-radius:var(--tb-r);overflow:hidden}.gantt-toolbar .tb-pill-btns [data-kind=toggle],.gantt-toolbar .tb-pill-btns [data-kind=menu]{border:none;background:var(--bg-idle)}.gantt-toolbar .tb-pill-btns [data-kind=toggle]{border-right:1px solid var(--line)}.gantt-toolbar .tb-pill-btns [data-kind=menu]{padding:0 4px}.gantt-toolbar .tb-pill-btns [data-kind=menu]:after{margin-left:0}.gantt-toolbar .tb-sep{width:1px;height:14px;background:var(--line);margin:0 1px}.gantt-toolbar .tb-rail{display:inline-flex;align-items:center;gap:8px;padding-left:8px;border-left:1px solid var(--line);margin-left:auto}.gantt-toolbar .tb-rail>*{flex:0 0 auto}.gantt-toolbar .tb-find{display:inline-flex;align-items:center;gap:4px}.gantt-toolbar .tb-find-input{box-sizing:border-box;height:var(--tb-h);padding:0 var(--tb-px);border-radius:var(--tb-r);font-size:var(--tb-fs);width:108px;background:var(--bg-input);border:1px solid var(--line);color:var(--text);outline:none;transition:width .12s ease}.gantt-toolbar .tb-find-input:focus,.gantt-toolbar .tb-find-input:not(:placeholder-shown){width:168px}.gantt-toolbar .tb-find-input::placeholder{color:var(--text-mute)}.gantt-toolbar .tb-find-input::-webkit-search-cancel-button{display:none}.gantt-toolbar .tb-find-count{box-sizing:border-box;height:var(--tb-h);padding:0 var(--tb-px);border-radius:var(--tb-r);font-size:var(--tb-fs);display:inline-flex;align-items:center;background:var(--bg-chip);color:var(--text-mute);cursor:default;font-variant-numeric:tabular-nums}.gantt-toolbar .tb-find-count.none{color:var(--modified)}.gantt-toolbar .tb-find-scope{max-width:140px;overflow:hidden;white-space:nowrap}.gantt-toolbar .tb-rail .cpm-badge,.gantt-toolbar .tb-rail .variance-chip{cursor:default}.col-picker-menu.tb-show-menu{min-width:268px;resize:vertical;overflow:auto;max-height:min(72vh,620px)}.tb-show-menu>button{display:flex;flex-direction:column;align-items:flex-start;gap:1px;width:100%;padding:5px 8px;border-radius:4px;border:1px solid transparent;text-align:left}.tb-show-menu>button:hover{background:var(--bg-idle)}.tb-show-menu>button>span{font-size:11.5px;color:var(--text-head)}.tb-show-menu>button>i{font-style:normal;font-size:10px;color:var(--text-dim);line-height:1.4;white-space:normal}.tb-show-menu>button.active{background:var(--bg-active);border-color:var(--sel)}.tb-show-menu>button.active>span{color:var(--text-sel);font-weight:700}.tb-show-menu>button.active>span:after{content:"  ✓"}.tb-legend{margin-top:6px;padding-top:6px;border-top:1px solid var(--line)}.tb-legend-cap{font-size:10px;color:var(--text-dim);letter-spacing:.02em;margin-bottom:4px}.tb-legend-cap b{color:var(--text-head);font-weight:700}.tb-legend-row{display:grid;grid-template-columns:26px minmax(0,1fr);gap:2px 6px;align-items:start;padding:3px 2px}.tb-legend-row b{font-size:11px;color:var(--text-head);font-weight:600;white-space:normal;line-height:1.3}.tb-legend-row i:not(.tb-legend-sw){grid-column:2;font-style:normal;font-size:10px;color:var(--text-dim);line-height:1.4;white-space:normal}.tb-legend-sw-box{display:inline-flex;gap:2px;align-items:center;margin-top:2px}.tb-legend-sw{width:11px;height:9px;border-radius:2px;flex:0 0 auto;border:1px solid rgba(0,0,0,.25)}.tb-legend-sw.dashed{background:transparent;border:1.5px dashed}.tb-legend-acts{float:right;display:inline-flex;gap:3px}.tb-legend-acts button{height:14px;padding:0 5px;border:1px solid var(--line);border-radius:3px;background:transparent;color:var(--text-dim);font-size:9.5px;line-height:1;cursor:pointer}.tb-legend-acts button:hover:not(:disabled){color:var(--text-head);border-color:var(--text-dim)}.tb-legend-acts button:disabled{opacity:.35;cursor:default}.tb-legend-grp{margin-top:5px}.tb-legend-sub{font-size:9.5px;color:var(--text-dim);opacity:.8;padding:2px 2px 3px;letter-spacing:.02em}.tb-legend-row.pick{grid-template-columns:13px 15px minmax(0,1fr) auto;align-items:center;cursor:pointer;border-radius:3px}.tb-legend-row.pick:hover{background:color-mix(in srgb,var(--text-head) 7%,transparent)}.tb-legend-row.pick input{margin:0;width:12px;height:12px;cursor:pointer}.tb-legend-row.pick .tb-legend-sw-box{margin-top:0}.tb-legend-row.pick b{cursor:pointer}.tb-legend-row.pick b:hover{text-decoration:underline}.tb-legend-row.pick b:focus-visible{outline:1px solid var(--accent);outline-offset:1px}.tb-legend-row.pick u{text-decoration:none;font-size:10px;color:var(--text-dim);font-variant-numeric:tabular-nums;padding-left:4px}.tb-legend-row.pick[data-empty]{opacity:.4;cursor:default}.tb-legend-row.pick[data-empty]:hover{background:transparent}.tb-legend-row.pick[data-empty] b{cursor:default}.tb-legend-row.pick[data-empty] b:hover{text-decoration:none}.tb-legend-row.pick i{grid-column:3 / -1}.gantt-bar-help-popover .help-legend-hint{margin-top:3px;padding-top:3px;border-top:1px solid var(--line);font-size:9.5px;color:var(--text-dim)}.gantt-bar-help-popover .help-legend-hint b{display:inline;color:var(--text-head);font-size:9.5px}.cpm-badge{min-width:96px;justify-content:center;background:var(--bg-chip);border:1px solid var(--line);color:var(--text-head)}.filter-chip{gap:6px;background:var(--bg-sel-soft);border:1px solid var(--sel);color:var(--text-sel);max-width:260px}.filter-chip .fc-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.gantt-filter{display:inline-flex;align-items:center;gap:5px}.gantt-filter select{background:var(--bg-idle);color:var(--text-head);border:1px solid var(--line);cursor:pointer;width:66px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.gantt-filter select.on{background:var(--bg-active);border-color:var(--sel);color:var(--text-sel);font-weight:700}.gantt-filter b{font-size:var(--tb-fs);color:var(--text-sel)}.grid-head .cell.sortable{cursor:pointer;-webkit-user-select:none;user-select:none}.grid-head .cell.sortable:hover{color:var(--text-sel, #9fc6ff)}.grid-head .cell.sorted{color:var(--text-sel, #9fc6ff);font-weight:700}.grid-head .sort-mark{margin-left:3px;font-size:8px;opacity:.9}.filter-chip .fc-count{color:var(--text-head);flex:0 0 auto}.filter-chip button{color:var(--text-head);font-size:10px;padding:0 2px}.filter-chip button:hover{color:var(--text-sel)}.grid-empty{padding:10px 8px;font-size:10px;color:var(--text-head);line-height:1.6}.grid-empty b{color:var(--text)}.grid-empty-act{margin-left:8px;height:20px;padding:0 9px;border-radius:4px;border:1px solid var(--sel);background:var(--bg-active);color:var(--text-sel);font-size:10px;font-weight:700}.scale-group{display:flex;gap:2px}.scale-group button{border:1px solid var(--line)}.scale-group button.active{background:var(--bg-active);border-color:var(--sel);color:var(--text-sel)}.gantt-body{flex:1;display:flex;min-height:0}.activity-table{flex:0 0 var(--w-gantt-table);width:var(--w-gantt-table);border-right:1px solid var(--line);display:flex;flex-direction:column;min-height:0;overflow:hidden}.gantt-chart{flex:1;min-width:0;overflow:hidden;position:relative}.grid-head{height:var(--h-row);flex:0 0 var(--h-row);border-bottom:1px solid var(--line);background:var(--bg-head);display:flex;align-items:center;font-size:10px;color:var(--text-head);font-weight:700}.grid-head .cell{padding:0 9px 0 6px;overflow:hidden;white-space:nowrap;position:relative}.grid-scroll{flex:1;overflow:auto;min-height:0}.grid-row{height:var(--h-row);display:flex;align-items:center;font-size:10.5px;cursor:pointer;border-bottom:1px solid var(--line-soft)}.grid-row:hover{background:var(--bg-hover)}.grid-row.selected{background:var(--bg-row-sel)}.grid-row.query-hit{background:var(--bg-row-hit)}.grid-row.query-hit.selected{background:var(--bg-row-sel)}.grid-row .cell{padding:0 6px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.grid-row .cell.id{font-family:Consolas,monospace;font-size:9.5px;color:var(--text-id)}.grid-row.selected .cell.id{color:var(--text-sel);font-weight:700}.grid-row.unlinked .cell{color:var(--text-amber)}.grid-row.proposed .cell{color:var(--text-mint)}.grid-row .cell.num{text-align:right}.grid-row.selected .cell.editable{cursor:text}.grid-row.selected .cell.editable:hover{background:#4f8cff29;box-shadow:inset 0 0 0 1px #4f8cff73}.grid-row .cell.editing{padding:0 4px;background:var(--bg-app);box-shadow:inset 0 0 0 2px var(--sel)}.cell-input{width:100%;height:calc(var(--h-row) - 4px);background:transparent;border:0;outline:none;padding:0 2px;color:var(--text-sel);font:inherit;font-size:10.5px;text-align:inherit}.grid-row .cell.num .cell-input{text-align:right}.col-picker{position:relative;display:inline-flex}.col-picker-menu{position:absolute;top:26px;left:0;z-index:60;min-width:176px;background:var(--bg-panel);border:1px solid var(--line);border-radius:6px;padding:6px;box-shadow:0 8px 22px var(--shadow-col)}.col-picker-menu label{display:flex;align-items:center;gap:7px;padding:4px 7px;font-size:11.5px;border-radius:4px;cursor:pointer;white-space:nowrap}.col-picker-menu label:hover{background:#4f8cff1f}.col-picker-menu input{accent-color:var(--sel)}.wbs-filter-menu{min-width:220px;max-width:320px}.wbs-filter-list{max-height:260px;overflow-y:auto}.wbs-filter-list label{white-space:normal}.col-picker-note{margin-top:5px;padding:5px 7px 2px;border-top:1px solid var(--line);color:var(--text-dim);font-size:10px}.col-picker-note input[type=text]{width:100%;height:22px;margin-bottom:5px;padding:0 7px;border:1px solid var(--line);border-radius:4px;background:var(--bg-idle);color:var(--text);font-size:11px}.col-picker-note input[type=text]:focus{outline:none;border-color:var(--sel)}.col-picker-note button{width:100%;height:22px;border:1px solid var(--line);border-radius:4px;background:var(--bg-idle);color:var(--text);font-size:10.5px;cursor:pointer}.col-picker-note button:hover:not(:disabled){border-color:var(--sel);color:var(--text-sel)}.col-picker-note button:disabled{opacity:.45;cursor:default}.ctx-menu{position:fixed;z-index:400;min-width:188px;padding:4px;background:var(--bg-panel);border:1px solid var(--line);border-radius:6px;box-shadow:0 10px 28px var(--shadow-col);font-size:11.5px}.ctx-item{display:flex;align-items:center;gap:6px;width:100%;padding:5px 8px 5px 4px;border:0;border-radius:4px;background:transparent;color:var(--text);font:inherit;text-align:left;cursor:pointer;white-space:nowrap}.ctx-item:hover:not(:disabled){background:#4f8cff24}.ctx-item:disabled{color:var(--text-dim);cursor:default;opacity:.55}.ctx-item.checked{color:var(--sel)}.ctx-check{flex:0 0 14px;text-align:center;color:var(--sel);font-size:10.5px}.ctx-label{flex:1 1 auto}.ctx-hint{flex:0 0 auto;margin-left:10px;color:var(--text-dim);font-size:10px}.ctx-sep{height:1px;margin:4px 6px;background:var(--line)}.col-preset-row{display:flex;align-items:center;gap:4px;padding:1px 3px 7px;margin-bottom:5px;border-bottom:1px solid var(--line)}.col-preset-cap{color:var(--text-dim);font-size:10px;letter-spacing:.4px;margin-right:2px}.col-preset-row button{padding:3px 8px;border:1px solid var(--line);border-radius:4px;background:transparent;color:var(--text);font:inherit;font-size:11px;cursor:pointer;white-space:nowrap}.col-preset-row button:hover{background:#4f8cff1f}.col-preset-row button.active{background:var(--sel);border-color:var(--sel);color:#fff}.dd-menu{min-width:232px}.dd-head{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:2px 7px 7px;border-bottom:1px solid var(--line);margin-bottom:5px;font-size:11.5px;font-weight:700;color:var(--added)}.dd-goto{height:20px;padding:0 7px;font-size:10.5px;font-weight:400;border:1px solid var(--line);border-radius:4px;background:var(--bg-idle);color:var(--text);cursor:pointer}.dd-goto:hover:not(:disabled){border-color:var(--sel);color:var(--text-sel)}.dd-goto:disabled{opacity:.45;cursor:default}.viewrange-list{display:flex;flex-direction:column;gap:4px}.viewrange-list .dd-goto{width:100%;text-align:left;height:22px}.goto-list{display:flex;flex-direction:column;gap:4px;min-width:160px}.goto-list .dd-goto{width:100%;text-align:left;height:22px}.goto-list .dd-goto:disabled{opacity:.45;cursor:default}.dd-menu>button{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:center;width:100%;padding:3px 7px;border:0;border-radius:3px;background:none;color:var(--text);font-size:11px;text-align:left;cursor:pointer}.dd-menu>button:hover{background:#4f8cff1f}.dd-menu>button.active{background:var(--sel);color:#fff}.dd-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dd-num{font-size:9.5px;color:var(--text-mute);font-variant-numeric:tabular-nums}.dd-menu>button.active .dd-num{color:#ffffffbf}.dd-menu>button.dd-view{display:flex;align-items:center;gap:3px}.dd-menu>button.dd-view .dd-name{flex:1 1 auto}.dd-menu>button.dd-view .dd-num{flex:0 0 auto;width:16px;height:16px;display:flex;align-items:center;justify-content:center;border-radius:3px;opacity:.65}.dd-menu>button.dd-view .dd-num:hover{opacity:1;background:#ffffff29}.dd-menu>button.dd-view.active .dd-num:hover{background:#ffffff47}.bulk-menu{min-width:296px}.bulk-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:5px;align-items:center;padding:3px 7px}.bulk-row:has(>:only-child){grid-template-columns:minmax(0,1fr)}.bulk-row .dt-cstr-slot{grid-column:1 / -1}.bulk-report{margin:6px 7px 2px;padding:6px 8px;border-radius:4px;background:var(--bg-idle);font-size:10px;line-height:1.6}.bulk-nums{display:flex;gap:10px;flex-wrap:wrap}.bulk-nums b{font-variant-numeric:tabular-nums}.bulk-nums .dim{color:var(--text-mute)}.bulk-nums .warn{color:var(--text-amber, #d08a2c)}.bulk-moved{margin-top:4px;padding-top:4px;border-top:1px solid var(--line);font-weight:700;color:var(--modified, #d08a2c)}.bulk-skiplist{margin:5px 0 0;padding-left:14px;color:var(--text-dim)}.bulk-skiplist .dim{color:var(--text-mute);list-style:none;margin-left:-14px}.bulk-actions{display:flex;gap:5px;padding:7px}.bulk-actions button{flex:1;height:22px;border:1px solid var(--line);border-radius:4px;background:var(--bg-idle);color:var(--text);font-size:10.5px;cursor:pointer}.bulk-actions button:hover:not(:disabled){border-color:var(--sel)}.bulk-actions button.primary{background:var(--sel);border-color:var(--sel);color:#fff}.bulk-actions button:disabled{opacity:.45;cursor:not-allowed}.dd-sep{margin:7px 0 4px;padding:5px 7px 0;border-top:1px solid var(--line);font-size:10px;color:var(--text-dim)}.dd-spot{display:flex;gap:4px;padding:0 7px 2px}.dd-spot button{flex:1;height:21px;font-size:10.5px;border:1px solid var(--line);border-radius:4px;background:var(--bg-idle);color:var(--text-dim);cursor:pointer}.dd-spot button:hover{border-color:var(--sel)}.dd-spot button.active{border-color:var(--sel);color:var(--text-sel);background:color-mix(in srgb,var(--sel) 16%,transparent)}.col-picker-menu label.dd-off{cursor:default;color:var(--text-dim)}.col-picker-menu label.dd-off input{opacity:.4}.dd-hint{margin-left:6px;font-size:10px;font-style:normal;color:var(--modified);white-space:nowrap}.dd-stat{display:flex;align-items:center;justify-content:space-between;gap:8px;width:100%;padding:4px 7px;border:0;border-radius:4px;background:transparent;color:var(--text);font-size:11.5px;text-align:left;cursor:pointer}.dd-stat:hover{background:#4f8cff1f}.dd-stat b{font-variant-numeric:tabular-nums}.dd-stat.warn b,.grid-row.noreport .cell.id{color:var(--modified)}.bl-menu{min-width:244px}.bl-capture{width:100%;height:22px;margin-bottom:5px;font-size:11px;border-color:var(--line-sel);color:var(--sel);display:flex;align-items:center;justify-content:center;gap:6px}.bl-tag{margin-left:auto;flex:none;font-size:9.5px;font-weight:400;color:var(--text-dim)}.bl-row{display:flex;align-items:center;gap:4px;padding:2px 0}.bl-name{flex:1;min-width:0;height:20px;padding:0 6px;border:none;background:none;color:var(--text-dim);font-size:11.5px;text-align:left;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;cursor:pointer}.bl-name:hover{background:#4f8cff1f}.bl-name.primary{color:var(--text);font-weight:600}.bl-count{font-size:10px;color:var(--text-dim)}.bl-src{flex:none;padding:0 4px;border:1px solid var(--neutral);border-radius:2px;font-size:8.5px;font-weight:700;line-height:13px;color:var(--neutral)}.bl-del{width:18px;height:18px;padding:0;border:none;background:none;color:var(--text-dim);font-size:10px;cursor:pointer}.bl-del:hover{color:var(--removed)}.bl-toggle{margin-top:5px;border-top:1px solid var(--line);padding-top:6px!important}.filter-set-menu{min-width:210px}.filter-set-menu .fs-mode{margin-top:5px;padding-top:5px;border-top:1px solid var(--line)}.filter-set-menu .fs-mode label{font-size:11px}.filter-set-menu .fs-name{width:100%;height:22px;margin-top:6px;padding:0 6px;border:1px solid var(--line);border-radius:4px;background:var(--bg-idle, #1a2236);color:var(--text);font-size:11.5px}.filter-set-menu .fs-name:focus{outline:none;border-color:var(--sel)}.filter-set-menu .fs-actions{display:flex;gap:4px;margin-top:6px}.filter-set-menu .fs-actions button{flex:1;height:22px;font-size:11px}.filter-set-menu .fs-actions button:disabled{opacity:.4;cursor:default}.filter-set-menu .fs-actions button.danger{color:var(--removed)}.variance-chip{border:1px solid var(--line);background:var(--bg-chip);color:var(--text-head);white-space:nowrap;cursor:help;gap:6px}.variance-chip .vc-cap{font-style:normal;color:var(--text-mute)}.variance-chip .vc-late{color:var(--modified);font-weight:700}.variance-chip .vc-late.zero{color:var(--text-dim);font-weight:400}.ifc-chip{border:1px solid var(--ifc-mark);background:color-mix(in srgb,var(--ifc-mark) 14%,transparent);color:var(--ifc-mark);white-space:nowrap;cursor:help}.ifc-chip .ifc-only{margin-left:7px;height:14px;padding:0 6px;border:1px solid var(--ifc-mark);border-radius:3px;background:transparent;color:var(--ifc-mark);font-size:9.5px;line-height:1;cursor:pointer}.ifc-chip .ifc-only:hover{background:color-mix(in srgb,var(--ifc-mark) 22%,transparent)}.ifc-chip .ifc-only.on{background:var(--ifc-mark);color:var(--bg-panel);font-weight:600}.ifc-chip.sched{border-color:var(--sched-mark);color:var(--sched-mark);background:color-mix(in srgb,var(--sched-mark) 14%,transparent)}.ifc-chip.sched .ifc-only{border-color:var(--sched-mark);color:var(--sched-mark)}.ifc-chip.sched .ifc-only:hover{background:color-mix(in srgb,var(--sched-mark) 22%,transparent)}.ifc-chip.sched .ifc-only.on{background:var(--sched-mark);color:var(--bg-panel);font-weight:600}.ifc-chip.sched .sched-range-from{margin-left:7px;height:14px;padding:0 3px;border:1px solid var(--sched-mark);border-radius:3px;background:transparent;color:var(--sched-mark);font-size:9.5px;line-height:1;cursor:pointer}.sched-range-err{color:var(--removed);margin-left:5px;font-style:normal}.ifc-chip.err{border-color:var(--removed);background:color-mix(in srgb,var(--removed) 14%,transparent);color:var(--removed)}.tl-chip .tl-only{margin-left:7px;height:14px;padding:0 6px;border:1px solid var(--building);border-radius:3px;background:transparent;color:var(--building);font-size:9.5px;line-height:1;cursor:pointer}.tl-chip .tl-only:hover{background:color-mix(in srgb,var(--building) 22%,transparent)}.tl-chip .tl-only.on{background:var(--building);color:var(--bg-panel);font-weight:600}.tl-chip{border:1px solid var(--building);background:color-mix(in srgb,var(--building) 14%,transparent);color:var(--building);white-space:nowrap;cursor:help}.pl-chip{border:1px solid var(--added);background:color-mix(in srgb,var(--added) 14%,transparent);color:var(--added);white-space:nowrap;cursor:help}.pl-chip .pl-off{margin-left:7px;height:14px;padding:0 6px;border:1px solid var(--added);border-radius:3px;background:transparent;color:var(--added);font-size:9.5px;line-height:1;cursor:pointer}.pl-chip .pl-off:hover{background:color-mix(in srgb,var(--added) 22%,transparent)}.pl-chip.bk-chip{border-color:var(--chip);background:color-mix(in srgb,var(--chip) 14%,transparent);color:var(--chip)}.pl-chip.bk-chip .pl-off{border-color:var(--chip);color:var(--chip)}.pl-chip.bk-chip .pl-off:hover{background:color-mix(in srgb,var(--chip) 22%,transparent)}.key-hint{font-size:9px;opacity:.6;font-family:Consolas,monospace;margin-left:2px}.chart-scroll{position:absolute;inset:0;overflow:auto}.grid-row.review .cell{color:var(--review)}.panel-popover{position:fixed;z-index:100;max-width:calc(100vw - 20px);max-height:calc(100vh - 20px);background:var(--bg-panel);border:1px solid var(--line);border-radius:8px;box-shadow:0 12px 32px var(--shadow-col);display:flex;flex-direction:column;overflow:hidden}.panel-popover-head{cursor:move;-webkit-user-select:none;user-select:none;touch-action:none;height:28px;flex:0 0 28px;padding:0 8px 0 10px;background:var(--bg-bar);border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;font-size:11px;font-weight:700;color:var(--text-head)}.panel-close,.panel-dock{width:20px;height:20px;border-radius:4px;background:transparent;border:none;color:var(--text-dim);font-size:11px}.panel-close:hover{background:var(--bg-idle);color:var(--text)}.panel-dock{font-size:13px;margin-right:2px}.panel-dock:hover{background:var(--bg-idle);color:var(--text-sel)}.panel-popover-body{flex:1;min-height:0;display:flex}.coverage-panel{width:100%;height:100%;min-height:0;display:flex;flex-direction:column;font-size:11px}.cov-stats{flex:0 0 auto;display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--line-soft);border-bottom:1px solid var(--line)}.cov-stat{background:var(--bg-panel);padding:7px 8px}.cov-stat-label{font-size:9.5px;color:var(--text-dim)}.cov-stat-value{font-size:15px;font-weight:800;margin-top:2px}.cov-stat-sub{font-size:9.5px;color:var(--text-dim);margin-top:1px}.cov-stat.ok .cov-stat-value{color:var(--added)}.cov-stat.neutral .cov-stat-value{color:var(--neutral)}.cov-stat.amber .cov-stat-value{color:var(--modified)}.cov-stat.review .cov-stat-value{color:var(--review)}.cov-stat.off .cov-stat-value{color:var(--grip)}.cov-section{flex:0 0 auto;padding:6px 10px;color:var(--text-head);font-size:10.5px;font-weight:700;display:flex;justify-content:space-between;align-items:baseline}.cov-hint{font-weight:400;color:var(--text-dim);font-size:9.5px}.cov-table{flex:1;min-height:0;overflow:auto}.cov-row{width:100%;display:flex;align-items:center;gap:8px;padding:4px 10px;background:transparent;border:none;border-bottom:1px solid var(--line-soft);color:var(--text);text-align:left;font-size:10.5px}.cov-row:hover{background:var(--bg-idle)}.cov-row.selected{background:var(--bg-row-sel);color:var(--text-sel)}.cov-code{flex:0 0 118px;color:var(--text-id);font-family:Consolas,monospace}.cov-orig{flex:1;min-width:0;color:var(--text-dim);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cov-num{flex:0 0 48px;text-align:right;color:var(--neutral);font-weight:700}.cov-foot{flex:0 0 auto;border-top:1px solid var(--line);padding:8px 10px}.cov-notice{color:var(--text-dim);font-size:9.5px;margin-bottom:6px}.cov-cta{width:100%;height:28px;border-radius:6px;background:var(--bg-sel-soft);border:1px solid var(--sel);color:var(--text-sel);font-size:11px;font-weight:700}.cov-cta:hover{background:var(--bg-active)}.cov-cta:disabled{background:var(--bg-idle);border-color:var(--line);color:var(--text-dim)}.panel-empty{padding:14px 10px;color:var(--text-dim);font-size:10.5px}.prop-title.pset{color:var(--text-id)}.pset-head{display:flex;align-items:center;gap:4px;height:17px;cursor:pointer;font-size:10px;color:var(--text-head);white-space:nowrap;overflow:hidden}.pset-head:hover{color:var(--text-sel)}.pset-caret{width:10px;color:var(--text-faint);font-size:8px}.pset-name{overflow:hidden;text-overflow:ellipsis}.pset-count{color:var(--text-dim)}.prop-row.pset-row{padding-left:10px}.prop-row.pset-row .k{max-width:96px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.prop-row .v.mixed{color:var(--modified);font-style:italic}.bottom-dock{flex:1;min-height:0;display:flex;flex-direction:column}.dock-tabs{flex:0 0 22px;height:22px;display:flex;gap:2px;padding:0 6px;background:var(--bg-bar);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.dock-tab{padding:0 12px;font-size:10.5px;color:var(--text-dim);border-bottom:2px solid transparent}.dock-tab.active{color:var(--text-sel);border-bottom-color:var(--sel);font-weight:700}.dock-body{flex:1;min-height:0;display:flex}.data-table{width:100%;height:100%;min-height:0;display:flex;flex-direction:column;background:var(--bg-panel);font-size:11px}.dt-toolbar{flex:0 0 28px;height:28px;display:flex;align-items:center;gap:6px;padding:0 8px;background:var(--bg-bar);border-bottom:1px solid var(--line)}.dt-modes{display:flex;gap:2px}.dt-modes button{height:19px;padding:0 9px;border-radius:4px;background:var(--bg-idle);border:1px solid var(--line);color:var(--text-dim);font-size:10px}.dt-modes button.active{background:var(--bg-active);border-color:var(--sel);color:var(--text-sel);font-weight:700}.dt-search{width:200px;height:20px;background:var(--bg-input);border:1px solid var(--line);border-radius:4px;color:var(--text);font-size:10.5px;padding:0 7px;outline:none}.dt-search::placeholder{color:var(--text-mute)}.dt-toolbar select{height:20px;max-width:150px;background:var(--bg-input);border:1px solid var(--line);border-radius:4px;font-size:10.5px;outline:none}.dt-toolbar select option{background:var(--bg-chip)}.dt-check{display:inline-flex;align-items:center;gap:4px;color:var(--text-dim);font-size:10.5px}.dt-csv{color:var(--text-head);font-size:10.5px}.dt-csv:hover{color:var(--text-sel)}.dt-head{flex:0 0 22px;height:22px;display:flex;align-items:center;background:var(--bg-idle);border-bottom:1px solid var(--line);color:var(--text-head);font-size:10px;font-weight:700;padding-left:8px;overflow:hidden}.dt-body{flex:1;min-height:0;overflow:auto;position:relative}.dt-row{display:flex;align-items:center;width:100%;padding-left:8px;cursor:pointer;white-space:nowrap;border-bottom:1px solid var(--line-soft)}.dt-row:hover{background:var(--bg-idle)}.dt-row.selected{background:var(--bg-row-sel);color:var(--text-sel)}.dt-cell{flex:0 0 auto;padding-right:10px;overflow:hidden;text-overflow:ellipsis}.dt-cell.mono{font-family:Consolas,monospace;color:var(--text-id)}.dt-cell.dim{color:var(--text-dim)}.dt-row.selected .dt-cell.mono{color:var(--text-sel)}.dt-foot{flex:0 0 20px;height:20px;display:flex;align-items:center;justify-content:space-between;padding:0 10px;background:var(--bg-bar);border-top:1px solid var(--line);color:var(--text-dim);font-size:10px}.dt-note{color:var(--text-mute)}.dt-empty{padding:14px 10px;color:var(--text-dim);font-size:10.5px}.gantt-bar{transition:x .2s ease,width .2s ease}.gantt-bar.editable{cursor:grab}.gantt-bar.editable:active{cursor:grabbing}.rel-anchor:hover{fill:var(--sel)}.cpm-badge.busy{color:var(--modified);border-color:var(--line-warn)}.cpm-badge.stale{min-width:132px;background:var(--bg-warn-soft);border-color:var(--line-warn);color:var(--modified)}.cycle-alert{display:inline-flex;align-items:center;gap:6px;height:18px;padding:0 8px;border-radius:4px;background:var(--bg-danger-soft);border:1px solid var(--removed);color:var(--text-danger);font-size:10px;white-space:nowrap;max-width:420px;overflow:hidden;text-overflow:ellipsis}.cycle-alert.warn{background:var(--bg-warn-soft);border-color:var(--modified);color:var(--text-amber)}.cycle-alert button{color:inherit;font-size:10px}.gen-panel{width:100%;height:100%;min-height:0;display:flex;flex-direction:column;font-size:11px}.gen-head{flex:0 0 auto;display:flex;align-items:center;gap:10px;padding:7px 10px;border-bottom:1px solid var(--line)}.gen-head select{height:22px;background:var(--bg-input);border:1px solid var(--line);border-radius:4px;font-size:10.5px;padding:0 6px}.gen-count{color:var(--text-head);font-size:10.5px}.gen-count b{color:var(--added)}.gen-skip{color:var(--text-dim)}.gen-tabs{flex:0 0 auto;display:flex;gap:2px;padding:5px 10px 0;border-bottom:1px solid var(--line)}.gen-tab{padding:4px 10px;border:1px solid transparent;border-bottom:none;border-radius:4px 4px 0 0;background:none;color:var(--text-dim);font-size:10.5px;cursor:pointer}.gen-tab.on{border-color:var(--line);background:var(--panel-bg, var(--overlay-1));color:var(--text-head)}.gen-tab b{color:var(--added);margin-left:3px}.gen-warn{flex:0 0 auto;padding:5px 10px;background:#dc50501f;border-bottom:1px solid var(--line);color:var(--removed, #e06c6c);font-size:10px}.gen-table{flex:1;min-height:0;overflow:auto}.gen-arrow{flex:0 0 12px;color:var(--text-dim);text-align:center}.gen-row{display:flex;align-items:center;gap:8px;padding:3px 10px;border-bottom:1px solid var(--line-soft);font-size:10.5px;white-space:nowrap}.gen-row.skip{opacity:.45}.gen-code{flex:0 0 150px;font-family:Consolas,monospace;color:var(--text-id)}.gen-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;color:var(--text)}.gen-num{flex:0 0 54px;text-align:right;color:var(--text-dim)}.gen-foot{flex:0 0 auto;border-top:1px solid var(--line);padding:8px 10px}.gen-note{display:block;color:var(--text-dim);font-size:9.5px;margin-bottom:6px}.gen-note b{color:var(--added)}.gen-done{padding:18px 14px}.gen-done-title{color:var(--added);font-weight:800;font-size:12px;margin-bottom:4px}.gen-done-sub{color:var(--text-dim);font-size:10.5px;margin-bottom:12px}.up-panel{width:100%;height:100%;min-height:0;display:flex;flex-direction:column;font-size:11px}.up-head{flex:0 0 auto;display:flex;align-items:center;gap:10px;padding:7px 10px;border-bottom:1px solid var(--line)}.up-head label{display:flex;align-items:center;gap:5px;color:var(--text-dim);font-size:10.5px}.up-head input[type=date]{height:22px;background:var(--bg-input);border:1px solid var(--line);border-radius:4px;font-size:10.5px;padding:0 6px;color:var(--text)}.up-head button{height:22px;padding:0 8px;border:1px solid var(--line);border-radius:4px;background:var(--bg-panel);color:var(--text);font-size:10.5px;cursor:pointer}.up-note{flex:0 0 auto;padding:5px 10px;color:var(--text-dim);font-size:9.5px;border-bottom:1px solid var(--line-soft)}.up-counts{flex:0 0 auto;display:flex;gap:12px;padding:8px 10px;font-size:10.5px}.up-c{color:var(--text-dim)}.up-c b{margin-left:3px}.up-c-complete b{color:var(--added)}.up-c-active b{color:var(--modified)}.up-c-dim b{color:var(--text-dim)}.up-rows{flex:1;min-height:0;overflow:auto}.up-row{display:flex;align-items:center;gap:8px;padding:3px 10px;border-bottom:1px solid var(--line-soft);font-size:10.5px;white-space:nowrap}.up-row-code{flex:0 0 150px;font-family:Consolas,monospace;color:var(--text-id);overflow:hidden;text-overflow:ellipsis}.up-row-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;color:var(--text)}.up-row-tag{flex:0 0 auto;color:var(--text-dim);font-size:9.5px}.up-row-complete .up-row-tag{color:var(--added)}.up-row-active .up-row-tag{color:var(--modified)}.up-row-pct{flex:0 0 34px;text-align:right;color:var(--text-dim)}.up-row-more{padding:4px 10px;color:var(--text-mute);font-size:9.5px}.up-panel>.cov-cta{margin:8px 10px 10px}.up-done{padding:18px 14px}.up-done-title{color:var(--added);font-weight:800;font-size:12px;margin-bottom:4px}.up-done-sub{color:var(--text-dim);font-size:10.5px;margin-bottom:12px}.rev-wizard{flex:1;min-height:0;display:flex;flex-direction:column;background:var(--bg-panel);font-size:11px}.rev-steps{flex:0 0 26px;display:flex;align-items:center;gap:8px;padding:0 10px;background:var(--bg-bar);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.rev-step{color:var(--text-dim);font-size:10.5px}.rev-step.active{color:var(--text-sel);font-weight:700}.rev-safe{color:var(--added);font-size:10px}.rev-exit{color:var(--text-head);font-size:10.5px}.rev-error{margin:8px 10px;padding:6px 8px;border-radius:4px;background:var(--bg-danger-soft);border:1px solid var(--removed);color:var(--text-danger);font-size:10.5px}.rev-upload{padding:14px;display:flex;flex-direction:column;gap:10px}.rev-drop{border:1.4px dashed var(--grip);border-radius:8px;padding:22px 14px;text-align:center;background:var(--bg-idle)}.rev-drop-title{color:var(--text);font-weight:700;margin-bottom:4px}.rev-drop-sub{color:var(--text-dim);font-size:10.5px;margin-bottom:10px}.rev-path{display:flex;gap:8px;align-items:center}.rev-path input{flex:1;height:24px;background:var(--bg-input);border:1px solid var(--line);border-radius:4px;color:var(--text);padding:0 8px;font-size:10.5px;outline:none}.rev-path .cov-cta{width:150px}.rev-hint{color:var(--text-dim);font-size:9.5px}.rev-diff{flex:1;min-height:0;display:flex;flex-direction:column}.rev-head{flex:0 0 auto;display:flex;gap:10px;align-items:baseline;padding:8px 10px 4px;color:var(--text-head)}.rev-head b{color:var(--text-sel)}.rev-file,.rev-el{color:var(--text-dim);font-size:10px}.rev-rows{flex:0 0 auto;display:flex;gap:1px;padding:0 10px 6px}.rev-row{flex:1;text-align:left;padding:6px 8px;border-radius:5px;background:var(--bg-idle);border:1px solid var(--line)}.rev-row.active{border-color:var(--sel);background:var(--bg-active)}.rev-row-label{display:block;font-size:10px;color:var(--text-dim)}.rev-row-count{display:block;font-size:16px;font-weight:800}.rev-row-note{display:block;font-size:9px;color:var(--text-dim)}.rev-row.keep .rev-row-count{color:var(--neutral)}.rev-row.mod .rev-row-count{color:var(--modified)}.rev-row.add .rev-row-count{color:var(--added)}.rev-row.del .rev-row-count{color:var(--removed)}.rev-row.review .rev-row-count{color:var(--review)}.rev-wizard,.rev-diff,.rev-rows{min-width:0}.rev-row{min-width:0;overflow:hidden}.rev-row-label,.rev-row-note{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.rev-impact{margin:0 10px 6px;padding:6px 8px;border-radius:4px;background:var(--bg-warn-soft);border:1px solid var(--line-warn);color:var(--text-amber);font-size:10.5px}.rev-impact b{color:var(--text-amber)}.rev-list{flex:1;min-height:0;overflow:auto;margin:0 10px}.rev-item{display:flex;gap:10px;align-items:center;padding:3px 4px;border-bottom:1px solid var(--line-soft);font-size:10.5px;white-space:nowrap}.rev-gid{flex:0 0 110px;color:var(--text-id)}.rev-type{flex:0 0 150px;color:var(--text-dim)}.rev-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis}.rev-method{flex:0 0 100px;color:var(--text-dim)}.rev-change{flex:0 0 240px;color:var(--text-amber);overflow:hidden;text-overflow:ellipsis}.rev-foot{flex:0 0 auto;display:flex;gap:8px;align-items:center;padding:8px 10px;border-top:1px solid var(--line)}.rev-foot .cov-cta{flex:1}.rev-discard{height:28px;padding:0 14px;border-radius:6px;background:var(--bg-idle);border:1px solid var(--line);color:var(--text-dim);font-size:11px}.rev-discard:hover{border-color:var(--removed);color:var(--text-danger)}.rev-done{padding:18px 14px}.rev-done-title{color:var(--added);font-weight:800;font-size:13px;margin-bottom:8px}.rev-done-list{margin:0 0 12px;padding-left:16px;color:var(--text);line-height:1.8}.rq-shell{position:fixed;inset:0;z-index:60;background:var(--bg-float);display:flex;flex-direction:column;padding:26px 34px;font-size:11px}.rq-head{display:flex;align-items:center;gap:14px;margin-bottom:14px}.rq-title{color:var(--review);font-size:14px;font-weight:800}.rq-count{color:var(--text)}.rq-decided{color:var(--text-dim)}.rq-flash{color:var(--added);font-size:10.5px}.rq-close{color:var(--text-head)}.rq-empty{color:var(--text-dim);padding:30px 0}.rq-meta{display:flex;gap:14px;align-items:center;flex-wrap:wrap;padding:8px 12px;background:var(--bg-panel);border:1px solid var(--line);border-radius:6px;color:var(--text-dim)}.rq-method{padding:1px 7px;border-radius:3px;background:var(--bg-review-soft);border:1px solid var(--line-review);color:var(--review);font-weight:700}.rq-path{color:var(--text-id)}.rq-lose{color:var(--text-dim)}.rq-lose.warn{color:var(--text-amber);font-weight:700}.rq-compare{flex:1;min-height:0;overflow:auto;margin:12px 0;background:var(--bg-panel);border:1px solid var(--line);border-radius:6px}.rq-col-head{display:grid;grid-template-columns:150px 1fr 40px 1fr;padding:6px 12px;border-bottom:1px solid var(--line);color:var(--text-head);font-weight:700}.rq-col-head span:nth-child(1){grid-column:2}.rq-col-head span:nth-child(2){grid-column:4}.rq-field{display:grid;grid-template-columns:150px 1fr 40px 1fr;align-items:center;padding:5px 12px;border-bottom:1px solid var(--line-soft)}.rq-key{color:var(--text-dim)}.rq-val{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rq-mark{text-align:center;color:var(--added)}.rq-field.diff .rq-val{color:var(--modified)}.rq-field.diff .rq-mark{color:var(--removed);font-weight:700}.rq-actions{display:flex;gap:8px}.rq-actions button{height:32px;padding:0 16px;border-radius:6px;border:1px solid var(--line);background:var(--bg-idle);color:var(--text);font-size:11px;font-weight:700}.rq-yes{border-color:var(--added)!important;color:var(--text-mint)!important}.rq-no{border-color:var(--removed)!important;color:var(--text-danger)!important}.rq-bulk{margin-left:auto;border-color:var(--sel)!important;color:var(--text-sel)!important}.rq-actions button:disabled{opacity:.4}.rq-keys{display:flex;gap:16px;margin-top:10px;color:var(--text-dim);font-size:10px}.rq-keys b{color:var(--text-head)}.export-bar{flex:0 0 24px;height:24px;display:flex;align-items:center;gap:12px;padding:0 10px;background:var(--bg-sel-soft);border-bottom:1px solid var(--line);color:var(--text-head);font-size:10.5px;white-space:nowrap}.export-bar b{color:var(--text-sel)}.export-excl{color:var(--text-amber)}.export-err{color:var(--text-danger)}.export-go{color:var(--added);font-weight:700;text-decoration:none;border:1px solid var(--line-ok);background:var(--bg-ok-soft);border-radius:4px;padding:2px 10px}.export-close{color:var(--text-dim)}.progress-bar{flex:0 0 28px;height:28px;display:flex;align-items:center;gap:10px;padding:0 10px;background:var(--bg-sel-soft);border-bottom:1px solid var(--line);color:var(--text-head);font-size:10.5px;white-space:nowrap}.pg-left,.pg-right{display:flex;align-items:center;gap:10px}.pg-left{flex:1;min-width:0}.progress-bar label{display:flex;align-items:center;gap:4px;color:var(--text-dim)}.progress-bar input[type=date]{width:108px;color-scheme:dark}.progress-bar input[type=number]{width:52px;text-align:right}.progress-bar input{background:var(--bg-row-alt);border:1px solid var(--line);border-radius:3px;color:var(--text-head);font-size:10.5px;padding:2px 4px}.progress-bar input:focus{outline:none;border-color:var(--sel)}.pg-code{color:var(--text-sel);font-weight:700}.pg-unit{color:var(--text-dim)}.pg-empty{color:var(--text-dim);font-style:italic}.pg-dd-label{color:var(--added);font-weight:700}.pg-state{border:1px solid var(--line);border-radius:8px;padding:1px 8px;color:var(--text-dim)}.ws-root{flex:1;min-height:0;display:flex;flex-direction:column}.ws-bar{position:relative;flex:0 0 26px;height:26px;display:flex;align-items:center;gap:4px;padding:0 8px;background:var(--bg-bar);border-bottom:1px solid var(--line)}.ws-tab{height:20px;padding:0 12px;border-radius:4px 4px 0 0;background:var(--bg-idle);border:1px solid var(--line);border-bottom:none;color:var(--text-dim);font-size:10.5px;display:inline-flex;align-items:center;gap:6px}.ws-tab.active{background:var(--bg-active);border-color:var(--sel);color:var(--text-sel);font-weight:700}.ws-axis-sep{flex:0 0 auto;display:inline-flex;align-items:center;height:18px;margin-left:6px;padding-left:9px;border-left:1px solid var(--text-dim);font-size:9.5px;color:var(--text-mute);letter-spacing:.04em;-webkit-user-select:none;user-select:none}.ws-axis-sep.bare{padding-left:0;margin:0 4px 0 9px}.ws-x{color:var(--text-dim);font-size:9px}.ws-x:hover{color:var(--removed)}.ws-add,.ws-palette-btn,.ws-reset{color:var(--text-dim);font-size:10.5px;padding:0 8px}.ws-add:hover,.ws-palette-btn:hover,.ws-reset:hover{color:var(--text-sel)}.ws-palette{position:absolute;top:26px;right:8px;z-index:45;width:260px;background:var(--bg-panel);border:1px solid var(--line);border-radius:6px;box-shadow:0 10px 26px var(--shadow-col);padding:6px;max-height:min(72vh,640px);display:flex;flex-direction:column;overflow:hidden}.ws-palette>*:not(.ws-palette-cols){flex:0 0 auto}.ws-palette-row{display:flex;align-items:center;gap:8px;padding:4px 6px;border-radius:4px;font-size:10.5px;color:var(--text);cursor:pointer}.ws-palette-row:hover{background:var(--bg-idle)}.ws-palette-slot{margin-left:auto;color:var(--text-dim);font-size:9.5px}.ws-palette-facets{display:flex;align-items:center;gap:3px;padding:2px 2px 6px;border-bottom:1px solid var(--line-soft);margin-bottom:4px}.ws-palette-facets.sub{border-bottom:none;padding-bottom:4px}.ws-facet{flex:1;min-width:0;display:flex;align-items:center;justify-content:center;gap:3px;padding:3px 4px;border-radius:4px;font-size:9.5px;color:var(--text-dim);white-space:nowrap}.ws-facet:hover:not(:disabled){background:var(--bg-idle);color:var(--text-sel)}.ws-facet.on{background:var(--bg-active);color:var(--text-sel);font-weight:700}.ws-facet:disabled{opacity:.35;cursor:default}.ws-facet-n{font-size:8.5px;font-weight:700;color:var(--text-mute);font-variant-numeric:tabular-nums}.ws-facet.on .ws-facet-n{color:var(--text-sel)}.ws-facet-check{display:flex;align-items:center;gap:5px;padding:0 4px;font-size:9.5px;color:var(--text-dim);cursor:pointer}.ws-facet-check:hover{color:var(--text-sel)}.ws-palette-sort{color:var(--text-dim);font-size:9.5px}.ws-bulk{flex:1;padding:3px 4px;border-radius:4px;border:1px solid var(--line);font-size:9.5px;color:var(--text-dim);white-space:nowrap}.ws-bulk:hover:not(:disabled){background:var(--bg-idle);color:var(--text-sel)}.ws-bulk:disabled{opacity:.35;cursor:default}.ws-palette-float{flex:0 0 auto;width:18px;height:18px;margin-left:4px;border-radius:3px;color:var(--text-mute);font-size:11px;line-height:1}.ws-palette-float:hover{background:var(--bg-idle);color:var(--text-sel)}.ws-palette-float.on{background:var(--bg-active);color:var(--text-sel)}.ws-palette-none{padding:14px 6px;text-align:center;font-size:10px;color:var(--text-mute)}.ws-facet-clear{flex:0 0 auto;max-width:100%;padding:2px 6px;border:1px solid color-mix(in srgb,var(--text-amber, #d08a2c) 45%,transparent);border-radius:9px;background:color-mix(in srgb,var(--text-amber, #d08a2c) 10%,transparent);color:var(--text-amber, #d08a2c);font-size:9px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ws-facet-clear:hover{background:color-mix(in srgb,var(--text-amber, #d08a2c) 20%,transparent)}.ws-palette-facets{flex-wrap:wrap;row-gap:3px}.ws-palette-cols{flex:1;min-height:0;display:flex;gap:6px}.ws-palette-col{min-width:0;overflow-y:auto;overflow-x:hidden}.ws-palette-col.main{flex:1 1 62%}.ws-palette-col.shelf{flex:1 1 38%;border-left:1px solid var(--line);padding-left:6px}.ws-palette-colhead{position:sticky;top:0;z-index:1;display:flex;align-items:center;gap:6px;padding:2px 4px 4px;margin-bottom:3px;background:var(--bg-panel);border-bottom:1px solid var(--line)}.ws-palette-colhead b{font-size:10.5px;color:var(--text);cursor:help}.ws-palette-colhead em{margin-left:auto;font-style:normal;font-size:9px;color:var(--text-mute);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ws-palette-col .ws-palette-none{padding:18px 8px;line-height:1.7;text-align:left}.ws-palette-col .ws-palette-none b{color:var(--text-sel)}.ws-palette-col .ws-palette-none .dim{color:var(--text-faint)}.ws-palette-why{flex:0 0 auto;width:15px;height:15px;margin-left:2px;border:1px solid var(--line);border-radius:50%;color:var(--text-mute);font-size:9.5px;font-weight:700;line-height:1}.ws-palette-why:hover{background:var(--bg-idle);color:var(--text-sel);border-color:var(--sel)}.ws-palette-why.on{background:var(--sel);border-color:var(--sel);color:#fff}.ws-palette-why-body{margin:1px 4px 6px 22px;padding:6px 8px;border-left:2px solid var(--sel);border-radius:0 4px 4px 0;background:var(--bg-idle);font-size:10px;line-height:1.65;color:var(--text-dim);overflow-wrap:anywhere}.ws-palette-why-body .wb-axis{display:flex;align-items:center;gap:5px;padding-bottom:4px;margin-bottom:4px;border-bottom:1px dashed var(--line-soft);font-size:9.5px;color:var(--text-mute)}.ws-palette-why-body .wb-axis b{color:var(--text-amber, #d08a2c);font-weight:700}.ws-palette-why-body .wb-row{display:flex;gap:6px;margin-top:3px}.ws-palette-why-body .wb-row i{flex:0 0 40px;font-style:normal;font-weight:700;color:var(--text-mute);font-size:9.5px;white-space:nowrap}.ws-palette-why-body .wb-row span{flex:1;min-width:0}.ws-palette-shelve{flex:0 0 auto;width:18px;height:18px;margin-left:2px;border-radius:3px;color:var(--text-faint);font-size:11px;line-height:1}.ws-palette-shelve:hover{background:var(--bg-idle);color:var(--text-sel)}.ws-palette-shelve.back{margin-left:auto;color:var(--text-dim)}.ws-palette-row.shelved{opacity:.78;cursor:default}.ws-palette-row.shelved:hover{opacity:1}.ws-palette-groupnote{margin-left:auto;color:var(--text-mute);font-size:9px;font-weight:400;font-style:normal;white-space:nowrap}.ws-palette-setlab{flex:0 0 auto;font-size:9.5px;font-weight:700;color:var(--text-dim);cursor:help}.ws-palette-set{flex:1 1 auto;min-width:0;color:var(--text);font-size:9.5px}.ws-bulk.danger:hover:not(:disabled){border-color:var(--removed);color:var(--removed);background:color-mix(in srgb,var(--removed) 12%,transparent)}.ws-body{flex:1;min-height:0;display:flex}.ws-center,.ws-stack{flex:1;min-width:0;min-height:0;display:flex;flex-direction:column}.ws-right{border-left:1px solid var(--line)}.ws-left{border-right:1px solid var(--line)}.ws-top{border-bottom:1px solid var(--line)}body.dragging-v,body.dragging-v *{cursor:col-resize!important;-webkit-user-select:none!important;user-select:none!important}body.dragging-h,body.dragging-h *{cursor:row-resize!important;-webkit-user-select:none!important;user-select:none!important}.dock-slot{flex:1;min-width:0;min-height:0;display:flex;flex-direction:column;background:var(--bg-panel)}.dock-slot.dropping{outline:1.5px dashed var(--sel);outline-offset:-3px}.dock-slot .dock-tabs{flex:0 0 auto;height:auto;min-height:22px;display:flex;align-items:stretch;gap:2px;padding:0 6px;background:var(--bg-bar);border-top:1px solid var(--line);border-bottom:1px solid var(--line);flex-wrap:wrap;align-content:flex-start;row-gap:0;overflow-x:auto;overflow-y:hidden;scrollbar-width:none}.dock-slot .dock-tabs::-webkit-scrollbar{height:0}.dock-slot .dock-tabs[data-of=r]{mask-image:linear-gradient(90deg,#000 calc(100% - 26px),transparent);-webkit-mask-image:linear-gradient(90deg,#000 calc(100% - 26px),transparent)}.dock-slot .dock-tabs[data-of=l]{mask-image:linear-gradient(90deg,transparent,#000 26px);-webkit-mask-image:linear-gradient(90deg,transparent,#000 26px)}.dock-slot .dock-tabs[data-of=lr]{mask-image:linear-gradient(90deg,transparent,#000 26px,#000 calc(100% - 26px),transparent);-webkit-mask-image:linear-gradient(90deg,transparent,#000 26px,#000 calc(100% - 26px),transparent)}.dock-slot .dock-tab{display:inline-flex;align-items:center;gap:6px;padding:0 10px;font-size:10.5px;color:var(--text-dim);border-bottom:2px solid transparent;cursor:grab;flex:0 0 auto;white-space:nowrap;height:21px}.dock-slot .dock-tab.active{color:var(--text-sel);border-bottom-color:var(--sel);font-weight:700}.dock-tab-x{color:var(--text-mute);font-size:9px}.dock-tab-x:hover{color:var(--removed)}@keyframes panel-flash{0%,to{box-shadow:none}25%,75%{box-shadow:inset 0 0 0 2px var(--sel)}}.dock-tab.flash{animation:panel-flash .9s ease-in-out;border-radius:3px}.float-win.flash{animation:panel-flash .9s ease-in-out}.dock-empty-hint{align-self:center;color:var(--text-mute);font-size:9.5px;white-space:nowrap}.dock-axis{flex:0 0 auto;font-size:8.5px;font-weight:700;letter-spacing:.2px;line-height:1;padding:2px 4px;border-radius:3px;border:1px solid var(--line);background:var(--bg-chip);color:var(--text-dim);white-space:nowrap}.dock-axis:before{content:attr(data-axis)}.dock-axis.off{border-style:dashed;background:none;color:var(--text-mute)}.dock-custom{flex:0 0 auto;width:12px;height:12px;border-radius:50%;border:1px solid var(--text-faint);color:var(--text-faint);font-size:8px;line-height:10px;text-align:center;cursor:help}.dock-custom:before{content:"＋"}.panel-popover-custom{flex:0 0 auto;margin-left:6px;width:14px;height:14px;font-size:9px;line-height:12px;text-align:center;border-radius:50%;border:1px solid var(--text-faint);color:var(--text-faint);cursor:help}.dock-slot .dock-tab.axis-off{opacity:.5}.dock-slot .dock-tab.axis-off.active{opacity:.78}.axis-missing{flex:1;min-width:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:7px;padding:16px;text-align:center;color:var(--text-dim)}.axis-missing-head{font-size:12px;font-weight:700;color:var(--text)}.axis-missing-body{font-size:10.5px;max-width:380px;line-height:1.6}.axis-missing-body b{color:var(--text)}.axis-missing-cmd{font-size:10.5px;padding:3px 9px;border-radius:4px;border:1px solid var(--line);background:var(--bg-idle);color:var(--text);-webkit-user-select:all;user-select:all}.axis-missing-note{font-size:9.5px;color:var(--text-mute)}.ws-palette-axis{margin-left:auto;flex:0 0 auto;font-size:8.5px;font-weight:700;line-height:1;padding:2px 4px;border-radius:3px;border:1px solid var(--line);background:var(--bg-chip);color:var(--text-dim)}.ws-palette-axis.off{border-style:dashed;background:none;color:var(--text-mute)}.ws-palette-custom{flex:0 0 auto;width:14px;height:14px;font-size:9px;line-height:12px;text-align:center;border-radius:50%;border:1px solid var(--text-faint);color:var(--text-faint);cursor:help}.ws-manage{width:320px;right:96px}.ws-manage-head{font-size:9px;color:var(--text-mute);letter-spacing:.06em;padding:7px 6px 3px;border-top:1px solid var(--line-soft);margin-top:3px}.ws-manage-head:first-child{border-top:none;margin-top:0;padding-top:3px}.ws-palette-row.on{background:var(--bg-active)}.ws-manage-name{flex:1;min-width:0;cursor:pointer}.ws-manage-name:hover{color:var(--text-sel)}.ws-manage-name.axis-off{opacity:.45;cursor:not-allowed}.ws-manage-tools{display:flex;gap:1px;flex:0 0 auto}.ws-manage-btn{width:18px;height:18px;border-radius:3px;color:var(--text-dim);font-size:10px;line-height:1}.ws-manage-btn:hover:not(:disabled){background:var(--bg-idle);color:var(--text-sel)}.ws-manage-btn.danger:hover:not(:disabled){color:var(--removed)}.ws-manage-btn:disabled{opacity:.22;cursor:default}.ws-manage-foot{display:flex;gap:6px;margin-top:7px;padding-top:7px;border-top:1px solid var(--line)}.ws-manage-act{flex:1;height:24px;border-radius:4px;border:1px solid var(--line);background:var(--bg-idle);color:var(--text);font-size:10.5px}.ws-manage-act:hover{border-color:var(--sel);color:var(--text-sel)}.ws-manage-msg{margin-top:6px;font-size:10px;color:var(--text-mint)}.ws-manage-note{margin-top:6px;font-size:9.5px;color:var(--text-mute);line-height:1.55}.ws-palette-axis+.ws-palette-slot{margin-left:6px}.dock-tip{position:fixed;z-index:90;pointer-events:none;background:var(--bg-bar);border:1px solid var(--sel);border-radius:6px;padding:8px 10px;box-shadow:0 6px 20px var(--shadow-col);line-height:1.55}.dock-tip-title{font-size:11px;font-weight:700;color:var(--text-sel);margin-bottom:3px}.dock-tip-desc{font-size:10.5px;color:var(--text)}.dock-tip-how{font-size:10px;color:var(--text-mint);margin-top:5px;padding-top:5px;border-top:1px solid var(--line)}.dock-tip-drag{font-size:9.5px;color:var(--text-dim);margin-top:4px}.dock-tip-axis{display:flex;align-items:center;gap:6px;flex-wrap:wrap;font-size:9.5px;color:var(--text-dim);margin-bottom:5px}.dock-tip-axis.off{color:var(--text-mute)}.vp-portal{flex:1;min-width:0;min-height:0;display:flex}.vp-unloaded{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;color:var(--text-dim);font-size:11.5px;background:var(--bg-viewport)}.vp-reload{height:26px;padding:0 14px;border-radius:6px;background:var(--bg-active);border:1px solid var(--sel);color:var(--text-sel);font-size:11px;font-weight:700}.vp-unloaded-note{font-size:10px;color:var(--text-mute)}.vp-overlay.draw-bar{top:8px;left:50%;transform:translate(-50%);width:min(760px,calc(100% - 240px));justify-content:flex-start;flex-wrap:wrap;row-gap:3px;overflow-x:auto;scrollbar-width:none;display:flex;align-items:center;gap:3px;padding:3px 5px;background:var(--bg-float);border:1px solid var(--line);border-radius:7px;white-space:nowrap}.vp-overlay.draw-bar::-webkit-scrollbar{height:0}.draw-bar button{flex:0 0 auto;height:20px;padding:0 9px;border-radius:4px;background:var(--bg-idle);border:1px solid var(--line);color:var(--text-dim);font-size:10.5px}.draw-bar button:hover{color:var(--text-sel);border-color:var(--sel)}.draw-bar button.active{background:var(--bg-active);border-color:var(--sel);color:var(--text-sel);font-weight:700}.draw-bar select{height:20px;background:var(--bg-input);border:1px solid var(--line);border-radius:4px;color:var(--text);font-size:10px;outline:none;width:150px;flex:0 0 150px}.draw-bar select option{background:var(--bg-chip);color:var(--text)}.draw-panel{flex:1;min-width:0;min-height:0;display:flex;flex-direction:column;background:var(--bg-viewport)}.vp-main{position:absolute;left:0;top:0;width:100%;height:100%}.vp-main.hidden{display:none}.vp-split-panes{position:absolute;inset:0;pointer-events:none}.vp-tile{position:absolute;display:flex;overflow:hidden;pointer-events:auto;background:var(--bg-viewport);outline:1px solid var(--line);outline-offset:-1px}.viewport.vp-split>.vp-main{outline:1px solid var(--line);outline-offset:-1px}.vp-split-handle{position:absolute;z-index:7;background:transparent;pointer-events:auto}.vp-split-handle:hover{background:var(--accent)}.vp-split-handle.col{top:0;bottom:0;width:7px;margin-left:-3px;cursor:col-resize}.vp-split-handle.row{right:0;height:7px;margin-top:-3px;cursor:row-resize}.vp-split-restore{position:absolute;left:10px;bottom:10px;z-index:8;pointer-events:auto;height:24px;padding:0 10px;border-radius:6px;border:1px solid var(--line);background:var(--bg-head);color:var(--text);font-size:11px;cursor:pointer}.vp-split-menu{left:10px;bottom:44px;z-index:9;width:168px;padding:6px;border-radius:8px;border:1px solid var(--line);background:var(--bg-head);box-shadow:0 8px 24px #00000047}.vp-split-menu-head{font-size:10px;color:var(--text-mute);padding:2px 4px 5px}.vp-split-item{display:flex;align-items:center;gap:7px;padding:4px 5px;border-radius:5px;font-size:11.5px;color:var(--text);cursor:pointer}.vp-split-item:hover{background:var(--bg-hover, rgba(127, 127, 127, .14))}.vp-split-item.locked{cursor:default;color:var(--text-dim)}.vp-split-item em{margin-left:auto;font-style:normal;font-size:9.5px;color:var(--text-mute)}.vp-split-menu-foot{margin-top:5px;padding:5px 4px 1px;border-top:1px solid var(--line);font-size:10px;color:var(--text-mute)}.draw-panel-bar{flex:0 0 auto;display:flex;align-items:center;flex-wrap:wrap;gap:3px;row-gap:3px;padding:4px 6px;background:var(--bg-head);border-bottom:1px solid var(--line);white-space:nowrap}.draw-panel-title{flex:0 0 auto;font-size:10.5px;font-weight:700;color:var(--text);margin-right:2px}.draw-stage{position:relative;flex:1;min-height:0;min-width:0;overflow:hidden}.draw-stage canvas{display:block;width:100%;height:100%}.draw-empty{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:11px;color:var(--text-mute);pointer-events:none}.draw-sep{width:1px;height:15px;background:var(--line);margin:0 3px}.draw-num{display:inline-flex;align-items:center;gap:5px;font-size:10px;color:var(--text-dim);flex:0 0 auto;min-width:148px;font-variant-numeric:tabular-nums}.draw-num input[type=range]{width:84px;accent-color:var(--sel)}.draw-note{font-size:9.5px;color:var(--text-amber);margin-left:4px}.dim-layer{position:absolute;inset:0;pointer-events:none;z-index:6;overflow:visible}.dim line{stroke:var(--text-amber);stroke-width:1;opacity:.85}.dim text{fill:var(--text-amber);font:10px/1 Consolas,Cascadia Mono,monospace;paint-order:stroke;stroke:var(--bg-float);stroke-width:3px}.dim-zone line{stroke:var(--added)}.dim-zone text{fill:var(--added)}.dim-storey line{stroke:var(--text-sel);opacity:.7}.dim-storey text{fill:var(--text-sel)}.dim-sel line{stroke:var(--sel);stroke-width:1.4;opacity:1}.dim-sel text{fill:var(--sel);font-weight:700}.dim-gap line{stroke:var(--review);stroke-width:1.2;stroke-dasharray:4 3}.dim-gap text{fill:var(--review);font-weight:700}.view-controls button.active{background:var(--bg-active);border-color:var(--sel);color:var(--text-sel)}.drop-overlay{position:fixed;inset:0;pointer-events:none;z-index:80}.drop-zone{position:fixed;border:1.5px dashed var(--line);border-radius:4px;background:#4f8cff0a;display:flex;align-items:center;justify-content:center;color:var(--text-mute);font-size:10.5px;transition:background 90ms linear,border-color 90ms linear}.drop-zone.active{border-color:var(--sel);border-style:solid;background:#4f8cff29;color:var(--text-sel);font-weight:700;box-shadow:inset 0 0 0 1px var(--sel)}.dock-slot .dock-tab{-webkit-user-select:none;user-select:none}.ws-palette-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}select.ws-palette-slot{flex:0 0 auto;height:18px;background:var(--bg-input);border:1px solid var(--line);border-radius:4px;color:var(--text-dim);font-size:9.5px;padding:0 2px;outline:none;cursor:pointer}select.ws-palette-slot:hover{color:var(--text-sel);border-color:var(--sel)}select.ws-palette-slot option{background:var(--bg-chip);color:var(--text)}.ws-unload{color:var(--text-dim);font-size:10.5px;padding:0 8px}.ws-unload:hover{color:var(--text-sel)}.ws-unload.danger{color:var(--modified);font-weight:700}.dock-slot.is-empty{background:transparent;align-items:center;justify-content:center}.dock-slot.is-empty .dock-tabs{flex:1;border-bottom:none;align-items:center;justify-content:center;overflow:hidden}.dock-slot.is-empty.dropping{outline:1.5px dashed var(--sel);background:#4a90e20f}.dock-slot .dock-body{flex:1;min-height:0;display:flex}.dock-slot .left-panel{flex:1;width:auto;border-right:none}.impact-panel{display:flex;flex-direction:column;width:100%;height:100%;min-height:0}.imp-head{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:8px 10px;border-bottom:1px solid var(--line)}.imp-stats{display:flex;gap:14px}.imp-stat-label{font-size:9.5px;color:var(--text-dim)}.imp-stat-value{font-size:16px;font-weight:700;color:var(--text-sel);line-height:1.1}.imp-stat.hot .imp-stat-value{color:var(--text-hot)}.imp-stat-sub{font-size:9px;color:var(--text-mute)}.imp-stat.near .imp-stat-value{color:#ff9b6b}.imp-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.imp-near{display:inline-flex;align-items:center;gap:6px;font-size:10px;color:var(--text-dim);cursor:pointer}.imp-near input[type=range]{width:76px;accent-color:#ff9b6b;cursor:pointer}.imp-near b{color:#ff9b6b;font-size:10px;min-width:26px;text-align:right}.imp-toggle{display:inline-flex;align-items:center;gap:5px;font-size:10px;color:var(--text-dim);cursor:pointer}.imp-reload{font-size:10px;padding:3px 8px;color:var(--text-dim);background:var(--bg-bar);border:1px solid var(--line);border-radius:3px;cursor:pointer}.imp-reload:hover:not(:disabled){color:var(--text-sel);border-color:var(--sel)}.imp-paths{display:flex;flex-wrap:wrap;gap:6px;padding:6px 10px;border-bottom:1px solid var(--line)}.imp-path{font-size:9.5px;padding:2px 7px;border-radius:9px;color:var(--text-dim);background:var(--bg-bar);border:1px solid var(--line)}.imp-path.lp{color:var(--text-hot);border-color:var(--text-hot)}.imp-note{font-size:9px;color:var(--text-mute);align-self:center}.imp-table{flex:1;min-height:0;overflow:auto;font-size:10.5px}.imp-row{display:grid;grid-template-columns:var(--imp-cols, 26px 150px 150px 58px 58px 54px 58px minmax(60px, 1fr));align-items:center;gap:6px;padding:3px 10px;border-bottom:1px solid var(--overlay-1);cursor:pointer}.imp-row.imp-th{color:var(--text-dim);font-size:9.5px;cursor:default;position:sticky;top:0;background:var(--bg-bar);z-index:2}.imp-row.imp-th>span{position:relative;padding-right:7px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.col-resizer{position:absolute;top:0;right:0;width:6px;height:100%;cursor:col-resize;z-index:3}.col-resizer:after{content:"";position:absolute;right:1px;top:15%;width:1px;height:70%;background:var(--overlay-3)}.col-resizer.left{left:0;right:auto}.col-resizer.left:after{left:1px;right:auto}.col-resizer:hover:after,body.dragging-v .col-resizer:after{background:var(--accent, var(--sel));width:2px;top:0;height:100%}.imp-row:hover:not(.imp-th){background:#4f8cff14}.imp-row.sel{background:#4f8cff2e}.imp-row.lp .c-code{color:var(--text-hot)}.imp-row .c-rank{color:var(--text-dim);text-align:right}.imp-row .c-code{font-family:var(--mono, monospace);color:var(--text-sel)}.imp-row .c-name{color:var(--text-dim);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.imp-row .c-num{text-align:right;color:var(--text)}.imp-row .c-num.strong{color:var(--text-sel);font-weight:700}.imp-row .c-num.warn{color:var(--text-hot)}.imp-row .c-bar{height:8px;background:var(--overlay-2);border-radius:4px;overflow:hidden}.imp-row .c-bar i{display:block;height:100%;background:linear-gradient(90deg,var(--sel),var(--text-hot))}.imp-row.imp-th .c-bar{background:none}.details-panel{display:flex;flex:1;min-width:0;flex-direction:column;height:100%;min-height:0;font-size:11.5px}.details-panel.empty{align-items:center;justify-content:center;gap:5px;color:var(--text-dim)}.details-panel.empty span{font-size:10.5px;opacity:.65}.dt-head{display:flex;align-items:center;gap:8px;padding:7px 10px;flex:none;border-bottom:1px solid var(--line)}.dt-code{font-family:Consolas,monospace;font-size:10px;color:var(--text-id);flex:none;max-width:46%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dt-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dt-chip{flex:none;font-size:9px;font-weight:700;padding:1px 6px;border-radius:3px}.dt-chip.crit{background:#ff6b6b29;color:var(--text-danger)}.dt-chip.prop{background:#29f8ba24;color:var(--text-mint)}.dt-tabs{display:flex;flex:none;border-bottom:1px solid var(--line)}.dt-tabs button{padding:5px 11px;font-size:11px;cursor:pointer;background:none;border:0;border-bottom:2px solid transparent;color:var(--text-dim);display:inline-flex;align-items:center;gap:5px}.dt-tabs button:hover{color:var(--text-sel)}.dt-tabs button.on{color:var(--text-sel);border-bottom-color:var(--sel)}.dt-n{font-size:9px;padding:0 4px;border-radius:6px;background:var(--overlay-2);color:var(--text-dim)}.dt-body{flex:1;min-height:0;overflow:auto;padding:8px 10px 14px}.dt-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:2px 14px}.dt-grid>.dt-cstr{grid-column:1 / -1}.dt-grid>.span{grid-column:1 / -1}.dt-field{display:flex;flex-direction:column;padding:4px 0;border-bottom:1px solid var(--line-soft)}.dt-label{color:var(--text-dim);font-size:9.5px}.dt-value{color:var(--text-sel);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dt-value.mono{font-family:Consolas,monospace;font-size:10.5px}.dt-value.crit{color:var(--text-danger)}.dt-value.warn{color:var(--text-amber)}.dt-rels{display:flex;flex-direction:column;gap:12px}.dt-relhead{color:var(--text-dim);font-size:10px;margin-bottom:3px;display:flex;gap:6px;align-items:center}.dt-relassign-btn{margin-left:auto;background:none;border:1px solid var(--line);border-radius:4px;color:var(--text-dim);font-size:9.5px;padding:1px 7px;cursor:pointer}.dt-relassign-btn:hover{border-color:var(--sel);color:var(--text-sel)}.dt-relassign{display:flex;flex-wrap:wrap;gap:5px;align-items:center;padding:4px 0 8px;border-bottom:1px solid var(--line-soft);margin-bottom:4px}.dt-relassign .dt-cstr-date{flex:1 1 120px;min-width:90px}.dt-relassign .dt-cstr-type{flex:0 0 auto}.dt-relassign input[type=number]{flex:0 0 56px}.dt-relempty{color:var(--text-dim);opacity:.6;font-size:10.5px;padding:3px 0}.dt-relrow{display:flex;align-items:center;gap:8px;padding:3px 0;border-bottom:1px solid var(--line-soft)}.dt-relcode{background:none;border:0;padding:0;cursor:pointer;font-family:Consolas,monospace;font-size:10px;color:var(--sel);max-width:168px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dt-relcode:hover{text-decoration:underline}.dt-reltype{font-size:9.5px;font-weight:700;padding:0 5px;border-radius:3px;background:#4f8cff29;color:var(--sel)}.dt-rellag{font-family:Consolas,monospace;font-size:10px;color:var(--text-dim)}.dt-rellag.on{color:var(--text-amber);font-weight:700}.dt-reltype.edit{background:var(--bg-input, var(--bg-input));color:var(--text-sel, var(--text-root));border:1px solid var(--line);border-radius:4px;font-size:10px;padding:1px 2px;cursor:pointer}.dt-rellag.edit{width:44px;text-align:right;background:var(--bg-input, var(--bg-input));color:var(--text-sel, var(--text-root));border:1px solid var(--line);border-radius:4px;font-family:Consolas,monospace;font-size:10px;padding:1px 4px}.dt-rellag.edit:focus{border-color:var(--sel);outline:none}.dt-lagunit{font-size:9.5px;color:var(--text-dim);margin-left:-2px}.dt-reldel{background:none;border:0;cursor:pointer;color:var(--text-dim);font-size:11px}.dt-reldel:hover{color:var(--text-danger)}.dt-note{color:var(--text-dim);font-size:10px;line-height:1.55;padding-top:6px}.dt-note.warn{color:var(--text-amber)}.dt-rsrc{display:flex;flex-direction:column;gap:2px}.dt-rsrcrow{display:flex;align-items:center;gap:8px;padding:3px 0;border-bottom:1px solid var(--line-soft)}.dt-rsrccode{font-size:10.5px;color:var(--text-root);max-width:132px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dt-rsrcqty{display:inline-flex;align-items:center;gap:3px;font-size:10px}.dt-rsrcact{font-size:9.5px;color:var(--text-dim)}.dt-rsrccost{font-size:10px;color:var(--text-dim);min-width:62px;text-align:right}.dt-rsrc-total{font-size:10px;color:var(--text-amber);font-weight:700}.dt-rsrcadd{display:flex;align-items:center;gap:6px;padding-top:6px}.dt-rsrcadd select{flex:1;min-width:0;background:var(--bg-input);color:var(--text-root);border:1px solid var(--line);border-radius:4px;font-size:10px;padding:2px 4px}.dt-rsrcbtn{background:var(--bg-input);color:var(--sel);border:1px solid var(--line);border-radius:4px;font-size:10px;padding:2px 8px;cursor:pointer;white-space:nowrap}.dt-rsrcbtn:disabled{opacity:.45;cursor:default}.dt-rsrcbtn:not(:disabled):hover{border-color:var(--sel)}.dt-main{flex:1;min-height:0;display:flex}.dt-side{flex:0 0 302px;min-width:0;overflow:auto;border-left:1px solid var(--line);padding:8px 10px 14px}.dt-headproj{flex:none;font-size:10px;color:var(--text-dim);max-width:30%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dt-headproj i{font-style:normal;opacity:.6;margin-right:4px}.dt-groups{display:grid;grid-template-columns:1fr;gap:8px 18px;align-content:start}.details-panel.wide .dt-groups{grid-template-columns:repeat(auto-fit,minmax(238px,1fr))}.dt-group{min-width:0}.dt-group.span2{grid-column:1 / -1}.dt-group h4{margin:0 0 3px;padding-bottom:2px;font-size:9.5px;font-weight:700;letter-spacing:.04em;color:var(--text-head);border-bottom:1px solid var(--line)}.dt-acts{display:flex;gap:6px;flex-wrap:wrap;padding:4px 0 2px}.dt-act{background:var(--bg-input);color:var(--text-root);border:1px solid var(--line);border-radius:4px;font-size:10.5px;padding:3px 10px;cursor:pointer}.dt-act:not(:disabled):hover{border-color:var(--sel);color:var(--text-sel)}.dt-act.on{border-color:var(--sel);color:var(--sel);font-weight:700}.dt-act:disabled{opacity:.4;cursor:default}.dt-rels.two{display:grid;grid-template-columns:1fr 1fr;gap:4px 18px;align-content:start}.dt-rels .dt-note.span,.dt-rels .dt-relbar.span{grid-column:1 / -1}.rel-table{display:flex;flex-direction:column}.rel-tr{display:grid;align-items:center;gap:6px;grid-template-columns:minmax(0,1fr) 34px 60px 12px 18px;padding:2px 0;border-bottom:1px solid var(--line-soft)}.dt-rels.two .rel-tr{grid-template-columns:104px minmax(0,1fr) 32px 58px 12px 18px}.details-panel[data-w=xwide] .dt-rels.two .rel-tr{grid-template-columns:116px minmax(0,1fr) 36px 62px 62px 44px 12px 18px}.dt-rels:not(.two) .rel-c.opt{display:none}.details-panel:not([data-w=xwide]) .rel-c.opt2{display:none}.rel-tr.rel-th{color:var(--text-dim);font-size:9px;letter-spacing:.02em;border-bottom-color:var(--line)}.rel-c{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rel-c.name{font-size:10.5px;color:var(--text-dim)}.rel-c.status,.rel-c.tf{font-size:10px;color:var(--text-dim)}.rel-c.tf{font-family:Consolas,monospace;text-align:right}.rel-c.tf.crit{color:var(--text-danger);font-weight:700}.rel-c.lag{font-family:Consolas,monospace;font-size:10px;color:var(--text-dim)}.rel-c.lag.on{color:var(--text-amber);font-weight:700}.rel-c.drv{color:var(--text-amber);font-size:9px;text-align:center}.rel-tr.rel-th .rel-c.drv{color:var(--text-dim)}.dt-relbar{display:flex;align-items:center;gap:10px;padding-bottom:4px;border-bottom:1px solid var(--line-soft)}.dt-relchk{display:flex;align-items:center;gap:4px;font-size:10px;color:var(--text-dim)}.dt-relsel{height:20px;font-size:10px;padding:0 4px;background:var(--bg-idle);color:var(--text);border:1px solid var(--line);border-radius:4px}.dt-relbar-why{font-size:9.5px;color:var(--text-mute)}.dt-relhead .dt-n.deep{color:var(--text-mute)}.rel-tr.deep{opacity:.72}.rel-tr.deep .dt-relcode{font-weight:400}.rel-tr.deep.driving{opacity:.92}.rel-tr.driving .rel-c.code .dt-relcode{font-weight:700}.rel-c.del{text-align:right}.rel-c .dt-relcode{max-width:100%}.dt-sidecar{display:flex;flex-direction:column;gap:7px}.dsc-title{font-size:10px;color:var(--text-head);font-weight:700;letter-spacing:.03em}.dsc-card{border:1px solid var(--line);border-radius:5px;overflow:hidden}.dsc-card.bad{border-color:#ff6b6b73}.dsc-h{display:flex;align-items:center;justify-content:space-between;gap:6px;padding:3px 7px;background:var(--overlay-2);font-size:9.5px;font-weight:700;color:var(--text-head)}.dsc-b{padding:4px 7px 6px;display:flex;flex-direction:column;gap:2px}.dsc-kv{display:flex;align-items:baseline;justify-content:space-between;gap:8px;font-size:10.5px}.dsc-kv span{color:var(--text-dim);min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dsc-kv b{font-family:Consolas,monospace;color:var(--text-sel);flex:none}.dsc-kv b.bad{color:var(--text-danger)}.dsc-kv.dim b{color:var(--text-dim)}.dsc-none{display:flex;align-items:center;justify-content:space-between;gap:6px}.dsc-none span{font-size:10px;color:var(--text-dim);line-height:1.45}.dsc-run{flex:none;background:var(--bg-input);color:var(--sel);border:1px solid var(--line);border-radius:4px;font-size:9.5px;padding:1px 7px;cursor:pointer;white-space:nowrap}.dsc-run.wide{width:100%;margin-top:3px;padding:3px 0}.dsc-run:disabled{opacity:.42;cursor:default}.dsc-run:not(:disabled):hover{border-color:var(--sel)}.dsc-bar{height:5px;border-radius:3px;background:var(--overlay-2);overflow:hidden;margin-bottom:3px}.dsc-bar i{display:block;height:100%;background:var(--sel)}.dsc-note{font-size:9.5px;color:var(--text-dim);line-height:1.45;opacity:.85}.dsc-note.mono{font-family:Consolas,monospace;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dsc-issue{display:flex;align-items:center;gap:5px;font-size:10px;color:var(--text-root)}.dsc-sev{width:6px;height:6px;border-radius:50%;flex:none;background:var(--text-dim)}.dsc-sev.critical{background:var(--text-danger)}.dsc-sev.high{background:var(--text-amber)}.dsc-sev.medium{background:var(--sel)}.dsc-foot{font-size:9px;color:var(--text-dim);line-height:1.5;opacity:.8;padding-top:2px}.sc-panel{display:flex;flex:1;min-width:0;flex-direction:column;height:100%;min-height:0}.sc-main{display:flex;flex:1;min-height:0;min-width:0}.sc-main.sc-bottom{flex-direction:column}.sc-side{min-width:0;min-height:0;display:flex;flex-direction:column;border-left:1px solid var(--line);background:var(--bg-panel)}.sc-side-head{flex:none;padding:4px 8px;font-size:9.5px;color:var(--text-dim);border-bottom:1px solid var(--line-soft);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sc-table tr.sc-nowrow td{border-bottom:1px solid var(--added);font-weight:600}.sc-col{display:flex;flex-direction:column;flex:1;min-width:0;min-height:0}.sc-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:8px 10px 6px;border-bottom:1px solid var(--line-soft);flex:none}.sc-stats{display:flex;gap:16px;flex-wrap:wrap;row-gap:4px}.sc-actions{display:flex;align-items:center;gap:6px}.sc-select{background:var(--bg-input);color:var(--text);border:1px solid var(--line);border-radius:3px;font-size:10px;padding:3px 5px}.sc-select:hover{border-color:var(--sel)}.sc-good .imp-stat-value{color:var(--added)}.sc-warn .imp-stat-value{color:var(--modified)}.sc-bad .imp-stat-value{color:var(--removed)}.sc-chart{flex:1;min-height:90px;position:relative;overflow:hidden;cursor:crosshair}.sc-legend{display:flex;align-items:center;gap:14px;flex-wrap:wrap;padding:5px 10px;border-top:1px solid var(--line-soft);flex:none;font-size:10px;color:var(--text-dim)}.sc-key{display:inline-flex;align-items:center;gap:5px}.sc-key b{color:var(--text);font-weight:600}.sc-var{margin-left:auto;color:var(--text-dim)}.sc-readout{display:flex;gap:12px;align-items:center;flex:none;padding:4px 10px 7px;font-size:10px;color:var(--text-dim);min-height:22px}.sc-readout b{color:var(--text-sel)}.sc-hint{color:var(--text-mute)}.sc-toggle{display:inline-flex;border:1px solid var(--line);border-radius:3px;overflow:hidden}.sc-toggle button{background:var(--bg-input);color:var(--text-dim);border:0;cursor:pointer;font-size:10px;padding:3px 8px}.sc-toggle button.on{background:var(--bg-active);color:var(--text-sel);font-weight:600}.sc-warnbar{flex:none;padding:5px 10px;font-size:10px;line-height:1.5;background:var(--bg-warn-soft);color:var(--text-amber);border-bottom:1px solid var(--line-soft)}.sc-warnbar.preview{background:var(--bg-active);color:var(--text-sel);border-bottom-color:var(--sel)}.sc-table-wrap{flex:1;min-height:0;overflow:auto}.sc-table{width:100%;border-collapse:collapse;font-size:10.5px}.sc-table th{position:sticky;top:0;z-index:1;background:var(--bg-bar);color:var(--text-head);text-align:left;padding:4px 7px;border-bottom:1px solid var(--line);white-space:nowrap}.sc-table td{padding:3px 7px;border-bottom:1px solid var(--line-soft);white-space:nowrap}.sc-table td:first-child{max-width:200px;overflow:hidden;text-overflow:ellipsis}.sc-table tr:hover td{background:var(--bg-row-sel)}.sc-table .num{text-align:right;font-variant-numeric:tabular-nums}.sc-neg{color:var(--removed);font-weight:600}.sc-pos{color:var(--added)}.sc-dim{color:var(--text-dim)}.gantt-resizer{flex:0 0 6px;margin-left:-3px;margin-right:-3px;z-index:3;cursor:col-resize;background:transparent;transition:background .12s}.gantt-resizer:hover,.gantt-resizer:active{background:var(--accent, var(--added));opacity:.55}.sc-table tr.sc-future td{color:var(--text-dim)}.ui-help{position:relative;display:inline-flex;align-items:center;min-width:0;outline:none}.ui-help-popover{position:absolute;z-index:120;left:50%;bottom:calc(100% + 8px);width:max-content;max-width:min(300px,calc(100vw - 24px));padding:7px 9px;display:flex;flex-direction:column;gap:3px;border:1px solid var(--grip);border-radius:4px;background:var(--bg-float);box-shadow:0 8px 22px var(--shadow-col);color:var(--text-dim);font-size:10px;line-height:1.45;white-space:normal;pointer-events:none;opacity:0;visibility:hidden;transform:translate(-50%,3px);transition:opacity .12s ease,transform .12s ease,visibility .12s}.ui-help-popover b{color:var(--text-sel);font-size:10.5px}.ui-help:hover .ui-help-popover,.ui-help:focus-within .ui-help-popover,.ui-help:focus .ui-help-popover{opacity:1;visibility:visible;transform:translate(-50%)}.ui-help-bottom .ui-help-popover{top:calc(100% + 8px);bottom:auto;transform:translate(-50%,-3px)}.ui-help-bottom:hover .ui-help-popover,.ui-help-bottom:focus-within .ui-help-popover,.ui-help-bottom:focus .ui-help-popover{transform:translate(-50%)}.tl-scrubber-help{flex:1;max-width:820px}.tl-scrubber-help>div{width:100%}.tl-datadate-help .ui-help-popover{left:0;transform:translate(-10%,3px)}.tl-datadate-help:hover .ui-help-popover,.tl-datadate-help:focus-within .ui-help-popover,.tl-datadate-help:focus .ui-help-popover{transform:translate(-10%)}.gantt-bar-help-popover{position:fixed;z-index:130;width:min(310px,calc(100vw - 24px));padding:8px 10px;border:1px solid var(--grip);border-radius:4px;background:var(--bg-float);box-shadow:0 10px 26px var(--shadow-col);color:var(--text-dim);font-size:10px;line-height:1.45;pointer-events:none}.gantt-bar-help-popover b{display:block;color:var(--text-sel);font-size:10.5px}.gantt-bar-help-popover .help-line{display:block}.gantt-bar-help-popover .help-key{color:var(--text-head)}.gantt-bar-help-popover .help-plan{color:var(--help-plan)}.gantt-bar-help-popover .help-actual{color:var(--help-actual)}.gantt-bar-help-popover .help-baseline{color:var(--help-baseline)}.date-cell-editor{position:fixed;z-index:200;width:204px;padding:7px;border:1px solid var(--grip);border-radius:4px;background:var(--bg-float);box-shadow:0 10px 26px var(--shadow-col);font-size:10.5px;color:var(--text)}.dce-jump{display:flex;gap:4px;margin-bottom:6px;flex-wrap:wrap}.dce-jump button{flex:1 0 auto;padding:3px 6px;border:1px solid var(--line);border-radius:3px;background:var(--bg-chip);color:var(--text-dim);font-size:9.5px;cursor:pointer}.dce-jump button:hover{color:var(--text);border-color:var(--line-sel)}.dce-jump button.dce-clear{color:var(--text-amber)}.dce-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:4px;color:var(--text-head);font-size:10.5px}.dce-head button{width:18px;height:18px;border:none;background:transparent;color:var(--text-dim);cursor:pointer;font-size:12px;line-height:1}.dce-head button:hover{color:var(--text)}.dce-dow,.dce-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:2px}.dce-dow span{text-align:center;color:var(--text-mute);font-size:9px;padding-bottom:2px}.dce-grid button{height:22px;border:1px solid transparent;border-radius:3px;background:transparent;color:var(--text);font-size:10px;cursor:pointer}.dce-grid button:hover{background:var(--bg-chip)}.dce-grid button.today{border-color:var(--line-sel)}.dce-grid button.dd{color:var(--text-amber);font-weight:700}.dce-grid button.sel{background:var(--sel);color:var(--text-sel)}.dce-grid button:disabled{color:var(--text-mute);cursor:not-allowed}.dce-grid button:disabled:hover{background:transparent}.date-chip{font:inherit;text-align:left;cursor:pointer}.date-chip:disabled{cursor:not-allowed;opacity:.45}.dt-cstr-date.date-chip{width:100%}.progress-bar .date-chip{background:var(--bg-row-alt);border:1px solid var(--line);border-radius:3px;color:var(--text-head);font-size:10.5px;padding:2px 4px;width:108px}.progress-bar .date-chip:focus{outline:none;border-color:var(--sel)}.cq-panel{display:flex;flex-direction:column;width:100%;height:100%;overflow:hidden}.cq-head{display:flex;align-items:center;gap:8px;padding:6px 8px;border-bottom:1px solid var(--line, #1e2740)}.cq-tabs{display:flex;gap:4px;flex:1;min-width:0}.cq-tab{display:flex;align-items:center;gap:5px;height:22px;padding:0 8px;border:1px solid transparent;border-radius:3px;background:var(--bg-idle);color:var(--text-dim);font-size:11px;cursor:pointer}.cq-tab.active{background:var(--bg-active);color:var(--text-root);font-weight:700}.cq-tab.both.active{border-color:var(--removed)}.cq-tab.ifc.active{border-color:var(--modified)}.cq-tab.sched.active{border-color:var(--review)}.cq-badge{min-width:16px;padding:0 4px;border-radius:8px;background:var(--bg-chip);font-size:10px;text-align:center}.cq-reload{width:22px;height:22px;border:0;border-radius:3px;background:var(--bg-idle);color:var(--text-dim);cursor:pointer}.cq-retry{margin-top:8px;height:24px;padding:0 10px;border:0;border-radius:3px;background:var(--bg-active);color:var(--text-root);cursor:pointer}.cq-meta{display:flex;flex-wrap:wrap;gap:8px;padding:4px 9px;font-size:10.5px;color:var(--text-dim)}.cq-hint{color:var(--neutral)}.cq-warn{color:var(--modified)}.cq-list{flex:1;min-height:0;overflow:auto}.cq-row{border-bottom:1px solid var(--line, #1e2740)}.cq-row.open{background:var(--bg-row-alt)}.cq-row-head{display:grid;grid-template-columns:minmax(0,1.4fr) auto minmax(0,1.2fr) auto;align-items:center;gap:8px;width:100%;padding:6px 9px;border:0;background:transparent;color:var(--text);font-size:11px;text-align:left;cursor:pointer}.cq-row-head:hover{background:var(--bg-row-sel)}.cq-ident,.cq-act{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cq-ident{color:var(--text-sel)}.cq-act{color:var(--text-mint)}.cq-role{padding:0 5px;border-radius:3px;background:var(--bg-chip);color:var(--text-dim);font-size:10px}.cq-marks{display:flex;gap:4px}.cq-mark{padding:0 5px;border-radius:3px;font-size:10px;white-space:nowrap}.cq-mark.added{background:var(--bg-ok-soft);color:var(--added)}.cq-mark.modified{background:var(--bg-warn-soft);color:var(--modified)}.cq-mark.removed{background:var(--bg-danger-soft);color:var(--removed)}.cq-mark.split{background:var(--bg-review-soft);color:var(--review)}.cq-progress{margin-left:auto;color:var(--neutral);white-space:nowrap}.cq-progress .cq-ex{color:var(--removed);font-weight:700}.cq-keys{width:100%;margin-top:2px;color:var(--neutral);opacity:.72;font-size:10px;letter-spacing:-.2px}.cq-verdict{margin-left:4px;padding:0 5px;border-radius:3px;font-size:10px;font-weight:700;white-space:nowrap}.cq-verdict.apply{background:var(--bg-ok-soft);color:var(--added)}.cq-verdict.exclude{background:var(--bg-danger-soft);color:var(--removed)}.cq-verdict.defer{background:var(--bg-review-soft);color:var(--review)}.cq-row.decided{border-left:3px solid transparent}.cq-row.decided.apply{border-left-color:var(--added)}.cq-row.decided.exclude{border-left-color:var(--removed)}.cq-row.decided.defer{border-left-color:var(--review)}.cq-acts{display:flex;gap:4px;padding:0 8px 6px}.cq-act-btn{padding:1px 8px;border:1px solid var(--line, #1e2740);border-radius:3px;background:transparent;color:var(--neutral);font-size:10px;cursor:pointer}.cq-act-btn:hover{background:var(--bg-row-sel);color:var(--text-root)}.cq-act-btn.on.apply{background:var(--bg-ok-soft);color:var(--added);border-color:var(--added)}.cq-act-btn.on.exclude{background:var(--bg-danger-soft);color:var(--removed);border-color:var(--removed)}.cq-act-btn.on.defer{background:var(--bg-review-soft);color:var(--review);border-color:var(--review)}.cq-patterns{display:flex;flex-wrap:wrap;align-items:center;gap:6px;padding:5px 9px;border-top:1px solid var(--line, #1e2740);border-bottom:1px solid var(--line, #1e2740);background:var(--bg-row-alt)}.cq-patterns-title{color:var(--neutral);font-size:10px;font-weight:700;letter-spacing:.4px}.cq-pattern{display:flex;align-items:center;gap:5px;max-width:100%;padding:2px 5px 2px 7px;border:1px solid var(--line, #1e2740);border-radius:4px;background:var(--bg-chip)}.cq-pattern.hot{border-color:var(--text-sel)}.cq-pattern-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:260px;color:var(--text-dim);font-size:10px}.cq-pattern-n{padding:0 5px;border-radius:3px;background:var(--bg-row-sel);color:var(--text-sel);font-size:10px;font-weight:700;white-space:nowrap}.cq-row.in-pattern{background:var(--bg-row-sel);box-shadow:inset 2px 0 0 var(--text-sel)}.cq-detail{display:flex;flex-wrap:wrap;gap:10px;padding:4px 9px 9px;font-size:10.5px}.cq-block{flex:1 1 200px;min-width:0}.cq-block-title{margin-bottom:3px;color:var(--text-dim);font-size:10px;font-weight:700;letter-spacing:.6px}.cq-kv{display:flex;justify-content:space-between;gap:8px;padding:1px 0}.cq-kv>span:first-child{color:var(--text-dim)}.cq-change i{color:var(--neutral);font-style:normal}.cq-actname{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--text-dim)}.cq-preds{margin-top:3px}.cq-pred{padding:1px 0}.cq-pred.added{color:var(--added)}.cq-pred.removed{color:var(--removed)}.cq-pred.changed{color:var(--modified)}.rh-panel,.dcma-panel{display:flex;flex-direction:column;height:100%;min-height:0}.rh-chart{flex:1;min-height:100px;position:relative;overflow:hidden}.rh-legend{display:flex;align-items:center;gap:6px;flex-wrap:wrap;flex:none;padding:5px 10px;border-top:1px solid var(--line-soft)}.rh-key{display:inline-flex;align-items:center;gap:4px;font-size:10px;color:var(--text-dim);background:transparent;border:1px solid var(--line);border-radius:3px;padding:2px 6px;cursor:pointer}.rh-key:hover{border-color:var(--sel);color:var(--text)}.rh-key.off{opacity:.35;text-decoration:line-through}.rh-key .dot,.imp-stat-label .dot,.sc-tip .dot{width:7px;height:7px;border-radius:50%;display:inline-block}.sc-tip{position:absolute;top:8px;right:8px;pointer-events:none;background:var(--bg-float);border:1px solid var(--line);border-radius:4px;padding:6px 8px;font-size:10px;color:var(--text-dim);display:flex;flex-direction:column;gap:2px;min-width:130px}.sc-tip b{color:var(--text-sel)}.sc-tip-total{border-top:1px solid var(--line-soft);margin-top:3px;padding-top:3px;color:var(--text)}.rh-tip-mode{font-style:normal;color:var(--sel);font-weight:600}.spatial-panel{display:flex;flex-direction:column;height:100%;min-height:0}.sp-tabs{display:flex;gap:4px;padding:6px 10px 0}.sp-tabs button{height:22px;padding:0 10px;border:1px solid var(--line);border-radius:4px;background:var(--bg-idle);color:var(--text-dim);font-size:10.5px;cursor:pointer}.sp-tabs button.active{background:var(--bg-active);border-color:var(--sel);color:var(--text-sel);font-weight:700}.sp-tabs button b{margin-left:5px;color:var(--text)}.sp-tabs button.active b{color:var(--text-sel)}.sp-kind-desc{padding:5px 10px 6px;font-size:9.5px;color:var(--text-mute);line-height:1.5}.sp-list{flex:1;overflow-y:auto;min-height:0}.sp-row{display:flex;align-items:flex-start;gap:8px;width:100%;padding:5px 10px;text-align:left;cursor:pointer;background:transparent;border:0;border-bottom:1px solid var(--line-soft);font-size:10.5px;color:var(--text-dim)}.sp-row:hover{background:var(--bg-hover)}.sp-row.on{background:var(--bg-active)}.sp-row.on b{color:var(--text-sel)}.sp-main{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.sp-line{display:flex;align-items:baseline;gap:6px;min-width:0}.sp-line b{color:var(--text);font-weight:700;white-space:nowrap}.sp-line.sub{display:block;color:var(--text-mute);font-size:9.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sp-line.sub b,.sp-line.sub .sp-storey{margin:0 4px}.sp-storey{flex:0 0 auto;display:inline-block;font-style:normal;font-size:9px;padding:0 5px;border-radius:3px;white-space:nowrap;background:var(--bg-idle);color:var(--text-dim)}.sp-name{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.sp-metric{flex:0 0 auto;color:var(--text);font-weight:700;white-space:nowrap}.sp-none,.sp-more{padding:10px;font-size:10px;color:var(--text-mute);text-align:center}.sp-only{margin-left:6px;height:18px;padding:0 7px;border:1px solid var(--line-sel);border-radius:3px;background:transparent;color:var(--sel);font-size:9.5px;cursor:pointer}.sp-foot{flex:0 0 auto;padding:6px 10px;border-top:1px solid var(--line);font-size:9px;color:var(--text-mute);line-height:1.55}.sp-foot b{color:var(--text-dim)}.dcma-list{flex:1;overflow-y:auto;min-height:0}.dcma-row{border-bottom:1px solid var(--line-soft)}.dcma-head{display:flex;align-items:center;gap:8px;width:100%;padding:5px 10px;background:transparent;border:0;cursor:pointer;text-align:left;font-size:10.5px;color:var(--text-dim)}.dcma-head:hover{background:var(--bg-hover)}.dcma-no{flex:0 0 20px;text-align:right;font-family:Consolas,monospace;font-size:9.5px;color:var(--text-mute)}.dcma-name{flex:0 0 132px;color:var(--text);font-weight:600}.dcma-label{flex:1;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.dcma-value{flex:0 0 66px;text-align:right;font-weight:700;color:var(--text)}.dcma-badge{flex:0 0 38px;text-align:center;border-radius:3px;font-size:9px;padding:1px 0;font-weight:700}.dcma-badge.ok{background:var(--bg-ok-strong);color:var(--added)}.dcma-badge.warn{background:var(--bg-warn-strong);color:var(--modified)}.dcma-badge.bad{background:var(--bg-danger-strong);color:var(--removed)}.dcma-badge.skip{background:var(--bg-idle);color:var(--text-dim)}.dcma-row.bad .dcma-value{color:var(--removed)}.dcma-row.warn .dcma-value{color:var(--modified)}.dcma-row.skip .dcma-value{color:var(--text-mute)}.dcma-body{padding:2px 10px 9px 38px;font-size:10px;color:var(--text-dim)}.dcma-meta{display:flex;gap:12px;color:var(--text);margin-bottom:3px}.dcma-why{line-height:1.5;color:var(--text-dim)}.dcma-samples{display:flex;flex-wrap:wrap;gap:4px;margin-top:5px}.dcma-samples code{font-family:Consolas,monospace;font-size:9px;background:var(--bg-input);border:1px solid var(--line);border-radius:2px;padding:1px 4px;color:var(--text-id)}.dcma-more{font-size:9px;color:var(--text-mute);align-self:center}.bl-capture.danger{background:var(--bg-danger-strong);color:var(--text-danger);border-color:var(--removed);font-weight:700}.col-picker-note.warn{color:var(--text-amber);max-width:300px;line-height:1.55}.col-picker-note.warn b{color:var(--text-danger)}.col-picker-note.warn code{display:block;margin-top:4px;padding:4px 5px;font-family:Consolas,monospace;font-size:9px;background:var(--bg-input);border:1px solid var(--line);border-radius:2px;color:var(--text-id);white-space:pre-wrap;word-break:break-all}.help-pop{position:fixed;z-index:300;pointer-events:none;padding:8px 10px;border:1px solid var(--grip, var(--line));border-radius:5px;background:var(--bg-float, #0d1119);box-shadow:0 10px 26px var(--shadow-col, rgba(0, 0, 0, .5));font-size:10px;line-height:1.55;color:var(--text-dim)}.help-pop-head{display:flex;align-items:center;gap:5px;color:var(--text-sel);font-size:10.5px;font-weight:700;margin-bottom:3px}.help-pop-short{color:var(--text);margin-bottom:4px}.help-pop-detail{color:var(--text-dim)}.help-swatch{width:9px;height:9px;border-radius:2px;display:inline-block;flex:none;border:1px solid rgba(255,255,255,.25)}.help-dot{display:inline-flex;align-items:center;justify-content:center;width:11px;height:11px;margin-left:4px;border-radius:50%;background:var(--bg-input);border:1px solid var(--line);color:var(--text-dim);font-size:8px;font-style:normal;cursor:help}.help-dot:hover{border-color:var(--sel);color:var(--text-sel)}.gantt-bar-help-popover .help-color{display:flex;align-items:center;gap:5px;margin-top:4px;padding-top:4px;border-top:1px solid var(--line-soft);color:var(--text-dim)}.gantt-bar-help-popover .help-color b{display:inline;color:var(--text);font-size:10px}.settings-panel{width:100%;height:100%;min-height:0;overflow:auto;padding:10px 12px 14px;font-size:11px;color:var(--text)}.set-section{padding-bottom:12px;margin-bottom:12px;border-bottom:1px solid var(--line-soft)}.set-section:last-child{border-bottom:none;margin-bottom:0}.set-title{font-size:10.5px;font-weight:700;color:var(--text-head);letter-spacing:.6px;display:flex;align-items:center;gap:4px}.set-choice{display:flex;align-items:center;gap:6px;margin-top:8px;flex-wrap:wrap}.set-btn{height:24px;padding:0 12px;border-radius:5px;background:var(--bg-idle);border:1px solid var(--line);color:var(--text-dim);font-size:11px}.set-btn:hover{color:var(--text-sel);border-color:var(--line-sel)}.set-btn.active{background:var(--bg-active);border-color:var(--sel);color:var(--text-sel);font-weight:700}.set-note{color:var(--text-mute);font-size:10px}.set-swatches{display:flex;gap:6px;margin-top:9px;flex-wrap:wrap}.set-swatch{display:flex;flex-direction:column;align-items:center;gap:3px;width:46px}.set-swatch i{display:block;width:100%;height:16px;border-radius:3px;border:1px solid var(--line)}.set-swatch b{font-size:9px;font-weight:600;color:var(--text-mute)}.set-kv{display:flex;justify-content:space-between;gap:10px;margin-top:5px;font-size:10px}.set-kv .k{color:var(--text-id)}.set-kv .v{color:var(--text-dim)}.grid-row.wbs-group{gap:6px;padding:0 8px;cursor:pointer;background:var(--bg-group);border-bottom:1px solid var(--line);font-size:10px;color:var(--text)}.grid-row.wbs-group{padding-left:calc(8px + var(--wbs-depth, 0) * 12px);background:var(--bg-group);box-shadow:inset calc(var(--wbs-depth, 0) * 12px + 3px) 0 0 -2px var(--line)}.grid-row.wbs-group[data-depth="0"] .wbs-label,.grid-row.wbs-group[data-depth="1"] .wbs-label{font-weight:800}.grid-row.wbs-group[data-depth="0"]{box-shadow:inset 3px 0 0 -2px var(--line),inset 0 1px 0 0 var(--line)}.grid-row.wbs-group:hover{background:var(--bg-row-sel)}.wbs-caret{flex:none;width:10px;color:var(--text-dim)}.wbs-label{flex:1;min-width:0;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;font-weight:700}.wbs-count{flex:none;color:var(--text-dim);font-size:9.5px}.wbs-done{flex:none;color:var(--added);font-size:9.5px}.wbs-late{flex:none;color:var(--removed);font-size:9.5px;font-weight:700}.wbs-add{flex:none;width:16px;height:16px;padding:0;line-height:1;border:1px solid transparent;border-radius:3px;background:transparent;color:var(--text-dim);cursor:pointer;opacity:.35;font-size:11px}.grid-row.wbs-group:hover .wbs-add{opacity:1}.wbs-add:hover{background:var(--bg-panel);border-color:var(--line);color:var(--text)}.wbs-add:focus-visible{opacity:1;outline:2px solid var(--sel);outline-offset:1px}.grid-row.draft-row{background:var(--bg-row-sel);box-shadow:inset 2px 0 0 0 var(--sel)}.grid-row.draft-row .cell{padding:0 2px}.cell-input.draft{width:100%}.draft-hint{flex:1;min-width:0;padding-left:6px;font-size:9.5px;color:var(--text-dim);overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.draft-ok,.draft-cancel{flex:none;padding:0 6px;font-size:9.5px;line-height:16px;border:1px solid var(--line);border-radius:3px;cursor:pointer;background:var(--bg-panel);color:var(--text)}.draft-ok{border-color:var(--sel);color:var(--text-sel)}.del-ask{position:absolute;right:12px;bottom:42px;z-index:40;min-width:240px;max-width:340px;padding:8px 10px;background:var(--bg-panel);border:1px solid var(--line);border-radius:5px;box-shadow:0 6px 18px #00000047;font-size:11px}.del-ask-name{color:var(--text-dim)}.del-ask-list{margin:6px 0 8px;padding-left:16px;color:var(--text-dim)}.del-ask-list .warn{color:var(--removed);font-weight:600}.del-ask-btns{display:flex;gap:6px;justify-content:flex-end}.del-ask-btns button{padding:2px 10px;border:1px solid var(--line);border-radius:3px;background:var(--bg-panel);color:var(--text);cursor:pointer}.del-ask-btns .danger{border-color:var(--removed);color:var(--removed);font-weight:700}.gantt-bar-help-popover .help-color{display:block;max-width:100%;overflow-wrap:anywhere;word-break:keep-all}.gantt-bar-help-popover .help-color .help-swatch{vertical-align:middle;margin-right:5px;position:relative;top:-1px}.gantt-bar-help-popover .help-tag{display:inline-block;min-width:40px;margin-right:6px;color:var(--text-dim);font-size:9px}.dock-max{margin-left:auto;flex:none;height:21px;padding:0 7px;font-size:11px;line-height:1;color:var(--text-mute);background:transparent;border:none;cursor:pointer}.dock-max:hover{color:var(--text-sel);background:var(--bg-hover)}.dock-max.on{color:var(--text-sel);background:var(--bg-active);font-weight:700}.rh-keywrap{display:inline-flex;align-items:center;gap:3px}.rh-limit{width:52px;height:18px;padding:0 4px;background:var(--bg-input);color:var(--text);border:1px solid var(--line);border-radius:3px;font-size:9.5px;text-align:right}.rh-limit:hover:not(:disabled),.rh-limit:focus{border-color:var(--sel);outline:none}.rh-limit:disabled{opacity:.5}.rh-over{margin-left:4px;color:var(--removed);font-weight:700}.splitter-h.collapsed,.splitter-v.collapsed{background:var(--bg-active)}.splitter-h.collapsed{flex-basis:15px;height:15px}.splitter-v.collapsed{flex-basis:15px;width:15px}.splitter-h.collapsed:after,.splitter-v.collapsed:after{display:none}.spinner{display:inline-block;width:9px;height:9px;margin-right:5px;border:1.5px solid var(--line);border-top-color:var(--sel);border-radius:50%;animation:p6spin .7s linear infinite;vertical-align:-1px}@keyframes p6spin{to{transform:rotate(360deg)}}@media(prefers-reduced-motion:reduce){.spinner{animation:none}}.dcma-state{font-size:9.5px;color:var(--text-dim);margin-right:6px;white-space:nowrap}.dcma-state-err{color:var(--removed)}.legend-chain{display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-size:9.5px}.legend-chain .lc-empty{color:var(--text-dim)}.legend-chain .lc-item{display:inline-flex;align-items:center;gap:4px;color:var(--text-dim)}.legend-chain .lc-item i{width:9px;height:9px;border-radius:2px;display:inline-block}.legend-chain .lc-item b{color:var(--text-sel);font-size:10px}.legend-chain .lc-depth{display:inline-flex;align-items:center;gap:4px;color:var(--text-dim);cursor:pointer}.legend-chain .lc-depth input[type=range]{width:54px;accent-color:#ff6ec7;cursor:pointer}.legend-chain .lc-note{color:var(--text-dim);opacity:.7}.draw-cut-at{margin-left:5px;font-style:normal;font-weight:700;color:var(--text-sel)}.dim-cutline line{stroke:var(--removed);stroke-width:1.6;stroke-dasharray:14 5 3 5;opacity:.95}.dim-cutline text{fill:var(--removed);font-weight:700}.dim-grid line{stroke:var(--neutral);stroke-width:.8;stroke-dasharray:12 3 2 3;opacity:.5}.dim-grid text{fill:var(--neutral);font-size:9px;font-weight:700}.issue-panel{display:flex;flex-direction:column;height:100%;min-height:0}.issue-head{flex:none;display:flex;align-items:center;gap:7px;flex-wrap:wrap;padding:5px 9px;border-bottom:1px solid var(--line-soft);background:var(--bg-head)}.issue-title{font-size:11px;font-weight:700;color:var(--text-head)}.issue-spacer{flex:1}.issue-meta{font-size:10px;color:var(--text-dim)}.issue-sevs{display:flex;gap:4px}.issue-sev{font-size:9.5px;font-weight:700;letter-spacing:.2px;cursor:pointer;border-radius:3px;padding:2px 6px;border:1px solid var(--line);background:transparent;color:var(--text-dim)}.issue-sev.bad{color:var(--removed);border-color:var(--removed);background:var(--bg-danger-soft)}.issue-sev.warn{color:var(--modified);border-color:var(--line-warn);background:var(--bg-warn-soft)}.issue-sev.info{color:var(--sel);border-color:var(--line-sel);background:var(--bg-sel-soft)}.issue-sev.skip{color:var(--text-dim)}.issue-sev.off{opacity:.3;text-decoration:line-through}.issue-reload{font-size:10px;border:1px solid var(--line);background:transparent;color:var(--text-dim);border-radius:3px;padding:2px 8px;cursor:pointer}.issue-reload:hover:not(:disabled){border-color:var(--sel);color:var(--text)}.issue-warn{flex:none;font-size:10.5px;line-height:1.5;padding:6px 9px}.issue-warn.bad{background:var(--bg-danger-soft);color:var(--removed)}.issue-warn.warn{background:var(--bg-warn-soft);color:var(--text-amber)}.issue-body{flex:1;display:flex;min-height:0}.issue-list{width:46%;min-width:260px;overflow:auto;min-height:0}.issue-detail{flex:1;overflow:auto;min-height:0;border-left:1px solid var(--line-soft);background:var(--bg-row-alt)}.issue-row{display:grid;grid-template-columns:44px 1fr 92px 44px 52px;align-items:center;gap:0;font-size:10.5px;padding:4px 9px;border-bottom:1px solid var(--line-soft);cursor:pointer}.issue-row.head{position:sticky;top:0;z-index:2;cursor:default;background:var(--bg-head);color:var(--text-dim);font-size:9.5px;font-weight:600;border-bottom:1px solid var(--line)}.issue-row:not(.head):hover{background:var(--bg-hover)}.issue-row.sel{background:var(--bg-row-sel);box-shadow:inset 3px 0 0 var(--sel)}.issue-badge{font-size:8.5px;font-weight:700;letter-spacing:.3px;text-align:center;border-radius:3px;padding:2px 4px}.issue-badge.bad{background:var(--bg-danger-soft);color:var(--removed)}.issue-badge.warn{background:var(--bg-warn-soft);color:var(--modified)}.issue-badge.info{background:var(--bg-sel-soft);color:var(--sel)}.issue-badge.skip{background:var(--bg-chip);color:var(--text-dim)}.issue-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding-right:6px;color:var(--text)}.issue-name i{font-style:normal;color:var(--text-dim);font-size:9.5px;margin-left:5px}.issue-src,.issue-opt{font-size:9.5px;color:var(--text-dim);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.issue-opt{text-align:center}.issue-opt.has{color:var(--review);font-weight:600}.issue-verdict{font-size:9.5px;text-align:center;font-weight:700}.issue-verdict.none{color:var(--text-mute);font-weight:400}.issue-verdict.approve{color:var(--added)}.issue-verdict.hold{color:var(--modified)}.issue-verdict.reject{color:var(--removed)}.issue-detail-hd{position:sticky;top:0;z-index:2;display:flex;align-items:center;gap:7px;padding:7px 11px;background:var(--bg-panel);border-bottom:1px solid var(--line);font-size:11.5px;font-weight:700;color:var(--text)}.issue-stage{padding:7px 11px;border-bottom:1px solid var(--line-soft)}.issue-stage:last-child{border-bottom:none}.issue-stage-hd{display:flex;align-items:center;gap:6px;margin-bottom:4px}.issue-stage-hd b{font-size:9px;font-weight:700;letter-spacing:.5px;color:var(--text-dim)}.issue-stage-bd{font-size:10.5px;line-height:1.6;color:var(--text)}.issue-stage.empty .issue-stage-bd{color:var(--text-mute);font-style:italic}.issue-tag{font-size:8.5px;font-weight:600;border-radius:3px;padding:2px 5px;border:1px solid var(--line)}.issue-tag.calc{background:var(--bg-ok-soft);color:var(--added);border-color:var(--line-ok)}.issue-tag.llm{background:var(--bg-review-soft);color:var(--review);border-color:var(--line-review)}.issue-tag.man{background:var(--bg-chip);color:var(--text-dim)}.issue-refs{margin-top:4px;padding-top:4px;border-top:1px dashed var(--line-soft);font-size:9.5px;color:var(--text-dim)}.issue-opts{margin:0;padding-left:15px}.issue-opts li{margin:2px 0}.issue-editor{font-style:normal}.issue-ta{width:100%;box-sizing:border-box;resize:vertical;font:inherit;font-size:10.5px;line-height:1.55;padding:5px 7px;border-radius:3px;background:var(--bg-input);color:var(--text);border:1px solid var(--line)}.issue-ta:focus{outline:none;border-color:var(--sel)}.issue-ta::placeholder{color:var(--text-mute)}.issue-editor-bar{display:flex;align-items:center;gap:5px;margin-top:4px}.issue-editor-hint{flex:1;font-size:9px;color:var(--text-mute);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.issue-editor-hint .bad{color:var(--removed)}.issue-ta-btn{border-radius:3px;padding:3px 9px;font-size:9.5px;font-weight:600;cursor:pointer;background:transparent;border:1px solid var(--line);color:var(--text-dim)}.issue-ta-btn:hover:not(:disabled){border-color:var(--sel);color:var(--text)}.issue-ta-btn.save:not(:disabled){border-color:var(--sel);color:var(--sel)}.issue-ta-btn:disabled{opacity:.45;cursor:default}.issue-decide{display:flex;align-items:center;gap:5px;margin-top:6px}.issue-db{border-radius:3px;padding:3px 11px;font-size:10px;font-weight:600;cursor:pointer;background:transparent;border:1px solid var(--line);color:var(--text-dim)}.issue-db.ok:hover,.issue-db.ok.on{border-color:var(--added);color:var(--added)}.issue-db.warn:hover,.issue-db.warn.on{border-color:var(--modified);color:var(--modified)}.issue-db.bad:hover,.issue-db.bad.on{border-color:var(--removed);color:var(--removed)}.issue-db.on{background:var(--bg-active)}.issue-decided-at{font-size:9px;color:var(--text-mute);margin-left:4px}.issue-note{margin-top:5px;font-size:10px;color:var(--text-dim);padding:4px 7px;background:var(--bg-idle);border-radius:3px}.panel-empty.small{font-size:10px;padding:10px}.tia-panel{display:flex;flex-direction:column;gap:8px;padding:8px 10px;overflow:auto;height:100%;flex:1;min-width:0}.tia-empty{display:flex;flex-direction:column;gap:8px;padding:16px;color:var(--text-dim);font-size:11px;line-height:1.6}.tia-empty-head{color:var(--text-root);font-size:12px;font-weight:700}.tia-empty-note code{background:var(--bg-input);border:1px solid var(--line);border-radius:3px;padding:0 4px;font-size:10px}.tia-head{display:flex;align-items:center;gap:10px}.tia-title{font-size:12px;font-weight:700;color:var(--text-root)}.tia-total{font-size:11px;color:var(--text-dim)}.tia-total.late{color:var(--text-danger);font-weight:700}.tia-toggle{display:flex;align-items:center;gap:4px;font-size:10px;color:var(--text-dim);cursor:pointer}.tia-rerun{background:var(--bg-input);color:var(--sel);border:1px solid var(--line);border-radius:4px;font-size:10px;padding:2px 8px;cursor:pointer}.tia-rerun:disabled{opacity:.5;cursor:default}.tia-ran{font-size:9.5px;color:var(--text-dim)}.tia-warn{font-size:10px;line-height:1.5;color:var(--text-amber);background:#f0a02014;border-left:2px solid var(--text-amber);padding:4px 8px;border-radius:0 3px 3px 0}.tia-warn.err{color:var(--text-danger);border-left-color:var(--text-danger);background:#e5534b14}.tia-revs{width:100%;border-collapse:collapse;font-size:10px}.tia-revs th{text-align:left;color:var(--text-dim);font-weight:400;border-bottom:1px solid var(--line);padding:2px 6px 3px 0}.tia-revs td{padding:2px 6px 2px 0;border-bottom:1px solid var(--line-soft)}.tia-revs td.dim{color:var(--text-dim)}.tia-file{max-width:220px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tia-win{display:flex;flex-direction:column;gap:5px;border:1px solid var(--line);border-radius:5px;padding:7px 9px}.tia-winhead{display:flex;align-items:baseline;gap:10px;font-size:11px}.tia-windate{color:var(--text-dim);font-size:10px}.tia-windelay{margin-left:auto;font-size:11px;color:var(--text-dim)}.tia-windelay.late{color:var(--text-danger);font-weight:700}.tia-bar{height:6px;background:var(--line-soft);border-radius:3px;overflow:hidden}.tia-barfill{height:100%;background:var(--text-danger);border-radius:3px}.tia-barfill.early{background:var(--text-ok, #3fb950)}.tia-attr{width:100%;border-collapse:collapse;font-size:10px}.tia-attr td{padding:2px 6px 2px 0}.tia-attr td.dim{color:var(--text-dim)}.tia-attrdays{text-align:right}.tia-dot{display:inline-block;width:7px;height:7px;border-radius:2px;margin-right:5px;vertical-align:middle}.tia-inter td{color:var(--text-dim);font-style:italic;border-top:1px solid var(--line-soft)}.tia-tops{display:flex;flex-direction:column;gap:1px;padding-top:3px}.tia-topshead{font-size:9.5px;color:var(--text-dim)}.tia-toprow{display:flex;align-items:center;gap:8px;font-size:10px}.tia-topdays{min-width:66px;color:var(--text-danger)}.tia-topcode{min-width:150px;color:var(--sel)}.tia-topname{color:var(--text-dim);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tia-note{font-size:9.5px;color:var(--text-dim);line-height:1.55}.tia-ifc{display:flex;flex-direction:column;gap:3px;margin-top:2px;padding:5px 0 2px 8px;border-left:2px solid var(--line)}.tia-ifchead{display:flex;align-items:baseline;gap:8px;font-size:10px}.tia-ifctag{font-size:9.5px;font-weight:700;color:var(--text-dim);letter-spacing:.02em}.tia-ifcdim{margin-left:auto;font-size:9.5px;color:var(--text-dim)}.tia-ifcbadges{display:flex;gap:5px;flex-wrap:wrap}.tia-ifcqty{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap;font-size:10px}.tia-ifcqty b{font-variant-numeric:tabular-nums}.tia-ifcqty b.cost{color:var(--added)}.tia-ifcqty b.dim{color:var(--text-dim);font-weight:600}.tia-ifctag.qty{background:var(--sel)}.tia-ifcbadge{font-size:9px;padding:1px 5px;border-radius:3px;border:1px solid var(--line);color:var(--text-dim)}.tia-ifcbadge.backed{border-color:var(--sel);color:var(--sel);font-weight:700}.tia-ifcbadge.unlinked{border-color:var(--text-danger);color:var(--text-danger)}.tia-ifcrows{display:flex;flex-direction:column;gap:1px;padding-top:2px}.tia-ifcrow{display:flex;align-items:center;gap:7px;font-size:10px;cursor:pointer;border-radius:3px;padding:1px 3px}.tia-ifcrow:hover{background:var(--bg-hover, rgba(127, 127, 127, .12))}.tia-ifcrow{opacity:.62}.tia-ifcrow.backed{opacity:1}.tia-ifcdot{width:7px;height:7px;border-radius:2px;flex:none}.tia-ifccls{min-width:26px;color:var(--text-dim);font-size:9.5px}.tia-ifckey{min-width:168px;color:var(--text-dim);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tia-ifccode{flex:1;min-width:0;color:var(--sel);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tia-ifcdays{margin-left:auto;color:var(--text-danger)}.legend-issue{display:flex;align-items:center;gap:7px;flex-wrap:wrap;padding:4px 8px}.legend-issue .legend-key{display:inline-flex;align-items:center;gap:4px;font-size:9.5px}.legend-issue .legend-key i{width:9px;height:9px;border-radius:2px;display:inline-block;flex:none}.legend-issue .legend-key b{color:var(--text);font-weight:700}.legend-issue .legend-key em{font-style:normal;color:var(--text-mute);font-size:8.5px;margin-left:1px}.legend-issue .legend-key.none{color:var(--text-dim)}.legend-issue .legend-note{font-size:8.5px;color:var(--text-amber);flex-basis:100%;line-height:1.4}.grid-row.issue-critical{box-shadow:inset 3px 0 #e8433f}.grid-row.issue-high{box-shadow:inset 3px 0 #ef8a3c}.grid-row.issue-medium{box-shadow:inset 3px 0 #d9bf3a}.grid-row.issue-low{box-shadow:inset 3px 0 #86ab63}.grid-row.selected.issue-critical,.grid-row.selected.issue-high,.grid-row.selected.issue-medium,.grid-row.selected.issue-low{box-shadow:inset 3px 0 0 var(--sel)}.grid-row.tl-building{background:color-mix(in srgb,var(--building) 12%,transparent)}.grid-row.tl-building .cell.name{color:var(--building)}.grid-row.tl-delayed{background:color-mix(in srgb,var(--removed) 12%,transparent)}.grid-row.tl-delayed .cell.name{color:var(--text-danger)}.grid-row.selected.tl-building,.grid-row.selected.tl-delayed{background:var(--bg-row-sel)}.fchain-panel{flex:1;min-width:0;display:flex;flex-direction:column;height:100%;min-height:0}.fc-head{display:flex;justify-content:space-between;align-items:flex-start;gap:8px;padding:7px 10px 5px;flex-wrap:wrap}.fc-stats{display:flex;gap:12px}.fc-stat-label{font-size:9px;color:var(--text-mute)}.fc-stat-value{font-size:16px;font-weight:700;color:var(--text);line-height:1.1}.fc-stat-sub{font-size:8.5px;color:var(--text-mute)}.fc-stat.hot .fc-stat-value{color:#e8433f}.fc-stat.ok .fc-stat-value{color:#5fb87a}.fc-actions{display:flex;align-items:center;gap:7px;flex-wrap:wrap}.fc-actions button,.fc-buttons button{height:21px;padding:0 8px;border:1px solid var(--line);border-radius:4px;background:var(--bg-idle);color:var(--text-dim);font-size:10px;cursor:pointer}.fc-actions button:hover,.fc-buttons button:hover{background:var(--bg-hover)}.fc-actions button.active{background:var(--bg-active);border-color:var(--sel);color:var(--text-sel);font-weight:700}.fc-toggle{display:flex;align-items:center;gap:4px;font-size:10px;color:var(--text-dim)}.fc-band{display:inline-flex;align-items:center;gap:4px;height:19px;padding:0 7px;border:1px solid var(--line);border-radius:9px;background:var(--bg-idle);color:var(--text-dim);font-size:9.5px;cursor:pointer}.fc-band i{width:8px;height:8px;border-radius:2px;display:inline-block}.fc-band.on{border-color:var(--sel);color:var(--text-sel);background:var(--bg-active);font-weight:700}.fc-band-picker{position:relative;display:flex;align-items:center;gap:4px;padding:0 10px 6px}.fc-band-summary{display:inline-flex;align-items:center;gap:4px;height:20px;padding:0 8px;border:1px solid var(--line);border-radius:4px;background:var(--bg-idle);color:var(--text-dim);font-size:9.5px;cursor:pointer}.fc-band-summary.on{border-color:var(--sel);color:var(--text-sel);background:var(--bg-active);font-weight:700}.fc-band-summary i{width:8px;height:8px;border-radius:2px;display:inline-block}.fc-band-caret{color:var(--text-mute);font-size:8px;margin-left:2px}.fc-band-dd{position:absolute;top:24px;left:10px;z-index:5;display:flex;flex-wrap:wrap;gap:4px;align-items:center;width:max-content;max-width:320px;padding:8px;border:1px solid var(--sel);border-radius:6px;background:var(--bg-float);box-shadow:0 6px 18px #00000059}.fc-band-range{flex:0 0 100%;display:flex;align-items:center;gap:4px;margin-top:4px;padding-top:6px;border-top:1px solid var(--line-soft, var(--line));font-size:9.5px;color:var(--text-dim)}.fc-band-range input{width:44px;height:19px;border:1px solid var(--line);border-radius:3px;background:var(--bg-idle);color:var(--text);font-size:9.5px;padding:0 4px}.fc-band-range button{height:19px;padding:0 8px;border-radius:3px;font-size:9px;border:1px solid var(--sel);background:var(--bg-active);color:var(--text-sel);cursor:pointer}.fc-band-range button:disabled{opacity:.4;cursor:default;border-color:var(--line);background:var(--bg-idle);color:var(--text-dim)}.fc-body{flex:1;min-height:0;display:flex;flex-direction:column}.fc-body.split{display:grid;grid-template-columns:minmax(260px,1fr) minmax(320px,46%);min-height:0}.fc-body.split>.fc-table{min-height:0}.fc-body.split>.fc-detail{border-top:none;border-left:1px solid var(--line);min-height:0;overflow-y:auto}.fc-table{flex:1;overflow-y:auto;min-height:0}.fc-row{display:grid;grid-template-columns:26px minmax(90px,1fr) 38px 60px 64px;align-items:center;gap:5px;padding:4px 10px;cursor:pointer;border-bottom:1px solid var(--line-soft);font-size:10px;color:var(--text-dim)}.fc-row:hover{background:var(--bg-hover)}.fc-row.sel{background:var(--bg-active);color:var(--text-sel)}.fc-row.lp{font-weight:700}.fc-th{position:sticky;top:0;z-index:1;background:var(--bg-panel);color:var(--text-mute);font-size:9px;cursor:default}.fc-th:hover{background:var(--bg-panel)}.fc-row .c-num{text-align:right}.fc-row .c-num.strong{color:var(--text);font-weight:700}.fc-row .c-num.dim{color:var(--text-mute)}.fc-row .c-name,.fc-row .c-span{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.fc-row .c-span{font-size:9px;color:var(--text-mute)}.fc-row .c-rank{text-align:center;border-left:3px solid transparent;padding-left:3px}.fc-th button.sortable{cursor:pointer;display:block;width:100%;background:none;border:none;margin:0;padding:0;font:inherit;color:inherit;line-height:inherit}.fc-th button.sortable:hover{color:var(--text)}.fc-th .c-num-th{display:flex;align-items:center;gap:2px}.fc-th .c-num.c-num-th{justify-content:flex-end}.fc-th .c-num-th button.sortable{width:auto}.fc-lp{display:inline-block;margin-right:4px;padding:0 4px;border-radius:3px;background:#e8433f;color:#fff;font-size:8.5px}.c-rank.b-critical{border-left-color:#e8433f}.fc-table:not(.wide) .c-span,.fc-table:not(.wide) .c-basis{display:none}.fc-table.wide .fc-row{grid-template-columns:26px minmax(90px,1fr) 38px 60px 64px 76px minmax(70px,.6fr) minmax(96px,.9fr)}.fc-table:not(.wide) .c-res{display:none}.fc-row .c-res{overflow:hidden;white-space:nowrap;text-overflow:ellipsis;font-size:9px;color:var(--text-dim)}.fc-row .c-res .dim{color:var(--text-mute)}.c-res-more{font-style:normal;margin-left:3px;padding:0 3px;border-radius:3px;background:var(--bg-idle);color:var(--text-mute);font-size:8px}.fc-facets{display:flex;gap:4px;padding:0 10px 6px;flex-wrap:wrap;align-items:center}.fc-facets-label{font-size:8.5px;color:var(--text-mute);cursor:help}.fc-facet{height:17px;padding:0 6px;border-radius:9px;font-size:9px;border:1px solid var(--line);background:var(--bg-idle);color:var(--text-dim);cursor:pointer;display:inline-flex;align-items:center;gap:3px}.fc-facet:hover{background:var(--bg-hover)}.fc-facet i{font-style:normal;color:var(--text-mute);font-size:8px}.fc-facet.on{border-color:var(--sel);background:var(--bg-active);color:var(--text-sel);font-weight:700}.fc-facet.on i{color:var(--text-sel)}.fc-row .c-basis{overflow:hidden;white-space:nowrap;text-overflow:ellipsis;font-size:9px;color:var(--text-dim)}.fc-row .c-basis.dim{color:var(--text-mute)}.fc-basis-rank{margin-left:4px;font-style:normal;color:var(--text-mute);font-size:8.5px}.fc-sibs{margin:6px 0;padding:6px 8px;border-radius:4px;background:var(--bg-idle)}.fc-sibs-head{font-size:9.5px;color:var(--text-dim);padding-bottom:4px}.fc-sibs-hint{color:var(--text-mute);font-size:9px}.fc-sib{display:grid;grid-template-columns:4px minmax(60px,1fr) 34px 44px 54px;gap:5px;align-items:center;padding:2px 0;font-size:9.5px;color:var(--text-dim);cursor:pointer}.fc-sib:hover{background:var(--bg-hover)}.fc-sib.blocked{opacity:.55}.fc-sib-band{width:4px;height:11px;border-radius:1px;background:var(--text-mute);display:inline-block}.fc-sib-band.b-critical{background:#e8433f}.fc-sib-band.b-tight{background:#ff9d3f}.fc-sib-band.b-some{background:#e2c541}.fc-sib-band.b-loose{background:#5fb87a}.fc-sib-band.b-ample{background:#29f8ba}.fc-sib-name{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.fc-sib-size,.fc-sib-tf{text-align:right;font-variant-numeric:tabular-nums}.fc-sib-tf{color:var(--text);font-weight:700}.fc-sib-mv{font-size:8.5px;color:var(--text-mute);text-align:right}.fc-detail.wide{display:grid;grid-template-columns:minmax(0,1fr) minmax(220px,320px);column-gap:12px;align-items:start}.fc-detail.wide>*:not(.fc-moves){grid-column:1}.fc-detail.wide>.fc-moves{grid-column:2;grid-row:1 / -1;align-self:stretch}.fc-detail.wide.xwide{grid-template-columns:minmax(0,1fr) minmax(190px,300px) minmax(190px,300px)}.fc-detail.wide.xwide>.fc-sibs{grid-column:2;grid-row:1 / -1;align-self:stretch;margin:0;max-height:280px;overflow-y:auto}.fc-detail.wide.xwide>.fc-moves{grid-column:3}.fc-moves{display:flex;flex-direction:column;min-height:0;max-height:200px;border-top:1px solid var(--line);margin-top:6px;padding-top:6px}.fc-detail.wide>.fc-moves{max-height:260px;border-top:none;margin-top:0;padding-top:0;border-left:1px solid var(--line);padding-left:10px}.fc-moves-head{font-size:10px;color:var(--text-dim);padding-bottom:4px}.fc-moves.empty{max-height:none}.fc-moves.empty .fc-moves-head{padding-bottom:0}.fc-moves-hint{color:var(--text-mute);font-size:9px;margin-left:3px}.fc-moves-out{color:#d08a2c;font-weight:700}.fc-moves-empty{font-size:9.5px;color:var(--text-mute);line-height:1.6;padding:4px 0}.fc-moves-list{flex:1;overflow-y:auto;min-height:0}.fc-move{display:grid;grid-template-columns:8px minmax(60px,1fr) auto 40px;gap:5px;align-items:center;padding:2px 0;font-size:9.5px;color:var(--text-dim);cursor:pointer}.fc-move:hover{background:var(--bg-hover)}.fc-move-dot{width:6px;height:6px;border-radius:50%;display:inline-block;background:#4f8cff}.fc-move.out .fc-move-dot,.fc-move-dot.out{background:#d08a2c}.fc-move-code{overflow:hidden;white-space:nowrap;text-overflow:ellipsis;font-family:Consolas,monospace}.fc-move-date{color:var(--text-mute);font-variant-numeric:tabular-nums}.fc-move-days{text-align:right;font-weight:700;color:var(--text)}.fc-move.out .fc-move-days{color:#d08a2c}.fc-moves-foot{font-size:8.5px;color:var(--text-mute);padding-top:5px;display:flex;align-items:center;gap:4px;flex-wrap:wrap}.fc-warn{margin:0 10px 6px;padding:5px 8px;border-radius:4px;font-size:9.5px;line-height:1.55;background:var(--bg-idle);border-left:3px solid #d08a2c;color:var(--text-dim)}.fc-sort,.fc-actual{height:21px;border:1px solid var(--line);border-radius:4px;background:var(--bg-idle);color:var(--text-dim);font-size:10px;padding:0 4px}.c-rank.b-tight{border-left-color:#ef8b3a}.c-rank.b-some{border-left-color:#d9c53c}.c-rank.b-loose{border-left-color:#5fb87a}.c-rank.b-ample{border-left-color:#3aa8a0}.fc-detail{border-top:1px solid var(--line);padding:7px 10px 9px;display:flex;flex-direction:column;gap:6px;background:var(--bg-idle)}.fc-detail-head{font-size:11px;color:var(--text)}.fc-scope{float:right;height:18px;padding:0 6px;border-radius:3px;font-size:9px;border:1px solid var(--line);background:var(--bg-idle);color:var(--text-dim);cursor:pointer}.fc-scope:hover{background:var(--bg-hover)}.fc-scope.on{border-color:var(--sel);background:var(--bg-active);color:var(--text-sel);font-weight:700}.fc-meta{display:block;font-size:9px;color:var(--text-mute);margin-top:2px}.fc-topo{display:flex;align-items:center;gap:6px;font-size:9.5px}.fc-node{height:19px;padding:0 7px;border:1px solid var(--line);border-radius:4px;background:var(--bg-panel);color:var(--text-dim);font-size:9.5px;cursor:pointer}.fc-node:disabled{opacity:.5;cursor:default}.fc-arrow{color:var(--text-mute)}.fc-slider label{display:flex;align-items:center;gap:6px;font-size:10px;color:var(--text-dim)}.fc-slider input{flex:1;width:100%}.fc-track{position:relative;flex:1;display:flex;align-items:center}.fc-track:before{content:"";position:absolute;left:0;right:0;top:50%;height:3px;transform:translateY(-50%);border-radius:2px;pointer-events:none;background:linear-gradient(to right,#5fb87a 0 var(--ff),#d08a2c var(--ff) 100%);opacity:.55}.fc-track input{position:relative;background:transparent}.fc-left.spill{color:#d08a2c}.fc-slider b{min-width:34px;text-align:right;color:var(--text)}.fc-left{display:block;margin-top:3px;font-size:9.5px;color:var(--text-mute)}.fc-left.b-critical{color:#e8433f;font-weight:700}.fc-left.b-tight{color:#ef8b3a}.fc-left.b-some{color:#d9c53c}.fc-left.b-loose,.fc-left.b-ample{color:var(--text-mute)}.fc-left.fresh{border-bottom:1px dotted currentColor;display:inline-block}.fc-after{font-weight:700}.fc-after.b-critical{color:#e8433f}.fc-after.b-tight{color:#ef8b3a}.fc-after.b-some{color:#d9c53c}.fc-after.b-loose,.fc-after.b-ample{color:var(--text-dim)}.fc-burn{color:#e8433f;font-weight:700}.fc-preview{font-size:9.5px;color:#5fb87a;padding:3px 6px;border-radius:4px;background:var(--bg-panel)}.fc-preview.bad{color:#e8433f}.fc-preview-res{margin-top:2px;color:var(--text-mute)}.fc-buttons{display:flex;gap:6px;flex-wrap:wrap}.fc-buttons .primary{background:var(--bg-active);border-color:var(--sel);color:var(--text-sel);font-weight:700}.fc-buttons button:disabled{opacity:.45;cursor:default}.fc-sug{font-size:9.5px;color:var(--text);padding:5px 7px;border-radius:4px;background:var(--bg-panel);border:1px solid var(--line)}.fc-sug.none{color:var(--text-mute)}.fc-sug button{margin-left:6px;height:18px;padding:0 6px;border-radius:3px;border:1px solid var(--line);background:var(--bg-idle);color:var(--text-dim);font-size:9px;cursor:pointer}.fc-sug-note{margin-top:3px;font-size:8.5px;color:var(--text-mute);line-height:1.45}.fc-blocked{font-size:9.5px;color:var(--text-amber)}.fc-err{font-size:9.5px;color:#e8433f}.panel-empty.sm{padding:14px;font-size:10px}.gantt-float-tail{pointer-events:none}.sc-table tr.sc-onrow td{background:var(--bg-row-sel);box-shadow:inset 2px 0 0 var(--sel)}.qt-panel{display:flex;flex-direction:column;height:100%;min-height:0;flex:1}.qt-table-wrap{flex:1;min-height:0;overflow:auto}.qt-table{width:100%;border-collapse:collapse;font-size:11px}.qt-table thead th{position:sticky;top:0;z-index:2;background:var(--bg-head, var(--bg-panel));color:var(--text-dim);font-weight:600;font-size:10px;text-align:left;white-space:nowrap;padding:5px 8px;border-bottom:1px solid var(--line)}.qt-table td{padding:3px 8px;border-bottom:1px solid var(--line-soft);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:220px}.qt-table th.num,.qt-table td.num{text-align:right;font-variant-numeric:tabular-nums}.qt-table td code{font-size:10px;color:var(--text-dim)}.qt-row{cursor:pointer}.qt-row:hover td{background:var(--bg-row-sel)}.qt-none{color:var(--text-dim);font-style:normal;opacity:.7}.qt-costbar{display:flex;flex-wrap:wrap;gap:10px;padding:5px 8px;border-bottom:1px solid var(--line-soft)}.qt-costkey{display:inline-flex;align-items:center;gap:4px;font-size:10.5px}.qt-unit{color:var(--text-dim);font-size:9.5px}.qt-basis{padding:4px 8px;border-top:1px solid var(--line-soft);color:var(--text-dim);font-size:9.5px;line-height:1.5}.qt-table-wrap.stale{opacity:.45;pointer-events:none}.vp-render-menu{left:50%;top:44px;transform:translate(-50%);z-index:9;width:236px;padding:6px;border-radius:8px;border:1px solid var(--line);background:var(--bg-head);box-shadow:0 8px 24px #00000047;text-align:left}.vp-preset{display:block;width:100%;padding:5px 7px;margin-bottom:2px;border:1px solid transparent;border-radius:6px;background:transparent;color:var(--text);text-align:left;cursor:pointer}.vp-preset:hover{background:var(--bg-hover, rgba(127, 127, 127, .14))}.vp-preset.on{border-color:var(--sel);background:var(--bg-active)}.vp-preset b{display:block;font-size:11.5px;font-weight:600}.vp-preset em{display:block;font-style:normal;font-size:9.5px;color:var(--text-mute)}.vp-render-styles{display:flex;gap:3px;padding:2px 4px 0}.vp-render-styles button{flex:1;height:22px;border:1px solid var(--line);border-radius:5px;background:transparent;color:var(--text-dim);font-size:10px;cursor:pointer}.vp-render-styles button.on{border-color:var(--sel);background:var(--bg-active);color:var(--text)}.sc-matrix-wrap{overflow:auto}.sc-matrix{width:max-content;min-width:100%}.sc-matrix th.sc-mx-head{position:sticky;left:0;z-index:2;background:var(--bg-bar);text-align:left;white-space:nowrap;border-right:1px solid var(--line);font-weight:600}.sc-matrix thead th.sc-mx-head{z-index:3}.sc-matrix th.sc-mx-head i{color:var(--text-mute);font-style:normal;font-size:9px}.sc-matrix .sc-mx-year{text-align:center;background:var(--bg-bar)}.sc-matrix td,.sc-matrix thead tr:nth-child(2) th{text-align:right;padding:2px 8px}.sc-matrix tbody tr.sc-mx-cum td{color:var(--text-sel)}.sc-matrix tbody tr.sc-actual td{color:var(--sel)}.sc-matrix .sc-oncol{background:var(--bg-row-sel)}.sc-matrix th.sc-nowcol{box-shadow:inset 0 -2px 0 var(--added)}.sc-toggle-sm{display:inline-flex;vertical-align:middle;margin-right:6px}.sc-toggle-sm button{font-size:9.5px;padding:1px 7px}.sc-mx-bar{position:sticky;top:0;left:0;z-index:4;display:flex;align-items:center;gap:6px;padding:3px 6px;background:var(--bg-panel);border-bottom:1px solid var(--line-soft)}.sc-mx-bar .imp-reload{font-size:9.5px;padding:1px 7px}.sc-matrix thead th{top:26px}.keyplan-card{flex:0 0 auto;padding:5px 6px;background:var(--bg-head);border-bottom:1px solid var(--line)}.keyplan-card.floating{position:absolute;left:50%;top:44px;transform:translate(-50%);z-index:9;border:1px solid var(--line);border-radius:8px;box-shadow:0 8px 24px #00000047}.draw-stage>.keyplan-card.floating{left:8px;top:8px;transform:none}.keyplan svg{display:block}.keyplan-box{fill:var(--bg-viewport);stroke:var(--text-mute);stroke-width:1}.keyplan-cut{stroke:var(--removed, #ff3b30);stroke-width:1.4;stroke-dasharray:6 3 1.5 3}.keyplan-eye{fill:var(--removed, #ff3b30)}.keyplan-foot{padding-top:3px;font-size:9.5px;color:var(--text-dim)}.keyplan-foot b{color:var(--text)}.keyplan-foot em{display:block;font-style:normal;color:var(--text-mute)}.keyplan-note{width:168px;font-size:9.5px;line-height:1.5;color:var(--text-mute)}.xer-panel{display:flex;flex-direction:column;height:100%;overflow:auto;padding:8px;gap:8px;font-size:11px;color:var(--text)}.xer-form{display:flex;flex-direction:column;gap:6px;padding:8px;background:var(--bg-idle);border:1px solid var(--line-soft);border-radius:4px}.xer-drop{padding:14px 10px;text-align:center;border:1px dashed var(--line);border-radius:4px;background:var(--bg-input);color:var(--text-dim);cursor:pointer}.xer-drop:hover,.xer-drop.over{border-color:var(--line-sel);background:var(--bg-sel-soft)}.xer-drop.has{border-style:solid;border-color:var(--line-ok);background:var(--bg-ok-soft)}.xer-drop b{color:var(--text)}.xer-row{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.xer-lab{color:var(--text-head);white-space:nowrap}.xer-in{flex:1 1 120px;min-width:90px;padding:3px 5px;font-size:11px;color:var(--text);background:var(--bg-input);border:1px solid var(--line);border-radius:3px}.xer-in.xer-code{flex:0 0 92px}.xer-in.xer-when{flex:0 0 128px}.xer-in::placeholder{color:var(--text-mute)}.xer-radio{display:flex;align-items:center;gap:4px;cursor:pointer}.xer-actions{justify-content:flex-start;margin-top:2px}.xer-go{padding:4px 14px;font-size:11px;font-weight:600;color:var(--text-root);background:var(--bg-active);border:1px solid var(--line-sel);border-radius:3px;cursor:pointer}.xer-go:disabled{opacity:.45;cursor:default}.xer-dim{color:var(--text-dim)}.xer-res{padding:6px 8px;border:1px solid var(--line-soft);border-radius:4px;line-height:1.6}.xer-res.ok{background:var(--bg-ok-soft);border-color:var(--line-ok)}.xer-res.bad{background:var(--bg-danger-soft);color:var(--text-danger)}.xer-warn{margin-top:4px;padding:4px 6px;background:var(--bg-warn-soft);border:1px solid var(--line-warn);border-radius:3px;color:var(--text-amber)}.xer-warn code{color:var(--text-id)}.xer-panel{position:relative}.xer-panel.is-busy{overflow:hidden}.xer-busy{position:absolute;inset:0;z-index:6;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:7px;padding:12px;text-align:center;background:color-mix(in srgb,var(--bg-panel) 92%,transparent);cursor:progress}.xer-busy .spinner{width:18px;height:18px;border-width:2px;margin:0}.xer-busy b{font-size:12px}.xer-busy .xer-busy-sub{color:var(--text-dim);max-width:260px;line-height:1.5}.xer-link{margin-left:6px;padding:0;font-size:11px;color:var(--text-sel);background:none;border:0;text-decoration:underline;cursor:pointer}.xer-log{margin:6px 0 0;padding:6px;max-height:220px;overflow:auto;font-size:10px;line-height:1.5;white-space:pre-wrap;color:var(--text-dim);background:var(--bg-app);border:1px solid var(--line-soft);border-radius:3px}.xer-tree-head{display:flex;align-items:center;padding-top:2px;color:var(--text-head);border-top:1px solid var(--line-soft)}.xer-empty{padding:10px;color:var(--text-mute)}.xer-empty.sub{padding:4px 4px 4px 22px}.xer-tree{display:flex;flex-direction:column}.xer-node{display:flex;align-items:center;gap:6px;width:100%;padding:3px 4px;font-size:11px;text-align:left;color:var(--text);background:none;border:0;border-radius:3px;cursor:pointer}.xer-node:hover{background:var(--bg-hover)}.xer-node.current{color:var(--text-sel)}.xer-node.sub{padding-left:18px}.xer-caret{width:10px;color:var(--text-faint)}.xer-nm{color:var(--text-dim)}.xer-no{color:var(--text-id);font-variant-numeric:tabular-nums}.xer-fn{flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.xer-badge{padding:0 4px;font-size:9px;color:var(--text-mint);background:var(--bg-ok-strong);border-radius:2px}.xer-det{display:grid;grid-template-columns:max-content 1fr;gap:2px 10px;margin:2px 4px 6px 28px;padding:6px 8px;background:var(--bg-row-alt);border:1px solid var(--line-soft);border-radius:3px}.xer-det dt{color:var(--text-dim);white-space:nowrap}.xer-det dd{margin:0;font-variant-numeric:tabular-nums}.xer-path{word-break:break-all;color:var(--text-mute)}.xer-tables{display:flex;flex-wrap:wrap;gap:3px}.xer-tb{padding:0 4px;font-size:9.5px;color:var(--text-dim);background:var(--bg-chip);border-radius:2px}.xer-tb.unread{color:var(--text-amber);background:var(--bg-warn-soft)}.pv-revs{padding:6px 9px 8px 23px;background:var(--bg-row-alt);border-top:1px solid var(--line-soft)}.pv-dim{color:var(--text-mute);padding:4px 0}.pv-err{color:var(--text-danger);padding:4px 0}.pv-link{margin-left:8px;padding:0;font-size:11px;color:var(--text-sel);background:none;border:0;text-decoration:underline;cursor:pointer}.pv-revtbl,.pv-tbl{width:100%;border-collapse:collapse;font-size:10.5px}.pv-revtbl th,.pv-tbl th{position:sticky;top:0;padding:3px 5px;text-align:left;color:var(--text-head);background:var(--bg-head);border-bottom:1px solid var(--line)}.pv-revtbl td,.pv-tbl td{padding:2px 5px;border-bottom:1px solid var(--line-soft);vertical-align:top}.pv-revtbl tbody tr{cursor:pointer}.pv-revtbl tbody tr:hover{background:var(--bg-hover)}.pv-revtbl tbody tr.on{background:var(--bg-sel-soft);box-shadow:inset 2px 0 0 var(--line-sel)}.pv-no{color:var(--text-id);white-space:nowrap}.pv-n{text-align:right;font-variant-numeric:tabular-nums}.pv-fn{max-width:0;width:99%;overflow:hidden}.pv-fn-t{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pv-src{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;direction:rtl;text-align:left;font-size:9.5px;color:var(--text-dim)}.pv-src.gone,.pv-src.none{color:var(--text-mute);font-style:italic;direction:ltr}.pv-fn-acts{display:inline-flex;gap:3px;margin-top:2px}.pv-mini{padding:0 4px;min-width:18px;height:16px;font-size:10px;line-height:14px;text-align:center;text-decoration:none;color:var(--text-dim);background:var(--bg-chip);border:1px solid var(--line);border-radius:3px;cursor:pointer}.pv-mini:hover{color:var(--text);background:var(--bg-hover)}.pv-mini.local{border-style:dashed}.pv-mini.danger{color:var(--removed);border-color:var(--removed)}.pv-mini.danger:hover{background:color-mix(in srgb,var(--removed) 16%,transparent)}.pv-mini.danger:disabled{opacity:.5;cursor:default}.pv-changes{margin-top:6px}.pv-filters{display:flex;flex-wrap:wrap;gap:4px;align-items:center;padding-bottom:4px}.pv-chip{padding:1px 7px;font-size:10px;color:var(--text-dim);background:var(--bg-chip);border:1px solid transparent;border-radius:9px;cursor:pointer}.pv-chip.on{color:var(--text-sel);background:var(--bg-active);border-color:var(--line-sel)}.pv-fieldfilters{border-top:1px dashed var(--line);padding-top:4px;margin-top:2px}.pv-chip.small{padding:0 5px;font-size:9.5px}.pv-chip.off{color:var(--text-mute);text-decoration:line-through;border-color:var(--removed);opacity:.7}.pv-rangepick select{font-size:10px;padding:1px 3px;color:var(--text);background:var(--bg-input);border:1px solid var(--line);border-radius:3px}.pv-impact{color:var(--removed);font-size:9px;font-weight:600}.pv-actkind{margin-left:5px;padding:0 4px;font-size:8.5px;font-weight:700;border-radius:3px;vertical-align:middle}.pv-actkind.new,.pv-actkind.corrected{color:var(--text-mute);background:var(--bg-chip)}.pv-actkind.removed{color:var(--removed);background:color-mix(in srgb,var(--removed) 16%,transparent)}.pv-delta{font-size:9.5px;font-weight:600}.pv-delta.push{color:var(--removed)}.pv-delta.pull{color:var(--added)}.pv-search{margin-left:auto;width:140px;padding:2px 5px;font-size:10.5px;color:var(--text);background:var(--bg-input);border:1px solid var(--line);border-radius:3px}.pv-code{color:var(--text-id);white-space:nowrap;font-variant-numeric:tabular-nums}.pv-field{color:var(--text-head);white-space:nowrap}.pv-from{color:var(--text-mute)}.pv-to{color:var(--text)}.pv-to em{color:var(--text-faint);font-style:normal}.pv-dc{padding:0 4px;font-size:9.5px;border-radius:2px}.pv-dc.modified{color:var(--text-amber);background:var(--bg-warn-soft)}.pv-dc.added{color:var(--text-mint);background:var(--bg-ok-soft)}.pv-dc.removed{color:var(--text-danger);background:var(--bg-danger-soft)}.pv-dc.unchanged{color:var(--text-mute);background:var(--bg-chip)}.pv-pager{display:flex;gap:8px;align-items:center;padding-top:5px;color:var(--text-dim)}.pv-pager button{padding:1px 7px;font-size:10px;color:var(--text-dim);background:var(--bg-idle);border:1px solid var(--line);border-radius:3px;cursor:pointer}.pv-pager button:disabled{opacity:.4;cursor:default}.xer-peek{padding:5px 8px;line-height:1.6;background:var(--bg-sel-soft);border:1px solid var(--line-sel);border-radius:3px}.xer-peek code{color:var(--text-id)}.xer-node-row{display:flex;align-items:center;width:100%;border-radius:3px}.xer-node-row:hover{background:var(--bg-hover)}.xer-node-row.current .xer-node b{color:var(--text-sel)}.xer-caret-btn{flex:0 0 auto;width:18px;padding:3px 0;color:var(--text-faint);background:none;border:0;cursor:pointer}.xer-node-row .xer-node{flex:1 1 auto;min-width:0}.xer-node:disabled{cursor:default}.xer-del{flex:0 0 auto;padding:1px 6px;font-size:10px;color:var(--text-dim);background:none;border:1px solid transparent;border-radius:3px;cursor:pointer;opacity:.45}.xer-node-row:hover .xer-del{opacity:1}.xer-del:hover{color:var(--text-danger);border-color:var(--line-warn);background:var(--bg-danger-soft)}.xer-purge{margin:2px 4px 6px 18px;padding:6px 8px;line-height:1.6;background:var(--bg-danger-soft);border:1px solid var(--line-warn);border-radius:3px}.xer-purge code{color:var(--text-amber)}.xer-go.xer-danger{color:var(--text-danger);background:var(--bg-danger-strong);border-color:var(--line-warn)}.cstr-panel{display:flex;flex-direction:column;height:100%;min-height:0}.cstr-head{display:flex;justify-content:space-between;align-items:flex-start;gap:8px;padding:7px 10px 5px;flex-wrap:wrap}.cstr-stats{display:flex;gap:12px}.cstr-stat-label{font-size:9px;color:var(--text-mute)}.cstr-stat-value{font-size:16px;font-weight:700;color:var(--text);line-height:1.1}.cstr-stat-sub{font-size:8.5px;color:var(--text-mute)}.cstr-stat.hot .cstr-stat-value{color:#e8433f}.cstr-stat.warn .cstr-stat-value{color:#d08a2c}.cstr-stat.ok .cstr-stat-value{color:#5fb87a}.cstr-actions{display:flex;align-items:center;gap:7px;flex-wrap:wrap}.cstr-basis{font-size:9px;color:var(--text-mute)}.cstr-reload{height:21px;padding:0 8px;border:1px solid var(--line);border-radius:4px;background:var(--bg-idle);color:var(--text-dim);font-size:10px;cursor:pointer}.cstr-reload:hover{background:var(--bg-hover)}.cstr-note,.cstr-collateral,.cstr-unsupported{margin:0 10px 6px;padding:5px 8px;border-radius:4px;font-size:9.5px;line-height:1.5}.cstr-note{background:var(--bg-idle);border-left:3px solid var(--text-mute);color:var(--text-dim)}.cstr-collateral{background:#d08a2c1a;border-left:3px solid #d08a2c;color:var(--text-dim)}.cstr-unsupported{background:var(--bg-idle);border-left:3px solid #7a86a8;color:var(--text-mute)}.cstr-filters{display:flex;gap:4px;padding:0 10px 6px;flex-wrap:wrap}.cstr-chip{height:19px;padding:0 8px;border:1px solid var(--line);border-radius:9px;background:var(--bg-idle);color:var(--text-dim);font-size:9.5px;cursor:pointer}.cstr-chip.on{border-color:var(--sel);color:var(--text-sel);background:var(--bg-active);font-weight:700}.cstr-table{flex:1;overflow-y:auto;min-height:0}.cstr-row{display:grid;grid-template-columns:minmax(80px,1.1fr) minmax(90px,1.4fr) 56px 62px 44px 46px;align-items:center;gap:5px;padding:4px 10px;cursor:pointer;border-bottom:1px solid var(--line-soft);font-size:10px;color:var(--text-dim)}.cstr-row:hover{background:var(--bg-hover)}.cstr-row.sel{background:var(--bg-active);color:var(--text-sel)}.cstr-row.hard{border-left:3px solid #e8433f;padding-left:7px}.cstr-th{position:sticky;top:0;z-index:1;background:var(--bg-panel);color:var(--text-mute);font-size:9px;cursor:default}.cstr-th:hover{background:var(--bg-panel)}.cstr-row .c-num{text-align:right;font-variant-numeric:tabular-nums}.cstr-row .c-num.on{color:var(--text);font-weight:700}.cstr-row .c-num.dim{color:var(--text-mute)}.cstr-row .c-num.warn{color:#d08a2c;font-weight:700}.cstr-row .c-num.crit{color:#e8433f;font-weight:700}.cstr-row .c-code,.cstr-row .c-type{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.cstr-hard{color:#e8433f;margin-right:3px}.cstr-2nd,.cstr-na{display:inline-block;margin-left:4px;padding:0 4px;border-radius:3px;font-size:8.5px;font-style:normal;background:var(--bg-idle);color:var(--text-mute)}.cstr-foot{padding:5px 10px 7px;font-size:9px;color:var(--text-mute);line-height:1.5}.dt-cstr{display:grid;grid-template-columns:52px minmax(0,1fr) 100px;gap:5px;align-items:center;padding:2px 0}.dt-cstr.two{grid-template-columns:92px 108px minmax(0,1fr)}.dt-cstr.two .dt-note{margin:0;font-size:9px}.dt-cstr-slot{font-size:9.5px;color:var(--text-mute)}.dt-cstr-type,.dt-cstr-date{height:20px;border:1px solid var(--line);border-radius:3px;background:var(--bg-input, var(--bg-idle));color:var(--text);font-size:10px;padding:0 4px}.dt-cstr-type:disabled,.dt-cstr-date:disabled{opacity:.45;cursor:not-allowed}.dt-cstr-err,.dt-cstr-warn{margin-top:3px;padding:4px 7px;border-radius:4px;font-size:9.5px;line-height:1.5}.dt-cstr-err{background:#e8433f1f;border-left:3px solid #e8433f;color:var(--text)}.dt-cstr-warn{background:#d08a2c1a;border-left:3px solid #d08a2c;color:var(--text-dim)}.drag-panel{flex:1;min-width:0;display:flex;flex-direction:column;height:100%;min-height:0}.drag-wait{font-size:9px;color:var(--text-mute);margin-top:4px}.dg-head{display:flex;justify-content:space-between;align-items:flex-start;gap:8px;padding:7px 10px 6px;flex-wrap:wrap}.dg-stats{display:flex;gap:12px}.dg-stat-label{font-size:9px;color:var(--text-mute)}.dg-stat-value{font-size:16px;font-weight:700;color:var(--text);line-height:1.1}.dg-stat-sub{font-size:8.5px;color:var(--text-mute)}.dg-stat.hot .dg-stat-value{color:#e8433f}.dg-stat.ok .dg-stat-value{color:#5fb87a}.dg-actions{display:flex;align-items:center;gap:7px;flex-wrap:wrap}.dg-actions button{height:21px;padding:0 8px;border:1px solid var(--line);border-radius:4px;background:var(--bg-idle);color:var(--text-dim);font-size:10px;cursor:pointer}.dg-actions button:hover{background:var(--bg-hover)}.dg-actions button:disabled{opacity:.45;cursor:default}.dg-finish{font-size:9.5px;color:var(--text-mute);cursor:help}.dg-warn{margin:0 10px 6px;padding:5px 8px;border-radius:4px;font-size:9.5px;line-height:1.55;background:var(--bg-idle);border-left:3px solid #d08a2c;color:var(--text-dim)}.dg-table{flex:1;overflow-y:auto;min-height:0}.dg-row{display:grid;grid-template-columns:96px minmax(90px,1fr) 44px 74px;align-items:center;gap:5px;padding:4px 10px;cursor:pointer;border-bottom:1px solid var(--line-soft);font-size:10px;color:var(--text-dim)}.dg-table.wide .dg-row{grid-template-columns:110px minmax(90px,1fr) 44px 74px minmax(80px,.7fr)}.dg-table:not(.wide) .c-bar{display:none}.dg-row:hover{background:var(--bg-hover)}.dg-row.sel{background:var(--bg-active);color:var(--text-sel)}.dg-row.blocked{opacity:.6}.dg-row .c-code{font-family:Consolas,monospace;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.dg-row .c-name{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.dg-row .c-num{text-align:right}.dg-row .c-num.strong{color:#5fb87a;font-weight:700}.dg-row .c-num.dim{color:var(--text-mute);font-size:9px}.dg-row .c-bar{position:relative;height:11px;border-radius:2px;background:var(--bg-idle);display:flex;align-items:center}.dg-row .c-bar i{position:absolute;left:0;top:0;bottom:0;border-radius:2px;background:#5fb87a;opacity:.55}.dg-row .c-bar b{position:relative;margin-left:4px;font-size:8.5px;color:var(--text-dim);font-weight:600}.dg-th{position:sticky;top:0;z-index:1;background:var(--bg-panel);color:var(--text-mute);font-size:9px;cursor:default}.dg-th:hover{background:var(--bg-panel)}.dg-th .c-bar{background:none}.cal-panel{display:flex;flex-direction:column;height:100%;font-size:11.5px}.cal-head{display:flex;align-items:center;gap:8px;padding:6px 9px;border-bottom:1px solid var(--line);flex:0 0 auto}.cal-head .sp{flex:1}.cal-count b{color:var(--text-sel)}.cal-orphan{padding:0 6px;height:17px;line-height:16px;border:1px solid var(--line-warn);background:var(--bg-warn-soft);color:var(--modified);border-radius:9px;font-size:10px}.cal-ro{font-size:10px;color:var(--text-dim);border:1px dashed var(--line);border-radius:9px;padding:0 6px;line-height:15px}.cal-reload{font-size:10px;color:var(--text-head);border:1px solid var(--line);border-radius:4px;padding:1px 7px;background:var(--bg-idle)}.cal-reload:not(:disabled):hover{border-color:var(--sel);color:var(--text-sel)}.cal-list{flex:0 0 auto;max-height:34%;overflow:auto;border-bottom:1px solid var(--line)}.cal-row{display:flex;align-items:center;gap:8px;width:100%;padding:4px 9px;text-align:left;border-bottom:1px solid var(--line-soft)}.cal-row:hover{background:var(--bg-idle)}.cal-row.active{background:var(--bg-row-sel)}.cal-row.active .cal-name{color:var(--text-sel);font-weight:700}.cal-name{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cal-tag{margin-left:6px;font-style:normal;font-size:9px;padding:0 4px;border-radius:3px;border:1px solid var(--line);color:var(--text-dim)}.cal-tag.def{border-color:var(--sel);color:var(--text-sel)}.cal-meta{display:inline-flex;gap:8px;font-size:10px;color:var(--text-dim)}.cal-meta .cal-n{color:var(--text-head);min-width:46px;text-align:right}.cal-detail{flex:1;overflow:auto;padding:8px 9px 12px}.cal-detail-head{display:flex;align-items:center;gap:8px;margin-bottom:7px}.cal-src{font-size:9.5px;padding:0 6px;line-height:15px;border-radius:9px;border:1px solid var(--line-ok);background:var(--bg-ok-soft);color:var(--added)}.cal-src.mask{border-style:dashed;border-color:var(--line-warn);background:var(--bg-warn-soft);color:var(--modified)}.cal-week{display:flex;gap:4px;margin-bottom:9px}.cal-dow{width:26px;height:22px;line-height:21px;text-align:center;border:1px solid var(--line);border-radius:4px;color:var(--text-dim);background:transparent;font-size:10.5px}.cal-dow.on{background:var(--bg-active);border-color:var(--sel);color:var(--text-sel);font-weight:700}.cal-hours{border-collapse:collapse;font-size:11px;margin-bottom:10px}.cal-hours th,.cal-hours td{border:1px solid var(--line-soft);padding:2px 8px;text-align:left;white-space:nowrap}.cal-hours th{background:var(--bg-idle);color:var(--text-dim);font-weight:600}.cal-warn{font-style:normal;margin-left:6px;color:var(--modified);font-size:10px}.cal-exc-head{display:flex;align-items:center;gap:8px;color:var(--text-head);font-weight:700;margin-bottom:5px;padding-top:6px;border-top:1px solid var(--line)}.cal-exc-n{font-weight:400;font-size:10px;color:var(--text-dim)}.cal-exc-none{font-size:10.5px;color:var(--text-dim);line-height:1.5}.cal-exc{display:flex;flex-wrap:wrap;gap:3px}.cal-exc-item{font-size:9.5px;padding:0 5px;line-height:16px;border-radius:3px;border:1px solid var(--bg-danger-strong);background:var(--bg-danger-soft);color:var(--removed);font-family:Consolas,monospace}.cal-exc-item.workday{border-color:var(--line-ok);background:var(--bg-ok-soft);color:var(--added)}.auth-panel{display:flex;flex-direction:column;height:100%;overflow:auto;padding:8px;gap:8px;font-size:11px;color:var(--text)}.auth-lead{padding:7px 9px;line-height:1.6;color:var(--text-dim);background:var(--bg-idle);border-left:2px solid var(--line-sel);border-radius:0 4px 4px 0}.auth-lead b{color:var(--text)}.auth-step{border:1px solid var(--line-soft);border-radius:4px;background:var(--bg-idle)}.auth-step.locked{opacity:.55}.auth-step.done{border-color:var(--line-ok)}.auth-step-head{display:flex;align-items:center;gap:7px;padding:5px 9px;background:var(--bg-panel);border-bottom:1px solid var(--line-soft);border-radius:4px 4px 0 0;color:var(--text-head)}.auth-step-n{flex:0 0 auto;width:16px;height:16px;line-height:16px;text-align:center;border-radius:50%;font-size:9.5px;font-weight:700;background:var(--bg-active);color:var(--text-root)}.auth-step.done .auth-step-n{background:var(--line-ok)}.auth-step-hint{margin-left:auto;font-weight:400;font-size:10px;color:var(--text-dim)}.auth-locked{padding:9px;color:var(--text-mute)}.auth-body{display:flex;flex-direction:column;gap:6px;padding:8px 9px 9px}.auth-now{padding:5px 8px;border:1px solid var(--line-ok);background:var(--bg-ok-soft);border-radius:3px;line-height:1.5}.auth-sub{display:flex;align-items:center;gap:5px;color:var(--text-head);font-weight:700;margin-top:3px}.auth-row{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.auth-lab{color:var(--text-head);white-space:nowrap}.auth-dim{color:var(--text-dim);line-height:1.55}.auth-dim code,.auth-node-code{font-family:Consolas,monospace}.auth-in{flex:1 1 110px;min-width:80px;padding:3px 5px;font-size:11px;color:var(--text);background:var(--bg-input);border:1px solid var(--line);border-radius:3px}.auth-in::placeholder{color:var(--text-mute)}.auth-in.auth-code{flex:0 0 96px}.auth-in.auth-when{flex:0 0 132px}.auth-in.auth-num{flex:0 0 92px}.auth-actions{margin-top:3px}.auth-go,.auth-btn{padding:3px 12px;font-size:11px;border-radius:3px;cursor:pointer;border:1px solid var(--line);background:var(--bg-input);color:var(--text)}.auth-go{font-weight:600;border-color:var(--line-sel);background:var(--bg-active);color:var(--text-root)}.auth-go.primary{border-color:var(--line-ok);background:var(--bg-ok-soft);color:var(--added)}.auth-btn.danger{border-color:var(--bg-danger-strong);color:var(--removed)}.auth-go:disabled,.auth-btn:disabled{opacity:.42;cursor:default}.auth-q{display:inline-block;width:12px;height:12px;line-height:12px;text-align:center;border-radius:50%;font-size:9px;font-weight:700;cursor:help;background:var(--bg-panel);color:var(--text-dim);border:1px solid var(--line-soft)}.auth-week{display:flex;gap:3px}.auth-dow{width:22px;height:20px;font-size:10px;cursor:pointer;border-radius:3px;border:1px solid var(--line);background:var(--bg-input);color:var(--text-mute)}.auth-dow.on{background:var(--bg-active);color:var(--text-root);border-color:var(--line-sel);font-weight:700}.auth-tree{max-height:190px;overflow:auto;padding:3px;border:1px solid var(--line-soft);border-radius:3px;background:var(--bg-input)}.auth-node{display:flex;align-items:center;gap:7px;width:100%;padding:1px 5px;line-height:18px;font-size:11px;text-align:left;cursor:pointer;background:none;border:1px solid transparent;border-radius:2px;color:var(--text)}.auth-node:hover{background:var(--bg-sel-soft)}.auth-node:focus-visible{outline:1px solid var(--line-sel);outline-offset:-1px}.auth-node.sel{background:var(--bg-sel);border-color:var(--line-sel)}.auth-node.root{font-weight:700}.auth-node-code{flex:0 0 auto;color:var(--text-head)}.auth-node-name{flex:1 1 auto;color:var(--text-dim);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.auth-node-n{flex:0 0 auto;font-size:9.5px;color:var(--text-mute)}.auth-sheets{display:flex;gap:7px;flex-wrap:wrap}.auth-sheet{flex:1 1 260px;display:flex;flex-direction:column;gap:3px;min-width:220px}.auth-ta{min-height:118px;resize:vertical;padding:5px 6px;font-family:Consolas,monospace;font-size:10.5px;line-height:1.5;color:var(--text);background:var(--bg-input);border:1px solid var(--line);border-radius:3px;white-space:pre}.auth-ta::placeholder{color:var(--text-mute)}.auth-res{display:flex;flex-direction:column;gap:5px;padding:7px 8px;border:1px solid var(--line-soft);border-radius:4px}.auth-sum,.auth-ok{line-height:1.6}.auth-ok{padding:5px 8px;border:1px solid var(--line-ok);background:var(--bg-ok-soft);border-radius:3px}.auth-err{padding:4px 8px;line-height:1.55;border-radius:3px;border:1px solid var(--bg-danger-strong);background:var(--bg-danger-soft);color:var(--removed)}.auth-warn{color:var(--modified);line-height:1.55}.auth-note{padding:5px 8px;border-radius:3px;line-height:1.55;border:1px solid var(--line);background:var(--bg-idle)}.auth-note b{color:var(--text-head)}.auth-tablewrap{max-height:260px;overflow:auto}.auth-table{border-collapse:collapse;font-size:10.5px;width:100%}.auth-table th,.auth-table td{border:1px solid var(--line-soft);padding:2px 6px;text-align:left;white-space:nowrap}.auth-table th{position:sticky;top:0;background:var(--bg-panel);color:var(--text-dim);font-weight:600}.auth-table td.n{text-align:right;font-family:Consolas,monospace}.auth-table td.mono{font-family:Consolas,monospace}.auth-table tr.skip td{color:var(--text-mute);text-decoration:line-through}.auth-table tr.skip td.auth-why{text-decoration:none;color:var(--modified);white-space:normal}.auth-clone{display:flex;flex-direction:column;gap:6px;padding:8px 9px;margin-top:2px;border:1px solid var(--line-sel);border-radius:4px;background:var(--bg-panel)}.auth-clone .auth-sub{margin-top:0}.auth-x{margin-left:auto;width:18px;height:18px;line-height:16px;font-size:11px;cursor:pointer;border-radius:3px;border:1px solid var(--line);background:var(--bg-input);color:var(--text-dim)}.auth-x:hover{color:var(--text);border-color:var(--line-sel)}.auth-chk{display:flex;align-items:center;gap:4px;cursor:pointer;white-space:nowrap}.auth-drop{display:flex;align-items:center;gap:5px;padding:11px 10px;text-align:center;justify-content:center;border:1px dashed var(--line);border-radius:4px;background:var(--bg-input);color:var(--text-dim);cursor:pointer}.auth-drop:hover,.auth-drop.over{border-color:var(--line-sel);background:var(--bg-sel-soft)}.auth-drop.has{border-style:solid;border-color:var(--line-ok);background:var(--bg-ok-soft)}.auth-drop b{color:var(--text)}.auth-drop .auth-x{margin-left:4px}.auth-p6{font-size:9.5px;font-weight:400;padding:0 5px;line-height:15px;border-radius:3px;white-space:nowrap;border:1px solid var(--line-soft);background:var(--bg-input);color:var(--text-mute);font-family:Consolas,monospace}.auth-arrows{display:inline-flex;gap:1px}.auth-arrows .auth-btn{padding:3px 8px;border-radius:0}.auth-arrows .auth-btn:first-child{border-radius:3px 0 0 3px}.auth-arrows .auth-btn:last-child{border-radius:0 3px 3px 0}.auth-target{padding:4px 8px;border-radius:3px;line-height:1.5;border:1px solid var(--line-soft);background:var(--bg-idle);color:var(--text-dim)}.auth-target b{color:var(--text)}.auth-target.warn{border-color:var(--bg-danger-strong);background:var(--bg-danger-soft);color:var(--text)}.auth-target.warn b{color:var(--removed)}.panel-popover-grip{position:absolute;right:0;bottom:0;width:16px;height:16px;cursor:nwse-resize;touch-action:none;z-index:2}.panel-popover-grip:after{content:"";position:absolute;right:2px;bottom:2px;width:11px;height:11px;background:linear-gradient(135deg,transparent 45%,var(--line-sel) 45%,var(--line-sel) 55%,transparent 55%),linear-gradient(135deg,transparent 70%,var(--line-sel) 70%,var(--line-sel) 80%,transparent 80%);opacity:.55}.panel-popover-grip:hover:after{opacity:1}.auth-demo{display:flex;flex-direction:column;gap:6px;padding:9px 11px;border-radius:5px;border:1px solid var(--line-ok);background:var(--bg-ok-soft)}.auth-demo-head{display:flex;align-items:baseline;gap:9px;flex-wrap:wrap}.auth-demo-head b{color:var(--text);font-size:12px}.auth-gridwrap{resize:vertical;overflow:auto;height:190px;min-height:90px;border:1px solid var(--line);border-radius:3px;background:var(--bg-input)}.auth-grid{display:flex;flex-direction:column;font-size:11px;min-width:100%}.auth-grid-row{display:flex;align-items:stretch;border-bottom:1px solid var(--line-soft)}.auth-grid-row:last-child{border-bottom:0}.auth-grid-row.head{position:sticky;top:0;z-index:1;background:var(--bg-panel)}.auth-grid-row.head .auth-grid-c{color:var(--text-dim);font-weight:600;cursor:default}.auth-grid-row:hover:not(.head){background:var(--bg-sel-soft)}.auth-grid-row.sel{background:var(--bg-sel)}.auth-grid-row.root{font-weight:700}.auth-grid-n{flex:0 0 30px;text-align:right;padding:2px 6px 2px 0;line-height:18px;color:var(--text-mute);font-family:Consolas,monospace;font-size:9.5px;border-right:1px solid var(--line-soft);background:var(--bg-idle)}.auth-grid-c{padding:2px 6px;line-height:18px;color:var(--text);border-right:1px solid var(--line-soft);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;outline-offset:-2px;cursor:text}.auth-grid-c:last-child{border-right:0}.auth-grid-c.num{text-align:right;font-family:Consolas,monospace;color:var(--text-dim)}.auth-grid-c.ro{cursor:default}.auth-grid-c:focus-visible{outline:2px solid var(--line-sel)}.auth-grid-in{width:100%;padding:0 2px;font-size:11px;line-height:17px;color:var(--text);background:var(--bg-panel);border:1px solid var(--line-sel);border-radius:2px}.auth-body kbd{background:var(--bg-panel);border:1px solid var(--line);border-bottom-width:2px;border-radius:3px;padding:0 4px;font-size:9.5px;font-family:Consolas,monospace;color:var(--text-dim)}.auth-lead{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.auth-spacer{flex:1 1 auto}.auth-demo{gap:6px;margin:0;padding:0;border:0;background:none}.auth-inline-ok{color:var(--added);font-size:10.5px}.auth-inline-bad{color:var(--removed);font-size:10.5px}.auth-now.ok{border-color:var(--line-ok);background:var(--bg-ok-soft)}.auth-gridhint{display:flex;align-items:center;gap:5px}.wb-panel{display:flex;flex-direction:column;height:100%;min-height:0;min-width:0;font-size:11px;color:var(--text)}.wb-head,.wb-sheetbar{display:flex;align-items:center;gap:6px;flex-wrap:wrap;padding:4px 8px;background:var(--bg-panel);flex:0 0 auto}.wb-head{border-bottom:1px solid var(--line)}.wb-sheetbar{border-bottom:1px solid var(--line-soft);background:var(--bg-idle)}.wb-sheetbar>b{color:var(--text-head);font-size:11.5px}.wb-head>b{font-size:11.5px;color:var(--text-head)}.wb-sep{width:1px;height:14px;background:var(--line);margin:0 2px}.wb-spacer{flex:1 1 auto}.wb-lab{color:var(--text-dim);white-space:nowrap}.wb-dim{color:var(--text-dim)}.wb-in-f{padding:2px 5px;font-size:11px;color:var(--text);background:var(--bg-input);border:1px solid var(--line);border-radius:3px;min-width:108px}.wb-in-f.wb-code{min-width:84px}.wb-in-f.wb-when{min-width:122px}.wb-in-f.wb-unit{min-width:62px}.wb-btn{padding:2px 10px;font-size:11px;border-radius:3px;cursor:pointer;border:1px solid var(--line);background:var(--bg-input);color:var(--text)}.wb-btn.sm{padding:1px 8px;font-size:10.5px}.wb-btn.go{border-color:var(--line-sel);background:var(--bg-active);color:var(--text-root);font-weight:600}.wb-btn.primary{border-color:var(--line-ok);background:var(--bg-ok-soft);color:var(--added);font-weight:700}.wb-btn:disabled{opacity:.42;cursor:default}.wb-btn.wb-need{border-color:var(--line-warn, var(--modified));color:var(--modified);background:var(--bg-warn-soft, transparent);font-weight:600}.wb-q{display:inline-block;width:12px;height:12px;line-height:12px;text-align:center;border-radius:50%;font-size:9px;font-weight:700;cursor:help;background:var(--bg-input);color:var(--text-dim);border:1px solid var(--line-soft)}.wb-tabs{display:flex;align-items:center;gap:2px;flex:0 0 auto;min-width:0;overflow-x:auto;scrollbar-width:thin;padding:2px 6px;background:var(--bg-panel);border-top:1px solid var(--line)}.wb-tab{flex:0 0 auto}.wb-tab{display:flex;align-items:center;gap:4px;padding:2px 11px;font-size:11px;cursor:pointer;border:1px solid var(--line);border-top:0;border-radius:0 0 4px 4px;background:var(--bg-idle);color:var(--text-dim)}.wb-tab.on{background:var(--bg-input);color:var(--text);font-weight:700;border-color:var(--line-sel)}.wb-tab-n{font-size:9.5px;color:var(--text-mute);font-family:Consolas,monospace}.wb-total{font-size:10px}.wb-report{flex:0 0 auto;max-height:120px;overflow:auto;padding:4px 8px;border-top:1px solid var(--line);background:var(--bg-panel)}.wb-ok{color:var(--added);line-height:1.5}.wb-errs{color:var(--removed);line-height:1.45}.wb-errs ul{margin:2px 0 0 16px}.wb-errs li{margin:1px 0}.wb-warn{color:var(--modified);line-height:1.45}.wb-err{margin:3px 8px;padding:3px 7px;border-radius:3px;border:1px solid var(--bg-danger-strong);background:var(--bg-danger-soft);color:var(--removed)}.sg-wrap{flex:1 1 auto;min-height:100px;overflow:auto;background:var(--bg-input)}.sg{display:flex;flex-direction:column;width:max-content;min-width:100%}.sg-row{display:flex;align-items:stretch}.sg-head{position:sticky;top:0;z-index:2}.sg-head .sg-c{background:var(--bg-panel);color:var(--text-dim);font-weight:600;cursor:default;position:relative}.sg-row:not(.sg-head):hover .sg-c{background:var(--bg-sel-soft)}.sg-blank .sg-c{color:var(--text-mute)}.sg-n{position:sticky;left:0;z-index:1;flex:0 0 38px;text-align:right;padding:1px 5px 1px 0;line-height:17px;color:var(--text-mute);font-family:Consolas,monospace;font-size:9.5px;background:var(--bg-idle);border-right:1px solid var(--line);border-bottom:1px solid var(--line-soft)}.sg-c{flex:0 0 auto;padding:1px 5px;line-height:17px;font-size:11px;border-right:1px solid var(--line-soft);border-bottom:1px solid var(--line-soft);background:var(--bg-input);cursor:cell;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;outline-offset:-2px}.sg-c.cur{outline:2px solid var(--line-sel);outline-offset:-2px;z-index:1}.sg-c:focus-visible{outline:2px solid var(--line-sel)}.sg-c.pasted{background:var(--bg-ok-soft)}.sg-in{width:100%;padding:0 2px;font-size:11px;line-height:16px;color:var(--text);background:var(--bg-panel);border:1px solid var(--line-sel);border-radius:2px}.sg-grip{position:absolute;right:-3px;top:0;width:7px;height:100%;cursor:col-resize}.sg-grip:hover{background:var(--line-sel)}.sg-empty{padding:14px;color:var(--text-mute)}.dlg-back{position:fixed;inset:0;z-index:300;display:flex;align-items:center;justify-content:center;background:#0000006b}.dlg{min-width:300px;max-width:min(520px,calc(100vw - 32px));max-height:calc(100vh - 64px);overflow:auto;padding:14px 16px 12px;background:var(--bg-panel);color:var(--text);border:1px solid var(--line);border-radius:8px;box-shadow:0 12px 40px #00000073;font-size:12px}.dlg.danger{border-color:var(--removed)}.dlg-title{display:flex;align-items:center;gap:6px;font-size:13px;font-weight:700;margin-bottom:8px}.dlg.danger .dlg-title{color:var(--removed)}.dlg-warn{font-size:14px}.dlg-msg{color:var(--text-dim);line-height:1.55;white-space:pre-line}.dlg-rows{margin:9px 0 2px;border-collapse:collapse}.dlg-rows th{padding:2px 14px 2px 0;text-align:left;font-weight:400;color:var(--text-dim)}.dlg-rows td{padding:2px 0;text-align:right;font-weight:700;font-variant-numeric:tabular-nums}.dlg-detail{margin-top:8px;color:var(--text-mute);font-size:11px;line-height:1.5}.dlg-input{width:100%;height:26px;margin-top:10px;padding:0 8px;background:var(--bg-input);color:var(--text);border:1px solid var(--line);border-radius:4px;font-size:12px}.dlg-act{display:flex;justify-content:flex-end;gap:6px;margin-top:14px}.dlg-btn{height:26px;padding:0 13px;background:var(--bg-idle);color:var(--text);border:1px solid var(--line);border-radius:4px;font-size:12px;cursor:pointer}.dlg-btn:hover{background:var(--bg-hover)}.dlg-btn.primary{border-color:var(--line-sel);background:var(--bg-sel-soft);color:var(--text-sel)}.dlg-btn.primary.danger{border-color:var(--removed);color:var(--removed);background:color-mix(in srgb,var(--removed) 14%,transparent)}.dlg-btn:focus-visible{outline:2px solid var(--sel);outline-offset:1px}.ws-palette-head{display:flex;align-items:center;gap:7px;margin:-2px -2px 6px;padding:5px 6px 6px;border-bottom:1px solid var(--line);cursor:move;-webkit-user-select:none;user-select:none}.ws-palette-headt{font-size:11.5px;font-weight:700;color:var(--text)}.ws-palette-headn{font-size:9.5px;color:var(--text-mute);font-variant-numeric:tabular-nums}.ws-palette-close{margin-left:auto;width:18px;height:18px;padding:0;border:0;border-radius:4px;background:none;color:var(--text-faint);font-size:11px;line-height:1;cursor:pointer}.ws-palette-close:hover{background:var(--bg-hover);color:var(--text)}.ws-palette-group{margin-top:6px}.ws-palette-grouphead{display:flex;align-items:center;gap:6px;width:100%;height:22px;padding:0 5px;background:var(--bg-head);color:var(--text-head);border:0;border-radius:4px;font-size:10.5px;font-weight:700;text-align:left;cursor:pointer}.ws-palette-grouphead:hover{background:var(--bg-hover)}.ws-palette-groupcaret{width:9px;color:var(--text-faint);font-weight:400}.ws-palette-grouphead .ws-facet-n{min-width:16px;padding:0 4px;border-radius:8px;background:var(--overlay-2);color:var(--text-dim);font-size:9px;line-height:14px;text-align:center}.ws-palette-groupwarn{margin-left:auto;padding:0 5px;border:1px solid color-mix(in srgb,var(--text-amber, #d08a2c) 45%,transparent);border-radius:3px;color:var(--text-amber, #d08a2c);font-size:9px;font-weight:400;font-style:normal;white-space:nowrap}.ws-palette-grouphead.off{opacity:.72}.splitter-v,.splitter-h{position:relative}.splitter-fold{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);z-index:2;display:flex;align-items:center;justify-content:center;gap:3px;padding:0;border:1px solid var(--line);border-radius:3px;background:var(--bg-panel);color:var(--text-faint);line-height:1;cursor:pointer;opacity:.35;transition:opacity .12s}.splitter-foldg{font-size:7.5px}.splitter-v .splitter-fold{width:13px;height:30px}.splitter-h .splitter-fold{width:30px;height:13px}.splitter-v:hover .splitter-fold,.splitter-h:hover .splitter-fold,.splitter-fold:hover,.splitter-fold:focus-visible{opacity:1}.splitter-fold:hover{border-color:var(--sel);color:var(--text-sel)}.splitter-fold:focus-visible{outline:2px solid var(--sel);outline-offset:1px}.splitter-fold.named{opacity:1;border-color:var(--sel);background:var(--bg-panel);color:var(--text-sel)}.splitter-h .splitter-fold.named{width:auto;height:15px;padding:0 8px}.splitter-v .splitter-fold.named{width:15px;height:auto;padding:8px 0}.splitter-foldl{font-size:9.5px;letter-spacing:.2px;white-space:nowrap}.splitter-v .splitter-fold.named{flex-direction:column}.splitter-v .splitter-foldl{writing-mode:vertical-rl}.wb-ask{display:flex;align-items:center;gap:7px;flex-wrap:wrap;margin-top:4px;padding:4px 8px;border-radius:3px;border:1px solid var(--modified);background:#ffb45414}.wb-ask>b{color:var(--modified)}.wb-skip{margin-top:4px}.wb-skip summary{cursor:pointer;color:var(--text-dim);font-size:10.5px}.wb-tablewrap{max-height:180px;overflow:auto;margin-top:3px}.wb-table{width:100%;border-collapse:collapse;font-size:10.5px}.wb-table th,.wb-table td{border:1px solid var(--line-soft);padding:1px 6px;text-align:left;white-space:nowrap}.wb-table th{position:sticky;top:0;background:var(--bg-panel);color:var(--text-dim)}.wb-table td.n{text-align:right;font-family:Consolas,monospace}.wb-table td.mono{font-family:Consolas,monospace}.sg-c.rng{background:var(--bg-sel)}.wb-btn.over{border-color:var(--line-ok);background:var(--bg-ok-soft)}.wb-sel{background:var(--bg-2);color:var(--fg);border:1px solid var(--line);border-radius:4px;font-size:11px;padding:3px 4px}.im{flex:1;min-height:0;display:flex;flex-direction:column;border:1px solid var(--line);border-radius:4px;background:var(--bg-1)}.im-head{display:flex;align-items:center;gap:8px;padding:6px 8px;border-bottom:1px solid var(--line);background:var(--bg-2);flex:0 0 auto}.im-head b{font-size:12px}.im-sp{flex:1}.im-dim{color:var(--fg-dim);font-size:11px}.im-tag{font-size:10px;padding:1px 6px;border-radius:10px;border:1px solid var(--ok, #33d6a6);color:var(--ok, #33d6a6)}.im-guess{font-size:10px;padding:1px 6px;border-radius:10px;border:1px solid var(--line);color:var(--fg-dim)}.im-warn{flex:0 0 auto;padding:5px 9px;font-size:11px;border-bottom:1px solid var(--line);background:#ffb4541a;color:var(--warn, #ffb454)}.im-body{flex:1;min-height:0;overflow:auto;padding:8px}.im-sheet{border:1px solid var(--line);border-radius:4px;margin-bottom:8px;background:var(--bg-2)}.im-sheet.off{opacity:.55}.im-srow{display:flex;align-items:center;gap:8px;padding:5px 8px;border-bottom:1px solid var(--line)}.im-sname{font-size:12px}.im-cols{display:grid;gap:6px;padding:8px;grid-template-columns:repeat(auto-fill,minmax(210px,1fr))}.im-col{border:1px solid var(--line);border-radius:3px;padding:5px 6px;background:var(--bg-1);display:flex;flex-direction:column;gap:3px}.im-clab{font-size:11px;color:var(--fg);font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.im-samp{font-size:10px;color:var(--fg-dim);font-family:Consolas,monospace;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-height:13px}.im-col .wb-sel{width:100%}.wba{flex:1;min-height:0;display:flex;flex-direction:column;border:1px solid var(--line);border-radius:4px;background:var(--bg-1)}.wba-head{display:flex;align-items:center;gap:8px;padding:6px 8px;border-bottom:1px solid var(--line);background:var(--bg-2);flex:0 0 auto}.wba-head b{font-size:12px}.wba-sum{flex:0 0 auto;display:flex;align-items:baseline;gap:6px;flex-wrap:wrap;padding:6px 9px;border-bottom:1px solid var(--line);background:var(--bg-2)}.wba-sum.warn{background:#ffb4541a}.wba-big{font-size:17px;font-weight:700;color:var(--text-head, var(--fg));font-family:Consolas,monospace}.wba-path{font-family:Consolas,monospace;font-size:11px;color:var(--fg-dim);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:46%}.wba-note{flex:1 0 100%;font-size:10.5px;color:var(--warn, #ffb454)}.wba-body{flex:1;min-height:0;overflow:auto;padding:8px}.wba-tools{display:flex;align-items:center;gap:6px;margin-bottom:6px;font-size:11px}.wba-plain{font-size:11.5px;line-height:1.7;color:var(--fg)}.wba-plain code{font-family:Consolas,monospace;color:var(--fg-dim)}.wba-table{width:100%;border-collapse:collapse;font-size:11px}.wba-table th,.wba-table td{border:1px solid var(--line-soft, var(--line));padding:2px 6px;text-align:left}.wba-table th{background:var(--bg-2);color:var(--fg-dim);font-weight:600}.wba-table td.n{text-align:right;font-family:Consolas,monospace}.wba-table td.c{text-align:center}.wba-table td.mono{font-family:Consolas,monospace}.wba-table td.dim{color:var(--fg-dim)}.wba-table td.n.thin{color:var(--warn, #ffb454)}.wba-table tr.off td{opacity:.45}.wba-mv{background:none;border:1px solid var(--line);border-radius:3px;color:var(--fg-dim);cursor:pointer;font-size:9px;line-height:1;padding:2px 3px}.wba-mv:disabled{opacity:.3;cursor:default}.sg-fill{position:absolute;right:0;bottom:0;width:8px;height:8px;background:var(--accent, #4f8cff);border:1px solid var(--bg-1);cursor:crosshair;z-index:3}.sg-c{position:relative}.sg-c.fillto{outline:1px dashed var(--accent, #4f8cff);outline-offset:-1px}.sg-n{cursor:cell;-webkit-user-select:none;user-select:none}.sg-n.on{background:var(--accent, #4f8cff);color:#fff}.sg-row.sg-head .sg-c{cursor:cell}.sg-row{-webkit-user-select:none;user-select:none}.sg-find{display:flex;align-items:center;gap:6px;padding:4px 6px;border-bottom:1px solid var(--line);background:var(--bg-2);font-size:11px}.sg-find input{background:var(--bg-1);color:var(--fg);border:1px solid var(--line);border-radius:3px;padding:2px 6px;font-size:11px;width:130px}.wb-target{font-size:11px;color:var(--fg-dim);padding:1px 7px;border:1px solid var(--accent, #4f8cff);border-radius:10px}.wb-target b{color:var(--accent, #4f8cff)}.wb-in.sm{font-size:11px;padding:2px 5px}.grid-row.adder-row{cursor:pointer;color:var(--text-mute)}.grid-row.adder-row:hover{background:var(--bg-hover);color:var(--text-sel)}.adder-label{flex:1;min-width:0;padding-left:6px;font-size:10px}.wbs-panel{width:100%;height:100%;min-height:0;display:flex;flex-direction:column;font-size:11px}.wbs-head{flex:0 0 auto;display:flex;align-items:center;gap:6px;padding:6px 8px;border-bottom:1px solid var(--line)}.wbs-count{color:var(--text-dim);font-size:10.5px}.wbs-count b{color:var(--text);margin:0 2px}.wbs-sp{flex:1 1 auto}.wbs-head button,.wbs-foot button{height:22px;padding:0 8px;border:1px solid var(--line);border-radius:4px;background:var(--bg-panel);color:var(--text);font-size:10.5px;cursor:pointer}.wbs-head button:disabled,.wbs-foot button:disabled{opacity:.45;cursor:default}.wbs-note,.wbs-err{flex:0 0 auto;padding:5px 9px;font-size:9.5px;border-bottom:1px solid var(--line-soft);color:var(--text-dim)}.wbs-err{color:var(--removed);background:color-mix(in srgb,var(--removed) 10%,transparent)}.wbs-tree{flex:1 1 auto;min-height:0;overflow:auto;outline:none}.wbs-row{display:flex;align-items:center;gap:7px;padding:3px 8px 3px 0;border-bottom:1px solid var(--line-soft);white-space:nowrap;cursor:pointer}.wbs-row:hover{background:var(--bg-sel-soft)}.wbs-row.on{background:var(--bg-sel-soft);box-shadow:inset 2px 0 0 var(--sel)}.wbs-row:focus-visible{outline:1px solid var(--sel);outline-offset:-1px}.wbs-row.root .wbs-code{color:var(--text);font-weight:700}.wbs-code{flex:0 0 auto;max-width:46%;font-family:Consolas,monospace;color:var(--text-id);overflow:hidden;text-overflow:ellipsis}.wbs-name{flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;color:var(--text-dim)}.wbs-n{flex:0 0 auto;min-width:20px;text-align:right;color:var(--text-mute);font-size:9.5px}.wbs-tag{flex:0 0 auto;color:var(--removed);font-size:9px}.wbs-addrow{display:flex;align-items:center;gap:5px;padding:3px 8px 3px 0;background:var(--bg-sel-soft)}.wbs-in{height:20px;background:var(--bg-input);border:1px solid var(--line);border-radius:3px;color:var(--text);font-size:10.5px;padding:0 5px;min-width:0}.wbs-in-code{flex:0 0 34%;font-family:Consolas,monospace}.wbs-in-name{flex:1 1 auto}.wbs-mini{height:20px;padding:0 7px;border:1px solid var(--line);border-radius:3px;background:var(--bg-panel);color:var(--text);font-size:10px;cursor:pointer}.wbs-clone{flex:0 0 auto;border-top:1px solid var(--line);padding:7px 8px;display:flex;flex-direction:column;gap:5px;background:var(--bg-panel)}.wbs-clone-title{display:flex;align-items:center;gap:6px;font-size:10.5px;color:var(--text-dim)}.wbs-clone-title b{color:var(--text);font-family:Consolas,monospace}.wbs-ta{background:var(--bg-input);border:1px solid var(--line);border-radius:3px;color:var(--text);font-size:10.5px;padding:4px 5px;resize:vertical;font-family:Consolas,monospace}.wbs-clone-rule{display:flex;align-items:center;gap:5px;color:var(--text-mute);font-size:10px}.wbs-clone-rule input{flex:1 1 0;height:20px;min-width:0;background:var(--bg-input);border:1px solid var(--line);border-radius:3px;color:var(--text);font-size:10px;padding:0 5px}.wbs-clone-opts{display:flex;gap:10px;font-size:10px;color:var(--text-dim)}.wbs-clone-opts label{display:flex;align-items:center;gap:3px;cursor:pointer}.wbs-clone-prev{font-size:10px;color:var(--text-dim)}.wbs-clone-cta{display:flex;gap:6px}.wbs-clone-cta button{height:22px;padding:0 9px;border:1px solid var(--line);border-radius:4px;background:var(--bg-panel);color:var(--text);font-size:10.5px;cursor:pointer}.wbs-clone-cta button:disabled{opacity:.45;cursor:default}.wbs-foot{flex:0 0 auto;display:flex;align-items:center;gap:4px;padding:6px 8px;border-top:1px solid var(--line)}.wbs-path{flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--text-mute);font-size:9.5px;font-family:Consolas,monospace}.wbs-del-armed{color:var(--removed)!important;border-color:var(--removed)!important}:root{background:#f5f7fa}body{margin:0}.report-page{--ink:#152235;--muted:#64748b;--line:#dce3ec;--panel:#fff;--blue:#2563eb;min-height:100vh;background:#f5f7fa;color:var(--ink);font-family:Pretendard,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;display:flex}.report-page *{box-sizing:border-box}.report-nav{width:264px;min-height:100vh;padding:26px 18px;background:#101a29;color:#dce7f6;position:fixed;inset:0 auto 0 0;display:flex;flex-direction:column;z-index:20}.report-brand{display:flex;align-items:center;gap:10px;padding:0 6px 22px;border-bottom:1px solid #2b394c}.report-brand>span{width:32px;height:32px;border-radius:9px;display:grid;place-items:center;background:linear-gradient(135deg,#2563eb,#8b5cf6);color:#fff;font-size:12px;font-weight:800}.report-brand strong{display:block;font-size:15px}.report-brand small{display:block;color:#8fa2b9;font-size:11px;margin-top:2px}.report-nav>p{margin:18px 6px 14px;font-size:12px;color:#8fa2b9}.report-nav nav{display:grid;gap:4px}.report-nav button{border:0;background:transparent;color:#b9c7d8;font:600 14px/1.2 inherit;text-align:left;border-radius:8px;padding:11px 10px;cursor:pointer}.report-nav button:hover,.report-nav button.active{background:#1d3150;color:#fff}.report-nav button i{display:inline-block;width:31px;font-size:11px;color:#7790ae;font-style:normal}.report-nav footer{margin-top:auto;padding:16px 6px 0;border-top:1px solid #2b394c;color:#7f94ad;font-size:11px;line-height:1.7}.report-main{width:calc(100% - 264px);margin-left:264px;min-width:0}.report-wrap{max-width:1120px;padding:44px 48px 88px;margin:0 auto}.report-hero{background:linear-gradient(135deg,#152c56,#263b7a 52%,#5832a0);border-radius:22px;color:#f8fbff;padding:48px;box-shadow:0 18px 44px #1e3a8a22}.report-hero>p,.report-eyebrow{margin:0 0 10px;color:#a9c9ff;font-size:12px;font-weight:800;letter-spacing:.06em}.report-eyebrow{color:#4f7fe3}.report-hero h1{margin:0;font-size:clamp(34px,5vw,56px);line-height:1.1;letter-spacing:-.055em}.report-hero em{color:#b8d3ff;font-style:normal}.report-hero>div{max-width:680px;margin-top:21px;color:#d3e0f5;font-size:16px;line-height:1.75;word-break:keep-all}.report-hero aside{max-width:700px;display:flex;gap:14px;margin-top:29px;padding:15px 17px;border-radius:12px;background:#ffffff14;border:1px solid #ffffff2b;font-size:13px;line-height:1.6}.report-hero aside b{white-space:nowrap}.report-hero aside span{color:#d9e7ff}.report-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:18px 0 76px}.report-stats article{min-width:0;padding:18px;background:var(--panel);border:1px solid var(--line);border-radius:14px}.report-stats strong{display:block;color:#173f98;font-size:29px;line-height:1.1;letter-spacing:-.04em}.report-stats article>b{display:block;margin-top:8px;font-size:13px}.report-stats small{display:block;min-height:2.8em;margin-top:4px;color:var(--muted);font-size:11px;line-height:1.4}.report-section{scroll-margin-top:28px;margin:0 0 82px}.report-section h2{margin:0;color:#17253a;font-size:32px;line-height:1.22;letter-spacing:-.045em}.report-intro{max-width:760px;margin:18px 0 24px;color:#45566d;font-size:15px;line-height:1.8;word-break:keep-all}.report-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.report-cards article{padding:24px;background:var(--panel);border:1px solid var(--line);border-radius:14px}.report-cards span{color:var(--blue);font-size:12px;font-weight:800}.report-cards h3,.report-steps h3{margin:12px 0 7px;font-size:17px}.report-cards p,.report-steps p{margin:0;color:#56667a;font-size:13px;line-height:1.7;word-break:keep-all}.report-table{overflow-x:auto;background:var(--panel);border:1px solid var(--line);border-radius:14px}.report-table table{width:100%;min-width:630px;border-collapse:collapse;text-align:left}.report-table th{padding:13px 17px;background:#f1f5f9;color:#53647a;font-size:12px}.report-table td{padding:16px 17px;border-top:1px solid #e7ecf2;color:#405168;font-size:13px;line-height:1.55}.report-table td:first-child{width:112px;font-weight:750;color:#18263b}.report-table td:last-child{width:130px}.report-table td b{display:inline-block;padding:3px 8px;border-radius:99px;background:#e7f8ef;color:#147447;font-size:11px}.report-callout{display:flex;gap:16px;margin-top:15px;padding:16px 18px;background:#edf4ff;border-left:4px solid var(--blue);border-radius:0 12px 12px 0;font-size:13px;line-height:1.65}.report-callout b{min-width:50px;color:#1d4ed8}.report-callout span{color:#4b5c71}.report-steps{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));list-style:none;padding:0;margin:24px 0 0;border-top:1px solid var(--line)}.report-steps li{display:flex;gap:16px;padding:22px 10px;border-bottom:1px solid var(--line)}.report-steps li:nth-child(odd){border-right:1px solid var(--line);padding-right:24px}.report-steps li:nth-child(2n){padding-left:24px}.report-steps li>b{flex:0 0 auto;color:#2563eb;font-size:12px;padding-top:3px}.report-steps h3{margin-top:0}.report-footer{padding-top:22px;border-top:1px solid var(--line);color:#7a899b;font-size:12px}.report-mobilebar,.report-scrim{display:none}@media(max-width:900px){.report-page{display:block}.report-mobilebar{position:sticky;top:0;z-index:15;height:54px;display:flex;align-items:center;gap:14px;padding:0 16px;background:#101a29;color:#fff}.report-mobilebar button{border:1px solid #3e5068;background:#1c2b40;color:#fff;border-radius:7px;padding:7px 9px;font:600 12px inherit}.report-mobilebar strong{font-size:13px}.report-nav{transform:translate(-100%);transition:transform .2s ease;width:280px}.report-nav.open{transform:none;box-shadow:12px 0 34px #0005}.report-scrim{display:block;position:fixed;inset:54px 0 0;z-index:18;width:100%;border:0;background:#07101dcc}.report-main{width:100%;margin:0}.report-wrap{padding:24px 18px 60px}.report-hero{padding:28px 23px;border-radius:17px}.report-hero aside{display:block}.report-hero aside span{display:block;margin-top:5px}.report-stats{grid-template-columns:repeat(2,minmax(0,1fr));margin-bottom:56px}.report-cards{grid-template-columns:1fr}.report-section{margin-bottom:58px}.report-section h2{font-size:27px}.report-steps{grid-template-columns:1fr}.report-steps li:nth-child(odd),.report-steps li:nth-child(2n){border-right:0;padding-left:4px;padding-right:4px}}@media(max-width:480px){.report-wrap{padding:17px 13px 48px}.report-hero{padding:24px 19px}.report-hero>div{font-size:14px}.report-stats article{padding:15px}.report-stats strong{font-size:25px}.report-section h2{font-size:24px}}@media print{.report-page{display:block;background:#fff}.report-nav,.report-mobilebar{display:none!important}.report-main{width:100%;margin:0}.report-wrap{max-width:none;padding:0}.report-hero{box-shadow:none}.report-section,.report-cards article,.report-stats article,.report-table{break-inside:avoid;page-break-inside:avoid}}
