:root{--bg: #ffffff;--panel: #f8fafc;--fg: #9f66c3;--muted: #5b6472;--accent: #2563eb;--border: #e5e7eb;--row-alt: #f3f4f6;--table-head: #f5f7fb;--table-bg: #ffffff;--table-head-fg: #0b1220;--table-row: #ffffff;--table-row-alt: #fafafa;--table-row-hover: #f3f4f6;--table-border: #e5e7eb;--chip-bg: #f3f4f6;--chip-fg: #1f2937;--chip-border: #e5e7eb;--status-in-dev-bg: #e8f0fe;--status-in-dev-fg: #1e3a8a;--status-in-dev-border: #bfdbfe;--status-ready-bg: #fff7ed;--status-ready-fg: #9a3412;--status-ready-border: #fed7aa;--status-grooming-bg: #fff4e5;--status-grooming-fg: #92400e;--status-grooming-border:#fbd6a7;--status-completed-bg: #e8f5e9;--status-completed-fg: #166534;--status-completed-border:#cfe9d5}:root[data-theme=dark]{--bg:#0b0d10;--panel:#12161b;--muted:#9aa4b2;--fg: #ffffff;--accent:#73b8ff;--border:#1c222b;--row-alt:#0b1016;--table-head:#0f141a;--table-bg: var(--panel);--table-head-fg: var(--fg);--table-row: #0c1117;--table-row-alt: #0b1016;--table-row-hover: #121923;--table-border: #1c222b;--chip-bg: #0f141a;--chip-fg: var(--fg);--chip-border: #1f2b36;--status-in-dev-bg: color-mix(in srgb, #73b8ff 18%, var(--panel));--status-in-dev-fg: #cfe4ff;--status-in-dev-border: color-mix(in srgb, #73b8ff 35%, var(--border));--status-ready-bg: color-mix(in srgb, #f97316 18%, var(--panel));--status-ready-fg: #ffddb9;--status-ready-border: color-mix(in srgb, #f97316 35%, var(--border));--status-grooming-bg: color-mix(in srgb, #f59e0b 18%, var(--panel));--status-grooming-fg: #fde3b1;--status-grooming-border:color-mix(in srgb, #f59e0b 35%, var(--border));--status-completed-bg: color-mix(in srgb, #22c55e 18%, var(--panel));--status-completed-fg: #cfe9d5;--status-completed-border:color-mix(in srgb, #22c55e 35%, var(--border))}:root[data-theme=light]{--bg:#ffffff;--panel:#f8fafc;--muted:#5b6472;--fg: #1249b6;--accent:#2563eb;--border:#e5e7eb;--row-alt:#f3f4f6;--table-head:#f5f7fb;--table-bg: #ffffff;--table-head-fg: #0b1220;--table-row: #ffffff;--table-row-alt: #fafafa;--table-row-hover: #f3f4f6;--table-border: #e5e7eb;--chip-bg: #f3f4f6;--chip-fg: #1f2937;--chip-border: #e5e7eb;--status-in-dev-bg: #e8f0fe;--status-in-dev-fg: #1e3a8a;--status-in-dev-border: #bfdbfe;--status-ready-bg: #fff7ed;--status-ready-fg: #9a3412;--status-ready-border: #fed7aa;--status-grooming-bg: #fff4e5;--status-grooming-fg: #92400e;--status-grooming-border:#fbd6a7;--status-completed-bg: #e8f5e9;--status-completed-fg: #166534;--status-completed-border:#cfe9d5}:root{--bar-progress-in-dev: #2563eb;--bar-progress-ready: #f97316;--bar-base: #777f8f}:root[data-theme=dark]{--bar-progress-in-dev: #ec73ff;--bar-progress-ready: #ffb869;--bar-base: #9db1cd}*{box-sizing:border-box}html,body,#app{height:100%;margin:0;background:var(--bg);color:var(--fg);font-family:ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial}header{display:flex;align-items:center;gap:12px;padding:12px 16px;background:var(--panel);border-bottom:1px solid var(--border)}a{color:var(--accent);text-decoration:none}.container{padding:16px}.panel{background:var(--panel);border:1px solid var(--border);border-radius:12px;padding:12px}.controls{display:flex;gap:10px;flex-wrap:wrap;align-items:center}select,button,input[type=checkbox],input[type=text],input[type=search]{background:color-mix(in srgb,var(--panel) 70%,var(--bg));color:var(--fg);border:1px solid var(--border);border-radius:8px;padding:6px 8px}label{color:var(--muted)}.badge{background:color-mix(in srgb,var(--panel) 80%,var(--bg));border:1px solid var(--border);padding:2px 8px;border-radius:999px;color:var(--accent)}.sections{display:block}.sections.compact{display:grid;grid-template-columns:repeat(auto-fit,minmax(420px,1fr));gap:12px}.sections.compact .panel{padding:8px}.sections.compact h3{font-size:14px}.vis-timeline{background:var(--panel);border:1px solid var(--border)}.table-container{overflow:auto;border-radius:10px;border:1px solid var(--table-border);background:var(--table-bg);box-shadow:0 1px 2px #00000008}.table{width:100%;border-collapse:separate;border-spacing:0;font-size:14px;line-height:1.35}.table.compact{font-size:12.5px}.table thead th{position:sticky;top:0;background:var(--table-head);color:var(--table-head-fg);text-align:left;padding:10px;border-bottom:1px solid var(--table-border);font-weight:600;letter-spacing:.015em}.table.compact thead th{padding:7px 8px}.table tbody td{padding:10px;border-bottom:1px solid var(--table-border);background:var(--table-row)!important;vertical-align:middle;color:var(--fg)}.table.compact tbody td{padding:7px 8px}.table tbody tr:nth-child(odd) td{background:var(--table-row-alt)!important}.table tbody tr:hover td{background:var(--table-row-hover)!important}.table .num{text-align:center;white-space:nowrap}.table td.commit{font-weight:600}.pill{display:inline-block;padding:3px 10px;border-radius:999px;background:var(--chip-bg);color:var(--chip-fg);border:1px solid var(--chip-border);font-size:12px}.pill.tiny{font-size:11px;padding:2px 6px}.status-in-development{background:var(--status-in-dev-bg);color:var(--status-in-dev-fg);border-color:var(--status-in-dev-border)}.status-ready-for-team{background:var(--status-ready-bg);color:var(--status-ready-fg);border-color:var(--status-ready-border)}.status-grooming{background:var(--status-grooming-bg);color:var(--status-grooming-fg);border-color:var(--status-grooming-border)}.status-completed{background:var(--status-completed-bg);color:var(--status-completed-fg);border-color:var(--status-completed-border)}@media print{@page{size:landscape;margin:10mm}:root,body,html{background:#fff!important;color:#000!important}header,.controls{display:none!important}.container{padding:0}.panel{background:#fff;border:1px solid #ccc}.badge{color:#333;border-color:#ddd;background:#f5f5f5}.sections{display:grid!important;grid-template-columns:repeat(2,1fr);gap:8px}.table-container{border-color:#ddd!important}.table thead th{background:#fff!important;color:#000!important;border-color:#ccc!important}.table tbody td{border-color:#eee!important;background:#fff!important}}.spinner[data-v-056fec19]{width:14px;height:14px;border:2px solid var(--border);border-top-color:var(--accent);border-radius:50%;display:inline-block;animation:spin-056fec19 .7s linear infinite}.loading-wrap[data-v-056fec19]{display:inline-flex;align-items:center;gap:6px}@keyframes spin-056fec19{to{transform:rotate(360deg)}}.badge.error[data-v-056fec19]{background:#ffe7e7;color:#a40000;border-color:#ffb3b3}.sr-only[data-v-056fec19]{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}.gantt .grid-background{fill:none}.gantt .grid-header{fill:#fff;stroke:#e0e0e0;stroke-width:1.4}.gantt .grid-row{fill:#fff}.gantt .grid-row:nth-child(2n){fill:#f5f5f5}.gantt .row-line{stroke:#ebeff2}.gantt .tick{stroke:#e0e0e0;stroke-width:.2}.gantt .tick.thick{stroke-width:.4}.gantt .today-highlight{fill:#fcf8e3;opacity:.5}.gantt .arrow{fill:none;stroke:#666;stroke-width:1.4}.gantt .bar{fill:#b8c2cc;stroke:#8d99a6;stroke-width:0;transition:stroke-width .3s ease;user-select:none}.gantt .bar-progress{fill:#a3a3ff}.gantt .bar-invalid{fill:transparent;stroke:#8d99a6;stroke-width:1;stroke-dasharray:5}.gantt .bar-invalid~.bar-label{fill:#555}.gantt .bar-label{fill:#fff;dominant-baseline:central;text-anchor:middle;font-size:12px;font-weight:lighter}.gantt .bar-label.big{fill:#555;text-anchor:start}.gantt .handle{fill:#ddd;cursor:ew-resize;opacity:0;visibility:hidden;transition:opacity .3s ease}.gantt .bar-wrapper{cursor:pointer;outline:none}.gantt .bar-wrapper:hover .bar{fill:#a9b5c1}.gantt .bar-wrapper:hover .bar-progress{fill:#8a8aff}.gantt .bar-wrapper:hover .handle{visibility:visible;opacity:1}.gantt .bar-wrapper.active .bar{fill:#a9b5c1}.gantt .bar-wrapper.active .bar-progress{fill:#8a8aff}.gantt .lower-text,.gantt .upper-text{font-size:12px;text-anchor:middle}.gantt .upper-text{fill:#555}.gantt .lower-text{fill:#333}.gantt .hide{display:none}.gantt-container{position:relative;overflow:auto;font-size:12px}.gantt-container .popup-wrapper{position:absolute;top:0;left:0;background:#000c;padding:0;color:#959da5;border-radius:3px}.gantt-container .popup-wrapper .title{border-bottom:3px solid #a3a3ff;padding:10px}.gantt-container .popup-wrapper .subtitle{padding:10px;color:#dfe2e5}.gantt-container .popup-wrapper .pointer{position:absolute;height:5px;margin:0 0 0 -5px;border:5px solid transparent;border-top-color:#000c}.gantt-wrap[data-v-ee6706d5]{width:100%;min-height:260px;overflow:auto;background:var(--panel);border:1px solid var(--border);border-radius:12px}.gantt-empty[data-v-ee6706d5]{padding:16px;color:var(--muted);font-size:14px}[data-v-ee6706d5] .bar,[data-v-ee6706d5] .bar-wrapper .bar{fill:var(--bar-base)}[data-v-ee6706d5] .bar.ready,[data-v-ee6706d5] .bar-wrapper.ready .bar{fill:var(--bar-progress-ready)!important}[data-v-ee6706d5] .bar-progress.indev,[data-v-ee6706d5] .bar-wrapper.indev .bar-progress{fill:var(--bar-progress-in-dev)!important}[data-v-ee6706d5] .bar-progress.ready,[data-v-ee6706d5] .bar-wrapper.ready .bar-progress{fill:var(--bar-progress-ready)!important}[data-v-ee6706d5] .bar.estimated,[data-v-ee6706d5] .bar-progress.estimated,[data-v-ee6706d5] .bar-wrapper.estimated .bar,[data-v-ee6706d5] .bar-wrapper.estimated .bar-progress{stroke:currentColor;stroke-width:1.5px;stroke-dasharray:4 3}[data-v-ee6706d5] .grid-header{fill:var(--panel)}[data-v-ee6706d5] .lower-text,[data-v-ee6706d5] .upper-text{fill:var(--muted)}[data-v-ee6706d5] g.popup-wrapper{filter:drop-shadow(0 8px 24px rgba(0,0,0,.22));z-index:50}[data-v-ee6706d5] g.popup-wrapper .popup{fill:var(--panel)!important;stroke:var(--border)!important;opacity:1!important;fill-opacity:1!important;mix-blend-mode:normal!important;rx:14px!important}[data-v-ee6706d5] g.popup-wrapper .pointer{fill:var(--panel)!important;stroke:var(--border)!important;opacity:1!important;mix-blend-mode:normal!important}[data-v-ee6706d5] .popup-wrapper .foreign-object .kg-pop,[data-v-ee6706d5] .popup-wrapper .kg-pop{min-width:300px;max-width:380px;padding:14px 16px;background:transparent;color:#0b1220}[data-v-ee6706d5] .kg-pop__title{display:flex;align-items:center;gap:10px;margin-bottom:10px;font-weight:700}[data-v-ee6706d5] .kg-pop__title .name{flex:1;font-size:15px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}[data-v-ee6706d5] .kg-pop__grid{display:grid;grid-template-columns:1fr 1fr;gap:10px 16px;margin:8px 0 12px}[data-v-ee6706d5] .kg-pop__grid .item .label{color:var(--muted);font-size:12px;letter-spacing:.01em}[data-v-ee6706d5] .kg-pop__grid .item .val{font-size:13px;color:var(--fg)}[data-v-ee6706d5] .kg-pop__grid .item.span-2{grid-column:span 2}[data-v-ee6706d5] .kg-pop__progress{margin-top:4px}[data-v-ee6706d5] .kg-pop__progress .row{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px;font-size:13px}[data-v-ee6706d5] .kg-pop__progress .bar{height:10px;border-radius:999px;background:color-mix(in srgb,var(--panel) 50%,var(--bg));border:1px solid var(--border);overflow:hidden}[data-v-ee6706d5] .kg-pop__progress .bar .fill{height:100%;background:var(--bar-progress-in-dev)}[data-v-ee6706d5] .kg-pop__flag{display:inline-block;margin-top:10px;font-size:11px;color:var(--accent);border:1px solid var(--border);border-radius:999px;padding:2px 8px;background:color-mix(in srgb,var(--panel) 80%,var(--bg))}[data-v-ee6706d5] g.popup-wrapper{opacity:1!important}[data-v-ee6706d5] g.popup-wrapper .popup,[data-v-ee6706d5] g.popup-wrapper .pointer{display:none!important}[data-v-ee6706d5] .popup-wrapper .foreign-object .kg-pop,[data-v-ee6706d5] .popup-wrapper .kg-pop{background:#fff!important;border:1px solid #000000!important;border-radius:12px!important;padding:14px 16px!important;color:#0b1220!important;box-shadow:0 8px 24px #0003!important}[data-v-ee6706d5] .kg-pop__title{margin-bottom:10px;font-weight:700}[data-v-ee6706d5] .kg-pop__grid .item .label{color:#6b7280}[data-v-ee6706d5] .kg-pop__grid .item .val{color:#0b1220}[data-v-ee6706d5] .handle{display:none!important}[data-v-ee6706d5] .bar-wrapper,[data-v-ee6706d5] .bar,[data-v-ee6706d5] .bar-progress{cursor:default!important}[data-v-ee6706d5] .kg-pop__title .name.link{color:var(--accent);text-decoration:none}[data-v-ee6706d5] .kg-pop__title .name.link:hover{text-decoration:underline}.devphase-danger[data-v-ee6706d5]{color:#c30000;font-weight:600}[data-v-ee6706d5] .devphase-danger{color:#c30000!important;font-weight:600}[data-v-ee6706d5] text.bar-label.overdue-est-end{fill:#c30000!important;font-weight:600}[data-v-ee6706d5] .bar-wrapper.overdue-est-end .bar-label{fill:#c30000!important;font-weight:600}.gheader[data-v-b64e545a]{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}.gheader.clickable[data-v-b64e545a]{cursor:pointer}.gheader .left[data-v-b64e545a]{display:flex;align-items:center;gap:8px}.toggle[data-v-b64e545a]{background:var(--panel);border:1px solid var(--border);width:26px;height:26px;border-radius:6px;display:flex;align-items:center;justify-content:center;cursor:pointer;padding:0}.toggle[data-v-b64e545a]:hover{background:var(--row-alt)}.arrow[data-v-b64e545a]{width:8px;height:8px;border-right:2px solid var(--fg);border-bottom:2px solid var(--fg);transform:rotate(45deg);transition:transform .18s ease}.arrow.collapsed[data-v-b64e545a]{transform:rotate(-45deg)}.gbody[data-v-b64e545a]{transition:height .2s ease}.table tbody tr.clickable[data-v-a5b78e84]{cursor:pointer}.table tbody tr.clickable:hover td[data-v-a5b78e84]{background:color-mix(in srgb,var(--accent) 8%,var(--row-alt))}.table.compact tbody tr.clickable:hover td[data-v-a5b78e84]{background:color-mix(in srgb,var(--accent) 10%,var(--panel))}.devphase-danger[data-v-a5b78e84],.overdue-est-end[data-v-a5b78e84]{color:#c30000;font-weight:600}.cat[data-v-a5b78e84]{text-transform:capitalize;font-size:12px;padding:2px 6px;border-radius:10px;background:var(--row-alt);display:inline-block}.cat-bug[data-v-a5b78e84]{background:#ffe2e2;color:#a40000}.cat-col[data-v-a5b78e84]{text-align:center;width:34px;font-size:18px}.thead[data-v-a5b78e84]{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}.thead.clickable[data-v-a5b78e84]{cursor:pointer}.thead .left[data-v-a5b78e84]{display:flex;align-items:center;gap:8px}.toggle[data-v-a5b78e84]{background:var(--panel);border:1px solid var(--border);width:26px;height:26px;border-radius:6px;display:flex;align-items:center;justify-content:center;cursor:pointer;padding:0}.toggle[data-v-a5b78e84]:hover{background:var(--row-alt)}.arrow[data-v-a5b78e84]{width:8px;height:8px;border-right:2px solid var(--fg);border-bottom:2px solid var(--fg);transform:rotate(45deg);transition:transform .18s ease}.arrow.collapsed[data-v-a5b78e84]{transform:rotate(-45deg)}
