/* ═══════════════════════════════════════════════════════════════════════════
   SISTEMA DE CORRIDAS — Assessoria Superando Limites
   Template Visual Premium v4.0
   Paleta: Verde #1a7a1a | Amarelo #f5c400 | Azul #1e9ad6 | Dark #0f1320
   Copyright © Daniel Silva 2026
═══════════════════════════════════════════════════════════════════════════ */

/* ── Variáveis de design ─────────────────────────────────────────────────── */
:root {
  /* ── Spacing scale ── */
  --space-xs:  8px;
  --space-sm:  16px;
  --space-md:  24px;
  --space-lg:  32px;
  --space-xl:  48px;
  --space-2xl: 64px;

  --sl-green:        #1a7a1a;
  --sl-green-light:  #2d9e2d;
  --sl-green-pale:   #e8f5e8;
  --sl-yellow:       #f5c400;
  --sl-yellow-dark:  #c49a00;
  --sl-yellow-pale:  #fffbea;
  --sl-blue:         #1e9ad6;
  --sl-blue-dark:    #0d7ab5;
  --sl-blue-pale:    #e6f4fb;
  --sl-dark:         #0f1320;
  --sl-dark2:        #1a2035;
  --sl-dark3:        #242d45;
  --sl-dark4:        #2e3a55;
  --sl-text:         #1a1a2e;
  --sl-text2:        #4a5568;
  --sl-text3:        #8896a5;
  --sl-border:       #e2e8f0;
  --sl-bg:           #f7f9fc;
  --sl-white:        #ffffff;
  --sl-radius:       12px;
  --sl-radius-sm:    8px;
  --sl-radius-lg:    16px;
  --sl-shadow:       0 2px 16px rgba(15,19,32,.08);
  --sl-shadow-md:    0 4px 24px rgba(15,19,32,.12);
  --sl-font:         -apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,sans-serif;
  /* Zonas de treino */
  --z1: #6b7280; --z1-bg: #f3f4f6;
  --z2: #1e9ad6; --z2-bg: #e6f4fb;
  --z3: #1a7a1a; --z3-bg: #e8f5e8;
  --z4: #f5c400; --z4-bg: #fffbea;
  --z5: #e74c3c; --z5-bg: #fef2f2;
}

/* ── Reset base ──────────────────────────────────────────────────────────── */
.sr-wrap,
.sr-wrap * { box-sizing: border-box; }
.sr-wrap {
  max-width: 1280px;
  margin: 0 auto;
  padding: 0 32px 56px;
  font-family: var(--sl-font);
  color: var(--sl-text);
  background: var(--sl-bg);
  min-height: 80vh;
}

