/* ═══════════════════════════════════════════════════════════════════════════
   REPORT VIEW — client-ready document renderer for saved Flume reports
   ═══════════════════════════════════════════════════════════════════════════ */

/* ── Report view in AgentTab ── */
.agent-tab-report-view{
  flex:1;display:flex;flex-direction:column;min-height:0;
}
.agent-tab-report-bar{
  display:flex;align-items:center;gap:8px;
  padding:10px 24px;border-bottom:1px solid var(--border);
  flex-shrink:0;
}
.agent-tab-report-bar-title{font-size:13px;color:var(--text2);flex:1}
.agent-tab-report-bar-actions{display:flex;gap:6px;margin-left:auto;flex-shrink:0}
.rpt-export-btn{
  display:inline-flex;align-items:center;gap:4px;
  min-height:30px;padding:4px 10px;border-radius:10px;border:1px solid var(--border);
  background:var(--surface);color:var(--text2);
  font-size:11px;font-weight:600;cursor:pointer;
  transition:background 0.15s,color 0.15s,border-color 0.15s,box-shadow 0.15s;
}
.rpt-export-btn:hover{background:var(--surface-hover);color:var(--text);border-color:var(--border2)}
.rpt-export-btn-primary{background:var(--accent);color:white;border-color:var(--accent);box-shadow:0 10px 22px color-mix(in srgb, var(--accent) 18%, transparent)}
.rpt-export-btn-primary:hover{opacity:0.9}
.agent-tab-report-loading{
  padding:48px 32px;display:flex;flex-direction:column;gap:16px;
  max-width:800px;margin:0 auto;width:100%;
}
.rpt-skeleton{
  background:var(--surface2);border-radius:10px;
  animation:rptPulse 1.4s ease-in-out infinite;
}
.rpt-skeleton-title{height:32px;width:60%;margin-bottom:8px}
.rpt-skeleton-subtitle{height:16px;width:40%;margin-bottom:24px}
.rpt-skeleton-block{height:80px;width:100%;margin-bottom:12px}
@keyframes rptPulse{
  0%,100%{opacity:0.4}
  50%{opacity:0.8}
}
.agent-tab-report-error{
  padding:64px 32px;text-align:center;color:var(--text3);
  display:flex;flex-direction:column;align-items:center;gap:12px;
}
.agent-tab-report-scroll{flex:1;overflow-y:auto;min-height:0}

/* ── Report container ── */
.report-view{
  max-width:1080px;margin:0 auto;padding:36px 28px 52px;
  color:var(--text);font-size:14px;line-height:1.6;
}

/* ── Header ── */
.rpt-header{
  margin-bottom:32px;
  opacity:0;animation:rptBlockIn 0.5s cubic-bezier(0.34,1.18,0.64,1) forwards;
}
.rpt-title{
  font-family:var(--font-display);
  font-size:26px;font-weight:800;color:var(--text);
  letter-spacing:-0.03em;
  margin:0 0 6px;line-height:1.2;
}
.rpt-subtitle{
  font-size:15px;color:var(--text2);margin:0 0 12px;
}
.rpt-meta{
  display:flex;align-items:center;gap:8px;flex-wrap:wrap;
  font-size:12px;color:var(--text3);
}
.rpt-meta-pill{
  display:inline-flex;align-items:center;gap:6px;
  padding:4px 12px;
  background:var(--surface);
  border:1px solid var(--border);
  border-radius:999px;
  font-size:12px;color:var(--text2);
}
.rpt-meta-pill svg{opacity:0.5}
.rpt-date-range{
  font-family:var(--font-mono);font-variant-numeric:tabular-nums;
}
.rpt-platform-pill{border-left:2px solid var(--accent)}
.rpt-header-divider{height:1px;background:var(--border);margin-top:20px}

/* ── Summary ── */
.rpt-summary{
  position:relative;overflow:hidden;
  padding:18px 22px;margin-bottom:32px;
  background:color-mix(in srgb, var(--accent) 8%, var(--surface));
  border:1px solid color-mix(in srgb, var(--accent) 18%, var(--border));
  border-top:3px solid var(--accent);
  border-radius:14px;
  box-shadow:var(--shadow);
  opacity:0;animation:rptBlockIn 0.5s cubic-bezier(0.34,1.18,0.64,1) 80ms forwards;
}
.rpt-summary-headline{
  font-size:15px;font-weight:600;color:var(--text);margin:0;line-height:1.5;
}
.rpt-summary-body{
  font-size:14px;font-weight:400;color:var(--text2);margin:8px 0 0;line-height:1.65;
}
.rpt-confidence{
  display:inline-block;margin-top:8px;
  font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:0.06em;
  padding:3px 10px;border-radius:12px;
}
.rpt-confidence-high{background:color-mix(in srgb, var(--green) 15%, transparent);color:var(--green)}
.rpt-confidence-medium{background:color-mix(in srgb, var(--amber) 15%, transparent);color:var(--amber)}
.rpt-confidence-low{background:color-mix(in srgb, var(--red) 15%, transparent);color:var(--red)}

.rpt-lead-grid{
  display:grid;
  gap:20px;
  align-items:stretch;
  margin-bottom:32px;
}
.rpt-summary-compact{
  margin-bottom:0;
  height:100%;
}
.rpt-lead-grid-cell{
  min-width:0;
}

