/* ═════════════════════════════════════════════════════════════════════════════
   EVOLUÇÃO — LAUDO EDITORIAL DE PERFORMANCE

   A tela se comporta como uma leitura da banca, não como um dashboard de SaaS:
   uma régua do corte, uma prioridade argumentada e as evidências em sequência.
   ═══════════════════════════════════════════════════════════════════════════ */
.ma-in-shell {
  --ep-muted: var(--app-muted-reading);
  --fg-faint: var(--app-muted-reading);
  --accent-strong: #5268ca;
  --success: #4f741b;
  --ev-ink: var(--app-ink-reading);
  --ev-muted: var(--app-muted-reading);
  --ev-faint: #8a94a8;
  --ev-rule: var(--app-border-reading);
  --ev-rule-strong: #cbd3e2;
  --ev-paper: var(--app-surface);
  --ev-wash: #f3f5fa;
  --ev-cobalt: var(--app-accent-reading);
  --ev-cobalt-deep: #4055c5;
  --ev-cobalt-soft: var(--app-accent-reading-soft);
  --ev-lime: #9bce4b;
  --ev-lime-soft: #f1f8e6;
  --ev-lime-ink: #45661c;
  --ev-risk: #a65b35;
}

.ma-in-shell .app-main {
  padding-top: 34px;
  background-image:
    radial-gradient(circle at 92% 0%, rgba(92, 116, 242, .1), transparent 25rem),
    radial-gradient(circle at 26% 16%, rgba(139, 124, 246, .05), transparent 22rem);
}
.ma-in-shell .ma-dash .pz-container { width: min(1160px, 100%); max-width: none; padding: 0; }

.ev-page {
  width: min(1120px, 100%);
  min-width: 0;
  margin: 0 auto;
  color: var(--ev-ink);
  font-family: var(--esp-ui, Inter, sans-serif);
}
.ev-page *, .ev-page *::before, .ev-page *::after { box-sizing: border-box; }
.ev-page a { color: inherit; }
.ev-page button, .ev-page select { font-family: inherit; }

/* ── Cabeçalho: capa curta do relatório ──────────────────────────────────── */
.ev-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 28px;
  margin-bottom: 24px;
}
.ev-head > div { min-width: 0; }
.ev-head .ep-eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  margin: 0 0 10px;
  color: var(--ev-lime-ink);
  font-size: var(--esp-type-caption);
  font-weight: var(--esp-weight-bold);
  letter-spacing: .14em;
  text-transform: uppercase;
}
.ev-head .ep-eyebrow::before { content: ""; width: 24px; height: 2px; background: var(--ev-lime); }
.ev-head h1 {
  margin: 0;
  color: var(--ev-ink);
  font: var(--esp-weight-bold) clamp(2.35rem, 4.7vw, 3.55rem)/.98 var(--esp-display, Manrope, sans-serif);
  letter-spacing: -.062em;
}
.ev-head p {
  max-width: 55ch;
  margin: 10px 0 0;
  color: var(--ev-muted);
  font-size: var(--esp-type-body);
  line-height: 1.55;
}
.ev-pass-badge {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  min-height: 40px;
  padding: 0 12px;
  border: 1px solid #d6e7b8;
  border-radius: var(--app-radius-control);
  background: var(--ev-lime-soft);
  color: var(--ev-lime-ink);
  font-size: var(--esp-type-caption);
  font-weight: var(--esp-weight-bold);
  white-space: nowrap;
  box-shadow: 0 12px 30px -22px rgba(77, 116, 28, .45);
}
.ev-pass-badge::before {
  content: "";
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: var(--ev-lime);
  box-shadow: 0 0 0 3px rgba(155, 206, 75, .2);
}
.ev-pass-badge small { font-size: var(--esp-type-caption); font-weight: var(--esp-weight-medium); }

/* ── Índice do laudo: abas sem cápsula de aplicativo ─────────────────────── */
.ev-tabs {
  display: flex;
  align-items: end;
  gap: 30px;
  width: 100%;
  margin: 0 0 26px;
  padding: 0;
  border: 0;
  border-bottom: 1px solid var(--ev-rule);
  border-radius: 0;
  background: transparent;
  box-shadow: none;
}
.ev-tabs .ep-tab {
  position: relative;
  min-height: 44px;
  padding: 0 2px 12px;
  border: 0;
  border-radius: 0;
  background: transparent;
  color: var(--ev-muted);
  font: var(--esp-weight-bold) var(--esp-type-support)/1 var(--esp-ui, Inter, sans-serif);
  cursor: pointer;
}
.ev-tabs .ep-tab::after {
  content: "";
  position: absolute;
  right: 0;
  bottom: -1px;
  left: 0;
  height: 3px;
  background: transparent;
  transform: scaleX(.25);
  transition: transform .2s ease, background .2s ease;
}
.ev-tabs .ep-tab:hover { color: var(--ev-ink); }
.ev-tabs .ep-tab[aria-selected="true"] { color: var(--ev-cobalt-deep); background: transparent; box-shadow: none; }
.ev-tabs .ep-tab[aria-selected="true"]::after { background: var(--ev-cobalt); transform: scaleX(1); }
.ev-tabs .ep-tab:focus-visible {
  outline: 3px solid rgba(82, 104, 202, .28);
  outline-offset: 3px;
  border-radius: 4px;
}

.ev-panel { min-width: 0; min-height: 360px; }
.ev-panel:not([hidden]) { animation: ev-report-in .34s cubic-bezier(.16, 1, .3, 1) both; }
@keyframes ev-report-in { from { opacity: 0; transform: translateY(7px); } to { opacity: 1; transform: none; } }
.ev-overview { display: grid; gap: 0; }

/* ── Abertura do laudo + régua do corte ──────────────────────────────────── */
.ev-summary {
  position: relative;
  display: grid;
  grid-template-columns: minmax(0, 1.08fr) minmax(360px, .92fr);
  grid-template-areas: "copy ruler" "stats ruler";
  gap: 22px 48px;
  align-items: center;
  min-width: 0;
  padding: var(--app-space-8) 34px 30px;
  border: 1px solid var(--ev-rule);
  margin-bottom: 10px;
  border-radius: 22px;
  background:
    radial-gradient(circle at 88% 8%, rgba(88, 112, 242, .08), transparent 18rem),
    var(--ev-paper);
  box-shadow: 0 28px 74px -52px rgba(20, 29, 54, .62);
}
.ev-summary-copy { grid-area: copy; min-width: 0; }
.ev-summary-copy .ep-eyebrow {
  margin: 0;
  color: var(--ev-cobalt-deep);
  font-size: var(--esp-type-caption);
  font-weight: var(--esp-weight-bold);
  letter-spacing: .12em;
  text-transform: uppercase;
}
.ev-summary-copy h2 {
  max-width: 22ch;
  margin: 9px 0 10px;
  color: var(--ev-ink);
  font: var(--esp-weight-bold) clamp(1.65rem, 2.7vw, 2.25rem)/1.08 var(--esp-display, Manrope, sans-serif);
  letter-spacing: -.047em;
}
.ev-summary-copy > p {
  max-width: 58ch;
  margin: 0;
  color: var(--ev-muted);
  font-size: var(--esp-type-support);
  line-height: 1.58;
}
.ev-summary-stats {
  grid-area: stats;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0;
  margin-top: var(--app-space-1);
  padding-top: 18px;
  border-top: 1px solid var(--ev-rule);
}
.ev-summary-stat {
  min-width: 0;
  padding: 0 14px;
  border: 0;
  border-left: 1px solid var(--ev-rule);
  border-radius: 0;
  background: transparent;
}
.ev-summary-stat:first-child { padding-left: 0; border-left: 0; }
.ev-summary-stat b {
  display: block;
  color: var(--ev-ink);
  font: var(--esp-weight-bold) var(--esp-type-subhead)/1 var(--esp-display, Manrope, sans-serif);
  font-variant-numeric: tabular-nums;
  letter-spacing: -.035em;
}
.ev-summary-stat span {
  display: block;
  margin-top: 6px;
  color: var(--ev-muted);
  font-size: var(--esp-type-caption);
  line-height: 1.28;
}