/* ── Topbar do atleta ────────────────────────────────────────────────────── */
.sr-topbar {
  background: var(--sl-dark);
  margin: 0 -16px;
  padding: 0 24px;
  display: flex;
  align-items: center;
  gap: 12px;
  height: 56px;
  position: sticky;
  top: 0;
  z-index: 100;
  border-bottom: 2px solid var(--sl-green);
}
.sr-topbar-logo {
  height: 36px;
  width: auto;
}
.sr-topbar-brand {
  flex: 1;
  display: flex;
  flex-direction: column;
}
.sr-topbar-name {
  font-size: .72rem;
  font-weight: 700;
  color: var(--sl-yellow);
  letter-spacing: .08em;
  text-transform: uppercase;
  line-height: 1;
}
.sr-topbar-sub {
  font-size: .62rem;
  color: rgba(255,255,255,.45);
  line-height: 1;
}
.sr-topbar-actions {
  display: flex;
  align-items: center;
  gap: 8px;
}
.sr-notif-btn {
  position: relative;
  background: none;
  border: 1px solid rgba(255,255,255,.15);
  border-radius: var(--sl-radius-sm);
  color: rgba(255,255,255,.7);
  font-size: .85rem;
  padding: 5px 8px;
  cursor: pointer;
  transition: .15s;
}
.sr-notif-btn:hover { background: rgba(255,255,255,.08); color: #fff; }
.sr-badge-count {
  position: absolute;
  top: -4px; right: -4px;
  background: var(--sl-yellow);
  color: var(--sl-dark);
  font-size: .62rem;
  font-weight: 700;
  border-radius: 8px;
  padding: 1px 4px;
  min-width: 16px;
  text-align: center;
}
.sr-topbar-link {
  font-size: .75rem;
  color: rgba(255,255,255,.5);
  text-decoration: none;
  padding: 4px 8px;
  border-radius: var(--sl-radius-sm);
  transition: .15s;
}
.sr-topbar-link:hover { color: #fff; background: rgba(255,255,255,.08); }

/* ── Hero do atleta ──────────────────────────────────────────────────────── */
.sr-hero {
  background: var(--sl-dark2);
  margin: 0 -32px 28px;
  padding: 24px 32px;
  display: flex;
  align-items: center;
  gap: 16px;
  border-bottom: 2px solid rgba(26,122,26,.3);
  position: relative;
  overflow: hidden;
}
.sr-hero::after {
  content: '';
  position: absolute;
  top: 0; right: 0;
  width: 300px; height: 100%;
  background: radial-gradient(ellipse at 80% 50%, rgba(26,122,26,.12) 0%, transparent 70%);
  pointer-events: none;
}
.sr-hero-avatar {
  width: 64px;
  height: 64px;
  border-radius: 50%;
  border: 3px solid var(--sl-green);
  object-fit: cover;
  background: var(--sl-dark3);
  flex-shrink: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.5rem;
  font-weight: 700;
  color: var(--sl-green-light);
}
.sr-hero-info { flex: 1; }
.sr-hero-saudacao {
  font-size: .78rem;
  color: rgba(255,255,255,.45);
  text-transform: uppercase;
  letter-spacing: .08em;
}
.sr-hero-nome {
  font-size: 1.25rem;
  font-weight: 700;
  color: #fff;
  margin: 2px 0 6px;
}
.sr-hero-pills {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}
.sr-hero-pill {
  font-size: .75rem;
  padding: 2px 8px;
  border-radius: 10px;
  font-weight: 600;
  display: inline-flex;
  align-items: center;
  gap: 3px;
}
.sr-pill-turma  { background: rgba(30,154,214,.2); color: var(--sl-blue); border: 1px solid rgba(30,154,214,.3); }
.sr-pill-status { background: rgba(26,122,26,.2);  color: var(--sl-green-light); border: 1px solid rgba(26,122,26,.3); }
.sr-pill-prova  { background: rgba(245,196,0,.15); color: var(--sl-yellow); border: 1px solid rgba(245,196,0,.3); }
.sr-pill-streak { background: rgba(231,76,60,.15); color: #e74c3c; border: 1px solid rgba(231,76,60,.3); }
.sr-hero-stats {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 4px;
  flex-shrink: 0;
}
.sr-xp-chip {
  font-size: .78rem;
  color: var(--sl-yellow);
  background: rgba(245,196,0,.1);
  border: 1px solid rgba(245,196,0,.3);
  padding: 3px 8px;
  border-radius: 8px;
  font-weight: 700;
}

/* ── Notificações panel ──────────────────────────────────────────────────── */
.sr-notifs-panel {
  background: var(--sl-white);
  border-radius: var(--sl-radius);
  border: 1px solid var(--sl-border);
  box-shadow: var(--sl-shadow-md);
  margin-bottom: 20px;
  overflow: hidden;
}
.sr-notif {
  padding: 12px 16px;
  border-bottom: 1px solid var(--sl-border);
  display: flex;
  gap: 10px;
  align-items: flex-start;
}
.sr-notif:last-child { border-bottom: none; }
.sr-notif-unread { background: var(--sl-blue-pale); }
.sr-notif strong { font-size: .9rem; }
.sr-notif strong { font-size: .88rem; color: var(--sl-text); display: block; }
.sr-notif p { font-size: .8rem; color: var(--sl-text2); margin: 2px 0; }
.sr-notif small { font-size: .72rem; color: var(--sl-text3); }

/* ── Card principal de treino (hoje) ─────────────────────────────────────── */
.sr-treino-hoje {
  background: var(--sl-dark);
  border-radius: var(--sl-radius-lg);
  padding: 20px;
  margin-bottom: 20px;
  border-top: 3px solid var(--sl-green);
  position: relative;
  overflow: hidden;
}
.sr-treino-hoje::before {
  content: '';
  position: absolute;
  top: 0; right: 0;
  width: 120px; height: 120px;
  background: radial-gradient(circle, rgba(26,122,26,.15) 0%, transparent 70%);
  border-radius: 50%;
}
.sr-treino-hoje-label {
  font-size: .68rem;
  font-weight: 700;
  color: var(--sl-green-light);
  text-transform: uppercase;
  letter-spacing: .1em;
  margin-bottom: 8px;
}
.sr-treino-hoje-nome {
  font-size: 1.4rem;
  font-weight: 700;
  color: #fff;
  margin-bottom: 4px;
}
.sr-treino-hoje-obj {
  font-size: .82rem;
  color: rgba(255,255,255,.55);
  margin-bottom: 16px;
  line-height: 1.5;
}
.sr-treino-hoje-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 10px;
  margin-bottom: 16px;
}
.sr-treino-stat {
  background: rgba(255,255,255,.06);
  border-radius: var(--sl-radius-sm);
  padding: 10px;
  text-align: center;
}
.sr-treino-stat-label { font-size: .75rem; color: rgba(255,255,255,.4); text-transform: uppercase; letter-spacing: .06em; margin-bottom: 3px; }
.sr-treino-stat-val   { font-size: 1rem; font-weight: 700; color: #fff; }
.sr-treino-zona-chip {
  display: inline-block;
  font-size: .7rem;
  font-weight: 700;
  padding: 3px 10px;
  border-radius: 10px;
  text-transform: uppercase;
  letter-spacing: .06em;
}
.sr-treino-hoje-desc {
  font-size: .8rem;
  color: rgba(255,255,255,.5);
  line-height: 1.65;
  margin-bottom: 16px;
  border-left: 2px solid var(--sl-green);
  padding-left: 10px;
}
.sr-treino-hoje-btns { display: flex; gap: 8px; flex-wrap: wrap; }
.sr-btn-iniciar  { background: var(--sl-green);  color: #fff; border: none; }
.sr-btn-iniciar:hover  { background: var(--sl-green-light); }
.sr-btn-concluir { background: var(--sl-blue);   color: #fff; border: none; }
.sr-btn-concluir:hover { background: var(--sl-blue-dark); }
.sr-btn-feedback { background: transparent; color: rgba(255,255,255,.7); border: 1px solid rgba(255,255,255,.2); }
.sr-btn-feedback:hover { background: rgba(255,255,255,.08); color: #fff; }
.sr-treino-vazio {
  text-align: center;
  color: rgba(255,255,255,.4);
  padding: 20px 0 8px;
  font-size: .9rem;
}

/* ── Cards de métricas ───────────────────────────────────────────────────── */
.sr-metrics-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(140px,1fr));
  gap: 12px;
  margin-bottom: 20px;
}
.sr-metric {
  background: var(--sl-white);
  border-radius: var(--sl-radius);
  padding: 16px;
  border: 1px solid var(--sl-border);
  box-shadow: var(--sl-shadow);
  display: flex;
  flex-direction: column;
  gap: 4px;
}
.sr-metric-icon { font-size: 1.2rem; margin-bottom: 4px; }
.sr-metric-label { font-size: .72rem; color: var(--sl-text3); text-transform: uppercase; letter-spacing: .06em; }
.sr-metric-val { font-size: 1.5rem; font-weight: 700; color: var(--sl-text); line-height: 1; }
.sr-metric-sub { font-size: .72rem; color: var(--sl-text3); }
.sr-metric.green .sr-metric-val { color: var(--sl-green); }
.sr-metric.blue  .sr-metric-val { color: var(--sl-blue); }
.sr-metric.yellow .sr-metric-val { color: var(--sl-yellow-dark); }
.sr-metric.red   .sr-metric-val { color: #e74c3c; }

/* ── Análise Esportiva card ──────────────────────────────────────────────── */
.sr-analise {
  background: var(--sl-white);
  border-radius: var(--sl-radius-lg);
  border: 1px solid var(--sl-border);
  overflow: hidden;
  margin-bottom: 20px;
  box-shadow: var(--sl-shadow);
}
.sr-analise-header {
  background: linear-gradient(135deg, var(--sl-dark) 0%, var(--sl-dark2) 100%);
  padding: 14px 18px;
  display: flex;
  align-items: center;
  gap: 10px;
}
.sr-analise-header-icon {
  width: 32px;
  height: 32px;
  border-radius: 8px;
  background: rgba(26,122,26,.25);
  border: 1px solid rgba(26,122,26,.4);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: .9rem;
}
.sr-analise-header-title { font-size: .88rem; font-weight: 700; color: #fff; }
.sr-analise-header-sub   { font-size: .7rem; color: rgba(255,255,255,.45); }
.sr-analise-body { padding: 16px 18px; }
.sr-analise-msg {
  font-size: .85rem;
  color: var(--sl-text2);
  line-height: 1.7;
  border-left: 3px solid var(--sl-green);
  padding-left: 12px;
  margin-bottom: 0;
  white-space: pre-wrap;
}
.sr-analise-frase {
  background: var(--sl-green-pale);
  border-radius: var(--sl-radius-sm);
  padding: 10px 14px;
  font-size: .82rem;
  color: var(--sl-green);
  font-style: italic;
  margin-top: 12px;
}

/* ── Zonas de treino ─────────────────────────────────────────────────────── */
.sr-zonas { display: flex; flex-direction: column; gap: 6px; }
.sr-zona-row {
  display: flex;
  align-items: center;
  gap: 10px;
  background: var(--sl-white);
  border-radius: var(--sl-radius-sm);
  padding: 10px 14px;
  border: 1px solid var(--sl-border);
}
.sr-zona-color { width: 10px; height: 32px; border-radius: 3px; flex-shrink: 0; }
.sr-zona-info { flex: 1; }
.sr-zona-nome  { font-size: .8rem; font-weight: 700; color: var(--sl-text); }
.sr-zona-desc  { font-size: .78rem; color: var(--sl-text3); }
.sr-zona-paces { display: flex; gap: 8px; flex-shrink: 0; text-align: right; }
.sr-zona-pace  { font-size: .8rem; font-weight: 700; color: var(--sl-text); }
.sr-zona-fc    { font-size: .7rem; color: var(--sl-text3); }

/* ── Planilha — calendário ───────────────────────────────────────────────── */
.sr-cal { background: var(--sl-white); border-radius: var(--sl-radius-lg); border: 1px solid var(--sl-border); overflow: hidden; margin-bottom: 20px; }
.sr-cal-header { background: var(--sl-dark); padding: 14px 18px; display: flex; align-items: center; justify-content: space-between; }
.sr-cal-title { font-size: .95rem; font-weight: 700; color: #fff; }
.sr-cal-nav { display: flex; gap: 6px; }
.sr-cal-btn { background: rgba(255,255,255,.1); border: none; color: #fff; padding: 4px 10px; border-radius: 6px; cursor: pointer; font-size: .8rem; }
.sr-cal-grid { display: grid; grid-template-columns: repeat(7,1fr); }
.sr-cal-dow { text-align: center; padding: 8px; font-size: .68rem; font-weight: 700; color: var(--sl-text3); text-transform: uppercase; border-bottom: 1px solid var(--sl-border); }
.sr-cal-day { min-height: 64px; padding: 6px; border-right: 1px solid var(--sl-border); border-bottom: 1px solid var(--sl-border); position: relative; cursor: pointer; transition: .1s; }
.sr-cal-day:hover { background: var(--sl-bg); }
.sr-cal-day:nth-child(7n) { border-right: none; }
.sr-cal-daynum { font-size: .75rem; font-weight: 600; color: var(--sl-text3); margin-bottom: 3px; }
.sr-cal-day.today { background: var(--sl-green-pale); }
.sr-cal-day.today .sr-cal-daynum { color: var(--sl-green); }
.sr-cal-day.has-treino .sr-cal-daynum { color: var(--sl-dark); font-weight: 700; }
.sr-cal-chip { font-size: .62rem; padding: 1px 5px; border-radius: 4px; display: block; margin-bottom: 2px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.sr-cal-chip.rodagem   { background: var(--z2-bg); color: var(--z2); }
.sr-cal-chip.longao    { background: var(--z3-bg); color: var(--z3); }
.sr-cal-chip.ritmo     { background: var(--z4-bg); color: var(--z4-dark, #856404); }
.sr-cal-chip.tiro      { background: var(--z5-bg); color: var(--z5); }
.sr-cal-chip.prova     { background: #fef3c7; color: #92400e; }
.sr-cal-chip.descanso  { background: var(--z1-bg); color: var(--z1); }
.sr-cal-dot { width: 5px; height: 5px; border-radius: 50%; background: var(--sl-green); position: absolute; top: 4px; right: 4px; }

/* ── Lista de treinos ────────────────────────────────────────────────────── */
.sr-training-list { display: flex; flex-direction: column; gap: 12px; margin-top: 16px; }
.sr-training-card {
  background: var(--sl-white);
  border-radius: var(--sl-radius);
  padding: 16px;
  border: 1px solid var(--sl-border);
  box-shadow: var(--sl-shadow);
  border-left: 4px solid var(--sl-border);
  transition: box-shadow .15s;
}
.sr-training-card:hover { box-shadow: var(--sl-shadow-md); }
.sr-training-card.sr-done { border-left-color: var(--sl-green); opacity: .85; }
.sr-training-header { display: flex; justify-content: space-between; align-items: flex-start; margin-bottom: 8px; gap: 8px; }
.sr-training-day { font-size: .78rem; color: var(--sl-text3); display: block; margin-bottom: 2px; }
.sr-training-header h4 { margin: 0; font-size: .95rem; font-weight: 700; color: var(--sl-text); }
.sr-training-type {
  font-size: .68rem;
  font-weight: 700;
  padding: 3px 8px;
  border-radius: 8px;
  text-transform: uppercase;
  letter-spacing: .05em;
  white-space: nowrap;
}
.sr-type-rodagem    { background: var(--z2-bg); color: var(--z2); }
.sr-type-longao     { background: var(--z3-bg); color: var(--z3); }
.sr-type-ritmo      { background: var(--z4-bg); color: #856404; }
.sr-type-tempo_run  { background: var(--z4-bg); color: #856404; }
.sr-type-fartlek    { background: #f3e8ff; color: #7e22ce; }
.sr-type-tiro_curto,
.sr-type-tiro_medio,
.sr-type-tiro_longo { background: var(--z5-bg); color: var(--z5); }
.sr-type-tiro_morro { background: #fff7ed; color: #c2410c; }
.sr-training-meta { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 10px; }
.sr-training-meta span { font-size: .78rem; color: var(--sl-text2); background: var(--sl-bg); padding: 3px 8px; border-radius: 6px; }
.sr-training-desc-wrap summary { cursor: pointer; font-size: .78rem; color: var(--sl-blue); font-weight: 600; padding: 4px 0; }
.sr-orient-box { background: var(--sl-bg); border-radius: var(--sl-radius-sm); padding: 12px; margin-top: 8px; }
.sr-orient-item { margin-bottom: 8px; }
.sr-orient-item:last-child { margin-bottom: 0; }
.sr-orient-label { font-size: .72rem; font-weight: 700; color: var(--sl-text3); text-transform: uppercase; letter-spacing: .06em; margin-bottom: 2px; }
.sr-orient-text  { font-size: .82rem; color: var(--sl-text2); line-height: 1.5; }
.sr-training-card .sr-btn { font-size: .78rem; padding: 5px 12px; }

/* ── Conquistas ──────────────────────────────────────────────────────────── */
.sr-achievements-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(120px,1fr)); gap: 12px; }
.sr-achievement-card {
  background: var(--sl-white);
  border-radius: var(--sl-radius);
  padding: 16px 12px;
  text-align: center;
  border: 1px solid var(--sl-border);
  box-shadow: var(--sl-shadow);
  transition: .15s;
}
.sr-achievement-card:hover { box-shadow: var(--sl-shadow-md); transform: translateY(-1px); }
.sr-achievement-card.locked { opacity: .45; filter: grayscale(.6); }
.sr-achievement-icon { font-size: 2rem; margin-bottom: 8px; display: block; }
.sr-achievement-title { font-size: .75rem; font-weight: 700; color: var(--sl-text); margin-bottom: 3px; }
.sr-achievement-desc  { font-size: .75rem; color: var(--sl-text3); line-height: 1.4; }
.sr-achievement-date  { font-size: .75rem; color: var(--sl-green); margin-top: 4px; font-weight: 600; }
.sr-xp-bar-wrap { display: flex; align-items: center; gap: 12px; margin-bottom: 4px; }
.sr-level-badge { background: var(--sl-dark); color: var(--sl-yellow); font-size: .75rem; font-weight: 700; padding: 4px 10px; border-radius: 8px; }
.sr-xp-info { font-size: .8rem; color: var(--sl-text2); }
.sr-xp-bar { height: 6px; background: var(--sl-border); border-radius: 3px; overflow: hidden; }
.sr-xp-fill { height: 100%; background: var(--sl-yellow); border-radius: 3px; }

/* ── Aniversariantes ─────────────────────────────────────────────────────── */
.sr-bday-filters { display: flex; gap: 8px; margin-bottom: 16px; flex-wrap: wrap; }
.sr-bday-filter-btn {
  border: 1px solid var(--sl-border);
  background: var(--sl-white);
  border-radius: 20px;
  padding: 8px 16px;
  font-size: .82rem;
  font-weight: 600;
  color: var(--sl-text2);
  cursor: pointer;
  transition: .15s;
}
.sr-bday-filter-btn.active { background: #f59e0b; border-color: #f59e0b; color: #fff; }
.sr-birthday-banner {
  background: linear-gradient(135deg, #f5c400 0%, #f59e0b 100%);
  border-radius: var(--sl-radius-lg);
  padding: 20px;
  margin-bottom: 20px;
  display: flex;
  align-items: center;
  gap: 16px;
}
.sr-birthday-icon { font-size: 2.5rem; }
.sr-birthday-info {}
.sr-birthday-label { font-size: .72rem; font-weight: 700; color: rgba(0,0,0,.5); text-transform: uppercase; letter-spacing: .08em; }
.sr-birthday-name  { font-size: 1.15rem; font-weight: 700; color: #1a0000; margin: 2px 0 4px; }
.sr-birthday-age   { font-size: .82rem; color: rgba(0,0,0,.55); }
.sr-birthday-list { display: flex; flex-direction: column; gap: 8px; }
.sr-birthday-item {
  background: var(--sl-white);
  border-radius: var(--sl-radius-sm);
  padding: 10px 14px;
  display: flex;
  align-items: center;
  gap: 10px;
  border: 1px solid var(--sl-border);
}
.sr-birthday-avatar {
  width: 36px; height: 36px;
  border-radius: 50%;
  background: var(--sl-dark2);
  display: flex; align-items: center; justify-content: center;
  font-size: .85rem; font-weight: 700;
  color: var(--sl-green-light);
  flex-shrink: 0;
  overflow: hidden;
}
.sr-birthday-avatar img { width: 100%; height: 100%; object-fit: cover; }
.sr-birthday-athlete-name { font-size: .85rem; font-weight: 600; color: var(--sl-text); }
.sr-birthday-date  { font-size: .75rem; color: var(--sl-text3); }
.sr-birthday-turma { font-size: .75rem; color: var(--sl-blue); background: var(--sl-blue-pale); padding: 1px 6px; border-radius: 6px; margin-left: auto; }

/* ── Provas ──────────────────────────────────────────────────────────────── */
.sr-prova-card {
  background: var(--sl-dark);
  border-radius: var(--sl-radius-lg);
  padding: 20px;
  margin-bottom: 14px;
  border-top: 3px solid var(--sl-yellow);
}
.sr-prova-countdown {
  font-size: 2rem;
  font-weight: 700;
  color: var(--sl-yellow);
  line-height: 1;
  margin: 8px 0 4px;
}
.sr-prova-countdown-label { font-size: .72rem; color: rgba(255,255,255,.4); text-transform: uppercase; letter-spacing: .08em; }
.sr-prova-nome { font-size: 1.1rem; font-weight: 700; color: #fff; margin: 6px 0 3px; }
.sr-prova-meta { font-size: .8rem; color: rgba(255,255,255,.5); }
.sr-race-card {
  background: var(--sl-white);
  border-radius: var(--sl-radius);
  padding: 16px;
  margin-bottom: 12px;
  border: 1px solid var(--sl-border);
  box-shadow: var(--sl-shadow);
}

/* ── Evolução / Gráficos ─────────────────────────────────────────────────── */
.sr-chart-card {
  background: var(--sl-white);
  border-radius: var(--sl-radius-lg);
  padding: 20px;
  margin-bottom: 16px;
  border: 1px solid var(--sl-border);
  box-shadow: var(--sl-shadow);
}
.sr-chart-title { font-size: .88rem; font-weight: 700; color: var(--sl-text); margin-bottom: 16px; display: flex; align-items: center; gap: 8px; }
.sr-chart-wrap  { position: relative; }

/* ── Cards genéricos ─────────────────────────────────────────────────────── */
.sr-section {
  background: var(--sl-white);
  border-radius: var(--sl-radius-lg);
  padding: 20px;
  margin-bottom: 16px;
  border: 1px solid var(--sl-border);
  box-shadow: var(--sl-shadow);
}
.sr-section h3 { font-size: .95rem; font-weight: 700; color: var(--sl-text); margin: 0 0 14px; display: flex; align-items: center; gap: 8px; }
.sr-cards { display: flex; flex-wrap: wrap; gap: 10px; margin-bottom: 16px; }
.sr-card {
  flex: 1;
  min-width: 100px;
  background: var(--sl-white);
  border-radius: var(--sl-radius);
  padding: 14px 12px;
  text-align: center;
  border: 1px solid var(--sl-border);
  box-shadow: var(--sl-shadow);
  display: flex;
  flex-direction: column;
  gap: 4px;
}
.sr-num { font-size: 1.5rem; font-weight: 700; color: var(--sl-text); }
.sr-lbl { font-size: .72rem; color: var(--sl-text3); }

/* ── Botões ───────────────────────────────────────────────────────────────── */
.sr-btn {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 8px 16px;
  border-radius: var(--sl-radius-sm);
  border: 1px solid var(--sl-border);
  background: var(--sl-white);
  color: var(--sl-text);
  cursor: pointer;
  font-size: .85rem;
  font-weight: 500;
  text-decoration: none;
  transition: .15s;
  font-family: var(--sl-font);
}
.sr-btn:hover { background: var(--sl-bg); box-shadow: var(--sl-shadow); }
.sr-btn-primary { background: var(--sl-green); color: #fff; border-color: var(--sl-green); }
.sr-btn-primary:hover { background: var(--sl-green-light); border-color: var(--sl-green-light); color: #fff; }
.sr-btn-blue    { background: var(--sl-blue);  color: #fff; border-color: var(--sl-blue); }
.sr-btn-blue:hover { background: var(--sl-blue-dark); border-color: var(--sl-blue-dark); color: #fff; }
.sr-btn-yellow  { background: var(--sl-yellow); color: var(--sl-dark); border-color: var(--sl-yellow); font-weight: 700; }
.sr-btn-sm { padding: 5px 10px; font-size: .78rem; }
.sr-btn:disabled { opacity: .5; cursor: not-allowed; }

/* ── Header de página ────────────────────────────────────────────────────── */
.sr-page-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 10px;
  padding: 20px 0 12px;
}
.sr-page-title { font-size: 1.15rem; font-weight: 700; color: var(--sl-text); margin: 0; }

/* ── Tela de aprovação pendente ──────────────────────────────────────────── */
.sr-pending-wrap { min-height: 60vh; display: flex; align-items: center; justify-content: center; padding: 40px 20px; }
.sr-pending-box {
  background: var(--sl-white);
  border-radius: var(--sl-radius-lg);
  padding: 48px 36px;
  text-align: center;
  max-width: 440px;
  border: 1px solid var(--sl-border);
  box-shadow: var(--sl-shadow-md);
  border-top: 4px solid var(--sl-yellow);
}
.sr-pending-icon { font-size: 3.5rem; margin-bottom: 16px; }
.sr-pending-box h2 { font-size: 1.3rem; font-weight: 700; color: var(--sl-text); margin: 0 0 10px; }
.sr-pending-box p  { color: var(--sl-text2); font-size: .88rem; line-height: 1.65; margin: 0 0 8px; }
.sr-pending-logo   { margin-bottom: 20px; }
.sr-pending-logo img { height: 72px; width: auto; }

/* ── Login / Registro ────────────────────────────────────────────────────── */
.sr-auth-page {
  min-height: 80vh;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 24px 16px;
}
.sr-auth-box {
  width: 100%;
  max-width: 460px;
  background: var(--sl-white);
  border-radius: var(--sl-radius-lg);
  border: 1px solid var(--sl-border);
  box-shadow: var(--sl-shadow-md);
  overflow: hidden;
}
.sr-auth-brand {
  background: var(--sl-dark);
  padding: 24px;
  text-align: center;
}
.sr-auth-logo { height: 72px; width: auto; margin-bottom: 8px; }
.sr-auth-title { font-size: 1.1rem; font-weight: 700; color: #fff; margin: 0 0 2px; }
.sr-auth-subtitle { font-size: .72rem; color: rgba(255,255,255,.45); margin: 0; }
.sr-tabs { display: flex; background: var(--sl-bg); border-bottom: 1px solid var(--sl-border); }
.sr-tab {
  flex: 1;
  padding: 12px;
  border: none;
  background: none;
  cursor: pointer;
  font-size: .88rem;
  font-weight: 600;
  color: var(--sl-text3);
  transition: .15s;
  border-bottom: 3px solid transparent;
}
.sr-tab.active { color: var(--sl-green); border-bottom-color: var(--sl-green); background: var(--sl-white); }
.sr-tab-content { display: none; padding: 24px; }
.sr-tab-content.active { display: block; }
.sr-tab-content h2 { font-size: 1rem; font-weight: 700; color: var(--sl-text); margin: 0 0 16px; }
.sr-field { margin-bottom: 14px; }
.sr-field label { display: block; font-size: .78rem; font-weight: 600; color: var(--sl-text2); margin-bottom: 5px; }
.sr-field input,
.sr-field select,
.sr-field textarea {
  width: 100%;
  padding: 9px 12px;
  border: 1px solid var(--sl-border);
  border-radius: var(--sl-radius-sm);
  font-size: .88rem;
  color: var(--sl-text);
  background: var(--sl-white);
  font-family: var(--sl-font);
  transition: border-color .15s;
}
.sr-field input:focus,
.sr-field select:focus,
.sr-field textarea:focus {
  outline: none;
  border-color: var(--sl-green);
  box-shadow: 0 0 0 3px rgba(26,122,26,.1);
}
.sr-field-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }

/* ── Autocomplete de busca de Assessoria (cadastro de Atleta) ────────────── */
.sr-autocomplete-results {
  position: absolute;
  top: 100%;
  left: 0;
  right: 0;
  z-index: 50;
  margin-top: 2px;
  background: var(--sl-white);
  border: 1px solid var(--sl-border);
  border-radius: var(--sl-radius-sm);
  box-shadow: 0 6px 20px rgba(0,0,0,.12);
  max-height: 220px;
  overflow-y: auto;
}
.sr-autocomplete-item {
  padding: 9px 12px;
  font-size: .88rem;
  color: var(--sl-text);
  cursor: pointer;
  border-bottom: 1px solid var(--sl-border);
}
.sr-autocomplete-item:last-child { border-bottom: none; }
.sr-autocomplete-item:hover { background: rgba(26,122,26,.08); }
.sr-autocomplete-empty {
  padding: 9px 12px;
  font-size: .82rem;
  color: var(--sl-text2);
}

/* ── Sensação do treino — seleção visual com emoji ───────────────────────── */
.sr-feeling-selector { display: flex; gap: 6px; margin-bottom: 18px; flex-wrap: wrap; }
.sr-feeling-opt { flex: 1; min-width: 60px; margin: 0; cursor: pointer; }
.sr-feeling-opt input { position: absolute; opacity: 0; width: 0; height: 0; }
.sr-feeling-opt span {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 4px;
  padding: 10px 4px;
  border: 1px solid var(--sl-border);
  border-radius: var(--sl-radius-sm);
  background: var(--sl-white);
  text-align: center;
  transition: .15s;
}
.sr-feeling-emoji { font-size: 1.6rem; line-height: 1; }
.sr-feeling-label { font-size: .72rem; font-weight: 600; color: var(--sl-text2); text-transform: capitalize; }
.sr-feeling-opt input:checked + span {
  border-color: var(--sl-green);
  background: var(--sl-green-pale);
  transform: scale(1.05);
}
.sr-feeling-opt input:checked + span .sr-feeling-label { color: var(--sl-green); font-weight: 700; }

/* ── PSE — seleção visual 1 a 10 ──────────────────────────────────────────── */
.sr-pse-selector { display: flex; gap: 5px; flex-wrap: wrap; }
.sr-pse-opt { flex: 1; min-width: 30px; margin: 0; cursor: pointer; }
.sr-pse-opt input { position: absolute; opacity: 0; width: 0; height: 0; }
.sr-pse-opt span {
  display: flex;
  align-items: center;
  justify-content: center;
  height: 36px;
  border: 1px solid var(--sl-border);
  border-radius: var(--sl-radius-sm);
  background: var(--sl-white);
  font-size: .82rem;
  font-weight: 600;
  color: var(--sl-text2);
  transition: .15s;
}
.sr-pse-opt input:checked + span {
  border-color: var(--sl-green);
  background: var(--sl-green);
  color: #fff;
  font-weight: 700;
  transform: scale(1.05);
}
.sr-pse-opt:nth-child(n+6) input:checked + span { border-color: #e6a23c; background: #e6a23c; }
.sr-pse-opt:nth-child(n+9) input:checked + span { border-color: #e74c3c; background: #e74c3c; }

/* ── Tempo real — Hora : Minuto : Segundo ────────────────────────────────── */
.sr-field-time { grid-column: span 2; }
.sr-time-inputs { display: flex; align-items: center; gap: 6px; }
.sr-time-inputs input {
  width: 100%;
  text-align: center;
  padding: 9px 4px;
}
.sr-time-inputs span { font-weight: 700; color: var(--sl-text2); }
@media (max-width: 480px) {
  .sr-field-grid { grid-template-columns: 1fr; }
  .sr-field-time { grid-column: span 1; }
}

.sr-auth-info {
  background: var(--sl-blue-pale);
  border: 1px solid rgba(30,154,214,.2);
  border-radius: var(--sl-radius-sm);
  padding: 10px 14px;
  font-size: .8rem;
  color: var(--sl-blue-dark);
  margin-bottom: 14px;
}
.sr-auth-footer {
  background: var(--sl-bg);
  padding: 12px;
  text-align: center;
  border-top: 1px solid var(--sl-border);
  font-size: .72rem;
  color: var(--sl-text3);
}

/* ── Modais (feedback, prova, resultado) ─────────────────────────────────── */
.sr-modal {
  display: none;
  position: fixed;
  inset: 0;
  background: rgba(0,0,0,.6);
  z-index: 9999;
  align-items: center;
  justify-content: center;
  padding: 16px;
  overflow-y: auto;
}
.sr-modal-box {
  background: var(--sl-white);
  border-radius: var(--sl-radius-lg);
  width: 100%;
  max-width: 480px;
  max-height: 90vh;
  overflow-y: auto;
  padding: 24px;
}
.sr-modal-box h3 { margin: 0 0 16px; font-size: 1.1rem; }
.sr-modal-box .sr-field label { font-size: .85rem; }
.sr-modal-header {
  background: var(--sl-dark);
  padding: 16px 18px;
  display: flex;
  align-items: center;
  justify-content: space-between;
}
.sr-modal-title { font-size: .95rem; font-weight: 700; color: #fff; margin: 0; }
.sr-modal-close { background: none; border: none; color: rgba(255,255,255,.5); font-size: 1.2rem; cursor: pointer; }
.sr-modal-close:hover { color: #fff; }
.sr-modal-body { padding: 20px; }
.sr-pse-wrap { display: flex; align-items: center; gap: 10px; }
.sr-pse-wrap input { flex: 1; }
.sr-pse-val { font-size: 1rem; font-weight: 700; color: var(--sl-text); min-width: 24px; }
.sr-feeling-btns { display: flex; gap: 6px; flex-wrap: wrap; }
.sr-feeling-btn {
  flex: 1;
  min-width: 60px;
  border: 1px solid var(--sl-border);
  border-radius: var(--sl-radius-sm);
  background: var(--sl-white);
  padding: 8px 4px;
  cursor: pointer;
  font-size: .72rem;
  text-align: center;
  transition: .15s;
}
.sr-feeling-btn.active { border-color: var(--sl-green); background: var(--sl-green-pale); color: var(--sl-green); font-weight: 700; }

/* ── Notice / alertas ────────────────────────────────────────────────────── */
.sr-notice { padding: 14px 16px; border-radius: var(--sl-radius-sm); font-size: .88rem; margin-bottom: 14px; }
.sr-notice-info    { background: var(--sl-blue-pale); color: var(--sl-blue-dark); border-left: 4px solid var(--sl-blue); }
.sr-notice-success { background: var(--sl-green-pale); color: var(--sl-green); border-left: 4px solid var(--sl-green); }
.sr-notice-warning { background: var(--sl-yellow-pale); color: #856404; border-left: 4px solid var(--sl-yellow); }
.sr-notice-error   { background: #fef2f2; color: #991b1b; border-left: 4px solid #ef4444; }
.sr-empty { text-align: center; color: var(--sl-text3); font-size: .9rem; padding: 40px 0; }

/* ── Toast ───────────────────────────────────────────────────────────────── */
.sr-toast {
  position: fixed;
  bottom: 24px;
  right: 24px;
  padding: 12px 20px;
  border-radius: var(--sl-radius);
  font-size: .88rem;
  z-index: 99999;
  display: none;
  max-width: 360px;
  box-shadow: var(--sl-shadow-md);
  font-family: var(--sl-font);
  border-left: 4px solid transparent;
}
.sr-toast.show { display: block; animation: srFadeIn .25s ease; }
.sr-toast.ok   { background: var(--sl-green-pale); color: var(--sl-green); border-color: var(--sl-green); }
.sr-toast.err  { background: #fef2f2; color: #991b1b; border-color: #ef4444; }
.sr-toast.warn { background: var(--sl-yellow-pale); color: #856404; border-color: var(--sl-yellow); }
@keyframes srFadeIn { from { opacity:0; transform: translateY(8px); } to { opacity:1; transform: translateY(0); } }

/* ── Perfil do atleta ────────────────────────────────────────────────────── */
.sr-profile-header {
  background: var(--sl-dark2);
  border-radius: var(--sl-radius-lg);
  padding: 24px;
  margin-bottom: 16px;
  display: flex;
  gap: 16px;
  align-items: center;
}
.sr-profile-avatar-lg {
  width: 80px; height: 80px;
  border-radius: 50%;
  border: 3px solid var(--sl-green);
  display: flex; align-items: center; justify-content: center;
  font-size: 2rem; font-weight: 700; color: var(--sl-green-light);
  background: var(--sl-dark3);
  flex-shrink: 0;
  overflow: hidden;
}
.sr-profile-avatar-lg img { width: 100%; height: 100%; object-fit: cover; }
.sr-profile-nome  { font-size: 1.2rem; font-weight: 700; color: #fff; margin: 0 0 4px; }
.sr-profile-sub   { font-size: .78rem; color: rgba(255,255,255,.45); }

/* ── Rodapé ──────────────────────────────────────────────────────────────── */
.sr-footer {
  margin: 32px -16px 0;
  padding: 16px 24px;
  background: var(--sl-dark);
  text-align: center;
  font-size: .72rem;
  color: rgba(255,255,255,.3);
  border-top: 1px solid rgba(255,255,255,.06);
}
.sr-footer a { color: rgba(255,255,255,.4); text-decoration: none; }
.sr-footer a:hover { color: #fff; }

/* ── Ranking ─────────────────────────────────────────────────────────────── */
.sr-rank-item { display: flex; align-items: center; gap: 12px; padding: 10px 14px; border-bottom: 1px solid var(--sl-border); }
.sr-rank-item:last-child { border-bottom: none; }
.sr-rank-pos { font-size: .95rem; font-weight: 700; color: var(--sl-text3); min-width: 28px; }
.sr-rank-pos.gold   { color: var(--sl-yellow-dark); }
.sr-rank-pos.silver { color: #6b7280; }
.sr-rank-pos.bronze { color: #92400e; }

/* ── Responsividade mobile ───────────────────────────────────────────────── */
@media (max-width: 640px) {
  .sr-wrap { padding: 0 12px 80px; }
  .sr-treino-hoje-grid { grid-template-columns: repeat(2, 1fr); }
  .sr-metrics-grid { grid-template-columns: repeat(2, 1fr); }
  .sr-hero { padding: 14px 16px; }
  .sr-hero-avatar { width: 48px; height: 48px; font-size: 1.1rem; }
  .sr-hero-nome { font-size: 1rem; }
  .sr-topbar { padding: 0 16px; }
  .sr-achievements-grid { grid-template-columns: repeat(3, 1fr); }
  .sr-field-grid { grid-template-columns: 1fr; }
  .sr-cal-day { min-height: 44px; padding: 4px; }
  .sr-cal-chip { display: none; }
  .sr-cal-dot { display: block !important; }
}

/* ── Utilitários ─────────────────────────────────────────────────────────── */
.sr-grid { display: grid; gap: 12px; }
.sr-flex { display: flex; gap: 10px; align-items: center; }
.sr-text-muted { color: var(--sl-text3); font-size: .82rem; }
.sr-fw700 { font-weight: 700; }
.sr-mb0 { margin-bottom: 0 !important; }
.sr-mt12 { margin-top: 12px; }
hr.sr-divider { border: none; border-top: 1px solid var(--sl-border); margin: 16px 0; }

/* ── Strava / Garmin buttons ─────────────────────────────────────────────── */
.sr-btn-strava  { background: #fc4c02; color: #fff; border-color: #fc4c02; }
.sr-btn-strava:hover { background: #d93f00; }
.sr-btn-garmin  { background: #007cc3; color: #fff; border-color: #007cc3; }
.sr-btn-garmin:hover { background: #005fa3; }

/* ── Scroll offset para navbar fixa ─────────────────────────────────────── */
.sr-section,
.sr-treino-hoje,
.sr-metrics-grid,
.sr-analise,
.sr-section[id],
section[id] {
  scroll-margin-top: 72px;
}

/* ── FIX: hover somente em dispositivos com ponteiro ─────────────────────── */
@media (hover: hover) and (pointer: fine) {
  .sr-btn:hover { background: var(--sl-bg); box-shadow: var(--sl-shadow); }
  .sr-btn-primary:hover { background: var(--sl-green-light); border-color: var(--sl-green-light); color: #fff; }
  .sr-btn-blue:hover { background: var(--sl-blue-dark); border-color: var(--sl-blue-dark); color: #fff; }
  .sr-training-card:hover { box-shadow: var(--sl-shadow-md); }
  .sr-achievement-card:hover { box-shadow: var(--sl-shadow-md); transform: translateY(-1px); }
}
@media not all and (hover: hover) {
  .sr-btn, .sr-training-card, .sr-achievement-card { transition: none; }
}

/* ── FIX: WordPress theme wrapper neutralizado para páginas SR ───────────── */
/* Rede de segurança contra overflow horizontal causado por conteúdo
   dinâmico (ex.: banner de assessoria com imagem de largura intrínseca
   grande) — nunca deve permitir rolagem lateral na página do painel. */
html:has(body.sr-page-atleta) { overflow-x: hidden; }
body.sr-page-atleta { overflow-x: hidden; max-width: 100vw; }

/* Body class approach (all browsers) */
body.sr-page-atleta .entry-content,
body.sr-page-home .entry-content,
body.sr-page-atleta .post-content,
body.sr-page-home .post-content {
  max-width: none !important;
  width: 100% !important;
  padding: 0 !important;
  margin: 0 !important;
}
body.sr-page-atleta .site-content,
body.sr-page-home .site-content,
body.sr-page-atleta #content,
body.sr-page-home #content,
body.sr-page-atleta main,
body.sr-page-home main,
body.sr-page-atleta article,
body.sr-page-home article {
  max-width: none !important;
  padding: 0 !important;
  margin: 0 !important;
  float: none !important;
}
body.sr-page-atleta .wp-block-group,
body.sr-page-home .wp-block-group,
body.sr-page-atleta .alignfull,
body.sr-page-home .alignfull {
  max-width: none !important;
  padding: 0 !important;
}
body.sr-page-atleta,
body.sr-page-home {
  background: var(--sl-dark) !important;
}
/* :has() approach for modern browsers */
body.page .entry-content:has(.sr-wrap),
body.page .entry-content:has(.sl-home),
body.page .post-content:has(.sr-wrap),
body.single .entry-content:has(.sr-wrap) {
  max-width: none !important;
  width: 100% !important;
  padding: 0 !important;
  margin: 0 !important;
}
body.page:has(.sr-wrap) .site-content,
body.page:has(.sl-home) .site-content,
body.page:has(.sr-wrap) #content,
body.page:has(.sl-home) #content,
body.page:has(.sr-wrap) main,
body.page:has(.sl-home) main,
body.page:has(.sr-wrap) article,
body.page:has(.sl-home) article {
  max-width: none !important;
  width: 100% !important;
  padding: 0 !important;
  margin: 0 !important;
  float: none !important;
}
/* Elementor override */
.elementor-page:has(.sr-wrap) .elementor-section-boxed > .elementor-container,
.elementor-page:has(.sl-home) .elementor-section-boxed > .elementor-container {
  max-width: 100% !important;
}

/* ── FIX: Metrics grid mobile ─────────────────────────────────────────────── */
@media (max-width: 480px) {
  .sr-metrics-grid {
    grid-template-columns: repeat(2, 1fr) !important;
  }
  .sr-metric-val { font-size: 1.2rem; }
  .sr-hero { margin: 0 -12px 20px; padding: 16px 12px; }
  .sr-treino-hoje { margin: 0 0 16px; padding: 16px; }
  .sr-topbar { padding: 0 12px; }
  .sr-wrap { padding: 0 12px 48px; }
}

/* ── FIX: Dashboard vazio estado melhorado ───────────────────────────────── */
.sr-treino-vazio {
  text-align: center;
  padding: 28px 16px;
  color: rgba(255,255,255,.5);
}
.sr-treino-vazio-icon { font-size: 2.4rem; margin-bottom: 10px; }
.sr-treino-vazio-title { font-size: 1rem; font-weight: 600; color: rgba(255,255,255,.75); margin-bottom: 6px; }
.sr-treino-vazio-msg { font-size: .85rem; color: rgba(255,255,255,.45); line-height: 1.55; }

/* ── FIX: Streak/XP sempre visível ──────────────────────────────────────── */
.sr-hero-stats { display: flex; flex-direction: column; align-items: flex-end; gap: 6px; flex-shrink: 0; }

/* ── Smooth scroll ───────────────────────────────────────────────────────── */
html { scroll-behavior: smooth; }

/* ═══════════════════════════════════════════════════════════════
   CALCULADORAS & TESTES — v9
   ═══════════════════════════════════════════════════════════════ */

.sr-tabs { display:flex; gap:6px; margin-bottom:20px; flex-wrap:wrap; }
.sr-tab { background:var(--sl-bg2,#f4f5f7); border:none; border-radius:20px; padding:8px 18px; font-size:.85rem; font-weight:600; cursor:pointer; color:var(--sl-text2,#555); transition:.2s; }
.sr-tab.active { background:var(--sl-red,#e74c3c); color:#fff; }
.sr-tab-content { display:none; }
.sr-tab-content.active { display:block; }

.sr-calc-card { background:var(--sl-surface,#fff); border-radius:16px; padding:24px; box-shadow:0 2px 12px rgba(0,0,0,.06); margin-bottom:20px; }
.sr-calc-card h3 { margin:0 0 6px; font-size:1.1rem; }
.sr-calc-desc { color:var(--sl-text3,#888); font-size:.88rem; margin:0 0 18px; }
.sr-calc-form { display:grid; grid-template-columns:repeat(auto-fit,minmax(200px,1fr)); gap:14px; align-items:end; }
.sr-calc-form label { display:flex; flex-direction:column; gap:5px; font-size:.85rem; font-weight:600; color:var(--sl-text2,#555); }
.sr-calc-form input { border:1.5px solid var(--sl-border,#dde1e7); border-radius:8px; padding:9px 12px; font-size:.95rem; outline:none; transition:.2s; }
.sr-calc-form input:focus { border-color:var(--sl-red,#e74c3c); }
.sr-calc-result { margin-top:20px; background:var(--sl-bg2,#f8f9fa); border-radius:12px; padding:20px; }
.sr-result-grid { display:flex; gap:24px; flex-wrap:wrap; }
.sr-result-item { text-align:center; }
.sr-result-label { font-size:.8rem; color:var(--sl-text3,#888); text-transform:uppercase; letter-spacing:.05em; }
.sr-result-val { font-size:2rem; font-weight:800; color:var(--sl-red,#e74c3c); line-height:1; margin:4px 0; }
.sr-result-unit { font-size:.8rem; color:var(--sl-text3,#888); }
.sr-result-highlight .sr-result-val { font-size:2.4rem; }

/* Previsão de provas */
.sr-pred-base { display:flex; gap:8px; flex-wrap:wrap; margin-bottom:14px; }
.sr-pred-badge { background:var(--sl-bg2,#f4f5f7); border-radius:20px; padding:4px 12px; font-size:.82rem; font-weight:600; }
.sr-pred-badge-time { background:var(--sl-red,#e74c3c); color:#fff; }
.sr-pred-scenarios-legend { font-size:.82rem; color:var(--sl-text3,#888); margin-bottom:12px; display:flex; gap:14px; align-items:center; }
.sr-pred-dot { font-size:1rem; }
.sr-pred-opt { color:#27ae60; }
.sr-pred-prob { color:var(--sl-red,#e74c3c); }
.sr-pred-cons { color:#e67e22; }
.sr-pred-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(160px,1fr)); gap:14px; }
.sr-pred-card { background:var(--sl-surface,#fff); border-radius:14px; padding:16px; box-shadow:0 2px 8px rgba(0,0,0,.06); border-top:3px solid var(--sl-red,#e74c3c); }
.sr-pred-dist { font-size:1.1rem; font-weight:800; color:var(--sl-red,#e74c3c); }
.sr-pred-km { font-size:.78rem; color:var(--sl-text3,#888); margin-bottom:10px; }
.sr-pred-rows { display:flex; flex-direction:column; gap:5px; }
.sr-pred-row { display:flex; justify-content:space-between; font-size:.82rem; }
.sr-pred-row-label { color:var(--sl-text3,#888); }
.sr-pred-row-val { font-weight:700; }
.sr-pred-opt-row .sr-pred-row-val { color:#27ae60; }
.sr-pred-prob-row { border-radius:6px; padding:3px 5px; background:rgba(231,76,60,.06); }
.sr-pred-prob-row .sr-pred-row-val { color:var(--sl-red,#e74c3c); font-size:.9rem; }
.sr-pred-cons-row .sr-pred-row-val { color:#e67e22; }
.sr-pred-pace { font-size:.78rem; color:var(--sl-text3,#888); margin-top:8px; border-top:1px solid var(--sl-border,#eee); padding-top:6px; }

/* Outro KM — previsão de distância personalizada */
.sr-pred-custom { margin-top:20px; padding-top:16px; border-top:1px solid var(--sl-border,#eee); }
.sr-pred-custom label { display:block; font-size:.82rem; font-weight:600; color:var(--sl-text2,#4a5568); margin-bottom:8px; }
.sr-pred-custom-row { display:flex; gap:8px; max-width:320px; }
.sr-pred-custom-row input { flex:1; padding:9px 12px; border:1px solid var(--sl-border,#e2e8f0); border-radius:8px; }
#sr-pred-custom-result { margin-top:14px; max-width:200px; }
#sr-pred-custom-result .sr-pred-card { border-top-color:#8e44ad; }
#sr-pred-custom-result .sr-pred-dist { color:#8e44ad; }
@media (max-width:480px) { .sr-pred-custom-row { max-width:none; } }

/* Central de testes */
.sr-test-hero { background:linear-gradient(135deg,var(--sl-red,#e74c3c),#c0392b); color:#fff; border-radius:16px; padding:24px; margin-bottom:20px; }
.sr-test-hero-label { font-size:.82rem; opacity:.85; }
.sr-test-hero-date { font-size:.9rem; opacity:.75; margin-bottom:14px; }
.sr-test-kpis { display:flex; gap:20px; flex-wrap:wrap; margin-bottom:12px; }
.sr-kpi-val { font-size:1.6rem; font-weight:800; }
.sr-kpi-label { font-size:.75rem; opacity:.8; }
.sr-test-classification { font-size:.95rem; opacity:.9; }
.sr-section-evolution { background:var(--sl-surface,#fff); border-radius:16px; padding:20px; margin-bottom:20px; box-shadow:0 2px 8px rgba(0,0,0,.05); }
.sr-evolution-badge { border-radius:8px; padding:8px 14px; font-size:.88rem; display:inline-block; margin-bottom:10px; }
.sr-evo-melhora { background:#d4edda; color:#155724; }
.sr-evo-piora { background:#f8d7da; color:#721c24; }
.sr-evo-estável { background:#fff3cd; color:#856404; }
.sr-test-history-list { display:flex; flex-direction:column; gap:8px; }
.sr-test-history-item { display:flex; align-items:center; gap:12px; padding:12px 16px; background:var(--sl-surface,#fff); border-radius:10px; border:1px solid var(--sl-border,#eee); font-size:.85rem; flex-wrap:wrap; }
.sr-test-history-item.sr-latest { border-color:var(--sl-red,#e74c3c); background:#fff5f5; }
.sr-thi-date { font-weight:600; min-width:90px; }
.sr-thi-time { color:var(--sl-red,#e74c3c); }
.sr-badge-new { background:var(--sl-red,#e74c3c); color:#fff; border-radius:10px; padding:2px 7px; font-size:.7rem; margin-left:4px; }

/* AI Score card */
.sr-ai-score-card { background:var(--sl-surface,#fff); border-radius:16px; padding:22px; margin-top:16px; box-shadow:0 2px 12px rgba(0,0,0,.07); }
.sr-ai-score-circle { width:80px; height:80px; border-radius:50%; display:flex; flex-direction:column; align-items:center; justify-content:center; font-weight:900; color:#fff; font-size:1.3rem; margin:0 auto 10px; }
.sr-ai-score-label { font-size:.8rem; margin-top:2px; opacity:.9; font-weight:600; }
.sr-ai-score-sections { display:grid; gap:10px; margin-top:14px; }
.sr-ai-section { background:var(--sl-bg2,#f8f9fa); border-radius:8px; padding:10px 12px; }
.sr-ai-section-title { font-weight:700; font-size:.8rem; margin-bottom:4px; text-transform:uppercase; letter-spacing:.05em; }
.sr-ai-section-text { font-size:.84rem; color:var(--sl-text2,#555); white-space:pre-line; }

/* Rankings reformulado */
.sr-rank-legend { font-size:.78rem; color:var(--sl-text3,#888); margin-bottom:14px; padding:8px 12px; background:var(--sl-bg2,#f8f9fa); border-radius:8px; }

.sr-fb-regra-aprovacao{
  background:var(--sl-bg2,#f8f9fa);
  border-left:3px solid var(--sl-blue,#2563EB);
  border-radius:8px;
  padding:12px 16px;
  margin-bottom:16px;
  font-size:.82rem;
  line-height:1.6;
  color:var(--sl-text2,#555);
}
.sr-fb-regra-aprovacao strong:first-child{
  display:block;
  margin-bottom:6px;
  color:var(--sl-text1,#1a1a2e);
  font-size:.86rem;
}
.sr-fb-regra-aprovacao ul{ margin:0; padding-left:18px; }
.sr-fb-regra-aprovacao li{ margin-bottom:6px; }
.sr-fb-regra-aprovacao li:last-child{ margin-bottom:0; }
.sr-fb-regra-aprovacao strong{ color:var(--sl-text1,#1a1a2e); }

/* Link "Regras de Notas e Aprovação" — bem visível, acima da lista de
   resultados, pra ninguém deixar de ver que existe explicação disponível. */
.sr-regras-notas-link{
  display:block;
  width:100%;
  text-align:left;
  background:linear-gradient(135deg,#EEF4FF,#F5EEFF);
  border:1px solid #D6E4FF;
  border-radius:10px;
  padding:12px 14px;
  margin-bottom:14px;
  font-size:.86rem;
  color:#1a1a2e;
  cursor:pointer;
  transition:background .15s ease;
}
.sr-regras-notas-link:hover{ background:linear-gradient(135deg,#E3EDFF,#EDE3FF); }
.sr-regras-notas-link strong{ color:#2563EB; }

/* Variante "grande" — usada na tela de Feedbacks da Equipe, onde faz
   mais sentido chamar mais atenção já que a tela inteira é sobre isso. */
.sr-regras-notas-link--grande{
  padding:16px 18px;
  font-size:.92rem;
  border-width:2px;
  box-shadow:0 4px 14px rgba(37,99,235,.12);
  text-align:center;
}
.sr-regras-notas-link--grande strong{ font-size:1rem; }

.sr-regras-grupo{
  border-radius:10px;
  padding:12px 14px;
  margin-bottom:10px;
  font-size:.86rem;
  line-height:1.55;
}
.sr-regras-grupo-titulo{ font-weight:800; margin-bottom:4px; font-size:.9rem; }
.sr-regras-grupo p{ margin:4px 0; }
.sr-regras-grupo--verde{ background:#F0FBF3; border-left:4px solid #2ecc71; }
.sr-regras-grupo--azul{ background:#EEF4FF; border-left:4px solid #2563EB; }
.sr-regras-grupo--laranja{ background:#FFF6ED; border-left:4px solid #e67e22; }
.sr-regras-porque{ color:#666; font-size:.8rem; font-style:italic; }

.sr-regras-tabela{ width:100%; border-collapse:collapse; font-size:.82rem; margin-top:8px; }
.sr-regras-tabela th, .sr-regras-tabela td{ border:1px solid #e5e7eb; padding:8px 10px; text-align:left; }
.sr-regras-tabela th{ background:#f8f9fa; font-weight:700; }
.sr-my-rank-card { background:linear-gradient(135deg,var(--sl-red,#e74c3c),#c0392b); color:#fff; border-radius:14px; padding:16px 20px; margin-bottom:18px; display:flex; align-items:center; gap:16px; }
.sr-my-rank-pos { font-size:1.4rem; font-weight:900; white-space:nowrap; }
.sr-my-rank-stats { display:flex; gap:12px; flex-wrap:wrap; font-size:.82rem; opacity:.9; margin-top:4px; }
.sr-rank-item {
  display:block; position:relative; background:var(--sl-surface,#fff);
  border-radius:18px; padding:16px 18px; margin-bottom:14px;
  box-shadow:0 3px 14px rgba(0,20,60,.07);
  border:1px solid rgba(0,0,0,.04);
}
.sr-rank-item.sr-rank-top1 { background:linear-gradient(160deg,#FFF9E6 0%,#fff 60%); border-color:#FFE9A8; box-shadow:0 6px 20px rgba(255,175,0,.2); }
.sr-rank-item.sr-rank-top2 { background:linear-gradient(160deg,#F4F5F7 0%,#fff 60%); border-color:#E1E5EA; box-shadow:0 4px 16px rgba(100,110,130,.14); }
.sr-rank-item.sr-rank-top3 { background:linear-gradient(160deg,#FBF0E6 0%,#fff 60%); border-color:#EAD1B8; box-shadow:0 4px 16px rgba(180,120,60,.14); }
.sr-rank-item.sr-rank-mine { border:2px solid var(--sl-red,#e74c3c); box-shadow:0 4px 18px rgba(231,76,60,.2); }

.sr-rank-item-head { display:flex; align-items:center; gap:12px; margin-bottom:12px; }
.sr-rank-pos { font-size:1.05rem; font-weight:900; min-width:26px; text-align:center; flex-shrink:0; color:var(--sl-text3,#9aa1ac); }
.sr-rank-item.sr-rank-top1 .sr-rank-pos,
.sr-rank-item.sr-rank-top2 .sr-rank-pos,
.sr-rank-item.sr-rank-top3 .sr-rank-pos { font-size:1.6rem; }

.sr-rank-avatar {
  width:50px; height:50px; border-radius:50%; overflow:hidden; flex-shrink:0;
  border:3px solid var(--sl-bg2,#eef0f3);
  display:flex; align-items:center; justify-content:center;
  background:linear-gradient(135deg,#2563EB,#7C3AED); color:#fff; font-weight:800; font-size:.9rem;
}
.sr-rank-item.sr-rank-top1 .sr-rank-avatar { border-color:#FFD700; width:58px; height:58px; box-shadow:0 2px 10px rgba(255,180,0,.35); }
.sr-rank-item.sr-rank-top2 .sr-rank-avatar { border-color:#B9C0CB; width:54px; height:54px; }
.sr-rank-item.sr-rank-top3 .sr-rank-avatar { border-color:#CD7F32; width:54px; height:54px; }
.sr-rank-avatar img { width:100%; height:100%; object-fit:cover; }

.sr-rank-medal-badge { display:inline-flex; align-items:center; gap:5px; font-weight:900; font-size:.82rem; letter-spacing:.01em; padding:5px 12px; border-radius:20px; margin-bottom:10px; }
.sr-rank-item.sr-rank-top1 .sr-rank-medal-badge { background:linear-gradient(100deg,#FFD700,#FFA500); color:#5a3d00; box-shadow:0 2px 8px rgba(255,165,0,.35); }
.sr-rank-item.sr-rank-top2 .sr-rank-medal-badge { background:linear-gradient(100deg,#E8EAED,#B9C0CB); color:#3a3f47; }
.sr-rank-item.sr-rank-top3 .sr-rank-medal-badge { background:linear-gradient(100deg,#E3B084,#CD7F32); color:#4a2f10; }

.sr-rank-info { flex:1; min-width:0; }
.sr-rank-name { font-weight:800; font-size:.98rem; color:var(--sl-text,#1a1a2e); white-space:normal; line-height:1.25; word-break:break-word; }
.sr-rank-city { font-size:.74rem; color:var(--sl-text3,#9aa1ac); margin-top:1px; }
.sr-rank-you { font-size:.66rem; background:var(--sl-red,#e74c3c); color:#fff; border-radius:20px; padding:2px 8px; margin-left:6px; font-weight:700; }

.sr-rank-score-badge { flex-shrink:0; text-align:center; min-width:60px; background:linear-gradient(135deg,#2563EB,#7C3AED); color:#fff; border-radius:14px; padding:7px 8px; box-shadow:0 3px 10px rgba(37,99,235,.3); }
.sr-rank-item.sr-rank-top1 .sr-rank-score-badge { background:linear-gradient(135deg,#FFD700,#FFA500); box-shadow:0 3px 10px rgba(255,165,0,.4); }
.sr-rank-score-badge .sr-rank-score-val { font-size:1.1rem; font-weight:900; line-height:1; }
.sr-rank-score-badge .sr-rank-score-lbl { font-size:.58rem; text-transform:uppercase; opacity:.9; margin-top:2px; letter-spacing:.03em; }

/* Cabeçalho v2 — foto centralizada em cima, nome completo (pode quebrar
   linha) logo abaixo, cidade e pontuação também centralizados, e só
   DEPOIS disso vem o resto dos dados (sr-rank-stats, já é um grid
   abaixo). Evita a bagunça que o layout em linha causava no mobile
   depois que o nome parou de ser cortado com "..." — nome comprido
   espremia a foto e o badge de pontos pros lados. */
.sr-rank-item-head-v2 {
  display:flex; flex-direction:column; align-items:center; text-align:center; gap:4px;
}
.sr-rank-item-head-v2 .sr-rank-pos { position:static; margin-bottom:2px; }
.sr-rank-item-head-v2 .sr-rank-avatar { width:72px; height:72px; margin-bottom:6px; }
.sr-rank-item.sr-rank-top1 .sr-rank-item-head-v2 .sr-rank-avatar { width:84px; height:84px; }
.sr-rank-item.sr-rank-top2 .sr-rank-item-head-v2 .sr-rank-avatar,
.sr-rank-item.sr-rank-top3 .sr-rank-item-head-v2 .sr-rank-avatar { width:78px; height:78px; }
.sr-rank-item-head-v2 .sr-rank-info { flex:none; width:100%; }
.sr-rank-item-head-v2 .sr-rank-name { font-size:1.05rem; }
.sr-rank-item-head-v2 .sr-rank-city { margin-bottom:8px; }
.sr-rank-item-head-v2 .sr-rank-score-badge { min-width:130px; }

.sr-rank-stats { display:grid; grid-template-columns:repeat(3,1fr); gap:7px; margin:0 0 12px; }
.sr-rank-stat { text-align:center; background:var(--sl-bg2,#f6f7f9); border-radius:10px; padding:7px 4px; }
.sr-rank-stat-val { font-weight:800; font-size:.92rem; color:var(--sl-text,#1a1a2e); }
.sr-rank-stat-lbl { font-size:.6rem; color:var(--sl-text3,#9aa1ac); text-transform:uppercase; letter-spacing:.01em; margin-top:1px; }
.sr-rank-stat.sr-stat-aprovacoes .sr-rank-stat-val { color:#1e8e3e; }
.sr-rank-stat.sr-stat-reprovas .sr-rank-stat-val { color:#e74c3c; }
.sr-rank-stat.sr-stat-volume .sr-rank-stat-val { color:#2563EB; }
.sr-rank-stat.sr-stat-prova .sr-rank-stat-val { color:#e67e22; }
.sr-rank-stat.sr-stat-pontos .sr-rank-stat-val { color:#7C3AED; }

.sr-rank-bar-wrap { height:7px; background:var(--sl-bg2,#eef0f3); border-radius:4px; overflow:hidden; }
.sr-rank-bar { height:100%; background:linear-gradient(90deg,#2563EB,#7C3AED); border-radius:4px; transition:width .6s ease; }
.sr-rank-item.sr-rank-top1 .sr-rank-bar { background:linear-gradient(90deg,#FFD700,#FFA500); }
.sr-rank-empate { display:block; width:100%; background:linear-gradient(120deg,#FFC107,#FF8F00); border:none; border-radius:12px; padding:12px 14px; margin-top:12px; font-size:.82rem; font-weight:600; line-height:1.5; color:#3d2b00; box-shadow:0 4px 14px rgba(255,143,0,.4); }

.sr-rank-podio-header { display:flex; align-items:center; gap:12px; margin:4px 0 14px; }
.sr-rank-podio-header span { font-weight:900; font-size:1.05rem; color:var(--sl-text,#1a1a2e); text-transform:uppercase; letter-spacing:.03em; }
.sr-rank-podio-icon { display:flex; align-items:flex-end; gap:3px; height:30px; flex-shrink:0; }
.sr-rank-podio-bar { width:15px; border-radius:3px 3px 0 0; }
.sr-rank-podio-bar-silver { height:20px; background:linear-gradient(180deg,#E8EAED,#B9C0CB); }
.sr-rank-podio-bar-gold   { height:30px; background:linear-gradient(180deg,#FFD700,#FFA500); }
.sr-rank-podio-bar-bronze { height:14px; background:linear-gradient(180deg,#E3B084,#CD7F32); }

.sr-rank-mais-resultados { display:flex; align-items:center; gap:10px; margin:24px 0 12px; }
.sr-rank-mais-resultados span { font-weight:800; font-size:.8rem; color:var(--sl-text3,#9aa1ac); text-transform:uppercase; letter-spacing:.03em; white-space:nowrap; }
.sr-rank-mais-resultados::after { content:''; flex:1; height:1px; background:var(--sl-border,#e5e7eb); }

/* Team Feedbacks */
.sr-filter-team { display:flex; gap:8px; flex-wrap:wrap; margin-bottom:16px; align-items:center; }
.sr-filter-team select, .sr-filter-team input { border:1.5px solid var(--sl-border,#dde1e7); border-radius:8px; padding:7px 10px; font-size:.85rem; }
.sr-fb-card { background:var(--sl-surface,#fff); border-radius:14px; padding:16px 18px; margin-bottom:12px; box-shadow:0 1px 6px rgba(0,0,0,.05); }
.sr-fb-card.sr-fb-mine { border-left:3px solid var(--sl-red,#e74c3c); }
.sr-fb-header { display:flex; align-items:center; gap:12px; margin-bottom:10px; }
.sr-fb-avatar img, .sr-fb-avatar { width:40px; height:40px; border-radius:50%; object-fit:cover; }
.sr-fb-initials { background:var(--sl-red,#e74c3c); color:#fff; display:flex; align-items:center; justify-content:center; font-weight:800; font-size:1rem; width:40px; height:40px; border-radius:50%; }
.sr-fb-meta { flex:1; }
.sr-fb-meta strong { display:block; font-size:.9rem; }
.sr-fb-type { background:var(--sl-bg2,#f4f5f7); border-radius:10px; padding:2px 8px; font-size:.75rem; font-weight:600; }
.sr-fb-date { font-size:.75rem; color:var(--sl-text3,#888); }
.sr-fb-score-badge { display:flex; flex-direction:column; align-items:center; background:color-mix(in srgb,var(--score-color,#7f8c8d) 10%,transparent); border-radius:10px; padding:6px 10px; border:1.5px solid var(--score-color,#7f8c8d); }
.sr-fb-score-num { font-size:1.1rem; font-weight:900; color:var(--score-color,#7f8c8d); }
.sr-fb-score-cls { font-size:.7rem; color:var(--score-color,#7f8c8d); font-weight:600; }
.sr-fb-frase-pessoal { font-size:.9rem; font-weight:600; color:var(--sl-text,#1a1a2e); line-height:1.5; margin-bottom:10px; }
.sr-fb-stats { display:flex; gap:10px; flex-wrap:wrap; font-size:.82rem; color:var(--sl-text2,#555); margin-bottom:8px; }
.sr-fb-text { font-size:.88rem; color:var(--sl-text2,#555); margin-bottom:8px; }
.sr-fb-ai-msg { background:var(--sl-bg2,#f8f9fa); border-radius:8px; padding:8px 12px; font-size:.84rem; display:flex; gap:8px; align-items:flex-start; }
.sr-fb-ai-icon { font-size:1rem; }
.sr-fb-reply { background:#eaf4ff; border-radius:8px; padding:8px 12px; font-size:.84rem; display:flex; gap:8px; margin-top:8px; }
.sr-fb-reply-icon { font-size:1rem; }
.sr-fb-reply-form { margin-top:10px; }
.sr-reply-textarea { width:100%; border:1.5px solid var(--sl-border,#dde1e7); border-radius:8px; padding:8px 10px; font-size:.88rem; resize:vertical; }

/* ═══════════════════════════════════════════════════════════════
   DASHBOARD — Acesso Rápido & Integrações
   ═══════════════════════════════════════════════════════════════ */

.sr-quick-access { margin:20px 0; }
.sr-section-title { font-size:.78rem; font-weight:700; color:var(--sl-text3,#888); text-transform:uppercase; letter-spacing:.08em; margin-bottom:10px; }
.sr-quick-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(100px,1fr)); gap:10px; }
.sr-quick-item { background:var(--sl-surface,#fff); border-radius:14px; padding:16px 10px; display:flex; flex-direction:column; align-items:center; gap:6px; text-decoration:none; color:var(--sl-text,#1a1a2e); font-size:.8rem; font-weight:600; box-shadow:0 1px 6px rgba(0,0,0,.06); border:1.5px solid var(--sl-border,#eee); transition:.2s; }
.sr-quick-item:hover { border-color:var(--sl-red,#e74c3c); transform:translateY(-2px); box-shadow:0 4px 14px rgba(231,76,60,.12); }
.sr-quick-icon { font-size:1.5rem; }

.sr-integrations-bar { background:var(--sl-surface,#fff); border-radius:14px; padding:14px 18px; margin-bottom:20px; box-shadow:0 1px 6px rgba(0,0,0,.05); }
.sr-integ-title { font-size:.78rem; font-weight:700; color:var(--sl-text3,#888); text-transform:uppercase; letter-spacing:.08em; margin-bottom:10px; }
.sr-integ-list { display:flex; gap:12px; flex-wrap:wrap; }
.sr-integ-item { display:flex; align-items:center; gap:8px; font-size:.84rem; padding:7px 12px; border-radius:20px; border:1.5px solid var(--sl-border,#eee); }
.sr-integ-ok { border-color:#27ae60; background:#f0fdf4; }
.sr-integ-off { background:var(--sl-bg2,#f8f9fa); }
.sr-integ-status { color:#27ae60; font-weight:700; font-size:.78rem; }
.sr-integ-btn { background:var(--sl-red,#e74c3c); color:#fff; border-radius:12px; padding:3px 10px; font-size:.75rem; font-weight:700; text-decoration:none; cursor:pointer; border:none; }
.sr-integ-btn-info { background:var(--sl-bg2,#f0f0f0); color:var(--sl-text3,#888); border-radius:12px; padding:3px 10px; font-size:.72rem; }

/* ═══════════════════════════════════════════════════════════════
   FINANCEIRO — Mensalidade do atleta
   ═══════════════════════════════════════════════════════════════ */
.sr-mens-destaque { border-radius:16px; padding:20px; margin-bottom:20px; }
.sr-mens-pendente { background:#fff9e6; border:1.5px solid #ffc107; }
.sr-mens-vencido  { background:#fff5f5; border:1.5px solid #e74c3c; }
.sr-mens-destaque-header { display:flex; justify-content:space-between; align-items:flex-start; margin-bottom:16px; }
.sr-mens-destaque-label  { font-size:.82rem; font-weight:600; color:var(--sl-text2,#555); margin-bottom:4px; }
.sr-mens-valor  { font-size:2rem; font-weight:900; color:var(--sl-text,#1a1a2e); line-height:1; }
.sr-mens-desc   { font-size:.85rem; color:var(--sl-text3,#888); margin-top:4px; }
.sr-mens-venc-label { font-size:.75rem; color:var(--sl-text3,#888); }
.sr-mens-venc   { font-size:1.1rem; font-weight:700; }
.sr-pix-box     { display:flex; gap:16px; align-items:flex-start; background:#fff; border-radius:12px; padding:14px; flex-wrap:wrap; }
.sr-pix-qr      { width:120px; height:120px; border-radius:8px; border:1px solid #eee; flex-shrink:0; }
.sr-pix-info    { flex:1; min-width:180px; }
.sr-pix-title   { font-weight:700; font-size:.9rem; margin-bottom:8px; }
.sr-pix-code    { width:100%; padding:7px 10px; font-size:.72rem; border:1.5px solid var(--sl-border,#dde1e7); border-radius:6px; font-family:monospace; margin-bottom:8px; }
.sr-pix-note    { font-size:.75rem; color:var(--sl-text3,#888); margin-top:6px; }
.sr-btn-cartao  { background:var(--sl-surface,#fff); border:1.5px solid var(--sl-border,#dde1e7); color:var(--sl-text,#1a1a2e); text-decoration:none; border-radius:10px; padding:10px; display:block; text-align:center; font-weight:600; font-size:.88rem; }
.sr-mens-lista  { display:flex; flex-direction:column; gap:8px; }
.sr-mens-item   { display:flex; align-items:center; justify-content:space-between; padding:12px 16px; background:var(--sl-surface,#fff); border-radius:10px; border:1px solid var(--sl-border,#eee); gap:12px; flex-wrap:wrap; }
.sr-mens-item-desc { font-weight:600; font-size:.88rem; }
.sr-mens-item-venc { font-size:.78rem; color:var(--sl-text3,#888); margin-top:2px; }

/* ── Análise de aprovação/reprovação — animação gamificada ───────────────── */
.sr-score-overlay {
  position: fixed; inset: 0; background: rgba(0,0,0,.65); z-index: 10000;
  display: flex; align-items: center; justify-content: center; padding: 16px;
  overflow-y: auto;
}
.sr-score-anim-layer {
  position: fixed; inset: 0; pointer-events: none; overflow: hidden; z-index: 10001;
}
.sr-score-box {
  position: relative; z-index: 10002; background: #fff; border-radius: 22px;
  max-width: 420px; width: 100%; max-height: 90vh; overflow-y: auto;
  box-shadow: 0 24px 70px rgba(0,0,0,.3); text-align: center; padding-bottom: 24px;
  animation: srScorePopIn .4s cubic-bezier(.34,1.56,.64,1);
}
@keyframes srScorePopIn { from { transform: scale(.7); opacity: 0; } to { transform: scale(1); opacity: 1; } }
.sr-score-box-ok   { border: 3px solid #2ecc71; }
.sr-score-box-fail { border: 3px solid #e74c3c; }

/* Reprovação: a caixa começa invisível e só aparece depois que a bomba
   estoura (classe sr-score-box-visible adicionada via JS no momento
   certo) — sobrescreve a animação automática de pop-in da .sr-score-box. */
.sr-score-box-reveal {
  animation: none;
  opacity: 0;
  transform: scale(.7);
  transition: opacity .35s ease-out, transform .35s cubic-bezier(.34,1.56,.64,1);
}
.sr-score-box-reveal.sr-score-box-visible {
  opacity: 1;
  transform: scale(1);
}

.sr-score-banner { padding: 18px 20px 22px; border-radius: 19px 19px 50% 50% / 19px 19px 30px 30px; color: #fff; }
.sr-score-banner-title { font-size: 1.3rem; font-weight: 900; letter-spacing: .5px; }
.sr-score-banner-sub   { font-size: .95rem; font-weight: 600; opacity: .92; margin-top: 2px; }

.sr-score-circle {
  width: 96px; height: 96px; border-radius: 50%; display: flex; flex-direction: column;
  align-items: center; justify-content: center; color: #fff; margin: -48px auto 10px;
  border: 4px solid #fff; box-shadow: 0 6px 18px rgba(0,0,0,.18);
}
.sr-score-circle-gold {
  background: linear-gradient(135deg, #ffd700, #ff9d00);
  animation: srGoldPulse 1.2s ease-in-out infinite;
}
@keyframes srGoldPulse { 0%,100% { box-shadow: 0 6px 18px rgba(255,165,0,.4); } 50% { box-shadow: 0 6px 30px rgba(255,165,0,.8); } }
.sr-score-nota { font-size: 2.1rem; font-weight: 900; line-height: 1; }
.sr-score-nota-label { font-size: .62rem; font-weight: 700; letter-spacing: 1px; opacity: .9; }

.sr-score-pct { font-size: .85rem; color: #888; margin: 0 0 6px; font-weight: 600; }
.sr-score-msg { font-size: .92rem; color: #444; margin: 0 20px 14px; }

.sr-score-info { margin: 0 18px 8px; padding: 10px 14px; border-radius: 10px; text-align: left; font-size: .82rem; color: #333; }
.sr-score-info-label { font-size: .72rem; font-weight: 700; margin-bottom: 4px; }
.sr-score-info-ok   { background: #f0fdf4; }
.sr-score-info-ok   .sr-score-info-label { color: #27ae60; }
.sr-score-info-bad  { background: #fff5f5; }
.sr-score-info-bad  .sr-score-info-label { color: #e74c3c; }
.sr-score-info-tip  { background: #fff9e6; margin-bottom: 16px; }
.sr-score-info-tip  .sr-score-info-label { color: #f39c12; }

.sr-score-close-btn {
  color: #fff; border: none; border-radius: 12px; padding: 13px 28px;
  font-size: .95rem; font-weight: 700; cursor: pointer; width: calc(100% - 36px); margin: 4px 18px 0;
}

/* Confetes (aprovado) */
.sr-confetti {
  position: absolute; top: -20px; width: 9px; height: 14px; opacity: .9;
  animation-name: srConfettiFall; animation-timing-function: ease-in; animation-iteration-count: 1;
  border-radius: 2px;
}
@keyframes srConfettiFall {
  0%   { transform: translateY(0) rotate(0deg); opacity: 1; }
  100% { transform: translateY(100vh) rotate(540deg); opacity: 0; }
}

/* Emoji central (troféu/explosão) */
.sr-score-emoji-burst {
  position: absolute; top: 12%; left: 50%; transform: translateX(-50%);
  font-size: 2.6rem; letter-spacing: 10px; white-space: nowrap;
  animation: srEmojiBurst 1s ease-out;
}
@keyframes srEmojiBurst {
  0%   { transform: translateX(-50%) scale(.2); opacity: 0; }
  60%  { transform: translateX(-50%) scale(1.15); opacity: 1; }
  100% { transform: translateX(-50%) scale(1); opacity: 1; }
}
.sr-score-emoji-fail { animation: srShake .5s ease-in-out 2; }
@keyframes srShake {
  0%,100% { transform: translateX(-50%); }
  25%     { transform: translateX(-56%); }
  75%     { transform: translateX(-44%); }
}

/* ── Sequência de explosão (reprovado) ──────────────────────────────────── */
.sr-bomb-wrap {
  position: absolute; top: 8%; left: 50%; transform: translateX(-50%) rotate(-5deg);
  animation: srBombWobble .35s ease-in-out 0 1.7, srBombGone .15s ease-out .58s forwards;
  transform-origin: 50% 90%;
}
.sr-bomb-svg { display: block; filter: drop-shadow(0 6px 10px rgba(0,0,0,.35)); }
@keyframes srBombWobble {
  0%,100% { transform: translateX(-50%) rotate(-5deg); }
  50%     { transform: translateX(-50%) rotate(5deg); }
}
@keyframes srBombGone {
  0%   { opacity: 1; }
  100% { opacity: 0; }
}
.sr-fuse-spark {
  animation: srFuseFlicker .22s ease-in-out infinite;
  transform-origin: center;
}
@keyframes srFuseFlicker {
  0%,100% { transform: scale(1) rotate(0deg); opacity: 1; }
  50%     { transform: scale(1.3) rotate(8deg); opacity: .7; }
}
.sr-bomb-eyes {
  animation: srEyesWiden .4s ease-in-out infinite;
}
@keyframes srEyesWiden {
  0%,100% { transform: scale(1); }
  50%     { transform: scale(1.2); }
}
.sr-bomb-flash {
  position: absolute; top: 0; left: 0; right: 0; bottom: 0;
  background: radial-gradient(circle at 50% 16%, rgba(255,255,255,.95) 0%, rgba(255,200,80,.55) 22%, rgba(255,80,0,0) 55%);
  opacity: 0;
  animation: srBombFlash .6s ease-out .58s forwards;
}
@keyframes srBombFlash {
  0%   { opacity: 0; }
  15%  { opacity: 1; }
  100% { opacity: 0; }
}
.sr-bomb-burst {
  position: absolute; top: 14%; left: 50%; transform: translateX(-50%) scale(0);
  font-size: 3.4rem;
  opacity: 0;
  animation: srBombBurst .55s cubic-bezier(.2,1.4,.4,1) .58s forwards;
}
@keyframes srBombBurst {
  0%   { transform: translateX(-50%) scale(0);   opacity: 0; }
  35%  { transform: translateX(-50%) scale(1.5);  opacity: 1; }
  100% { transform: translateX(-50%) scale(1.1);  opacity: 0; }
}
.sr-bomb-smoke {
  position: absolute; top: 16%; font-size: 1.8rem; opacity: 0;
  animation: srBombSmoke 1.6s ease-out forwards;
}
@keyframes srBombSmoke {
  0%   { opacity: 0; transform: translateY(0) scale(.6); }
  20%  { opacity: .9; }
  100% { opacity: 0; transform: translateY(-90px) scale(1.3); }
}

@media (max-width: 420px) {
  .sr-score-emoji-burst { font-size: 2rem; letter-spacing: 6px; }
  .sr-score-circle { width: 80px; height: 80px; margin-top: -40px; }
  .sr-score-nota { font-size: 1.7rem; }
}


/* ═══════════════════════════════════════════════════════════════════
   PAINEL DO ATLETA v2.0 — Layout SL RUN (imagem de referência)
   Cores: Azul #2563EB | Azul Escuro #1F2937 | Verde #16A34A
          Roxo #7C3AED | Laranja #F97316 | Branco #FFFFFF
   ═══════════════════════════════════════════════════════════════════ */

/* ── Variáveis do painel ── */
.sr-dash-v2 {
  --d-primary:   #2563EB;
  --d-dark:      #1F2937;
  --d-green:     #16A34A;
  --d-purple:    #7C3AED;
  --d-orange:    #F97316;
  --d-white:     #FFFFFF;
  --d-bg:        #F0F2F5;
  --d-card:      #FFFFFF;
  --d-text:      #1a1a2e;
  --d-muted:     #6b7280;
  --d-border:    #e5e7eb;
  --d-sidebar-w: 220px;
  --d-topbar-h:  68px;
  --d-radius:    12px;
  --d-radius-lg: 16px;
  --d-shadow:    0 2px 12px rgba(31,41,55,.08);
  --d-shadow-md: 0 4px 20px rgba(31,41,55,.12);
}

/* ── Reset root ── */
.srd-root {
  display: flex;
  min-height: 100vh;
  background: var(--d-bg);
  font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
  overflow-x: hidden;
}

/* ══════════════════════════
   SIDEBAR
   ══════════════════════════ */
.srd-sidebar {
  width: var(--d-sidebar-w, 220px);
  background: var(--d-dark);
  display: flex;
  flex-direction: column;
  position: fixed;
  top: 0; left: 0; bottom: 0;
  z-index: 200;
  overflow-y: auto;
  overflow-x: hidden;
  transition: left .3s ease;
  flex-shrink: 0;
}

.srd-sidebar-header {
  padding: 20px 16px 14px;
  border-bottom: 1px solid rgba(255,255,255,.08);
  flex-shrink: 0;
}

.srd-sidebar-banner {
  width: 100%;
  max-width: 100%;
  min-width: 0;
  max-height: 90px;
  overflow: hidden;
  flex-shrink: 0;
}
.srd-sidebar-banner-img {
  width: 100%;
  max-width: 100%;
  height: 90px;
  object-fit: cover;
  display: block;
}

.srd-logo-img {
  max-height: 42px;
  max-width: 160px;
  width: auto;
  object-fit: contain;
  display: block;
  background: transparent;
}

.srd-logo-default {
  display: flex;
  align-items: center;
  gap: 10px;
}
.srd-logo-icon {
  font-size: 1.8rem;
  background: var(--d-primary);
  width: 40px; height: 40px;
  border-radius: 10px;
  display: flex; align-items: center; justify-content: center;
  flex-shrink: 0;
}
.srd-logo-name {
  font-size: .95rem;
  font-weight: 800;
  color: #fff;
  letter-spacing: .02em;
  line-height: 1.1;
}
.srd-logo-sub {
  font-size: .65rem;
  color: rgba(255,255,255,.4);
  line-height: 1;
}

/* Nav items */
.srd-nav {
  padding: 12px 8px;
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: 2px;
}

.srd-nav-item {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 10px 12px;
  border-radius: 10px;
  text-decoration: none;
  color: rgba(255,255,255,.65);
  font-size: .85rem;
  font-weight: 500;
  transition: background .15s, color .15s;
  line-height: 1.2;
}
.srd-nav-item:hover {
  background: rgba(37,99,235,.25);
  color: #fff;
}
.srd-nav-active,
.srd-nav-item.srd-nav-active {
  background: linear-gradient(135deg, #2563EB 0%, #0040CC 100%) !important;
  color: #fff !important;
  font-weight: 700;
  box-shadow: 0 3px 10px rgba(37,99,235,.35);
}
.srd-nav-icon {
  width: 22px;
  height: 22px;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  opacity: .85;
}
.srd-nav-active .srd-nav-icon,
.srd-nav-item.srd-nav-active .srd-nav-icon { opacity: 1; }
.srd-nav-label { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }

/* ── Overlay mobile ── */
.srd-overlay {
  display: none;
  position: fixed;
  inset: 0;
  background: rgba(0,0,0,.5);
  z-index: 199;
}
.srd-overlay-active { display: block !important; }

/* ══════════════════════════
   MAIN (à direita do sidebar)
   ══════════════════════════ */
.srd-main {
  flex: 1;
  margin-left: var(--d-sidebar-w, 220px);
  display: flex;
  flex-direction: column;
  min-height: 100vh;
  min-width: 0;
}

/* ── Topbar ── */
.srd-topbar {
  height: var(--d-topbar-h);
  background: linear-gradient(135deg, #2563EB 0%, #1F2937 100%);
  display: flex;
  align-items: center;
  gap: 16px;
  padding: 0 24px;
  position: sticky;
  top: 0;
  z-index: 100;
  box-shadow: 0 2px 12px rgba(31,41,55,.25);
  flex-shrink: 0;
}

.srd-hamburger {
  display: none;
  background: none;
  border: none;
  color: #fff;
  cursor: pointer;
  padding: 4px;
  flex-shrink: 0;
}

.srd-topbar-greet { flex: 1; min-width: 0; }
.srd-greet-title {
  font-size: 1.25rem;
  font-weight: 800;
  color: #fff;
  margin: 0;
  line-height: 1.1;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.srd-greet-sub {
  font-size: .82rem;
  color: rgba(255,255,255,.75);
  margin: 2px 0 0;
}

.srd-topbar-user {
  display: flex;
  align-items: center;
  gap: 12px;
  flex-shrink: 0;
}
.srd-topbar-avatar-wrap {
  width: 42px; height: 42px;
  border-radius: 50%;
  border: 2px solid rgba(255,255,255,.5);
  overflow: hidden;
  cursor: pointer;
  flex-shrink: 0;
  transition: border-color .15s;
}
.srd-topbar-avatar-wrap:hover { border-color: #fff; }
.srd-topbar-photo {
  width: 100%; height: 100%;
  object-fit: cover;
}
.srd-topbar-userinfo {
  display: flex;
  flex-direction: column;
  line-height: 1.2;
}
.srd-topbar-name {
  font-size: .88rem;
  font-weight: 700;
  color: #fff;
  white-space: nowrap;
  max-width: 160px;
  overflow: hidden;
  text-overflow: ellipsis;
}
.srd-topbar-role {
  font-size: .72rem;
  color: rgba(255,255,255,.65);
}
.srd-topbar-actions {
  display: flex;
  align-items: center;
  gap: 8px;
}
.srd-icon-btn {
  position: relative;
  background: rgba(255,255,255,.12);
  border: 1px solid rgba(255,255,255,.2);
  border-radius: 10px;
  width: 38px; height: 38px;
  display: flex; align-items: center; justify-content: center;
  font-size: 1rem;
  color: rgba(255,255,255,.9);
  cursor: pointer;
  text-decoration: none;
  transition: background .15s;
  flex-shrink: 0;
}
.srd-icon-btn:hover { background: rgba(255,255,255,.25); }
#sr-push-btn { width: auto; padding: 0 10px; gap: 2px; }

.srd-install-btn {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  background: rgba(255,255,255,.95);
  color: var(--d-dark);
  border: none;
  border-radius: 999px;
  padding: 8px 14px;
  font-size: .8rem;
  font-weight: 700;
  cursor: pointer;
  flex-shrink: 0;
  transition: transform .15s, box-shadow .15s;
}
.srd-install-btn:hover { transform: translateY(-1px); box-shadow: 0 4px 14px rgba(0,0,0,.18); }
.srd-install-btn svg { flex-shrink: 0; }
@media (max-width: 480px) {
  .srd-install-btn span { display: none; }
  .srd-install-btn { padding: 9px; border-radius: 10px; }
}

.srd-notif-badge {
  position: absolute;
  top: -4px; right: -4px;
  background: #F97316;
  color: #fff;
  font-size: .6rem;
  font-weight: 700;
  border-radius: 8px;
  padding: 1px 4px;
  min-width: 16px;
  text-align: center;
}

/* ── Central de notificações (sino) ── */
.srd-notif-wrap { position: relative !important; }
.srd-notif-panel {
  position: absolute !important;
  top: calc(100% + 10px) !important;
  right: 0 !important;
  left: auto !important;
  bottom: auto !important;
  width: 340px !important;
  max-width: calc(100vw - 24px) !important;
  background: #ffffff !important;
  border-radius: var(--d-radius-lg);
  box-shadow: var(--d-shadow-md);
  border: 1px solid var(--d-border);
  z-index: 9999 !important;
  display: none;
  flex-direction: column;
  max-height: 70vh !important;
  overflow: hidden !important;
}
.srd-notif-panel-open { display: flex !important; }
.srd-notif-panel-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 14px 16px;
  border-bottom: 1px solid var(--d-border);
  flex-shrink: 0;
}
.srd-notif-panel-head strong { font-size: .92rem; color: var(--d-text); }
.srd-notif-panel-head button {
  background: none; border: none; color: var(--d-primary);
  font-size: .76rem; font-weight: 600; cursor: pointer; padding: 0;
}
.srd-notif-list { overflow-y: auto; overflow-x: hidden; flex: 1; min-width: 0; width: 100%; }
.srd-notif-empty {
  padding: 32px 16px;
  text-align: center;
  color: var(--d-muted);
  font-size: .85rem;
}
.srd-notif-item {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  padding: 12px 16px;
  border-bottom: 1px solid var(--d-border);
  cursor: pointer;
  position: relative;
  transition: background .12s;
}
.srd-notif-item:hover { background: var(--d-bg); }
.srd-notif-item-unread { background: rgba(37,99,235,.05); }
.srd-notif-item-unread::before {
  content: '';
  position: absolute;
  left: 5px; top: 18px;
  width: 6px; height: 6px;
  border-radius: 50%;
  background: var(--d-primary);
}
.srd-notif-item-icon { font-size: 1.1rem; flex-shrink: 0; margin-top: 1px; }
.srd-notif-item-body { flex: 1; min-width: 0; }
.srd-notif-item-title { font-size: .85rem; font-weight: 700; color: var(--d-text); overflow-wrap: break-word; word-break: break-word; }
.srd-notif-item-text { font-size: .78rem; color: var(--d-muted); margin-top: 2px; line-height: 1.4; overflow-wrap: break-word; word-break: break-word; }
.srd-notif-item-time { font-size: .7rem; color: var(--d-muted); margin-top: 4px; }
.srd-notif-more {
  text-align: center;
  padding: 10px 12px;
  font-size: .78rem;
  font-weight: 700;
  color: #2563EB;
  background: rgba(37,99,235,.06);
  border-top: 1px solid var(--d-border, #eee);
}
.srd-notif-item-del {
  background: none; border: none; color: var(--d-muted);
  font-size: 1rem; line-height: 1; cursor: pointer; flex-shrink: 0;
  padding: 2px 4px; opacity: 0; transition: opacity .12s;
}
.srd-notif-item:hover .srd-notif-item-del { opacity: 1; }
.srd-notif-item-del:hover { color: #e53e3e; }

@media (max-width: 600px) {
  .srd-notif-panel {
    position: fixed !important;
    top: var(--d-topbar-h) !important;
    right: 8px !important;
    left: 8px !important;
    width: auto !important;
    max-width: calc(100vw - 16px) !important;
  }
}

/* ══════════════════════════
   BODY DO PAINEL
   ══════════════════════════ */
.srd-body {
  padding: 24px 24px 32px;
  display: flex;
  flex-direction: column;
  gap: 20px;
  flex: 1;
  min-width: 0;
}

/* ── Banner "Retornar à Página Inicial" (todas as páginas, exceto o
     Dashboard) — precisa ser bem visível, não um card pequeno perdido. ── */
.srd-back-home-banner {
  display: flex;
  align-items: center;
  gap: 16px;
  background: linear-gradient(135deg, #2563EB 0%, #7C3AED 100%);
  border-radius: var(--d-radius-lg, 16px);
  padding: 18px 24px;
  text-decoration: none;
  box-shadow: 0 6px 20px rgba(37,99,235, .3);
  transition: transform .15s, box-shadow .15s;
}
.srd-back-home-banner:hover { transform: translateY(-2px); box-shadow: 0 8px 26px rgba(37,99,235, .4); }
.srd-back-home-icon { flex-shrink: 0; display: flex; filter: drop-shadow(0 2px 4px rgba(0,0,0,.15)); }
.srd-back-home-label { flex: 1; color: #fff; font-size: 1.1rem; font-weight: 800; text-shadow: 0 1px 3px rgba(0,0,0,.15); }
.srd-back-home-arrow { color: #fff; font-size: 1.4rem; font-weight: 800; flex-shrink: 0; }

/* ── Cards rápidos superiores ── */
.srd-quick-cards {
  display: grid;
  /* auto-fit + minmax: o número de colunas se adapta sozinho à largura
     real disponível, sem depender de um media query específico "vencer a
     tempo" na cascata. Corrige o bug em que, em larguras intermediárias
     (ex.: ~1024px, entre os breakpoints calibrados), o grid ficava fixo
     em 8 colunas e os cards apareciam cortados/desalinhados. Os media
     queries abaixo que também definem grid-template-columns continuam
     funcionando normalmente (sobrescrevem este valor quando ativos);
     este é apenas o fallback seguro para qualquer largura não coberta. */
  grid-template-columns: repeat(auto-fit, minmax(120px, 1fr));
  gap: 10px;
}
.srd-qcard {
  background: var(--d-card);
  border-radius: var(--d-radius);
  padding: 14px 10px;
  text-align: center;
  text-decoration: none;
  color: var(--d-text);
  box-shadow: var(--d-shadow);
  border: 1px solid var(--d-border);
  transition: transform .15s, box-shadow .15s;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 6px;
  /* Sem isso, o item do grid usa o max-content da palavra mais longa do
     label (ex.: "Mensalidade", "Treinamento") como largura mínima, o que
     estoura a coluna 1fr em telas pequenas. Como a página tem
     overflow-x:hidden, o excesso fica cortado na borda direita em vez de
     aparecer com scroll — era esse o bug do painel não responsivo. */
  min-width: 0;
  overflow: hidden;
}
/* Card com pendência financeira (mensalidade em aberto/vencida, ou termo
   de compromisso ainda não aceito) — borda vermelha + leve destaque, pra
   chamar atenção sem depender só de uma bolinha pequena no ícone. */
.srd-qcard-pendente {
  border: 2px solid #e74c3c !important;
  background: #fff5f5 !important;
  box-shadow: 0 2px 10px rgba(231,76,60,.25) !important;
}
.srd-badge-pulso {
  animation: srd-pulso 1.6s ease-in-out infinite;
}
@keyframes srd-pulso {
  0%   { transform: scale(1);    box-shadow: 0 0 0 0 rgba(231,76,60,.55); }
  70%  { transform: scale(1.12); box-shadow: 0 0 0 8px rgba(231,76,60,0); }
  100% { transform: scale(1);    box-shadow: 0 0 0 0 rgba(231,76,60,0); }
}
.srd-qcard:hover {
  transform: translateY(-3px);
  box-shadow: var(--d-shadow-md);
  border-color: var(--qcard-color, #2563EB);
}
.srd-qcard-icon {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 48px; height: 48px;
  border-radius: 12px;
  background: color-mix(in srgb, var(--qcard-color, #2563EB) 12%, transparent);
}
.srd-qcard-label {
  font-size: .78rem;
  font-weight: 700;
  color: var(--d-text);
  line-height: 1.2;
  width: 100%;
  overflow-wrap: break-word;
  word-break: break-word;
  hyphens: auto;
}
.srd-qcard-sub {
  font-size: .68rem;
  color: var(--d-muted);
  line-height: 1.2;
  width: 100%;
  overflow-wrap: break-word;
  word-break: break-word;
  hyphens: auto;
}

/* ── Linha principal ── */
.srd-main-row {
  display: grid;
  grid-template-columns: 1fr 260px;
  gap: 20px;
  align-items: start;
  min-width: 0;
}
.srd-center-col {
  display: flex;
  flex-direction: column;
  gap: 16px;
  min-width: 0;
}

/* ── Frase motivacional do dia ── */
.srd-frase-dia {
  display: flex;
  align-items: center;
  gap: 14px;
  background: linear-gradient(135deg, #2563EB 0%, #7C3AED 100%);
  border-radius: var(--d-radius-lg, 16px);
  padding: 20px 22px;
  margin-bottom: 18px;
  box-shadow: 0 6px 20px rgba(37,99,235, .25);
}
.srd-frase-icon { font-size: 1.6rem; flex-shrink: 0; filter: drop-shadow(0 2px 4px rgba(0,0,0,.15)); }
.srd-frase-texto {
  font-size: 1rem;
  font-weight: 700;
  font-style: italic;
  color: #fff;
  line-height: 1.5;
  text-shadow: 0 1px 3px rgba(0,0,0,.15);
}

/* Próximo Teste da Equipe — painel logo acima do "Treino de Hoje" */
.srd-proximo-teste{
  display:flex;
  flex-wrap:wrap;
  align-items:flex-start;
  gap:12px;
  background:#EEF4FF;
  border:1px solid #D6E4FF;
  border-radius:var(--d-radius-lg, 16px);
  padding:16px 18px;
  margin-bottom:18px;
}
.srd-proximo-teste-icon{ font-size:1.5rem; flex-shrink:0; line-height:1; }
.srd-toque-detalhes-pulse{ animation: srPulseToque 1.6s ease-in-out infinite; }
@keyframes srPulseToque{
  0%, 100% { opacity:.6; transform:scale(1); }
  50% { opacity:1; transform:scale(1.04); }
}
.srd-proximo-teste-titulo{ font-weight:800; font-size:.92rem; color:#1a1a2e; margin-bottom:2px; }
.srd-proximo-teste-texto{ font-size:.86rem; color:#444; line-height:1.5; }
.srd-proximo-teste-link{
  display:inline-block;
  margin-top:8px;
  font-size:.82rem;
  font-weight:700;
  color:#fff;
  background:#2563EB;
  padding:7px 14px;
  border-radius:8px;
  text-decoration:none;
}
.srd-proximo-teste-link:hover{ background:#0047cc; }
/* Estado "pausado" — vermelho, mais chamativo, pra não passar despercebido */
.srd-proximo-teste--pausado{
  background:#FDEDED;
  border-color:#F5C2C2;
}
.srd-proximo-teste--pausado .srd-proximo-teste-titulo{ color:#c0392b; }
.srd-dash-greeting {
  font-size: 1.3rem;
  font-weight: 800;
  color: var(--d-text, #1a1a2e);
  margin: 0 0 10px;
}

/* ── Aniversariantes do dia ── */
.srd-bday-card {
  background: linear-gradient(135deg, #FFB800 0%, #F97316 100%);
  border-radius: var(--d-radius-lg);
  padding: 16px 18px;
  margin-bottom: 16px;
  box-shadow: 0 4px 16px rgba(249,115,22,.25);
}
.srd-bday-card-header {
  font-size: .85rem;
  font-weight: 800;
  color: #fff;
  margin-bottom: 10px;
  letter-spacing: .01em;
}
.srd-bday-card-list { display: flex; flex-direction: column; gap: 8px; }
.srd-bday-card-item {
  display: flex;
  align-items: center;
  gap: 10px;
  background: rgba(255,255,255,.18);
  border-radius: 10px;
  padding: 8px 10px;
}
.srd-bday-card-photo {
  width: 40px; height: 40px;
  border-radius: 50%;
  object-fit: cover;
  border: 2px solid rgba(255,255,255,.6);
  flex-shrink: 0;
}
.srd-bday-card-info { flex: 1; min-width: 0; }
.srd-bday-card-nome { font-size: .85rem; font-weight: 700; color: #fff; }
.srd-bday-card-assessoria { font-size: .7rem; color: rgba(255,255,255,.85); }
.srd-bday-card-btn {
  background: #fff;
  color: #F97316;
  font-size: .74rem;
  font-weight: 700;
  padding: 6px 12px;
  border-radius: 20px;
  text-decoration: none;
  flex-shrink: 0;
  white-space: nowrap;
}
.srd-bday-card-btn:hover { background: rgba(255,255,255,.9); }

/* ── Card Treino de Hoje ── */
.srd-today-card {
  background: linear-gradient(135deg, #2563EB 0%, #7C3AED 55%, #06B6D4 100%);
  border-radius: var(--d-radius-lg);
  overflow: hidden;
  box-shadow: 0 6px 24px rgba(124,58,237,.3);
  position: relative;
}
.srd-today-card::before {
  content: '';
  position: absolute;
  top: -40px; right: -40px;
  width: 200px; height: 200px;
  border-radius: 50%;
  background: rgba(255,255,255,.04);
  pointer-events: none;
}

.srd-today-header {
  padding: 14px 20px 8px;
}
.srd-today-badge {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  background: rgba(255,255,255,.12);
  border: 1px solid rgba(255,255,255,.2);
  color: #fff;
  font-size: .72rem;
  font-weight: 800;
  letter-spacing: .08em;
  padding: 5px 12px;
  border-radius: 20px;
}

.srd-today-content {
  padding: 8px 20px 16px;
  display: flex;
  gap: 20px;
  align-items: flex-start;
}
.srd-today-left {
  flex: 1;
  display: flex;
  gap: 14px;
  align-items: flex-start;
  min-width: 0;
}
.srd-today-shoe {
  width: 72px; height: 72px;
  border-radius: 50%;
  background: rgba(255,255,255,.12);
  display: flex; align-items: center; justify-content: center;
  flex-shrink: 0;
  border: 2px solid rgba(255,255,255,.2);
}
.srd-today-tipo {
  font-size: .82rem;
  font-weight: 700;
  color: #16A34A;
  margin-bottom: 4px;
}
.srd-today-nome {
  font-size: 1.6rem;
  font-weight: 900;
  color: #fff;
  line-height: 1.1;
  margin-bottom: 10px;
  letter-spacing: -.01em;
}
.srd-today-meta {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: .8rem;
  color: rgba(255,255,255,.75);
  margin-bottom: 4px;
}
.srd-today-meta span:first-child { color: rgba(255,255,255,.5); font-size: .75rem; }

.srd-today-right {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 14px;
  flex-shrink: 0;
}
.srd-today-stats {
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.srd-today-stat {
  display: flex;
  align-items: center;
  gap: 8px;
  background: rgba(255,255,255,.1);
  border-radius: 10px;
  padding: 8px 12px;
  min-width: 180px;
}
.srd-tstat-icon { font-size: 1.1rem; flex-shrink: 0; }
.srd-tstat-label { font-size: .7rem; color: rgba(255,255,255,.6); }
.srd-tstat-val { font-size: .95rem; font-weight: 700; color: #fff; }

/* Status badge */
.srd-today-status {
  border-radius: var(--d-radius);
  padding: 12px 16px;
  text-align: center;
  min-width: 110px;
}
.srd-status-done {
  background: rgba(22,163,74,.12);
  border: 2px solid #16A34A;
}
.srd-status-pending {
  background: rgba(249,115,22,.12);
  border: 2px solid #F97316;
}
.srd-status-icon {
  font-size: 2rem;
  line-height: 1;
  margin-bottom: 4px;
  font-weight: 900;
}
.srd-status-done .srd-status-icon { color: #16A34A; }
.srd-status-pending .srd-status-icon { color: #F97316; }
.srd-status-text {
  font-size: .75rem;
  font-weight: 800;
  letter-spacing: .05em;
}
.srd-status-done .srd-status-text { color: #16A34A; }
.srd-status-pending .srd-status-text { color: #F97316; }

.srd-today-empty {
  padding: 32px;
  text-align: center;
  color: rgba(255,255,255,.7);
}

.srd-today-footer {
  padding: 12px 20px 18px;
  text-align: center;
}
.srd-btn-detalhes {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  background: rgba(255,255,255,.1);
  border: 1px solid rgba(255,255,255,.25);
  color: #fff;
  text-decoration: none;
  font-size: .82rem;
  font-weight: 700;
  padding: 11px 28px;
  border-radius: 8px;
  letter-spacing: .03em;
  transition: background .15s;
}
.srd-btn-detalhes:hover {
  background: rgba(255,255,255,.2);
  color: #fff;
}

/* ── Grade inferior ── */
.srd-bottom-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 16px;
}

/* ── Painéis (próximos treinos + feedbacks) ── */
.srd-panel {
  background: var(--d-card);
  border-radius: var(--d-radius);
  overflow: hidden;
  box-shadow: var(--d-shadow);
  border: 1px solid var(--d-border);
}
.srd-panel-header {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 14px 16px 10px;
  border-bottom: 1px solid var(--d-border);
}
.srd-panel-icon { font-size: 1rem; }
.srd-panel-title {
  flex: 1;
  font-size: .78rem;
  font-weight: 800;
  color: var(--d-text);
  letter-spacing: .05em;
}
.srd-panel-link {
  font-size: .75rem;
  color: var(--d-primary);
  text-decoration: none;
  font-weight: 600;
}
.srd-panel-link:hover { text-decoration: underline; }
.srd-panel-body { padding: 8px 0; }

/* Próximos treinos items */
.srd-prox-item {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 10px 16px;
  border-bottom: 1px solid #f3f4f6;
}
.srd-prox-item:last-child { border-bottom: none; }
.srd-prox-date {
  width: 40px; height: 40px;
  background: var(--d-primary);
  border-radius: 8px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}
.srd-prox-dia-abr { font-size: .58rem; font-weight: 700; color: rgba(255,255,255,.8); }
.srd-prox-dia-num { font-size: .95rem; font-weight: 800; color: #fff; line-height: 1; }
.srd-prox-info { flex: 1; min-width: 0; }
.srd-prox-nome { font-size: .85rem; font-weight: 700; color: var(--d-text); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.srd-prox-zona { font-size: .72rem; color: var(--d-muted); margin-top: 1px; }
.srd-prox-dados { text-align: right; flex-shrink: 0; }
.srd-prox-dist { font-size: .85rem; font-weight: 700; color: var(--d-text); }
.srd-prox-pace { font-size: .72rem; color: var(--d-muted); }

/* Feedbacks items */
.srd-fb-item {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 10px 16px;
  border-bottom: 1px solid #f3f4f6;
}
.srd-fb-item:last-child { border-bottom: none; }
.srd-fb-check {
  width: 28px; height: 28px;
  border-radius: 50%;
  display: flex; align-items: center; justify-content: center;
  font-size: .85rem;
  font-weight: 700;
  flex-shrink: 0;
}
.srd-fb-ok   { background: rgba(22,163,74,.15); color: #27ae60; border: 1.5px solid #16A34A; }
.srd-fb-fail { background: rgba(231,76,60,.12); color: #e74c3c; border: 1.5px solid #e74c3c; }
.srd-fb-info { flex: 1; min-width: 0; }
.srd-fb-nome { font-size: .85rem; font-weight: 700; color: var(--d-text); line-height: 1.4; overflow-wrap: break-word; }
.srd-fb-date { font-size: .72rem; color: var(--d-muted); margin-top: 1px; }
.srd-fb-badge {
  font-size: .72rem;
  font-weight: 700;
  padding: 3px 10px;
  border-radius: 20px;
  border: 1.5px solid;
  white-space: nowrap;
  flex-shrink: 0;
}
.srd-badge-ok   { color: #27ae60; border-color: #16A34A; background: rgba(22,163,74,.08); }
.srd-badge-fail { color: #e74c3c; border-color: #e74c3c; background: rgba(231,76,60,.08); }

.srd-empty-msg { color: var(--d-muted); font-size: .84rem; padding: 16px; text-align: center; }

/* ── Métricas rodapé ── */
.srd-metrics {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 12px;
}
.srd-metric {
  background: var(--d-card);
  border-radius: var(--d-radius);
  padding: 16px;
  box-shadow: var(--d-shadow);
  border: 1px solid var(--d-border);
  display: flex;
  align-items: center;
  gap: 12px;
}
.srd-metric-icon { font-size: 1.6rem; flex-shrink: 0; }
.srd-metric-val {
  font-size: 1.6rem;
  font-weight: 800;
  color: var(--d-text);
  line-height: 1;
}
.srd-metric-label { font-size: .75rem; font-weight: 600; color: var(--d-text); margin-top: 2px; }
.srd-metric-sub { font-size: .7rem; color: var(--d-muted); }

/* ══════════════════════════
   COLUNA DIREITA — ATLETAS
   ══════════════════════════ */
.srd-right-col { min-width: 0; }
.srd-atletas-panel {
  background: var(--d-card);
  border-radius: var(--d-radius-lg);
  box-shadow: var(--d-shadow);
  border: 1px solid var(--d-border);
  overflow: hidden;
  display: flex;
  flex-direction: column;
}
.srd-atletas-header {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 14px 16px 10px;
  border-bottom: 1px solid var(--d-border);
}
.srd-atletas-icon { color: var(--d-purple); }
.srd-atletas-title {
  font-size: .78rem;
  font-weight: 800;
  color: var(--d-text);
  letter-spacing: .05em;
}

.srd-atletas-search {
  position: relative;
  padding: 10px 12px;
  border-bottom: 1px solid var(--d-border);
}
.srd-atleta-input {
  width: 100%;
  padding: 8px 32px 8px 12px;
  border: 1px solid var(--d-border);
  border-radius: 8px;
  font-size: .82rem;
  color: var(--d-text);
  background: #f9fafb;
  outline: none;
  transition: border-color .15s;
}
.srd-atleta-input:focus { border-color: var(--d-primary); }
.srd-atleta-input::placeholder { color: #9ca3af; }
.srd-search-icon {
  position: absolute;
  right: 22px;
  top: 50%;
  transform: translateY(-50%);
  font-size: .85rem;
  pointer-events: none;
}

.srd-atletas-list {
  flex: 1;
  overflow-y: auto;
  max-height: 420px;
  padding: 6px 0;
}
.srd-atleta-item {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 9px 14px;
  transition: background .12s;
  cursor: default;
}
.srd-atleta-item:hover { background: #f9fafb; }
.srd-atleta-photo {
  width: 36px; height: 36px;
  border-radius: 50%;
  object-fit: cover;
  border: 2px solid var(--d-border);
  flex-shrink: 0;
}
.srd-atleta-nome {
  font-size: .84rem;
  font-weight: 600;
  color: var(--d-text);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.srd-atletas-footer {
  padding: 12px;
  border-top: 1px solid var(--d-border);
}
.srd-btn-atletas {
  display: block;
  text-align: center;
  background: var(--d-purple);
  color: #fff;
  text-decoration: none;
  font-size: .82rem;
  font-weight: 700;
  padding: 11px;
  border-radius: 8px;
  letter-spacing: .03em;
  transition: background .15s;
}
.srd-btn-atletas:hover { background: #6a2fdd; color: #fff; }

/* ══════════════════════════
   RESPONSIVIDADE
   ══════════════════════════ */

/* Tablet ≤ 1100px */
@media (max-width: 1100px) {
  :root { --d-sidebar-w: 200px; }
  .srd-quick-cards { grid-template-columns: repeat(4, 1fr); }
  .srd-main-row { grid-template-columns: 1fr; }
  .srd-right-col { display: none; } /* hide on tablet, can be toggled */
  .srd-metrics { grid-template-columns: repeat(2, 1fr); }
  .srd-topbar-userinfo { display: none; }
}

/* Desktop pequeno ≤ 920px */
@media (max-width: 920px) {
  .srd-today-content { flex-direction: column; }
  .srd-today-right { align-items: flex-start; }
  .srd-today-stat { min-width: 0; width: 100%; }
  .srd-today-stats { width: 100%; }
}

/* Mobile ≤ 768px */
@media (max-width: 768px) {
  .srd-sidebar {
    left: -240px;
    width: 240px;
  }
  .srd-sidebar-open {
    left: 0 !important;
  }
  .srd-hamburger { display: flex; }
  .srd-main { margin-left: 0; }
  .srd-body { padding: 16px 12px 24px; gap: 14px; }
  .srd-quick-cards { grid-template-columns: repeat(4, 1fr); gap: 8px; }
  .srd-qcard { padding: 10px 6px; }
  .srd-qcard-sub { display: none; }
  .srd-qcard-icon { width: 38px; height: 38px; }
  .srd-bottom-grid { grid-template-columns: 1fr; }
  .srd-metrics { grid-template-columns: repeat(2, 1fr); }
  .srd-topbar { padding: 0 14px; gap: 10px; }
  .srd-greet-title { font-size: 1rem; }
  .srd-greet-sub { display: none; }
}

/* Mobile pequeno ≤ 480px */
@media (max-width: 480px) {
  .srd-quick-cards { grid-template-columns: repeat(4, 1fr); }
  .srd-today-left { flex-direction: column; }
  .srd-today-nome { font-size: 1.2rem; }
  .srd-metrics { grid-template-columns: 1fr 1fr; }
  .srd-metric-val { font-size: 1.3rem; }
}

/* ── Fix WordPress wrapper para a nova estrutura ── */
body.sr-page-atleta .srd-root {
  margin: 0 !important;
  padding: 0 !important;
  max-width: none !important;
}


/* ═══════════════════════════════════════════════════════════════════
   FIX: Ocultar imagem destacada e título do tema WordPress
   nas páginas do plugin (sr-page-atleta e sr-page-home).
   O tema exibe a featured image e o page title acima do shortcode —
   essas regras suprimem ambos sem afetar outras páginas.
   ═══════════════════════════════════════════════════════════════════ */

/* ── Imagem destacada (featured image / post thumbnail) ── */
body.sr-page-atleta .post-thumbnail,
body.sr-page-atleta .wp-post-image,
body.sr-page-atleta .featured-image,
body.sr-page-atleta .entry-thumbnail,
body.sr-page-atleta .page-thumbnail,
body.sr-page-atleta figure.wp-block-post-featured-image,
body.sr-page-atleta .wp-block-post-featured-image,
body.sr-page-atleta img.attachment-full,
body.sr-page-atleta img.wp-post-image,
body.sr-page-atleta .site-featured-image,
body.sr-page-atleta .hero-image,
body.sr-page-atleta .page-header-image,
body.sr-page-atleta .elementor-widget-featured-image,
/* Qualquer img direta dentro de article/main nas páginas SR */
body.sr-page-atleta article > img,
body.sr-page-atleta article > .wp-block-image:first-child,
body.sr-page-atleta main > img,
body.sr-page-home .post-thumbnail,
body.sr-page-home .wp-post-image,
body.sr-page-home .featured-image,
body.sr-page-home figure.wp-block-post-featured-image,
body.sr-page-home .wp-block-post-featured-image {
  display: none !important;
  visibility: hidden !important;
  height: 0 !important;
  overflow: hidden !important;
}

/* ── Título da página/post do tema ── */
body.sr-page-atleta .entry-title,
body.sr-page-atleta .page-title,
body.sr-page-atleta .post-title,
body.sr-page-atleta h1.entry-title,
body.sr-page-atleta h1.page-title,
body.sr-page-atleta h2.entry-title,
body.sr-page-atleta .entry-header .entry-title,
body.sr-page-atleta .page-header h1,
body.sr-page-atleta .page-hero h1,
body.sr-page-atleta header.entry-header,
body.sr-page-atleta .entry-header,
body.sr-page-atleta .wp-block-post-title,
body.sr-page-atleta figure.wp-block-post-featured-image + h1,
body.sr-page-home .entry-title,
body.sr-page-home .page-title,
body.sr-page-home h1.entry-title,
body.sr-page-home .entry-header {
  display: none !important;
  visibility: hidden !important;
  height: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
  overflow: hidden !important;
}

/* ── :has() para temas modernos (Chrome 105+, Firefox 121+) ── */
body.page:has(.srd-root) .post-thumbnail,
body.page:has(.srd-root) .wp-post-image,
body.page:has(.srd-root) .featured-image,
body.page:has(.srd-root) figure.wp-block-post-featured-image,
body.page:has(.srd-root) .wp-block-post-featured-image,
body.page:has(.srd-root) .entry-title,
body.page:has(.srd-root) .page-title,
body.page:has(.srd-root) h1.entry-title,
body.page:has(.srd-root) header.entry-header,
body.page:has(.srd-root) .entry-header,
body.page:has(.sr-wrap) .post-thumbnail,
body.page:has(.sr-wrap) .entry-title,
body.page:has(.sr-wrap) .entry-header {
  display: none !important;
  height: 0 !important;
  overflow: hidden !important;
}

/* ── Padding/margin zerado do article/main que envolve o shortcode ── */
body.sr-page-atleta article.page,
body.sr-page-atleta article.post,
body.sr-page-atleta .hentry,
body.sr-page-atleta .type-page {
  padding: 0 !important;
  margin: 0 !important;
}

/* ── REFORÇO NUCLEAR v2: qualquer img/figure filha direta de article/main/section
      nas páginas do painel — sem afetar imagens DENTRO do srd-root ── */
body.sr-page-atleta article > img,
body.sr-page-atleta article > figure,
body.sr-page-atleta article > .wp-block-image,
body.sr-page-atleta main > img,
body.sr-page-atleta main > figure,
body.sr-page-atleta section > img,
body.sr-page-atleta .content-area > img,
body.sr-page-atleta .site-main > img,
body.sr-page-atleta .entry-content > img,
body.sr-page-atleta .entry-content > figure:not(.srd-root figure),
body.sr-page-atleta .post-content > img,
body.sr-page-atleta .post-content > figure:not(.srd-root figure),
/* Wrappers de featured image de temas populares (Astra, OceanWP, GeneratePress, Flatsome, etc.) */
body.sr-page-atleta .ast-featured-img,
body.sr-page-atleta .ast-single-post-featured-image-wrap,
body.sr-page-atleta .post-image,
body.sr-page-atleta .oceanwp-post-image,
body.sr-page-atleta .generate-featured-image,
body.sr-page-atleta .single-featured-image-header,
body.sr-page-atleta .flat-featured-image,
body.sr-page-atleta .featured-header-image,
body.sr-page-atleta .kadence-featured-image,
body.sr-page-atleta .storefront-featured-media,
body.sr-page-atleta .page-featured-image,
body.sr-page-atleta .divi-featured-image,
body.sr-page-atleta .et_post_meta_wrapper img,
body.sr-page-atleta #page-header,
body.sr-page-atleta .wp-block-cover:not(.srd-root *),
body.sr-page-atleta .wp-block-media-text:not(.srd-root *) {
  display: none !important;
  height: 0 !important;
  overflow: hidden !important;
}


/* ═══════════════════════════════════════════════════════════════════
   MINHA CONTA — Dropdown avatar + item nav
   ═══════════════════════════════════════════════════════════════════ */

/* Nav item Minha Conta — cor diferente para destacar */
.srd-nav-conta { margin-top: auto; border-top: 1px solid rgba(255,255,255,.08); }
.srd-nav-sair  { color: rgba(255,100,100,.8) !important; }
.srd-nav-sair:hover { background: rgba(231,76,60,.15) !important; color: #ff6b6b !important; }

/* ── Dropdown do avatar ── */
.srd-avatar-menu {
  position: relative;
}
.srd-topbar-avatar-wrap { cursor: pointer; }
.srd-avatar-dropdown {
  display: none;
  position: absolute;
  top: calc(100% + 10px);
  right: 0;
  background: #fff;
  border-radius: 12px;
  box-shadow: 0 8px 32px rgba(31,41,55,.18);
  border: 1px solid #e5e7eb;
  min-width: 180px;
  z-index: 9999;
  overflow: hidden;
  animation: srdDropIn .15s ease;
}
@keyframes srdDropIn {
  from { opacity:0; transform: translateY(-6px) scale(.97); }
  to   { opacity:1; transform: translateY(0) scale(1); }
}
.srd-avatar-dropdown.srd-dd-open { display: block; }
.srd-dd-item {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 11px 16px;
  font-size: .88rem;
  font-weight: 600;
  color: #1a1a2e;
  text-decoration: none;
  transition: background .12s;
  cursor: pointer;
}
.srd-dd-item:hover { background: #f0f4ff; }
.srd-dd-item span { font-size: 1rem; }
.srd-dd-divider { height: 1px; background: #e5e7eb; margin: 4px 0; }
.srd-dd-sair { color: #e74c3c !important; }
.srd-dd-sair:hover { background: #fef2f2 !important; }


/* ═══════════════════════════════════════════════════════════════════
   PÁGINAS INTERNAS — Header limpo sem logo
   ═══════════════════════════════════════════════════════════════════ */

/* Oculta o sr-topbar-logo em TODAS as páginas internas (fora do login e sidebar) */
.sr-wrap .sr-topbar-logo,
.sr-wrap img.sr-topbar-logo,
.sr-page-header .sr-topbar-logo,
.sr-header .sr-topbar-logo {
  display: none !important;
}

/* Header interno limpo */
.srd-inner-header {
  padding: 0;
  margin-bottom: 2px;
}
.srd-inner-title {
  font-size: 1.4rem;
  font-weight: 800;
  color: var(--sl-text, #1a1a2e);
  margin: 0 0 3px;
  line-height: 1.2;
}
.srd-inner-sub {
  font-size: .85rem;
  color: var(--sl-text3, #6b7280);
  margin: 0;
  font-weight: 400;
}

/* sr-page-header reformulado — sem logo, com título e subtítulo alinhados */
.sr-page-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 8px;
  padding: 20px 0 16px;
}
.sr-page-header .srd-inner-header { flex: 1; min-width: 0; }

/* ── NUCLEAR v3: bloqueia featured image do tema em QUALQUER página com .sr-wrap ── */
.sr-wrap ~ img,
.sr-wrap ~ figure,
.sr-wrap ~ .wp-block-image,
body.sr-page-atleta .site-content > img,
body.sr-page-atleta .site-content > figure,
body.sr-page-atleta article > img:not(.sr-wrap img),
body.sr-page-atleta article > figure:not(.sr-wrap figure),
body.sr-page-atleta .entry-content > img:not(.sr-wrap img),
body.sr-page-atleta .entry-content > figure:not(.sr-wrap figure),
body.sr-page-atleta .post-thumbnail,
body.sr-page-atleta .entry-header,
body.sr-page-atleta .wp-block-post-featured-image {
  display: none !important;
  height: 0 !important;
  overflow: hidden !important;
}

/* Garante que .sr-wrap ocupe toda a largura disponível */
.sr-wrap {
  padding-top: 8px !important;
}

/* ── Remove qualquer imagem antes do primeiro .sr-wrap ou .srd-root ──
   Cobre temas que injetam via :before pseudo-elements ou featured image widgets */
body.sr-page-atleta *:not(.srd-root):not(.sr-wrap):not(.sr-wrap *):not(.srd-root *) {
  /* Não aplica display:none aqui para não quebrar scripts/styles */
}
/* Mas SIM para imagens e figures fora do conteúdo do plugin */
body.sr-page-atleta > img,
body.sr-page-atleta > figure {
  display: none !important;
}


/* ╔══════════════════════════════════════════════════════════════════════════╗
   ║  RESPONSIVIDADE COMPLETA — SL RUN SYSTEM                               ║
   ║  Breakpoints:                                                           ║
   ║   ≥ 1280px  → Desktop grande (4 cols)                                 ║
   ║   1024–1279 → Desktop / Notebook (3-4 cols)                           ║
   ║    768–1023 → Tablet paisagem / Notebook pequeno (2 cols)             ║
   ║    560– 767 → Tablet retrato / Mobile grande (1-2 cols)               ║
   ║      ≤ 559  → Smartphone (1 col)                                       ║
   ╚══════════════════════════════════════════════════════════════════════════╝ */

/* ── Base: garante box-sizing em TUDO ── */
*, *::before, *::after { box-sizing: border-box; }

/* ── sr-wrap: padding responsivo ── */
.sr-wrap {
  width: 100%;
  max-width: 1280px;
  margin: 0 auto;
  padding: 0 24px 56px;
  overflow-x: hidden;
}

/* ══════════════════════════════════════
   DASHBOARD (srd-*) — TODOS OS BREAKPOINTS
   ══════════════════════════════════════ */

/* ─ Desktop grande ≥ 1280px ─ */
@media (min-width: 1280px) {
  .srd-quick-cards        { grid-template-columns: repeat(auto-fit, minmax(120px, 1fr)); }
  .srd-main-row           { grid-template-columns: 1fr 260px; }
  .srd-right-col          { display: block; }
  .srd-bottom-grid        { grid-template-columns: 1fr 1fr; }
  .srd-metrics            { grid-template-columns: repeat(4, 1fr); }
  .srd-topbar-userinfo    { display: flex; }
}

/* ─ Desktop / Notebook 1024–1279px ─ */
@media (min-width: 1024px) and (max-width: 1279px) {
  :root { --d-sidebar-w: 210px; }
  .srd-quick-cards        { grid-template-columns: repeat(4, 1fr); gap: 10px; }
  .srd-main-row           { grid-template-columns: 1fr 240px; }
  .srd-right-col          { display: block; }
  .srd-bottom-grid        { grid-template-columns: 1fr 1fr; }
  .srd-metrics            { grid-template-columns: repeat(4, 1fr); }
  .srd-qcard-sub          { display: none; }
}

/* ─ Tablet paisagem 768–1023px ─ */
@media (min-width: 768px) and (max-width: 1023px) {
  :root { --d-sidebar-w: 64px; }
  .srd-sidebar            { width: 64px; overflow: hidden; }
  .srd-sidebar:hover      { width: 220px; z-index: 300; box-shadow: 4px 0 20px rgba(0,0,0,.2); }
  .srd-logo-default,
  .srd-logo-img           { display: none; }
  .srd-sidebar:hover .srd-logo-default,
  .srd-sidebar:hover .srd-logo-img { display: flex; }
  .srd-nav-label          { opacity: 0; width: 0; overflow: hidden; transition: opacity .2s, width .2s; }
  .srd-sidebar:hover .srd-nav-label { opacity: 1; width: auto; }
  .srd-nav-item           { justify-content: center; padding: 12px 0; }
  .srd-sidebar:hover .srd-nav-item  { justify-content: flex-start; padding: 10px 12px; }
  .srd-nav-icon           { width: 26px; height: 26px; }
  .srd-quick-cards        { grid-template-columns: repeat(4, 1fr); gap: 8px; }
  .srd-main-row           { grid-template-columns: 1fr; }
  .srd-right-col          { display: none; }
  .srd-bottom-grid        { grid-template-columns: 1fr 1fr; }
  .srd-metrics            { grid-template-columns: repeat(2, 1fr); }
  .srd-qcard-sub          { display: none; }
  .srd-topbar-userinfo    { display: none; }
  .srd-today-content      { flex-direction: row; flex-wrap: wrap; }
  .srd-today-stats        { flex-direction: row; flex-wrap: wrap; gap: 8px; }
  .srd-today-stat         { min-width: 160px; flex: 1; }
}

/* ─ Mobile grande / Tablet retrato 560–767px ─ */
@media (min-width: 560px) and (max-width: 767px) {
  .srd-sidebar            { left: -240px; width: 240px; }
  .srd-sidebar-open       { left: 0 !important; }
  .srd-hamburger          { display: flex; }
  .srd-main               { margin-left: 0; }
  .srd-body               { padding: 14px 14px 28px; gap: 14px; }
  .srd-topbar             { padding: 0 16px; gap: 10px; }
  .srd-quick-cards        { grid-template-columns: repeat(4, 1fr); gap: 8px; }
  .srd-qcard              { padding: 10px 6px; }
  .srd-qcard-sub          { display: none; }
  .srd-qcard-icon         { width: 38px; height: 38px; }
  .srd-qcard-label        { font-size: .72rem; }
  .srd-main-row           { grid-template-columns: 1fr; }
  .srd-right-col          { display: none; }
  .srd-bottom-grid        { grid-template-columns: 1fr 1fr; }
  .srd-metrics            { grid-template-columns: repeat(2, 1fr); }
  .srd-today-content      { flex-direction: column; gap: 14px; }
  .srd-today-right        { align-items: flex-start; width: 100%; }
  .srd-today-stats        { flex-direction: row; flex-wrap: wrap; width: 100%; }
  .srd-today-stat         { flex: 1; min-width: 140px; }
  .srd-today-status       { flex-direction: row; gap: 12px; align-items: center; }
  .srd-greet-title        { font-size: 1rem; }
  .srd-greet-sub          { display: none; }
  .srd-topbar-userinfo    { display: none; }
  .srd-today-nome         { font-size: 1.3rem; }
}

/* ─ Smartphone ≤ 559px ─ */
@media (max-width: 559px) {
  .srd-sidebar            { left: -260px; width: 260px; }
  .srd-sidebar-open       { left: 0 !important; }
  .srd-hamburger          { display: flex; }
  .srd-main               { margin-left: 0; }
  .srd-body               { padding: 12px 10px 24px; gap: 12px; }
  .srd-topbar             { padding: 0 12px; gap: 8px; height: 58px; }
  .srd-greet-title        { font-size: .95rem; }
  .srd-greet-sub          { display: none; }
  .srd-topbar-userinfo    { display: none; }
  .srd-topbar-avatar-wrap { width: 36px; height: 36px; }

  /* Cards rápidos: 4 por linha no mobile */
  .srd-quick-cards        { grid-template-columns: repeat(4, 1fr); gap: 6px; }
  .srd-qcard              { padding: 8px 4px; border-radius: 10px; }
  .srd-qcard-icon         { width: 34px; height: 34px; border-radius: 8px; }
  .srd-qcard-icon svg     { width: 22px; height: 22px; }
  .srd-qcard-label        { font-size: .65rem; }
  .srd-qcard-sub          { display: none; }

  /* Main row: tudo em coluna */
  .srd-main-row           { grid-template-columns: 1fr; gap: 12px; }
  .srd-right-col          { display: none; }
  .srd-bottom-grid        { grid-template-columns: 1fr; gap: 12px; }

  /* Treino de hoje */
  .srd-today-card         { border-radius: 12px; }
  .srd-today-content      { flex-direction: column; padding: 8px 14px 12px; gap: 12px; }
  .srd-today-left         { flex-direction: column; gap: 10px; }
  .srd-today-shoe         { width: 54px; height: 54px; }
  .srd-today-nome         { font-size: 1.15rem; }
  .srd-today-right        { width: 100%; flex-direction: row; flex-wrap: wrap; gap: 8px; }
  .srd-today-stats        { flex-direction: row; flex-wrap: wrap; gap: 8px; flex: 1; }
  .srd-today-stat         { flex: 1; min-width: 130px; padding: 7px 10px; }
  .srd-today-status       { flex-direction: row; gap: 10px; align-items: center; padding: 10px 14px; min-width: 0; }
  .srd-status-icon        { font-size: 1.4rem; margin-bottom: 0; }

  /* Métricas */
  .srd-metrics            { grid-template-columns: 1fr 1fr; gap: 10px; }
  .srd-metric             { padding: 12px; }
  .srd-metric-val         { font-size: 1.25rem; }
  .srd-metric-icon        { font-size: 1.3rem; }

  /* Topbar avatar dropdown */
  .srd-avatar-dropdown    { right: -10px; }
}

/* ─ Smartphone muito pequeno ≤ 360px ─ */
@media (max-width: 360px) {
  .srd-quick-cards        { grid-template-columns: repeat(4, 1fr); gap: 4px; }
  .srd-qcard-label        { font-size: .58rem; }
  .srd-qcard-icon         { width: 28px; height: 28px; }
  .srd-today-nome         { font-size: 1rem; }
  .srd-metrics            { grid-template-columns: 1fr 1fr; }
  .srd-body               { padding: 10px 8px 20px; }
}

/* ══════════════════════════════════════
   PÁGINAS INTERNAS (sr-wrap) — TODOS OS BREAKPOINTS
   ══════════════════════════════════════ */

/* ─ Tablet ≤ 1023px ─ */
@media (max-width: 1023px) {
  .sr-wrap                { padding: 0 20px 48px; }
  .sr-treino-hoje-grid    { grid-template-columns: repeat(2, 1fr); }
  .sr-metrics-grid        { grid-template-columns: repeat(2, 1fr); }
}

/* ─ Tablet retrato ≤ 768px ─ */
@media (max-width: 768px) {
  .sr-wrap                { padding: 0 16px 40px; }
  .sr-page-header         { padding: 14px 0 10px; }
  .srd-inner-title        { font-size: 1.2rem; }

  /* Treino hoje */
  .sr-treino-hoje         { padding: 16px; }
  .sr-treino-hoje-grid    { grid-template-columns: repeat(2, 1fr); }
  .sr-treino-hoje-btns    { flex-wrap: wrap; }
  .sr-treino-hoje-btns .sr-btn { flex: 1; text-align: center; justify-content: center; }

  /* Métricas */
  .sr-metrics-grid        { grid-template-columns: repeat(2, 1fr); }

  /* Treinos lista */
  .sr-training-header     { flex-wrap: wrap; }
  .sr-training-meta       { flex-wrap: wrap; gap: 6px; }

  /* Ranking */
  .sr-rank-stats          { gap: 8px; }
  .sr-my-rank-card        { flex-wrap: wrap; }

  /* Feedbacks */
  .sr-fb-header           { flex-wrap: wrap; }
  .sr-fb-stats            { flex-wrap: wrap; }

  /* Calculadoras */
  .sr-result-grid         { flex-wrap: wrap; gap: 16px; }
  .sr-pred-grid           { grid-template-columns: repeat(2, 1fr); }

  /* Mensalidade */
  .sr-pix-box             { flex-direction: column; }
  .sr-pix-qr              { width: 100px; height: 100px; }
  .sr-mens-destaque-header { flex-direction: column; gap: 8px; }

  /* Testes */
  .sr-test-kpis           { flex-wrap: wrap; gap: 12px; }

  /* Bday */
  .sr-bday-filters        { gap: 6px; }
  .sr-bday-filter-btn     { padding: 6px 12px; font-size: .78rem; }
}

/* ─ Smartphone ≤ 559px ─ */
@media (max-width: 559px) {
  .sr-wrap                { padding: 0 12px 32px; }
  .sr-page-header         { padding: 10px 0 8px; gap: 6px; }
  .srd-inner-title        { font-size: 1.05rem; }
  .srd-inner-sub          { font-size: .78rem; }
  .sr-page-header .sr-btn { font-size: .78rem; padding: 6px 10px; }

  /* Treino hoje */
  .sr-treino-hoje         { padding: 14px 12px; border-radius: 12px; }
  .sr-treino-hoje-grid    { grid-template-columns: repeat(2, 1fr); gap: 8px; }
  .sr-treino-hoje-nome    { font-size: 1.1rem; }
  .sr-treino-stat         { padding: 8px; }
  .sr-treino-stat-val     { font-size: .9rem; }

  /* Métricas */
  .sr-metrics-grid        { grid-template-columns: repeat(2, 1fr); gap: 8px; }
  .sr-metric              { padding: 12px 10px; }
  .sr-metric-val          { font-size: 1.2rem; }

  /* Treinos */
  .sr-training-card       { padding: 12px; }
  .sr-training-header h4  { font-size: .9rem; }
  .sr-training-meta span  { font-size: .74rem; padding: 2px 6px; }
  .sr-training-type       { font-size: .65rem; padding: 2px 6px; }

  /* Ranking */
  .sr-rank-item           { padding: 10px 12px; gap: 8px; }
  .sr-rank-stats          { flex-wrap: wrap; gap: 6px; }
  .sr-rank-stat-val       { font-size: .85rem; }
  .sr-my-rank-pos         { font-size: 1.5rem; min-width: 40px; }

  /* Feedbacks */
  .sr-fb-card             { padding: 12px 14px; }
  .sr-fb-score-badge      { padding: 4px 8px; }
  .sr-fb-text             { font-size: .82rem; }
  .sr-filter-team         { flex-direction: column; }
  .sr-filter-team select,
  .sr-filter-team input   { width: 100%; }

  /* Calculadoras */
  .sr-calc-card           { padding: 16px; }
  .sr-calc-form           { grid-template-columns: 1fr; }
  .sr-result-grid         { flex-direction: column; gap: 12px; }
  .sr-result-val          { font-size: 1.6rem; }
  .sr-pred-grid           { grid-template-columns: repeat(2, 1fr); gap: 10px; }
  .sr-pred-card           { padding: 12px; }
  .sr-pred-dist           { font-size: .95rem; }
  .sr-tabs                { gap: 4px; }
  .sr-tab                 { padding: 6px 12px; font-size: .78rem; }

  /* Mensalidade */
  .sr-mens-lista          { gap: 6px; }
  .sr-mens-item           { flex-direction: column; align-items: flex-start; gap: 6px; padding: 10px 12px; }
  .sr-mens-valor          { font-size: 1.6rem; }

  /* Testes */
  .sr-test-hero           { padding: 16px; border-radius: 12px; }
  .sr-test-kpis           { gap: 10px; }
  .sr-kpi-val             { font-size: 1.2rem; }
  .sr-ai-score-circle     { width: 68px; height: 68px; font-size: 1.1rem; }

  /* Modal feedback */
  .sr-modal-box           { padding: 18px; }
  .sr-feeling-selector    { gap: 4px; }
  .sr-feeling-opt span    { padding: 8px 2px; }
  .sr-pse-selector        { gap: 3px; }

  /* Certificados */
  .sr-achievement-card    { padding: 12px 8px; }
  .sr-achievements-grid   { grid-template-columns: repeat(3, 1fr); gap: 8px; }

  /* Mensalidade PIX */
  .sr-pix-box             { padding: 12px; gap: 12px; }
  .sr-pix-qr              { width: 90px; height: 90px; }

  /* Zonas */
  .sr-zona-paces          { display: none; }
  .sr-zona-row            { padding: 8px 10px; }

  /* Provas */
  .sr-race-card           { padding: 12px; }

  /* Cal mini */
  .sr-cal-day             { min-height: 36px; padding: 3px; }
  .sr-cal-daynum          { font-size: .68rem; }
}

/* ─ Telas muito pequenas ≤ 360px ─ */
@media (max-width: 360px) {
  .sr-wrap                { padding: 0 8px 24px; }
  .sr-treino-hoje-grid    { grid-template-columns: 1fr 1fr; }
  .sr-metrics-grid        { grid-template-columns: 1fr 1fr; }
  .sr-pred-grid           { grid-template-columns: 1fr 1fr; }
  .sr-achievements-grid   { grid-template-columns: repeat(3, 1fr); }
  .sr-tab                 { padding: 5px 8px; font-size: .72rem; }
  .srd-inner-title        { font-size: .95rem; }
}

/* ══════════════════════════════════════
   MINHA CONTA (sra-*) — TODOS OS BREAKPOINTS
   ══════════════════════════════════════ */
@media (max-width: 768px) {
  .sra-topbar             { padding: 0 16px; gap: 10px; height: 56px; }
  .sra-topbar-back        { font-size: .8rem; padding: 5px 10px; }
  .sra-body               { padding: 16px 14px 40px; }
  .sra-photo-card         { padding: 20px 16px; }
}

@media (max-width: 559px) {
  .sra-topbar             { height: 52px; padding: 0 12px; }
  .sra-topbar-title       { font-size: .95rem; }
  .sra-body               { padding: 12px 10px 32px; }
  .sra-photo-big          { width: 88px; height: 88px; }
  .sra-grid               { grid-template-columns: 1fr; gap: 12px; }
  .sra-field.full         { grid-column: 1; }
  .sra-form-card          { padding: 18px 14px; }
  .sra-photo-card         { padding: 18px 12px; }
  .sra-photo-btns         { flex-direction: column; gap: 8px; }
  .sra-btn-photo          { width: 100%; text-align: center; }
}

/* ══════════════════════════════════════
   HEADER INTERNO — TODOS OS BREAKPOINTS
   ══════════════════════════════════════ */

/* Breadcrumb visual simples */
.srd-breadcrumb {
  display: flex;
  align-items: center;
  gap: 6px;
  font-size: .75rem;
  color: var(--sl-text3, #6b7280);
  margin-bottom: 4px;
}
.srd-breadcrumb a        { color: var(--sl-blue, #2563EB); text-decoration: none; }
.srd-breadcrumb a:hover  { text-decoration: underline; }
.srd-breadcrumb span     { color: var(--sl-text3, #9ca3af); }

/* ══════════════════════════════════════
   LOGIN — RESPONSIVO
   ══════════════════════════════════════ */
@media (max-width: 559px) {
  .sr-auth-page           { padding: 16px 12px; }
  .sr-auth-box            { border-radius: 12px; }
  .sr-tab-content         { padding: 18px 16px; }
  .sr-auth-logo           { height: 56px; }
  .sr-auth-brand          { padding: 18px; }
}

/* ══════════════════════════════════════
   UTILITÁRIOS RESPONSIVOS GLOBAIS
   ══════════════════════════════════════ */

/* Prevent horizontal scroll em qualquer página */
body.sr-page-atleta {
  overflow-x: hidden;
  width: 100%;
}

/* Touch targets mínimos 44×44px (iOS/Android guidelines) */
@media (hover: none) and (pointer: coarse) {
  .sr-btn                 { min-height: 44px; }
  .srd-nav-item           { min-height: 44px; }
  .srd-icon-btn           { width: 44px; height: 44px; }
  .sr-tab                 { min-height: 44px; }
  .sr-feeling-btn         { min-height: 44px; }
  .srd-dd-item            { min-height: 44px; }
  .sra-btn-photo          { min-height: 44px; }
}

/* Garante que imagens nunca quebrem o layout */
.sr-wrap img,
.srd-root img {
  max-width: 100%;
  height: auto;
}

/* Tables responsivas nas páginas internas */
.sr-wrap table {
  width: 100%;
  overflow-x: auto;
  display: block;
}
@media (min-width: 600px) {
  .sr-wrap table { display: table; }
}

/* Overflow-x em containers que podem ter tabelas */
.sr-section,
.sr-chart-card,
.sr-calc-card {
  overflow-x: auto;
}

/* ── Scrollbar fina no webkit (mobile UX) ── */
.srd-atletas-list::-webkit-scrollbar,
.sr-wrap::-webkit-scrollbar        { width: 4px; height: 4px; }
.srd-atletas-list::-webkit-scrollbar-track,
.sr-wrap::-webkit-scrollbar-track  { background: transparent; }
.srd-atletas-list::-webkit-scrollbar-thumb,
.sr-wrap::-webkit-scrollbar-thumb  { background: rgba(37,99,235,.2); border-radius: 4px; }

/* ── Safe area para iPhone com notch / home bar ── */
@supports (padding: env(safe-area-inset-bottom)) {
  .srd-body,
  .sr-wrap {
    padding-bottom: max(32px, env(safe-area-inset-bottom));
  }
  .srd-topbar,
  .sra-topbar {
    padding-left:  max(16px, env(safe-area-inset-left));
    padding-right: max(16px, env(safe-area-inset-right));
  }
}


/* ╔══════════════════════════════════════════════════════════════════════════╗
   ║  TIPOGRAFIA — LEGIBILIDADE GLOBAL                                       ║
   ║  Problema: fontes .62rem–.88rem = 10px–14px → ilegível                ║
   ║  Solução: base 17px + escala proporcional + line-height generoso       ║
   ╚══════════════════════════════════════════════════════════════════════════╝ */

/* ── 1. BASE: html root size sobe para 17px ── */
html {
  font-size: 17px !important;
}

/* ── 2. BODY base: fonte, cor, espaçamento de linha ── */
body,
.sr-wrap,
.srd-root,
.srd-main,
.sra-root {
  font-size: 1rem !important;
  line-height: 1.65 !important;
  color: #1a1a2e;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-rendering: optimizeLegibility;
}

/* ── 3. OVERRIDES PROPORCIONAIS para cada tamanho do sistema ──
   Regra: qualquer seletor que usava X.XXrem recebe um valor
   equivalente a no mínimo 13px (0.76rem@17px).
   Mapeamento: .62rem→.76rem | .68rem→.76rem | .70rem→.76rem
               .72rem→.79rem | .75rem→.82rem | .78rem→.85rem
               .80rem→.88rem | .82rem→.88rem | .84rem→.90rem
               .85rem→.92rem | .88rem→.95rem | .90rem→.97rem
               .95rem→1.02rem| 1rem →1.06rem
   ─────────────────────────────────────────────────────────── */

/* Topbar + nav sidebar */
.sr-topbar-name,
.srd-topbar-name      { font-size: .97rem !important; }
.sr-topbar-sub,
.srd-topbar-role      { font-size: .82rem !important; }
.srd-nav-label        { font-size: .92rem !important; }
.srd-greet-title      { font-size: 1.32rem !important; }
.srd-greet-sub        { font-size: .92rem !important; }

/* Cards rápidos superiores */
.srd-qcard-label      { font-size: .82rem !important; }
.srd-qcard-sub        { font-size: .76rem !important; }

/* Treino de hoje */
.srd-today-tipo       { font-size: .92rem !important; }
.srd-today-nome       { font-size: 1.75rem !important; }
.srd-today-meta       { font-size: .88rem !important; }
.srd-tstat-label      { font-size: .79rem !important; }
.srd-tstat-val        { font-size: 1.05rem !important; font-weight: 700 !important; }
.srd-status-text      { font-size: .85rem !important; }
.srd-btn-detalhes     { font-size: .92rem !important; }
.srd-today-badge      { font-size: .82rem !important; }

/* Painéis (próximos treinos, feedbacks) */
.srd-panel-title      { font-size: .85rem !important; }
.srd-panel-link       { font-size: .85rem !important; }
.srd-prox-nome        { font-size: .92rem !important; }
.srd-prox-zona        { font-size: .82rem !important; }
.srd-prox-dist        { font-size: .92rem !important; }
.srd-prox-pace        { font-size: .82rem !important; }
.srd-prox-dia-abr     { font-size: .68rem !important; }
.srd-prox-dia-num     { font-size: 1.05rem !important; }
.srd-fb-nome          { font-size: .92rem !important; }
.srd-fb-date          { font-size: .82rem !important; }
.srd-fb-badge         { font-size: .82rem !important; }

/* Métricas rodapé */
.srd-metric-label     { font-size: .82rem !important; }
.srd-metric-sub       { font-size: .79rem !important; }
.srd-metric-val       { font-size: 1.75rem !important; }

/* Atletas sidebar */
.srd-atletas-title    { font-size: .85rem !important; }
.srd-atleta-nome      { font-size: .92rem !important; }
.srd-atleta-input     { font-size: .92rem !important; }
.srd-btn-atletas      { font-size: .92rem !important; }

/* Header interno de página */
.srd-inner-title      { font-size: 1.55rem !important; font-weight: 800 !important; line-height: 1.2 !important; }
.srd-inner-sub        { font-size: .97rem !important; line-height: 1.55 !important; }
.sr-page-title        { font-size: 1.35rem !important; font-weight: 700 !important; }

/* ── Páginas internas: sr-wrap ── */

/* Treino (planilha) */
.sr-treino-hoje-nome  { font-size: 1.55rem !important; }
.sr-treino-hoje-obj   { font-size: .97rem !important; line-height: 1.6 !important; }
.sr-treino-hoje-label { font-size: .79rem !important; }
.sr-treino-hoje-desc  { font-size: .97rem !important; line-height: 1.7 !important; }
.sr-treino-stat-label { font-size: .85rem !important; }
.sr-treino-stat-val   { font-size: 1.15rem !important; }
.sr-treino-zona-chip  { font-size: .82rem !important; }

/* Lista de treinos */
.sr-training-day      { font-size: .88rem !important; }
.sr-training-header h4 { font-size: 1.08rem !important; }
.sr-training-type     { font-size: .79rem !important; }
.sr-training-meta span { font-size: .88rem !important; }
.sr-training-desc-wrap summary { font-size: .92rem !important; }
.sr-orient-label      { font-size: .82rem !important; }
.sr-orient-text       { font-size: .95rem !important; line-height: 1.65 !important; }
.sr-training-card .sr-btn { font-size: .88rem !important; }

/* Métricas (página interna) */
.sr-metric-label      { font-size: .82rem !important; }
.sr-metric-val        { font-size: 1.65rem !important; }
.sr-metric-sub        { font-size: .82rem !important; }

/* Hero / Cards gerais */
.sr-hero-nome         { font-size: 1.45rem !important; }
.sr-hero-saudacao     { font-size: .85rem !important; }
.sr-hero-pill         { font-size: .85rem !important; }

/* Seções */
.sr-section h3,
.sr-section h3        { font-size: 1.08rem !important; line-height: 1.4 !important; }
.sr-chart-title       { font-size: 1.02rem !important; }
.sr-empty             { font-size: 1rem !important; }
.sr-notice            { font-size: .97rem !important; line-height: 1.6 !important; }

/* Botões gerais */
.sr-btn               { font-size: .97rem !important; }
.sr-btn-sm            { font-size: .88rem !important; }

/* Análise / IA */
.sr-analise-header-title { font-size: 1rem !important; }
.sr-analise-header-sub   { font-size: .85rem !important; }
.sr-analise-msg          { font-size: .97rem !important; line-height: 1.75 !important; }
.sr-analise-frase        { font-size: .95rem !important; }
.sr-ai-section-title     { font-size: .88rem !important; }
.sr-ai-section-text      { font-size: .97rem !important; line-height: 1.7 !important; }

/* Ranking */
.sr-rank-item .sr-rank-pos  { font-size: 1.05rem !important; }
.sr-rank-stat-val           { font-size: 1.08rem !important; }
.sr-rank-stat-val.sr-rank-main { font-size: 1.32rem !important; }
.sr-rank-stat-lbl           { font-size: .82rem !important; }
.sr-rank-legend             { font-size: .88rem !important; }
.sr-my-rank-pos             { font-size: 1.6rem !important; }
.sr-my-rank-stats           { font-size: .92rem !important; }
.sr-rank-you                { font-size: .82rem !important; }

/* Feedbacks */
.sr-fb-meta strong          { font-size: 1rem !important; }
.sr-fb-type                 { font-size: .85rem !important; }
.sr-fb-text                 { font-size: .97rem !important; line-height: 1.7 !important; }
.sr-fb-ai-msg               { font-size: .95rem !important; }
.sr-fb-reply                { font-size: .95rem !important; }
.sr-fb-score-num            { font-size: 1.2rem !important; }
.sr-fb-score-cls            { font-size: .82rem !important; }
.sr-fb-stats                { font-size: .92rem !important; }
.sr-filter-team select,
.sr-filter-team input       { font-size: .95rem !important; }

/* Calculadoras */
.sr-calc-card h3            { font-size: 1.2rem !important; }
.sr-calc-desc               { font-size: .97rem !important; line-height: 1.65 !important; }
.sr-calc-form label         { font-size: .95rem !important; }
.sr-calc-form input         { font-size: 1.05rem !important; }
.sr-result-label            { font-size: .88rem !important; }
.sr-result-val              { font-size: 2.2rem !important; }
.sr-result-unit             { font-size: .92rem !important; }
.sr-pred-dist               { font-size: 1.2rem !important; }
.sr-pred-km                 { font-size: .88rem !important; }
.sr-pred-row                { font-size: .92rem !important; }
.sr-pred-pace               { font-size: .88rem !important; }
.sr-pred-badge              { font-size: .92rem !important; }
.sr-pred-scenarios-legend   { font-size: .92rem !important; }
.sr-pred-custom label       { font-size: .95rem !important; }
.sr-tabs .sr-tab            { font-size: .97rem !important; }

/* Testes */
.sr-test-hero-label         { font-size: .95rem !important; }
.sr-test-hero-date          { font-size: 1.02rem !important; }
.sr-kpi-val                 { font-size: 1.85rem !important; }
.sr-kpi-label               { font-size: .88rem !important; }
.sr-test-classification     { font-size: 1.05rem !important; }
.sr-evolution-badge         { font-size: .97rem !important; }
.sr-test-history-item       { font-size: .97rem !important; }
.sr-ai-score-circle         { font-size: 1.45rem !important; }
.sr-ai-score-label          { font-size: .88rem !important; }
.sr-badge-new               { font-size: .82rem !important; }
.sr-thi-date                { font-size: .92rem !important; }

/* Mensalidade */
.sr-mens-valor              { font-size: 2.2rem !important; }
.sr-mens-desc               { font-size: .97rem !important; }
.sr-mens-destaque-label     { font-size: .97rem !important; }
.sr-mens-venc               { font-size: 1.2rem !important; }
.sr-mens-venc-label         { font-size: .88rem !important; }
.sr-mens-item-desc          { font-size: .97rem !important; }
.sr-mens-item-venc          { font-size: .88rem !important; }
.sr-pix-title               { font-size: 1.02rem !important; }
.sr-pix-code                { font-size: .82rem !important; }
.sr-pix-note                { font-size: .88rem !important; }

/* Certificados / Conquistas */
.sr-achievement-title       { font-size: .88rem !important; }
.sr-achievement-desc        { font-size: .85rem !important; line-height: 1.55 !important; }
.sr-achievement-date        { font-size: .85rem !important; }

/* Aniversariantes */
.sr-birthday-name           { font-size: 1.25rem !important; }
.sr-birthday-label          { font-size: .82rem !important; }
.sr-birthday-age            { font-size: .95rem !important; }
.sr-birthday-athlete-name   { font-size: .97rem !important; }
.sr-birthday-date           { font-size: .88rem !important; }

/* Provas */
.sr-prova-nome              { font-size: 1.2rem !important; }
.sr-prova-meta              { font-size: .95rem !important; }
.sr-prova-countdown         { font-size: 2.2rem !important; }
.sr-prova-countdown-label   { font-size: .82rem !important; }

/* Zonas de treino */
.sr-zona-nome               { font-size: .95rem !important; }
.sr-zona-desc               { font-size: .92rem !important; }
.sr-zona-pace               { font-size: .95rem !important; }
.sr-zona-fc                 { font-size: .85rem !important; }

/* Notificações */
.sr-notif strong            { font-size: 1rem !important; }
.sr-notif p                 { font-size: .95rem !important; line-height: 1.6 !important; }
.sr-notif small             { font-size: .85rem !important; }

/* Login */
.sr-auth-title              { font-size: 1.25rem !important; }
.sr-auth-subtitle           { font-size: .88rem !important; }
.sr-tab-content h2          { font-size: 1.15rem !important; }
.sr-field label             { font-size: .92rem !important; }
.sr-field input,
.sr-field select,
.sr-field textarea          { font-size: 1.05rem !important; line-height: 1.5 !important; }

/* Modal */
.sr-modal-box h3            { font-size: 1.2rem !important; }
.sr-modal-title             { font-size: 1.08rem !important; }
.sr-modal-box .sr-field label { font-size: .97rem !important; }
.sr-feeling-label           { font-size: .82rem !important; }
.sr-feeling-btn             { font-size: .85rem !important; }

/* Toast */
.sr-toast                   { font-size: .97rem !important; }

/* Calendário */
.sr-cal-title               { font-size: 1.08rem !important; }
.sr-cal-btn                 { font-size: .92rem !important; }
.sr-cal-dow                 { font-size: .79rem !important; }
.sr-cal-daynum              { font-size: .88rem !important; }
.sr-cal-chip                { font-size: .76rem !important; }

/* Minha Conta (sra-) */
.sra-topbar-title           { font-size: 1.2rem !important; }
.sra-topbar-back            { font-size: .97rem !important; }
.sra-form-card h2           { font-size: 1.15rem !important; }
.sra-field label            { font-size: .92rem !important; }
.sra-field input,
.sra-field select           { font-size: 1.05rem !important; }
.sra-btn-photo              { font-size: .97rem !important; }
.sra-btn-save               { font-size: 1.08rem !important; }

/* Dropdown avatar */
.srd-dd-item                { font-size: .97rem !important; }

/* Perfil WordPress admin (foto upload) */
#sr-photo-profile-wrap p    { font-size: .97rem !important; line-height: 1.65 !important; }
#sr-upload-photo-btn        { font-size: .97rem !important; }

/* ── 4. AJUSTE DE line-height global em parágrafos e listas ── */
.sr-wrap p,
.sr-wrap li,
.sr-wrap dd,
.srd-root p,
.srd-root li       { line-height: 1.7 !important; }

/* ── 5. INPUTS E SELECTS globais: tamanho confortável ── */
.sr-wrap input,
.sr-wrap select,
.sr-wrap textarea,
.srd-root input,
.srd-root select,
.srd-root textarea {
  font-size: 1.05rem !important;
  line-height: 1.5 !important;
  padding: 9px 12px !important;
}

/* ── 6. MOBILE: sobe base para 16px (padrão iOS/Android) ──
   Evita o zoom automático do iOS em inputs < 16px */
@media (max-width: 767px) {
  html { font-size: 16px !important; }
  .srd-today-nome  { font-size: 1.45rem !important; }
  .srd-inner-title { font-size: 1.3rem !important; }
  .sr-treino-hoje-nome { font-size: 1.25rem !important; }
  .sr-rank-stat-val.sr-rank-main { font-size: 1.15rem !important; }
  .sr-result-val   { font-size: 1.85rem !important; }
  .sr-mens-valor   { font-size: 1.85rem !important; }
}

@media (max-width: 559px) {
  html { font-size: 15.5px !important; }
  .srd-today-nome  { font-size: 1.3rem !important; }
  .srd-inner-title { font-size: 1.2rem !important; }
  .srd-metric-val  { font-size: 1.45rem !important; }
  .sr-treino-hoje-nome { font-size: 1.15rem !important; }
  .sr-result-val   { font-size: 1.65rem !important; }
}

@media (max-width: 360px) {
  html { font-size: 15px !important; }
  .srd-today-nome  { font-size: 1.15rem !important; }
  .srd-inner-title { font-size: 1.1rem !important; }
  .srd-metric-val  { font-size: 1.3rem !important; }
}


/* ╔══════════════════════════════════════════════════════════════════════════╗
   ║  FIX CORES — LEGIBILIDADE TOTAL                                         ║
   ║  Problema: body dark (#0f1320) vaza para wrappers do WP e cards        ║
   ╚══════════════════════════════════════════════════════════════════════════╝ */

/* ── 1. Body: fundo escuro apenas FORA do srd-root/sr-wrap ──
   O srd-root e sr-wrap têm seu próprio fundo claro.          */
body.sr-page-atleta {
  background: #1F2937 !important; /* azul escuro só no body nu */
}
.srd-root {
  background: #F0F2F5 !important;
  min-height: 100vh;
}
.srd-main {
  background: #F0F2F5 !important;
}
.srd-body {
  background: #F0F2F5 !important;
}

/* ── 2. Cards rápidos: fundo BRANCO, ícone colorido, texto escuro ── */
.srd-qcard {
  background: #FFFFFF !important;
  border: 1.5px solid #e5e7eb !important;
  box-shadow: 0 2px 8px rgba(31,41,55,.08) !important;
}
.srd-qcard-label {
  color: #1a1a2e !important;
  font-size: .88rem !important;
  font-weight: 700 !important;
}
.srd-qcard-sub {
  color: #6b7280 !important;
}
.srd-qcard-icon {
  /* Fundo colorido sólido (15% opacidade) sobre branco = sempre visível */
  background: color-mix(in srgb, var(--qcard-color, #2563EB) 15%, #ffffff) !important;
}
/* Garante que o SVG dentro do ícone use a cor definida */
.srd-qcard-icon svg {
  color: var(--qcard-color, #2563EB);
  stroke: var(--qcard-color, #2563EB);
}

/* ── 3. Sidebar: fundo correto ── */
.srd-sidebar {
  background: #1F2937 !important;
}
.srd-nav-item {
  color: rgba(255,255,255,.80) !important;
}
.srd-nav-item:hover {
  background: rgba(37,99,235,.30) !important;
  color: #ffffff !important;
}
.srd-nav-active,
.srd-nav-item.srd-nav-active {
  background: linear-gradient(135deg,#2563EB,#0040CC) !important;
  color: #ffffff !important;
}
.srd-nav-label {
  color: inherit !important;
}
.srd-logo-name {
  color: #ffffff !important;
}
.srd-logo-sub {
  color: rgba(255,255,255,.55) !important;
}

/* ── 4. Topbar: sempre azul legível ── */
.srd-topbar {
  background: linear-gradient(135deg,#2563EB,#1F2937) !important;
}
.srd-greet-title {
  color: #ffffff !important;
}
.srd-greet-sub {
  color: rgba(255,255,255,.85) !important;
}
.srd-topbar-name {
  color: #ffffff !important;
}
.srd-topbar-role {
  color: rgba(255,255,255,.70) !important;
}

/* ── 5. Painéis inferiores: fundo branco, texto escuro ── */
.srd-panel,
.srd-atletas-panel,
.srd-metric {
  background: #FFFFFF !important;
  border-color: #e5e7eb !important;
}
.srd-panel-title {
  color: #1a1a2e !important;
}
.srd-prox-nome,
.srd-fb-nome,
.srd-atleta-nome,
.srd-metric-label {
  color: #1a1a2e !important;
}
.srd-prox-zona,
.srd-prox-pace,
.srd-fb-date,
.srd-metric-sub {
  color: #6b7280 !important;
}
.srd-prox-dist {
  color: #1a1a2e !important;
  font-weight: 700 !important;
}
.srd-metric-val {
  color: #1a1a2e !important;
}

/* ── 6. Data dos próximos treinos: fundo azul, texto branco ── */
.srd-prox-date {
  background: #2563EB !important;
}
.srd-prox-dia-abr,
.srd-prox-dia-num {
  color: #ffffff !important;
}

/* ── 7. Card treino de hoje: gradiente azul escuro ── */
.srd-today-card {
  background: linear-gradient(135deg,#1F2937 0%,#0040A0 50%,#2563EB 100%) !important;
}
.srd-today-nome,
.srd-today-tipo,
.srd-tstat-val,
.srd-tstat-label,
.srd-today-meta {
  color: #ffffff !important;
}
.srd-today-tipo {
  color: #16A34A !important;
}
.srd-today-badge {
  color: #ffffff !important;
  border-color: rgba(255,255,255,.3) !important;
  background: rgba(255,255,255,.12) !important;
}
.srd-btn-detalhes {
  color: #ffffff !important;
  border-color: rgba(255,255,255,.3) !important;
  background: rgba(255,255,255,.12) !important;
}
.srd-btn-detalhes:hover {
  background: rgba(255,255,255,.22) !important;
}

/* ── 8. Status badges: verde/laranja ── */
.srd-status-done {
  background: rgba(22,163,74,.15) !important;
  border-color: #16A34A !important;
}
.srd-status-done .srd-status-icon,
.srd-status-done .srd-status-text {
  color: #16A34A !important;
}
.srd-status-pending {
  background: rgba(249,115,22,.15) !important;
  border-color: #F97316 !important;
}
.srd-status-pending .srd-status-icon,
.srd-status-pending .srd-status-text {
  color: #F97316 !important;
}

/* ── 9. Feedback badges ── */
.srd-fb-ok   { color: #27ae60 !important; border-color: #16A34A !important; background: rgba(22,163,74,.10) !important; }
.srd-fb-fail { color: #e74c3c !important; border-color: #e74c3c !important; background: rgba(231,76,60,.10) !important; }
.srd-badge-ok   { color: #27ae60 !important; border-color: #16A34A !important; }
.srd-badge-fail { color: #e74c3c !important; border-color: #e74c3c !important; }

/* ── 10. Atletas sidebar: cabeçalho roxo ── */
.srd-atletas-header { border-bottom-color: #e5e7eb !important; }
.srd-atletas-title  { color: #1a1a2e !important; }
.srd-atletas-icon   { color: #7C3AED !important; }
.srd-btn-atletas    { background: #7C3AED !important; color: #ffffff !important; }
.srd-btn-atletas:hover { background: #6a2fdd !important; }
.srd-atleta-nome    { color: #1a1a2e !important; }

/* ── 11. Dropdown avatar: fundo branco ── */
.srd-avatar-dropdown {
  background: #ffffff !important;
  border-color: #e5e7eb !important;
  box-shadow: 0 8px 32px rgba(31,41,55,.18) !important;
}
.srd-dd-item { color: #1a1a2e !important; }
.srd-dd-item:hover { background: #f0f4ff !important; }
.srd-dd-sair { color: #e74c3c !important; }

/* ── 12. Notif badge ── */
.srd-notif-badge { background: #F97316 !important; color: #ffffff !important; }

/* ── 13. Icon buttons na topbar ── */
.srd-icon-btn {
  background: rgba(255,255,255,.15) !important;
  border-color: rgba(255,255,255,.25) !important;
  color: #ffffff !important;
}
.srd-icon-btn:hover {
  background: rgba(255,255,255,.28) !important;
}

/* ── 14. Páginas internas (sr-wrap): sempre fundo claro ── */
.sr-wrap {
  background: #F0F2F5 !important;
  color: #1a1a2e !important;
}
.sr-section,
.sr-chart-card,
.sr-training-card,
.sr-calc-card,
.sr-section-evolution,
.sr-rank-item,
.sr-fb-card,
.sr-race-card,
.sr-test-hero ~ .sr-section,
.sr-ai-score-card {
  background: #ffffff !important;
  color: #1a1a2e !important;
}
.sr-section h3,
.sr-training-header h4,
.sr-calc-card h3,
.sr-chart-title {
  color: #1a1a2e !important;
}
.sr-training-day,
.sr-training-meta span,
.sr-orient-text,
.sr-training-desc-wrap summary,
.sr-analise-msg,
.sr-ai-section-text,
.sr-fb-text,
.sr-orient-label {
  color: #374151 !important;
}
.sr-empty { color: #6b7280 !important; }
.sr-notice { color: #1a1a2e !important; }

/* ── 15. Overlays / modal ── */
.sr-overlay,
.srd-overlay {
  background: rgba(0,0,0,.55) !important;
}

/* ══════════════════════════════════════════════════════════════════════════
   16. IDENTIDADE ÚNICA — herda o padrão visual do Dashboard (.sr-dash-v2)
   pros componentes genéricos (.sr-card, .sr-section, tabelas, botões)
   usados nas outras páginas do Painel do Atleta. Sem isso, as páginas
   ficavam com "bones" parecidos (raio/sombra já eram quase iguais) mas
   sem o toque de identidade — ícone colorido nos cards, barra de
   progresso, hover — que dá a sensação de app único, não telas soltas.
   Tudo escopado em .sr-dash-v2 pra nunca vazar pra fora do painel do
   atleta (ex.: telas de admin, que usam as mesmas classes .sr-card/
   .sr-section com outro visual).
   ══════════════════════════════════════════════════════════════════════════ */

.sr-dash-v2 .sr-section,
.sr-dash-v2 .sr-card {
  transition: box-shadow .18s ease, transform .18s ease;
}
.sr-dash-v2 .sr-card:hover { box-shadow: var(--d-shadow-md); transform: translateY(-1px); }

/* Badge de ícone colorido no card, no estilo dos KPIs do Dashboard —
   basta envolver o emoji/ícone num <span class="sr-card-icon"> com
   style="--ic:#cor" pra qualquer card genérico ganhar o mesmo toque
   visual do painel principal. */
.sr-dash-v2 .sr-card-icon {
  width: 40px; height: 40px; border-radius: 12px;
  display: flex; align-items: center; justify-content: center;
  font-size: 1.2rem; margin: 0 auto 6px;
  background: color-mix(in srgb, var(--ic, var(--d-primary)) 15%, transparent);
  color: var(--ic, var(--d-primary));
}
.sr-dash-v2 .sr-card-progress {
  width: 100%; height: 6px; border-radius: 999px; background: var(--d-border);
  overflow: hidden; margin-top: 6px;
}
.sr-dash-v2 .sr-card-progress > span {
  display: block; height: 100%; border-radius: 999px;
  background: var(--bar, var(--d-primary));
}

/* Cabeçalhos de seção consistentes com o Dashboard (letras maiúsculas,
   peso forte, cor do texto principal) */
.sr-dash-v2 .sr-section > h3,
.sr-dash-v2 .sr-section > h2 {
  text-transform: uppercase;
  letter-spacing: .02em;
  font-size: .82rem;
  color: var(--d-text);
}

/* Botões — mesmo raio/peso do sistema novo */
.sr-dash-v2 .sr-btn,
.sr-dash-v2 .button,
.sr-dash-v2 button[type="submit"] {
  border-radius: var(--d-radius) !important;
  font-weight: 600;
}
.sr-dash-v2 .sr-btn.sr-btn-primary,
.sr-dash-v2 .button-primary {
  background: var(--d-primary) !important;
  border-color: var(--d-primary) !important;
}

/* Badges/status no mesmo padrão de cor do resto do painel */
.sr-dash-v2 .sr-badge,
.sr-dash-v2 .sr-status {
  border-radius: 999px;
  font-weight: 700;
  font-size: .72rem;
  padding: 3px 10px;
  text-transform: uppercase;
  letter-spacing: .02em;
}

/* ── Tabelas → cards no celular ──────────────────────────────────────────
   Qualquer tabela dentro do painel do atleta marcada com a classe
   .sr-table-responsive vira uma pilha de cards abaixo de 640px — sem
   rolagem horizontal, sem espremer coluna, cada linha widened e legível. */
@media (max-width: 640px) {
  .sr-dash-v2 .sr-table-responsive,
  .sr-dash-v2 .sr-table-responsive thead,
  .sr-dash-v2 .sr-table-responsive tbody,
  .sr-dash-v2 .sr-table-responsive th,
  .sr-dash-v2 .sr-table-responsive td,
  .sr-dash-v2 .sr-table-responsive tr {
    display: block;
    width: 100%;
  }
  .sr-dash-v2 .sr-table-responsive thead { display: none; }
  .sr-dash-v2 .sr-table-responsive tr {
    background: var(--d-card);
    border: 1px solid var(--d-border);
    border-radius: var(--d-radius);
    box-shadow: var(--d-shadow);
    margin-bottom: 12px;
    padding: 12px 14px;
  }
  .sr-dash-v2 .sr-table-responsive td {
    border: none !important;
    padding: 6px 0 !important;
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 10px;
    text-align: right;
    font-size: .88rem;
  }
  .sr-dash-v2 .sr-table-responsive td::before {
    content: attr(data-label);
    font-weight: 700;
    color: var(--d-muted);
    text-align: left;
    text-transform: uppercase;
    font-size: .68rem;
    letter-spacing: .02em;
  }

  /* Formulários — campos e botões em largura total no celular */
  .sr-dash-v2 form label,
  .sr-dash-v2 form input:not([type=checkbox]):not([type=radio]),
  .sr-dash-v2 form select,
  .sr-dash-v2 form textarea {
    width: 100%;
    box-sizing: border-box;
  }
  .sr-dash-v2 form .sr-btn,
  .sr-dash-v2 form button[type="submit"],
  .sr-dash-v2 form .button {
    width: 100%;
    justify-content: center;
    padding: 12px 16px;
    font-size: .95rem;
  }

  .sr-dash-v2 .sr-section { padding: 16px; border-radius: var(--d-radius); }
}

/* ══════════════════════════════════════════════════════════════════════════
   17. LINHA DE KPIs DO DASHBOARD — 5 cards no topo (Treinos Concluídos,
   Volume Semanal, Frequência do Mês, Sequência Atual, Próxima Prova),
   no mesmo estilo do mockup: ícone colorido, número grande, barra de
   progresso quando fizer sentido.
   ══════════════════════════════════════════════════════════════════════════ */
.srd-kpi-row {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 14px;
  margin-bottom: 18px;
}
.srd-kpi-card {
  background: var(--d-card);
  border: 1px solid var(--d-border);
  border-radius: var(--d-radius-lg);
  box-shadow: var(--d-shadow);
  padding: 16px;
  display: flex;
  flex-direction: column;
  gap: 6px;
  transition: box-shadow .18s ease, transform .18s ease;
}
.srd-kpi-card:hover { box-shadow: var(--d-shadow-md); transform: translateY(-1px); }
.srd-kpi-icon {
  width: 40px; height: 40px; border-radius: 10px;
  display: flex; align-items: center; justify-content: center;
  font-size: 1.15rem;
  background: color-mix(in srgb, var(--kc, var(--d-primary)) 15%, transparent);
  color: var(--kc, var(--d-primary));
  margin-bottom: 4px;
}
.srd-kpi-label {
  font-size: .68rem;
  font-weight: 700;
  letter-spacing: .03em;
  text-transform: uppercase;
  color: var(--d-muted);
}
.srd-kpi-val { font-size: 1.5rem; font-weight: 800; color: var(--d-text); line-height: 1.1; }
.srd-kpi-sub { font-size: .74rem; color: var(--d-muted); }
.srd-kpi-bar {
  width: 100%; height: 5px; border-radius: 999px; background: var(--d-border);
  overflow: hidden; margin-top: 2px;
}
.srd-kpi-bar > span { display: block; height: 100%; border-radius: 999px; background: var(--kc, var(--d-primary)); }

@media (max-width: 1100px) { .srd-kpi-row { grid-template-columns: repeat(3, 1fr); } }
@media (max-width: 640px)  { .srd-kpi-row { grid-template-columns: repeat(2, 1fr); gap: 10px; } .srd-kpi-val { font-size: 1.25rem; } }
@media (max-width: 400px)  { .srd-kpi-row { grid-template-columns: 1fr; } }

/* ══════════════════════════════════════════════════════════════════════════
   18. FORMULÁRIO DE NOVO TESTE — a grade de 2 colunas (Distância/Tempo,
   Data/Hora, FC/Local) era um estilo inline (por isso precisa de
   !important aqui pra ganhar prioridade) e não tinha nenhum ajuste pra
   tela estreita — no PWA/celular, isso espremia os campos até ficarem
   ilegíveis/cortados. Em uma coluna só abaixo de 560px.
   ══════════════════════════════════════════════════════════════════════════ */
@media (max-width: 560px) {
  .srd-teste-grid { grid-template-columns: 1fr !important; }
}
