/* AlfaCiclo 5.2.0 — Dados e evolução avançados */
.analytics-v520 {
  --analytics-positive: #13a67b;
  --analytics-positive-soft: rgba(19,166,123,.13);
  --analytics-negative: #dd4b61;
  --analytics-negative-soft: rgba(221,75,97,.13);
  --analytics-neutral: #6f7f96;
  --analytics-neutral-soft: rgba(111,127,150,.13);
  --analytics-info: #3186e4;
  --analytics-violet: #7768e8;
  --analytics-cyan: #16a7b8;
  display: flow-root;
  min-width: 0;
}
.analytics-v520 .analytics-page-header { margin-bottom: 14px; }
.analytics-v520-stack { gap: 16px !important; }
.analytics-v520 .analytics-filter-card {
  border-radius: 22px;
  border: 1px solid color-mix(in srgb, var(--line) 82%, transparent);
  box-shadow: 0 12px 28px rgba(20,47,74,.055);
}
.analytics-v520 .analytics-tabs {
  display: grid !important;
  grid-template-columns: repeat(6,minmax(0,1fr));
  gap: 6px;
  padding: 6px;
  border-radius: 18px;
  background: color-mix(in srgb, var(--surface-soft) 88%, transparent);
  border: 1px solid var(--line);
  overflow: visible !important;
}
.analytics-v520 .analytics-tab {
  min-width: 0;
  min-height: 44px;
  justify-content: center;
  border-radius: 13px !important;
  white-space: normal;
  text-align: center;
  line-height: 1.1;
}
.analytics-v520 .analytics-tab.active {
  box-shadow: 0 10px 22px rgba(20,123,143,.13);
}
.analytics-v520 .analytics-visual-grid {
  display: grid;
  align-items: stretch;
  gap: 16px;
  min-width: 0;
}
.analytics-v520 .analytics-visual-grid-2 { grid-template-columns: repeat(2,minmax(0,1fr)); }
.analytics-v520 .analytics-visual-grid-3 { grid-template-columns: repeat(3,minmax(0,1fr)); }
.analytics-v520 .analytics-chart-card { min-width: 0; overflow: hidden; }
.analytics-v520 .analytics-chart-card > .card-body { min-width: 0; }

.analytics-insight-strip {
  display: grid;
  grid-template-columns: repeat(5,minmax(0,1fr));
  gap: 10px;
}
.analytics-insight-strip article {
  min-width: 0;
  padding: 15px 16px;
  border: 1px solid var(--line);
  border-radius: 18px;
  background: linear-gradient(145deg,var(--surface),color-mix(in srgb,var(--surface-soft) 86%,var(--surface)));
  box-shadow: 0 10px 22px rgba(20,47,74,.045);
}
.analytics-insight-strip article span,
.analytics-insight-strip article small { display: block; }
.analytics-insight-strip article span { color: var(--ink-500); font-size: .69rem; font-weight: 800; text-transform: uppercase; letter-spacing: .055em; }
.analytics-insight-strip article strong { display:block; margin-top: 5px; font-size: 1.55rem; line-height:1; letter-spacing:-.045em; }
.analytics-insight-strip article small { margin-top: 5px; color: var(--ink-500); font-size:.68rem; }
.analytics-insight-strip article.positive strong { color: var(--analytics-positive); }
.analytics-insight-strip article.negative strong { color: var(--analytics-negative); }
.analytics-insight-strip article.neutral strong { color: var(--analytics-neutral); }
.analytics-insight-strip article.delta strong { color: var(--analytics-violet); }
.analytics-insight-strip article.balance strong { color: var(--analytics-cyan); }

.analytics-micro-metrics {
  display: grid;
  grid-template-columns: repeat(4,minmax(0,1fr));
  gap: 10px;
}
.analytics-micro-metrics article {
  padding: 13px 15px;
  border: 1px solid var(--line);
  border-radius: 16px;
  background: var(--surface);
}
.analytics-micro-metrics span { display:block; color:var(--ink-500); font-size:.7rem; }
.analytics-micro-metrics strong { display:block; margin-top:4px; font-size:1.2rem; }