/* ── Blocks ── */
.rpt-block{margin-top:32px}
.rpt-block:first-child{margin-top:0}
.rpt-block-animated{
  opacity:0;
  animation:rptBlockIn 0.45s cubic-bezier(0.34,1.18,0.64,1) forwards;
}
@keyframes rptBlockIn{
  from{opacity:0;transform:translateY(12px)}
  to{opacity:1;transform:translateY(0)}
}

/* ── Contextual spacing (Part B1) ── */
/* Section headers pull close to their content */
.rpt-block[data-type="section_header"] + .rpt-block{margin-top:16px}
/* Extra breathing room before a new section */
.rpt-block + .rpt-block[data-type="section_header"]{margin-top:44px}
/* Consecutive charts tighten */
.rpt-block[data-type="chart"] + .rpt-block[data-type="chart"]{margin-top:24px}
/* Consecutive data-dense blocks tighten */
.rpt-block[data-type="metric_comparison"] + .rpt-block[data-type="progress_bar"],
.rpt-block[data-type="progress_bar"] + .rpt-block[data-type="metric_comparison"]{margin-top:24px}
/* KPI row after summary needs less gap (header already provides space) */
.rpt-block[data-type="kpi_row"]:first-child{margin-top:0}
/* Intro text after section header is tight */
.rpt-block[data-type="section_header"] + .rpt-block[data-type="intro"]{margin-top:8px}
/* Callout/annotation after chart — medium gap */
.rpt-block[data-type="chart"] + .rpt-block[data-type="callout"],
.rpt-block[data-type="chart"] + .rpt-block[data-type="annotation"]{margin-top:28px}
/* Stat highlight gets breathing room */
.rpt-block + .rpt-block[data-type="stat_highlight"]{margin-top:40px}
.rpt-block[data-type="stat_highlight"] + .rpt-block{margin-top:40px}
/* Divider spacing is self-contained */
.rpt-block[data-type="divider"]{margin-top:32px}
.rpt-block[data-type="divider"] + .rpt-block{margin-top:32px}
/* Timeline and funnel get standard spacing */
.rpt-block[data-type="recommendations"]{margin-top:48px}

/* ── Row layout ── */
.rpt-row{
  display:flex;gap:24px;align-items:stretch;
}
.rpt-row-cell{flex:1;min-width:0}
.rpt-row-cell + .rpt-row-cell{border-left:1px solid var(--border);padding-left:20px}
.rpt-row-cell .rpt-chart-wrap{height:100%;display:flex;flex-direction:column}
.rpt-row-cell .rpt-annotation,.rpt-row-cell .rpt-callout{height:100%}

/* Smart row proportions (Part B2) — auto-size by content type */
.rpt-row-cell:has(.rpt-chart-wrap),
.rpt-row-cell:has(.rpt-heatmap),
.rpt-row-cell:has(.rpt-funnel){flex:2}
.rpt-row-cell:has(.rpt-callout),
.rpt-row-cell:has(.rpt-annotation),
.rpt-row-cell:has(.rpt-progress),
.rpt-row-cell:has(.rpt-timeline){flex:1}

.rpt-accent-row{
  display:grid;
  gap:18px;
  align-items:stretch;
}
.rpt-accent-row-cell{
  min-width:0;
}
.rpt-accent-row-cell .rpt-annotation,
.rpt-accent-row-cell .rpt-callout,
.rpt-accent-row-cell .rpt-stat-hl{
  height:100%;
}

@media(max-width:900px){
  .rpt-lead-grid,
  .rpt-accent-row{grid-template-columns:1fr!important}
  .rpt-row{flex-direction:column}
  .rpt-row-cell + .rpt-row-cell{border-left:none;padding-left:0;border-top:1px solid var(--border);padding-top:20px}
}

/* ── Intro ── */
.rpt-intro{
  font-size:14px;line-height:1.65;color:var(--text2);margin:0;
}

/* ── Section header ── */
.rpt-section-header{
  padding-top:32px;margin-bottom:8px;
  border-top:1px solid var(--border);
}
.rpt-section-header h2{
  font-family:var(--font-display);
  font-size:18px;font-weight:700;color:var(--text);
  letter-spacing:-0.02em;
  margin:12px 0 0;
}
.rpt-section-subtitle{
  font-size:13px;color:var(--text3);margin:4px 0 0;
}
/* Section accent colours */
.rpt-section-header[data-accent="green"]{border-top-color:var(--green)}
.rpt-section-header[data-accent="green"] h2{color:var(--green)}
.rpt-section-header[data-accent="amber"]{border-top-color:var(--amber)}
.rpt-section-header[data-accent="amber"] h2{color:var(--amber)}
.rpt-section-header[data-accent="red"]{border-top-color:var(--red)}
.rpt-section-header[data-accent="red"] h2{color:var(--red)}
.rpt-section-header[data-accent="accent"]{border-top-color:var(--accent)}
.rpt-section-header[data-accent="accent"] h2{color:var(--accent)}

