.chip.inferred{background:var(--sem-scope-fill);border:1px dashed var(--sem-scope-line);color:var(--sem-scope-ink);font-weight:600}.link-button{height:auto;padding:0;border:0;border-radius:0;color:var(--fg-1);font-weight:600;text-align:left}.link-button:hover{border:0;background:transparent;color:var(--link);text-decoration:underline}.clamp{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;white-space:normal;overflow-wrap:anywhere}.date{color:var(--fg-3);font-size:12px;white-space:nowrap}.sev.high{color:var(--sem-risk-ink);font-weight:600}.model-tag{margin-left:6px;padding:0 5px;border:1px solid var(--outline);border-radius:var(--r-4);color:var(--fg-4);font-size:11px;font-weight:400}.panel-foot{padding:10px 20px;border-top:1px solid var(--outline-soft);font-size:11px;color:var(--fg-4)}.table-scroll,.matrix-scroll{overflow-x:auto}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.filter-bar{display:flex;flex-wrap:wrap;align-items:center;gap:12px;padding:12px 16px;background:var(--surface);border:1px solid var(--outline-soft);border-radius:var(--r-12)}.filter-bar .seg{background:var(--canvas);align-self:auto}.field{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--fg-4)}.field select{height:30px;padding:0 10px;border:1px solid var(--outline);border-radius:var(--r-8);background:var(--canvas);color:var(--fg-1);font-size:13px}.check{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--fg-3)}.check input{width:16px;height:16px;accent-color:var(--primary)}.clear-button{height:30px;padding:0 14px;border:1px solid var(--outline);border-radius:var(--r-pill);color:var(--fg-2);font-size:13px}.kpi-strip{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:1px;background:var(--outline-soft);border:1px solid var(--outline-soft);border-radius:var(--r-12);overflow:hidden}.kpi-strip>.skeleton{margin:16px 20px}.kpi{display:flex;flex-direction:column;gap:6px;padding:16px 20px;background:var(--surface);min-width:0}.kpi-label{display:inline-flex;align-items:center;gap:8px;font-size:12px;color:var(--fg-3)}.kpi b{font-size:26px;font-weight:700;line-height:1.1;color:var(--fg-1)}.kpi.snapshot b{color:var(--fg-3)}.kpi-meta{justify-content:center}.sync-chip{display:inline-flex;align-self:flex-start;align-items:center;gap:6px;height:28px;padding:0 12px;border:1px solid var(--sem-done-line);border-radius:var(--r-pill);font-size:12px;color:var(--sem-done-ink)}.sync-chip.failed{border-color:var(--sem-risk-line);background:#db002529;color:var(--sem-risk-ink)}.sync-chip .ui-icon{width:12px;height:12px;stroke-width:3}.health-table{width:100%;min-width:1220px;border-collapse:collapse;font-size:13px}.health-table thead tr{background:var(--surface-2)}.health-table thead th{padding:8px 12px;border-bottom:1px solid var(--outline-soft);font-size:12px;font-weight:500;color:var(--fg-4);text-align:left}.health-table thead th:first-child{padding-left:20px}.health-table thead th:last-child{padding-right:20px}.health-table .num{text-align:right}.health-table td{padding:4px 12px;border-bottom:1px solid var(--surface-2);color:var(--fg-2)}.health-table td:last-child{padding-right:20px}.group-row th{padding:10px 20px 6px;border-bottom:1px solid var(--track);font-size:11px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--sel-fg);text-align:left}.model-row.selected{background:var(--sel-bg)}.model-row.inactive td,.model-row.inactive .model-pick{color:var(--fg-4)}.model-cell{padding:4px 12px 4px 14px;border-bottom:1px solid var(--surface-2);text-align:left;white-space:nowrap}.model-pick{min-height:36px;height:auto;padding:0 6px;border:0;border-radius:var(--r-4);background:transparent;color:var(--fg-1);font-weight:600;text-align:left}.model-pick:hover{border:0;background:transparent;color:var(--link)}.source-link{display:inline-flex;vertical-align:middle;color:var(--fg-4)}.source-link .ui-icon{width:12px;height:12px}.health{white-space:nowrap;font-size:12px}.health>*{vertical-align:middle}.health-bar{display:inline-block;width:28px;height:8px;margin-right:8px;border-radius:2px;background:var(--sem-done-fill)}.health.ok{color:var(--sem-done-ink)}.health.watch{color:var(--sem-warn-ink)}.health.watch .health-bar{background:var(--sem-warn-ink)}.health.high-risk{color:var(--sem-risk-ink)}.health.high-risk .health-bar{background:var(--danger)}.health.none{color:var(--sem-done-ink)}.health.none .ui-icon{width:12px;height:12px;margin-right:8px;stroke-width:3}.health-table td.high{color:var(--sem-risk-ink);font-weight:600}.health-table td.warn{color:var(--sem-warn-ink)}.spark{display:block}.spark polyline{fill:none;stroke-width:1.5}.spark-open{stroke:var(--primary)}.spark-done{stroke:var(--sem-done-fill)}.build{max-width:220px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--fg-3)!important}.next-gate{white-space:nowrap;font-size:13px}.inactive-toggle .link-button{display:inline-flex;align-items:center;gap:8px;min-height:32px;color:var(--fg-3);font-size:11px;letter-spacing:.12em}.inactive-toggle .link-button .muted{letter-spacing:0;font-weight:400}.inactive-toggle .link-button .ui-icon{width:14px;height:14px;transition:transform .15s}.inactive-toggle .link-button[aria-expanded=true] .ui-icon{transform:rotate(90deg)}.inactive-toggle th{border-top:1px solid var(--outline-soft);padding:4px 14px;text-transform:none}.matrix-scroll{padding:0 20px 4px}.matrix-table{width:100%;min-width:900px;border-collapse:separate;border-spacing:4px;font-size:13px}.matrix-table th{padding:6px 8px;font-size:12px;font-weight:500;color:var(--fg-4);text-align:left}.matrix-table thead th.model{padding:6px 4px;color:var(--fg-3);text-align:center;white-space:normal;border-bottom:2px solid transparent}.matrix-table thead th.model.selected{color:var(--sel-fg);font-weight:700;border-bottom-color:var(--primary)}.matrix-table th.area{font-size:13px;color:var(--fg-1);white-space:nowrap}.matrix-table tr.unclassified th.area{font-weight:700}.matrix-table td.heat{height:40px;min-width:64px;padding:0;text-align:center;border-radius:var(--r-4);background:var(--surface-2)}.matrix-table td.heat.selected{outline:2px solid var(--primary)}.matrix-table .cell-button{display:flex;align-items:center;justify-content:center;gap:4px;width:100%;height:40px;padding:0;border:0;background:transparent;color:#fff;font-weight:600}.matrix-table .cell-button:hover{border:0;background:transparent;outline:1px solid var(--focus)}.matrix-table .zero .cell-button{color:var(--fg-4);font-weight:400}.suggest{padding:0 4px;border:1px dashed var(--sem-scope-line);border-radius:var(--r-4);font-size:10px;font-weight:600;color:var(--link)}.matrix-legend{display:flex;flex-wrap:wrap;gap:8px 20px;padding:10px 20px 14px;font-size:11px;color:var(--fg-4)}.matrix-legend span{display:inline-flex;align-items:center;gap:6px}.key-category{display:inline-block;width:16px;height:12px;border-radius:2px;background:#db0025bf}.key-title{display:inline-block;width:16px;height:12px;border-radius:2px;border:1px dashed var(--sem-scope-line)}.pair{display:flex;flex-wrap:wrap;gap:16px}.pair-panel{flex:1 1 520px;min-width:0;display:flex;flex-direction:column;gap:12px;padding:16px 20px}.pair-head{display:flex;flex-wrap:wrap;align-items:baseline;gap:6px 16px}.line-key{display:inline-flex;align-items:center;gap:6px;font-size:12px;color:var(--fg-3)}.line-key:before{content:"";width:14px;height:3px;background:var(--primary)}.line-key.done:before{background:var(--sem-done-fill)}.trend{border-left:1px solid var(--outline-soft);border-bottom:1px solid var(--outline-soft)}.trend-chart{display:block;width:100%;height:auto}.trend-chart .grid{stroke:var(--track)}.trend-chart .axis{fill:var(--fg-4);font-size:10px}.trend-chart polyline{fill:none;stroke-width:2;stroke-linejoin:round}.line-open{stroke:var(--primary)}.line-done{stroke:var(--sem-done-fill)}.trend-chart .hit{fill:transparent}.trend-chart .hit:hover{fill:var(--grid-soft)}.release-rows{display:flex;flex-direction:column;gap:8px}.release-row{display:grid;grid-template-columns:150px minmax(0,1fr);align-items:center;gap:12px;min-height:36px}.release-model{font-size:13px;font-weight:600;color:var(--fg-2);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.release-track{position:relative;height:22px;border-bottom:1px solid var(--track)}.release-marker{position:absolute;top:4px;width:12px;height:12px;margin-left:-6px;transform:rotate(45deg);border:1px solid var(--sem-scope-line);background:var(--sem-scope-fill)}.release-marker:hover{background:var(--sem-scope-line)}.issues-layout{display:flex;flex-wrap:wrap;gap:16px;align-items:flex-start}.issues-panel{flex:999 1 760px;min-width:0}.issue-tools{display:flex;flex-wrap:wrap;align-items:center;gap:8px 16px}.issue-tools .search{display:flex;align-items:center;gap:8px;height:30px;padding:0 12px;border:1px solid var(--outline);border-radius:var(--r-8);background:var(--canvas);color:var(--fg-4)}.issue-tools .search input{width:200px;height:28px;padding:0;border:0;background:transparent;color:var(--fg-1);font-size:13px}.issue-tools .search input:focus{outline:none}.issue-tools .search:focus-within{border-color:var(--focus)}.export-button{display:inline-flex;align-items:center;gap:6px;height:30px;padding:0 14px;border:1px solid var(--outline);border-radius:var(--r-pill);color:var(--fg-2);font-size:13px}.export-button:hover{color:var(--fg-1);text-decoration:none}.issue-chips{display:flex;flex-wrap:wrap;align-items:center;gap:6px;padding:0 20px 10px}.filter-chip{display:inline-flex;align-items:center;gap:4px;height:24px;padding:0 8px;border:1px solid var(--outline-soft);border-radius:var(--r-pill);color:var(--fg-3);font-size:12px}.filter-chip .ui-icon{width:11px;height:11px}.issues-wrap{max-height:70vh;overflow:auto}.issues-table{width:100%;min-width:1000px;border-collapse:collapse;font-size:13px}.issues-table thead th{position:sticky;top:0;z-index:1;padding:8px 12px;background:var(--surface-2);border-bottom:1px solid var(--outline-soft);font-size:12px;font-weight:500;color:var(--fg-4);text-align:left}.issues-table thead th:first-child,.issues-table td:first-child{padding-left:20px}.issues-table thead th:last-child,.issues-table td:last-child{padding-right:20px}.issues-table td{padding:0 12px;border-bottom:1px solid var(--surface-2);color:var(--fg-2);white-space:nowrap}.issue-row{cursor:pointer}.issue-row:hover{background:var(--surface-2)}.issue-row.feedback{background:#fde9b40d}.issue-row.selected{background:var(--sel-bg)}.issues-table td.id a{display:inline-block;height:32px;line-height:32px;text-decoration:underline}.area-chip{display:inline-block;padding:0 6px;border:1px solid var(--outline);border-radius:var(--r-4);font-size:12px;color:var(--fg-2)}.area-chip.none{border-color:var(--outline-soft)}.area-chip.inferred{border-style:dashed;border-color:var(--sem-scope-line);color:var(--link)}.sev-chip{display:inline-flex;align-items:center;gap:4px;padding:0 6px;border:1px dashed var(--fg-4);border-radius:var(--r-4);font-size:12px;color:var(--fg-3)}.sev-chip.high{border:1px solid var(--danger);color:var(--sem-risk-ink)}.sev-chip .ui-icon{width:11px;height:11px;stroke-width:2.5}.issues-table td.status{font-size:12px;color:var(--sel-fg)}.issues-table td.status.feedback{color:var(--sem-warn-ink)}.issues-table td.status .ui-icon{width:12px;height:12px;margin-right:4px}.muted-cell{color:var(--fg-3)!important}.issues-table td.summary{padding-top:6px;padding-bottom:6px;max-width:420px;min-width:260px;white-space:normal;line-height:1.4}.issues-table .empty-row td{padding:0;white-space:normal}.empty-state{display:flex;flex-direction:column;align-items:center;gap:12px;padding:36px 20px;text-align:center;color:var(--fg-2)}.empty-state .ui-icon{width:28px;height:28px;color:var(--fg-4);stroke-width:1.8}.empty-state b{font-size:15px;font-weight:600}.empty-tags{display:flex;flex-wrap:wrap;justify-content:center;gap:6px}.empty-tags span{padding:0 8px;border:1px solid var(--outline-soft);border-radius:var(--r-pill);font-size:12px;color:var(--fg-3)}.pager{display:flex;flex-wrap:wrap;align-items:center;gap:8px 16px;padding:10px 20px;border-top:1px solid var(--outline-soft);font-size:12px;color:var(--fg-4)}.pager button{height:30px;padding:0 12px;font-size:12px;color:var(--fg-2)}.pager button:disabled{color:var(--fg-4);border-color:var(--outline-soft);cursor:default;background:transparent}.issue-detail{flex:1 1 320px;max-width:400px;min-width:0;display:flex;flex-direction:column;gap:16px;padding:20px;background:var(--surface);border:1px solid var(--outline-soft);border-radius:var(--r-12)}.issue-detail .detail-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.issue-detail .detail-titles{display:flex;flex-direction:column;gap:4px;min-width:0}.issue-detail h2{margin:0;font-size:15px;font-weight:700;line-height:1.4;color:var(--fg-1);overflow-wrap:anywhere}.issue-detail .detail-close{flex:none;width:32px;height:32px;display:grid;place-items:center;padding:0;border:1px solid var(--outline-soft);border-radius:var(--r-pill);color:var(--fg-3)}.issue-detail .detail-close .ui-icon{width:14px;height:14px}.issue-detail dl{margin:0;display:grid;grid-template-columns:100px minmax(0,1fr);gap:10px 12px;font-size:13px}.issue-detail dt{color:var(--fg-4)}.issue-detail dd{margin:0;color:var(--fg-2);overflow-wrap:anywhere}.issue-detail dd.risk{color:var(--sem-risk-ink)}.issue-detail dd.warn{color:var(--sem-warn-ink)}.issue-detail dd.info{color:var(--sel-fg)}@media(max-width:820px){.issue-detail{max-width:none}.issue-tools .search input{width:140px}}.section-head .seg{flex:none;align-self:auto}.app-shell{flex:none;display:flex;flex-wrap:wrap;align-items:center;gap:12px 24px;padding:12px 32px;background:var(--surface);border-bottom:1px solid var(--outline-soft)}.brand{color:var(--fg-1);font-size:18px;font-weight:700;white-space:nowrap}.brand:hover{color:var(--fg-1);text-decoration:none}.tabs{display:flex;flex-wrap:wrap;gap:4px;padding:4px;min-width:0;background:var(--canvas);border:1px solid var(--outline-soft);border-radius:var(--r-pill)}.tab{display:inline-flex;align-items:center;min-height:32px;padding:0 16px;border-radius:var(--r-pill);color:var(--fg-3);font-size:14px;font-weight:500;white-space:nowrap}.tab:hover{color:var(--fg-1);text-decoration:none}.tab[aria-current=page]{background:var(--sel-bg);color:var(--sel-fg);font-weight:600}.shell-grow{flex:1 1 0}.shell-tools{display:flex;flex-wrap:wrap;align-items:center;gap:8px 24px}.freshness{display:flex;flex-wrap:wrap;align-items:center;min-width:0;color:var(--fg-4);font-size:12px}.fresh-item{display:inline-flex;align-items:center;gap:4px;white-space:nowrap}.fresh-item.stale{color:var(--sem-warn-ink)}.fresh-item.failed{color:var(--sem-risk-ink)}.fresh-flag{padding:0 6px;border:1px solid var(--sem-risk-line);border-radius:var(--r-pill);font-size:11px}.fresh-sep{white-space:pre}.shell-icon{width:14px;height:14px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.theme-switch{display:flex;flex:none;padding:3px;border:1px solid var(--outline-soft);border-radius:var(--r-pill);background:var(--canvas)}.theme-switch button{height:28px;padding:0 12px;border:0;border-radius:var(--r-pill);color:var(--fg-3);font-size:12px}.theme-switch button:hover{background:transparent;color:var(--fg-1)}.theme-switch button[aria-pressed=true]{background:var(--sel-bg);color:var(--sel-fg);font-weight:600}.refresh-button{display:grid;place-items:center;flex:none;width:34px;height:34px;padding:0;border:0;border-radius:var(--r-pill);background:var(--primary);color:#fff}.refresh-button:hover{background:var(--primary-pressed);border:0}.refresh-button .shell-icon{width:16px;height:16px}.app{display:flex;flex-direction:column;min-height:100vh;background:var(--canvas)}.page{flex:1;width:100%;max-width:1440px;margin:0 auto;padding:24px 32px 48px;min-width:0;display:flex;flex-direction:column;gap:20px}.page-head{display:flex;flex-wrap:wrap;align-items:center;gap:10px}.page-head h1{margin:0;font-size:22px;font-weight:700;line-height:1.25}.panel{padding:20px;background:var(--surface);border:1px solid var(--outline-soft);border-radius:var(--r-12);min-width:0}.panel h2{margin:0;font-size:18px;font-weight:700;color:var(--fg-1)}.panel-head{display:flex;flex-wrap:wrap;align-items:center;gap:10px 16px}.grow{flex:1 1 0}@media(max-width:820px){.app-shell{padding:10px 16px;gap:8px 12px}.tab{min-height:30px;padding:0 12px;font-size:13px}.shell-grow{display:none}.page{padding:16px 16px 40px}}