.analytics-donut-layout { display:grid; grid-template-columns: minmax(145px,.65fr) minmax(0,1fr); align-items:center; gap:18px; min-height: 230px; }
.analytics-donut {
  width: min(100%,190px); aspect-ratio:1; justify-self:center;
  display:grid; place-items:center; border-radius:50%;
  background: conic-gradient(var(--analytics-donut));
  box-shadow: inset 0 0 0 1px rgba(255,255,255,.35), 0 16px 30px rgba(30,52,75,.08);
}
.analytics-donut-center {
  width: 64%; aspect-ratio:1; display:grid; place-content:center; text-align:center; border-radius:50%;
  background: var(--surface); box-shadow: 0 0 0 1px var(--line), inset 0 4px 12px rgba(30,52,75,.04);
}
.analytics-donut-center strong { font-size:1.5rem; letter-spacing:-.05em; color:var(--ink-900); }
.analytics-donut-center span { color:var(--ink-500); font-size:.64rem; font-weight:700; }
.analytics-donut-legend { display:grid; gap:8px; min-width:0; }
.analytics-donut-legend > div { display:grid; grid-template-columns:10px minmax(0,1fr) auto; align-items:center; gap:8px; padding:7px 0; border-bottom:1px dashed var(--line); }
.analytics-donut-legend > div:last-child { border-bottom:0; }
.analytics-donut-legend i { width:9px; height:9px; border-radius:50%; }
.analytics-donut-legend span { min-width:0; color:var(--ink-700); font-size:.7rem; }
.analytics-donut-legend strong { color:var(--ink-900); font-size:.7rem; white-space:nowrap; }