/* ── KPI row ── */
.rpt-kpi-row{
  display:grid;
  grid-template-columns:repeat(auto-fit, minmax(180px, 1fr));
  gap:14px;
}
.rpt-kpi-card{
  padding:16px 16px 14px;
  background:var(--surface2);
  border:1px solid var(--border);
  border-radius:10px;
  text-align:left;
  box-shadow:none;
}
.rpt-kpi-card:first-child{border-top:3px solid var(--accent)}
.rpt-kpi-label{
  font-size:11px;font-weight:600;
  text-transform:uppercase;letter-spacing:0.06em;
  color:var(--text3);margin-bottom:8px;
}
.rpt-kpi-value{
  font-size:22px;font-weight:700;
  font-family:var(--font-mono);font-variant-numeric:tabular-nums;
  color:var(--text);line-height:1.15;
  letter-spacing:-0.03em;
}
.rpt-kpi-unit{
  font-size:14px;font-weight:500;color:var(--text2);margin-left:2px;
}
.rpt-kpi-subtext{
  margin-top:4px;
  font-size:11px;
  color:var(--text3);
  text-transform:uppercase;
  letter-spacing:0.05em;
}
.rpt-kpi-change{
  font-size:12px;margin-top:8px;
  font-family:var(--font-mono);font-variant-numeric:tabular-nums;
  color:var(--text3);
}
.rpt-kpi-change.pos{color:var(--green)}
.rpt-kpi-change.warn{color:var(--amber)}
.rpt-kpi-change.neg{color:var(--red)}

/* ── Chart wrap ── */
.rpt-chart-wrap{
  padding:20px;
  background:var(--surface);
  border:1px solid var(--border);
  border-radius:14px;
  box-shadow:none;
}
.rpt-chart-title{
  font-family:var(--font-display);
  font-size:14px;font-weight:600;color:var(--text);
  letter-spacing:-0.01em;
  margin-bottom:16px;
}

/* ── Donut ── */
.rpt-donut-container{
  display:flex;align-items:center;gap:32px;
  flex-wrap:wrap;justify-content:center;
}
.rpt-donut-legend{
  display:flex;flex-direction:column;gap:10px;
  min-width:180px;
}
.rpt-donut-legend-item{
  display:flex;align-items:center;gap:8px;
  font-size:14px;color:var(--text);
}
.rpt-donut-legend-dot{
  width:12px;height:12px;border-radius:50%;flex-shrink:0;
}
.rpt-donut-legend-label{
  flex:1;overflow:hidden;text-overflow:ellipsis;
}
.rpt-donut-legend-val{
  font-family:var(--font-mono);font-variant-numeric:tabular-nums;
  color:var(--text2);font-size:13px;white-space:nowrap;
}

/* ── Table ── */
.rpt-table-wrap{overflow-x:auto}
.rpt-table{
  width:100%;border-collapse:collapse;font-size:13px;
}
.rpt-table th{
  font-size:11px;font-weight:600;
  text-transform:uppercase;letter-spacing:0.05em;
  text-align:left;padding:12px 14px;
  background:var(--surface);
  border-bottom:1px solid var(--border);
  color:var(--text3);
}
.rpt-table td{
  padding:10px 14px;
  border-bottom:1px solid color-mix(in srgb, var(--border) 50%, transparent);
  color:var(--text);
}
.rpt-table tbody tr:nth-child(even){
  background:color-mix(in srgb, var(--surface2) 70%, transparent);
}
.rpt-table tbody tr:hover{
  background:color-mix(in srgb, var(--accent) 6%, transparent);
}
.rpt-table td.num{
  text-align:right;
  font-family:var(--font-mono);font-variant-numeric:tabular-nums;
}
.rpt-table th.highlight,.rpt-table td.highlight{
  background:color-mix(in srgb, var(--accent) 12%, transparent);
}

/* ── Annotation (pull-quote style) ── */
.rpt-annotation{
  position:relative;
  padding:18px 22px 18px 44px;
  border-left:3px solid var(--text3);
  border-radius:14px;
  background:color-mix(in srgb, var(--surface) 88%, var(--surface2) 12%);
  border-top:1px solid var(--border);
  border-right:1px solid var(--border);
  border-bottom:1px solid var(--border);
  box-shadow:var(--shadow);
}
.rpt-annotation::before{
  content:'\201C';
  font-size:48px;line-height:1;
  font-family:Georgia,'Times New Roman',serif;
  color:var(--text3);opacity:0.3;
  position:absolute;top:8px;left:12px;
}
.rpt-annotation-title{
  font-family:var(--font-display);
  font-size:14px;font-weight:600;font-style:italic;color:var(--text);
  margin-bottom:6px;
}
.rpt-annotation-body{
  font-size:13px;color:var(--text2);line-height:1.65;
}

/* ── Callout ── */
.rpt-callout{
  padding:18px 22px;border-radius:14px;
  border:1px solid var(--border);
  box-shadow:var(--shadow);
}
.rpt-callout-header{
  display:flex;align-items:center;gap:8px;margin-bottom:6px;
}
.rpt-callout-header svg{flex-shrink:0}
.rpt-callout-info{
  background:color-mix(in srgb, var(--accent) 8%, var(--surface));
  border-left:3px solid var(--accent);
}
.rpt-callout-warning{
  background:color-mix(in srgb, var(--amber) 8%, var(--surface));
  border-left:3px solid var(--amber);
}
.rpt-callout-success{
  background:color-mix(in srgb, var(--green) 8%, var(--surface));
  border-left:3px solid var(--green);
}
.rpt-callout-title{
  font-size:14px;font-weight:600;color:var(--text);
}
.rpt-callout-body{
  font-size:13px;color:var(--text2);line-height:1.65;
}

