@font-face{font-family:Manrope;font-style:normal;font-display:swap;font-weight:400;src:url(./manrope-latin-400-normal-PaqtzbVb.woff2) format("woff2"),url(./manrope-latin-400-normal-8tf8FM3T.woff) format("woff")}@font-face{font-family:Manrope;font-style:normal;font-display:swap;font-weight:500;src:url(./manrope-latin-500-normal-BYYD-dBL.woff2) format("woff2"),url(./manrope-latin-500-normal-DMZssgOp.woff) format("woff")}@font-face{font-family:Manrope;font-style:normal;font-display:swap;font-weight:600;src:url(./manrope-latin-600-normal-4f0koTD-.woff2) format("woff2"),url(./manrope-latin-600-normal-BqgrALkZ.woff) format("woff")}@font-face{font-family:Manrope;font-style:normal;font-display:swap;font-weight:700;src:url(./manrope-latin-700-normal-BZp_XxE4.woff2) format("woff2"),url(./manrope-latin-700-normal-DGRFkw-m.woff) format("woff")}@font-face{font-family:Manrope;font-style:normal;font-display:swap;font-weight:800;src:url(./manrope-latin-800-normal-BfWYOv1c.woff2) format("woff2"),url(./manrope-latin-800-normal-uHUdIJgA.woff) format("woff")}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:400;src:url(./jetbrains-mono-latin-400-normal-V6pRDFza.woff2) format("woff2"),url(./jetbrains-mono-latin-400-normal-6-qcROiO.woff) format("woff")}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:500;src:url(./jetbrains-mono-latin-500-normal-BWZEU5yA.woff2) format("woff2"),url(./jetbrains-mono-latin-500-normal-CJOVTJB7.woff) format("woff")}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:600;src:url(./jetbrains-mono-latin-600-normal-C8RAYTDA.woff2) format("woff2"),url(./jetbrains-mono-latin-600-normal-BfsvjouI.woff) format("woff")}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:700;src:url(./jetbrains-mono-latin-700-normal-BYuf6tUa.woff2) format("woff2"),url(./jetbrains-mono-latin-700-normal-D3wTyLJW.woff) format("woff")}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:800;src:url(./jetbrains-mono-latin-800-normal-D2mQHRMK.woff2) format("woff2"),url(./jetbrains-mono-latin-800-normal-Dj9qwObk.woff) format("woff")}:root{--navy: #0B2A4A;--navy-2: #143961;--navy-3: #1E4A78;--blue: #2E5F94;--sky: #5FA8D3;--sky-soft: #B6D4E8;--silver: #B8C5D1;--silver-soft: #D9E1E8;--paper: #F5F1E8;--paper-2: #ECE6D6;--ink: #0E1B2C;--ink-2: #3B4A5E;--ink-3: #6B7A8E;--line: #D4DCE4;--line-2: #E8EDF2;--orange: #E8A33D;--orange-deep: #C97F1A;--red: #C8553D;--green: #4F8A5A;--bg: #FAF7EF;--row-h: 38px}*{box-sizing:border-box}html,body{margin:0;padding:0;height:100%}body{font-family:Manrope,system-ui,sans-serif;background:var(--bg);color:var(--ink);font-size:14px;-webkit-font-smoothing:antialiased}.mono{font-family:JetBrains Mono,monospace}.app{display:grid;grid-template-rows:auto auto 1fr auto;height:100vh;min-height:720px}.topbar{background:var(--navy);color:#fff;padding:10px 20px;display:flex;align-items:center;gap:18px;border-bottom:2px solid var(--orange)}.crest{width:44px;height:44px;border-radius:50%;background:#fff;display:grid;place-items:center;flex-shrink:0;box-shadow:0 0 0 2px var(--orange),0 1px 3px #00000040;overflow:hidden}.crest img{width:100%;height:100%;object-fit:cover;display:block}.brand{display:flex;flex-direction:column;line-height:1.1}.brand .l1{font-weight:800;font-size:15px;letter-spacing:.3px}.brand .l2{font-size:11px;opacity:.7;font-family:JetBrains Mono,monospace;text-transform:uppercase;letter-spacing:1px;margin-top:2px}.topbar .sep{width:1px;height:28px;background:#ffffff26}.proj-meta{display:flex;flex-direction:column;line-height:1.2;min-width:0}.proj-meta .pn{font-weight:700;font-size:14px;outline:none;border-radius:2px;padding:1px 3px;margin-left:-3px}.proj-meta .pn:hover{background:#ffffff0f}.proj-meta .pn:focus{background:#ffffff1f;box-shadow:inset 0 0 0 1px var(--orange)}.proj-meta .ps{font-size:11px;opacity:.65;font-family:JetBrains Mono,monospace;text-transform:uppercase;letter-spacing:.8px;display:flex;gap:6px;align-items:center;margin-top:2px}.proj-meta .ps .ed{outline:none;border-radius:2px;padding:0 3px;cursor:text}.proj-meta .ps .ed:hover{background:#ffffff0f}.proj-meta .ps .ed:focus{background:#ffffff1f;box-shadow:inset 0 0 0 1px var(--orange);opacity:1}.topbar .grow{flex:1}.pill{background:#ffffff14;border:1px solid rgba(255,255,255,.15);padding:5px 10px;border-radius:4px;font-size:11px;font-family:JetBrains Mono,monospace;text-transform:uppercase;letter-spacing:.8px;color:#fff;cursor:pointer}.pill:hover{background:#ffffff24}.pill.primary{background:var(--orange);color:var(--navy);border-color:var(--orange);font-weight:700}.pill.primary:hover{background:#f0b558}.toolbar{background:#fff;padding:10px 20px;display:flex;align-items:center;gap:12px;border-bottom:1px solid var(--line);flex-wrap:wrap}.tb-group{display:flex;align-items:center;gap:6px}.tb-label{font-size:10px;text-transform:uppercase;letter-spacing:1px;color:var(--ink-3);font-weight:600;font-family:JetBrains Mono,monospace}.seg{display:flex;background:var(--paper);border:1px solid var(--line);border-radius:4px;padding:2px}.seg button{border:0;background:transparent;padding:5px 12px;font:inherit;font-size:12px;color:var(--ink-2);cursor:pointer;border-radius:3px}.seg button.on{background:var(--navy);color:#fff;font-weight:600}.btn{background:#fff;border:1px solid var(--line);padding:6px 12px;border-radius:4px;font:inherit;font-size:12px;color:var(--ink);cursor:pointer;display:inline-flex;align-items:center;gap:6px}.btn:hover{border-color:var(--blue);color:var(--blue)}.btn.primary{background:var(--navy);color:#fff;border-color:var(--navy);font-weight:600}.btn.primary:hover{background:var(--navy-2);color:#fff}.btn .ic{font-family:JetBrains Mono,monospace;font-weight:700}.tb-search{border:1px solid var(--line);background:#fff;border-radius:4px;padding:6px 10px 6px 28px;font:inherit;font-size:12px;width:180px;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'><circle cx='5' cy='5' r='3.5' fill='none' stroke='%236B7A8E' stroke-width='1.2'/><path d='M7.5 7.5L10 10' stroke='%236B7A8E' stroke-width='1.2' fill='none' stroke-linecap='round'/></svg>");background-repeat:no-repeat;background-position:9px center}.tb-search:focus{outline:2px solid var(--sky);outline-offset:-1px;border-color:var(--sky)}.tb-spacer{flex:1}.legend{display:flex;gap:12px;align-items:center}.legend-item{display:flex;align-items:center;gap:5px;font-size:11px;color:var(--ink-2);font-family:JetBrains Mono,monospace;text-transform:uppercase;letter-spacing:.5px}.legend-sw{width:12px;height:12px;border-radius:2px}.main{display:grid;grid-template-columns:380px 1fr 320px;overflow:hidden;min-height:0}.tasks{background:#fff;border-right:1px solid var(--line);overflow:auto;min-height:0}.tasks-head{display:grid;grid-template-columns:24px 1fr 80px 70px;gap:0;padding:0 12px;height:68px;align-items:center;border-bottom:1px solid var(--line);background:var(--paper);position:sticky;top:0;z-index:3;font-family:JetBrains Mono,monospace;font-size:10px;text-transform:uppercase;letter-spacing:1px;color:var(--ink-3);font-weight:600}.phase-row{background:var(--navy);color:#fff;padding:7px 12px;font-family:JetBrains Mono,monospace;font-size:10px;text-transform:uppercase;letter-spacing:1.5px;font-weight:700;height:var(--row-h);display:flex;align-items:center;gap:8px;border-bottom:1px solid var(--line);cursor:pointer;-webkit-user-select:none;user-select:none}.phase-row .ph-tag{background:var(--orange);color:var(--navy);padding:2px 6px;border-radius:2px;font-size:9px;letter-spacing:1px}.phase-row .ph-tag-inp{background:var(--orange);color:var(--navy);padding:2px 6px;border-radius:2px;font-size:9px;letter-spacing:1px;border:1px solid transparent;font-family:JetBrains Mono,monospace;font-weight:700;text-transform:uppercase;width:78px;flex-shrink:0;outline:none}.phase-row .ph-tag-inp:hover{box-shadow:inset 0 0 0 1px #0b2a4a59}.phase-row .ph-tag-inp:focus{background:#fff;box-shadow:inset 0 0 0 2px var(--navy)}.phase-row .ph-name-inp{background:transparent;color:#fff;border:1px solid transparent;border-radius:2px;padding:2px 6px;font:inherit;font-family:JetBrains Mono,monospace;font-size:10px;text-transform:uppercase;letter-spacing:1.5px;font-weight:700;flex:1;min-width:0;outline:none}.phase-row .ph-name-inp:hover{background:#ffffff14}.phase-row .ph-name-inp:focus{background:#ffffff26;box-shadow:inset 0 0 0 1px var(--orange)}.phase-row .ph-name-inp::placeholder{color:#fff6}.phase-row .chev{margin-left:auto;transition:transform .15s;opacity:.6}.phase-row.collapsed .chev{transform:rotate(-90deg)}.phase-row .ph-del{background:transparent;border:0;color:#ffffff80;cursor:pointer;font-size:16px;padding:0 8px;border-radius:3px;margin-left:auto}.phase-row .ph-del:hover:not(:disabled){background:#c8553d40;color:#fff}.phase-row .ph-del:disabled{opacity:.25;cursor:not-allowed}.phase-row .ph-del+.chev{margin-left:0}.phase-row{cursor:grab}.phase-row:active{cursor:grabbing}.phase-row .ph-drag-grip{color:#ffffff73;font-size:13px;letter-spacing:-2px;-webkit-user-select:none;user-select:none;padding:0 2px 0 0;margin-right:4px}.phase-row:hover .ph-drag-grip{color:#fffc}.phase-row.ph-dragging{opacity:.4}.phase-row.ph-drop-target{box-shadow:inset 0 3px 0 0 var(--orange)}.phase-row.ph-drop-after{box-shadow:inset 0 -3px 0 0 var(--orange)}.task-row{display:grid;grid-template-columns:24px 1fr 80px 70px;align-items:center;height:var(--row-h);padding:0 12px;border-bottom:1px solid var(--line-2);cursor:pointer;gap:8px}.task-row:hover{background:var(--paper)}.task-row.sel{background:#5fa8d338;box-shadow:inset 2px 0 0 var(--sky)}.task-row{cursor:grab}.task-row:active{cursor:grabbing}.task-row.tk-dragging{opacity:.4}.task-row.tk-drop-target{box-shadow:inset 0 3px 0 0 var(--orange)}.task-row.sel.tk-drop-target{box-shadow:inset 2px 0 0 var(--sky),inset 0 3px 0 0 var(--orange)}.task-row.tk-drop-after{box-shadow:inset 0 -3px 0 0 var(--orange)}.task-row.sel.tk-drop-after{box-shadow:inset 2px 0 0 var(--sky),inset 0 -3px 0 0 var(--orange)}.task-row.milestone{background:#e8a33d0d}.task-dot{width:8px;height:8px;border-radius:50%;background:var(--silver)}.task-dot.diamond{width:9px;height:9px;border-radius:0;transform:rotate(45deg);background:var(--orange)}.task-name{font-size:13px;color:var(--ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:500}.task-row.milestone .task-name{font-weight:600}.task-meta-due{font-size:11px;color:var(--ink-3);font-family:JetBrains Mono,monospace;text-align:right}.task-assignees{text-align:right;font-family:JetBrains Mono,monospace;font-size:11px;color:var(--ink-2);letter-spacing:.3px}.gantt-wrap{overflow:auto;background:#fff;position:relative;min-height:0}.gantt{position:relative;min-width:100%}.gantt-head{position:sticky;top:0;z-index:4;background:var(--paper);border-bottom:1px solid var(--line);height:48px}.gantt-head-row1,.gantt-head-row2{position:relative;height:24px;display:flex}.gantt-head-row1{border-bottom:1px solid var(--line)}.month-cell{border-right:1px solid var(--line);padding:4px 8px;font-family:JetBrains Mono,monospace;font-size:10px;text-transform:uppercase;letter-spacing:1px;color:var(--ink-2);font-weight:700;display:flex;align-items:center;overflow:hidden}.month-cell.sem-fall{background:#2e5f940f}.month-cell.sem-spring{background:#5fa8d314}.week-cell{border-right:1px solid var(--line-2);padding:4px 0;text-align:center;font-family:JetBrains Mono,monospace;font-size:10px;color:var(--ink-3);flex-shrink:0}.week-cell.week-start{border-right-color:var(--line)}.gantt-body{position:relative}.gantt-row{height:var(--row-h);border-bottom:1px solid var(--line-2);position:relative}.gantt-row.phase{height:var(--row-h);background:#0b2a4a0a;border-bottom:1px solid var(--line)}.gantt-grid{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none}.grid-line{position:absolute;top:0;bottom:0;width:1px;background:var(--line-2)}.grid-line.major{background:var(--line)}.grid-line.weekend{background:#0b2a4a06;width:14px}.today-line{position:absolute;top:0;bottom:0;width:2px;background:var(--orange);z-index:5;pointer-events:none}.today-line:before{content:"TODAY";position:absolute;top:-20px;left:50%;transform:translate(-50%);background:var(--orange);color:var(--navy);font-family:JetBrains Mono,monospace;font-size:9px;font-weight:700;padding:2px 6px;border-radius:2px;letter-spacing:1px;white-space:nowrap}.bar{position:absolute;top:7px;height:24px;background:var(--blue);border-radius:3px;display:flex;align-items:center;padding:0 8px;color:#fff;font-size:11px;font-weight:600;overflow:hidden;cursor:grab;box-shadow:0 1px 2px #0b2a4a33,inset 0 -1px #00000026;-webkit-user-select:none;user-select:none;transition:box-shadow .12s}.bar:hover{box-shadow:0 2px 6px #0b2a4a4d,inset 0 -1px #00000026}.bar.sel{outline:2px solid var(--orange);outline-offset:1px}.bar.anchor{outline:2px dashed var(--orange-deep);outline-offset:2px;box-shadow:0 0 0 3px #e8a33d2e}.milestone-mark.anchor{outline:2px dashed var(--orange-deep);outline-offset:3px}.task-row.anchor{background:#e8a33d0f;box-shadow:inset 2px 0 #e8a33d8c}.task-row.sel.anchor{background:#5fa8d338;box-shadow:inset 2px 0 0 var(--sky)}.btn.link-active{animation:linkPulse 1.5s infinite}.btn.link-pending{background:#e8a33d26;border-color:var(--orange-deep);color:var(--orange-deep)}@keyframes linkPulse{0%,to{box-shadow:0 0 #e8a33d80}50%{box-shadow:0 0 0 6px #e8a33d00}}.bar.dragging{cursor:grabbing;opacity:.85}.bar .progress{position:absolute;left:0;top:0;bottom:0;background:#0000002e;border-right:1px solid rgba(255,255,255,.3)}.bar .label{position:relative;z-index:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-shadow:0 1px 1px rgba(0,0,0,.2)}.bar .handle{position:absolute;top:0;bottom:0;width:min(8px,30%);cursor:ew-resize;z-index:2}.bar .handle.l{left:0}.bar .handle.r{right:0}.bar .handle:hover{background:#fff3}.phase-bar{position:absolute;top:12px;height:14px;background:var(--navy);border-radius:0}.phase-bar:before,.phase-bar:after{content:"";position:absolute;top:0;width:0;height:0;border-style:solid}.phase-bar:before{left:0;border-width:0 0 14px 7px;border-color:transparent transparent var(--navy) transparent;margin-left:-7px}.phase-bar:after{right:0;border-width:14px 7px 0 0;border-color:var(--navy) transparent transparent transparent;margin-right:-7px}.milestone-mark{position:absolute;top:10px;width:18px;height:18px;background:var(--orange);transform:rotate(45deg) translate(-50%);transform-origin:left top;cursor:pointer;box-shadow:0 1px 2px #00000040;z-index:3}.milestone-mark.sel{outline:2px solid var(--navy);outline-offset:2px}.bom-marker{position:absolute;top:-3px;height:16px;transform:translate(-50%);z-index:5;cursor:pointer;display:inline-flex;align-items:center;gap:3px;padding:0 5px 0 4px;font-family:JetBrains Mono,monospace;font-size:9px;font-weight:800;color:#fff;border-radius:3px;box-shadow:0 1px 3px #00000059,0 0 0 1px #fff6;transition:transform .1s,box-shadow .1s;white-space:nowrap;letter-spacing:.3px;line-height:1;-webkit-user-select:none;user-select:none}.bom-marker .bm-dot{font-size:8px;line-height:1;transform:translateY(-.5px)}.bom-marker .bm-lbl{font-size:8.5px}.bom-marker:hover{transform:translate(-50%) translateY(-1px);z-index:7;box-shadow:0 3px 8px #0006,0 0 0 1px #fff9}.bom-marker:after{content:"";position:absolute;top:100%;left:50%;transform:translate(-50%);width:0;height:0;border-left:4px solid transparent;border-right:4px solid transparent;border-top:4px solid currentColor;color:inherit}.bom-marker.planned{background:#6b7a8e}.bom-marker.planned:after{color:#6b7a8e}.bom-marker.ufr{background:#c8553d}.bom-marker.ufr:after{color:#c8553d}.bom-marker.commit{background:#2e5f94}.bom-marker.commit:after{color:#2e5f94}.bom-marker.executed{background:#e8a33d;color:var(--navy)}.bom-marker.executed:after{color:#e8a33d}.bom-marker.received{background:#4f8a5a}.bom-marker.received:after{color:#4f8a5a}.bom-marker.late{outline:2px solid var(--red);outline-offset:1px}.milestone-label{position:absolute;top:13px;left:14px;font-size:11px;font-weight:700;color:var(--orange-deep);white-space:nowrap;font-family:JetBrains Mono,monospace;letter-spacing:.5px;text-transform:uppercase;z-index:3;pointer-events:none}.bar.locked{cursor:not-allowed;background-image:repeating-linear-gradient(135deg,transparent 0 6px,rgba(255,255,255,.1) 6px 7px)}.milestone-mark.locked{box-shadow:0 1px 2px #00000040,0 0 0 2px var(--navy) inset;cursor:not-allowed}.lock-glyph{display:inline-block;margin-right:4px;font-size:9px;filter:grayscale(.4) brightness(1.4);transform:translateY(-.5px)}.lock-toggle{margin-left:auto;background:var(--paper);border:1px solid var(--line);border-radius:3px;padding:3px 8px;font:inherit;font-size:10px;font-family:JetBrains Mono,monospace;font-weight:700;text-transform:uppercase;letter-spacing:1px;color:var(--ink-2);cursor:pointer;display:inline-flex;align-items:center;gap:5px;line-height:1}.lock-toggle:hover{border-color:var(--blue);color:var(--blue)}.lock-toggle[data-locked=true]{background:var(--navy);color:#fff;border-color:var(--navy)}.lock-toggle[data-locked=true]:hover{background:var(--navy-2);border-color:var(--navy-2);color:#fff}.lock-toggle .lk-ic{font-size:11px;filter:grayscale(.3)}.deps{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:2}.deps path{stroke:var(--ink-3);stroke-width:1.2;fill:none;marker-end:url(#arrow)}.details{background:#fff;border-left:1px solid var(--line);overflow:auto;min-height:0}.det-head{padding:14px 18px;border-bottom:1px solid var(--line);background:var(--paper);height:68px;display:flex;align-items:center;gap:10px}.det-head .lbl{font-family:JetBrains Mono,monospace;font-size:10px;text-transform:uppercase;letter-spacing:1.5px;color:var(--ink-3);font-weight:600}.det-head .id{margin-left:auto;font-family:JetBrains Mono,monospace;font-size:11px;color:var(--blue);font-weight:600}.det-body{padding:18px}.det-del-btn{border:1px solid var(--line);background:#fff;color:var(--ink-3);width:28px;height:28px;border-radius:4px;cursor:pointer;display:grid;place-items:center;font-size:16px;line-height:1;padding:0;transition:background .12s,color .12s,border-color .12s}.det-del-btn:hover{background:#b43232;color:#fff;border-color:#b43232}.det-title-wrap{margin-bottom:16px}.det-title{font-size:18px;font-weight:700;color:var(--ink);line-height:1.25;margin-bottom:4px}.det-title[contenteditable=true]{outline:none;cursor:text;border-radius:3px;padding:0 4px;margin-left:-4px;margin-right:-4px}.det-title[contenteditable=true]:hover{background:#0000000a}.det-title[contenteditable=true]:focus{background:#fff9;box-shadow:inset 0 0 0 2px var(--orange)}.det-inp{width:100%;border:none;background:transparent;padding:0;margin-top:2px;font-family:JetBrains Mono,monospace;font-size:13px;font-weight:600;color:var(--ink);cursor:text}.det-inp:focus{outline:2px solid var(--orange);outline-offset:2px;border-radius:2px}.det-inp:disabled{opacity:.55;cursor:not-allowed;background:transparent}.det-inp.num{font-variant-numeric:tabular-nums;width:56px;text-align:right}.det-phase{font-family:JetBrains Mono,monospace;font-size:10px;text-transform:uppercase;letter-spacing:1.2px;color:var(--blue);font-weight:600}.det-section{margin-top:18px}.det-section-label{font-family:JetBrains Mono,monospace;font-size:10px;text-transform:uppercase;letter-spacing:1.2px;color:var(--ink-3);font-weight:600;margin-bottom:6px}.det-dates{display:grid;grid-template-columns:1fr 1fr;gap:10px}.det-date{background:var(--paper);border:1px solid var(--line);border-radius:4px;padding:8px 10px}.det-date .lbl{font-size:10px;color:var(--ink-3);text-transform:uppercase;letter-spacing:1px;font-family:JetBrains Mono,monospace}.det-date .val{font-family:JetBrains Mono,monospace;font-size:13px;font-weight:600;color:var(--ink);margin-top:2px}.det-duration{font-family:JetBrains Mono,monospace;font-size:11px;color:var(--ink-3);margin-top:6px}.det-progress-wrap{background:var(--paper);border:1px solid var(--line);border-radius:4px;padding:10px 12px}.det-progress-bar{height:8px;background:var(--silver-soft);border-radius:2px;overflow:hidden;margin-top:8px}.det-progress-fill{height:100%;background:var(--blue)}.det-progress-fill.done{background:var(--green)}.det-progress-fill.risk{background:var(--orange)}.det-progress-label{display:flex;justify-content:space-between;font-family:JetBrains Mono,monospace;font-size:11px;color:var(--ink-2)}.det-progress-label .pct{font-weight:700;color:var(--ink)}.det-team{display:flex;flex-wrap:wrap;gap:6px}.chip{display:inline-flex;align-items:center;gap:6px;background:var(--paper);border:1px solid var(--line);border-radius:14px;padding:3px 6px 3px 10px;font-size:12px;color:var(--ink)}.chip .chip-x{margin-left:2px;width:16px;height:16px;border-radius:50%;display:grid;place-items:center;border:0;background:transparent;color:var(--ink-3);cursor:pointer;font-size:14px;line-height:1;padding:0;transition:background .12s,color .12s}.chip .chip-x:hover{background:#b432321f;color:#b43232}.chip.chip-add{border-style:dashed;color:var(--ink-3);cursor:pointer;background:transparent}.chip.chip-add:hover{border-color:var(--ink-3);color:var(--ink)}.assignee-picker{position:relative;display:inline-block}.assignee-pop{position:absolute;top:calc(100% + 4px);left:0;z-index:20;min-width:200px;background:var(--paper);border:1px solid var(--line);border-radius:4px;box-shadow:0 6px 18px #0000001f;padding:4px;display:flex;flex-direction:column}.assignee-pop button{display:flex;align-items:center;gap:8px;width:100%;text-align:left;border:0;background:transparent;padding:6px 8px;font-size:12px;color:var(--ink);cursor:pointer;border-radius:3px;font-family:inherit}.assignee-pop button:hover{background:var(--bg)}.assignee-pop .role{margin-left:auto;font-size:10px;color:var(--ink-3);font-family:JetBrains Mono,monospace}.assignee-pop .empty{padding:8px;font-size:11px;color:var(--ink-3);text-align:center}.team-mgr-wrap{position:relative}.team-mgr-trigger{cursor:pointer;display:flex;padding:2px;border-radius:18px;transition:background .12s}.team-mgr-trigger:hover{background:#ffffff14}.team-mgr-trigger[data-open=true]{background:#ffffff1f}.team-mgr-pop{position:absolute;top:calc(100% + 8px);right:0;z-index:200;width:360px;background:var(--paper);border:1px solid var(--line);border-radius:6px;box-shadow:0 12px 32px #00000040;color:var(--ink);padding:12px;font-family:Manrope,system-ui,sans-serif}.team-mgr-pop .hdr{display:flex;justify-content:space-between;align-items:center;font-size:10px;text-transform:uppercase;letter-spacing:1px;color:var(--ink-3);margin-bottom:8px;font-family:JetBrains Mono,monospace;font-weight:600}.team-mgr-pop .hdr .close{cursor:pointer;border:0;background:transparent;color:var(--ink-3);font-size:16px;padding:0 4px;line-height:1}.team-mgr-pop .hdr .close:hover{color:var(--ink)}.team-mgr-list{display:flex;flex-direction:column;gap:4px;max-height:280px;overflow-y:auto;margin-bottom:10px}.team-mgr-row{display:flex;align-items:center;gap:8px;padding:6px;border-radius:4px;border:1px solid var(--line);background:#fff;position:relative}.team-mgr-row .info{flex:1;min-width:0;display:flex;flex-direction:column;gap:1px}.team-mgr-row .info .name,.team-mgr-row .info .role{outline:none;border-radius:2px;padding:1px 3px;margin:0 -3px}.team-mgr-row .info .name{font-size:13px;font-weight:600;color:var(--ink)}.team-mgr-row .info .role{font-size:10px;color:var(--ink-3);font-family:JetBrains Mono,monospace;text-transform:uppercase;letter-spacing:.5px}.team-mgr-row .info .name:hover,.team-mgr-row .info .role:hover{background:var(--paper)}.team-mgr-row .info .name:focus,.team-mgr-row .info .role:focus{background:#fff;box-shadow:inset 0 0 0 1px var(--blue)}.team-mgr-row .x{width:24px;height:24px;border:0;background:transparent;cursor:pointer;color:var(--ink-3);border-radius:4px;font-size:14px;display:grid;place-items:center;flex-shrink:0}.team-mgr-row .x:hover{background:#b432321f;color:#b43232}.team-mgr-row .x:disabled{opacity:.25;cursor:not-allowed}.team-mgr-row .x:disabled:hover{background:transparent;color:var(--ink-3)}.team-mgr-add{border-top:1px solid var(--line);padding-top:10px;display:flex;flex-direction:column;gap:6px}.team-mgr-add .add-label{font-size:10px;text-transform:uppercase;letter-spacing:1px;color:var(--ink-3);font-family:JetBrains Mono,monospace;font-weight:600}.team-mgr-add .row{display:flex;gap:6px;align-items:center}.team-mgr-add input[type=text]{border:1px solid var(--line);background:#fff;border-radius:3px;padding:6px 8px;font-size:12px;font-family:inherit;color:var(--ink);flex:1;min-width:0;outline:none}.team-mgr-add input[type=text]:focus{border-color:var(--blue)}.team-mgr-add input.id-in{flex:0 0 54px;text-transform:uppercase;font-family:JetBrains Mono,monospace;text-align:center;letter-spacing:1px;font-weight:700}.team-mgr-add button.add-btn{background:var(--navy);color:#fff;border:0;border-radius:3px;padding:7px 12px;font-size:11px;font-family:JetBrains Mono,monospace;cursor:pointer;text-transform:uppercase;letter-spacing:.8px;font-weight:600}.team-mgr-add button.add-btn:hover:not(:disabled){background:var(--navy-2)}.team-mgr-add button.add-btn:disabled{opacity:.4;cursor:not-allowed}.team-mgr-add .err{font-size:10px;color:#b43232;font-family:JetBrains Mono,monospace}.det-deps{display:flex;flex-direction:column;gap:4px}.dep-row{display:flex;align-items:center;gap:8px;font-size:12px;padding:6px 8px;border:1px solid var(--line);border-radius:3px;background:var(--paper)}.dep-row .id{font-family:JetBrains Mono,monospace;font-weight:600;color:var(--blue);font-size:11px}.dep-row .arrow{color:var(--ink-3);font-family:JetBrains Mono,monospace}.risk-flag{display:inline-flex;align-items:center;gap:6px;padding:4px 8px;border-radius:3px;font-size:11px;font-family:JetBrains Mono,monospace;font-weight:600;text-transform:uppercase;letter-spacing:.8px}.risk-flag.high{background:#c8553d1f;color:var(--red)}.risk-flag.med{background:#e8a33d26;color:var(--orange-deep)}.risk-flag.low{background:#4f8a5a1f;color:var(--green)}.statusbar{background:var(--navy);color:#fff;padding:14px 20px;display:flex;align-items:stretch;gap:0;border-top:2px solid var(--orange)}.kpi{display:flex;flex-direction:column;padding:0 22px;border-right:1px solid rgba(255,255,255,.08);min-width:0;justify-content:center}.kpi:first-child{padding-left:0}.kpi:last-of-type{border-right:0}.kpi-label{font-family:JetBrains Mono,monospace;font-size:10px;text-transform:uppercase;letter-spacing:1.4px;color:#ffffff8c;font-weight:600;margin-bottom:4px;white-space:nowrap}.kpi-val{font-family:JetBrains Mono,monospace;font-size:30px;font-weight:700;color:#fff;line-height:1;letter-spacing:-.5px;white-space:nowrap}.kpi-val.sky{color:var(--sky)}.kpi-val.warn{color:var(--orange)}.kpi-val.danger{color:#ff8b73}.kpi-val.good{color:#7bd49a}.kpi-sub{font-family:JetBrains Mono,monospace;font-size:10px;color:#ffffff80;margin-top:5px;letter-spacing:.5px}.kpi-bar{height:4px;background:#ffffff1f;border-radius:2px;overflow:hidden;margin-top:6px;width:100%}.kpi-bar-fill{height:100%;background:var(--sky)}.kpi-grow{flex:1}.acad-day{display:inline-flex;align-items:center;background:var(--orange);color:var(--navy);padding:3px 8px;border-radius:3px;font-family:JetBrains Mono,monospace;font-weight:800;font-size:13px;letter-spacing:.5px;margin-right:8px}.gantt-head{height:68px}.gantt-head-row-mt{position:relative;height:20px;display:flex;background:#0b2a4a0a;border-bottom:1px solid var(--line)}.mt-cell{flex-shrink:0;text-align:center;font-family:JetBrains Mono,monospace;font-size:9px;font-weight:700;color:var(--ink-3);border-right:1px solid var(--line-2);padding:4px 0 0;line-height:1;overflow:hidden}.mt-cell.m{background:#2e5f941a;color:var(--navy)}.mt-cell.t{background:#5fa8d32e;color:var(--blue)}.mt-cell.brk{background:#0000000a;color:var(--ink-3);opacity:.4}.mt-cell.we{background:#00000006;color:transparent}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0b1b2c8c;display:grid;place-items:center;z-index:100;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}.modal{background:#fff;width:min(1200px,92vw);max-height:86vh;border-radius:6px;display:flex;flex-direction:column;box-shadow:0 30px 80px #0006;overflow:hidden}.modal-head{background:var(--navy);color:#fff;padding:16px 22px;display:flex;align-items:center;gap:14px;border-bottom:2px solid var(--orange)}.modal-head .title{font-weight:700;font-size:16px}.modal-head .sub{font-family:JetBrains Mono,monospace;font-size:11px;text-transform:uppercase;letter-spacing:1.2px;opacity:.6}.modal-head .grow{flex:1}.modal-head .x{cursor:pointer;font-size:22px;line-height:1;opacity:.7;padding:4px 10px}.modal-head .x:hover{opacity:1}.modal-body{overflow:auto;padding:0}.rvtm-table{width:100%;border-collapse:collapse;font-size:12px}.rvtm-table th{background:var(--paper);text-align:left;padding:10px 14px;font-family:JetBrains Mono,monospace;font-size:10px;text-transform:uppercase;letter-spacing:1px;color:var(--ink-3);border-bottom:1px solid var(--line);position:sticky;top:0}.rvtm-table td{padding:10px 14px;border-bottom:1px solid var(--line-2);vertical-align:top}.rvtm-table tr:hover td{background:var(--paper)}.rvtm-table .id{font-family:JetBrains Mono,monospace;font-weight:600;color:var(--blue);white-space:nowrap}.rvtm-table .req-text{max-width:360px;line-height:1.4}.rvtm-table .vm{display:inline-block;padding:2px 7px;border-radius:2px;font-family:JetBrains Mono,monospace;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.8px}.vm.T{background:#2e5f9426;color:var(--blue)}.vm.D{background:#5fa8d333;color:var(--blue)}.vm.A{background:#4f8a5a26;color:var(--green)}.vm.I{background:#b8c5d14d;color:var(--ink-2)}.rvtm-table .status-dot{display:inline-flex;align-items:center;gap:6px;font-family:JetBrains Mono,monospace;font-size:11px;font-weight:600}.rvtm-table .status-dot:before{content:"";width:8px;height:8px;border-radius:50%}.status-dot.pass:before{background:var(--green)}.status-dot.pass{color:var(--green)}.status-dot.prog:before{background:var(--blue)}.status-dot.prog{color:var(--blue)}.status-dot.open:before{background:var(--silver)}.status-dot.open{color:var(--ink-3)}.status-dot.fail:before{background:var(--red)}.status-dot.fail{color:var(--red)}.rvtm-table .link-chip,.bom-table .link-chip,.bom-detail .link-chip{display:inline-flex;align-items:center;background:var(--paper);border:1px solid var(--line);border-radius:3px;padding:2px 7px;margin:1px 2px 1px 0;font-family:JetBrains Mono,monospace;font-size:11px;font-weight:600;color:var(--ink-2);cursor:pointer}.rvtm-table .link-chip:hover,.bom-table .link-chip:hover,.bom-detail .link-chip:hover{border-color:var(--blue);color:var(--blue)}.rvtm-table .link-chip.dead,.bom-table .link-chip.dead,.bom-detail .link-chip.dead{text-decoration:line-through;color:var(--red);border-color:var(--red);opacity:.8}.rvtm-table .link-chip.dead:hover,.bom-table .link-chip.dead:hover,.bom-detail .link-chip.dead:hover{border-color:var(--red);color:var(--red)}.rvtm-table .link-chip.dead .dead-x,.bom-table .link-chip.dead .dead-x,.bom-detail .link-chip.dead .dead-x{display:inline-block;text-decoration:none;margin-left:5px;font-weight:700;cursor:pointer;color:var(--red)}.rvtm-table .link-chip.dead .dead-x:hover,.bom-table .link-chip.dead .dead-x:hover,.bom-detail .link-chip.dead .dead-x:hover{transform:scale(1.2)}.rvtm-summary{padding:16px 22px;background:var(--paper);border-bottom:1px solid var(--line);display:flex;gap:28px}.rvtm-summary .stat{display:flex;flex-direction:column;gap:2px}.rvtm-summary .stat-lbl{font-family:JetBrains Mono,monospace;font-size:10px;text-transform:uppercase;letter-spacing:1px;color:var(--ink-3);font-weight:600}.rvtm-summary .stat-num{font-family:JetBrains Mono,monospace;font-size:22px;font-weight:700;color:var(--navy)}.rvtm-summary .stat-num.pass{color:var(--green)}.rvtm-summary .stat-num.warn{color:var(--orange-deep)}.det-trace{display:flex;flex-wrap:wrap;gap:5px}.trace-chip{display:inline-flex;align-items:center;gap:5px;padding:3px 8px;border-radius:3px;background:var(--paper);border:1px solid var(--line);font-family:JetBrains Mono,monospace;font-size:11px;font-weight:600;color:var(--blue);cursor:pointer}.trace-chip:hover{border-color:var(--blue);background:#5fa8d314}.trace-chip .dot{width:6px;height:6px;border-radius:50%}.trace-chip .dot.pass{background:var(--green)}.trace-chip .dot.prog{background:var(--blue)}.trace-chip .dot.open{background:var(--silver)}.trace-chip .dot.fail{background:var(--red)}.viewtabs{background:var(--paper-2);border-bottom:1px solid var(--line);display:flex;align-items:stretch;padding:0 20px;gap:0}.vtab{background:transparent;border:0;border-right:1px solid var(--line);padding:12px 22px;font:inherit;font-size:13px;font-weight:600;color:var(--ink-3);cursor:pointer;display:flex;align-items:center;gap:10px;position:relative}.vtab:first-child{border-left:1px solid var(--line)}.vtab:hover{background:#ffffff80;color:var(--ink)}.vtab.on{background:#fff;color:var(--navy);box-shadow:inset 0 -3px 0 var(--orange)}.vtab-ic{font-size:14px;color:var(--blue)}.vtab-meta{font-family:JetBrains Mono,monospace;font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.8px;color:var(--ink-3);padding-left:8px;margin-left:6px;border-left:1px solid var(--line)}.vtab.on .vtab-meta{color:var(--blue)}.vtab-spacer{flex:1}.vtab-meta-r{display:flex;align-items:center;padding:0 8px;font-family:JetBrains Mono,monospace;font-size:10px;text-transform:uppercase;letter-spacing:1px;color:var(--ink-3);gap:6px}.sa-dot{display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--green);animation:pulse 2s infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.35}}.bom-wrap{display:flex;flex-direction:column;background:#fff;overflow:hidden;min-height:0}.bom-toolbar{padding:12px 20px;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;gap:12px;flex-wrap:wrap}.bom-totals{display:flex;align-items:stretch;background:var(--paper);border:1px solid var(--line);border-radius:4px;overflow:hidden}.bom-tot-cell{padding:6px 14px;border-right:1px solid var(--line);display:flex;flex-direction:column;min-width:90px}.bom-tot-cell:last-child{border-right:0}.bom-tot-cell.bom-tot-grand{background:var(--navy);color:#fff}.bom-tot-cell.bom-tot-grand .bom-tot-lbl{color:#ffffff8c}.bom-tot-cell.bom-tot-grand .bom-tot-val{color:#fff}.bom-tot-lbl{font-family:JetBrains Mono,monospace;font-size:9px;text-transform:uppercase;letter-spacing:1px;color:var(--ink-3);font-weight:600}.bom-tot-val{font-family:JetBrains Mono,monospace;font-size:13px;font-weight:700;color:var(--ink);margin-top:2px}.bom-table-wrap{flex:1;overflow:auto;background:#fff}.bom-main-row{flex:1;display:flex;min-height:0;overflow:hidden}.bom-detail{width:340px;flex-shrink:0;background:#fff;border-left:1px solid var(--line);overflow:auto;min-height:0}.bom-detail-empty{height:100%;display:grid;place-items:center;padding:24px;text-align:center;color:var(--ink-3);font-size:12px;font-family:JetBrains Mono,monospace;text-transform:uppercase;letter-spacing:1px}.bom-detail .det-head .status-pill{margin-left:auto;padding:4px 10px;border-radius:3px;font-family:JetBrains Mono,monospace;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.8px;color:#fff}.bom-cost-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}.bom-cost-cell{background:var(--paper);border:1px solid var(--line);border-radius:4px;padding:8px 10px}.bom-cost-cell .lbl{font-size:10px;color:var(--ink-3);text-transform:uppercase;letter-spacing:1px;font-family:JetBrains Mono,monospace}.bom-cost-cell .val{font-family:JetBrains Mono,monospace;font-size:13px;font-weight:700;color:var(--ink);margin-top:2px}.bom-cost-cell.grand{background:var(--navy);border-color:var(--navy)}.bom-cost-cell.grand .lbl{color:#ffffff8c}.bom-cost-cell.grand .val{color:#fff;font-size:16px}.bom-detail-inp{width:100%;border:1px solid var(--line);background:#fff;padding:6px 8px;font:inherit;font-size:13px;border-radius:3px;color:var(--ink)}.bom-detail-inp.mono{font-family:JetBrains Mono,monospace;font-size:12px}.bom-detail-inp:focus{outline:2px solid var(--sky);outline-offset:-1px;border-color:var(--sky)}.bom-detail-inp:hover:not(:focus){border-color:var(--blue)}textarea.bom-detail-inp{resize:vertical;min-height:60px;font-family:Manrope,sans-serif;line-height:1.4}.bom-detail-row{display:grid;grid-template-columns:1fr 1fr;gap:8px}.bom-table{width:100%;border-collapse:collapse;font-size:12px}.bom-table th{background:var(--paper);text-align:left;padding:10px 6px;font-family:JetBrains Mono,monospace;font-size:10px;text-transform:uppercase;letter-spacing:1px;color:var(--ink-3);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:2;white-space:nowrap;font-weight:600}.bom-table td{padding:6px 4px;border-bottom:1px solid var(--line-2);vertical-align:middle}.bom-table td:first-child,.bom-table th:first-child{padding-left:10px}.bom-table td:last-child,.bom-table th:last-child{padding-right:10px}.bom-inp[type=number]{-moz-appearance:textfield;-webkit-appearance:textfield;appearance:textfield}.bom-inp[type=number]::-webkit-outer-spin-button,.bom-inp[type=number]::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.bom-table tr:hover td{background:#5fa8d30a}.bom-table tr.editing td{background:#e8a33d0f}.bom-table tfoot td{background:var(--paper);border-top:2px solid var(--navy);border-bottom:0;position:sticky;bottom:0}.bom-table .id{color:var(--blue);font-weight:600;white-space:nowrap}.bom-inp{width:100%;border:1px solid transparent;background:transparent;padding:4px 6px;font:inherit;border-radius:3px;color:inherit}.bom-inp.mono{font-family:JetBrains Mono,monospace;font-size:11.5px}.bom-inp:hover{border-color:var(--line);background:var(--paper)}.bom-inp:focus{outline:2px solid var(--sky);outline-offset:-1px;background:#fff;border-color:var(--sky)}.bom-sel{width:100%;border:1px solid transparent;background:transparent;padding:3px 4px;font:inherit;font-size:12px;border-radius:3px;color:inherit;cursor:pointer}.bom-sel:hover{border-color:var(--line);background:var(--paper)}.bom-sel:focus{outline:2px solid var(--sky);outline-offset:-1px}.bom-status-sel{padding:4px 6px!important;border-radius:3px;font-size:11px;text-transform:uppercase;letter-spacing:.5px}.bom-status-sel:hover{border-color:#0003!important}.rvtm-ed{padding:4px 6px;border-radius:3px;outline:none;line-height:1.4;min-height:24px}.rvtm-ed:empty:before{content:attr(data-ph);color:var(--ink-3);font-style:italic}.rvtm-ed:hover{background:var(--paper)}.rvtm-ed:focus{background:#fff;box-shadow:inset 0 0 0 2px var(--sky)}.rvtm-inp{width:100%;border:1px solid transparent;background:transparent;padding:3px 5px;font:inherit;border-radius:3px}.rvtm-inp:hover{border-color:var(--line);background:var(--paper)}.rvtm-inp:focus{outline:2px solid var(--sky);outline-offset:-1px;background:#fff}.rvtm-sel{width:100%;border:1px solid transparent;background:transparent;padding:3px 4px;font:inherit;font-size:11.5px;border-radius:3px;cursor:pointer}.rvtm-sel:hover{border-color:var(--line);background:var(--paper)}.rvtm-sel:focus{outline:2px solid var(--sky);outline-offset:-1px}.rvtm-sel.status-pass{color:var(--green);font-weight:700}.rvtm-sel.status-prog{color:var(--blue);font-weight:700}.rvtm-sel.status-fail{color:var(--red);font-weight:700}.rvtm-del{background:transparent;border:0;color:var(--ink-3);cursor:pointer;font-size:16px;padding:2px 6px;border-radius:3px}.rvtm-del:hover{background:#c8553d1f;color:var(--red)}.drag-cell{cursor:grab;color:var(--ink-3);text-align:center;-webkit-user-select:none;user-select:none;font-size:14px;letter-spacing:-2px}.drag-cell:hover{color:var(--blue);background:var(--paper)}.drag-cell:active{cursor:grabbing}tr.row-dragging{opacity:.4}tr.row-drop-above>td{box-shadow:inset 0 2px 0 0 var(--orange)}tr.row-drop-below>td{box-shadow:inset 0 -2px 0 0 var(--orange)}.add-sub-btn{margin-left:6px;padding:1px 6px;font-size:9px;font-family:JetBrains Mono,monospace;text-transform:uppercase;letter-spacing:.5px;color:var(--ink-3);background:transparent;border:1px solid var(--line);border-radius:3px;cursor:pointer;opacity:0;transition:opacity .12s,color .12s,border-color .12s}tr:hover .add-sub-btn{opacity:1}.add-sub-btn:hover{color:var(--blue);border-color:var(--blue)}.dropzone{border:2px dashed var(--silver);background:#fff;border-radius:6px;padding:36px 20px;text-align:center;cursor:pointer;transition:all .15s}.dropzone:hover,.dropzone.over{border-color:var(--orange);background:#e8a33d0f}.dropzone-ic{font-size:32px;color:var(--orange);margin-bottom:8px;font-family:JetBrains Mono,monospace;font-weight:700}.dropzone-l1{font-size:15px;color:var(--ink);font-weight:500;margin-bottom:4px}.dropzone-l2{font-size:11px;color:var(--ink-3);font-family:JetBrains Mono,monospace;text-transform:uppercase;letter-spacing:.8px}.subtab{background:transparent;border:0;padding:8px 16px;font:inherit;font-size:12px;color:var(--ink-3);cursor:pointer;border-bottom:2px solid transparent;display:flex;align-items:center;gap:8px;font-weight:600}.subtab.on{color:var(--navy);border-bottom-color:var(--orange)}.subtab-num{background:var(--silver-soft);color:var(--ink-2);width:18px;height:18px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;font-family:JetBrains Mono,monospace;font-size:10px;font-weight:700}.subtab.on .subtab-num{background:var(--orange);color:var(--navy)}.link-edit-btn{background:transparent;border:1px solid transparent;padding:4px 6px;border-radius:3px;cursor:pointer;font:inherit;text-align:left;width:100%}.link-edit-btn:hover{border-color:var(--line);background:var(--paper)}.link-picker{position:fixed;background:#fff;border:1px solid var(--line);box-shadow:0 10px 30px #0b2a4a40;border-radius:6px;z-index:200;width:340px;max-height:360px;display:flex;flex-direction:column;overflow:hidden}.link-picker-tabs{display:flex;border-bottom:1px solid var(--line);background:var(--paper);padding:4px;align-items:center;gap:2px}.link-picker-tabs button{background:transparent;border:0;padding:6px 12px;font:inherit;font-size:11px;color:var(--ink-2);cursor:pointer;font-weight:600;border-radius:3px;text-transform:uppercase;letter-spacing:.5px}.link-picker-tabs button.on{background:var(--navy);color:#fff}.link-picker-list{overflow:auto;flex:1}.link-picker-row{display:flex;align-items:center;gap:8px;padding:6px 10px;cursor:pointer;border-bottom:1px solid var(--line-2);font-size:12px}.link-picker-row:hover{background:var(--paper)}.link-picker-row.sel{background:#5fa8d326}.link-picker-row .lp-id{font-family:JetBrains Mono,monospace;font-weight:600;color:var(--blue);font-size:11px;flex-shrink:0;min-width:64px}.link-picker-row .lp-name{color:var(--ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.export-menu{position:absolute;top:calc(100% + 6px);right:0;background:#fff;border:1px solid var(--line);box-shadow:0 12px 32px #0b2a4a4d;border-radius:6px;min-width:260px;z-index:100;overflow:hidden;padding:6px 0}.em-section-l{font-family:JetBrains Mono,monospace;font-size:10px;text-transform:uppercase;letter-spacing:1.2px;color:var(--ink-3);font-weight:600;padding:6px 14px 4px}.em-item{display:flex;align-items:center;gap:10px;padding:8px 14px;cursor:pointer;font-size:13px;color:var(--ink)}.em-item:hover{background:var(--paper);color:var(--blue)}.em-ic{width:18px;text-align:center;color:var(--blue);font-family:JetBrains Mono,monospace;font-size:13px}.em-divider{height:1px;background:var(--line);margin:4px 0}.print-only{display:none}@media print{@page{size:13.333in 7.5in;margin:.35in}html,body{background:#fff;width:13.333in}.app{height:auto!important;min-height:0!important;display:block!important;width:12.633in}.topbar,.toolbar,.viewtabs,.statusbar,.details,.modal-backdrop,.export-menu-wrap,.pill,.seg,.tb-search,.tb-spacer,.legend,.vtab-meta-r,.bom-toolbar>.tb-group,.bom-toolbar>.tb-search,.bom-toolbar>.btn{display:none!important}.print-only{display:block!important;padding:0 0 10px;border-bottom:2px solid var(--navy);margin-bottom:8px}.print-only h1{font-size:16pt;margin:0;color:var(--navy);font-weight:700;line-height:1.1}.print-only .ph-sub{font-size:9pt;color:var(--ink-2);margin-top:3px;font-family:JetBrains Mono,monospace;text-transform:uppercase;letter-spacing:1px}.print-only .ph-meta{display:flex;gap:18px;margin-top:6px;font-size:8pt;flex-wrap:wrap}.print-only .ph-meta span{color:var(--ink-3);font-family:JetBrains Mono,monospace;text-transform:uppercase;letter-spacing:.8px}.print-only .ph-meta b{color:var(--ink);font-weight:600;font-family:Manrope,sans-serif;text-transform:none;letter-spacing:0;margin-left:6px}.print-only.print-note{border-bottom:none;padding:0}:root{--row-h: 20px}.phase-row,.gantt-row,.task-row{height:20px!important}.phase-row{font-size:8pt;padding:2px 8px!important}.task-row{padding:0 8px!important;gap:6px!important;grid-template-columns:1fr!important}.tasks-head{grid-template-columns:1fr!important}.task-name{font-size:8.5pt;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.task-meta-due,.task-assignees,.ph-drag-grip,.ph-del,.phase-row .chev,.task-row .task-dot,.gantt-head-row-mt{display:none!important}.bar{top:3px!important;height:14px!important;font-size:7pt!important;padding:0 3px!important}.bar .label{font-size:6.5pt!important}.milestone-mark{top:5px!important;width:10px!important;height:10px!important}.milestone-label{top:7px!important;font-size:6.5pt!important}.phase-bar{top:7px!important;height:8px!important}.bom-marker{top:-1px!important;height:9px!important;font-size:5.5pt!important;padding:0 2px!important}.bom-marker .bm-dot,.bom-marker .bm-lbl{font-size:5pt!important}.gantt-head{height:28px!important}.gantt-head-row1,.gantt-head-row2{height:14px!important}.month-cell,.week-cell{font-size:7pt!important;padding:1px 3px!important;line-height:1!important}.today-line:before{font-size:6pt!important;padding:1px 3px!important;top:-12px!important}.tasks-head{height:28px!important;font-size:7pt!important;padding:0 8px!important}.tasks-head>span:nth-child(3),.tasks-head>span:nth-child(4){display:none!important}.main{display:grid!important;grid-template-columns:2.1in 1fr!important;gap:0!important;overflow:visible!important;height:auto!important;min-height:0!important}.main{zoom:var(--print-fit, 1)}.phase-row,.task-row,.gantt-row{page-break-inside:avoid;break-inside:avoid}.tasks{border-right:1px solid var(--line)!important;overflow:visible!important}.tasks-head{position:static!important}.gantt-wrap{overflow:visible!important}.gantt{width:auto!important;max-width:100%!important;transform-origin:0 0}.gantt-head{position:static!important}.bar,.milestone-mark,.phase-bar{box-shadow:none!important}.bom-wrap{display:block!important;overflow:visible!important;height:auto!important}.bom-main-row{display:block!important;overflow:visible!important}.bom-detail{display:none!important}.bom-table-wrap{overflow:visible!important;max-height:none!important}.bom-toolbar{padding:4px 0!important;border-bottom:0!important}.bom-toolbar>.bom-totals{display:flex!important;margin-bottom:8px}.bom-table,.rvtm-table{font-size:7.5pt!important;page-break-inside:avoid;break-inside:avoid;width:100%!important}.bom-table th,.rvtm-table th{padding:5px 6px!important;font-size:7pt!important}.bom-table td,.rvtm-table td{padding:3px 6px!important}.bom-table thead,.rvtm-table thead{display:table-header-group!important}.bom-table tr,.rvtm-table tr{page-break-inside:avoid;break-inside:avoid}.bom-table th,.rvtm-table th{position:static!important}.bom-table-wrap{page-break-inside:avoid;break-inside:avoid}.bom-inp,.bom-sel,.rvtm-inp,.rvtm-sel,.bom-status-sel{border:0!important;background:transparent!important;padding:1px 2px!important;-webkit-appearance:none!important;-moz-appearance:none!important;appearance:none!important;color:inherit!important;font-weight:inherit!important;box-shadow:none!important;font-size:7.5pt!important}.bom-status-sel{color:var(--ink)!important;font-weight:600!important}.ph-tag-inp,.ph-name-inp{border:0!important;background:transparent!important;box-shadow:none!important;-webkit-appearance:none!important;-moz-appearance:none!important;appearance:none!important}.ph-tag-inp{background:var(--orange)!important;color:var(--navy)!important;padding:1px 4px!important;width:auto!important}.ph-name-inp{color:#fff!important;padding:1px 4px!important}.rvtm-del{display:none!important}.rvtm-ed:empty:before{content:none!important}.rvtm-ed{min-height:0!important}.link-edit-btn{display:inline!important;border:0!important;background:transparent!important;padding:0!important;cursor:default!important;font:inherit!important;color:inherit!important}.link-edit-btn span:not(.link-chip){display:none!important}.link-chip{padding:1px 4px!important;font-size:7pt!important}*{-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important}.today-line{background:var(--orange)!important;opacity:.6}.print-footer{display:block!important;margin-top:10px;padding-top:6px;border-top:1px solid var(--line);font-size:7pt;color:var(--ink-3);font-family:JetBrains Mono,monospace;text-transform:uppercase;letter-spacing:1px;text-align:right}}.tasks::-webkit-scrollbar,.gantt-wrap::-webkit-scrollbar,.details::-webkit-scrollbar{width:10px;height:10px}.tasks::-webkit-scrollbar-thumb,.gantt-wrap::-webkit-scrollbar-thumb,.details::-webkit-scrollbar-thumb{background:var(--silver);border-radius:5px}.tasks::-webkit-scrollbar-track,.gantt-wrap::-webkit-scrollbar-track,.details::-webkit-scrollbar-track{background:var(--paper)}