.analytics-gauge-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }
.analytics-gauge-card { display:grid; justify-items:center; align-content:center; gap:8px; padding:14px; border-radius:18px; background:var(--surface-soft); min-height:220px; }
.analytics-gauge {
  width:150px; aspect-ratio:1; display:grid; place-items:center; border-radius:50%;
  background: conic-gradient(var(--gauge-color,var(--analytics-cyan)) var(--gauge-value), color-mix(in srgb,var(--line) 75%,transparent) 0);
  position:relative;
}
.analytics-gauge::after { content:""; position:absolute; inset:13px; border-radius:50%; background:var(--surface); box-shadow:inset 0 0 0 1px var(--line); }
.analytics-gauge > div { position:relative; z-index:1; text-align:center; }
.analytics-gauge strong { display:block; color:var(--ink-900); font-size:1.55rem; letter-spacing:-.05em; }
.analytics-gauge span { display:block; margin-top:2px; color:var(--ink-500); font-size:.65rem; font-weight:800; }
.analytics-gauge-card p { margin:0; color:var(--ink-500); font-size:.66rem; line-height:1.4; text-align:center; }
.analytics-gauge-card.tone-mint { --gauge-color: #19b69d; }
.analytics-gauge-card.tone-violet { --gauge-color: #7768e8; }

.analytics-funnel { display:grid; gap:8px; align-content:center; min-height:230px; }
.analytics-funnel-step { width:var(--funnel-width); min-height:43px; margin-inline:auto; padding:8px 13px; display:flex; align-items:center; justify-content:space-between; gap:12px; border-radius:12px; color:#fff; }
.analytics-funnel-step span { font-size:.69rem; font-weight:700; }
.analytics-funnel-step strong { font-size:.9rem; }
.analytics-funnel-step.step-1 { background:linear-gradient(90deg,#137f9b,#159ab0); }
.analytics-funnel-step.step-2 { background:linear-gradient(90deg,#188e85,#20a08e); }
.analytics-funnel-step.step-3 { background:linear-gradient(90deg,#5e65bb,#756de0); }
.analytics-funnel-step.step-4 { background:linear-gradient(90deg,#14956d,#16b17d); }

.analytics-radar { min-height:330px; display:grid; place-items:center; }
.analytics-radar svg { width:min(100%,430px); height:auto; overflow:visible; }
.analytics-radar-legend { display:flex; flex-wrap:wrap; justify-content:center; gap:14px; margin-bottom:-14px; font-size:.68rem; color:var(--ink-500); }
.analytics-radar-legend span { display:flex; align-items:center; gap:6px; }
.analytics-radar-legend i { width:12px; height:4px; border-radius:9px; }
.analytics-radar-legend i.coverage { background:#15a697; }
.analytics-radar-legend i.alphabetized { background:#7466e5; }
.analytics-radar-ring { fill:none; stroke:var(--line); stroke-width:1; }
.analytics-radar-axis { stroke:var(--line); stroke-width:1; }
.analytics-radar-label { fill:var(--ink-500); font-size:12px; font-weight:800; }
.analytics-radar-shape { stroke-width:2.5; }
.analytics-radar-shape.coverage { fill:rgba(21,166,151,.12); stroke:#15a697; }
.analytics-radar-shape.alphabetized { fill:rgba(116,102,229,.11); stroke:#7466e5; }

.analytics-scatter { min-width:0; }
.analytics-scatter svg { width:100%; height:auto; min-height:290px; }
.analytics-scatter-legend { display:flex; flex-wrap:wrap; gap:12px; justify-content:flex-end; margin-bottom:4px; color:var(--ink-500); font-size:.65rem; }
.analytics-scatter-legend span { display:flex; align-items:center; gap:5px; }
.analytics-scatter-legend i { width:9px; height:9px; border-radius:50%; }
.analytics-scatter-legend i.low,.analytics-scatter-dot.risk-low { fill:#18aa80; background:#18aa80; }
.analytics-scatter-legend i.medium,.analytics-scatter-dot.risk-medium { fill:#e1a52d; background:#e1a52d; }
.analytics-scatter-legend i.high,.analytics-scatter-dot.risk-high { fill:#dc5265; background:#dc5265; }
.analytics-scatter-dot { opacity:.76; stroke:rgba(255,255,255,.72); stroke-width:2; transition:opacity .16s; }
.analytics-scatter-dot:hover { opacity:1; }
.analytics-axis-title { fill:var(--ink-500); font-size:11px; font-weight:750; }

.analytics-heatmap-wrap { width:100%; min-width:0; }
.analytics-heatmap { width:100%; border-collapse:separate; border-spacing:5px; table-layout:fixed; }
.analytics-heatmap th { padding:7px 5px; color:var(--ink-500); font-size:.62rem; text-align:center; }
.analytics-heatmap th:first-child { width:21%; text-align:left; }
.analytics-heatmap td { position:relative; padding:9px 4px; border-radius:10px; text-align:center; background:color-mix(in srgb,var(--heat-color) calc(var(--heat) * 100%),var(--surface)); box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--heat-color) 24%,transparent); }
.analytics-heatmap td strong,.analytics-heatmap td span { display:block; }
.analytics-heatmap td strong { color:var(--ink-900); font-size:.75rem; }
.analytics-heatmap td span { margin-top:2px; color:var(--ink-500); font-size:.56rem; }
.analytics-heatmap td.heat-metric { background:var(--surface-soft); color:var(--ink-800); font-weight:800; }

.analytics-transition-matrix-wrap { min-width:0; }
.analytics-transition-matrix { width:100%; border-collapse:separate; border-spacing:5px; table-layout:fixed; }
.analytics-transition-matrix th { padding:7px 4px; color:var(--ink-500); font-size:.6rem; text-align:center; }
.analytics-transition-matrix thead th:first-child { width:26%; text-align:left; }
.analytics-transition-matrix tbody th { text-align:left; font-weight:800; }
.analytics-transition-matrix td { padding:9px 3px; border-radius:10px; text-align:center; border:1px solid transparent; }
.analytics-transition-matrix td strong,.analytics-transition-matrix td span { display:block; }
.analytics-transition-matrix td strong { font-size:.77rem; }
.analytics-transition-matrix td span { margin-top:2px; font-size:.54rem; opacity:.76; }
.analytics-transition-matrix td.positive { background:color-mix(in srgb,var(--analytics-positive) calc(var(--matrix-intensity) * 100%),var(--surface)); border-color:rgba(19,166,123,.16); }
.analytics-transition-matrix td.negative { background:color-mix(in srgb,var(--analytics-negative) calc(var(--matrix-intensity) * 100%),var(--surface)); border-color:rgba(221,75,97,.16); }
.analytics-transition-matrix td.neutral { background:color-mix(in srgb,var(--analytics-neutral) calc(var(--matrix-intensity) * 70%),var(--surface)); border-color:rgba(111,127,150,.14); }
.analytics-transition-matrix td.row-total { background:var(--surface-soft); color:var(--ink-900); font-weight:900; }
.analytics-matrix-caption { display:flex; justify-content:flex-end; gap:12px; margin-top:8px; font-size:.63rem; }
.analytics-matrix-caption span::before { content:""; display:inline-block; width:8px; height:8px; margin-right:5px; border-radius:50%; }
.analytics-matrix-caption .positive::before { background:var(--analytics-positive); }
.analytics-matrix-caption .neutral::before { background:var(--analytics-neutral); }
.analytics-matrix-caption .negative::before { background:var(--analytics-negative); }

.analytics-flow-chart svg { width:100%; height:auto; min-height:330px; overflow:visible; }
.analytics-flow-path { fill:none; opacity:.42; stroke-linecap:round; transition:opacity .15s; }
.analytics-flow-path:hover { opacity:.85; }
.analytics-flow-node { fill:var(--surface-soft); stroke:var(--node-color); stroke-width:1.5; }
.analytics-flow-label { fill:var(--ink-800); font-size:12px; font-weight:800; }
.analytics-flow-title { fill:var(--ink-500); font-size:12px; font-weight:800; }

.analytics-delta-histogram { min-height:260px; display:grid; grid-template-columns:repeat(9,minmax(0,1fr)); align-items:end; gap:8px; padding:12px 4px 0; }
.analytics-delta-column { min-width:0; text-align:center; }
.analytics-delta-bar-wrap { height:210px; display:flex; flex-direction:column; justify-content:flex-end; align-items:center; gap:5px; }
.analytics-delta-column strong { font-size:.65rem; color:var(--ink-700); }
.analytics-delta-bar { width:min(100%,30px); min-height:5px; border-radius:8px 8px 3px 3px; }
.analytics-delta-column.positive .analytics-delta-bar { background:linear-gradient(#35c59c,#13a67b); }
.analytics-delta-column.negative .analytics-delta-bar { background:linear-gradient(#ee7788,#dd4b61); }
.analytics-delta-column.neutral .analytics-delta-bar { background:linear-gradient(#9aa8bb,#728197); }
.analytics-delta-column small { display:block; margin-top:7px; color:var(--ink-500); font-weight:800; }

.analytics-grade-movement { display:grid; gap:13px; }
.analytics-grade-movement-row { display:grid; grid-template-columns:60px minmax(0,1fr) minmax(200px,.75fr); gap:12px; align-items:center; }
.analytics-grade-movement-row > strong { color:var(--ink-800); font-size:.75rem; }
.analytics-grade-track,.analytics-origin-track { display:flex; height:15px; overflow:hidden; border-radius:999px; background:var(--surface-soft); box-shadow:inset 0 0 0 1px var(--line); }
.analytics-grade-track span,.analytics-origin-track span { min-width:0; }
.analytics-grade-track .advanced,.analytics-origin-track .advanced { background:var(--analytics-positive); }
.analytics-grade-track .stable,.analytics-origin-track .stable { background:var(--analytics-neutral); }
.analytics-grade-track .regressed,.analytics-origin-track .regressed { background:var(--analytics-negative); }
.analytics-grade-values { display:grid; grid-template-columns:repeat(3,auto) 1fr; gap:8px; align-items:center; font-size:.66rem; }
.analytics-grade-values em { justify-self:end; color:var(--ink-500); font-style:normal; font-weight:800; }
.analytics-grade-legend { display:flex; justify-content:flex-end; flex-wrap:wrap; gap:12px; color:var(--ink-500); font-size:.62rem; }
.analytics-grade-legend span { display:flex; align-items:center; gap:5px; }
.analytics-grade-legend i { width:10px; height:5px; border-radius:5px; }
.analytics-grade-legend i.advanced { background:var(--analytics-positive); }.analytics-grade-legend i.stable { background:var(--analytics-neutral); }.analytics-grade-legend i.regressed { background:var(--analytics-negative); }

.analytics-origin-list { display:grid; gap:11px; }
.analytics-origin-row { display:grid; grid-template-columns:minmax(145px,.75fr) minmax(0,1fr) 120px; gap:12px; align-items:center; padding-bottom:10px; border-bottom:1px solid var(--line); }
.analytics-origin-row:last-child { border-bottom:0; }
.analytics-origin-copy { display:grid; gap:3px; }
.analytics-origin-copy > span { justify-self:start; }
.analytics-origin-copy strong,.analytics-origin-copy small { color:var(--ink-500); font-size:.62rem; }
.analytics-origin-values { display:grid; grid-template-columns:repeat(3,1fr); gap:4px; font-size:.65rem; text-align:center; }

.analytics-ranking { display:grid; gap:8px; }
.analytics-ranking-row { display:grid; grid-template-columns:28px minmax(150px,.8fr) minmax(90px,1fr) 58px 110px; gap:9px; align-items:center; min-height:42px; padding:6px 8px; border-radius:12px; }
.analytics-ranking-row:nth-child(odd) { background:color-mix(in srgb,var(--surface-soft) 64%,transparent); }
.analytics-ranking-pos { width:26px; height:26px; display:grid; place-items:center; border-radius:9px; background:var(--surface-soft); color:var(--ink-500); font-size:.62rem; font-weight:900; }
.analytics-ranking-copy { min-width:0; }
.analytics-ranking-copy strong,.analytics-ranking-copy small { display:block; overflow:hidden; white-space:nowrap; text-overflow:ellipsis; }
.analytics-ranking-copy strong { color:var(--ink-800); font-size:.7rem; }
.analytics-ranking-copy small { color:var(--ink-500); font-size:.58rem; }
.analytics-ranking-bar { height:8px; border-radius:999px; background:var(--surface-soft); overflow:hidden; }
.analytics-ranking-bar span { display:block; height:100%; border-radius:inherit; }
.analytics-ranking-bar .positive { background:var(--analytics-positive); }.analytics-ranking-bar .negative { background:var(--analytics-negative); }.analytics-ranking-bar .neutral { background:var(--analytics-neutral); }
.analytics-ranking-row > strong { font-size:.72rem; text-align:right; }.analytics-ranking-row > strong.positive { color:var(--analytics-positive); }.analytics-ranking-row > strong.negative { color:var(--analytics-negative); }
.analytics-ranking-row > small { color:var(--ink-500); font-size:.58rem; text-align:right; }

.analytics-priority-card { overflow:hidden; }
.analytics-priority-card.negative { border-top:3px solid var(--analytics-negative); }
.analytics-priority-card.positive { border-top:3px solid var(--analytics-positive); }
.analytics-priority-table { min-width:0; }
.analytics-priority-table table { width:100%; border-collapse:collapse; table-layout:fixed; }
.analytics-priority-table th { padding:9px 8px; background:var(--surface-soft); color:var(--ink-500); font-size:.6rem; text-align:left; }
.analytics-priority-table td { padding:9px 8px; border-top:1px solid var(--line); vertical-align:middle; font-size:.65rem; }
.analytics-priority-table td strong,.analytics-priority-table td small { display:block; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.analytics-priority-table td small { margin-top:2px; color:var(--ink-500); font-size:.56rem; }
.analytics-priority-table th:nth-child(1){width:24%}.analytics-priority-table th:nth-child(2){width:26%}.analytics-priority-table th:nth-child(3){width:7%}.analytics-priority-table th:nth-child(4),.analytics-priority-table th:nth-child(5){width:16%}.analytics-priority-table th:nth-child(6){width:11%}
.analytics-priority-note { margin:8px 12px 12px; color:var(--ink-500); font-size:.6rem; }

.analytics-delta { display:inline-flex; align-items:center; justify-content:center; min-height:24px; padding:3px 8px; border-radius:999px; font-size:.62rem; font-weight:850; white-space:nowrap; }
.analytics-delta.positive { color:var(--analytics-positive); background:var(--analytics-positive-soft); }
.analytics-delta.negative { color:var(--analytics-negative); background:var(--analytics-negative-soft); }
.analytics-delta.neutral { color:var(--analytics-neutral); background:var(--analytics-neutral-soft); }
.analytics-student-legend { display:flex; flex-wrap:wrap; gap:8px; padding:9px 12px; border-radius:14px; border:1px solid var(--line); background:var(--surface-soft); }
.analytics-student-legend > span { display:flex; align-items:center; gap:6px; }
.analytics-student-row.movement-regressed { box-shadow:inset 3px 0 0 var(--analytics-negative); }
.analytics-student-row.movement-advanced { box-shadow:inset 3px 0 0 var(--analytics-positive); }
.analytics-student-row.movement-stable { box-shadow:inset 3px 0 0 var(--analytics-neutral); }
.analytics-student-filters-v520 { border-radius:18px; }
.analytics-insights-missing { border-style:dashed; }

/* Linha temporal com até cinco séries */
.analytics-v520 .analytics-line.series-0 { stroke:#18a48e; }.analytics-v520 .analytics-line-dot.series-0 { fill:#18a48e; }
.analytics-v520 .analytics-line.series-1 { stroke:#4d87e8; }.analytics-v520 .analytics-line-dot.series-1 { fill:#4d87e8; }
.analytics-v520 .analytics-line.series-2 { stroke:#8268df; }.analytics-v520 .analytics-line-dot.series-2 { fill:#8268df; }
.analytics-v520 .analytics-line.series-3 { stroke:#e29a2b; }.analytics-v520 .analytics-line-dot.series-3 { fill:#e29a2b; }
.analytics-v520 .analytics-line.series-4 { stroke:#dc5265; }.analytics-v520 .analytics-line-dot.series-4 { fill:#dc5265; }
.analytics-v520 .analytics-line-legend i.series-0 { background:#18a48e; }.analytics-v520 .analytics-line-legend i.series-1 { background:#4d87e8; }.analytics-v520 .analytics-line-legend i.series-2 { background:#8268df; }.analytics-v520 .analytics-line-legend i.series-3 { background:#e29a2b; }.analytics-v520 .analytics-line-legend i.series-4 { background:#dc5265; }
.analytics-v520 .analytics-line-chart svg { width:100%; min-height:260px; }

html[data-theme="dark"] .analytics-v520 {
  --analytics-positive:#43d4a9;
  --analytics-positive-soft:rgba(67,212,169,.12);
  --analytics-negative:#ff788b;
  --analytics-negative-soft:rgba(255,120,139,.12);
  --analytics-neutral:#9aacbf;
  --analytics-neutral-soft:rgba(154,172,191,.12);
}
html[data-theme="dark"] .analytics-v520 .analytics-insight-strip article,
html[data-theme="dark"] .analytics-v520 .analytics-micro-metrics article {
  background:linear-gradient(145deg,rgba(17,37,50,.88),rgba(11,28,40,.72));
  border-color:rgba(152,194,204,.12);
}
html[data-theme="dark"] .analytics-v520 .analytics-donut-center,
html[data-theme="dark"] .analytics-v520 .analytics-gauge::after { background:#102330; }
html[data-theme="dark"] .analytics-v520 .analytics-gauge-card { background:rgba(17,41,53,.58); }
html[data-theme="dark"] .analytics-v520 .analytics-transition-matrix td.positive { background:rgba(67,212,169,calc(var(--matrix-intensity) * .34)); }
html[data-theme="dark"] .analytics-v520 .analytics-transition-matrix td.negative { background:rgba(255,120,139,calc(var(--matrix-intensity) * .34)); }
html[data-theme="dark"] .analytics-v520 .analytics-transition-matrix td.neutral { background:rgba(154,172,191,calc(var(--matrix-intensity) * .22)); }
html[data-theme="dark"] .analytics-v520 .analytics-heatmap td { background:rgba(50,94,102,.14); }
html[data-theme="dark"] .analytics-v520 .analytics-priority-table th { background:rgba(255,255,255,.04); }
html[data-theme="dark"] .analytics-v520 .analytics-ranking-row:nth-child(odd) { background:rgba(255,255,255,.025); }

@media (max-width: 1280px) {
  .analytics-v520 .analytics-tabs { grid-template-columns:repeat(3,minmax(0,1fr)); }
  .analytics-v520 .analytics-visual-grid-3 { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .analytics-insight-strip { grid-template-columns:repeat(3,minmax(0,1fr)); }
}
@media (max-width: 900px) {
  .analytics-v520 .analytics-visual-grid-2,
  .analytics-v520 .analytics-visual-grid-3 { grid-template-columns:1fr; }
  .analytics-insight-strip { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .analytics-micro-metrics { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .analytics-donut-layout { grid-template-columns:1fr; }
  .analytics-grade-movement-row { grid-template-columns:52px minmax(0,1fr); }
  .analytics-grade-values { grid-column:1/-1; padding-left:64px; }
  .analytics-origin-row { grid-template-columns:1fr; gap:7px; }
  .analytics-origin-values { max-width:220px; }
  .analytics-ranking-row { grid-template-columns:28px minmax(0,1fr) 58px; }
  .analytics-ranking-bar { grid-column:2/4; }
  .analytics-ranking-row > small { grid-column:2/4; text-align:left; }
}
@media (max-width: 640px) {
  .analytics-v520 .analytics-tabs { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .analytics-insight-strip { grid-template-columns:1fr 1fr; }
  .analytics-insight-strip article.balance { grid-column:1/-1; }
  .analytics-gauge-grid { grid-template-columns:1fr; }
  .analytics-gauge-card { min-height:190px; }
  .analytics-heatmap { border-spacing:2px; }
  .analytics-heatmap th,.analytics-transition-matrix th { font-size:.5rem; padding-inline:2px; }
  .analytics-heatmap td,.analytics-transition-matrix td { padding:7px 2px; border-radius:7px; }
  .analytics-heatmap td strong,.analytics-transition-matrix td strong { font-size:.62rem; }
  .analytics-heatmap td span,.analytics-transition-matrix td span { display:none; }
  .analytics-transition-matrix thead th:first-child { width:24%; }
  .analytics-flow-chart svg { min-height:250px; }
  .analytics-delta-histogram { gap:3px; }
  .analytics-delta-bar { width:18px; }
  .analytics-priority-table th:nth-child(2),.analytics-priority-table td:nth-child(2),.analytics-priority-table th:nth-child(3),.analytics-priority-table td:nth-child(3) { display:none; }
  .analytics-priority-table th:nth-child(1){width:32%}.analytics-priority-table th:nth-child(4),.analytics-priority-table th:nth-child(5){width:24%}.analytics-priority-table th:nth-child(6){width:20%}
}
@media print {
  .analytics-v520 .analytics-tabs,
  .analytics-v520 .analytics-filter-card,
  .analytics-v520 .page-actions,
  .analytics-v520 .student-analysis-filters { display:none !important; }
  .analytics-v520 .analytics-visual-grid-2,
  .analytics-v520 .analytics-visual-grid-3 { grid-template-columns:1fr 1fr !important; }
  .analytics-v520 .card { break-inside:avoid; }
}