/* ── Recommendations ── */
.rpt-recommendations{display:flex;flex-direction:column;gap:16px}
.rpt-rec-item{
  padding:18px 22px;
  background:var(--surface);
  border:1px solid var(--border);
  border-radius:14px;
  box-shadow:var(--shadow);
}
.rpt-rec-header{
  display:flex;align-items:center;gap:10px;margin-bottom:6px;
}
.rpt-rec-number{
  width:28px;height:28px;
  display:flex;align-items:center;justify-content:center;
  background:var(--gradient-success);color:white;
  border-radius:50%;font-size:13px;font-weight:700;flex-shrink:0;
}
.rpt-rec-title{
  font-size:14px;font-weight:600;color:var(--text);flex:1;
}
.rpt-rec-priority{
  font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:0.05em;
  padding:3px 10px;border-radius:12px;
}
.rpt-rec-priority-high{background:color-mix(in srgb, var(--red) 15%, transparent);color:var(--red)}
.rpt-rec-priority-medium{background:color-mix(in srgb, var(--amber) 15%, transparent);color:var(--amber)}
.rpt-rec-priority-low{background:color-mix(in srgb, var(--green) 15%, transparent);color:var(--green)}
.rpt-rec-body{
  font-size:13px;color:var(--text2);line-height:1.65;
  padding-left:38px;
}

/* ── Stat highlight ── */
.rpt-stat-hl{
  padding:28px 28px 24px;
  background:var(--surface);
  border:1px solid var(--border);
  border-left:4px solid var(--accent);
  border-radius:14px;
  box-shadow:var(--shadow);
}
.rpt-stat-hl[data-accent="green"]{border-left-color:var(--green)}
.rpt-stat-hl[data-accent="amber"]{border-left-color:var(--amber)}
.rpt-stat-hl[data-accent="red"]{border-left-color:var(--red)}
.rpt-stat-hl[data-accent="accent"]{border-left-color:var(--accent)}
.rpt-stat-hl-label{
  font-size:12px;font-weight:600;
  text-transform:uppercase;letter-spacing:0.06em;
  color:var(--text3);margin-bottom:8px;
}
.rpt-stat-hl-value{
  font-size:36px;font-weight:800;
  font-family:var(--font-mono);font-variant-numeric:tabular-nums;
  color:var(--text);line-height:1.1;
}
.rpt-stat-hl-change{
  display:inline-block;margin-top:10px;
  font-size:13px;font-weight:600;
  font-family:var(--font-mono);font-variant-numeric:tabular-nums;
  color:var(--text3);
}
.rpt-stat-hl-change.pos{color:var(--green)}
.rpt-stat-hl-change.neg{color:var(--red)}
.rpt-stat-hl-context{
  font-size:13px;color:var(--text2);line-height:1.65;
  margin:12px 0 0;
}

/* ── Metric comparison ── */
.rpt-metric-comp{
  background:var(--surface);
  border:1px solid var(--border);
  border-radius:14px;
  box-shadow:var(--shadow);
  overflow:hidden;
}
.rpt-metric-comp-table{
  width:100%;border-collapse:collapse;font-size:13px;
}
.rpt-metric-comp-table th{
  font-size:11px;font-weight:600;
  text-transform:uppercase;letter-spacing:0.05em;
  text-align:left;padding:12px 16px;
  background:color-mix(in srgb, var(--surface) 90%, var(--surface2) 10%);color:var(--text3);
  border-bottom:1px solid var(--border);
}
.rpt-metric-comp-table td{
  padding:12px 16px;
  border-bottom:1px solid color-mix(in srgb, var(--border) 50%, transparent);
  color:var(--text);
}
.rpt-metric-comp-table tbody tr:last-child td{border-bottom:none}
.rpt-metric-comp-table .num{
  text-align:right;
  font-family:var(--font-mono);font-variant-numeric:tabular-nums;
}
.rpt-mc-delta{font-weight:600}
.rpt-mc-delta-positive{color:var(--green)}
.rpt-mc-delta-negative{color:var(--red)}
.rpt-mc-delta-neutral{color:var(--text3)}
.rpt-mc-arrow{margin-right:4px;font-size:10px}
.rpt-metric-comp-period{
  padding:8px 16px;font-size:11px;color:var(--text3);
  text-align:right;font-style:italic;
}

/* ── Progress bar ── */
.rpt-progress{display:flex;flex-direction:column;gap:16px}
.rpt-progress-row{}
.rpt-progress-header{
  display:flex;justify-content:space-between;align-items:baseline;
  margin-bottom:6px;
}
.rpt-progress-label{font-size:13px;font-weight:500;color:var(--text)}
.rpt-progress-value{
  font-size:12px;color:var(--text3);
  font-family:var(--font-mono);font-variant-numeric:tabular-nums;
}
.rpt-progress-track{
  position:relative;height:12px;
  background:color-mix(in srgb, var(--border) 40%, transparent);
  border-radius:6px;overflow:hidden;
}
.rpt-progress-fill{
  height:100%;border-radius:6px;
  transition:width 0.3s ease;
}
.rpt-progress-fill-high{background:var(--green)}
.rpt-progress-fill-mid{background:var(--amber)}
.rpt-progress-fill-low{background:var(--red)}
.rpt-progress-target{
  position:absolute;right:0;top:-2px;bottom:-2px;
  width:2px;background:var(--text);opacity:0.3;
  border-radius:1px;
}

