/* ── Report Panel ── */
.report-panel { display:flex;flex-direction:column;gap:12px;width:100%;padding:12px; }

/* ── Right-panel tab buttons (报告 / AI) ── */
.report-tab-btn { background:none;border:none;padding:4px 10px;border-radius:5px;font-size:11px;font-weight:500;cursor:pointer;color:var(--text2);transition:all .15s;white-space:nowrap; }
.report-tab-btn:hover { color:var(--text);background:var(--surface2); }
.report-tab-btn.active { background:var(--accent);color:#fff; }
/* Pulsing dot on AI tab while running */
.report-tab-btn[data-rtab="ai"].ai-running::after { content:'';display:inline-block;width:5px;height:5px;border-radius:50%;background:var(--orange);margin-left:4px;animation:ai-pulse .9s ease-in-out infinite; }
.report-grid { display:grid;grid-template-columns:repeat(auto-fill,minmax(108px,1fr));gap:8px; }
.report-card { background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:10px 12px;transition:border-color .15s; }
.report-card:hover { border-color:var(--accent); }
.rcard-num { font-size:22px;font-weight:800;line-height:1; }
.rcard-label { font-size:9px;color:var(--text2);margin-top:3px;text-transform:uppercase;letter-spacing:.3px; }

/* ── Issue List + Rows ── */
.issue-list { display:flex;flex-direction:column;gap:5px; }
.issue-row { display:flex;align-items:flex-start;gap:10px;padding:10px 12px;background:var(--surface);border:1px solid var(--border);border-radius:8px;cursor:pointer;transition:border-color .15s,background .15s; }
.issue-row:hover { border-color:var(--accent);background:rgba(99,102,241,.05); }
.issue-row.active { border-color:var(--red);background:rgba(239,68,68,.07); }
.issue-headline { display:flex;align-items:center;gap:5px;margin-bottom:3px;flex-wrap:wrap; }
.issue-locate-btn { margin-left:4px;flex-shrink:0;background:none;border:1px solid var(--border);color:var(--text3);cursor:pointer;font-size:11px;padding:1px 6px;border-radius:4px;line-height:1.4;transition:all .15s; }
.issue-locate-btn:hover { border-color:var(--accent);color:var(--accent);background:rgba(99,102,241,.08); }
.issue-ai-btn { flex-shrink:0;background:none;border:1px solid rgba(99,102,241,.35);color:var(--accent);cursor:pointer;font-size:9px;font-weight:700;padding:1px 7px;border-radius:4px;line-height:1.5;transition:all .15s;margin-left:auto; }
.issue-ai-btn:hover:not(:disabled) { background:rgba(99,102,241,.12);border-color:var(--accent); }
.issue-ai-btn:disabled { opacity:.45;cursor:default; }
.issue-ai-btn.done { color:var(--accent-hover);border-color:rgba(129,140,248,.4);background:rgba(99,102,241,.06); }
.issue-badge { width:24px;height:24px;border-radius:5px;font-size:11px;font-weight:800;display:flex;align-items:center;justify-content:center;flex-shrink:0;color:#fff; }
.issue-content { flex:1;min-width:0; }
.issue-name { font-size:12px;font-weight:600;color:var(--text); }
.i-tag { display:inline-flex;align-items:center;font-size:8px;font-weight:700;padding:1px 5px;border-radius:3px;text-transform:uppercase;letter-spacing:.4px; }
.i-tag-container { background:rgba(99,102,241,.25);color:#a5b4fc; }
.i-tag-margin { background:rgba(245,158,11,.2);color:#fcd34d; }
.i-tag-size { background:rgba(34,197,94,.2);color:#86efac; }
.i-tag-content { background:rgba(168,85,247,.2);color:#d8b4fe; }
.i-sev-high { color:#f87171;font-size:9px;font-weight:700; }
.i-sev-medium { color:#fbbf24;font-size:9px;font-weight:700; }
.i-sev-low { color:var(--text2);font-size:9px;font-weight:700; }
.issue-desc-txt { font-size:10px;color:var(--text2);line-height:1.45; }
.issue-meta { font-size:9px;color:#40424e;font-family:monospace;margin-top:3px; }

/* ── AI stat chips (in summary card) ── */
.ai-stat-chip { display:inline-flex;align-items:center;font-size:9px;font-weight:700;padding:2px 8px;border-radius:10px; }
.ai-stat-chip.enriched { background:rgba(99,102,241,.15);color:var(--accent-hover); }
.ai-stat-chip.changed  { background:rgba(245,158,11,.15);color:var(--orange); }
.ai-stat-chip.ignored  { background:rgba(107,114,128,.15);color:var(--text2); }

/* ── AI change badges (per-issue row) ── */
.ai-change-badge { display:inline-flex;align-items:center;font-size:8px;font-weight:700;padding:1px 6px;border-radius:4px;margin-right:3px; }
.ai-change-badge.type { background:rgba(99,102,241,.14);color:var(--accent-hover); }
.ai-change-badge.sev  { background:rgba(245,158,11,.14);color:var(--orange); }

/* ── AI ignored section ── */
.ai-ignored-group .group-header { opacity:.7; }
.ai-ignored-group .group-header:hover { opacity:1; }
.ignored-row { display:flex;align-items:baseline;gap:7px;padding:5px 10px;border-radius:5px;font-size:10px;color:var(--text2);line-height:1.45; }
.ignored-row:hover { background:var(--surface2); }
.ignored-id { flex-shrink:0;font-size:9px;font-weight:700;color:var(--text3);font-family:monospace;min-width:22px; }
.ignored-reason { flex:1; }

/* ── Report Filters + Groups ── */
.report-filters { display:flex;align-items:center;gap:6px;flex-wrap:wrap;padding:8px 0;border-bottom:1px solid var(--border);margin-bottom:4px; }
.filter-chip { display:inline-flex;align-items:center;gap:5px;padding:4px 11px;background:var(--surface);border:1px solid var(--border);border-radius:14px;font-size:10px;font-weight:600;cursor:pointer;color:var(--text2);transition:all .15s; }
.filter-chip:hover { color:var(--text); }
.filter-chip.active { color:#fff;border-color:var(--accent);background:var(--accent); }
.filter-chip .chip-count { background:rgba(255,255,255,.18);padding:0 6px;border-radius:8px;font-size:9px;font-weight:700; }
.filter-chip:not(.active) .chip-count { background:var(--surface2);color:var(--text2); }

/* ── Pattern (same-control / same-type) summary bar ── */
.pattern-bar { background:var(--surface2);border:1px solid var(--border);border-radius:8px;padding:8px 12px;display:flex;flex-direction:column;gap:6px; }
.pattern-bar-title { font-size:10px;font-weight:700;color:var(--text2);letter-spacing:.3px;text-transform:uppercase; }
.pattern-chips { display:flex;flex-wrap:wrap;gap:5px; }
.pattern-chip { display:inline-flex;align-items:center;gap:5px;padding:4px 10px;border:1px solid color-mix(in srgb,var(--pc) 40%,transparent);background:color-mix(in srgb,var(--pc) 10%,transparent);border-radius:14px;cursor:pointer;transition:all .15s;max-width:260px;overflow:hidden; }
.pattern-chip:hover { background:color-mix(in srgb,var(--pc) 20%,transparent);border-color:var(--pc); }
.pc-icon { font-size:11px;flex-shrink:0; }
.pc-label { font-size:10px;font-weight:600;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:130px; }
.pc-count { font-size:9px;font-weight:800;color:#fff;background:var(--pc);padding:1px 7px;border-radius:9px;flex-shrink:0; }
.pc-val { font-size:9px;color:var(--text2);font-family:monospace;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:90px; }

.report-group { background:var(--surface);border:1px solid var(--border);border-radius:8px;overflow:hidden;transition:outline .15s; }
.group-header { display:flex;align-items:center;gap:8px;padding:9px 12px;cursor:pointer;background:var(--surface2);user-select:none; }
.group-header:hover { background:var(--border); }
.group-arrow { font-size:9px;color:var(--text2);transition:transform .15s; }
.group-header.collapsed .group-arrow { transform:rotate(-90deg); }
.group-title { font-size:12px;font-weight:600;color:var(--text);flex:1; }
.group-count { font-size:10px;color:var(--text2);background:var(--surface);padding:2px 8px;border-radius:10px;font-weight:600; }
.group-body { padding:6px;display:flex;flex-direction:column;gap:4px; }
.group-header.collapsed + .group-body { display:none; }