/* ── Diagnóstico em dupla: leitura e consequência próximas, mas autônomas ── */
.ev-coach {
  display: grid;
  grid-template-columns: minmax(0, 1.18fr) minmax(310px, .82fr);
  gap: 10px;
  align-items: stretch;
  min-width: 0;
  margin-bottom: 38px;
  overflow: visible;
  border: 0;
  border-radius: 0;
  background: transparent;
}
.ev-coach .ep-card { border-radius: var(--app-radius-card); }
.ev-coach-main {
  min-width: 0;
  padding: 27px 34px 29px;
  border: 1px solid var(--ev-rule) !important;
  background: var(--ev-paper);
  box-shadow: 0 20px 56px -48px rgba(20, 29, 54, .54);
}
.ev-coach-action {
  display: flex;
  min-width: 0;
  flex-direction: column;
  justify-content: center;
  padding: 27px 30px;
  border: 1px solid #d5e4bb !important;
  background: var(--ev-lime-soft);
  box-shadow: 0 20px 56px -48px rgba(64, 99, 22, .36);
}
.ev-coach-heading { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.ev-coach-kicker, .ev-action-kicker {
  color: var(--ev-cobalt-deep);
  font-family: var(--esp-micro, ui-monospace, SFMono-Regular, Menlo, monospace);
  font-size: var(--esp-type-caption);
  font-weight: var(--esp-weight-bold);
  letter-spacing: .11em;
  text-transform: uppercase;
}
.ev-coach-action .ev-action-kicker { color: var(--ev-lime-ink); }
.ev-coach-signal {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  min-height: 30px;
  padding: 0 9px;
  border: 1px solid var(--ev-rule);
  border-radius: 8px;
  background: var(--ev-paper);
  color: var(--ev-muted);
  font-size: var(--esp-type-caption);
  font-weight: var(--esp-weight-bold);
  white-space: nowrap;
}
.ev-coach-signal i { width: 7px; height: 7px; border-radius: 50%; background: var(--ev-faint); }
.ev-coach-signal.subindo { border-color: #d4e7b4; color: var(--ev-lime-ink); }
.ev-coach-signal.subindo i { background: var(--ev-lime); }
.ev-coach-signal.caindo { border-color: #edd8cf; color: var(--ev-risk); }
.ev-coach-signal.caindo i { background: #cf7650; }
.ev-coach-signal.estavel { border-color: #d9def4; color: var(--ev-cobalt-deep); }
.ev-coach-signal.estavel i { background: #8090dc; }
.ev-coach h2 {
  max-width: 21ch;
  margin: 10px 0 8px;
  color: var(--ev-ink);
  font: var(--esp-weight-bold) clamp(1.55rem, 2.6vw, 2.05rem)/1.08 var(--esp-display, Manrope, sans-serif);
  letter-spacing: -.045em;
}
.ev-coach-main > p {
  max-width: 65ch;
  margin: 0;
  color: var(--ev-muted);
  font-size: var(--esp-type-support);
  line-height: 1.58;
}
.ev-coach-stats {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0;
  margin-top: 19px;
  padding-top: 16px;
  border-top: 1px solid var(--ev-rule);
}
.ev-coach-stats > span { min-width: 0; padding: 0 13px; }
.ev-coach-stats > span:first-child { padding-left: 0; }
.ev-coach-stats > span + span { border-left: 1px solid var(--ev-rule); }
.ev-coach-stats b {
  display: block;
  color: var(--ev-cobalt-deep);
  font: var(--esp-weight-bold) var(--esp-type-subhead)/1 var(--esp-display, Manrope, sans-serif);
  font-variant-numeric: tabular-nums;
  letter-spacing: -.035em;
}
.ev-coach-stats small { display: block; margin-top: 6px; color: var(--ev-muted); font-size: var(--esp-type-caption); line-height: 1.25; }
.ev-coach-action h3 {
  margin: 9px 0 8px;
  color: var(--ev-ink);
  font: var(--esp-weight-bold) var(--esp-type-body)/1.3 var(--esp-display, Manrope, sans-serif);
  letter-spacing: -.025em;
}
.ev-coach-action p { margin: 0; color: #667357; font-size: var(--esp-type-caption); line-height: 1.55; }
.ev-coach-buttons { display: flex; align-items: center; flex-wrap: wrap; gap: 8px; margin-top: 17px; }
.ev-coach-buttons a, .ev-coach-buttons button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 7px;
  min-height: 44px;
  padding: 0 13px;
  border-radius: var(--app-radius-control);
  font-size: var(--esp-type-caption);
  font-weight: var(--esp-weight-bold);
  line-height: 1.2;
  text-align: center;
  text-decoration: none;
  cursor: pointer;
}
.ev-coach-buttons a { border: 1px solid var(--ev-ink); background: var(--ev-ink); color: #fff; }
.ev-coach-buttons button { border: 1px solid #cbdcae; background: transparent; color: var(--ev-lime-ink); }
.ev-coach-buttons a:hover { background: #263353; }
.ev-coach-buttons button:hover { background: rgba(255, 255, 255, .62); }
.ev-coach-buttons a:focus-visible, .ev-coach-buttons button:focus-visible { outline: 3px solid rgba(82, 104, 202, .3); outline-offset: 2px; }

/* ── Evidência: o mesmo cartão de evolução apresentado na landing page ──── */
.ev-progress-card {
  width: min(640px, 100%);
  margin: 0 auto 30px;
  padding: 27px 27px 25px;
  overflow: hidden;
  border: 1px solid #dfe4f0;
  border-radius: 24px;
  background: #fbfcff;
  box-shadow: 0 22px 54px rgba(53, 63, 105, .09);
}
.ev-progress-top { display: flex; align-items: flex-start; justify-content: space-between; gap: 14px; }
.ev-progress-top small,
.ev-progress-next small {
  display: block;
  color: #8490ad;
  font-family: var(--esp-micro, ui-monospace, SFMono-Regular, Menlo, monospace);
  font-size: var(--esp-type-caption);
  letter-spacing: .08em;
}
.ev-progress-top b {
  display: block;
  margin-top: 6px;
  color: #333e55;
  font-size: var(--esp-type-body);
  letter-spacing: -.035em;
}
.ev-progress-top > span {
  flex: none;
  padding: 8px 10px;
  border-radius: 9px;
  background: var(--ev-wash);
  color: var(--ev-muted);
  font-size: var(--esp-type-caption);
  font-weight: var(--esp-weight-bold);
}
.ev-progress-top > .ev-progress-delta.is-positive { background: var(--app-state-positive-soft); color: var(--app-state-positive); }
.ev-progress-top > .ev-progress-delta.is-negative { background: var(--app-state-negative-soft); color: var(--app-state-negative); }
.ev-progress-chart {
  --cut: 75%;
  position: relative;
  display: flex;
  align-items: flex-end;
  gap: 9px;
  height: 170px;
  margin: 26px 4px 15px;
  padding: 0 8px;
  border-bottom: 1px solid #d8deef;
}
.ev-progress-cut {
  position: absolute;
  right: 0;
  bottom: var(--cut);
  left: 0;
  border-top: 1px dashed #a6d662;
}
.ev-progress-axis-label {
  position: absolute;
  z-index: 2;
  bottom: calc(var(--cut) + 9px);
  left: 1px;
  display: flex;
  align-items: baseline;
  gap: 3px;
  padding: 1px 2px;
  background: #fbfcff;
  color: #719b35;
  font-family: var(--esp-micro, ui-monospace, SFMono-Regular, Menlo, monospace);
  line-height: 1;
}
.ev-progress-axis-label b,
.ev-progress-axis-label small { font-size: var(--esp-type-caption); }
.ev-progress-axis-label small { font-weight: var(--esp-weight-bold); }
.ev-progress-bar {
  position: relative;
  flex: 1;
  min-width: 0;
  border-radius: 8px 8px 2px 2px;
  background: #c6cdf7;
}
.ev-progress-bar > b {
  position: absolute;
  top: -17px;
  left: 50%;
  color: #7784bb;
  font-family: var(--esp-micro, ui-monospace, SFMono-Regular, Menlo, monospace);
  font-size: var(--esp-type-caption);
  font-weight: var(--esp-weight-bold);
  transform: translateX(-50%);
}
.ev-progress-bar.is-last {
  background: linear-gradient(180deg, #8998ec, #a7d665);
  box-shadow: 0 7px 13px rgba(94, 143, 64, .16);
}
.ev-progress-bar.is-last > b { top: -21px; color: #5e72ce; }
.ev-progress-next {
  display: flex;
  align-items: center;
  gap: 11px;
  padding: 12px 13px;
  border: 1px solid #d8e6b6;
  border-radius: var(--app-radius-inset);
  background: linear-gradient(105deg, #f8fce9, #f3f9e8);
}
.ev-progress-next > i {
  display: grid;
  place-items: center;
  width: 28px;
  height: 28px;
  flex: none;
  border-radius: 8px;
  background: #e7f5c9;
  color: #5f8a28;
  font-size: var(--esp-type-support);
  font-style: normal;
}
.ev-progress-next > div { min-width: 0; flex: 1; }
.ev-progress-next b { display: block; margin-top: 3px; color: #344229; font-size: var(--esp-type-caption); }
.ev-progress-next a { flex: none; margin-left: auto; color: #586cc7; font-size: var(--esp-type-caption); font-weight: var(--esp-weight-bold); text-decoration: none; white-space: nowrap; }
.ev-progress-empty {
  display: grid;
  min-height: 170px;
  margin: 26px 4px 15px;
  place-items: center;
  border-bottom: 1px solid #d8deef;
  color: var(--ev-muted);
  font-size: var(--esp-type-support);
  text-align: center;
}

.ev-routine {
  display: grid;
  grid-template-columns: minmax(190px, .32fr) minmax(0, 1fr);
  gap: var(--app-space-7);
  align-items: center;
  margin: 0;
  padding: var(--app-space-6) 0 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
}
.ev-routine h3 {
  margin: 0;
  color: var(--ev-ink);
  font: var(--esp-weight-bold) var(--esp-type-support)/1.35 var(--esp-display, Manrope, sans-serif);
  letter-spacing: -.015em;
}
.ev-routine h3::after {
  content: "ritmo real de estudo";
  display: block;
  margin-top: 5px;
  color: var(--ev-muted);
  font: var(--esp-weight-medium) var(--esp-type-caption)/1.3 var(--esp-ui, Inter, sans-serif);
  letter-spacing: 0;
}
.ev-routine .ma-atividade { max-width: 100%; min-width: 0; }

/* ── Demais vistas: tabelas de leitura, não uma pilha de cards ───────────── */
.ev-full-card { min-width: 0; padding: 0; border: 0; border-radius: 0; background: transparent; box-shadow: none; }
.ev-full-card .ep-section-head, .ev-full-card .ma-secao-head {
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 20px;
  margin: 0 0 18px;
  padding: 0 0 15px;
  border-bottom: 1px solid var(--ev-rule-strong);
}
.ev-full-card .ep-section-head h2, .ev-full-card .ma-secao-head h2 {
  margin: 0;
  color: var(--ev-ink);
  font: var(--esp-weight-bold) clamp(1.35rem, 2.2vw, 1.75rem)/1.15 var(--esp-display, Manrope, sans-serif);
  letter-spacing: -.035em;
}
.ev-full-card .ep-section-head a, .ev-full-card .ma-secao-head span { color: var(--ev-muted); font-size: var(--esp-type-caption); }
.ev-full-card .ep-section-head a {
  display: inline-flex;
  align-items: center;
  min-height: 44px;
  color: var(--ev-cobalt-deep);
  font-weight: var(--esp-weight-bold);
  text-decoration: none;
}
.ev-full-card .ep-section-head a:hover { text-decoration: underline; text-underline-offset: 4px; }
.ev-full-card .ma-secao { margin: 0; }
.ev-full-card .ma-player { margin: 0; }

.ev-area-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 30px; }
.ev-area-card {
  min-width: 0;
  padding: 20px 0 16px;
  border: 0;
  border-top: 1px solid var(--ev-rule);
  border-radius: 0;
  background: transparent;
  box-shadow: none;
}
.ev-area-card:nth-child(even) { padding-left: 30px; border-left: 1px solid var(--ev-rule); }
.ev-area-top { display: flex; align-items: flex-start; justify-content: space-between; gap: 14px; }
.ev-area-top h3 { min-width: 0; margin: 0; color: var(--ev-ink); font: var(--esp-weight-bold) var(--esp-type-support)/1.35 var(--esp-display, Manrope, sans-serif); }
.ev-area-top b {
  flex: 0 0 auto;
  color: var(--ev-cobalt-deep);
  font: var(--esp-weight-bold) var(--esp-type-subhead)/1 var(--esp-display, Manrope, sans-serif);
  font-variant-numeric: tabular-nums;
  letter-spacing: -.03em;
}
.ev-area-meta { display: flex; flex-wrap: wrap; gap: 7px 15px; margin: 9px 0 0; color: var(--ev-muted); font-size: var(--esp-type-caption); }
.ev-area-card a {
  display: inline-flex;
  align-items: center;
  min-height: 44px;
  margin-top: 6px;
  color: var(--ev-cobalt-deep);
  font-size: var(--esp-type-caption);
  font-weight: var(--esp-weight-bold);
  text-decoration: none;
}
.ev-area-card a:hover { text-decoration: underline; text-underline-offset: 4px; }
.ev-area-card a:focus-visible, .ev-full-card .ep-section-head a:focus-visible { outline: 3px solid rgba(82, 104, 202, .28); outline-offset: 2px; }

/* Critérios: a coluna esquerda é o índice da rubrica; o painel é a evidência. */
.ev-page .ma-player { grid-template-columns: minmax(235px, 300px) minmax(0, 1fr); gap: 30px; }
.ev-page .ma-player-index { min-width: 0; }
.ev-page .ma-player-overflow-hint { display: none; }
.ev-page .ma-player-abas { gap: 0; border-top: 1px solid var(--ev-rule); }
.ev-page .ma-aba {
  min-height: 58px;
  padding: 11px 12px;
  border: 0;
  border-bottom: 1px solid var(--ev-rule);
  border-left: 3px solid transparent;
  border-radius: 0;
  background: transparent;
}
.ev-page .ma-aba:hover { background: var(--ev-wash); }
.ev-page .ma-aba[aria-selected="true"] { border-left-color: var(--ev-cobalt); background: var(--ev-cobalt-soft); }
.ev-page .ma-aba:focus-visible { outline: 3px solid rgba(82, 104, 202, .28); outline-offset: -3px; }
.ev-page .ma-player-painel {
  min-width: 0;
  padding: 24px 26px;
  border: 1px solid var(--ev-rule);
  border-radius: var(--app-radius-mobile-panel);
  background: #fbfcff;
  box-shadow: none;
}
.ev-page .ma-spark-slot { max-width: 100%; }
.ev-page .ma-treino {
  border: 1px solid #d6dcf2;
  border-radius: var(--app-radius-inset);
  background: var(--ev-cobalt-soft);
  color: var(--ev-ink);
  box-shadow: none;
  text-decoration: none;
  transition: border-color .15s ease, background-color .15s ease;
}
.ev-page .ma-treino:hover {
  border-color: #b9c4ec;
  background: #e7ebfa;
  transform: none;
}
.ev-page .ma-treino:focus-visible {
  outline: 3px solid rgba(82, 104, 202, .28);
  outline-offset: 2px;
}
.ev-page .ma-treino-tag {
  background: var(--ev-lime);
  color: var(--ev-lime-ink);
}
.ev-page .ma-treino-copy b { color: var(--ev-ink); }
.ev-page .ma-treino-copy span { color: var(--ev-muted); }
.ev-page .ma-treino-seta { color: var(--ev-cobalt-deep); }

/* Histórico: filtros e tentativas formam uma tabela contínua. */
.ev-history-tools {
  display: flex;
  align-items: end;
  flex-wrap: wrap;
  gap: 10px 14px;
  margin: 0 0 14px;
  padding: 0 0 14px;
  border-bottom: 1px solid var(--ev-rule);
}
.ev-history-filter { display: grid; gap: 5px; color: var(--ev-muted); font-size: var(--esp-type-caption); font-weight: var(--esp-weight-bold); }
.ev-history-tools select {
  min-height: 44px;
  padding: 0 36px 0 12px;
  border: 1px solid var(--ev-rule-strong);
  border-radius: 9px;
  background: var(--ev-paper);
  color: var(--ev-ink);
  font-size: var(--esp-type-caption);
  font-weight: var(--esp-weight-bold);
}
.ev-history-tools select:focus-visible { outline: 3px solid rgba(82, 104, 202, .28); outline-offset: 2px; }
.ev-history-status { min-height: 20px; margin: 0 0 7px auto; color: var(--ev-muted); font-size: var(--esp-type-caption); }
.ev-history .ma-historico { margin: 0; }

.ev-next { padding: 18px; border: 1px solid var(--ev-rule); background: var(--ev-paper); }
.ev-next a {
  display: inline-flex;
  align-items: center;
  min-height: 44px;
  margin-top: 13px;
  color: var(--ev-cobalt-deep);
  font-size: var(--esp-type-caption);
  font-weight: var(--esp-weight-bold);
  text-decoration: none;
}

/* O upsell é nota de rodapé do relatório, não uma segunda hero escura. */
.ev-page .ma-upsell {
  margin-top: 32px;
  border: 1px solid #d7dded;
  border-radius: var(--app-radius-mobile-panel);
  background: var(--ev-cobalt-soft);
  color: var(--ev-ink);
  box-shadow: none;
}
.ev-page .ma-upsell span { color: var(--ev-muted); opacity: 1; }
.ev-page .ma-upsell .pz-btn-primary { min-height: 44px; background: var(--ev-ink); color: #fff; }

/* ── Gate, vazio, erro e carregamento: estados com direção clara ─────────── */
.ma-in-shell .ma-gate, .ma-in-shell .ma-empty { min-height: min(74vh, 720px); padding: 28px 20px; }
.ma-in-shell .ma-loading { min-height: min(66vh, 620px); color: var(--ev-muted); }
.ma-in-shell .ma-gate-card {
  width: min(620px, 100%);
  padding: 34px;
  border: 1px solid var(--ev-rule);
  border-top: 4px solid var(--ev-cobalt);
  border-radius: var(--app-radius-mobile-panel);
  background: var(--ev-paper);
  box-shadow: 0 24px 60px -48px rgba(23, 33, 58, .7);
  text-align: left;
}
.ma-in-shell .ma-gate-icon {
  width: 48px;
  height: 48px;
  margin: 0 0 18px;
  align-items: center;
  border-radius: var(--app-radius-control);
  background: var(--ev-cobalt-soft);
  color: var(--ev-cobalt-deep);
}
.ma-in-shell .ma-gate-icon svg { width: 24px; height: 24px; }
.ma-in-shell .ma-gate-card h1,
.ma-in-shell .ma-gate-card h2 {
  margin: 0 0 12px;
  color: var(--ev-ink);
  font: var(--esp-weight-bold) clamp(1.7rem, 4vw, 2.2rem)/1.08 var(--esp-display, Manrope, sans-serif);
  letter-spacing: -.04em;
}
.ma-in-shell .ma-gate-card p { margin: 0 0 24px; color: var(--ev-muted); }
.ma-in-shell .ma-gate-card .pz-input { min-height: 48px; text-align: left; }
.ma-in-shell .ma-gate-card .pz-btn { min-height: 48px; }
.ma-in-shell .ma-gate-foot { margin: 20px 0 0 !important; }

/* ── Responsividade ───────────────────────────────────────────────────────── */
@media (max-width: 980px) {
  .ev-summary { grid-template-columns: minmax(0, 1fr) minmax(310px, .82fr); gap: 22px var(--app-space-8); }
  .ev-coach { grid-template-columns: minmax(0, 1fr) minmax(280px, .75fr); }
}

@media (max-width: 860px) {
  .ev-summary { grid-template-columns: 1fr; grid-template-areas: "copy" "stats" "ruler"; gap: var(--app-space-5); }

  .ev-coach { grid-template-columns: 1fr; }
  .ev-coach-action { border: 1px solid #d5e4bb !important; }
  .ev-routine { grid-template-columns: 1fr; gap: 15px; }
  .ev-page .ma-player { grid-template-columns: 1fr; gap: 18px; }
  .ev-page .ma-player-abas { border-top: 0; }
  .ev-page .ma-player-overflow-hint:not([hidden]) {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin: 6px 0 0;
    color: var(--ev-muted);
    font-size: var(--esp-type-caption);
    line-height: 1.4;
  }
  .ev-page .ma-player-overflow-hint span { color: var(--ev-cobalt-deep); font-size: var(--esp-type-body); }
  .ev-page .ma-aba { min-width: 148px; border: 1px solid var(--ev-rule); border-bottom: 3px solid transparent; border-radius: var(--app-radius-control); }
  .ev-page .ma-aba[aria-selected="true"] { border-left-color: var(--ev-rule); border-bottom-color: var(--ev-cobalt); }
}

@media (max-width: 640px) {
  .ma-in-shell .app-main { padding-top: 22px; }
  .ev-head { align-items: flex-start; flex-wrap: wrap; gap: 14px; margin-bottom: 20px; }
  .ev-head h1 { font-size: var(--esp-type-display); }
  .ev-head p { font-size: var(--esp-type-support); }
  .ev-pass-badge { min-height: 36px; }
  .ev-tabs { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 0; margin-bottom: 20px; }
  .ev-tabs .ep-tab { min-width: 0; padding: 0 3px 10px; font-size: var(--esp-type-caption); white-space: nowrap; }

  .ev-summary { padding: var(--app-space-6) var(--app-space-5) 22px; border-radius: var(--app-radius-mobile-panel); }
  .ev-summary-copy h2 { font-size: var(--esp-type-heading); }
  .ev-summary-stats { gap: 0; padding-top: 15px; }
  .ev-summary-stat { padding: 0 9px; }
  .ev-summary-stat b { font-size: var(--esp-type-body); }
  .ev-summary-stat span { font-size: var(--esp-type-caption); overflow-wrap: anywhere; }


  .ev-coach { margin-bottom: 30px; }
  .ev-coach-main, .ev-coach-action { padding: 22px 20px; }
  .ev-coach-heading { align-items: flex-start; }
  .ev-coach h2 { font-size: var(--esp-type-heading); }
  .ev-coach-stats > span { padding: 0 8px; }
  .ev-coach-buttons { display: grid; grid-template-columns: 1fr; }
  .ev-coach-buttons a, .ev-coach-buttons button { width: 100%; padding: 8px 12px; }

  .ev-area-grid { grid-template-columns: 1fr; }
  .ev-area-card:nth-child(even) { padding-left: 0; border-left: 0; }
  .ev-full-card .ep-section-head, .ev-full-card .ma-secao-head { align-items: flex-start; flex-wrap: wrap; gap: 8px; }

  .ev-history-tools { align-items: end; }
  .ev-history-filter { flex: 1 1 130px; }
  .ev-history-tools select { width: 100%; }
  .ev-history-status { flex: 1 0 100%; margin-left: 0; }
  .ma-in-shell .ma-gate, .ma-in-shell .ma-empty { padding: 20px 14px; }
  .ma-in-shell .ma-gate-card { padding: 26px 22px; }
}

/* ═══ Direção visual 05/09 — uma história, não uma pilha de relatórios ══════
   Posição, corte e curva agora vivem na mesma superfície. A prioridade vira
   uma única decisão contínua; o hábito ganha um ritmo próprio e reconhecível. */
.ev-page .ev-summary {
  grid-template-columns: minmax(0, .9fr) minmax(310px, 1.1fr);
  grid-template-areas:
    "copy ruler"
    "progress progress"
    "stats stats";
  gap: 22px 34px;
  padding: 28px 30px 24px;
  margin-bottom: 24px;
  overflow: hidden;
  background: var(--ev-paper);
}
.ev-page .ev-summary::before {
  content: "";
  position: absolute;
  top: 0;
  right: 0;
  left: 0;
  height: 3px;
  background: linear-gradient(90deg, var(--ev-cobalt) 0 58%, var(--ev-lime) 58% 100%);
}
.ev-page .ev-summary-copy { align-self: center; }
.ev-page .ev-summary-copy h2 { max-width: 20ch; font-size: clamp(1.65rem, 2.6vw, 2.2rem); }
.ev-page .ev-score-reference {
  min-height: 132px;
  padding: 16px 20px;
  border: 0;
  border-left: 1px solid var(--ev-rule);
  border-radius: 0;
  background: transparent;
}
.ev-summary-progress {
  grid-area: progress;
  min-width: 0;
  padding: 20px 2px 3px;
  border-top: 1px solid var(--ev-rule);
}
.ev-summary-progress .ev-progress-chart {
  height: 126px;
  margin-top: 15px;
  border-bottom-color: var(--ev-rule-strong);
}
.ev-summary-progress .ev-progress-bar > b { display: none; }
.ev-summary-progress .ev-progress-bar.is-last > b { display: block; }
.ev-summary-progress .ev-progress-empty { min-height: 94px; margin-top: 14px; border: 0; background: var(--ev-wash); }
.ev-page .ev-summary-stats {
  margin: 0;
  padding-top: 17px;
}
.ev-page .ev-summary-stat { display: flex; align-items: baseline; gap: 8px; padding-inline: 18px; }
.ev-page .ev-summary-stat:first-child { padding-left: 2px; }
.ev-page .ev-summary-stat b { flex: none; }
.ev-page .ev-summary-stat span { margin: 0; }

.ev-page .ev-coach {
  display: block;
  margin: 0 0 22px;
  border: 0;
}
.ev-focus-card {
  position: relative;
  display: grid;
  grid-template-columns: 48px minmax(0, 1fr) minmax(300px, .88fr);
  grid-template-areas: "number copy action" "number stats action";
  min-width: 0;
  overflow: hidden;
  border: 1px solid var(--ev-rule);
  border-radius: var(--app-radius-panel);
  background: var(--ev-paper);
  box-shadow: var(--app-shadow-reading);
}
.ev-focus-number {
  grid-area: number;
  display: grid;
  place-items: start center;
  padding-top: 27px;
  border-right: 1px solid var(--ev-rule);
  color: var(--ev-cobalt-deep);
  font: var(--esp-weight-bold) var(--esp-type-caption)/1 var(--esp-micro, ui-monospace, monospace);
}
.ev-focus-copy { grid-area: copy; min-width: 0; padding: 26px 28px 0; }
.ev-focus-copy > p { max-width: 55ch; margin: 0; color: var(--ev-muted); font-size: var(--esp-type-support); line-height: 1.55; }
.ev-focus-card .ev-coach-stats {
  grid-area: stats;
  margin: 18px 28px 25px;
  padding-top: 15px;
}
.ev-focus-action {
  grid-area: action;
  display: flex;
  min-width: 0;
  flex-direction: column;
  justify-content: center;
  padding: 27px 28px;
  border-left: 1px solid #d8e7bd;
  background: var(--ev-lime-soft);
}
.ev-focus-action h3 { margin: 8px 0 7px; color: var(--ev-ink); font: var(--esp-weight-bold) var(--esp-type-body)/1.3 var(--esp-display, Manrope, sans-serif); letter-spacing: -.025em; }
.ev-focus-action p { margin: 0; color: #667357; font-size: var(--esp-type-caption); line-height: 1.55; }
.ev-focus-action .ev-coach-buttons button { border: 0; padding-inline: 5px; text-decoration: underline; text-decoration-color: #b7ca97; text-underline-offset: 4px; }

.ev-page .ev-routine {
  display: grid;
  grid-template-columns: minmax(155px, .28fr) minmax(0, 1fr);
  gap: 25px;
  margin: 0;
  padding: 22px 26px;
  border: 0;
  border-left: 3px solid var(--ev-lime);
  border-radius: 0;
  background: #f7f9f3;
  box-shadow: none;
}
.ev-routine > header { min-width: 0; }
.ev-routine > header .ep-eyebrow { color: var(--ev-lime-ink); text-transform: none; letter-spacing: .02em; }
.ev-page .ev-routine h3 { margin-top: 7px; font-size: var(--esp-type-body); }
.ev-routine .ma-atv-summary { margin-bottom: 12px; }

/* Histórico reconhecível: o caso vira o nome, e tipo/área passam a contexto. */
.ev-history .ma-tent {
  grid-template-columns: minmax(96px, .28fr) minmax(0, 1fr) auto 18px;
  align-items: center;
  min-height: 82px;
  padding-block: 15px;
}
.ev-history .ma-tent-quando b,
.ev-history .ma-tent-quando small { display: block; }
.ev-history .ma-tent-quando b { color: var(--ev-ink); font-size: var(--esp-type-caption); }
.ev-history .ma-tent-quando small { margin-top: 5px; color: var(--ev-muted); font-size: var(--esp-type-caption); }
.ev-history .ma-tent-o-que b { max-width: 58ch; line-height: 1.35; }
.ev-history .ma-tent-o-que i { margin-top: 5px; }

@media (max-width: 860px) {
  .ev-page .ev-summary {
    grid-template-columns: 1fr;
    grid-template-areas: "copy" "ruler" "progress" "stats";
  }
  .ev-page .ev-score-reference { min-height: 0; border-left: 0; border-top: 1px solid var(--ev-rule); padding: 18px 0 2px; }
  .ev-focus-card {
    grid-template-columns: 42px minmax(0, 1fr);
    grid-template-areas: "number copy" "number stats" "action action";
  }
  .ev-focus-action { border-top: 1px solid #d8e7bd; border-left: 0; }
}

@media (max-width: 640px) {
  .ev-page .ev-summary { gap: 17px; padding: 22px 17px 18px; }
  .ev-page .ev-summary-copy h2 { font-size: var(--esp-type-heading); }
  .ev-summary-progress { padding-top: 16px; }
  .ev-summary-progress .ev-progress-chart { height: 105px; }
  .ev-page .ev-summary-stats { grid-template-columns: repeat(3, minmax(0, 1fr)); padding-top: 14px; }
  .ev-page .ev-summary-stat { display: block; padding-inline: 8px; }
  .ev-page .ev-summary-stat span { display: block; margin-top: 5px; }
  .ev-focus-card { grid-template-columns: 1fr; grid-template-areas: "copy" "stats" "action"; }
  .ev-focus-number { position: absolute; top: 20px; right: 16px; display: block; padding: 0; border: 0; }
  .ev-focus-copy { padding: 20px 16px 0; }
  .ev-focus-copy .ev-coach-heading { padding-right: 28px; }
  .ev-focus-card .ev-coach-stats { margin: 15px 16px 19px; }
  .ev-focus-action { padding: 20px 16px 18px; }
  .ev-page .ev-routine { grid-template-columns: 1fr; gap: 14px; padding: 19px 16px; }
  .ev-history .ma-tent { grid-template-columns: minmax(0, 1fr) auto 14px; gap: 8px 10px; }
  .ev-history .ma-tent-quando { grid-column: 1; display: flex; align-items: baseline; gap: 7px; }
  .ev-history .ma-tent-quando small { margin: 0; }
  .ev-history .ma-tent-o-que { grid-column: 1; }
  .ev-history .ma-tent-nota { grid-column: 2; grid-row: 1 / 3; }
  .ev-history .ma-tent-abrir { grid-column: 3; grid-row: 1 / 3; }
}

@media (max-width: 390px) {
  .ev-head h1 { letter-spacing: -.055em; }
  .ev-tabs .ep-tab { font-size: var(--esp-type-caption); letter-spacing: -.02em; }
  .ev-summary { padding-right: 16px; padding-left: 16px; }
  .ev-summary-stat { padding: 0 6px; }
  .ev-summary-stat span { line-height: 1.18; }

  .ev-coach-main, .ev-coach-action { padding-right: 16px; padding-left: 16px; }
  .ev-coach-signal { max-width: 48%; white-space: normal; line-height: 1.2; }
  .ev-page .ma-player-painel { padding: 20px 16px; }
  .ev-history .ma-tent { gap: 4px 8px; }
  .ev-history .ma-tent-nota { font-size: var(--esp-type-support); }
}

@media (prefers-reduced-motion: reduce) {
  .ev-panel:not([hidden]) { animation: none; }
  .ev-tabs .ep-tab::after { transition: none; }
  .ev-page .ma-treino:hover { transform: none; }
}

/* ═══ Elevação é hierarquia, não decoração (mesma regra da Início) ═══════════
   A tela tinha tres elevacoes: o resumo em alfa .62, o coach em .54 e a acao em
   .36 — cada bloco com a sua. Aqui a hierarquia e outra: nao ha uma missao a
   acionar, ha uma LEITURA. Entao o resumo sobe um degrau (e a resposta que o
   aluno veio buscar) e os dois blocos abaixo assentam no mesmo nivel, porque
   sao irmaos: um diz onde perde, o outro diz se o ajuste entrou. */
.ev-page .ev-coach-main,
.ev-page .ev-coach-action {
  border-radius: var(--app-radius-panel);
  box-shadow: var(--app-shadow-reading);
}

/* Caixa alta e do sobretitulo da PAGINA (.ev-head .ep-eyebrow) e dos grupos da
   sidebar — mais nada. "POSICAO ATUAL", "MARGEM ACIMA" e "PRIORIDADE CALCULADA"
   sao rotulos de bloco: com todos gritando junto, nenhum guia. Mesma regra ja
   aplicada na Inicio, no Treinar, no Acervo e no Perfil. */
.ev-summary-copy .ep-eyebrow,
.ev-coach-kicker,
.ev-action-kicker {
  text-transform: none;
  letter-spacing: .01em;
}

/* ═══ Régua de estudo, não cartão-hero ═════════════════════════════════════
   O aluno veio ler a distância até o corte. A régua passa a ser um instrumento
   de apoio dentro do resumo, com a mesma calma de uma folha de treino. */
.ev-page .ev-summary {
  grid-template-columns: minmax(0, 1.18fr) minmax(260px, .82fr);
  gap: 18px var(--app-space-7);
  padding: var(--app-space-6) var(--app-space-7);
  border-radius: var(--app-radius-panel);
  background: var(--ev-paper);
  box-shadow: var(--app-shadow-reading);
}
.ev-page .ev-summary-copy h2 {
  max-width: 24ch;
  margin: 7px 0 var(--app-space-2);
  font-size: var(--esp-type-heading);
}
.ev-page .ev-summary-copy > p { max-width: 52ch; font-size: var(--esp-type-caption); }
.ev-page .ev-summary-stats { margin-top: 0; padding-top: 14px; }
.ev-page .ev-summary-stat b { font-size: var(--esp-type-body); }
.ev-page .ev-summary-stat span { margin-top: 5px; }







@media (max-width: 860px) {
  .ev-page .ev-summary {
    grid-template-columns: 1fr;
    grid-template-areas: "copy" "stats" "ruler";
    gap: var(--app-space-4);
    padding: 22px var(--app-space-5) var(--app-space-5);
  }

}

@media (max-width: 640px) {
  .ev-page .ev-summary { padding: var(--app-space-5) var(--app-space-4) 18px; border-radius: var(--app-radius-mobile-panel); }
  .ev-page .ev-summary-copy h2 { font-size: var(--esp-type-heading); }
  .ev-page .ev-summary-stat { padding-inline: var(--app-space-2); }
}

/* ═══ Orientação contínua ═══════════════════════════════════════════════════
   Prioridade e próximo treino são duas metades da mesma decisão. Um divisor
   simples comunica isso melhor do que duas caixas independentes. */
.ev-page .ev-coach {
  grid-template-columns: minmax(0, 1.18fr) minmax(280px, .82fr);
  gap: 0;
  margin-bottom: 34px;
  border-top: 1px solid var(--ev-rule);
  border-bottom: 1px solid var(--ev-rule);
}
.ev-page .ev-coach .ep-card { border-radius: 0; box-shadow: none; }
.ev-page .ev-coach-main {
  padding: 24px 30px 24px 0;
  border: 0 !important;
  background: transparent;
}
.ev-page .ev-coach-action {
  padding: 24px 0 24px 30px;
  border: 0 !important;
  border-left: 1px solid #d5e4bb !important;
  background: var(--ev-lime-soft);
}
.ev-page .ev-coach h2 { margin-top: 8px; }
.ev-page .ev-coach-stats { margin-top: 16px; padding-top: 14px; }

@media (max-width: 860px) {
  .ev-page .ev-coach {
    grid-template-columns: 1fr;
    border-bottom: 0;
  }
  .ev-page .ev-coach-main { padding: 22px 0; }
  .ev-page .ev-coach .ev-coach-action {
    padding: 22px 20px 20px;
    border: 1px solid #d5e4bb !important;
    border-radius: var(--app-radius-panel);
    box-shadow: var(--app-shadow-reading);
  }
}

@media (max-width: 640px) {
  .ev-page .ev-coach { margin-bottom: 28px; }
  .ev-page .ev-coach-main { padding-block: 20px; }
  .ev-page .ev-coach-stats > span {
    padding-inline: 4px;
    text-align: center;
  }
  .ev-page .ev-coach-stats > span:first-child { padding-left: 4px; }
  .ev-page .ev-coach .ev-coach-action {
    padding: 20px 16px 18px;
    border-radius: var(--app-radius-mobile-panel);
  }
}

/* Acabamento da superfície editorial. */
.ev-score-reference { grid-area: ruler; min-width: 0; align-self: stretch; display: grid; align-content: center; padding: var(--app-space-3) var(--app-space-5); border: 1px solid var(--ev-rule); border-radius: var(--app-radius-inset); background: var(--ev-cobalt-soft); }
/* Compacta só a régua da Evolução, preservando os componentes das outras telas. */
.ev-score-reference .esp-score-scale .esp-score-scale-status { margin-top: 6px; }
.ev-score-reference .esp-score-scale .esp-score-scale-plot { margin-top: var(--app-space-3); }
.ev-score-reference .esp-score-scale .esp-score-scale-axis { margin-top: 10px; }
.ev-page .ev-routine { grid-template-columns: minmax(165px, .32fr) minmax(0, 1fr); align-items: start; }
.ev-page .ev-routine h3::after { content: none; }
.ev-routine .ma-atividade { display: block; overflow: visible; padding: 0; }
.ev-routine .ma-atv-summary { display: flex; flex-wrap: wrap; align-items: baseline; gap: var(--app-space-1) var(--app-space-3); margin: 0 0 var(--app-space-3); color: var(--ev-muted); font-size: var(--esp-type-caption); line-height: 1.4; }
.ev-routine .ma-atv-summary b { color: var(--ev-ink); font-weight: var(--esp-weight-bold); }
.ev-routine .ma-atv-period { white-space: nowrap; }
.ev-routine .ma-atv-scroll { position: relative; min-width: 0; }
.ev-routine .ma-atv-scroll::before,
.ev-routine .ma-atv-scroll::after { content: ''; position: absolute; top: 0; bottom: 0; width: 18px; z-index: 1; pointer-events: none; opacity: 0; }
.ev-routine .ma-atv-scroll::before { left: 0; background: linear-gradient(to right, #f7f8fc, transparent); }
.ev-routine .ma-atv-scroll::after { right: 0; background: linear-gradient(to left, #f7f8fc, transparent); }
.ev-routine .ma-atv-scroll.has-earlier::before,
.ev-routine .ma-atv-scroll.has-later::after { opacity: 1; }
.ev-routine .ma-atv-grid { display: grid; grid-template-columns: repeat(14, 34px); gap: 5px; max-width: 100%; justify-content: start; overflow-x: auto; scrollbar-width: none; -ms-overflow-style: none; }
.ev-routine .ma-atv-grid::-webkit-scrollbar { display: none; width: 0; height: 0; }
.ev-routine .ma-atv-grid:focus-visible { outline: 2px solid var(--ev-cobalt); outline-offset: 3px; border-radius: 4px; }
.ev-routine .ma-atv-scroll-hint { margin: 7px 0 0; color: var(--ev-muted); font-size: var(--esp-type-caption); line-height: 1.4; }
.ev-routine .ma-atv-scroll-hint[hidden] { display: none; }
.ev-routine .ma-atv-day-item { min-width: 0; text-align: center; }
.ev-routine .ma-atv-cell { min-height: 44px; aspect-ratio: auto; border-radius: 7px; gap: 3px; }
.ev-routine .ma-atv-cell i { font-size: var(--esp-type-caption); font-weight: var(--esp-weight-medium); }
.ev-routine .ma-atv-cell b { font-size: var(--esp-type-support); font-weight: var(--esp-weight-bold); }
.ev-routine .ma-atv-cell.hoje { border-color: var(--ev-cobalt); box-shadow: inset 0 0 0 1px var(--ev-cobalt); }
.ev-routine .ma-atv-date { display: block; margin-top: 5px; color: var(--ev-muted); font: var(--esp-weight-medium) var(--esp-type-caption)/1.2 var(--esp-ui); font-variant-numeric: tabular-nums; white-space: nowrap; }
.ev-routine .ma-atv-legend { display: flex; flex-wrap: wrap; gap: var(--app-space-1) var(--app-space-3); margin: var(--app-space-3) 0 0; color: var(--ev-muted); font-size: var(--esp-type-caption); line-height: 1.4; }
@media (max-width: 1100px) {
  .ev-page .ev-routine { grid-template-columns: 1fr; }
}
.ev-page.ev-page-heading { margin-bottom: 24px; }
.ma-in-shell .ev-loading {
  display: block;
  place-items: normal;
  min-height: 0;
  padding: 0;
  text-align: left;
}
.ev-load-status {
  display: flex;
  width: 100%;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 8px 20px;
  margin-bottom: 16px;
  color: var(--ev-muted);
  font-size: var(--esp-type-caption);
}
.ev-load-status p { margin: 0; }
.ev-load-status button {
  min-height: 44px;
  padding: 8px 12px;
  border: 1px solid var(--ev-rule);
  border-radius: 8px;
  background: var(--ev-paper);
  color: var(--ev-cobalt-deep);
  font: inherit;
  cursor: pointer;
}
.ev-load-status button:focus-visible { outline: 2px solid var(--ev-cobalt); outline-offset: 3px; }
.ev-loading-shape { width: 100%; min-width: 0; animation: ev-loading-breathe 1.8s ease-in-out infinite alternate; }
.ev-skeleton-tabs { display: flex; gap: 12px; margin-bottom: 22px; padding-bottom: 14px; border-bottom: 1px solid var(--ev-rule); }
.ev-skeleton-tabs i { width: 85px; max-width: 21%; height: 30px; border-radius: 7px; background: var(--ev-rule); }
.ev-skeleton-line { display: block; height: 12px; margin-block: 10px; width: 90%; border-radius: 4px; background: var(--ev-rule); }
.ev-skeleton-line.is-label { width: 38%; height: 10px; }
.ev-skeleton-line.is-title { width: 78%; height: 30px; margin-block: 16px; }
.ev-skeleton-line.is-value { width: 42px; height: 20px; }
.ev-skeleton-line.is-button { height: 44px; width: 80%; margin-top: 20px; border-radius: 9px; }
.ev-skeleton-ruler { grid-area: ruler; min-height: 120px; border-radius: var(--app-radius-inset); background: var(--ev-wash); border: 1px solid var(--ev-rule); }
.ev-skeleton-summary .ev-summary-stats { gap: var(--app-space-5); }
.ev-loading-shape .ev-coach { min-height: 240px; }
.ev-loading-shape .ev-coach-action { background: var(--ev-wash); border-color: var(--ev-rule) !important; }
.ma-in-shell #ma-empty,
.ma-in-shell #ma-erro { min-height: 0; padding: 24px 0; }
.ma-in-shell #ma-empty .ma-gate-card,
.ma-in-shell #ma-erro .ma-gate-card { border-top-width: 1px; box-shadow: none; }
.ma-in-shell #ma-empty .pz-btn,
.ma-in-shell #ma-erro .pz-btn {
  border-radius: var(--app-radius-control);
  border: 0;
  box-shadow: none;
  transform: none;
}
.ma-in-shell #ma-empty .pz-btn { background: var(--ev-lime); color: var(--ev-ink); }
.ma-in-shell #ma-erro .pz-btn { background: var(--ev-cobalt-deep); color: #fff; }
.ma-in-shell #ma-empty .pz-btn:focus-visible,
.ma-in-shell #ma-erro .pz-btn:focus-visible { outline: 2px solid var(--ev-cobalt); outline-offset: 3px; }
@keyframes ev-loading-breathe { from { opacity: .62; } to { opacity: 1; } }
@media (prefers-reduced-motion: reduce) { .ev-loading-shape { animation: none; } }
@media (max-width: 640px) {
  .ev-page.ev-page-heading { margin-bottom: 20px; }
  .ev-load-status { align-items: flex-start; }
}

.ma-in-shell .app-main {
  padding-top: 28px;
  background-color: #f7f8fc;
  background-image: none;
}
.ev-page .ev-tabs { margin-bottom: 22px; }
.ev-page .ev-panel { min-height: 0; }
.ev-page .ev-routine { padding-top: 20px; }
.ev-page .ma-upsell {
  display: flex;
  align-items: center;
  gap: 24px;
  margin-top: 26px;
  padding: 16px 0;
  border: 0;
  border-top: 1px solid var(--ev-rule);
  border-bottom: 1px solid var(--ev-rule);
  border-radius: 0;
  background: transparent;
}
.ev-page .ma-upsell > div { min-width: 0; }
.ev-page .ma-upsell strong { display: block; color: var(--ev-ink); }
.ev-page .ma-upsell span { display: block; margin-top: 4px; font-size: var(--esp-type-caption); }
.ev-page .ma-upsell .pz-btn-primary {
  flex: 0 0 auto;
  min-height: 42px;
  margin-left: auto;
  border-radius: 9px;
  background: var(--ev-cobalt);
  color: #fff;
}

@media (max-width: 640px) {
  .ma-in-shell .app-main { padding-top: 20px; }
  .ev-page .ev-tabs { margin-bottom: 18px; }
  .ev-page .ma-upsell { display: grid; gap: 14px; margin-top: 22px; padding: 16px 0; }
  .ev-page .ma-upsell .pz-btn-primary { width: 100%; margin-left: 0; }
  .ev-progress-card { margin-bottom: 24px; padding: 19px 16px 16px; border-radius: var(--app-radius-card); }
  .ev-progress-top b { font-size: var(--esp-type-support); }
  .ev-progress-top > span { padding: 7px 8px; }
  .ev-progress-chart { height: 142px; gap: 6px; margin: 21px 0 13px; padding: 0 5px; }
  .ev-progress-axis-label { bottom: calc(var(--cut) + 8px); left: 0; }
  .ev-progress-bar > b { top: -15px; }
  .ev-progress-bar.is-last > b { top: -18px; }
  .ev-progress-next { gap: 8px; padding: 10px; }
  .ev-progress-next b { max-width: 21ch; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
  .ev-progress-empty { min-height: 142px; margin: 21px 0 13px; }
}

/* Mantém a composição narrativa como última palavra da cascata. */
.ev-page .ev-summary {
  grid-template-columns: minmax(0, .9fr) minmax(310px, 1.1fr);
  grid-template-areas: "copy ruler" "progress progress" "stats stats";
  gap: 22px 34px;
  margin-bottom: 24px;
  padding: 28px 30px 24px;
}
.ev-page .ev-score-reference {
  min-height: 132px;
  padding: 16px 20px;
  border: 0;
  border-left: 1px solid var(--ev-rule);
  border-radius: 0;
  background: transparent;
}
.ev-page .ev-coach { display: block; margin: 0 0 22px; border: 0; }
.ev-page .ev-routine {
  grid-template-columns: minmax(155px, .28fr) minmax(0, 1fr);
  gap: 25px;
  margin: 0;
  padding: 22px 26px;
  border: 0;
  border-left: 3px solid var(--ev-lime);
  border-radius: 0;
  background: #f7f9f3;
  box-shadow: none;
}
@media (max-width: 860px) {
  .ev-page .ev-summary {
    grid-template-columns: 1fr;
    grid-template-areas: "copy" "ruler" "progress" "stats";
  }
  .ev-page .ev-score-reference { min-height: 0; padding: 18px 0 2px; border-top: 1px solid var(--ev-rule); border-left: 0; }
}
@media (max-width: 640px) {
  .ev-page .ev-summary { gap: 17px; padding: 22px 17px 18px; }
  .ev-page .ev-routine { grid-template-columns: 1fr; gap: 14px; padding: 19px 16px; }
}

/* ═══ PRIMEIRA DOBRA COMPACTA — setembro 2026 ═══════════════════════════════
   O índice do relatório chega logo após o nome da rota. */
.ma-in-shell .app-main { padding-top: 18px; }
.ma-in-shell .ev-page.ev-page-heading {
  min-height: 40px;
  align-items: center;
  margin-bottom: 7px;
}
.app-body.ma-in-shell .ev-head h1 {
  font-size: clamp(29px, 3vw, 34px);
  line-height: 1.06;
  letter-spacing: -.045em;
}
.ma-in-shell .ev-pass-badge { min-height: 32px; }
.ma-in-shell .ev-page .ev-tabs { margin-bottom: 16px; }
@media (max-width: 640px) {
  .ma-in-shell .app-main { padding-top: 12px; }
  .ma-in-shell .ev-page.ev-page-heading {
    min-height: 34px;
    gap: 10px;
    margin-bottom: 5px;
  }
  .app-body.ma-in-shell .ev-head h1 { font-size: clamp(25px, 7.4vw, 29px); }
  .ma-in-shell .ev-pass-badge { min-height: 30px; padding-inline: 9px; }
  .ma-in-shell .ev-page .ev-tabs { margin-bottom: 14px; }
}

/* Dashboard estável: o laudo ocupa a esquerda e a orientação, a direita. */
html { scrollbar-gutter: stable; }
.ma-in-shell .ma-dash .pz-container { margin-inline: auto; }
.ev-overview-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.5fr) minmax(330px, .72fr);
  gap: 16px;
  align-items: stretch;
  margin-bottom: 22px;
}
.ev-overview-grid > .ev-summary {
  height: 100%;
  margin: 0;
}
.ev-overview-grid > .ev-coach {
  height: 100%;
  margin: 0;
}
.ev-overview-grid .ev-focus-card {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  grid-template-rows: repeat(2, minmax(0, 1fr));
  grid-template-areas: none;
  gap: 12px;
  height: 100%;
  overflow: visible;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
}
.ev-focus-main-card {
  position: relative;
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  grid-template-areas: "copy" "stats";
  min-width: 0;
  overflow: hidden;
  border: 1px solid var(--ev-rule);
  border-radius: var(--app-radius-panel);
  background: var(--ev-paper);
  box-shadow: var(--app-shadow-reading);
}
.ev-focus-main-card .ev-focus-copy { padding: 21px 18px 0; }
.ev-focus-main-card .ev-coach-heading { align-items: flex-start; flex-wrap: wrap; gap: 7px; }
.ev-focus-main-card .ev-focus-copy h2 {
  max-width: 16ch;
  margin-top: 8px;
  font-size: clamp(1.42rem, 2vw, 1.72rem);
}
.ev-focus-main-card .ev-focus-copy > p { font-size: var(--esp-type-caption); }
.ev-focus-main-card .ev-coach-stats {
  margin: 14px 18px 19px;
  padding-top: 13px;
}
.ev-focus-main-card .ev-coach-stats > span { padding-inline: 8px; }
.ev-focus-main-card .ev-coach-stats > span:first-child { padding-left: 0; }
.ev-focus-main-card .ev-coach-stats small {
  font-size: 9px;
  overflow-wrap: anywhere;
}
.ev-overview-grid .ev-focus-action {
  grid-area: auto;
  justify-content: center;
  padding: 22px;
  overflow: hidden;
  border: 1px solid #d5e4bb !important;
  border-radius: var(--app-radius-panel);
  background: var(--ev-lime-soft);
  box-shadow: var(--app-shadow-reading);
}
.ev-overview-grid .ev-focus-action h3 { font-size: var(--esp-type-support); }
.ev-overview-grid .ev-coach-buttons { margin-top: 14px; }

/* O gráfico sempre conserva oito posições; tentativas novas ocupam da esquerda. */
.ev-progress-chart {
  display: grid;
  grid-template-columns: repeat(8, minmax(0, 1fr));
  align-items: end;
}
.ev-progress-bar,
.ev-progress-slot {
  width: 100%;
  min-width: 0;
  flex: none;
}
.ev-progress-slot { height: 1px; opacity: 0; }
.ev-summary-progress .ev-progress-bar > b { display: block; }

@media (max-width: 900px) {
  .ev-overview-grid { grid-template-columns: minmax(0, 1fr); }
  .ev-overview-grid .ev-focus-card { grid-template-rows: auto auto; }
}
@media (max-width: 640px) {
  .ev-overview-grid { gap: 18px; margin-bottom: 22px; }
  .ev-summary-progress .ev-progress-bar > b {
    top: -13px;
    font-size: 8px;
    letter-spacing: -.03em;
  }
  .ev-summary-progress .ev-progress-bar.is-last > b { top: -16px; }
  .ev-summary-progress .ev-progress-axis-label { bottom: calc(var(--cut) + 25px); }
  .ev-focus-main-card {
    grid-template-columns: 1fr;
    grid-template-areas: "copy" "stats";
  }
  .ev-focus-main-card .ev-focus-copy { padding: 20px 16px 0; }
  .ev-focus-main-card .ev-coach-heading { padding-right: 0; }
  .ev-focus-main-card .ev-coach-stats { margin: 15px 16px 19px; }
  .ev-overview-grid .ev-focus-action { padding: 20px 16px 18px; border-radius: var(--app-radius-mobile-panel); }
}