/* ── Timeline ── */
.rpt-timeline{
  position:relative;
  padding-left:24px;
}
.rpt-timeline::before{
  content:'';position:absolute;
  left:5px;top:8px;bottom:8px;
  width:2px;background:var(--border);
  border-radius:1px;
}
.rpt-timeline-event{
  position:relative;
  padding:8px 0 16px;
  display:flex;align-items:baseline;gap:12px;
}
.rpt-timeline-event:last-child{padding-bottom:0}
.rpt-timeline-dot{
  position:absolute;left:-22px;top:12px;
  width:10px;height:10px;
  border-radius:50%;
  border:1px solid var(--surface);
  box-shadow:0 0 0 1px color-mix(in srgb, var(--border) 85%, transparent);
  flex-shrink:0;
}
.rpt-timeline-date{
  font-size:12px;font-weight:600;
  font-family:var(--font-mono);font-variant-numeric:tabular-nums;
  color:var(--text3);
  min-width:56px;flex-shrink:0;
}
.rpt-timeline-label{
  font-size:13px;color:var(--text);line-height:1.5;
}

/* ── Divider ── */
.rpt-divider{text-align:center;position:relative}
.rpt-divider-line{
  border-top:1px solid var(--border);
}
.rpt-divider-label{
  position:relative;top:-0.65em;
  display:inline-block;
  padding:0 16px;
  background:var(--surface);
  font-size:11px;font-weight:600;
  text-transform:uppercase;letter-spacing:0.06em;
  color:var(--text3);
}
.rpt-divider-dots{
  font-size:18px;letter-spacing:8px;
  color:var(--text3);opacity:0.5;
}
.rpt-divider-space{height:32px}

/* ── Scorecard ── */
.rpt-scorecard{
  background:var(--surface);
  border:1px solid var(--border);
  border-radius:14px;
  box-shadow:var(--shadow);
  padding:24px;
  text-align:center;
}
.rpt-scorecard svg{
  max-width:260px;
  margin:0 auto;
  display:block;
}
.rpt-scorecard-breakdown{
  display:flex;flex-direction:column;gap:10px;
  margin-top:16px;padding-top:16px;
  border-top:1px solid var(--border);
  text-align:left;
}
.rpt-scorecard-bd-row{
  display:flex;align-items:center;gap:10px;
}
.rpt-scorecard-bd-label{
  font-size:12px;color:var(--text2);
  min-width:120px;flex-shrink:0;
}
.rpt-scorecard-bd-track{
  flex:1;height:6px;
  background:color-mix(in srgb, var(--border) 40%, transparent);
  border-radius:3px;overflow:hidden;
}
.rpt-scorecard-bd-fill{
  height:100%;border-radius:3px;
}
.rpt-scorecard-bd-score{
  font-size:12px;font-weight:600;
  font-family:var(--font-mono);font-variant-numeric:tabular-nums;
  color:var(--text);
  min-width:24px;text-align:right;
}

/* ── Hover shadow elevations ── */
.rpt-kpi-card,
.rpt-chart-wrap,
.rpt-summary,
.rpt-annotation,
.rpt-callout,
.rpt-rec-item,
.rpt-stat-hl,
.rpt-metric-comp,
.rpt-scorecard {
  transition:box-shadow 0.18s ease,border-color 0.18s ease;
}
/* Cards with no base shadow: lift on hover */
.rpt-kpi-card:hover,
.rpt-chart-wrap:hover {
  box-shadow:var(--shadow);
  border-color:var(--border2);
}
/* Cards with base shadow: elevate on hover */
.rpt-summary:hover,
.rpt-annotation:hover,
.rpt-callout:hover,
.rpt-stat-hl:hover,
.rpt-rec-item:hover,
.rpt-metric-comp:hover,
.rpt-scorecard:hover {
  box-shadow:var(--shadow-lg);
}
/* Full-border cards without accent side borders: also brighten border */
.rpt-rec-item:hover,
.rpt-metric-comp:hover,
.rpt-scorecard:hover {
  border-color:var(--border2);
}

/* ── Allocation overview ── */
.rpt-alloc{display:flex;flex-direction:column;gap:16px}
.rpt-alloc-head{
  display:flex;align-items:flex-end;justify-content:space-between;gap:16px;
}
.rpt-alloc-total-label{
  font-size:11px;color:var(--text3);text-transform:uppercase;letter-spacing:0.05em;margin-top:4px;
}
.rpt-alloc-total-value{
  font-family:var(--font-mono);font-variant-numeric:tabular-nums;
  font-size:20px;font-weight:700;letter-spacing:-0.03em;
}
.rpt-alloc-strip{
  display:flex;height:18px;border-radius:999px;overflow:hidden;background:var(--surface3);
}
.rpt-alloc-strip-seg{display:block;height:100%}
.rpt-alloc-strip-other{background:color-mix(in srgb, var(--text3) 45%, var(--surface3))}
.rpt-alloc-list{display:flex;flex-direction:column;gap:10px}
.rpt-alloc-row{
  display:grid;grid-template-columns:minmax(0, 1.8fr) minmax(0, 1.4fr) 52px 82px;gap:10px;align-items:center;
}
.rpt-alloc-row-label{display:flex;align-items:center;gap:8px;min-width:0}
.rpt-alloc-row-dot{width:10px;height:10px;border-radius:50%;flex-shrink:0}
.rpt-alloc-row-dot-other{background:color-mix(in srgb, var(--text3) 50%, white)}
.rpt-alloc-row-name{font-size:13px;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.rpt-alloc-row-bar{height:8px;background:var(--surface3);border-radius:999px;overflow:hidden}
.rpt-alloc-row-fill{display:block;height:100%;border-radius:999px}
.rpt-alloc-row-fill-other{background:color-mix(in srgb, var(--text3) 45%, var(--surface3))}
.rpt-alloc-row-share,.rpt-alloc-row-value{
  font-size:12px;color:var(--text2);font-family:var(--font-mono);font-variant-numeric:tabular-nums;text-align:right;
}
.rpt-alloc-stats{
  display:grid;grid-template-columns:repeat(4, minmax(0, 1fr));gap:10px;
}
.rpt-alloc-stat{
  padding:10px 12px;background:var(--surface2);border:1px solid var(--border);border-radius:10px;
}
.rpt-alloc-stat-label{font-size:11px;color:var(--text3);text-transform:uppercase;letter-spacing:0.05em}
.rpt-alloc-stat-value{font-size:16px;font-weight:700;margin-top:4px}
.rpt-alloc-note{font-size:12px;color:var(--text3)}

/* ── Health panel ── */
.rpt-health{
  padding:20px;background:var(--surface);
  border:1px solid var(--border);border-radius:12px;
  display:flex;flex-direction:column;gap:16px;
}
.rpt-health-head{
  display:grid;grid-template-columns:minmax(0, 140px) minmax(0, 1fr);gap:18px;align-items:end;
}
.rpt-health-kicker{
  font-size:11px;text-transform:uppercase;letter-spacing:0.06em;color:var(--text3);margin-bottom:6px;
}
.rpt-health-score-row{display:flex;align-items:flex-end;gap:10px}
.rpt-health-score{
  font-size:42px;line-height:1;font-weight:800;
  font-family:var(--font-mono);font-variant-numeric:tabular-nums;letter-spacing:-0.04em;
}
.rpt-health-grade{
  padding:4px 10px;border-radius:999px;background:color-mix(in srgb, var(--accent) 10%, transparent);
  color:var(--accent);font-size:12px;font-weight:700;margin-bottom:4px;
}
.rpt-health-band-track{
  position:relative;display:grid;grid-template-columns:1fr 1fr 1fr;
  height:16px;border-radius:999px;overflow:hidden;border:1px solid var(--border);
}
.rpt-health-band-seg{display:block;height:100%}
.rpt-health-band-bad{background:color-mix(in srgb, var(--red) 55%, white)}
.rpt-health-band-warn{background:color-mix(in srgb, var(--amber) 60%, white)}
.rpt-health-band-good{background:color-mix(in srgb, var(--green) 55%, white)}
.rpt-health-band-marker{
  position:absolute;top:-4px;bottom:-4px;width:3px;border-radius:999px;background:var(--text);
  transform:translateX(-50%);
}
.rpt-health-band-scale{
  display:flex;justify-content:space-between;font-size:11px;color:var(--text3);margin-top:6px;
  font-family:var(--font-mono);font-variant-numeric:tabular-nums;
}
.rpt-health-summary{font-size:13px;color:var(--text2);line-height:1.55}
.rpt-health-distribution{display:flex;flex-wrap:wrap;gap:8px}
.rpt-health-chip{
  display:inline-flex;align-items:center;gap:8px;padding:6px 10px;border-radius:999px;
  background:var(--surface2);font-size:12px;color:var(--text2);border:1px solid var(--border);
}
.rpt-health-chip strong{font-family:var(--font-mono);font-variant-numeric:tabular-nums;color:var(--text)}
.rpt-health-chip-good{background:color-mix(in srgb, var(--green) 10%, transparent);border-color:color-mix(in srgb, var(--green) 25%, var(--border))}
.rpt-health-chip-warn{background:color-mix(in srgb, var(--amber) 10%, transparent);border-color:color-mix(in srgb, var(--amber) 25%, var(--border))}
.rpt-health-chip-bad{background:color-mix(in srgb, var(--red) 10%, transparent);border-color:color-mix(in srgb, var(--red) 25%, var(--border))}
.rpt-health-drivers{display:flex;flex-direction:column;gap:12px}
.rpt-health-driver{
  display:grid;grid-template-columns:minmax(0, 1fr) 44px;gap:10px;align-items:center;
}
.rpt-health-driver-head{
  display:flex;justify-content:space-between;gap:12px;align-items:baseline;
}
.rpt-health-driver-label{font-size:13px;color:var(--text)}
.rpt-health-driver-score{
  font-family:var(--font-mono);font-variant-numeric:tabular-nums;font-size:12px;font-weight:700;text-align:right;
}
.rpt-health-driver-score-good{color:var(--green)}
.rpt-health-driver-score-warn{color:var(--amber)}
.rpt-health-driver-score-bad{color:var(--red)}
.rpt-health-driver-track{
  grid-column:1 / span 1;height:8px;background:var(--surface3);border-radius:999px;overflow:hidden;
}
.rpt-health-driver-fill{display:block;height:100%;border-radius:999px}
.rpt-health-driver-fill-good{background:var(--green)}
.rpt-health-driver-fill-warn{background:var(--amber)}
.rpt-health-driver-fill-bad{background:var(--red)}
.rpt-health-driver-fill-neutral{background:var(--accent)}
.rpt-health-driver-detail{
  grid-column:1 / span 2;font-size:12px;color:var(--text3);
}

/* ── Variance table ── */
.rpt-var-table{display:flex;flex-direction:column;gap:10px}
.rpt-var-table-subtitle{font-size:12px;color:var(--text3);margin-top:-4px}
.rpt-var-table-wrap{overflow-x:visible}
.rpt-var-table-table{width:100%;border-collapse:collapse;font-size:13px;table-layout:fixed}
.rpt-var-col-portfolio{width:34%}
.rpt-var-col-planned{width:18%}
.rpt-var-col-actual{width:18%}
.rpt-var-col-variance{width:16%}
.rpt-var-col-status{width:14%}
.rpt-var-table-table th{
  text-align:left;padding:12px 14px;font-size:11px;text-transform:uppercase;letter-spacing:0.05em;color:var(--text3);
  background:var(--surface2);border-bottom:1px solid var(--border);
}
.rpt-var-table-table th.num{text-align:right}
.rpt-var-table-table td{
  padding:12px 14px;border-bottom:1px solid color-mix(in srgb, var(--border) 50%, transparent);
  vertical-align:top;
}
.rpt-var-table-table td.num{
  text-align:right;font-family:var(--font-mono);font-variant-numeric:tabular-nums;
}
.rpt-var-label{
  font-size:13px;font-weight:600;color:var(--text);
  overflow-wrap:anywhere;
}
.rpt-var-tone-good{color:var(--green)}
.rpt-var-tone-warn{color:var(--amber)}
.rpt-var-tone-bad{color:var(--red)}
.rpt-var-main{display:block}
.rpt-var-pct{display:block;font-size:11px;color:var(--text3);margin-top:2px}
.rpt-var-status-cell{text-align:left}
.rpt-var-status{
  display:inline-flex;align-items:center;max-width:100%;
  padding:6px 12px;border-radius:999px;border:1px solid var(--border);
  font-size:11px;font-weight:600;line-height:1.35;
  white-space:normal;
  min-inline-size:min(100%, 10.5rem);
  justify-content:center;
}
.rpt-var-status-good{background:color-mix(in srgb, var(--green) 10%, transparent);color:var(--green)}
.rpt-var-status-warn{background:color-mix(in srgb, var(--amber) 10%, transparent);color:var(--amber)}
.rpt-var-status-bad{background:color-mix(in srgb, var(--red) 10%, transparent);color:var(--red)}
.rpt-var-status-neutral{background:var(--surface2);color:var(--text2)}
.rpt-var-note{font-size:12px;color:var(--text3)}

.rpt-row-cell .rpt-var-table{gap:8px}
.rpt-row-cell .rpt-var-table-subtitle{font-size:11px}
.rpt-row-cell .rpt-var-col-portfolio{width:30%}
.rpt-row-cell .rpt-var-col-planned{width:14%}
.rpt-row-cell .rpt-var-col-actual{width:14%}
.rpt-row-cell .rpt-var-col-variance{width:16%}
.rpt-row-cell .rpt-var-col-status{width:26%}
.rpt-row-cell .rpt-var-table-table{font-size:12px}
.rpt-row-cell .rpt-var-table-table th{
  padding:10px 10px;
  font-size:10px;
  letter-spacing:0.04em;
}
.rpt-row-cell .rpt-var-table-table td{
  padding:10px 10px;
}
.rpt-row-cell .rpt-var-label{
  font-size:11px;
}
.rpt-row-cell .rpt-var-main{
  font-size:12px;
}
.rpt-row-cell .rpt-var-pct{
  font-size:10px;
}
.rpt-row-cell .rpt-var-status{
  font-size:10px;
  padding:7px 12px;
  min-inline-size:min(100%, 9.5rem);
}

/* ── Ranked metric list ── */
.rpt-rank{display:flex;flex-direction:column;gap:12px}
.rpt-rank-list{display:flex;flex-direction:column;gap:12px}
.rpt-rank-row{
  display:grid;grid-template-columns:minmax(0, 1.5fr) minmax(180px, 150px);gap:14px;align-items:center;
}
.rpt-rank-main{display:grid;grid-template-columns:minmax(0, 180px) minmax(0, 1fr);gap:12px;align-items:center}
.rpt-rank-label{
  font-size:13px;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
}
.rpt-rank-track{
  position:relative;height:12px;background:var(--surface3);border-radius:999px;overflow:hidden;
}
.rpt-rank-marker{
  position:absolute;top:-2px;bottom:-2px;width:2px;background:var(--text);opacity:0.45;transform:translateX(-50%);
}
.rpt-rank-fill{display:block;height:100%;border-radius:999px}
.rpt-rank-fill-good{background:var(--green)}
.rpt-rank-fill-warn{background:var(--amber)}
.rpt-rank-fill-bad{background:var(--red)}
.rpt-rank-fill-neutral{background:var(--accent)}
.rpt-rank-values{text-align:right}
.rpt-rank-value,.rpt-rank-delta{
  font-family:var(--font-mono);font-variant-numeric:tabular-nums;font-size:12px;
}
.rpt-rank-value-good,.rpt-rank-delta-good{color:var(--green)}
.rpt-rank-value-warn,.rpt-rank-delta-warn{color:var(--amber)}
.rpt-rank-value-bad,.rpt-rank-delta-bad{color:var(--red)}
.rpt-rank-detail{font-size:11px;color:var(--text3);margin-top:2px}
.rpt-rank-note{font-size:12px;color:var(--text3)}

/* ── Heatmap (styles supplement SVG in ReportHeatmap.tsx) ── */
.rpt-heatmap{overflow-x:auto}

/* ── Funnel ── */
.rpt-funnel-wrap{}
.rpt-funnel{
  display:flex;flex-direction:column;align-items:center;gap:10px;
}
.rpt-funnel-stage-wrap{
  width:100%;
}
.rpt-funnel-row{
  display:grid;grid-template-columns:minmax(86px, 110px) 68px minmax(0, 1fr) 132px;align-items:center;gap:16px;width:100%;
}
.rpt-funnel-value-col{
  display:flex;align-items:center;min-height:42px;
}
.rpt-funnel-rate-col{
  display:flex;align-items:center;min-height:42px;
}
.rpt-funnel-value-chip{
  display:inline-flex;align-items:center;justify-content:center;
  min-height:38px;padding:0 14px;border-radius:12px;border:1px solid var(--border);
  font-family:var(--font-mono);font-variant-numeric:tabular-nums;
  font-size:15px;font-weight:700;color:var(--text);
  white-space:nowrap;
}
.rpt-funnel-track-col{
  min-width:0;display:flex;align-items:center;
}
.rpt-funnel-track{
  position:relative;
  width:100%;
  min-width:0;
  height:42px;
  border-radius:12px;
  background:var(--surface2);
  overflow:hidden;
}
.rpt-funnel-bar{
  height:100%;
  border-radius:12px;
  min-width:0;
}
.rpt-funnel-label{
  font-size:13px;color:var(--text2);
  width:100%;
  min-height:42px;
  display:flex;
  align-items:center;
  white-space:nowrap;
  text-align:left;
  flex-shrink:0;
}
.rpt-funnel-rate{
  font-size:11px;font-weight:600;
  font-family:var(--font-mono);font-variant-numeric:tabular-nums;
  color:var(--text3);padding-left:2px;
  line-height:1;
  white-space:nowrap;
}

/* ── Error + empty states ── */
.rpt-block-error{
  padding:16px 20px;
  background:color-mix(in srgb, var(--amber) 10%, transparent);
  border:1px dashed var(--amber);
  border-radius:8px;
  font-size:13px;color:var(--amber);
}
.rpt-error-state,.rpt-empty-state{
  padding:64px 32px;
  text-align:center;
  display:flex;flex-direction:column;align-items:center;gap:12px;
}
.rpt-error-icon svg{width:32px;height:32px}
.rpt-error-title{
  font-family:var(--font-display);
  font-size:16px;font-weight:600;color:var(--text);
}
.rpt-error-hint{font-size:13px;color:var(--text3)}

/* ── Print styles ── */
@media print{
  .report-view{color:#1a1a1a;max-width:100%;padding:0}
  .agent-tab-report-scroll{overflow:visible}
  .agent-tab-report-bar{display:none}
  .rpt-chart-wrap,.rpt-kpi-card,.rpt-rec-item,
  .rpt-annotation,.rpt-callout,.rpt-summary{box-shadow:none!important;backdrop-filter:none!important}
  .rpt-summary{background:#f0fdf4!important}
  .rpt-callout-info{background:#f0fdf4!important}
  .rpt-callout-warning{background:#fffbeb!important}
  .rpt-callout-success{background:#f0fdf4!important}
  .rpt-kpi-card{background:#f9fafb!important;border:1px solid #e5e7eb!important}
  .rpt-chart-wrap{background:#fff!important;border:1px solid #e5e7eb!important}
  .rpt-table th{background:#f3f4f6!important;border-bottom:2px solid #059669!important}
  .rpt-table td{border-bottom:1px solid #e5e7eb!important}
  .rpt-table tbody tr:nth-child(even){background:#f9fafb!important}
  .rpt-rec-number{background:#059669!important;color:white!important}
  .rpt-block-animated,.rpt-header,.rpt-summary{animation:none!important;opacity:1!important;transform:none!important}
  .rpt-chart-wrap,.rpt-kpi-row,.rpt-rec-item,.rpt-callout,.rpt-annotation,.rpt-row,
  .rpt-stat-hl,.rpt-metric-comp,.rpt-scorecard,.rpt-progress,.rpt-timeline{break-inside:avoid;page-break-inside:avoid}
  .rpt-section-header{break-after:avoid;page-break-after:avoid}
  .rpt-stat-hl,.rpt-metric-comp,.rpt-scorecard{box-shadow:none!important;background:#f9fafb!important;border:1px solid #e5e7eb!important}
  .rpt-metric-comp-table th{background:#f3f4f6!important}
  .rpt-progress-track{background:#e5e7eb!important}
}
