/* ===== RESET & BASE ===== */
*,
*::before,
*::after {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
}

:root {
  --primary: #CCFF00;
  --bg: #000000;
  --bg-card: #171A1A;
  --bg-card-hover: #1F2424;
  --accent: #CCFF00;
  --accent-light: #D9FF4D;
  --accent-glow: rgba(204, 255, 0, 0.3);
  --green: #4CD964;
  --green-glow: rgba(76, 217, 100, 0.3);
  --orange: #CCFF00;
  --red: #FF3B30;
  --text: #F5F5F5;
  --text-secondary: #999999;
  --text-muted: #666666;
  --border: #2a2a2a;
  --radius: 16px;
  --radius-sm: 10px;
  --nav-height: 70px;
  --header-height: 60px;
  --safe-top: env(safe-area-inset-top, 0px);
  --safe-bottom: env(safe-area-inset-bottom, 0px);
}

html {
  font-size: 16px;
}

body {
  font-family: 'Outfit', sans-serif;
  background: var(--bg);
  color: var(--text);
  min-height: 100dvh;
  overflow-x: hidden;
  -webkit-tap-highlight-color: transparent;
}

.hidden {
  display: none !important;
}

/* ===== SPLASH ===== */
.splash-screen {
  position: fixed;
  inset: 0;
  z-index: 1000;
  background: var(--bg);
  display: flex;
  align-items: center;
  justify-content: center;
  animation: splashFade 0.5s ease 2s forwards;
}

@keyframes splashFade {
  to {
    opacity: 0;
    pointer-events: none;
  }
}

.splash-content {
  text-align: center;
}

.splash-logo {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
}

.logo-icon {
  font-size: 3rem;
  animation: bounceIn 0.6s ease;
}

.logo-text {
  font-size: 2.5rem;
  font-weight: 900;
  letter-spacing: 2px;
}

.logo-text span {
  color: var(--accent);
}

.splash-subtitle {
  color: var(--text-secondary);
  margin-top: 8px;
  font-size: 0.95rem;
}

.splash-loader {
  width: 120px;
  height: 3px;
  background: var(--border);
  border-radius: 3px;
  margin: 24px auto 0;
  overflow: hidden;
}

.loader-bar {
  width: 0;
  height: 100%;
  background: linear-gradient(90deg, var(--accent), #D9FF4D);
  border-radius: 3px;
  animation: loadBar 1.8s ease forwards;
}

@keyframes loadBar {
  to {
    width: 100%;
  }
}

@keyframes bounceIn {
  0% {
    transform: scale(0);
  }

  60% {
    transform: scale(1.2);
  }

  100% {
    transform: scale(1);
  }
}

/* ===== HEADER ===== */
.app-header {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  z-index: 100;
  height: var(--header-height);
  padding: 0 16px;
  padding-top: var(--safe-top);
  display: flex;
  align-items: center;
  justify-content: space-between;
  background: rgba(0, 0, 0, 0.9);
  backdrop-filter: blur(20px);
  border-bottom: 1px solid var(--border);
}

.header-left {
  display: flex;
  align-items: center;
  gap: 8px;
}

.header-title {
  font-size: 1.2rem;
  font-weight: 800;
  letter-spacing: 1px;
}

.header-title span {
  color: var(--accent);
}

.btn-back {
  background: none;
  border: none;
  color: var(--text);
  cursor: pointer;
  width: 36px;
  height: 36px;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  transition: background 0.2s;
}

.btn-back:active {
  background: var(--bg-card);
}

.stat-km {
  background: linear-gradient(135deg, var(--accent), #D9FF4D);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  font-weight: 700;
  font-size: 0.95rem;
}

/* ===== PAGES ===== */
.page {
  display: none;
  padding: calc(var(--header-height) + var(--safe-top) + 16px) 16px calc(var(--nav-height) + var(--safe-bottom) + 16px);
  min-height: 100dvh;
  animation: pageIn 0.3s ease;
}

.page.active {
  display: block;
}

@keyframes pageIn {
  from {
    opacity: 0;
    transform: translateY(12px);
  }

  to {
    opacity: 1;
    transform: translateY(0);
  }
}

/* ===== HERO SECTION ===== */
.hero-section {
  margin-bottom: 20px;
}

.hero-badge {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 6px 14px;
  background: rgba(204, 255, 0, 0.12);
  border: 1px solid rgba(204, 255, 0, 0.3);
  border-radius: 20px;
  font-size: 0.7rem;
  font-weight: 700;
  letter-spacing: 2px;
  color: var(--accent-light);
  margin-bottom: 12px;
}

.pulse-dot {
  width: 8px;
  height: 8px;
  background: var(--accent);
  border-radius: 50%;
  animation: pulse 2s infinite;
}

@keyframes pulse {

  0%,
  100% {
    opacity: 1;
    transform: scale(1);
  }

  50% {
    opacity: 0.5;
    transform: scale(0.8);
  }
}

.hero-card {
  background: linear-gradient(135deg, #1a1a1a 0%, #261a0f 100%);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  padding: 20px;
  position: relative;
  overflow: hidden;
  cursor: pointer;
  transition: transform 0.2s;
}

.hero-card:active {
  transform: scale(0.98);
}

.hero-card::before {
  content: '';
  position: absolute;
  top: -50%;
  right: -30%;
  width: 200px;
  height: 200px;
  background: radial-gradient(circle, var(--accent-glow) 0%, transparent 70%);
  pointer-events: none;
}

.hero-card .workout-phase {
  font-size: 0.7rem;
  font-weight: 700;
  letter-spacing: 2px;
  color: var(--accent-light);
  margin-bottom: 4px;
}

.hero-card .workout-title {
  font-size: 1.3rem;
  font-weight: 700;
  margin-bottom: 2px;
}

.hero-card .workout-date {
  color: var(--text-secondary);
  font-size: 0.85rem;
  margin-bottom: 14px;
}

.hero-card .workout-meta {
  display: flex;
  gap: 16px;
  flex-wrap: wrap;
}

.hero-card .meta-item {
  display: flex;
  align-items: center;
  gap: 6px;
  padding: 6px 12px;
  background: rgba(255, 255, 255, 0.05);
  border-radius: 8px;
  font-size: 0.85rem;
}

.meta-item .meta-icon {
  font-size: 1rem;
}

.meta-item .meta-value {
  font-weight: 600;
}

.hero-card .hero-arrow {
  position: absolute;
  right: 16px;
  top: 50%;
  transform: translateY(-50%);
  color: var(--text-muted);
  font-size: 1.5rem;
}

/* ===== COUNTDOWN ===== */
.countdown-section {
  margin-bottom: 20px;
}

.countdown-card {
  background: var(--bg-card);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  padding: 16px;
}

.countdown-header {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 12px;
}

.countdown-icon {
  font-size: 1.1rem;
}

.countdown-label {
  font-size: 0.75rem;
  font-weight: 700;
  letter-spacing: 2px;
  color: var(--text-secondary);
}

.countdown-body {
  display: flex;
  justify-content: space-around;
  align-items: center;
  margin-bottom: 14px;
}

.countdown-item {
  text-align: center;
}

.countdown-value {
  display: block;
  font-size: 1.6rem;
  font-weight: 800;
}

.countdown-unit {
  font-size: 0.7rem;
  color: var(--text-secondary);
  text-transform: uppercase;
  letter-spacing: 1px;
}

.countdown-divider {
  width: 1px;
  height: 36px;
  background: var(--border);
}

.progress-bar-container {
  height: 6px;
  background: var(--border);
  border-radius: 6px;
  overflow: hidden;
}

.progress-bar {
  height: 100%;
  border-radius: 6px;
  transition: width 0.8s ease;
  background: linear-gradient(90deg, var(--accent), #D9FF4D);
}

/* ===== WEEKLY ===== */
.section-title {
  font-size: 1rem;
  font-weight: 700;
  margin-bottom: 12px;
}

.weekly-workouts {
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.workout-row {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 14px;
  background: var(--bg-card);
  border: 1px solid var(--border);
  border-radius: var(--radius-sm);
  cursor: pointer;
  transition: all 0.2s;
  position: relative;
}

.workout-row:active {
  transform: scale(0.98);
  background: var(--bg-card-hover);
}

.workout-row.completed {
  opacity: 0.6;
}

.workout-row.completed::after {
  content: '✓';
  position: absolute;
  right: 14px;
  top: 50%;
  transform: translateY(-50%);
  color: var(--green);
  font-weight: 700;
  font-size: 1.1rem;
}

.workout-row .row-day {
  min-width: 42px;
  height: 42px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  background: rgba(204, 255, 0, 0.12);
  border-radius: 10px;
  font-size: 0.65rem;
  font-weight: 700;
  color: var(--accent-light);
  letter-spacing: 1px;
}

.workout-row .row-day .row-day-num {
  font-size: 1rem;
  font-weight: 800;
  color: var(--text);
  line-height: 1;
}

.workout-row .row-info {
  flex: 1;
  min-width: 0;
}

.workout-row .row-title {
  font-weight: 600;
  font-size: 0.9rem;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.workout-row .row-sub {
  font-size: 0.75rem;
  color: var(--text-secondary);
  margin-top: 2px;
}

.workout-row .row-km {
  font-weight: 700;
  font-size: 0.9rem;
  color: var(--accent-light);
  margin-right: 20px;
}

.workout-row.today {
  border-color: var(--accent);
  box-shadow: 0 0 20px var(--accent-glow);
}

/* ===== PHASES ===== */
.phases-container {
  display: flex;
  flex-direction: column;
  gap: 16px;
}

.phase-card {
  position: relative;
  border-radius: var(--radius);
  overflow: hidden;
  padding: 28px 20px;
  cursor: pointer;
  transition: transform 0.2s;
  border: 1px solid var(--border);
}

.phase-card:active {
  transform: scale(0.97);
}

.phase-card[data-phase="base"] {
  background: linear-gradient(135deg, #1a1a1a 0%, #1a2a1a 100%);
}

.phase-card[data-phase="resistencia"] {
  background: linear-gradient(135deg, #1a1a1a 0%, #2a1a1a 100%);
}

.phase-card[data-phase="pico"] {
  background: linear-gradient(135deg, #1a1a1a 0%, #2a1f0f 100%);
}

.phase-card[data-phase="polimento"] {
  background: linear-gradient(135deg, #1a1a1a 0%, #1a1a2a 100%);
}

.phase-card-content {
  position: relative;
  z-index: 1;
}

.phase-icon {
  font-size: 2.2rem;
  margin-bottom: 8px;
}

.phase-card h2 {
  font-size: 1.4rem;
  font-weight: 800;
  letter-spacing: 2px;
}

.phase-card p {
  font-size: 0.85rem;
  color: var(--text-secondary);
  margin-top: 2px;
}

.phase-progress {
  height: 4px;
  background: var(--border);
  border-radius: 4px;
  margin-top: 14px;
  overflow: hidden;
}

.phase-progress-bar {
  height: 100%;
  border-radius: 4px;
  background: linear-gradient(90deg, var(--accent), #D9FF4D);
  transition: width 0.5s;
}

.phase-count {
  display: block;
  margin-top: 6px;
  font-size: 0.75rem;
  color: var(--text-secondary);
}

/* ===== PHASE DETAIL ===== */
.phase-detail-header {
  margin-bottom: 16px;
}

.phase-detail-header h2 {
  font-size: 1.5rem;
  font-weight: 800;
  letter-spacing: 2px;
}

.phase-detail-header p {
  color: var(--text-secondary);
  font-size: 0.85rem;
}

.workouts-list {
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.week-divider {
  font-size: 0.7rem;
  font-weight: 700;
  letter-spacing: 2px;
  color: var(--text-muted);
  padding: 8px 0 4px;
  border-bottom: 1px solid var(--border);
  margin-top: 8px;
}

/* ===== WORKOUT DETAIL ===== */
.workout-detail {
  padding-bottom: 20px;
}

.wd-header {
  text-align: center;
  padding: 20px 0;
}

.wd-phase {
  font-size: 0.7rem;
  font-weight: 700;
  letter-spacing: 2px;
  color: var(--accent-light);
}

.wd-title {
  font-size: 1.6rem;
  font-weight: 800;
  margin: 6px 0;
}

.wd-date {
  color: var(--text-secondary);
  font-size: 0.95rem;
}

.wd-stats {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px;
  margin: 20px 0;
}

.wd-stat {
  background: var(--bg-card);
  border: 1px solid var(--border);
  border-radius: var(--radius-sm);
  padding: 16px;
  text-align: center;
}

.wd-stat-icon {
  font-size: 1.5rem;
  margin-bottom: 4px;
}

.wd-stat-value {
  font-size: 1.3rem;
  font-weight: 700;
}

.wd-stat-label {
  font-size: 0.7rem;
  color: var(--text-secondary);
  text-transform: uppercase;
  letter-spacing: 1px;
  margin-top: 2px;
}

.wd-description {
  background: var(--bg-card);
  border: 1px solid var(--border);
  border-radius: var(--radius-sm);
  padding: 16px;
  margin-bottom: 12px;
  position: relative;
}

.wd-description h3 {
  font-size: 0.85rem;
  font-weight: 700;
  margin-bottom: 8px;
  color: var(--text-secondary);
}

.wd-description p {
  font-size: 0.95rem;
  line-height: 1.6;
}

.btn-edit-inline {
  position: absolute;
  top: 12px;
  right: 12px;
  background: rgba(204, 255, 0, 0.12);
  border: 1px solid rgba(204, 255, 0, 0.25);
  color: var(--accent-light);
  border-radius: 8px;
  padding: 5px 10px;
  font-family: 'Outfit', sans-serif;
  font-size: 0.7rem;
  font-weight: 600;
  cursor: pointer;
  transition: all 0.2s;
  letter-spacing: 0.5px;
}

.btn-edit-inline:active {
  transform: scale(0.95);
  background: rgba(204, 255, 0, 0.25);
}

.edit-field {
  width: 100%;
  padding: 10px 12px;
  border-radius: 8px;
  border: 1px solid var(--border);
  background: #111;
  color: var(--text);
  font-family: 'Outfit', sans-serif;
  font-size: 0.9rem;
  resize: vertical;
  outline: none;
  transition: border 0.2s;
}

.edit-field:focus {
  border-color: var(--accent);
}

.edit-field-label {
  font-size: 0.75rem;
  color: var(--text-secondary);
  margin-bottom: 6px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 1px;
}

.edit-actions {
  display: flex;
  gap: 8px;
  margin-top: 12px;
}

.edit-actions .btn {
  font-size: 0.85rem;
  padding: 10px;
}

.btn-complete {
  width: 100%;
  padding: 16px;
  border: none;
  border-radius: var(--radius-sm);
  font-family: 'Outfit', sans-serif;
  font-size: 1rem;
  font-weight: 700;
  cursor: pointer;
  transition: all 0.2s;
  letter-spacing: 1px;
}

.btn-complete.not-done {
  background: linear-gradient(135deg, var(--accent), #FF6B2B);
  color: white;
  box-shadow: 0 4px 20px var(--accent-glow);
}

.btn-complete.not-done:active {
  transform: scale(0.97);
}

.btn-complete.done {
  background: rgba(76, 217, 100, 0.15);
  color: var(--green);
  border: 1px solid rgba(76, 217, 100, 0.3);
}

.btn-undo {
  width: 100%;
  padding: 12px;
  margin-top: 8px;
  border: 1px solid var(--border);
  border-radius: var(--radius-sm);
  background: transparent;
  color: var(--text-secondary);
  font-family: 'Outfit', sans-serif;
  font-size: 0.85rem;
  cursor: pointer;
  transition: all 0.2s;
}

.btn-undo:active {
  background: var(--bg-card);
}

/* ===== STATS ===== */
.stats-container {
  padding-bottom: 20px;
}

.stats-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px;
}

.stat-card {
  background: var(--bg-card);
  border: 1px solid var(--border);
  border-radius: var(--radius-sm);
  padding: 16px;
  text-align: center;
}

.stat-card-accent {
  grid-column: 1 / -1;
  background: linear-gradient(135deg, #1a1a1a, #2a1508);
  border-color: rgba(204, 255, 0, 0.3);
}

.stat-card-icon {
  font-size: 1.5rem;
  margin-bottom: 4px;
}

.stat-card-value {
  font-size: 1.5rem;
  font-weight: 800;
}

.stat-card-accent .stat-card-value {
  font-size: 2rem;
  color: var(--accent);
}

.stat-card-label {
  font-size: 0.7rem;
  color: var(--text-secondary);
  text-transform: uppercase;
  letter-spacing: 1px;
}

.stats-phases {
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.stats-phase-item {
  background: var(--bg-card);
  border: 1px solid var(--border);
  border-radius: var(--radius-sm);
  padding: 14px;
}

.stats-phase-item h3 {
  font-size: 0.9rem;
  font-weight: 700;
  margin-bottom: 4px;
}

.stats-phase-item .sp-info {
  display: flex;
  justify-content: space-between;
  font-size: 0.8rem;
  color: var(--text-secondary);
  margin-bottom: 8px;
}

.stats-phase-item .phase-progress {
  margin-top: 0;
}

/* ===== BOTTOM NAV ===== */
.bottom-nav {
  position: fixed;
  bottom: 0;
  left: 0;
  right: 0;
  z-index: 100;
  height: var(--nav-height);
  padding-bottom: var(--safe-bottom);
  display: flex;
  align-items: center;
  justify-content: space-around;
  background: rgba(0, 0, 0, 0.95);
  backdrop-filter: blur(20px);
  border-top: 1px solid var(--border);
}

.nav-item {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 3px;
  background: none;
  border: none;
  color: var(--text-muted);
  cursor: pointer;
  padding: 8px 20px;
  border-radius: 12px;
  transition: all 0.2s;
  font-family: 'Outfit', sans-serif;
  font-size: 0.65rem;
  font-weight: 600;
  letter-spacing: 0.5px;
}

.nav-item.active {
  color: var(--accent);
}

.nav-item.active svg {
  stroke: var(--accent);
}

.nav-item:active {
  transform: scale(0.9);
}

/* ===== MODAL ===== */
.modal-overlay {
  position: fixed;
  inset: 0;
  z-index: 200;
  background: rgba(0, 0, 0, 0.7);
  backdrop-filter: blur(8px);
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 20px;
  animation: fadeIn 0.2s ease;
}

@keyframes fadeIn {
  from {
    opacity: 0;
  }
}

.modal-card {
  background: var(--bg-card);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  padding: 28px;
  text-align: center;
  max-width: 320px;
  width: 100%;
  animation: modalIn 0.3s ease;
}

@keyframes modalIn {
  from {
    transform: scale(0.9);
    opacity: 0;
  }
}

.modal-icon {
  font-size: 3rem;
  margin-bottom: 8px;
}

.modal-card h3 {
  font-size: 1.2rem;
  font-weight: 700;
  margin-bottom: 6px;
}

.modal-card p {
  color: var(--text-secondary);
  font-size: 0.9rem;
  margin-bottom: 20px;
}

.modal-actions {
  display: flex;
  gap: 10px;
}

.btn {
  flex: 1;
  padding: 12px;
  border: none;
  border-radius: var(--radius-sm);
  font-family: 'Outfit', sans-serif;
  font-weight: 600;
  cursor: pointer;
  transition: all 0.2s;
}

.btn-secondary {
  background: var(--border);
  color: var(--text);
}

.btn-primary {
  background: linear-gradient(135deg, var(--accent), #FF6B2B);
  color: white;
}

.btn:active {
  transform: scale(0.95);
}

/* ===== AI COACH PAGE ===== */
.ai-container {
  padding-bottom: 20px;
}

/* Hero */
.ai-hero {
  text-align: center;
  padding: 10px 0 20px;
}

.ai-hero-icon {
  font-size: 3.5rem;
  margin-bottom: 4px;
  animation: aiFloat 3s ease-in-out infinite;
}

@keyframes aiFloat {

  0%,
  100% {
    transform: translateY(0);
  }

  50% {
    transform: translateY(-8px);
  }
}

.ai-hero-title {
  font-size: 1.8rem;
  font-weight: 900;
  letter-spacing: 2px;
  background: linear-gradient(135deg, var(--accent), #D9FF4D, #FFB347);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
}

.ai-hero-sub {
  color: var(--text-secondary);
  font-size: 0.85rem;
  margin-top: 4px;
}



/* Form Inputs */
.ai-input {
  width: 100%;
  padding: 12px 14px;
  border-radius: var(--radius-sm);
  border: 1px solid var(--border);
  background: #111;
  color: var(--text);
  font-family: 'Outfit', sans-serif;
  font-size: 0.9rem;
  outline: none;
  transition: border 0.2s, box-shadow 0.2s;
  -webkit-appearance: none;
  appearance: none;
}

.ai-input:focus {
  border-color: var(--accent);
  box-shadow: 0 0 12px var(--accent-glow);
}

.ai-input::placeholder {
  color: var(--text-muted);
}

select.ai-input {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='%23999' viewBox='0 0 16 16'%3E%3Cpath d='M8 11L3 6h10l-5 5z'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 12px center;
  padding-right: 32px;
  cursor: pointer;
}

.ai-textarea {
  resize: vertical;
  min-height: 80px;
  line-height: 1.5;
}

.ai-label {
  display: block;
  font-size: 0.75rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 1px;
  color: var(--text-secondary);
  margin-bottom: 6px;
}

.ai-btn-full {
  width: 100%;
  margin-top: 12px;
  padding: 14px;
  font-size: 0.95rem;
}

/* Form Layout */
.ai-form-card {
  background: var(--bg-card);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  padding: 20px;
  margin-bottom: 14px;
}

.ai-form-title {
  font-size: 1rem;
  font-weight: 700;
  margin-bottom: 16px;
  padding-bottom: 10px;
  border-bottom: 1px solid var(--border);
}

.ai-optional {
  font-weight: 400;
  color: var(--text-muted);
  font-size: 0.8rem;
}

.ai-form-hint {
  font-size: 0.8rem;
  color: var(--text-muted);
  margin-bottom: 14px;
  margin-top: -8px;
}

.ai-form-group {
  margin-bottom: 14px;
  flex: 1;
  min-width: 0;
}

.ai-form-row {
  display: flex;
  gap: 10px;
}

.ai-form-row .ai-form-group {
  margin-bottom: 14px;
}

/* Radio Group */
.ai-radio-group {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
}

.ai-radio-option {
  flex: 1;
  min-width: 0;
}

.ai-radio-option input {
  display: none;
}

.ai-radio-btn {
  display: block;
  text-align: center;
  padding: 10px 8px;
  background: #111;
  border: 1px solid var(--border);
  border-radius: var(--radius-sm);
  font-size: 0.8rem;
  font-weight: 600;
  cursor: pointer;
  transition: all 0.2s;
  white-space: nowrap;
}

.ai-radio-option input:checked+.ai-radio-btn {
  background: rgba(204, 255, 0, 0.15);
  border-color: var(--accent);
  color: var(--accent-light);
  box-shadow: 0 0 12px var(--accent-glow);
}

.ai-radio-btn:active {
  transform: scale(0.96);
}

/* Weeks Info */
.ai-weeks-info {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 10px 14px;
  background: rgba(204, 255, 0, 0.08);
  border: 1px solid rgba(204, 255, 0, 0.2);
  border-radius: var(--radius-sm);
  font-size: 0.85rem;
  color: var(--accent-light);
  font-weight: 600;
  margin-top: 2px;
}

.ai-weeks-icon {
  font-size: 1rem;
}

/* Generate Button */
.btn-generate {
  width: 100%;
  padding: 18px;
  border: none;
  border-radius: var(--radius);
  background: linear-gradient(135deg, var(--accent) 0%, #FF6B2B 50%, #D9FF4D 100%);
  color: white;
  font-family: 'Outfit', sans-serif;
  font-size: 1.1rem;
  font-weight: 700;
  cursor: pointer;
  transition: all 0.3s;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  letter-spacing: 0.5px;
  position: relative;
  overflow: hidden;
  box-shadow: 0 4px 24px var(--accent-glow);
  margin-bottom: 16px;
}

.btn-generate::before {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(135deg, transparent 0%, rgba(255, 255, 255, 0.1) 50%, transparent 100%);
  transform: translateX(-100%);
  transition: transform 0.6s;
}

.btn-generate:hover::before {
  transform: translateX(100%);
}

.btn-generate:active {
  transform: scale(0.97);
}

.btn-generate-icon {
  font-size: 1.3rem;
}

.btn-generate.adopt {
  background: linear-gradient(135deg, #2d8a4e 0%, #4CD964 100%);
  box-shadow: 0 4px 24px var(--green-glow);
}

/* Loading */
.ai-loading {
  text-align: center;
  padding: 40px 20px;
  margin-bottom: 16px;
}

.ai-loading-brain {
  font-size: 4rem;
  animation: brainPulse 1.5s ease-in-out infinite;
}

@keyframes brainPulse {

  0%,
  100% {
    transform: scale(1);
    filter: brightness(1);
  }

  50% {
    transform: scale(1.15);
    filter: brightness(1.3);
  }
}

.ai-loading-text {
  font-size: 1.1rem;
  font-weight: 700;
  margin-top: 12px;
}

.ai-loading-sub {
  font-size: 0.8rem;
  color: var(--text-muted);
  margin-top: 4px;
}

.ai-loading-bar {
  width: 200px;
  height: 4px;
  background: var(--border);
  border-radius: 4px;
  margin: 20px auto 0;
  overflow: hidden;
}

.ai-loading-bar-inner {
  width: 40%;
  height: 100%;
  border-radius: 4px;
  background: linear-gradient(90deg, var(--accent), #D9FF4D);
  animation: loadingSlide 1.5s ease-in-out infinite;
}

@keyframes loadingSlide {
  0% {
    transform: translateX(-100%);
  }

  100% {
    transform: translateX(350%);
  }
}

/* Error */
.ai-error {
  color: var(--red);
  font-size: 0.8rem;
  margin-top: 8px;
}

.ai-error-box {
  background: rgba(255, 59, 48, 0.1);
  border: 1px solid rgba(255, 59, 48, 0.3);
  border-radius: var(--radius-sm);
  padding: 20px;
  text-align: center;
  margin-bottom: 16px;
}

.ai-error-icon {
  font-size: 2rem;
}

.ai-error-box p {
  color: var(--red);
  font-size: 0.9rem;
  margin: 8px 0 14px;
  line-height: 1.5;
}

.ai-error-box .btn {
  width: 100%;
}

/* Results */
.ai-result {
  margin-bottom: 16px;
}

.ai-result-header {
  text-align: center;
  padding: 16px 0;
}

.ai-result-header h3 {
  font-size: 1.3rem;
  font-weight: 800;
  background: linear-gradient(135deg, var(--accent), #D9FF4D);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
}

.ai-result-header p {
  color: var(--text-secondary);
  font-size: 0.85rem;
  margin-top: 4px;
}

.ai-result-weeks {
  display: flex;
  flex-direction: column;
  gap: 12px;
  margin-bottom: 20px;
}



/* Plan Review / Validation Details */
.plan-review-card {
  background: linear-gradient(135deg, rgba(204, 255, 0, 0.10), rgba(255, 255, 255, 0.035));
  border: 1px solid rgba(204, 255, 0, 0.22);
  border-radius: var(--radius);
  padding: 16px;
  margin-bottom: 4px;
  box-shadow: var(--shadow-sm);
}

.plan-review-header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 14px;
}

.plan-review-eyebrow {
  display: block;
  color: var(--text-muted);
  font-size: 0.72rem;
  font-weight: 800;
  letter-spacing: 1px;
  text-transform: uppercase;
  margin-bottom: 4px;
}

.plan-review-header h4 {
  font-size: 1rem;
  font-weight: 800;
  color: var(--text-primary);
}

.plan-review-pill {
  flex-shrink: 0;
  border-radius: 999px;
  padding: 6px 10px;
  font-size: 0.72rem;
  font-weight: 800;
  background: rgba(255, 193, 7, 0.12);
  border: 1px solid rgba(255, 193, 7, 0.25);
  color: #FFD36A;
}

.plan-review-pill.ok {
  background: rgba(76, 217, 100, 0.12);
  border-color: rgba(76, 217, 100, 0.25);
  color: #4CD964;
}

.plan-review-pill.error {
  background: rgba(255, 59, 48, 0.12);
  border-color: rgba(255, 59, 48, 0.25);
  color: var(--red);
}

.plan-review-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
  margin-bottom: 12px;
}

.plan-review-metric,
.plan-review-tags div {
  background: rgba(255, 255, 255, 0.045);
  border: 1px solid rgba(255, 255, 255, 0.06);
  border-radius: var(--radius-sm);
  padding: 10px;
}

.plan-review-metric span,
.plan-review-tags span {
  display: block;
  color: var(--text-muted);
  font-size: 0.72rem;
  font-weight: 700;
  margin-bottom: 4px;
}

.plan-review-metric strong,
.plan-review-tags strong {
  display: block;
  color: var(--text-primary);
  font-size: 0.9rem;
  line-height: 1.35;
}

.plan-review-tags {
  display: grid;
  grid-template-columns: 1fr;
  gap: 10px;
  margin-bottom: 12px;
}

.plan-review-details {
  border-top: 1px solid rgba(255, 255, 255, 0.08);
  padding-top: 12px;
}

.plan-review-details summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  cursor: pointer;
  list-style: none;
  color: var(--text-primary);
  font-weight: 800;
  font-size: 0.86rem;
}

.plan-review-details summary::-webkit-details-marker {
  display: none;
}

.plan-review-details summary small {
  color: var(--text-muted);
  font-size: 0.72rem;
  font-weight: 700;
}

.plan-review-issues {
  display: flex;
  flex-direction: column;
  gap: 8px;
  margin-top: 12px;
}

.plan-review-issue {
  border-radius: var(--radius-sm);
  padding: 10px;
  background: rgba(255, 193, 7, 0.10);
  border: 1px solid rgba(255, 193, 7, 0.22);
}

.plan-review-issue.fixed {
  background: rgba(76, 217, 100, 0.08);
  border-color: rgba(76, 217, 100, 0.18);
}

.plan-review-issue-top {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  margin-bottom: 4px;
}

.plan-review-issue-top strong {
  color: var(--accent-light);
  font-size: 0.8rem;
}

.plan-review-issue-top span {
  color: var(--text-secondary);
  font-size: 0.75rem;
  font-weight: 800;
  text-align: right;
}

.plan-review-issue p,
.plan-review-ok {
  color: var(--text-muted);
  font-size: 0.78rem;
  line-height: 1.45;
}

.plan-review-ok {
  margin-top: 10px;
}

@media (min-width: 640px) {
  .plan-review-grid {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }

  .plan-review-tags {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

/* Week Card in Results */
.ai-week-card {
  background: var(--bg-card);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  overflow: hidden;
}

.ai-week-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 12px 16px;
  cursor: pointer;
  transition: background 0.2s;
}

.ai-week-header:active {
  background: var(--bg-card-hover);
}

.ai-week-header-left {
  display: flex;
  align-items: center;
  gap: 10px;
}

.ai-week-badge {
  padding: 4px 10px;
  border-radius: 6px;
  font-size: 0.7rem;
  font-weight: 700;
  letter-spacing: 1px;
}

.ai-week-badge.phase-Base {
  background: rgba(76, 217, 100, 0.15);
  color: #4CD964;
}

.ai-week-badge.phase-Resistência {
  background: rgba(204, 255, 0, 0.15);
  color: var(--accent-light);
}

.ai-week-badge.phase-Pico {
  background: rgba(255, 140, 66, 0.15);
  color: #D9FF4D;
}

.ai-week-badge.phase-Polimento {
  background: rgba(90, 130, 200, 0.15);
  color: #7aaaf0;
}

.ai-week-title {
  font-weight: 700;
  font-size: 0.95rem;
}

.ai-week-off {
  font-size: 0.7rem;
  color: var(--text-muted);
  font-weight: 600;
}

.ai-week-km {
  font-weight: 700;
  color: var(--accent-light);
  font-size: 0.9rem;
}

.ai-week-chevron {
  color: var(--text-muted);
  transition: transform 0.3s;
  font-size: 1.2rem;
}

.ai-week-card.open .ai-week-chevron {
  transform: rotate(90deg);
}

.ai-week-body {
  max-height: 0;
  overflow: hidden;
  transition: max-height 0.4s ease;
}

.ai-week-card.open .ai-week-body {
  max-height: 800px;
}

.ai-week-workouts {
  padding: 0 16px 14px;
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.ai-workout-item {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 10px 12px;
  background: rgba(255, 255, 255, 0.03);
  border-radius: var(--radius-sm);
  border: 1px solid rgba(255, 255, 255, 0.04);
}

.ai-workout-day {
  min-width: 60px;
  font-size: 0.7rem;
  font-weight: 700;
  color: var(--accent-light);
  text-transform: uppercase;
  letter-spacing: 0.5px;
}

.ai-workout-info {
  flex: 1;
  min-width: 0;
}

.ai-workout-title {
  font-weight: 600;
  font-size: 0.85rem;
}

.ai-workout-desc {
  font-size: 0.75rem;
  color: var(--text-muted);
  margin-top: 2px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.ai-workout-km {
  font-weight: 700;
  font-size: 0.85rem;
  color: var(--text-secondary);
}

/* Result Actions */
.ai-result-actions {
  display: flex;
  flex-direction: column;
  gap: 10px;
}

/* Adopted Banner */
.ai-adopted-banner {
  display: flex;
  align-items: center;
  gap: 12px;
  background: rgba(76, 217, 100, 0.1);
  border: 1px solid rgba(76, 217, 100, 0.3);
  border-radius: var(--radius);
  padding: 14px 16px;
  margin-bottom: 16px;
}

.adopted-icon {
  font-size: 1.5rem;
}

.adopted-info {
  flex: 1;
}

.adopted-info strong {
  display: block;
  font-size: 0.9rem;
  color: var(--green);
}

.adopted-info span {
  font-size: 0.75rem;
  color: var(--text-secondary);
}

.btn-adopted-remove {
  background: rgba(255, 59, 48, 0.15);
  border: 1px solid rgba(255, 59, 48, 0.3);
  color: var(--red);
  border-radius: 8px;
  padding: 6px 12px;
  font-family: 'Outfit', sans-serif;
  font-size: 0.75rem;
  font-weight: 600;
  cursor: pointer;
  transition: all 0.2s;
}

.btn-adopted-remove:active {
  transform: scale(0.95);
}

/* Settings */
.ai-settings {
  text-align: center;
  padding: 20px 0;
}

.ai-settings-btn {
  background: none;
  border: 1px solid var(--border);
  color: var(--text-muted);
  padding: 10px 20px;
  border-radius: var(--radius-sm);
  font-family: 'Outfit', sans-serif;
  font-size: 0.8rem;
  cursor: pointer;
  transition: all 0.2s;
}

.ai-settings-btn:active {
  background: var(--bg-card);
  transform: scale(0.96);
}
/* Login Screen */
.login-screen {
  position: fixed;
  top: 0;
  left: 0;
  width: 100vw;
  height: 100vh;
  background-color: var(--bg-dark);
  z-index: 1000;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  padding: 20px;
}

.login-screen.hidden {
  display: none !important;
}

.login-container {
  width: 100%;
  max-width: 400px;
  background: var(--bg-card);
  padding: 32px 24px;
  border-radius: var(--radius-lg);
  box-shadow: 0 10px 30px rgba(0,0,0,0.5);
  border: 1px solid rgba(255,255,255,0.05);
  text-align: center;
}

.login-logo {
  margin-bottom: 8px;
}

.login-logo .logo-icon {
  font-size: 3rem;
  margin-bottom: 8px;
}

.login-logo .logo-text {
  font-size: 1.8rem;
  font-weight: 900;
  letter-spacing: -0.5px;
}

.login-logo .logo-text span {
  color: var(--primary);
}

.login-subtitle {
  color: var(--text-secondary);
  font-size: 0.9rem;
  margin-bottom: 32px;
}

.login-form {
  text-align: left;
}

.login-form .form-group {
  margin-bottom: 20px;
}

.login-form label {
  display: block;
  font-size: 0.85rem;
  color: var(--text-secondary);
  margin-bottom: 8px;
  font-weight: 500;
}

.login-input {
  width: 100%;
  padding: 14px 16px;
  background: rgba(255, 255, 255, 0.05);
  border: 1px solid rgba(255, 255, 255, 0.1);
  border-radius: var(--radius);
  color: var(--text-light);
  font-family: inherit;
  font-size: 1rem;
  transition: all 0.3s ease;
}

.login-input:focus {
  outline: none;
  border-color: var(--primary);
  background: rgba(255, 255, 255, 0.08);
}

.password-wrapper {
  position: relative;
  display: flex;
  align-items: center;
}

.btn-toggle-password {
  position: absolute;
  right: 12px;
  background: none;
  border: none;
  color: var(--text-secondary);
  cursor: pointer;
  padding: 8px;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: color 0.2s;
}

.btn-toggle-password:hover {
  color: var(--text);
}

.btn-toggle-password svg {
  width: 20px;
  height: 20px;
}

.login-btn {
  width: 100%;
  padding: 16px;
  font-size: 1.1rem;
  margin-top: 10px;
}

.login-error {
  color: #ff4d4d;
  font-size: 0.85rem;
  margin-bottom: 15px;
  text-align: center;
}

/* Nutrition Section in Workout Detail */
.wd-nutrition {
  background-color: var(--bg-card);
  border: 1px solid rgba(255, 255, 255, 0.05);
  border-radius: var(--radius-lg);
  padding: 20px;
  margin-bottom: 24px;
}

.wd-nutrition h3 {
  font-size: 1.1rem;
  font-weight: 700;
  margin-bottom: 16px;
  color: var(--text-light);
  display: flex;
  align-items: center;
  gap: 8px;
}

.nutrition-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 16px;
}

.nutrition-item {
  display: flex;
  align-items: flex-start;
  background: rgba(255, 255, 255, 0.02);
  padding: 12px;
  border-radius: var(--radius);
  border-left: 3px solid var(--primary);
}

.nutrition-icon {
  font-size: 1.5rem;
  margin-right: 12px;
  margin-top: 2px;
  opacity: 0.9;
}

.nutrition-content h4 {
  font-size: 0.85rem;
  color: var(--primary);
  margin-bottom: 4px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.5px;
}

.nutrition-content p {
  font-size: 0.95rem;
  color: var(--text-secondary);
  line-height: 1.4;
}

/* ===== RESPONSIVIDADE PARA CELULARES MENORES ===== */
@media (max-width: 400px) {
  /* Header */
  .header-title {
    font-size: 1.1rem;
  }
  
  /* Login */
  .login-container {
    padding: 24px 16px;
  }
  
  .login-logo .logo-text {
    font-size: 1.6rem;
  }
  
  /* Hero Section */
  .hero-card {
    padding: 16px;
  }
  
  .hero-card .workout-title {
    font-size: 1.15rem;
  }
  
  .hero-card .meta-item {
    font-size: 0.8rem;
    padding: 4px 8px;
  }
  
  /* Countdown */
  .countdown-value {
    font-size: 1.3rem;
  }
  
  .countdown-unit {
    font-size: 0.6rem;
  }
  
  /* Stats & Workout Detail */
  .stats-grid,
  .wd-stats {
    grid-template-columns: 1fr;
    gap: 8px;
  }
  
  .stat-card,
  .wd-stat {
    padding: 12px;
  }
  
  .stat-card-value,
  .wd-stat-value {
    font-size: 1.2rem;
  }
  
  /* AI Coach Form */
  .ai-form-row {
    flex-direction: column;
    gap: 0;
  }
  
  .ai-radio-group {
    flex-direction: column;
  }
  
  .ai-radio-option {
    width: 100%;
  }
  
  .ai-weeks-info {
    font-size: 0.85rem;
  }
  
  /* AI Result */
  .ai-week-header-left {
    flex-wrap: wrap;
    gap: 4px;
  }
  
  .ai-week-title {
    font-size: 0.85rem;
  }
  
  .ai-workout-day {
    min-width: 36px;
    height: 36px;
    font-size: 0.8rem;
  }
  
  .ai-workout-title {
    font-size: 0.85rem;
  }
  
  /* Phases */
  .phase-card {
    padding: 20px 16px;
  }
  
  .phase-card h2 {
    font-size: 1.2rem;
  }
  
  /* App Header Stats */
  .stat-km {
    font-size: 0.85rem;
  }
}

/* Telas ultra estreitas (ex: Galaxy Fold fechado) */
@media (max-width: 320px) {
  .logo-text {
    font-size: 1.8rem;
  }
  
  .bottom-nav span {
    font-size: 0.6rem;
  }
  
  .nav-item {
    padding: 8px 4px;
  }
  
  .countdown-body {
    gap: 4px;
  }
  
  .countdown-divider {
    display: none;
  }
}

/* ===== Adaptive Training Engine ===== */
.row-status-chip {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  margin-top: 6px;
  padding: 3px 8px;
  border-radius: 999px;
  font-size: 0.68rem;
  font-weight: 700;
  width: fit-content;
  background: rgba(255, 255, 255, 0.08);
  color: rgba(255, 255, 255, 0.78);
}

.row-status-chip.completed {
  background: rgba(0, 255, 127, 0.14);
  color: #00ff7f;
}

.row-status-chip.partial {
  background: rgba(255, 215, 0, 0.15);
  color: #ffd700;
}

.row-status-chip.skipped {
  background: rgba(255, 107, 107, 0.15);
  color: #ff8b8b;
}

.workout-row.status-partial {
  border-color: rgba(255, 215, 0, 0.24);
}

.workout-row.status-skipped {
  opacity: 0.72;
  border-color: rgba(255, 107, 107, 0.22);
}

.workout-action-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 10px;
  margin-top: 18px;
}

.btn-status {
  width: 100%;
  border: none;
  border-radius: 16px;
  padding: 14px 16px;
  font-family: inherit;
  font-size: 0.95rem;
  font-weight: 800;
  cursor: pointer;
  color: #fff;
  background: rgba(255, 255, 255, 0.1);
  transition: transform 0.2s ease, background 0.2s ease;
}

.btn-status:active,
.btn-checkin:active {
  transform: scale(0.98);
}

.btn-status.partial {
  background: rgba(255, 215, 0, 0.14);
  border: 1px solid rgba(255, 215, 0, 0.35);
}

.btn-status.skipped {
  background: rgba(255, 107, 107, 0.14);
  border: 1px solid rgba(255, 107, 107, 0.35);
}

.workout-status-summary {
  margin-top: 18px;
  padding: 16px;
  border-radius: 18px;
  background: rgba(255, 255, 255, 0.07);
  border: 1px solid rgba(255, 255, 255, 0.12);
  display: grid;
  gap: 6px;
}

.workout-status-summary.completed {
  border-color: rgba(0, 255, 127, 0.25);
}

.workout-status-summary.partial {
  border-color: rgba(255, 215, 0, 0.28);
}

.workout-status-summary.skipped {
  border-color: rgba(255, 107, 107, 0.26);
}

.workout-status-summary strong {
  font-size: 1rem;
}

.workout-status-summary span,
.workout-status-summary p {
  margin: 0;
  color: rgba(255, 255, 255, 0.78);
  font-size: 0.9rem;
}

.feedback-form {
  display: grid;
  gap: 10px;
  text-align: left;
}

.feedback-form p {
  text-align: center;
  margin-bottom: 6px;
}

.feedback-form label {
  font-size: 0.82rem;
  font-weight: 800;
  color: rgba(255, 255, 255, 0.86);
}

.feedback-form label span {
  font-weight: 500;
  opacity: 0.7;
}

.feedback-form input[type="range"] {
  width: 100%;
  accent-color: #CCFF00;
}

.range-value {
  text-align: center;
  font-size: 0.86rem;
  color: rgba(255, 255, 255, 0.78);
}

.weekly-checkin-card {
  margin: 0 16px 24px;
  padding: 18px;
  border-radius: 22px;
  background: linear-gradient(135deg, rgba(204, 255, 0, 0.16), rgba(255, 255, 255, 0.06));
  border: 1px solid rgba(204, 255, 0, 0.28);
  box-shadow: 0 12px 34px rgba(0, 0, 0, 0.24);
}

.checkin-header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 14px;
}

.checkin-eyebrow {
  display: block;
  color: #CCFF00;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  font-weight: 900;
  font-size: 0.68rem;
  margin-bottom: 4px;
}

.checkin-header h3 {
  margin: 0;
  font-size: 1.15rem;
}

.checkin-pill {
  padding: 6px 10px;
  border-radius: 999px;
  font-size: 0.72rem;
  font-weight: 900;
  white-space: nowrap;
  background: rgba(255, 255, 255, 0.1);
}

.checkin-pill.done {
  color: #00ff7f;
  background: rgba(0, 255, 127, 0.12);
}

.checkin-pill.ready {
  color: #ffd700;
  background: rgba(255, 215, 0, 0.13);
}

.checkin-pill.locked {
  color: rgba(255, 255, 255, 0.62);
}

.checkin-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 8px;
  margin-bottom: 14px;
}

.checkin-grid div {
  padding: 12px;
  border-radius: 16px;
  background: rgba(0, 0, 0, 0.18);
}

.checkin-grid span {
  display: block;
  font-size: 0.7rem;
  color: rgba(255, 255, 255, 0.62);
  margin-bottom: 3px;
}

.checkin-grid strong {
  font-size: 0.9rem;
}

.checkin-hint {
  margin: 0 0 12px;
  color: rgba(255, 255, 255, 0.76);
  font-size: 0.88rem;
}

.btn-checkin {
  width: 100%;
  border: none;
  border-radius: 16px;
  padding: 14px 16px;
  background: linear-gradient(135deg, #CCFF00, #CCFF00);
  color: #fff;
  font-family: inherit;
  font-weight: 900;
  cursor: pointer;
}

.btn-checkin:disabled {
  opacity: 0.45;
  cursor: not-allowed;
}

.checkin-result {
  padding: 12px;
  border-radius: 16px;
  background: rgba(0, 0, 0, 0.18);
  border: 1px solid rgba(255, 255, 255, 0.09);
}

.checkin-result strong {
  display: block;
  margin-bottom: 4px;
}

.checkin-result p {
  margin: 0;
  color: rgba(255, 255, 255, 0.76);
  font-size: 0.88rem;
}

.checkin-source {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  margin-top: 10px;
  padding: 6px 10px;
  border-radius: 999px;
  font-size: 0.74rem;
  font-weight: 900;
  letter-spacing: 0.03em;
  text-transform: uppercase;
}

.checkin-source.ai {
  color: #fed7aa;
  background: rgba(204, 255, 0, 0.14);
  border: 1px solid rgba(204, 255, 0, 0.28);
}

.checkin-source.local {
  color: rgba(255, 255, 255, 0.76);
  background: rgba(255, 255, 255, 0.08);
  border: 1px solid rgba(255, 255, 255, 0.12);
}

@media (min-width: 520px) {
  .workout-action-grid {
    grid-template-columns: repeat(3, 1fr);
  }
}

@media (max-width: 380px) {
  .checkin-grid {
    grid-template-columns: 1fr;
  }
}


/* ===== EVOLUTION HISTORY ===== */
.evolution-history {
  display: flex;
  flex-direction: column;
  gap: 14px;
}

.evolution-summary-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
}

.evolution-summary-card {
  padding: 14px;
  border-radius: 16px;
  background: rgba(255, 255, 255, 0.055);
  border: 1px solid rgba(255, 255, 255, 0.08);
}

.evolution-summary-card span {
  display: block;
  color: var(--text-secondary);
  font-size: 0.72rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  margin-bottom: 6px;
}

.evolution-summary-card strong {
  font-size: 1.2rem;
  color: var(--text);
}

.evolution-timeline {
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.evolution-row {
  display: grid;
  grid-template-columns: 68px 1fr auto;
  gap: 12px;
  align-items: center;
  padding: 14px;
  border-radius: 18px;
  background: var(--bg-card);
  border: 1px solid var(--border);
}

.evolution-row.recovery,
.evolution-row.reduce {
  border-color: rgba(255, 193, 7, 0.28);
  background: linear-gradient(135deg, rgba(255, 193, 7, 0.08), rgba(255, 255, 255, 0.04));
}

.evolution-row.slight_increase {
  border-color: rgba(76, 217, 100, 0.25);
  background: linear-gradient(135deg, rgba(76, 217, 100, 0.08), rgba(255, 255, 255, 0.04));
}

.evolution-week strong,
.evolution-week span {
  display: block;
}

.evolution-week strong {
  color: var(--accent-light);
  font-size: 1rem;
}

.evolution-week span {
  color: var(--text-secondary);
  font-size: 0.72rem;
  margin-top: 2px;
}

.evolution-main {
  min-width: 0;
}

.evolution-row-top {
  display: flex;
  justify-content: space-between;
  gap: 10px;
  color: var(--text);
  font-size: 0.86rem;
  font-weight: 800;
  margin-bottom: 7px;
}

.evolution-progress {
  height: 7px;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.08);
  overflow: hidden;
  margin-bottom: 7px;
}

.evolution-progress div {
  height: 100%;
  border-radius: inherit;
  background: linear-gradient(90deg, var(--accent), var(--accent-light));
}

.evolution-main p {
  margin: 0;
  color: var(--text-secondary);
  font-size: 0.78rem;
  line-height: 1.35;
  overflow-wrap: anywhere;
}

.evolution-badge {
  padding: 6px 9px;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.08);
  color: var(--text-secondary);
  font-size: 0.7rem;
  font-weight: 900;
  white-space: nowrap;
}

.evolution-empty {
  padding: 18px;
  border-radius: 18px;
  background: var(--bg-card);
  border: 1px dashed var(--border);
  color: var(--text-secondary);
}

.evolution-empty strong {
  display: block;
  color: var(--text);
  margin-bottom: 6px;
}

.evolution-empty p {
  margin: 0;
  line-height: 1.45;
}

.evolution-empty.compact {
  padding: 14px;
}

/* ===== RESPONSIVE WEB LAYOUT ===== */
@media (min-width: 768px) {
  .page {
    max-width: 1120px;
    margin-left: auto;
    margin-right: auto;
    padding-left: 24px;
    padding-right: 24px;
  }

  .app-header {
    padding-left: max(24px, calc((100vw - 1120px) / 2 + 24px));
    padding-right: max(24px, calc((100vw - 1120px) / 2 + 24px));
  }

  .bottom-nav {
    left: 50%;
    right: auto;
    transform: translateX(-50%);
    width: min(680px, calc(100vw - 48px));
    border-radius: 24px 24px 0 0;
    box-shadow: 0 -10px 34px rgba(0, 0, 0, 0.35);
  }

  .stats-grid {
    grid-template-columns: repeat(5, minmax(0, 1fr));
  }

  .stat-card-accent {
    grid-column: span 2;
  }

  .ai-container,
  .stats-container,
  .phases-container,
  .workout-detail,
  .phase-detail-header,
  .workouts-list {
    max-width: 980px;
    margin-left: auto;
    margin-right: auto;
  }

  .hero-section,
  .countdown-section,
  .weekly-section,
  .weekly-checkin-card {
    max-width: 860px;
    margin-left: auto;
    margin-right: auto;
  }

  .weekly-checkin-card {
    margin-top: 0;
  }

  .ai-form-row {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 12px;
  }

  .ai-radio-group {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }

  .evolution-summary-grid {
    grid-template-columns: repeat(5, minmax(0, 1fr));
  }
}

@media (min-width: 1180px) {
  body {
    background:
      radial-gradient(circle at top left, rgba(204, 255, 0, 0.12), transparent 32rem),
      var(--bg);
  }

  .page {
    padding-top: calc(var(--header-height) + var(--safe-top) + 28px);
  }
}

@media (max-width: 520px) {
  .evolution-row {
    grid-template-columns: 1fr;
    align-items: stretch;
  }

  .evolution-badge {
    width: max-content;
  }
}

/* ===== STYLE FIX: Adaptive Card spacing + Stats desktop layout ===== */
.weekly-section {
  margin-bottom: 28px;
}

.weekly-workouts {
  gap: 12px;
}

.weekly-checkin-card {
  margin-top: 28px;
}

/* Deixa o bloco do check-in respirar melhor em telas grandes */
@media (min-width: 768px) {
  .weekly-section {
    margin-bottom: 34px;
  }

  .weekly-checkin-card {
    margin-top: 34px !important;
  }
}

/* Estatísticas: layout mais equilibrado no desktop, em duas linhas */
@media (min-width: 768px) {
  .stats-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
    gap: 12px;
    align-items: stretch;
  }

  .stat-card {
    min-height: 132px;
    display: flex;
    flex-direction: column;
    justify-content: center;
    border-radius: 18px;
  }

  .stat-card-accent {
    grid-column: span 2 !important;
  }

  .stats-grid .stat-card:nth-child(4),
  .stats-grid .stat-card:nth-child(5) {
    grid-column: span 2;
  }

  .stats-grid .stat-card:nth-child(4),
  .stats-grid .stat-card:nth-child(5) {
    min-height: 118px;
  }

  .stat-card-icon {
    font-size: 1.65rem;
    margin-bottom: 6px;
  }

  .stat-card-value {
    font-size: 1.75rem;
    line-height: 1;
  }

  .stat-card-accent .stat-card-value {
    font-size: 2.2rem;
  }
}

/* Tablet intermediário: mantém duas linhas sem sobrar card perdido */
@media (min-width: 520px) and (max-width: 767px) {
  .stats-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .stat-card-accent {
    grid-column: 1 / -1;
  }
}

/* Mobile: espaçamento menor, mas sem grudar */
@media (max-width: 519px) {
  .weekly-section {
    margin-bottom: 22px;
  }

  .weekly-checkin-card {
    margin-top: 22px;
  }
}

/* ===== EXPORT & BACKUP ENGINE ===== */
.export-backup-card {
  padding: 20px;
  border-radius: 22px;
  background:
    linear-gradient(135deg, rgba(204, 255, 0, 0.10), rgba(255, 255, 255, 0.035)),
    var(--bg-card);
  border: 1px solid rgba(204, 255, 0, 0.22);
  box-shadow: 0 16px 40px rgba(0, 0, 0, 0.22);
}

.export-backup-header {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 14px;
  margin-bottom: 18px;
}

.export-backup-eyebrow {
  display: block;
  margin-bottom: 6px;
  color: var(--primary);
  font-size: 0.72rem;
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: 0.12em;
}

.export-backup-header h3 {
  margin: 0 0 6px;
  font-size: 1.15rem;
  line-height: 1.15;
}

.export-backup-header p {
  margin: 0;
  color: var(--text-secondary);
  line-height: 1.45;
  font-size: 0.92rem;
}

.export-backup-badge {
  flex: 0 0 auto;
  padding: 8px 12px;
  border-radius: 999px;
  background: rgba(204, 255, 0, 0.16);
  color: var(--primary);
  border: 1px solid rgba(204, 255, 0, 0.28);
  font-weight: 900;
  font-size: 0.74rem;
  text-transform: uppercase;
  letter-spacing: 0.06em;
}

.export-backup-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 12px;
}

.export-action-card {
  width: 100%;
  text-align: left;
  padding: 16px;
  border-radius: 18px;
  background: rgba(0, 0, 0, 0.22);
  border: 1px solid rgba(255, 255, 255, 0.10);
  color: var(--text);
  cursor: pointer;
  transition: transform 0.18s ease, border-color 0.18s ease, background 0.18s ease;
}

.export-action-card:hover {
  transform: translateY(-2px);
  border-color: rgba(204, 255, 0, 0.42);
  background: rgba(204, 255, 0, 0.08);
}

.export-action-card span {
  display: block;
  font-size: 1.5rem;
  margin-bottom: 10px;
}

.export-action-card strong {
  display: block;
  font-size: 1rem;
  margin-bottom: 5px;
}

.export-action-card small {
  display: block;
  color: var(--text-secondary);
  line-height: 1.35;
  font-size: 0.82rem;
}

.export-backup-status {
  margin: 14px 0 0;
  color: var(--text-secondary);
  font-size: 0.82rem;
}

@media (min-width: 768px) {
  .export-backup-grid {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }

  .export-backup-card {
    padding: 22px;
  }
}

@media (max-width: 519px) {
  .export-backup-header {
    flex-direction: column;
  }

  .export-backup-badge {
    width: max-content;
  }
}

/* ===== PROFESSIONAL EXPORT BUTTON ===== */
.export-action-card.featured {
  background:
    linear-gradient(135deg, rgba(204, 255, 0, 0.22), rgba(255, 255, 255, 0.06)),
    rgba(0, 0, 0, 0.24);
  border-color: rgba(204, 255, 0, 0.52);
  box-shadow: 0 14px 32px rgba(204, 255, 0, 0.12);
}

.export-action-card.featured strong {
  color: #fff;
}

@media (min-width: 980px) {
  .export-backup-grid {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }
}

/* IA Coach Strategy 2.0 */
.coach-analysis-card {
  background: linear-gradient(135deg, rgba(255, 255, 255, 0.06), rgba(204, 255, 0, 0.08));
  border: 1px solid rgba(255, 255, 255, 0.10);
  border-radius: var(--radius-sm);
  padding: 14px;
  margin: 0 0 14px;
}

.coach-analysis-header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 10px;
}

.coach-analysis-header h4 {
  color: var(--text-primary);
  font-size: 1rem;
  font-weight: 900;
}

.coach-risk-pill {
  flex-shrink: 0;
  border-radius: 999px;
  padding: 6px 10px;
  font-size: 0.72rem;
  font-weight: 900;
  text-transform: capitalize;
  background: rgba(76, 217, 100, 0.12);
  border: 1px solid rgba(76, 217, 100, 0.25);
  color: #4CD964;
}

.coach-risk-pill.medium {
  background: rgba(255, 193, 7, 0.12);
  border-color: rgba(255, 193, 7, 0.25);
  color: #FFD36A;
}

.coach-risk-pill.high {
  background: rgba(255, 59, 48, 0.12);
  border-color: rgba(255, 59, 48, 0.25);
  color: var(--red);
}

.coach-summary {
  color: var(--text-secondary);
  font-size: 0.86rem;
  line-height: 1.55;
  margin-bottom: 12px;
}

.coach-analysis-grid,
.coach-strength-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
  margin-bottom: 10px;
}

.coach-analysis-grid div,
.coach-strength-grid div {
  background: rgba(0, 0, 0, 0.16);
  border: 1px solid rgba(255, 255, 255, 0.06);
  border-radius: var(--radius-sm);
  padding: 10px;
}

.coach-analysis-grid span,
.coach-strength-grid span,
.coach-warnings span {
  display: block;
  color: var(--text-muted);
  font-size: 0.72rem;
  font-weight: 800;
  margin-bottom: 4px;
  text-transform: uppercase;
  letter-spacing: 0.04em;
}

.coach-analysis-grid strong,
.coach-strength-grid strong {
  display: block;
  color: var(--text-primary);
  font-size: 0.86rem;
  line-height: 1.35;
}

.coach-strategy-strip {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin: 12px 0 0;
}

.coach-strategy-strip span {
  background: rgba(204, 255, 0, 0.10);
  border: 1px solid rgba(204, 255, 0, 0.18);
  color: var(--text-secondary);
  border-radius: 999px;
  padding: 7px 10px;
  font-size: 0.74rem;
  font-weight: 700;
}

.coach-strategy-strip strong {
  color: var(--text-primary);
}

.coach-warnings {
  margin-top: 12px;
  padding: 10px;
  background: rgba(255, 193, 7, 0.08);
  border: 1px solid rgba(255, 193, 7, 0.18);
  border-radius: var(--radius-sm);
}

.coach-warnings ul {
  margin: 6px 0 0 18px;
  padding: 0;
}

.coach-warnings li {
  color: var(--text-secondary);
  font-size: 0.8rem;
  line-height: 1.45;
  margin: 4px 0;
}

@media (max-width: 640px) {
  .coach-analysis-header {
    flex-direction: column;
  }

  .coach-analysis-grid,
  .coach-strength-grid {
    grid-template-columns: 1fr;
  }
}

/* ===== CHECK-IN IMMEDIATE FEEDBACK ===== */
.checkin-feedback-modal {
  display: flex;
  flex-direction: column;
  gap: 16px;
  text-align: left;
}

.checkin-feedback-hero {
  padding: 16px;
  border-radius: 20px;
  background: linear-gradient(135deg, rgba(204, 255, 0, 0.16), rgba(204, 255, 0, 0.06));
  border: 1px solid rgba(204, 255, 0, 0.24);
}

.checkin-feedback-hero h4 {
  margin: 12px 0 8px;
  color: #fff;
  font-size: 1.05rem;
}

.checkin-feedback-hero p {
  margin: 0;
  color: rgba(255, 255, 255, 0.78);
  line-height: 1.45;
}

.checkin-feedback-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
}

.checkin-feedback-grid div {
  padding: 12px;
  border-radius: 16px;
  background: rgba(255, 255, 255, 0.06);
  border: 1px solid rgba(255, 255, 255, 0.1);
}

.checkin-feedback-grid span {
  display: block;
  margin-bottom: 4px;
  color: rgba(255, 255, 255, 0.58);
  font-size: 0.72rem;
  font-weight: 800;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.checkin-feedback-grid strong {
  color: #fff;
  font-size: 0.98rem;
}

.checkin-feedback-note {
  padding: 14px;
  border-radius: 18px;
  background: rgba(0, 0, 0, 0.2);
  border: 1px solid rgba(255, 255, 255, 0.08);
}

.checkin-feedback-note strong {
  color: #fff;
}

.checkin-feedback-note p {
  margin: 6px 0 0;
  color: rgba(255, 255, 255, 0.76);
  line-height: 1.45;
}

.checkin-feedback-note small {
  display: block;
  margin-top: 10px;
  color: rgba(255, 255, 255, 0.52);
}

@media (max-width: 420px) {
  .checkin-feedback-grid {
    grid-template-columns: 1fr;
  }
}

/* ===== MANUAL PLAN EDITOR ===== */
.manual-editor-entry {
  margin: 18px 0;
  padding: 16px;
  border-radius: 18px;
  background: rgba(204, 255, 0, 0.08);
  border: 1px solid rgba(204, 255, 0, 0.2);
}

.btn-manual-editor {
  width: 100%;
  border: 0;
  border-radius: 16px;
  padding: 14px 16px;
  background: linear-gradient(135deg, var(--primary), var(--primary-dark));
  color: #fff;
  font-weight: 800;
  font-size: 0.98rem;
  cursor: pointer;
  box-shadow: 0 12px 28px rgba(204, 255, 0, 0.24);
}

.btn-manual-editor span {
  margin-right: 6px;
}

.manual-editor-entry small {
  display: block;
  margin-top: 10px;
  color: var(--text-muted);
  line-height: 1.4;
}

.manual-plan-form {
  text-align: left;
  display: grid;
  gap: 12px;
}

.manual-plan-form label {
  display: block;
  font-size: 0.82rem;
  font-weight: 800;
  color: var(--text-secondary);
  margin-bottom: 6px;
}

.manual-editor-context {
  padding: 12px;
  border-radius: 14px;
  background: rgba(255, 255, 255, 0.06);
  border: 1px solid rgba(255, 255, 255, 0.1);
}

.manual-editor-context strong,
.manual-editor-context span {
  display: block;
}

.manual-editor-context span {
  margin-top: 4px;
  color: var(--text-muted);
  font-size: 0.9rem;
}

.manual-editor-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
}

.manual-editor-warning {
  padding: 12px;
  border-radius: 14px;
  font-size: 0.84rem;
  line-height: 1.45;
  color: var(--text-secondary);
  background: rgba(255, 193, 7, 0.1);
  border: 1px solid rgba(255, 193, 7, 0.18);
}

@media (max-width: 520px) {
  .manual-editor-grid {
    grid-template-columns: 1fr;
  }
}

/* ===== MANUAL PLAN EDITOR 2.0 ===== */
.manual-editor-actions-row {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
  margin-top: 12px;
}

.btn-manual-secondary,
.btn-manual-danger {
  border: 1px solid rgba(255, 255, 255, 0.12);
  border-radius: 14px;
  padding: 12px 10px;
  color: #fff;
  font-weight: 800;
  font-size: 0.86rem;
  cursor: pointer;
}

.btn-manual-secondary {
  background: rgba(255, 255, 255, 0.08);
}

.btn-manual-danger {
  background: rgba(239, 68, 68, 0.14);
  border-color: rgba(239, 68, 68, 0.26);
}

.manual-remove-warning {
  text-align: left;
  display: grid;
  gap: 8px;
  padding: 14px;
  border-radius: 16px;
  background: rgba(239, 68, 68, 0.1);
  border: 1px solid rgba(239, 68, 68, 0.2);
}

.manual-remove-warning strong,
.manual-remove-warning span {
  display: block;
}

.manual-remove-warning span {
  color: var(--text-muted);
}

.manual-remove-warning p {
  margin: 6px 0 0;
  color: var(--text-secondary);
  line-height: 1.45;
}

@media (max-width: 520px) {
  .manual-editor-actions-row {
    grid-template-columns: 1fr;
  }
}


/* ===== DASHBOARD DE EVOLUÇÃO 2.0 ===== */
.evolution-dashboard {
  display: flex;
  flex-direction: column;
  gap: 14px;
}

.evolution-dashboard-hero {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 18px;
  padding: 20px;
  border-radius: 24px;
  background:
    radial-gradient(circle at top right, rgba(204, 255, 0, 0.22), transparent 18rem),
    linear-gradient(135deg, rgba(255, 255, 255, 0.075), rgba(255, 255, 255, 0.025));
  border: 1px solid rgba(204, 255, 0, 0.22);
  box-shadow: 0 18px 48px rgba(0, 0, 0, 0.26);
}

.dashboard-eyebrow {
  display: block;
  margin-bottom: 7px;
  color: var(--accent-light);
  font-size: 0.72rem;
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: 0.14em;
}

.evolution-dashboard-hero h3 {
  margin: 0 0 6px;
  font-size: 1.35rem;
  line-height: 1.1;
}

.evolution-dashboard-hero p {
  margin: 0;
  max-width: 560px;
  color: var(--text-secondary);
  font-size: 0.88rem;
  line-height: 1.45;
}

.dashboard-score-ring {
  --score: 0%;
  flex: 0 0 auto;
  width: 108px;
  height: 108px;
  border-radius: 50%;
  display: grid;
  place-items: center;
  text-align: center;
  position: relative;
  background: conic-gradient(var(--accent) var(--score), rgba(255, 255, 255, 0.09) 0);
}

.dashboard-score-ring::before {
  content: '';
  position: absolute;
  inset: 9px;
  border-radius: inherit;
  background: #121212;
  border: 1px solid rgba(255, 255, 255, 0.08);
}

.dashboard-score-ring strong,
.dashboard-score-ring span {
  position: relative;
  z-index: 1;
  display: block;
}

.dashboard-score-ring strong {
  font-size: 1.45rem;
  color: var(--accent-light);
  line-height: 1;
}

.dashboard-score-ring span {
  margin-top: 4px;
  color: var(--text-secondary);
  font-size: 0.68rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.08em;
}

.evolution-dashboard-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 12px;
}

.dashboard-chart-card {
  padding: 16px;
  border-radius: 22px;
  background: var(--bg-card);
  border: 1px solid var(--border);
  overflow: hidden;
}

.chart-card-header {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  align-items: flex-start;
  margin-bottom: 14px;
}

.chart-card-header.compact {
  margin-bottom: 12px;
}

.chart-card-header span {
  display: block;
  margin-bottom: 4px;
  color: var(--text-secondary);
  font-size: 0.68rem;
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: 0.12em;
}

.chart-card-header h4 {
  margin: 0;
  font-size: 1rem;
  line-height: 1.15;
}

.chart-legend {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 8px;
  color: var(--text-secondary);
  font-size: 0.72rem;
  font-weight: 800;
}

.chart-legend i {
  width: 10px;
  height: 10px;
  border-radius: 999px;
  display: inline-block;
  margin-right: -4px;
}

.chart-legend .planned { background: rgba(255, 255, 255, 0.22); }
.chart-legend .completed { background: var(--accent); }

.km-comparison-list {
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.km-compare-row {
  display: grid;
  grid-template-columns: 74px 1fr 82px;
  align-items: center;
  gap: 10px;
}

.km-compare-label strong,
.km-compare-label span {
  display: block;
}

.km-compare-label strong {
  color: var(--accent-light);
  font-size: 0.92rem;
}

.km-compare-label span {
  margin-top: 2px;
  color: var(--text-secondary);
  font-size: 0.68rem;
}

.km-compare-bars {
  display: flex;
  flex-direction: column;
  gap: 5px;
}

.km-bar-line {
  height: 9px;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.08);
  overflow: hidden;
}

.km-bar-line span {
  display: block;
  height: 100%;
  border-radius: inherit;
}

.km-bar-line.planned span {
  background: rgba(255, 255, 255, 0.24);
}

.km-bar-line.completed span {
  background: linear-gradient(90deg, var(--accent), var(--accent-light));
}

.km-compare-values {
  text-align: right;
}

.km-compare-values span,
.km-compare-values small {
  display: block;
}

.km-compare-values span {
  color: var(--text);
  font-size: 0.82rem;
  font-weight: 900;
}

.km-compare-values small {
  margin-top: 2px;
  color: var(--text-secondary);
  font-size: 0.66rem;
}

.mini-chart-scroll {
  overflow-x: auto;
  padding-bottom: 2px;
}

.mini-chart-bars {
  min-width: 420px;
  height: 188px;
  display: grid;
  grid-auto-flow: column;
  grid-auto-columns: minmax(44px, 1fr);
  gap: 8px;
  align-items: end;
}

.mini-chart-item {
  height: 100%;
  min-width: 0;
  display: grid;
  grid-template-rows: 1fr auto auto;
  gap: 6px;
  text-align: center;
}

.mini-chart-bar-wrap {
  min-height: 112px;
  height: 100%;
  display: flex;
  align-items: flex-end;
  justify-content: center;
  border-radius: 14px;
  background: rgba(255, 255, 255, 0.045);
  overflow: hidden;
}

.mini-chart-bar {
  width: 100%;
  border-radius: 14px 14px 0 0;
  background: linear-gradient(180deg, var(--accent-light), var(--accent));
  min-height: 4px;
}

.mini-chart-item.warning .mini-chart-bar {
  background: linear-gradient(180deg, #FFD166, #FF9F1C);
}

.mini-chart-item.success .mini-chart-bar {
  background: linear-gradient(180deg, #6EE7B7, #34C759);
}

.mini-chart-item.muted .mini-chart-bar {
  background: linear-gradient(180deg, rgba(255,255,255,0.35), rgba(255,255,255,0.12));
}

.mini-chart-item strong {
  color: var(--text);
  font-size: 0.75rem;
  line-height: 1;
}

.mini-chart-item span {
  color: var(--text-secondary);
  font-size: 0.68rem;
  font-weight: 800;
}

.adjustment-timeline-compact {
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.adjustment-compact-row {
  display: grid;
  grid-template-columns: 16px 1fr;
  gap: 10px;
  padding: 12px;
  border-radius: 16px;
  background: rgba(255, 255, 255, 0.045);
  border: 1px solid rgba(255, 255, 255, 0.08);
}

.adjustment-compact-row.reduce,
.adjustment-compact-row.recovery {
  border-color: rgba(255, 193, 7, 0.24);
  background: rgba(255, 193, 7, 0.075);
}

.adjustment-compact-row.slight_increase {
  border-color: rgba(76, 217, 100, 0.22);
  background: rgba(76, 217, 100, 0.07);
}

.adjustment-dot {
  width: 12px;
  height: 12px;
  margin-top: 4px;
  border-radius: 999px;
  background: var(--accent);
  box-shadow: 0 0 0 4px rgba(204, 255, 0, 0.12);
}

.adjustment-compact-row.reduce .adjustment-dot,
.adjustment-compact-row.recovery .adjustment-dot {
  background: #FF9F1C;
  box-shadow: 0 0 0 4px rgba(255, 159, 28, 0.14);
}

.adjustment-compact-row.slight_increase .adjustment-dot {
  background: #34C759;
  box-shadow: 0 0 0 4px rgba(52, 199, 89, 0.14);
}

.adjustment-compact-row strong {
  display: block;
  color: var(--text);
  font-size: 0.86rem;
  margin-bottom: 4px;
}

.adjustment-compact-row p {
  margin: 0 0 6px;
  color: var(--text-secondary);
  font-size: 0.78rem;
  line-height: 1.35;
}

.adjustment-compact-row span {
  color: var(--accent-light);
  font-size: 0.7rem;
  font-weight: 800;
}

.evolution-chart-empty {
  padding: 16px;
  border-radius: 16px;
  color: var(--text-secondary);
  background: rgba(255, 255, 255, 0.045);
  border: 1px dashed rgba(255, 255, 255, 0.12);
  font-size: 0.84rem;
  line-height: 1.4;
}

@media (min-width: 860px) {
  .evolution-dashboard-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .dashboard-chart-card.wide {
    grid-column: 1 / -1;
  }
}

@media (max-width: 520px) {
  .evolution-dashboard-hero {
    align-items: stretch;
    flex-direction: column;
  }

  .dashboard-score-ring {
    width: 96px;
    height: 96px;
  }

  .km-compare-row {
    grid-template-columns: 58px 1fr;
  }

  .km-compare-values {
    grid-column: 2;
    text-align: left;
    display: flex;
    gap: 6px;
    align-items: baseline;
  }

  .mini-chart-bars {
    min-width: 520px;
  }
}


/* ===== EVOLUTION DASHBOARD REFINEMENT ===== */
.evolution-insight-panel {
  padding: 18px;
  border-radius: 22px;
  background:
    radial-gradient(circle at top right, rgba(204, 255, 0, 0.16), transparent 32%),
    linear-gradient(135deg, rgba(255, 255, 255, 0.075), rgba(255, 255, 255, 0.035));
  border: 1px solid rgba(255, 255, 255, 0.10);
  box-shadow: 0 18px 44px rgba(0, 0, 0, 0.22);
}

.insight-panel-header {
  display: flex;
  justify-content: space-between;
  gap: 16px;
  margin-bottom: 16px;
}

.insight-panel-header h3 {
  margin: 4px 0 4px;
  font-size: 1.15rem;
}

.insight-panel-header p {
  margin: 0;
  color: var(--text-secondary);
  line-height: 1.45;
  max-width: 760px;
}

.insight-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
}

.insight-card {
  min-height: 86px;
  padding: 14px;
  border-radius: 17px;
  background: rgba(0, 0, 0, 0.22);
  border: 1px solid rgba(255, 255, 255, 0.08);
}

.insight-card.featured {
  grid-column: 1 / -1;
  background: linear-gradient(135deg, rgba(204, 255, 0, 0.18), rgba(255, 255, 255, 0.045));
  border-color: rgba(204, 255, 0, 0.24);
}

.insight-card span,
.review-card-header span {
  display: block;
  color: var(--text-secondary);
  font-size: 0.72rem;
  font-weight: 900;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  margin-bottom: 8px;
}

.insight-card strong {
  display: block;
  color: var(--text);
  font-size: 0.98rem;
  line-height: 1.35;
}

.insight-card:not(.featured) strong {
  color: var(--accent-light);
  font-size: 1rem;
}

.evolution-review-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 14px;
}

.evolution-review-card {
  padding: 16px;
  border-radius: 22px;
  background: var(--bg-card);
  border: 1px solid var(--border);
}

.review-card-header {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  align-items: flex-start;
  margin-bottom: 12px;
}

.review-card-header strong {
  color: var(--accent-light);
  font-size: 1.15rem;
}

.review-list-row {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 14px;
  align-items: center;
  padding: 12px 0;
  border-top: 1px solid rgba(255, 255, 255, 0.08);
}

.review-list-row:first-of-type {
  border-top: 0;
  padding-top: 0;
}

.review-list-row strong {
  display: block;
  color: var(--text);
  margin-bottom: 4px;
  font-size: 0.92rem;
}

.review-list-row p {
  margin: 0;
  color: var(--text-secondary);
  line-height: 1.4;
  font-size: 0.82rem;
}

.review-list-row > span {
  padding: 7px 10px;
  border-radius: 999px;
  background: rgba(204, 255, 0, 0.12);
  color: var(--accent-light);
  border: 1px solid rgba(204, 255, 0, 0.24);
  font-weight: 900;
  font-size: 0.76rem;
  white-space: nowrap;
}

.review-list-row.recovery > span,
.review-list-row.reduce > span {
  background: rgba(255, 193, 7, 0.12);
  color: #fde68a;
  border-color: rgba(255, 193, 7, 0.25);
}

.review-list-row.slight_increase > span {
  background: rgba(76, 217, 100, 0.12);
  color: #bbf7d0;
  border-color: rgba(76, 217, 100, 0.24);
}

@media (min-width: 768px) {
  .insight-grid {
    grid-template-columns: repeat(6, minmax(0, 1fr));
  }

  .insight-card.featured {
    grid-column: span 3;
  }

  .insight-card {
    grid-column: span 1;
  }

  .evolution-review-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 520px) {
  .insight-grid,
  .evolution-review-grid {
    grid-template-columns: 1fr;
  }

  .review-list-row {
    grid-template-columns: 1fr;
  }

  .review-list-row > span {
    width: max-content;
  }
}


/* ===== RESPONSIVE POLISH V24 ===== */

/* Stats: fases mais úteis no desktop, com semanas verticais */
.stats-phase-head {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  align-items: flex-start;
  margin-bottom: 8px;
}

.stats-phase-head strong {
  color: var(--accent-light);
  font-size: 0.95rem;
}

.stats-phase-weeks {
  display: flex;
  align-items: end;
  gap: 7px;
  min-height: 92px;
  padding: 12px 4px 2px;
  overflow-x: auto;
  scrollbar-width: thin;
}

.stats-phase-week {
  min-width: 34px;
  display: grid;
  grid-template-rows: auto 1fr auto;
  justify-items: center;
  gap: 6px;
}

.stats-phase-week span {
  color: var(--accent-light);
  font-size: 0.68rem;
  font-weight: 900;
}

.stats-phase-week-bar {
  width: 11px;
  height: 54px;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.08);
  display: flex;
  align-items: end;
  overflow: hidden;
}

.stats-phase-week-bar i {
  display: block;
  width: 100%;
  border-radius: inherit;
  background: linear-gradient(180deg, var(--accent-light), var(--accent));
}

.stats-phase-week small {
  color: var(--text-muted);
  font-size: 0.62rem;
  white-space: nowrap;
  writing-mode: vertical-rl;
  transform: rotate(180deg);
  max-height: 48px;
}

.stats-phase-empty {
  margin-top: 10px;
  padding: 12px;
  border-radius: 12px;
  color: var(--text-muted);
  background: rgba(255, 255, 255, 0.04);
  border: 1px dashed rgba(255, 255, 255, 0.10);
  font-size: 0.78rem;
}

/* Performance Center: deixa porcentagem e label centralizadas dentro do círculo */
.dashboard-score-ring {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 2px;
  overflow: hidden;
}

.dashboard-score-ring strong {
  line-height: 0.95;
  max-width: 78px;
  text-align: center;
}

.dashboard-score-ring span {
  margin-top: 0;
  max-width: 72px;
  line-height: 1.05;
  text-align: center;
  overflow-wrap: anywhere;
}

/* IA Coach: organização dos campos em navegador */
.ai-form-card {
  padding: 22px;
}

.ai-form-title {
  display: flex;
  align-items: center;
  gap: 6px;
  font-size: 1.05rem;
}

.ai-label {
  min-height: 18px;
  font-size: 0.76rem;
  line-height: 1.25;
  letter-spacing: 0.075em;
}

.ai-input {
  min-height: 46px;
}

.date-input-wrap {
  position: relative;
  display: flex;
  align-items: center;
}

.date-input-wrap .ai-input {
  padding-right: 46px;
}

.date-picker-btn {
  position: absolute;
  right: 8px;
  width: 32px;
  height: 32px;
  border: 0;
  border-left: 1px solid rgba(255, 255, 255, 0.08);
  background: transparent;
  color: var(--text-secondary);
  cursor: pointer;
  border-radius: 8px;
  display: grid;
  place-items: center;
  font-size: 0.95rem;
}

.date-picker-btn:hover {
  color: var(--accent-light);
  background: rgba(204, 255, 0, 0.10);
}

.time-input {
  font-variant-numeric: tabular-nums;
}

/* Resultado IA: semanas ficam recolhidas inicialmente */
.ai-weeks-toggle-card {
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.ai-toggle-weeks-btn {
  width: 100%;
  border: 1px solid rgba(204, 255, 0, 0.24);
  background: linear-gradient(135deg, rgba(204, 255, 0, 0.14), rgba(255, 255, 255, 0.045));
  color: var(--text);
  border-radius: var(--radius);
  padding: 14px 16px;
  font-family: 'Outfit', sans-serif;
  display: grid;
  grid-template-columns: auto 1fr;
  grid-template-areas:
    "icon title"
    "icon sub";
  gap: 2px 12px;
  text-align: left;
  cursor: pointer;
  transition: transform .2s, border-color .2s, background .2s;
}

.ai-toggle-weeks-btn:hover {
  border-color: rgba(204, 255, 0, 0.42);
}

.ai-toggle-weeks-btn:active {
  transform: scale(0.99);
}

.ai-toggle-weeks-btn span {
  grid-area: icon;
  align-self: center;
  font-size: 1.35rem;
}

.ai-toggle-weeks-btn strong {
  grid-area: title;
  color: var(--accent-light);
  font-size: 0.98rem;
}

.ai-toggle-weeks-btn small {
  grid-area: sub;
  color: var(--text-secondary);
  font-size: 0.78rem;
}

.ai-toggle-weeks-btn.open {
  background: linear-gradient(135deg, rgba(204, 255, 0, 0.22), rgba(255, 255, 255, 0.055));
}

.ai-all-weeks-container {
  display: flex;
  flex-direction: column;
  gap: 12px;
}

/* Treino: botão para retorno rápido */
.btn-workout-home {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 10px;
  border: 1px solid rgba(204, 255, 0, 0.22);
  background: rgba(204, 255, 0, 0.10);
  color: var(--accent-light);
  border-radius: 999px;
  padding: 9px 13px;
  font-family: 'Outfit', sans-serif;
  font-size: 0.82rem;
  font-weight: 800;
  cursor: pointer;
}

.btn-workout-home:active {
  transform: scale(0.98);
}

@media (min-width: 768px) {
  .stats-phases {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    align-items: stretch;
  }

  .stats-phase-item {
    min-height: 190px;
    display: flex;
    flex-direction: column;
  }

  .stats-phase-item .phase-progress {
    margin-bottom: 6px;
  }

  .stats-phase-weeks {
    flex: 1;
  }

  .ai-form-row {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
    gap: 12px;
    align-items: end;
  }

  .ai-form-row .ai-form-group {
    margin-bottom: 12px;
  }

  .ai-radio-group {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  #ai-custom-dist-group {
    max-width: 260px;
  }
}

@media (min-width: 1100px) {
  .stats-phases {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .ai-container {
    max-width: 980px;
  }
}

@media (max-width: 520px) {
  .stats-phase-weeks {
    min-height: 72px;
  }

  .stats-phase-week small {
    display: none;
  }

  .stats-phase-week-bar {
    height: 42px;
  }

  .date-picker-btn {
    right: 6px;
  }
}


/* ===== STATS / ADAPTIVE POLISH V25 ===== */

/* O antigo "Progresso por Fase" foi removido do HTML.
   Mantemos estilos de segurança caso algum cache antigo ainda renderize o bloco. */
.stats-phases.is-hidden,
#stats-phases:empty {
  display: none;
}

/* Caso o bloco de fases volte em versões futuras, as semanas ficam em lista vertical com gráfico horizontal. */
.stats-phase-weeks {
  display: flex;
  flex-direction: column;
  gap: 8px;
  min-height: unset;
  padding: 12px 0 0;
  overflow: visible;
}

.stats-phase-week {
  display: grid;
  grid-template-columns: 42px 1fr 74px;
  align-items: center;
  gap: 10px;
  min-width: 0;
}

.stats-phase-week span {
  color: var(--accent-light);
  font-size: 0.72rem;
  font-weight: 900;
}

.stats-phase-week-bar {
  width: 100%;
  height: 8px;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.08);
  overflow: hidden;
}

.stats-phase-week-bar i {
  display: block;
  height: 100% !important;
  width: var(--week-progress, 0%);
  border-radius: inherit;
  background: linear-gradient(90deg, var(--accent), var(--accent-light));
}

.stats-phase-week small {
  color: var(--text-muted);
  font-size: 0.68rem;
  white-space: nowrap;
  writing-mode: initial;
  transform: none;
  max-height: none;
  text-align: right;
}

/* Feedbacks/ajustes: a partir de poucos itens, ativa rolagem para preservar altura. */
.adjustment-timeline-compact,
.evolution-review-card {
  max-height: 390px;
  overflow-y: auto;
  padding-right: 4px;
  scrollbar-width: thin;
  scrollbar-color: rgba(204, 255, 0, 0.45) rgba(255, 255, 255, 0.06);
}

/* Modal de feedback: evita estourar a tela em celulares quando a IA escrever mais. */
.modal-card.checkin-modal-card {
  max-width: 420px;
  width: min(420px, calc(100vw - 28px));
  max-height: calc(100dvh - 28px);
  overflow: hidden;
  display: flex;
  flex-direction: column;
}

.modal-card.checkin-modal-card #modal-message {
  overflow-y: auto;
  padding-right: 2px;
  max-height: calc(100dvh - 190px);
}

.checkin-feedback-modal {
  gap: 14px;
}

.checkin-feedback-hero p,
.checkin-feedback-note p {
  line-height: 1.42;
}

@media (max-width: 420px) {
  .modal-card.checkin-modal-card {
    width: min(360px, calc(100vw - 24px));
  }

  .modal-card.checkin-modal-card #modal-message {
    max-height: calc(100dvh - 180px);
  }
}


/* ===== LONGRUN + DATEPICKER FIX V26 ===== */

/* Esconde o ícone nativo preto do input date e deixa somente o botão colorido do app. */
input[type="date"].ai-input::-webkit-calendar-picker-indicator {
  opacity: 0;
  display: none;
  -webkit-appearance: none;
}

input[type="date"].ai-input {
  color-scheme: dark;
}

.date-input-wrap {
  position: relative;
  width: 100%;
}

.date-input-wrap .ai-input {
  padding-right: 48px;
}

.date-picker-btn {
  color: #fff;
  background: linear-gradient(135deg, rgba(204, 255, 0, 0.95), rgba(255, 140, 66, 0.95));
  border: 1px solid rgba(255, 255, 255, 0.10);
  box-shadow: 0 6px 14px rgba(204, 255, 0, 0.18);
}

.date-picker-btn:hover,
.date-picker-btn:focus {
  color: #fff;
  background: linear-gradient(135deg, var(--accent), var(--accent-light));
  outline: none;
}

/* Campo de distância extra para Ultra/Personalizado */
#ai-custom-dist-group {
  min-width: 240px;
}

#ai-custom-dist-group .ai-label {
  white-space: normal;
  line-height: 1.2;
  overflow-wrap: anywhere;
}

/* Evolução dos longões em linhas horizontais, sem card vazio e sem barras verticais. */
.dashboard-chart-card:has(.longrun-horizontal-list) {
  min-height: unset;
}

.longrun-horizontal-list {
  display: flex;
  flex-direction: column;
  gap: 10px;
  max-height: 360px;
  overflow-y: auto;
  padding-right: 4px;
  scrollbar-width: thin;
  scrollbar-color: rgba(204, 255, 0, 0.45) rgba(255, 255, 255, 0.06);
}

.longrun-horizontal-row {
  display: grid;
  grid-template-columns: 58px minmax(0, 1fr) 58px;
  align-items: center;
  gap: 10px;
  padding: 9px 10px;
  border-radius: 14px;
  background: rgba(255, 255, 255, 0.045);
  border: 1px solid rgba(255, 255, 255, 0.075);
}

.longrun-horizontal-row.success {
  border-color: rgba(76, 217, 100, 0.18);
}

.longrun-horizontal-row.warning {
  border-color: rgba(255, 193, 7, 0.18);
}

.longrun-week strong,
.longrun-week span {
  display: block;
}

.longrun-week strong {
  color: var(--accent-light);
  font-size: 0.84rem;
  font-weight: 900;
}

.longrun-week span {
  margin-top: 2px;
  color: var(--text-muted);
  font-size: 0.62rem;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.longrun-track {
  height: 11px;
  border-radius: 999px;
  overflow: hidden;
  background: rgba(255, 255, 255, 0.09);
}

.longrun-track span {
  display: block;
  height: 100%;
  border-radius: inherit;
  background: linear-gradient(90deg, var(--accent), var(--accent-light));
}

.longrun-value {
  text-align: right;
  color: var(--text);
  font-size: 0.78rem;
  font-weight: 900;
  white-space: nowrap;
}

@media (min-width: 768px) {
  .ai-form-row:has(#ai-custom-dist-group) {
    grid-template-columns: minmax(260px, 1fr) minmax(220px, 0.85fr);
  }
}

@media (max-width: 640px) {
  #ai-custom-dist-group {
    min-width: 0;
  }

  .longrun-horizontal-row {
    grid-template-columns: 50px minmax(0, 1fr) 52px;
  }
}


/* ===== DISTANCE ROW RESPONSIVENESS + DATEPICKER FINAL FIX V27 ===== */

/* Distância ocupa a linha inteira quando Ultra/Personalizado NÃO está ativo. */
.ai-distance-row {
  display: grid;
  grid-template-columns: 1fr;
  gap: 12px;
  align-items: end;
}

.ai-distance-row .ai-distance-select-group,
.ai-distance-row #ai-custom-dist-group {
  min-width: 0;
  max-width: none;
}

.ai-distance-row #ai-custom-dist-group.hidden {
  display: none !important;
}

@media (min-width: 768px) {
  .ai-distance-row {
    grid-template-columns: minmax(280px, 1fr);
  }

  .ai-distance-row:not(.has-custom-distance) .ai-distance-select-group {
    max-width: 560px;
  }

  .ai-distance-row.has-custom-distance {
    grid-template-columns: minmax(300px, 1.45fr) minmax(220px, 0.75fr);
  }
}

@media (min-width: 1100px) {
  .ai-distance-row.has-custom-distance {
    grid-template-columns: minmax(360px, 1.55fr) minmax(240px, 0.75fr);
  }
}

/* Evita que regras antigas de #ai-custom-dist-group limitem o campo. */
#ai-custom-dist-group {
  max-width: none !important;
}

/* Datepicker: remove o ícone nativo preto e preserva só o botão colorido. */
.date-input-wrap {
  position: relative;
  width: 100%;
}

.date-input-wrap input[type="date"].ai-input {
  padding-right: 50px;
  -webkit-appearance: none;
  appearance: none;
}

.date-input-wrap input[type="date"].ai-input::-webkit-calendar-picker-indicator {
  opacity: 0 !important;
  display: none !important;
  visibility: hidden !important;
  pointer-events: none !important;
  -webkit-appearance: none !important;
}

.date-input-wrap input[type="date"].ai-input::-webkit-inner-spin-button,
.date-input-wrap input[type="date"].ai-input::-webkit-clear-button {
  display: none !important;
  -webkit-appearance: none !important;
}

.date-picker-btn {
  right: 8px;
  width: 34px;
  height: 34px;
  border-left: 0;
  color: #fff;
  background: linear-gradient(135deg, var(--accent), var(--accent-light));
  border: 1px solid rgba(255, 255, 255, 0.12);
  box-shadow: 0 8px 18px rgba(204, 255, 0, 0.22);
}

.date-picker-btn:hover,
.date-picker-btn:focus {
  color: #fff;
  background: linear-gradient(135deg, #ff6b2b, #ff9a5c);
  outline: none;
}


/* ===== DISTANCE FIELD FULL-WIDTH POLISH V29 ===== */
/* Quando a distância NÃO é Ultra/Personalizado, o seletor ocupa a largura útil do card. */
.ai-distance-row {
  display: grid !important;
  grid-template-columns: 1fr !important;
  width: 100%;
  gap: 12px;
  align-items: end;
}

.ai-distance-row .ai-distance-select-group {
  width: 100%;
  max-width: none !important;
  grid-column: 1 / -1;
}

.ai-distance-row .ai-distance-select-group .ai-input,
.ai-distance-row .ai-distance-select-group select.ai-input {
  width: 100%;
}

/* Quando Ultra/Personalizado está ativo, divide em duas colunas no desktop. */
.ai-distance-row.has-custom-distance {
  grid-template-columns: minmax(0, 1fr) !important;
}

.ai-distance-row.has-custom-distance #ai-custom-dist-group {
  width: 100%;
  max-width: none !important;
  min-width: 0 !important;
}

@media (min-width: 768px) {
  .ai-distance-row.has-custom-distance {
    grid-template-columns: minmax(340px, 1.35fr) minmax(220px, 0.65fr) !important;
  }

  .ai-distance-row.has-custom-distance .ai-distance-select-group {
    grid-column: auto;
  }
}

@media (min-width: 1100px) {
  .ai-distance-row.has-custom-distance {
    grid-template-columns: minmax(420px, 1.5fr) minmax(240px, 0.7fr) !important;
  }
}

@media (max-width: 767px) {
  .ai-distance-row,
  .ai-distance-row.has-custom-distance {
    grid-template-columns: 1fr !important;
  }

  .ai-distance-row .ai-form-group {
    width: 100%;
  }
}


/* ===== USER PROFILE MANAGER V30 ===== */
.header-right {
  gap: 10px;
}

.header-user-profile {
  display: none;
  align-items: center;
  gap: 8px;
  border: 1px solid rgba(204, 255, 0, 0.22);
  background: rgba(204, 255, 0, 0.08);
  color: var(--text);
  border-radius: 999px;
  padding: 6px 10px 6px 6px;
  cursor: pointer;
  font-family: 'Outfit', sans-serif;
  transition: transform 0.2s, border-color 0.2s, background 0.2s;
}

.header-user-profile:hover {
  border-color: rgba(204, 255, 0, 0.42);
  background: rgba(204, 255, 0, 0.13);
}

.header-user-profile:active {
  transform: scale(0.97);
}

.header-user-avatar {
  width: 30px;
  height: 30px;
  display: grid;
  place-items: center;
  border-radius: 999px;
  background: linear-gradient(135deg, var(--accent), var(--accent-light));
  color: #fff;
  font-size: 0.82rem;
  font-weight: 900;
}

.header-user-text {
  display: none;
  text-align: left;
  line-height: 1.05;
}

.header-user-text strong,
.header-user-text small {
  display: block;
  max-width: 96px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.header-user-text strong {
  font-size: 0.78rem;
  color: var(--text);
}

.header-user-text small {
  margin-top: 2px;
  font-size: 0.62rem;
  color: var(--text-secondary);
  text-transform: uppercase;
  letter-spacing: 0.04em;
}

.header-logout-btn {
  display: none;
  border: 1px solid rgba(255, 255, 255, 0.10);
  background: rgba(255, 255, 255, 0.055);
  color: var(--text-secondary);
  border-radius: 999px;
  padding: 8px 10px;
  font-family: 'Outfit', sans-serif;
  font-size: 0.72rem;
  font-weight: 800;
  cursor: pointer;
}

.header-logout-btn:hover {
  color: var(--accent-light);
  border-color: rgba(204, 255, 0, 0.28);
}

.profile-manager-card {
  text-align: left;
  display: flex;
  flex-direction: column;
  gap: 14px;
}

.profile-manager-head {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 14px;
  border-radius: 18px;
  background: linear-gradient(135deg, rgba(204, 255, 0, 0.15), rgba(255, 255, 255, 0.045));
  border: 1px solid rgba(204, 255, 0, 0.22);
}

.profile-manager-avatar {
  width: 44px;
  height: 44px;
  border-radius: 999px;
  display: grid;
  place-items: center;
  background: linear-gradient(135deg, var(--accent), var(--accent-light));
  color: #fff;
  font-weight: 900;
  font-size: 1rem;
  flex: 0 0 auto;
}

.profile-manager-head strong {
  display: block;
  color: var(--text);
  font-size: 1.05rem;
}

.profile-manager-head span {
  display: block;
  color: var(--text-secondary);
  font-size: 0.78rem;
  margin-top: 2px;
}

.profile-manager-goal {
  padding: 12px;
  border-radius: 16px;
  background: rgba(255, 255, 255, 0.045);
  border: 1px solid rgba(255, 255, 255, 0.08);
}

.profile-manager-goal span,
.profile-manager-grid span {
  display: block;
  color: var(--text-secondary);
  font-size: 0.68rem;
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  margin-bottom: 5px;
}

.profile-manager-goal p {
  margin: 0;
  color: var(--text);
  line-height: 1.35;
}

.profile-manager-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
}

.profile-manager-grid div {
  padding: 12px;
  border-radius: 15px;
  background: rgba(255, 255, 255, 0.055);
  border: 1px solid rgba(255, 255, 255, 0.08);
}

.profile-manager-grid strong {
  color: var(--accent-light);
  font-size: 1rem;
}

.profile-manager-note {
  color: var(--text-muted);
  line-height: 1.4;
}

@media (min-width: 768px) {
  .header-user-profile,
  .header-logout-btn {
    display: inline-flex;
  }

  .header-user-text {
    display: block;
  }
}

@media (max-width: 767px) {
  .header-user-profile {
    display: inline-flex;
    padding-right: 6px;
  }

  .header-stats {
    display: none;
  }
}


/* ===== HEADER PROFILE DESKTOP FIX V31 ===== */
.app-header {
  box-sizing: border-box;
}

.header-left {
  min-width: 0;
  flex: 0 0 auto;
}

.header-right {
  display: flex !important;
  align-items: center !important;
  justify-content: flex-end !important;
  gap: 10px !important;
  min-width: 0;
  flex: 1 1 auto;
  height: 100%;
}

.header-stats {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 58px;
  height: 34px;
  flex: 0 0 auto;
}

.header-user-profile {
  flex: 0 1 auto;
  min-width: 0;
  height: 38px;
  max-width: 220px;
  white-space: nowrap;
  align-self: center;
}

.header-user-text {
  min-width: 0;
}

.header-logout-btn {
  flex: 0 0 auto;
  height: 34px;
  align-items: center;
  justify-content: center;
  align-self: center;
}

@media (min-width: 768px) {
  .header-right {
    max-width: min(520px, 48vw);
  }

  .header-user-profile {
    display: inline-flex !important;
  }

  .header-logout-btn {
    display: inline-flex !important;
  }

  .header-stats {
    display: inline-flex !important;
  }
}

@media (max-width: 767px) {
  .header-right {
    gap: 8px !important;
    flex: 0 0 auto;
  }

  .header-user-profile {
    height: 36px;
    max-width: 42px;
    overflow: hidden;
  }

  .header-user-avatar {
    width: 28px;
    height: 28px;
  }

  .header-logout-btn {
    display: none !important;
  }

  .header-stats {
    display: none !important;
  }
}

@media (max-width: 380px) {
  .header-title {
    font-size: 1.05rem;
  }

  .header-user-profile {
    max-width: 38px;
    padding: 5px;
  }
}


/* ===== SETTINGS PAGE V32 ===== */
.settings-container {
  max-width: 980px;
  margin: 0 auto;
}

.settings-hero {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 14px;
  padding: 18px;
  border-radius: 22px;
  background:
    radial-gradient(circle at top right, rgba(204, 255, 0, 0.16), transparent 34%),
    var(--bg-card);
  border: 1px solid var(--border);
  margin-bottom: 14px;
}

.settings-eyebrow {
  display: block;
  color: var(--accent-light);
  font-size: 0.72rem;
  font-weight: 900;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  margin-bottom: 5px;
}

.settings-hero h2 {
  margin: 0 0 4px;
  font-size: 1.35rem;
}

.settings-hero p {
  margin: 0;
  color: var(--text-secondary);
  line-height: 1.45;
}

.settings-logout-mobile {
  border: 1px solid rgba(204, 255, 0, 0.26);
  background: rgba(204, 255, 0, 0.10);
  color: var(--accent-light);
  border-radius: 999px;
  padding: 8px 12px;
  font-family: 'Outfit', sans-serif;
  font-weight: 800;
  cursor: pointer;
}

.settings-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 14px;
}

.settings-card {
  padding: 16px;
  border-radius: 22px;
  background: var(--bg-card);
  border: 1px solid var(--border);
}

.settings-card.wide {
  grid-column: 1 / -1;
}

.settings-card.danger {
  border-color: rgba(255, 193, 7, 0.18);
  background:
    linear-gradient(135deg, rgba(255, 193, 7, 0.06), rgba(255, 255, 255, 0.035)),
    var(--bg-card);
}

.settings-card-header {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  align-items: flex-start;
  margin-bottom: 14px;
}

.settings-card-header span {
  display: block;
  color: var(--text-secondary);
  font-size: 0.68rem;
  font-weight: 900;
  letter-spacing: 0.09em;
  text-transform: uppercase;
  margin-bottom: 4px;
}

.settings-card-header h3 {
  margin: 0;
  font-size: 1rem;
}

.settings-mini-btn,
.settings-note-pill {
  flex: 0 0 auto;
  border: 1px solid rgba(204, 255, 0, 0.24);
  background: rgba(204, 255, 0, 0.10);
  color: var(--accent-light);
  border-radius: 999px;
  padding: 7px 10px;
  font-family: 'Outfit', sans-serif;
  font-size: 0.72rem;
  font-weight: 900;
}

.settings-mini-btn {
  cursor: pointer;
}

.settings-profile-row {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 14px;
  border-radius: 18px;
  background: rgba(255, 255, 255, 0.045);
  border: 1px solid rgba(255, 255, 255, 0.08);
  margin-bottom: 12px;
}

.settings-avatar {
  width: 46px;
  height: 46px;
  border-radius: 999px;
  display: grid;
  place-items: center;
  background: linear-gradient(135deg, var(--accent), var(--accent-light));
  color: #fff;
  font-weight: 900;
}

.settings-profile-row strong,
.settings-profile-row span {
  display: block;
}

.settings-profile-row span {
  color: var(--text-secondary);
  font-size: 0.82rem;
  margin-top: 2px;
}

.settings-info-list,
.settings-plan-grid {
  display: grid;
  gap: 10px;
}

.settings-info-list div,
.settings-plan-grid div {
  padding: 12px;
  border-radius: 15px;
  background: rgba(255, 255, 255, 0.045);
  border: 1px solid rgba(255, 255, 255, 0.08);
}

.settings-info-list span,
.settings-plan-grid span {
  display: block;
  color: var(--text-secondary);
  font-size: 0.68rem;
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  margin-bottom: 5px;
}

.settings-info-list strong,
.settings-plan-grid strong {
  color: var(--text);
  line-height: 1.25;
}

.settings-form-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 12px;
}

.settings-form-grid label {
  display: flex;
  flex-direction: column;
  gap: 7px;
  color: var(--text-secondary);
  font-size: 0.76rem;
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: 0.08em;
}

.settings-input {
  width: 100%;
  min-height: 46px;
  border-radius: var(--radius-sm);
  border: 1px solid var(--border);
  background: #111;
  color: var(--text);
  padding: 12px 14px;
  font-family: 'Outfit', sans-serif;
  font-size: 0.92rem;
}

.settings-input:focus {
  outline: none;
  border-color: var(--accent);
  box-shadow: 0 0 12px var(--accent-glow);
}

.settings-actions {
  display: flex;
  gap: 10px;
  margin-top: 14px;
}

.settings-actions.split {
  flex-wrap: wrap;
}

.btn-danger-settings {
  background: rgba(255, 59, 48, 0.14);
  color: #ffb4ad;
  border: 1px solid rgba(255, 59, 48, 0.28);
}

.settings-help,
.settings-card.danger p {
  margin: 12px 0 0;
  color: var(--text-secondary);
  line-height: 1.45;
  font-size: 0.86rem;
}

@media (min-width: 768px) {
  .settings-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .settings-plan-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .settings-form-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .settings-logout-mobile {
    display: none;
  }

  .bottom-nav {
    width: min(760px, calc(100vw - 48px));
  }

  .nav-item {
    padding-left: 16px;
    padding-right: 16px;
  }
}

@media (max-width: 460px) {
  .settings-card-header {
    flex-direction: column;
  }

  .settings-actions {
    flex-direction: column;
  }
}


/* ===== PROFILE-ONLY SETTINGS V33 ===== */
.settings-photo-editor {
  display: grid;
  grid-template-columns: 82px 1fr;
  gap: 14px;
  align-items: center;
  padding: 14px;
  border-radius: 18px;
  background: rgba(255, 255, 255, 0.045);
  border: 1px solid rgba(255, 255, 255, 0.08);
  margin-bottom: 14px;
}

.settings-photo-preview {
  width: 76px;
  height: 76px;
  border-radius: 22px;
  display: grid;
  place-items: center;
  background: linear-gradient(135deg, var(--accent), var(--accent-light));
  color: #fff;
  font-weight: 900;
  font-size: 1.4rem;
  background-size: cover;
  background-position: center;
  overflow: hidden;
}

.settings-photo-editor strong {
  color: var(--text);
}

.settings-photo-editor p {
  margin: 4px 0 10px;
  color: var(--text-secondary);
  line-height: 1.35;
  font-size: 0.84rem;
}

.settings-photo-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.settings-mini-btn.ghost {
  background: rgba(255, 255, 255, 0.055);
  color: var(--text-secondary);
  border-color: rgba(255, 255, 255, 0.10);
}

.settings-readonly-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 10px;
  margin-top: 14px;
}

.settings-readonly-grid div {
  padding: 12px;
  border-radius: 15px;
  background: rgba(204, 255, 0, 0.075);
  border: 1px solid rgba(204, 255, 0, 0.16);
}

.settings-readonly-grid span {
  display: block;
  color: var(--text-secondary);
  font-size: 0.68rem;
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  margin-bottom: 5px;
}

.settings-readonly-grid strong {
  color: var(--accent-light);
  line-height: 1.25;
}

.header-user-avatar,
.settings-avatar,
.profile-manager-avatar {
  background-size: cover;
  background-position: center;
  overflow: hidden;
}

.profile-manager-avatar.has-photo {
  background-size: cover;
  background-position: center;
  color: transparent;
}

@media (min-width: 768px) {
  .settings-readonly-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 460px) {
  .settings-photo-editor {
    grid-template-columns: 1fr;
  }

  .settings-photo-preview {
    width: 88px;
    height: 88px;
  }
}


/* ===== PROFILE SETTINGS REFINEMENT + WEIGHT CHECK-IN V34 ===== */
.settings-grid.refined {
  grid-template-columns: 1fr;
}

.settings-card-plan {
  background:
    radial-gradient(circle at top right, rgba(204, 255, 0, 0.12), transparent 35%),
    var(--bg-card);
}

.settings-plan-grid.compact {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.settings-profile-editor-layout {
  display: grid;
  grid-template-columns: 1fr;
  gap: 16px;
}

.settings-photo-editor.compact {
  margin-bottom: 0;
}

.settings-form-grid.profile-only {
  grid-template-columns: 1fr;
}

.settings-readonly-field {
  padding: 12px;
  border-radius: 15px;
  background: rgba(255, 255, 255, 0.045);
  border: 1px solid rgba(255, 255, 255, 0.08);
}

.settings-readonly-field span {
  display: block;
  color: var(--text-secondary);
  font-size: 0.68rem;
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  margin-bottom: 5px;
}

.settings-readonly-field strong {
  color: var(--text);
  line-height: 1.25;
}

.settings-actions.end {
  justify-content: flex-end;
}

.checkin-weight-box {
  padding: 14px;
  border-radius: 16px;
  background: linear-gradient(135deg, rgba(204, 255, 0, 0.14), rgba(255, 255, 255, 0.045));
  border: 1px solid rgba(204, 255, 0, 0.24);
}

.checkin-weight-box strong {
  display: block;
  color: #fff;
  margin-bottom: 4px;
}

.checkin-weight-box p {
  margin: 0 0 10px;
  color: rgba(255, 255, 255, 0.72);
  font-size: 0.82rem;
  line-height: 1.35;
  text-align: left;
}

@media (min-width: 768px) {
  .settings-grid.refined {
    grid-template-columns: 1fr;
  }

  .settings-plan-grid.compact {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .settings-profile-editor-layout {
    grid-template-columns: minmax(260px, 0.85fr) minmax(0, 1.15fr);
    align-items: start;
  }

  .settings-form-grid.profile-only {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 520px) {
  .settings-plan-grid.compact {
    grid-template-columns: 1fr;
  }

  .settings-actions.end {
    justify-content: stretch;
  }
}


/* ===== PROFILE/NAV/MODAL POLISH V35 ===== */
.settings-hero h2 {
  font-size: 1.55rem;
}

.settings-profile-editor-layout {
  align-items: stretch;
}

.settings-photo-editor.compact {
  height: 100%;
  min-height: 320px;
  align-content: start;
}

.settings-photo-preview {
  flex: 0 0 auto;
}

.settings-readonly-field.locked-weight {
  border-color: rgba(204, 255, 0, 0.22);
  background: rgba(204, 255, 0, 0.075);
}

.settings-readonly-field small {
  display: block;
  margin-top: 6px;
  color: var(--text-muted);
  font-size: 0.72rem;
  line-height: 1.25;
}

@media (min-width: 768px) {
  .settings-profile-editor-layout {
    grid-template-columns: minmax(360px, 0.95fr) minmax(0, 1.05fr);
  }

  .settings-photo-editor.compact {
    grid-template-columns: 96px 1fr;
  }

  .settings-photo-preview {
    width: 88px;
    height: 88px;
    border-radius: 24px;
  }
}

/* Bottom nav com 5 itens: Início | Treinos | IA Coach | Estatísticas | Perfil */
.bottom-nav {
  gap: 4px;
}

.nav-item {
  min-width: 0;
}

.nav-item span {
  white-space: nowrap;
}

@media (min-width: 768px) {
  .bottom-nav {
    width: min(820px, calc(100vw - 48px));
  }

  .nav-item {
    padding-left: 14px;
    padding-right: 14px;
  }
}

@media (max-width: 520px) {
  .nav-item {
    padding-left: 8px;
    padding-right: 8px;
  }

  .nav-item span {
    font-size: 0.58rem;
  }
}


/* ===== FINAL PROFILE PAGE POLISH V36 ===== */
.settings-hero {
  padding: 22px 24px;
}

.settings-hero-copy h2 {
  margin: 0 0 8px;
  font-size: clamp(1.35rem, 2.5vw, 1.85rem);
  line-height: 1.05;
}

.settings-hero-copy p {
  max-width: 820px;
  font-size: 0.98rem;
}

/* Foto centralizada para não sobrar aquele vazio visual no card esquerdo */
.settings-photo-editor.compact {
  display: flex !important;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
  gap: 18px;
  min-height: 340px;
  padding: 26px 18px;
}

.settings-photo-editor.compact .settings-photo-preview {
  width: 116px;
  height: 116px;
  border-radius: 28px;
  font-size: 1.8rem;
}

.settings-photo-editor.compact p {
  max-width: 280px;
  margin-left: auto;
  margin-right: auto;
}

.settings-photo-actions {
  justify-content: center;
}

/* Campo nome alinhado e responsivo igual aos cards ao lado */
.settings-form-grid.profile-only {
  align-items: stretch;
  gap: 14px;
}

.settings-form-grid.profile-only > label {
  min-width: 0;
  width: 100%;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  min-height: 94px;
  padding: 0;
}

.settings-form-grid.profile-only > label .settings-input,
.settings-form-grid.profile-only > label input.settings-input {
  width: 100%;
  min-width: 0;
}

.settings-readonly-field {
  min-height: 94px;
  display: flex;
  flex-direction: column;
  justify-content: center;
}

.header-user-profile {
  cursor: pointer;
}

@media (min-width: 768px) {
  .settings-profile-editor-layout {
    grid-template-columns: minmax(360px, 0.9fr) minmax(0, 1.1fr);
  }
}

@media (max-width: 767px) {
  .settings-photo-editor.compact {
    min-height: auto;
    padding: 18px;
  }

  .settings-photo-editor.compact .settings-photo-preview {
    width: 96px;
    height: 96px;
  }

  .settings-form-grid.profile-only > label,
  .settings-readonly-field {
    min-height: auto;
  }
}


/* ===== PROFILE FINAL ORDER + NAME ALIGNMENT V37 ===== */
.settings-hero h2 {
  font-size: clamp(1.55rem, 3vw, 2.15rem);
}

.settings-hero p {
  max-width: 780px;
}

.settings-form-grid.profile-only > label {
  min-height: 96px;
  padding: 12px;
  border-radius: 15px;
  background: rgba(255, 255, 255, 0.045);
  border: 1px solid rgba(255, 255, 255, 0.08);
  justify-content: center;
}

.settings-form-grid.profile-only > label .settings-input {
  margin-top: 2px;
}

.settings-form-grid.profile-only .settings-readonly-field {
  min-height: 96px;
  display: flex;
  flex-direction: column;
  justify-content: center;
}

@media (min-width: 768px) {
  .settings-profile-editor-layout {
    grid-template-columns: minmax(360px, 0.95fr) minmax(0, 1.05fr);
  }

  .settings-photo-editor.compact {
    min-height: 100%;
  }
}

@media (max-width: 520px) {
  .settings-form-grid.profile-only > label,
  .settings-form-grid.profile-only .settings-readonly-field {
    min-height: auto;
  }
}


/* ===== TRAINING HUB + EXPORT V38 ===== */
.training-hub-container {
  max-width: 980px;
  margin: 0 auto;
  display: flex;
  flex-direction: column;
  gap: 14px;
}

.training-hub-hero {
  display: flex;
  justify-content: space-between;
  gap: 16px;
  align-items: flex-start;
  padding: 18px;
  border-radius: 22px;
  background:
    radial-gradient(circle at top right, rgba(204, 255, 0, 0.18), transparent 36%),
    var(--bg-card);
  border: 1px solid var(--border);
}

.training-hub-eyebrow {
  display: block;
  color: var(--accent-light);
  font-size: 0.72rem;
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  margin-bottom: 6px;
}

.training-hub-hero h2 {
  margin: 0 0 5px;
  font-size: clamp(1.35rem, 3vw, 2rem);
}

.training-hub-hero p {
  margin: 0;
  color: var(--text-secondary);
  line-height: 1.45;
  max-width: 720px;
}

.training-hub-kpi {
  min-width: 116px;
  padding: 12px 14px;
  border-radius: 18px;
  background: rgba(204, 255, 0, 0.10);
  border: 1px solid rgba(204, 255, 0, 0.24);
  text-align: right;
}

.training-hub-kpi span {
  display: block;
  color: var(--text-secondary);
  font-size: 0.68rem;
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  margin-bottom: 4px;
}

.training-hub-kpi strong {
  color: var(--accent-light);
  font-size: 1.2rem;
}

.phase-dashboard-card {
  padding: 16px;
  border-radius: 22px;
  background: var(--bg-card);
  border: 1px solid var(--border);
}

.phase-dashboard-header {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  align-items: flex-start;
  margin-bottom: 14px;
}

.phase-dashboard-header span {
  display: block;
  color: var(--text-secondary);
  font-size: 0.68rem;
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: 0.09em;
  margin-bottom: 4px;
}

.phase-dashboard-header h3 {
  margin: 0;
  font-size: 1.05rem;
}

.phase-dashboard-header small {
  color: var(--text-secondary);
  font-size: 0.75rem;
  line-height: 1.3;
  text-align: right;
}

.phase-grid-compact {
  display: grid;
  grid-template-columns: 1fr;
  gap: 10px;
}

.phase-card.compact {
  width: 100%;
  min-height: 0;
  padding: 14px;
  border-radius: 18px;
  text-align: left;
  background: rgba(255, 255, 255, 0.045) !important;
  border: 1px solid rgba(255, 255, 255, 0.08);
  color: var(--text);
  font-family: 'Outfit', sans-serif;
  cursor: pointer;
}

.phase-card.compact:hover {
  border-color: rgba(204, 255, 0, 0.30);
  background: rgba(204, 255, 0, 0.07) !important;
}

.phase-card.compact .phase-card-top {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 12px;
}

.phase-card.compact .phase-icon {
  width: 42px;
  height: 42px;
  display: grid;
  place-items: center;
  border-radius: 14px;
  background: rgba(204, 255, 0, 0.13);
  font-size: 1.25rem;
}

.phase-card.compact h2 {
  margin: 0;
  font-size: 0.98rem;
  color: var(--text);
  text-transform: none;
}

.phase-card.compact p {
  margin: 3px 0 0;
  color: var(--text-secondary);
  font-size: 0.76rem;
}

.phase-card.compact .phase-progress {
  height: 7px;
  margin: 0 0 9px;
  background: rgba(255, 255, 255, 0.08);
}

.phase-meta-row {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 10px;
  color: var(--text-secondary);
  font-size: 0.76rem;
  font-weight: 800;
}

.phase-meta-row strong {
  color: var(--accent-light);
  white-space: nowrap;
}

.training-export-card {
  margin-top: 0;
}

.training-export-grid {
  grid-template-columns: 1fr;
}

@media (min-width: 640px) {
  .phase-grid-compact {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .training-export-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (min-width: 980px) {
  .phase-grid-compact {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }

  .training-export-grid {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }
}

@media (max-width: 520px) {
  .training-hub-hero,
  .phase-dashboard-header,
  .export-backup-header {
    flex-direction: column;
  }

  .training-hub-kpi {
    text-align: left;
    width: 100%;
  }

  .phase-dashboard-header small {
    text-align: left;
  }
}


/* ===== RunEvo REBRAND V39 ===== */
.login-access {
  margin-top: 4px;
  color: var(--text-secondary);
  font-size: 0.8rem;
  font-weight: 800;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.header-title,
.logo-text {
  letter-spacing: 0.08em;
}


/* ===== MOBILE PHOTO FIX + FIRST LOGIN TOUR V40 ===== */
.settings-photo-status {
  display: block;
  margin-top: 8px;
  min-height: 16px;
  color: var(--text-muted);
  font-size: 0.72rem;
  line-height: 1.25;
}

.settings-photo-status.success {
  color: #8ee68e;
}

.settings-photo-status.error {
  color: #ff9b91;
}

.settings-photo-status.info {
  color: var(--accent-light);
}

.tour-card {
  text-align: left;
}

.tour-card p {
  margin: 0;
  color: var(--text-secondary);
  line-height: 1.45;
}

.tour-card small {
  display: block;
  margin-top: 12px;
  color: var(--text-muted);
  font-weight: 800;
  text-align: center;
}

.tour-progress {
  display: flex;
  justify-content: center;
  gap: 7px;
  margin-top: 16px;
}

.tour-progress span {
  width: 8px;
  height: 8px;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.16);
}

.tour-progress span.active {
  width: 22px;
  background: linear-gradient(90deg, var(--accent), var(--accent-light));
}

@media (max-width: 520px) {
  .tour-card {
    text-align: center;
  }
}


/* ===== LOGO/PWA + NAV ALIGNMENT V41 ===== */
.bottom-nav {
  display: grid !important;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  align-items: center !important;
  justify-items: stretch !important;
  justify-content: initial !important;
  gap: 0 !important;
}

.nav-item {
  width: 100% !important;
  min-width: 0 !important;
  height: calc(var(--nav-height) - var(--safe-bottom));
  padding: 7px 4px !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  text-align: center !important;
}

.nav-item svg {
  display: block;
  width: 23px;
  height: 23px;
  margin: 0 auto;
  flex: 0 0 auto;
}

.nav-item span {
  display: block;
  width: 100%;
  max-width: 100%;
  text-align: center;
  line-height: 1.05;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

@media (min-width: 768px) {
  .bottom-nav {
    width: min(820px, calc(100vw - 48px));
    left: 50%;
    right: auto;
    transform: translateX(-50%);
    border-radius: 28px 28px 0 0;
    border-left: 1px solid var(--border);
    border-right: 1px solid var(--border);
  }

  .nav-item {
    padding-inline: 6px !important;
  }
}

@media (max-width: 420px) {
  .nav-item span {
    font-size: 0.58rem;
    letter-spacing: 0.02em;
  }

  .nav-item svg {
    width: 22px;
    height: 22px;
  }
}


/* ===== LOGOUT / AUTH SCREEN FIX V42 ===== */
.login-screen {
  background: #000 !important;
  background-color: #000 !important;
  z-index: 5000 !important;
  min-height: 100dvh;
  isolation: isolate;
}

.login-screen::before {
  content: "";
  position: fixed;
  inset: 0;
  z-index: -1;
  background:
    radial-gradient(circle at top right, rgba(204, 255, 0, 0.12), transparent 35%),
    #000;
}

#app.hidden,
.app.hidden {
  display: none !important;
  visibility: hidden !important;
  pointer-events: none !important;
}

.login-screen:not(.hidden) {
  display: flex !important;
}


/* ===== TOUR HELP ACCESS V43 ===== */
/* Substitui o contador de KM do header por um botão de ajuda/tour no desktop. */
.header-tour-help {
  width: 36px;
  height: 36px;
  border-radius: 999px;
  border: 1px solid rgba(204, 255, 0, 0.35);
  background: rgba(204, 255, 0, 0.10);
  color: var(--accent-light);
  font-family: 'Outfit', sans-serif;
  font-weight: 900;
  font-size: 1rem;
  cursor: pointer;
  display: inline-grid;
  place-items: center;
  flex: 0 0 auto;
  transition: transform 0.2s ease, background 0.2s ease, border-color 0.2s ease;
}

.header-tour-help:hover {
  background: rgba(204, 255, 0, 0.18);
  border-color: rgba(204, 255, 0, 0.55);
}

.header-tour-help:active {
  transform: scale(0.94);
}

/* Wrapper do item Perfil para permitir o botão ? ao lado no mobile sem criar uma sexta aba. */
.nav-item-wrap {
  position: relative;
  width: 100%;
  min-width: 0;
  height: calc(var(--nav-height) - var(--safe-bottom));
  display: flex;
  align-items: center;
  justify-content: center;
}

.nav-item-wrap > .nav-item {
  height: 100%;
}

.nav-item-wrap.active .nav-item {
  color: var(--accent);
}

.nav-item-wrap.active .nav-item svg {
  stroke: var(--accent);
}

.nav-tour-help {
  position: absolute;
  top: 5px;
  right: 8px;
  width: 19px;
  height: 19px;
  border-radius: 999px;
  border: 1px solid rgba(204, 255, 0, 0.40);
  background: rgba(204, 255, 0, 0.13);
  color: var(--accent-light);
  font-size: 0.72rem;
  font-weight: 900;
  font-family: 'Outfit', sans-serif;
  line-height: 1;
  display: grid;
  place-items: center;
  cursor: pointer;
  z-index: 2;
}

.nav-tour-help:active {
  transform: scale(0.9);
}

@media (min-width: 768px) {
  .nav-tour-help {
    display: none;
  }

  .header-tour-help {
    display: inline-grid;
  }
}

@media (max-width: 767px) {
  .header-tour-help {
    display: none !important;
  }

  .nav-tour-help {
    display: grid;
  }
}

@media (max-width: 420px) {
  .nav-tour-help {
    right: 5px;
    top: 4px;
    width: 18px;
    height: 18px;
    font-size: 0.68rem;
  }
}


/* ===== TOUR HELP MOBILE POSITION + REPLAY FIX V44 ===== */
/* O botão ? segue o padrão web: fica no header, ao lado do perfil, também no mobile. */
@media (max-width: 767px) {
  .header-right {
    display: flex !important;
    align-items: center !important;
    gap: 8px !important;
  }

  .header-tour-help {
    display: inline-grid !important;
    width: 34px;
    height: 34px;
    font-size: 0.95rem;
    order: 2;
  }

  .header-user-profile {
    order: 1;
  }

  .nav-tour-help {
    display: none !important;
  }
}

@media (min-width: 768px) {
  .header-tour-help {
    display: inline-grid !important;
  }

  .nav-tour-help {
    display: none !important;
  }
}


/* ===== IA COACH POLISH V47 ===== */
.ai-trust-card {
  display: grid;
  gap: 14px;
  padding: 18px;
  margin-bottom: 16px;
  border-radius: var(--radius);
  border: 1px solid rgba(204, 255, 0, 0.22);
  background:
    radial-gradient(circle at top right, rgba(204, 255, 0, 0.15), transparent 32%),
    var(--bg-card);
}

.ai-trust-eyebrow {
  display: block;
  color: var(--accent-light);
  font-size: 0.7rem;
  font-weight: 900;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  margin-bottom: 5px;
}

.ai-trust-main h3 {
  margin: 0 0 6px;
  color: var(--text);
  font-size: 1.05rem;
}

.ai-trust-main p {
  margin: 0;
  color: var(--text-secondary);
  line-height: 1.45;
  font-size: 0.86rem;
}

.ai-trust-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 9px;
}

.ai-trust-grid div {
  padding: 11px;
  border-radius: 14px;
  background: rgba(255, 255, 255, 0.045);
  border: 1px solid rgba(255, 255, 255, 0.075);
}

.ai-trust-grid strong,
.ai-trust-grid span {
  display: block;
}

.ai-trust-grid strong {
  color: var(--accent-light);
  font-size: 1rem;
}

.ai-trust-grid span {
  margin-top: 3px;
  color: var(--text-secondary);
  font-size: 0.7rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.05em;
}

.ai-loading {
  border: 1px solid rgba(204, 255, 0, 0.20);
  background:
    radial-gradient(circle at top, rgba(204, 255, 0, 0.10), transparent 38%),
    rgba(255, 255, 255, 0.035);
  border-radius: var(--radius);
}

.ai-loading-steps {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 7px;
  margin-top: 18px;
}

.ai-loading-steps span {
  padding: 8px 6px;
  border-radius: 999px;
  color: var(--text-muted);
  background: rgba(255, 255, 255, 0.055);
  border: 1px solid rgba(255, 255, 255, 0.075);
  font-size: 0.68rem;
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: 0.04em;
}

.ai-loading-steps span.active {
  color: #fff;
  background: rgba(204, 255, 0, 0.22);
  border-color: rgba(204, 255, 0, 0.42);
}

.ai-loading-steps span.done {
  color: var(--green);
  border-color: rgba(76, 217, 100, 0.24);
}

.ai-field-error .ai-label {
  color: #ff9b91;
}

.ai-field-error .ai-input,
.ai-field-error .date-input-wrap .ai-input,
.ai-field-error select.ai-input {
  border-color: rgba(255, 59, 48, 0.78) !important;
  box-shadow: 0 0 0 3px rgba(255, 59, 48, 0.12);
}

.ai-error-box h4 {
  margin: 8px 0 4px;
  color: #fff;
  font-size: 1rem;
}

.ai-error-box small {
  display: block;
  color: rgba(255, 255, 255, 0.66);
  line-height: 1.4;
  margin-bottom: 14px;
}

@media (min-width: 768px) {
  .ai-trust-card {
    grid-template-columns: 1.2fr 0.8fr;
    align-items: center;
  }
}

@media (max-width: 560px) {
  .ai-trust-grid,
  .ai-loading-steps {
    grid-template-columns: 1fr 1fr;
  }
}


/* ===== GLOBAL TOAST FIX V50 ===== */
.toast-container {
  position: fixed;
  left: 50%;
  bottom: calc(var(--nav-height, 76px) + 18px + env(safe-area-inset-bottom));
  transform: translateX(-50%);
  z-index: 9999;
  display: flex;
  flex-direction: column;
  gap: 8px;
  width: min(420px, calc(100vw - 32px));
  pointer-events: none;
}

.app-toast {
  opacity: 0;
  transform: translateY(10px) scale(0.98);
  padding: 12px 14px;
  border-radius: 16px;
  background: rgba(28, 28, 28, 0.96);
  border: 1px solid rgba(255, 255, 255, 0.10);
  color: #fff;
  font-family: 'Outfit', sans-serif;
  font-weight: 800;
  font-size: 0.86rem;
  text-align: center;
  box-shadow: 0 16px 40px rgba(0, 0, 0, 0.35);
  transition: opacity 0.22s ease, transform 0.22s ease;
}

.app-toast.show {
  opacity: 1;
  transform: translateY(0) scale(1);
}

.app-toast.success {
  border-color: rgba(76, 217, 100, 0.28);
  background: linear-gradient(135deg, rgba(30, 70, 40, 0.98), rgba(28, 28, 28, 0.96));
}

.app-toast.error {
  border-color: rgba(255, 59, 48, 0.32);
  background: linear-gradient(135deg, rgba(90, 28, 24, 0.98), rgba(28, 28, 28, 0.96));
}

.app-toast.info {
  border-color: rgba(204, 255, 0, 0.30);
  background: linear-gradient(135deg, rgba(204, 255, 0, 0.20), rgba(28, 28, 28, 0.96));
}

@media (max-width: 767px) {
  .toast-container {
    bottom: calc(var(--nav-height, 76px) + 12px + env(safe-area-inset-bottom));
  }
}


/* ===== WORKOUT DESCRIPTION READABILITY V52 ===== */
.wd-description-pro {
  position: relative;
  overflow: hidden;
  padding: 16px;
  border-radius: var(--radius);
  background:
    radial-gradient(circle at top right, rgba(204, 255, 0, 0.10), transparent 35%),
    var(--bg-card);
  border: 1px solid rgba(204, 255, 0, 0.18);
}

.wd-desc-header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 14px;
}

.wd-desc-eyebrow {
  display: block;
  color: var(--accent-light);
  font-size: 0.68rem;
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  margin-bottom: 3px;
}

.wd-description-pro h3 {
  margin: 0;
  font-size: 1.05rem;
  color: var(--text);
}

.desc-structured {
  display: grid;
  gap: 10px;
}

.desc-step {
  display: grid;
  grid-template-columns: 42px minmax(0, 1fr);
  gap: 12px;
  padding: 13px;
  border-radius: 16px;
  background: rgba(255, 255, 255, 0.045);
  border: 1px solid rgba(255, 255, 255, 0.075);
}

.desc-step-icon {
  width: 42px;
  height: 42px;
  border-radius: 14px;
  display: grid;
  place-items: center;
  background: linear-gradient(135deg, rgba(204, 255, 0, 0.20), rgba(255, 255, 255, 0.055));
  border: 1px solid rgba(204, 255, 0, 0.18);
  font-size: 1.1rem;
}

.desc-step-content span {
  display: block;
  color: var(--text-secondary);
  font-size: 0.7rem;
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  margin-bottom: 4px;
}

.desc-step-content p {
  margin: 0;
  color: var(--text);
  line-height: 1.55;
  font-size: 0.92rem;
}

.desc-highlight {
  display: inline-block;
  padding: 1px 6px;
  margin: 0 1px;
  border-radius: 999px;
  font-weight: 900;
  white-space: nowrap;
}

.desc-highlight.km {
  color: #fff;
  background: rgba(204, 255, 0, 0.20);
  border: 1px solid rgba(204, 255, 0, 0.26);
}

.desc-highlight.pace {
  color: #ffe1c8;
  background: rgba(255, 140, 66, 0.16);
  border: 1px solid rgba(255, 140, 66, 0.24);
}

.desc-highlight.rep {
  color: #fff4aa;
  background: rgba(255, 214, 10, 0.14);
  border: 1px solid rgba(255, 214, 10, 0.22);
}

.desc-warning {
  padding: 13px;
  border-radius: 16px;
  background: rgba(255, 193, 7, 0.10);
  border: 1px solid rgba(255, 193, 7, 0.22);
}

.desc-warning strong {
  display: block;
  color: #ffe08a;
  margin-bottom: 4px;
}

.desc-warning p {
  margin: 0;
  color: rgba(255, 255, 255, 0.75);
  line-height: 1.45;
}

.desc-empty {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 14px;
  border-radius: 16px;
  background: rgba(255, 255, 255, 0.045);
}

.desc-empty p {
  margin: 0;
  color: var(--text-secondary);
}

@media (min-width: 860px) {
  .desc-structured {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .desc-step:first-child,
  .desc-warning {
    grid-column: 1 / -1;
  }
}

@media (max-width: 620px) {
  .wd-desc-header {
    flex-direction: column;
  }

  .wd-desc-header .btn-edit-inline {
    width: 100%;
  }

  .desc-step {
    grid-template-columns: 1fr;
  }

  .desc-step-icon {
    width: 38px;
    height: 38px;
  }
}


/* ===== TRAINING MANAGER + ACTION SIMPLIFICATION V54 ===== */
.manual-plan-manager-card {
  padding: 18px;
  margin-bottom: 16px;
  border-radius: var(--radius);
  border: 1px solid rgba(204, 255, 0, 0.22);
  background:
    radial-gradient(circle at top right, rgba(204, 255, 0, 0.14), transparent 35%),
    var(--bg-card);
}

.manual-manager-header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 14px;
  margin-bottom: 14px;
}

.manual-manager-eyebrow {
  display: block;
  color: var(--accent-light);
  font-size: 0.68rem;
  font-weight: 900;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  margin-bottom: 4px;
}

.manual-manager-header h3 {
  margin: 0 0 5px;
  color: var(--text);
  font-size: 1.1rem;
}

.manual-manager-header p {
  margin: 0;
  color: var(--text-secondary);
  line-height: 1.4;
  font-size: 0.86rem;
}

.manual-manager-badge {
  flex: 0 0 auto;
  border: 1px solid rgba(204, 255, 0, 0.28);
  color: var(--accent-light);
  background: rgba(204, 255, 0, 0.10);
  border-radius: 999px;
  padding: 8px 11px;
  font-size: 0.72rem;
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: 0.06em;
}

.manual-manager-grid {
  display: grid;
  grid-template-columns: 0.8fr 1.2fr;
  gap: 12px;
  margin-bottom: 12px;
}

.manual-manager-grid label {
  display: flex;
  flex-direction: column;
  gap: 7px;
  color: var(--text-secondary);
  font-size: 0.72rem;
  font-weight: 900;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.manual-manager-input {
  width: 100%;
  min-height: 46px;
  border-radius: 14px;
  border: 1px solid rgba(255, 255, 255, 0.10);
  background: rgba(0, 0, 0, 0.30);
  color: var(--text);
  padding: 11px 12px;
  font-family: 'Outfit', sans-serif;
  font-weight: 700;
}

.manual-manager-actions {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
  margin-bottom: 10px;
}

.manual-manager-btn {
  border: 1px solid rgba(255, 255, 255, 0.10);
  background: rgba(255, 255, 255, 0.055);
  color: var(--text);
  min-height: 46px;
  border-radius: 14px;
  font-family: 'Outfit', sans-serif;
  font-weight: 900;
  cursor: pointer;
}

.manual-manager-btn.primary {
  background: linear-gradient(135deg, rgba(204, 255, 0, 0.95), rgba(255, 140, 66, 0.90));
  border-color: rgba(204, 255, 0, 0.55);
  color: #fff;
}

.manual-manager-btn.danger {
  color: #ffb4ad;
  border-color: rgba(255, 59, 48, 0.24);
  background: rgba(255, 59, 48, 0.08);
}

#manual-manager-status {
  color: var(--text-muted);
  line-height: 1.35;
}

.workout-action-grid.two-actions {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.skip-info-box {
  padding: 13px;
  border-radius: 16px;
  background: rgba(255, 193, 7, 0.10);
  border: 1px solid rgba(255, 193, 7, 0.22);
}

.skip-info-box strong {
  display: block;
  color: #ffe08a;
  margin-bottom: 4px;
}

.skip-info-box p {
  margin: 0;
  color: rgba(255, 255, 255, 0.75);
  line-height: 1.4;
}

@media (max-width: 760px) {
  .manual-manager-header,
  .manual-manager-grid,
  .manual-manager-actions {
    grid-template-columns: 1fr;
  }

  .manual-manager-header {
    display: grid;
  }

  .workout-action-grid.two-actions {
    grid-template-columns: 1fr;
  }
}


/* ===== MOBILE TRAINING ACTIONS / RESPONSIVENESS V55 ===== */
.wd-stat[onclick],
.wd-stat[style*="cursor"] {
  cursor: default !important;
}

.wd-desc-lock {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 8px 11px;
  border-radius: 999px;
  color: var(--text-muted);
  background: rgba(255, 255, 255, 0.055);
  border: 1px solid rgba(255, 255, 255, 0.08);
  font-size: 0.72rem;
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: 0.04em;
}

.workout-action-grid.two-actions {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px;
}

.workout-action-grid.two-actions .btn-complete,
.workout-action-grid.two-actions .btn-status {
  min-height: 52px;
  border-radius: 16px;
  font-size: 0.95rem;
}

@media (max-width: 767px) {
  .page {
    padding-left: max(16px, env(safe-area-inset-left));
    padding-right: max(16px, env(safe-area-inset-right));
  }

  .wd-header {
    padding-top: 8px;
    text-align: center;
  }

  .wd-title {
    font-size: clamp(1.45rem, 7vw, 2rem);
    line-height: 1.1;
  }

  .wd-stats {
    grid-template-columns: 1fr 1fr;
    gap: 10px;
  }

  .wd-stat {
    min-height: 104px;
    padding: 14px 10px;
    border-radius: 18px;
  }

  .wd-stat-value {
    font-size: clamp(1rem, 4.8vw, 1.35rem) !important;
    line-height: 1.15;
    word-break: break-word;
  }

  .wd-stat-label {
    font-size: 0.68rem;
    letter-spacing: 0.08em;
  }

  .wd-description-pro {
    padding: 14px;
  }

  .desc-step {
    padding: 12px;
    gap: 9px;
  }

  .desc-step-content p {
    font-size: 0.88rem;
    line-height: 1.5;
  }

  .desc-highlight {
    white-space: normal;
  }

  .workout-action-grid.two-actions {
    grid-template-columns: 1fr;
    gap: 10px;
  }

  .workout-action-grid.two-actions .btn-complete,
  .workout-action-grid.two-actions .btn-status {
    width: 100%;
    min-height: 54px;
    font-size: 1rem;
  }

  .workout-status-summary {
    border-radius: 18px;
    padding: 14px;
  }

  .btn-undo {
    width: 100%;
    min-height: 50px;
    border-radius: 16px;
  }
}

@media (max-width: 390px) {
  .wd-stats {
    grid-template-columns: 1fr;
  }

  .wd-stat {
    min-height: 88px;
  }

  .desc-step-icon {
    width: 34px;
    height: 34px;
  }
}


/* ===== TRAINING ZONES ENGINE V56 ===== */
.ai-required {
  color: var(--accent-light);
  font-size: 0.75rem;
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: 0.06em;
}

.training-zones-card {
  margin: 18px 0;
  padding: 16px;
  border-radius: var(--radius);
  background:
    radial-gradient(circle at top right, rgba(204, 255, 0, 0.11), transparent 36%),
    var(--bg-card);
  border: 1px solid rgba(204, 255, 0, 0.22);
}

.training-zones-card.compact {
  border-color: rgba(255,255,255,0.10);
}

.tz-header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 12px;
}

.tz-header span {
  display: block;
  color: var(--accent-light);
  font-size: 0.68rem;
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  margin-bottom: 3px;
}

.tz-header h3 {
  margin: 0;
  color: var(--text);
  font-size: 1.05rem;
}

.tz-anchor {
  min-width: 84px;
  padding: 10px 12px;
  border-radius: 14px;
  text-align: center;
  background: rgba(204, 255, 0, 0.14);
  border: 1px solid rgba(204, 255, 0, 0.28);
}

.tz-anchor small,
.tz-anchor strong {
  display: block;
}

.tz-anchor small {
  color: var(--text-secondary);
  font-size: 0.68rem;
  font-weight: 900;
  text-transform: uppercase;
}

.tz-anchor strong {
  color: #fff;
  font-size: 0.95rem;
}

.tz-table {
  display: grid;
  gap: 8px;
}

.tz-row {
  display: grid;
  grid-template-columns: minmax(150px, 0.9fr) minmax(0, 1.1fr);
  gap: 10px;
  align-items: center;
  padding: 10px 12px;
  border-radius: 15px;
  background: rgba(255, 255, 255, 0.045);
  border: 1px solid rgba(255, 255, 255, 0.08);
}

.tz-row.z3 {
  background: rgba(204, 255, 0, 0.13);
  border-color: rgba(204, 255, 0, 0.30);
}

.tz-name strong {
  display: inline-grid;
  place-items: center;
  width: 38px;
  height: 38px;
  border-radius: 13px;
  margin-right: 8px;
  background: rgba(255, 255, 255, 0.08);
  color: #fff;
  font-size: 1rem;
}

.tz-name span {
  color: var(--text-secondary);
  font-size: 0.78rem;
  font-weight: 800;
}

.tz-values {
  text-align: right;
}

.tz-values span,
.tz-values small {
  display: block;
}

.tz-values span {
  color: var(--text);
  font-weight: 900;
  font-size: 0.88rem;
}

.tz-values small {
  color: var(--text-muted);
  margin-top: 2px;
  font-size: 0.72rem;
}

.tz-note,
.tz-empty {
  margin: 12px 0 0;
  color: var(--text-secondary);
  line-height: 1.4;
  font-size: 0.8rem;
}

.desc-highlight.zone {
  color: #fff;
  background: linear-gradient(135deg, rgba(204, 255, 0, 0.36), rgba(255, 145, 77, 0.22));
  border: 1px solid rgba(204, 255, 0, 0.36);
}

@media (max-width: 680px) {
  .tz-header {
    flex-direction: column;
  }

  .tz-anchor {
    width: 100%;
  }

  .tz-row {
    grid-template-columns: 1fr;
  }

  .tz-values {
    text-align: left;
    padding-left: 46px;
  }
}


/* ===== ZONES + SIMPLE PRESCRIPTION + SKIP REDISTRIBUTION V57 ===== */
.tz-row.z3 {
  background: rgba(255, 255, 255, 0.045) !important;
  border-color: rgba(255, 255, 255, 0.08) !important;
}

.tz-header {
  margin-bottom: 10px;
}

.training-zones-card .tz-note {
  font-size: 0.76rem;
}

.feedback-form-pro {
  text-align: left;
}

.feedback-workout-summary {
  display: grid;
  gap: 4px;
  padding: 13px;
  margin-bottom: 14px;
  border-radius: 16px;
  background: rgba(204, 255, 0, 0.10);
  border: 1px solid rgba(204, 255, 0, 0.22);
}

.feedback-workout-summary strong {
  color: #fff;
  font-size: 1rem;
}

.feedback-workout-summary span {
  color: var(--text-secondary);
  font-size: 0.82rem;
  line-height: 1.35;
}

.feedback-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px;
}

.feedback-form-pro label {
  display: grid;
  gap: 7px;
  color: var(--text);
  font-weight: 900;
}

.feedback-form-pro label span {
  color: var(--text-muted);
  font-weight: 800;
}

.skip-info-box.pro {
  margin-bottom: 14px;
  border-radius: 16px;
  background: rgba(255, 193, 7, 0.10);
  border: 1px solid rgba(255, 193, 7, 0.22);
}

.skip-info-box.pro strong {
  color: #ffe08a;
}

.skip-info-box.pro p {
  color: rgba(255, 255, 255, 0.78);
  line-height: 1.45;
}

.desc-step-content p {
  font-size: 0.98rem;
  font-weight: 850;
}

.desc-step {
  align-items: center;
}

@media (max-width: 640px) {
  .feedback-grid {
    grid-template-columns: 1fr;
  }

  .feedback-form-pro {
    max-height: min(70vh, 640px);
    overflow-y: auto;
    padding-right: 2px;
  }

  .tz-table {
    gap: 7px;
  }

  .tz-row {
    padding: 9px 10px;
  }

  .tz-name strong {
    width: 34px;
    height: 34px;
  }

  .tz-values {
    padding-left: 42px;
  }

  .desc-step-content p {
    font-size: 0.95rem;
  }
}


/* ===== CLEAN PRESCRIPTION DESCRIPTION V58 ===== */
.wd-description-pro {
  background:
    radial-gradient(circle at top right, rgba(204, 255, 0, 0.08), transparent 34%),
    var(--bg-card) !important;
}

.wd-desc-header {
  margin-bottom: 12px !important;
}

.prescription-card {
  border-radius: 18px;
  overflow: hidden;
  border: 1px solid rgba(255,255,255,0.09);
  background: rgba(0,0,0,0.18);
}

.prescription-label {
  padding: 10px 14px;
  color: var(--accent-light);
  background: rgba(204, 255, 0, 0.12);
  border-bottom: 1px solid rgba(204, 255, 0, 0.18);
  font-size: 0.72rem;
  font-weight: 950;
  text-transform: uppercase;
  letter-spacing: 0.1em;
}

.prescription-lines {
  display: grid;
}

.prescription-line {
  padding: 13px 16px;
  color: #fff;
  font-size: clamp(1rem, 2.5vw, 1.18rem);
  font-weight: 950;
  letter-spacing: 0.015em;
  line-height: 1.35;
  border-bottom: 1px solid rgba(255,255,255,0.08);
}

.prescription-line:last-child {
  border-bottom: 0;
}

.prescription-warning {
  padding: 11px 14px;
  color: #ffe08a;
  background: rgba(255, 193, 7, 0.08);
  border-top: 1px solid rgba(255, 193, 7, 0.18);
  font-weight: 850;
  font-size: 0.86rem;
}

/* Desativa o visual antigo de cards por etapa nessa área. */
.wd-description-pro .desc-structured,
.wd-description-pro .desc-step,
.wd-description-pro .desc-step-icon,
.wd-description-pro .desc-step-content,
.wd-description-pro .desc-highlight {
  all: unset;
}

@media (max-width: 620px) {
  .prescription-line {
    padding: 12px 13px;
    font-size: 1rem;
  }

  .prescription-label {
    padding: 9px 13px;
  }
}


/* ===== WORKOUT FLOW + CLEAN READABILITY V59 ===== */
@media (min-width: 768px) {
  .wd-stats {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

.wd-stats .wd-stat:nth-child(n+3) {
  display: none !important;
}

.prescription-line {
  text-transform: none !important;
  letter-spacing: 0.005em !important;
  font-size: clamp(1rem, 2.3vw, 1.08rem) !important;
  line-height: 1.42 !important;
}

.prescription-label {
  letter-spacing: 0.08em !important;
}


/* ===== PLANNED PACE + CLEAN LINE BREAKS V60 ===== */
.prescription-line {
  text-transform: none !important;
  white-space: pre-wrap;
}

.prescription-line.obs {
  color: var(--text-secondary);
  font-size: 0.92rem;
  font-weight: 800;
  background: rgba(255, 255, 255, 0.035);
}

.workout-meta {
  grid-template-columns: repeat(2, minmax(0, auto));
}


/* ===== FIX REAL LINE BREAKS IN PRESCRIPTION V61 ===== */
.prescription-lines {
  display: grid !important;
}

.prescription-line {
  display: block !important;
  white-space: normal !important;
  word-break: normal !important;
}

.prescription-line + .prescription-line {
  border-top: 1px solid rgba(255,255,255,0.08);
}


/* ===== PROFILE HUB REDESIGN V63 ===== */
.profile-hub-page {
  padding-bottom: calc(var(--nav-height) + 24px);
}

.profile-hub {
  width: min(760px, 100%);
  margin: 0 auto;
  padding: 18px 0 28px;
}

.profile-hub-back {
  width: 44px;
  height: 44px;
  border: 0;
  background: transparent;
  color: #fff;
  font-size: 2.1rem;
  line-height: 1;
  cursor: pointer;
  margin: 0 0 8px;
}

.profile-hero-v2 {
  display: grid;
  place-items: center;
  text-align: center;
  padding: 14px 14px 30px;
}

.profile-avatar-xl {
  width: 132px;
  height: 132px;
  border-radius: 999px;
  display: grid;
  place-items: center;
  color: #fff;
  font-size: 2.5rem;
  font-weight: 950;
  background: linear-gradient(135deg, var(--accent), #CCFF00);
  border: 5px solid rgba(204, 255, 0, 0.78);
  box-shadow: 0 0 0 6px rgba(204, 255, 0, 0.10), 0 18px 40px rgba(0,0,0,0.35);
  overflow: hidden;
  margin-bottom: 18px;
}

.profile-avatar-xl img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.profile-hero-v2 h2 {
  margin: 0;
  color: #fff;
  font-size: clamp(2rem, 8vw, 3rem);
  line-height: 1;
}

.profile-hero-v2 p {
  margin: 10px 0 22px;
  color: var(--text-muted);
  font-size: 1.05rem;
  font-weight: 800;
}

.profile-edit-btn {
  border: 0;
  border-radius: 999px;
  padding: 15px 34px;
  background: #f4f5f7;
  color: #17191d;
  font-weight: 950;
  font-size: 0.95rem;
  text-transform: uppercase;
  letter-spacing: 0.03em;
  cursor: pointer;
}

.profile-edit-panel {
  margin-bottom: 20px;
}

.profile-edit-card {
  padding: 18px;
  border-radius: 26px;
  border: 1px solid rgba(204, 255, 0, 0.24);
  background:
    radial-gradient(circle at top right, rgba(204, 255, 0, 0.14), transparent 36%),
    var(--bg-card);
}

.profile-edit-title span,
.profile-list-section h3 {
  color: var(--text-muted);
  font-size: 0.78rem;
  font-weight: 950;
  text-transform: uppercase;
  letter-spacing: 0.08em;
}

.profile-edit-title strong {
  display: block;
  margin-top: 4px;
  color: #fff;
  font-size: 1.1rem;
}

.profile-edit-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px;
  margin: 14px 0;
}

.profile-photo-picker {
  min-height: 48px;
  border-radius: 16px;
  border: 1px solid rgba(204, 255, 0, 0.30);
  background: rgba(204, 255, 0, 0.12);
  color: var(--accent-light);
  display: grid;
  place-items: center;
  font-weight: 950;
  cursor: pointer;
}

.profile-photo-picker.ghost {
  background: rgba(255,255,255,0.07);
  color: var(--text-secondary);
  border-color: rgba(255,255,255,0.12);
}

.profile-name-field {
  display: grid;
  gap: 8px;
  color: var(--text-secondary);
  font-weight: 900;
  margin-top: 10px;
}

.profile-edit-actions {
  display: grid;
  grid-template-columns: 0.8fr 1.2fr;
  gap: 10px;
  margin-top: 14px;
}

.profile-metrics-strip {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 10px;
  margin: 0 0 22px;
}

.profile-metrics-strip div {
  padding: 14px;
  border-radius: 18px;
  background: rgba(255,255,255,0.055);
  border: 1px solid rgba(255,255,255,0.08);
}

.profile-metrics-strip span {
  display: block;
  color: var(--text-muted);
  font-size: 0.72rem;
  font-weight: 950;
  text-transform: uppercase;
  letter-spacing: 0.07em;
}

.profile-metrics-strip strong {
  display: block;
  color: #fff;
  margin-top: 5px;
  font-size: 1rem;
}

.profile-list-section {
  margin: 20px 0 0;
}

.profile-list-section h3 {
  margin: 0 0 10px;
  padding-left: 14px;
}

.profile-list-card {
  overflow: hidden;
  border-radius: 20px;
  border: 1px solid rgba(255,255,255,0.12);
  background: #1c2329;
}

.profile-list-item {
  width: 100%;
  min-height: 72px;
  display: grid;
  grid-template-columns: 44px 1fr 24px;
  align-items: center;
  gap: 10px;
  padding: 14px 18px;
  border: 0;
  border-bottom: 1px solid rgba(255,255,255,0.10);
  background: transparent;
  color: #fff;
  text-align: left;
  font-family: 'Outfit', sans-serif;
  cursor: pointer;
}

.profile-list-item:last-child {
  border-bottom: 0;
}

.profile-list-item span:nth-child(2) {
  font-size: clamp(1rem, 4.5vw, 1.25rem);
  font-weight: 800;
}

.profile-list-item b {
  color: var(--text-muted);
  font-size: 1.8rem;
  font-weight: 400;
}

.profile-item-icon {
  width: 34px;
  height: 34px;
  display: grid;
  place-items: center;
  font-size: 1.3rem;
  color: #fff;
}

.profile-list-item.danger span:nth-child(2) {
  color: #fff;
}

.profile-logout-large {
  width: 100%;
  min-height: 64px;
  margin: 28px 0 18px;
  border: 0;
  border-radius: 999px;
  background: #f4f5f7;
  color: #14171c;
  font-weight: 950;
  font-size: 1.12rem;
  display: inline-flex;
  justify-content: center;
  align-items: center;
  gap: 12px;
  cursor: pointer;
}

.profile-legal-links {
  display: grid;
  place-items: center;
  gap: 16px;
  padding: 22px 0 0;
  border-top: 1px solid rgba(255,255,255,0.12);
}

.profile-legal-links button {
  border: 0;
  background: transparent;
  color: #fff;
  font-weight: 950;
  text-transform: uppercase;
  letter-spacing: 0.03em;
  cursor: pointer;
}

.profile-legal-links small {
  margin-top: 6px;
  color: var(--text-muted);
  font-weight: 800;
}

.profile-hidden-bindings {
  display: none !important;
}

/* Sem aba Perfil na bottom nav: o perfil abre pelo avatar no header. */
.bottom-nav {
  grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
}

@media (min-width: 768px) {
  .profile-hub {
    padding-top: 8px;
  }
}

@media (max-width: 520px) {
  .profile-hub {
    padding-inline: 4px;
  }

  .profile-avatar-xl {
    width: 118px;
    height: 118px;
  }

  .profile-metrics-strip {
    grid-template-columns: 1fr;
  }

  .profile-edit-grid,
  .profile-edit-actions {
    grid-template-columns: 1fr;
  }

  .profile-list-item {
    min-height: 68px;
    padding-inline: 16px;
  }
}


/* ===== PROFILE SUBPAGES: SHOES + GENERAL V64 ===== */
.profile-subpage-container {
  width: min(760px, 100%);
  margin: 0 auto;
  padding: 16px 0 32px;
}

.subpage-topbar {
  height: 58px;
  display: grid;
  grid-template-columns: 44px 1fr 44px;
  align-items: center;
  border-bottom: 1px solid rgba(255,255,255,0.10);
  margin-bottom: 18px;
}

.subpage-topbar button {
  border: 0;
  background: transparent;
  color: #fff;
  font-size: 2rem;
  cursor: pointer;
}

.subpage-topbar h2 {
  margin: 0;
  color: #fff;
  text-align: center;
  font-size: 1.3rem;
}

.shoes-empty-state {
  min-height: calc(100vh - 220px);
  display: grid;
  align-content: center;
  justify-items: center;
  text-align: center;
  gap: 18px;
  padding: 20px 8px;
}

.shoe-illustration {
  font-size: 7rem;
  filter: drop-shadow(0 18px 30px rgba(0,0,0,0.35));
}

.shoes-empty-state h2 {
  margin: 0;
  color: #fff;
  font-size: clamp(2rem, 7vw, 2.7rem);
}

.shoes-empty-state p {
  max-width: 560px;
  margin: 0;
  color: var(--text-secondary);
  font-size: 1.08rem;
  line-height: 1.45;
}

.profile-subpage-head {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 16px;
  padding: 8px 0 18px;
}

.profile-subpage-head span {
  color: var(--accent-light);
  font-size: 0.72rem;
  font-weight: 950;
  text-transform: uppercase;
  letter-spacing: 0.09em;
}

.profile-subpage-head h2 {
  margin: 4px 0 4px;
  color: #fff;
}

.profile-subpage-head p {
  margin: 0;
  color: var(--text-secondary);
}

.shoes-list {
  display: grid;
  gap: 12px;
}

.shoe-card {
  width: 100%;
  min-height: 112px;
  display: grid;
  grid-template-columns: 56px 1fr 26px;
  gap: 14px;
  align-items: center;
  padding: 16px;
  border-radius: 22px;
  border: 1px solid rgba(255,255,255,0.10);
  background:
    radial-gradient(circle at top right, rgba(252,76,2,0.10), transparent 34%),
    var(--bg-card);
  color: #fff;
  text-align: left;
  cursor: pointer;
}

.shoe-card-icon {
  width: 54px;
  height: 54px;
  display: grid;
  place-items: center;
  border-radius: 18px;
  background: rgba(252,76,2,0.14);
  border: 1px solid rgba(252,76,2,0.25);
  font-size: 1.7rem;
}

.shoe-card-info strong,
.shoe-card-info span,
.shoe-card-info small {
  display: block;
}

.shoe-card-info strong {
  font-size: 1.05rem;
}

.shoe-card-info span {
  margin-top: 3px;
  color: var(--text-secondary);
  font-size: 0.86rem;
}

.shoe-card-info small {
  margin-top: 7px;
  color: var(--text-muted);
  font-weight: 800;
}

.shoe-progress {
  height: 7px;
  margin-top: 11px;
  border-radius: 999px;
  background: rgba(255,255,255,0.10);
  overflow: hidden;
}

.shoe-progress i {
  display: block;
  height: 100%;
  border-radius: inherit;
  background: linear-gradient(90deg, var(--accent), #D9FF4D);
}

.shoe-form-card {
  display: grid;
  gap: 16px;
}

.shoe-form-card label {
  display: grid;
  gap: 9px;
  padding: 18px;
  border-radius: 20px;
  background: #1c2329;
  border: 1px solid rgba(140, 165, 200, 0.30);
}

.shoe-form-card label span,
.shoe-goal-card span {
  color: #fff;
  text-transform: uppercase;
  font-weight: 950;
  letter-spacing: 0.04em;
}

.shoe-distance-input {
  display: grid;
  grid-template-columns: 1fr auto;
  align-items: center;
  gap: 10px;
}

.shoe-distance-input strong {
  color: var(--text-secondary);
}

.shoe-goal-card {
  padding: 18px;
  border-radius: 20px;
  background: #1c2329;
  border: 1px solid rgba(140, 165, 200, 0.30);
}

.shoe-goal-card strong {
  display: block;
  margin: 18px 0;
  text-align: center;
  color: #6cff8f;
  font-size: 2.8rem;
  line-height: 1;
}

.shoe-goal-card strong b {
  font-size: inherit;
}

.shoe-goal-card input {
  width: 100%;
  accent-color: #6cff8f;
}

.shoe-tip {
  color: var(--text-secondary);
  line-height: 1.45;
  margin: -4px 4px 4px;
}

.profile-delete-shoe {
  width: 100%;
  min-height: 52px;
  border-radius: 999px;
  border: 1px solid rgba(255,59,48,0.28);
  background: rgba(255,59,48,0.10);
  color: #ff8a82;
  font-weight: 950;
}

.feedback-shoe-select {
  display: grid;
  gap: 7px;
  margin: 12px 0 0;
  color: var(--text);
  font-weight: 900;
}

.profile-list-item small {
  color: var(--text-muted);
  justify-self: end;
  font-weight: 850;
}

.profile-list-card .profile-list-item {
  grid-template-columns: 44px 1fr auto 24px;
}

.preference-modal {
  display: grid;
  gap: 10px;
  text-align: left;
}

.preference-modal p {
  margin: 0 0 4px;
  color: var(--text-secondary);
  line-height: 1.4;
}

.preference-option {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 13px;
  border-radius: 14px;
  background: rgba(255,255,255,0.055);
  border: 1px solid rgba(255,255,255,0.08);
  color: #fff;
  font-weight: 900;
}

.preference-option input {
  accent-color: var(--accent);
}

.privacy-card {
  padding: 20px;
  border-radius: 24px;
  background: var(--bg-card);
  border: 1px solid rgba(255,255,255,0.10);
}

.privacy-card h3 {
  margin: 0 0 8px;
  color: var(--accent-light);
}

.privacy-card p {
  margin: 0 0 18px;
  color: var(--text-secondary);
  line-height: 1.55;
}

@media (max-width: 560px) {
  .profile-subpage-container {
    padding-inline: 2px;
  }

  .profile-subpage-head {
    flex-direction: column;
  }

  .profile-subpage-head .settings-mini-btn {
    width: 100%;
  }

  .shoe-card {
    grid-template-columns: 48px 1fr 22px;
    padding: 14px;
  }

  .shoe-card-icon {
    width: 46px;
    height: 46px;
  }

  .profile-list-card .profile-list-item {
    grid-template-columns: 38px 1fr 24px;
  }

  .profile-list-card .profile-list-item small {
    display: none;
  }
}


/* ===== RUNEVO REBRAND V65 ===== */
.brand-logo,
.logo-text,
.app-title,
.header-logo {
  letter-spacing: 0.08em;
}

.brand-evo,
.logo-evo {
  color: #CCFF00;
}

.btn-primary,
.profile-photo-picker,
.settings-mini-btn:not(.ghost),
.profile-list-item.danger .profile-item-icon {
  color: #000000;
}

.btn-primary,
.profile-photo-picker,
.profile-edit-btn,
.profile-logout-large {
  box-shadow: 0 14px 34px rgba(204, 255, 0, 0.14);
}

.nav-item.active,
.nav-item.active .nav-icon,
.nav-item.active .nav-label,
.profile-legal-links small,
.ai-trust-eyebrow,
.wd-desc-eyebrow,
.profile-subpage-head span,
.profile-list-section h3,
.tz-header span {
  color: #CCFF00 !important;
}

.progress-fill,
.shoe-progress i,
.ai-loading-bar-inner {
  background: linear-gradient(90deg, #CCFF00, #00D1FF) !important;
}

body {
  background: #000000;
}

/* ===== RUNEVO MOBILE POLISH V67 ===== */
:root {
  --accent: #CCFF00;
  --accent-light: #DFFF4A;
  --accent-dark: #9ED600;
  --tertiary: #00D1FF;
  --bg: #000000;
  --bg-card: #171A1A;
  --bg-card-hover: #202525;
  --text-on-accent: #000000;
}

html,
body,
.splash-screen,
.login-screen,
.app {
  background: #000000 !important;
  background-color: #000000 !important;
}

.splash-screen::before,
.login-screen::before,
body::before {
  display: none !important;
}

.splash-subtitle {
  color: var(--text-secondary) !important;
  text-transform: none !important;
  letter-spacing: 0.02em !important;
}

.login-subtitle {
  display: none !important;
}

/* Remove gradientes muito coloridos */
.btn-primary,
.btn-generate,
.login-btn,
.profile-logout-large,
.profile-edit-btn,
.hero-card,
.ai-trust-card,
.ai-form-card,
.countdown-card,
.stats-card,
.phase-card,
.training-zones-card,
.wd-description-pro,
.profile-edit-card,
.shoe-card {
  background-image: none !important;
}

.btn-primary,
.btn-generate,
.login-btn {
  background: #CCFF00 !important;
  color: #000000 !important;
  border-color: #CCFF00 !important;
  box-shadow: 0 12px 28px rgba(204, 255, 0, 0.16) !important;
}

.btn-generate {
  min-height: 58px;
  border-radius: 18px;
  font-weight: 950;
  letter-spacing: 0.02em;
}

.btn-generate-icon {
  display: none !important;
}

.header-title .brand-evo,
.logo-text .brand-evo,
.brand-evo {
  color: #CCFF00 !important;
}

.header-right {
  display: flex;
  flex-direction: row;
  align-items: center;
  gap: 10px;
}

.header-tour-help {
  order: 1;
}

.header-user-profile {
  order: 2;
}

.header-logout-btn {
  order: 3;
}

.header-user-profile,
.header-tour-help {
  border-color: rgba(204, 255, 0, 0.30) !important;
  background: rgba(204, 255, 0, 0.07) !important;
}

.header-user-avatar {
  background: #CCFF00 !important;
  color: #000000 !important;
}

/* Card do Motor RunEvo */
.ai-trust-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
}

.ai-trust-grid > div:nth-child(3) {
  grid-column: 1 / -1;
}

.ai-trust-grid > div {
  min-height: 88px;
}

.ai-hero-title {
  color: #CCFF00 !important;
}

.ai-hero-sub {
  max-width: 340px;
  margin-inline: auto;
}

.single-field-row {
  grid-template-columns: 1fr !important;
}

.ai-checkline {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-top: 9px;
  padding: 10px 12px;
  border-radius: 12px;
  color: var(--text-secondary);
  background: rgba(255,255,255,0.045);
  border: 1px solid rgba(255,255,255,0.08);
  font-size: 0.84rem;
  font-weight: 800;
  cursor: pointer;
}

.ai-checkline input {
  accent-color: #CCFF00;
}

.ai-input.disabled {
  opacity: 0.45;
  cursor: not-allowed;
}

@media (max-width: 767px) {
  .app-header {
    padding-inline: 24px !important;
  }

  .header-title {
    font-size: 1.45rem !important;
    letter-spacing: 0.06em !important;
  }

  .header-user-text {
    display: none !important;
  }

  .header-user-profile,
  .header-tour-help {
    width: 52px !important;
    height: 52px !important;
    min-width: 52px !important;
    border-radius: 999px !important;
  }

  .header-user-avatar {
    width: 42px !important;
    height: 42px !important;
  }

  .ai-trust-grid {
    gap: 10px;
  }

  .ai-trust-grid > div:nth-child(3) {
    min-height: 92px;
  }

  .ai-form-row {
    gap: 12px;
  }

  .ai-form-card {
    border-radius: 22px;
  }
}


/* ===== PLAN PREVIEW STANDALONE PAGE V68 ===== */
.plan-preview-page {
  padding-bottom: calc(var(--nav-height) + 28px);
}

.plan-preview-shell {
  width: min(980px, 100%);
  margin: 0 auto;
  padding: 16px 0 32px;
}

.plan-preview-back {
  margin-bottom: 10px;
}

.plan-preview-hero {
  padding: 20px;
  margin-bottom: 16px;
  border-radius: 24px;
  background: var(--bg-card);
  border: 1px solid rgba(204, 255, 0, 0.18);
}

.plan-preview-hero span {
  display: block;
  margin-bottom: 6px;
  color: var(--accent);
  text-transform: uppercase;
  letter-spacing: 0.09em;
  font-size: 0.74rem;
  font-weight: 950;
}

.plan-preview-hero h2 {
  margin: 0;
  color: #fff;
  font-size: clamp(1.6rem, 5vw, 2.4rem);
}

.plan-preview-hero p {
  margin: 8px 0 0;
  max-width: 720px;
  color: var(--text-secondary);
  line-height: 1.45;
}

.plan-preview-page .ai-result {
  display: grid;
  gap: 16px;
}

.plan-preview-page .ai-result.hidden {
  display: none !important;
}

.plan-preview-page .ai-result-header {
  text-align: center;
  padding: 4px 0 6px;
}

.plan-preview-page .ai-result-header h3 {
  color: var(--accent);
  font-size: clamp(1.25rem, 4.5vw, 1.8rem);
}

.plan-preview-page .ai-result-actions {
  position: sticky;
  bottom: calc(var(--nav-height) + 10px);
  z-index: 20;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px;
  padding: 12px;
  border-radius: 22px;
  background: rgba(0, 0, 0, 0.82);
  backdrop-filter: blur(14px);
  border: 1px solid rgba(255,255,255,0.08);
}

.plan-preview-page .ai-result-actions .btn-generate,
.plan-preview-page .ai-result-actions .ai-btn-full {
  min-height: 54px;
  border-radius: 16px;
  font-weight: 950;
}

.plan-preview-page .ai-result-actions .btn-generate {
  background: var(--accent) !important;
  color: var(--text-on-accent) !important;
}

.plan-preview-page .ai-result-actions .ai-btn-full {
  background: rgba(255,255,255,0.06) !important;
  border: 1px solid rgba(255,255,255,0.12) !important;
  color: #fff !important;
}

@media (max-width: 680px) {
  .plan-preview-shell {
    padding-inline: 0;
  }

  .plan-preview-hero {
    margin-inline: 0;
  }

  .plan-preview-page .ai-result-actions {
    grid-template-columns: 1fr;
    bottom: calc(var(--nav-height) + 8px);
  }
}


/* ===== ACTIVE PLAN GUARD + BLACK ROOT + MOTOR CARD ALIGNMENT V69 ===== */
html,
body,
#root,
.app,
.page,
.splash-screen,
.login-screen {
  background: #000000 !important;
  background-color: #000000 !important;
}

@media (display-mode: standalone), (max-width: 767px) {
  html,
  body,
  #root,
  .app {
    background: #000000 !important;
    min-height: 100dvh;
  }
}

.ai-trust-grid > div {
  display: flex !important;
  flex-direction: column;
  justify-content: center !important;
  align-items: flex-start !important;
}

.ai-trust-grid > div strong,
.ai-trust-grid > div span {
  width: 100%;
}

.ai-trust-grid > div span {
  line-height: 1.15;
}

@media (max-width: 767px) {
  .ai-trust-grid > div {
    align-items: center !important;
    text-align: center !important;
  }
}

.btn-generate.disabled-by-active-plan {
  opacity: 0.55;
  cursor: not-allowed;
  filter: grayscale(0.35);
}

.modal-warning-list {
  margin: 10px 0;
  padding-left: 20px;
  color: var(--text-secondary);
  line-height: 1.5;
}

.modal-warning-list li {
  margin: 3px 0;
}


/* ===== RUNEVO V70: LOGO, IA EVO, TERRAIN ===== */
:root,
html,
body,
.app,
.page,
#page-ai {
  background: #000000 !important;
  background-color: #000000 !important;
}

.header-title {
  font-size: clamp(1.65rem, 6.2vw, 2.55rem) !important;
  font-weight: 950 !important;
  letter-spacing: 0.025em !important;
}

.header-title .brand-evo {
  color: #CCFF00 !important;
}

.app-header {
  min-height: 88px;
}

.header-user-profile,
.header-tour-help {
  transform: scale(0.92);
}

.ai-container {
  padding-top: 18px;
}

/* Corrige o buraco preto no topo do IA no mobile: o hero volta para cima e com espaçamento coerente. */
@media (max-width: 767px) {
  #page-ai {
    padding-top: 0 !important;
  }

  .ai-container {
    padding-top: 18px !important;
  }

  .ai-hero {
    min-height: auto !important;
    padding: 22px 18px 18px !important;
    margin-top: 0 !important;
  }

  .ai-hero-icon {
    margin-top: 0 !important;
    font-size: 3.6rem !important;
  }

  .ai-hero-title {
    font-size: clamp(2rem, 10vw, 3.1rem) !important;
    line-height: 1.05 !important;
  }

  .ai-hero-sub {
    margin-top: 8px !important;
  }

  .app-header {
    min-height: 82px;
  }
}

.terrain-field {
  margin-top: 16px;
}

.terrain-options {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
}

.terrain-option input {
  display: none;
}

.terrain-card {
  min-height: 118px;
  display: grid;
  grid-template-columns: 1fr auto;
  grid-template-rows: auto 1fr;
  align-items: center;
  gap: 8px 10px;
  padding: 15px;
  border-radius: 18px;
  background: rgba(255,255,255,0.045);
  border: 1px solid rgba(255,255,255,0.10);
  cursor: pointer;
  transition: transform .2s ease, border-color .2s ease, background .2s ease;
}

.terrain-card strong {
  color: #fff;
  font-size: 1rem;
}

.terrain-card small {
  grid-column: 1 / -1;
  color: var(--text-secondary);
  line-height: 1.35;
  font-weight: 760;
}

.terrain-card b {
  font-size: 1.6rem;
  color: var(--text-muted);
}

.terrain-option input:checked + .terrain-card {
  background: rgba(204, 255, 0, 0.10);
  border-color: rgba(204, 255, 0, 0.86);
  box-shadow: 0 0 0 1px rgba(204, 255, 0, 0.22), 0 16px 34px rgba(204, 255, 0, 0.08);
}

.terrain-option input:checked + .terrain-card strong,
.terrain-option input:checked + .terrain-card b {
  color: #CCFF00;
}

@media (max-width: 720px) {
  .terrain-options {
    grid-template-columns: 1fr;
  }

  .terrain-card {
    min-height: 96px;
  }
}

/* IA Evo / Motor Evo refinamento */
.ai-trust-eyebrow {
  color: #CCFF00 !important;
}

.ai-trust-grid > div {
  align-items: center !important;
  text-align: center !important;
}


/* ===== V71 MOBILE LAYOUT FIX + SUPPORT ===== */
:root {
  --nav-height: 58px;
  --header-height: 74px;
}

.bottom-nav {
  height: calc(var(--nav-height) + var(--safe-bottom)) !important;
  padding: 4px 10px var(--safe-bottom) !important;
}

.nav-item {
  gap: 2px !important;
  padding: 5px 12px !important;
  min-width: 0 !important;
  font-size: 0.58rem !important;
}

.nav-item svg {
  width: 21px !important;
  height: 21px !important;
}

.app-header {
  height: calc(var(--header-height) + var(--safe-top)) !important;
  min-height: calc(var(--header-height) + var(--safe-top)) !important;
}

.page {
  padding-top: calc(var(--header-height) + var(--safe-top) + 10px) !important;
  padding-bottom: calc(var(--nav-height) + var(--safe-bottom) + 14px) !important;
  min-height: auto !important;
}

#page-ai,
#page-settings {
  min-height: calc(100dvh - var(--header-height) - var(--nav-height)) !important;
  background: #000 !important;
}

#page-ai.active,
#page-settings.active {
  display: block !important;
  align-content: start !important;
}

#page-ai .ai-container,
#page-settings .profile-hub {
  margin-top: 0 !important;
  padding-top: 0 !important;
  transform: none !important;
}

#page-ai .ai-hero,
#page-settings .profile-hero-v2 {
  margin-top: 0 !important;
  padding-top: 0 !important;
  transform: none !important;
}

.profile-list-section h3 {
  color: #CCFF00 !important;
}

.profile-item-icon {
  color: #CCFF00;
  font-weight: 950;
}

@media (max-width: 767px) {
  :root {
    --nav-height: 56px;
    --header-height: 76px;
  }

  .bottom-nav {
    border-radius: 0 !important;
  }

  .nav-item span {
    font-size: 0.68rem !important;
    line-height: 1 !important;
  }

  .app-header {
    padding-left: 24px !important;
    padding-right: 24px !important;
  }

  #page-ai {
    padding-top: calc(var(--header-height) + var(--safe-top) + 12px) !important;
  }

  #page-settings {
    padding-top: calc(var(--header-height) + var(--safe-top) + 12px) !important;
  }

  #page-ai .ai-hero {
    padding: 0 14px 14px !important;
  }

  #page-ai .ai-hero-icon {
    font-size: 3.1rem !important;
    margin-bottom: 4px !important;
  }

  #page-ai .ai-hero-title {
    font-size: 2.45rem !important;
  }

  #page-settings .profile-hub-back {
    margin-top: 0 !important;
    margin-bottom: 6px !important;
  }

  #page-settings .profile-hero-v2 {
    padding: 0 14px 22px !important;
  }

  #page-settings .profile-avatar-xl {
    width: 112px !important;
    height: 112px !important;
    margin-bottom: 14px !important;
  }
}


/* ===== V72 SUPPORT FLOW ===== */
/* O tutorial saiu do header. Agora fica em Perfil > Minhas preferências > Suporte > Aplicativo. */
#header-tour-help,
.header-tour-help {
  display: none !important;
}

.profile-list-item .profile-item-icon {
  font-family: 'Outfit', sans-serif;
}


/* ===== V73 DEFINITIVE MOBILE PAGE OFFSET FIX ===== */
/*
  Correção real do “espaço preto”:
  no mobile, cada página ativa vira uma área fixa entre header e bottom nav.
  Assim o scroll antigo do body não empurra IA Evo/Perfil para baixo.
*/
@media (max-width: 767px) {
  html,
  body {
    height: 100%;
    min-height: 100%;
    overflow: hidden !important;
    background: #000 !important;
  }

  .app {
    height: 100dvh;
    min-height: 100dvh;
    overflow: hidden !important;
    background: #000 !important;
  }

  .page {
    display: none !important;
    position: fixed !important;
    top: calc(var(--header-height) + var(--safe-top)) !important;
    left: 0 !important;
    right: 0 !important;
    bottom: calc(var(--nav-height) + var(--safe-bottom)) !important;
    height: auto !important;
    min-height: 0 !important;
    overflow-y: auto !important;
    overflow-x: hidden !important;
    -webkit-overflow-scrolling: touch;
    padding: 14px 16px 18px !important;
    background: #000 !important;
    animation: none !important;
    transform: none !important;
    overscroll-behavior: contain;
  }

  .page.active {
    display: block !important;
  }

  #page-ai,
  #page-settings {
    top: calc(var(--header-height) + var(--safe-top)) !important;
    padding-top: 14px !important;
  }

  #page-ai .ai-container,
  #page-settings .profile-hub {
    padding-top: 0 !important;
    margin-top: 0 !important;
    min-height: auto !important;
  }

  #page-ai .ai-hero,
  #page-settings .profile-hero-v2 {
    padding-top: 0 !important;
    margin-top: 0 !important;
    min-height: auto !important;
  }

  #page-ai .ai-hero {
    padding-bottom: 14px !important;
  }

  #page-settings .profile-hero-v2 {
    padding-bottom: 22px !important;
  }

  .bottom-nav {
    height: calc(52px + var(--safe-bottom)) !important;
    padding: 3px 10px var(--safe-bottom) !important;
  }

  .nav-item {
    padding: 4px 10px !important;
    gap: 1px !important;
  }

  .nav-item svg {
    width: 20px !important;
    height: 20px !important;
  }

  .nav-item span {
    font-size: 0.62rem !important;
  }
}


/* ===== V74 TOUR TO IA EVO + HOME RACE SUMMARY ===== */
.countdown-label {
  text-transform: uppercase;
  letter-spacing: 0.12em;
}

.countdown-card {
  background-image: none !important;
}


/* ===== V75 PROFILE SUPPORT NESTED FLOW ===== */
#header-tour-help,
.header-tour-help {
  display: none !important;
}

.profile-list-section h3 {
  color: #CCFF00 !important;
}

.profile-list-item .profile-item-icon {
  font-family: 'Outfit', sans-serif;
  font-weight: 950;
}


/* ===== V76 SUPPORT LABEL + COMMENT FIX ===== */
#page-support .profile-list-section h3 {
  color: #CCFF00 !important;
}

#page-support .profile-list-item .profile-item-icon {
  color: #CCFF00 !important;
}


/* ===== V77 BLACK SECONDARY FIX ===== */
:root {
  --secondary: #000000;
  --bg: #000000;
  --background: #000000;
  --app-bg: #000000;
  --text-on-accent: #000000;
  color-scheme: dark;
}

html,
body,
#root,
.app,
.page,
.splash-screen,
.login-screen,
.app-shell,
.mobile-shell {
  background: #000000 !important;
  background-color: #000000 !important;
}

@media (display-mode: standalone), (max-width: 767px) {
  html,
  body,
  #root,
  .app,
  .page {
    background: #000000 !important;
    background-color: #000000 !important;
  }
}


/* ===== V78 UI POLISH: BUTTONS, HOME WIDTH, PROFILE PHOTO, EXPORT ===== */

/* Remove degradê de botões: padrão RunEvo = verde sólido + texto preto */
.btn-primary,
.btn-generate,
.login-btn,
.btn-checkin,
.btn-complete,
.btn-status,
.btn-save,
.profile-logout-large,
.profile-edit-btn,
.manual-manager-btn.primary,
.date-picker-btn,
.modal-actions .btn-primary,
button.primary,
.export-backup-badge {
  background: #CCFF00 !important;
  background-image: none !important;
  color: #000000 !important;
  border-color: #CCFF00 !important;
  box-shadow: 0 10px 26px rgba(204, 255, 0, 0.14) !important;
  font-family: 'Outfit', sans-serif !important;
  font-weight: 950 !important;
}

.btn-secondary,
.modal-actions .btn-secondary {
  background: rgba(255, 255, 255, 0.10) !important;
  background-image: none !important;
  color: #ffffff !important;
  border: 1px solid rgba(255,255,255,0.10) !important;
}

.btn-primary *,
.btn-generate *,
.login-btn *,
.btn-checkin *,
.btn-complete *,
.manual-manager-btn.primary * {
  color: #000000 !important;
}

/* Modal de conclusão: sem pace e sem scrollbar visível */
.feedback-grid-single {
  grid-template-columns: 1fr !important;
}

.modal-card #modal-message,
.modal-card.checkin-modal-card #modal-message,
.feedback-form-pro {
  scrollbar-width: none !important;
  -ms-overflow-style: none !important;
}

.modal-card #modal-message::-webkit-scrollbar,
.modal-card.checkin-modal-card #modal-message::-webkit-scrollbar,
.feedback-form-pro::-webkit-scrollbar {
  width: 0 !important;
  height: 0 !important;
  display: none !important;
}

/* Header avatar: quando tiver foto, não deixar o fundo verde sobrepor */
.header-user-avatar.has-photo,
.profile-avatar-xl.has-photo,
#settings-photo-preview.has-photo {
  background-color: transparent !important;
}

/* Home: badge, próximo treino e Adaptive Training com mesma largura visual */
#page-home .hero-section,
#page-home .countdown-section,
#page-home .weekly-section,
#page-home #weekly-checkin-card {
  width: 100%;
  max-width: 720px;
  margin-left: auto !important;
  margin-right: auto !important;
}

#page-home .hero-badge {
  display: flex !important;
  width: 100%;
  max-width: 720px;
  justify-content: flex-start;
  border-radius: 22px;
}

#page-home #weekly-checkin-card {
  margin-top: 18px !important;
  margin-bottom: 24px !important;
}

.weekly-checkin-card {
  background: rgba(204, 255, 0, 0.08) !important;
  background-image: none !important;
}

/* Aba Treinos: remove espaço do card Centro de Treinos e padroniza botões */
.training-hub-container {
  padding-top: 0 !important;
}

.manual-manager-btn.primary {
  min-height: 50px;
}

.manual-manager-btn:not(.primary):not(.danger) {
  background: rgba(255,255,255,0.08) !important;
  color: #fff !important;
  background-image: none !important;
}

.manual-manager-btn.danger {
  background: rgba(255, 59, 48, 0.10) !important;
  background-image: none !important;
}

/* Exportação: nenhum card vem selecionado por padrão; só fica verde após o clique */
.export-action-card.featured {
  background: rgba(0, 0, 0, 0.22) !important;
  background-image: none !important;
  border-color: rgba(255, 255, 255, 0.10) !important;
  box-shadow: none !important;
}

.export-action-card.selected {
  background: rgba(204, 255, 0, 0.10) !important;
  background-image: none !important;
  border-color: rgba(204, 255, 0, 0.68) !important;
  box-shadow: 0 12px 30px rgba(204, 255, 0, 0.10) !important;
}

.export-action-card.selected strong {
  color: #CCFF00 !important;
}

.export-action-card:focus-visible {
  outline: 2px solid #CCFF00;
  outline-offset: 3px;
}

/* Tira gradientes de cards que pareciam botões/CTAs */
.hero-card,
.training-hub-hero,
.manual-plan-manager-card,
.export-backup-card {
  background-image: none !important;
}

/* Botão do check-in: fundo verde e fonte preta */
.btn-checkin {
  color: #000000 !important;
  background: #CCFF00 !important;
}

@media (max-width: 767px) {
  #page-home .hero-section,
  #page-home .countdown-section,
  #page-home .weekly-section,
  #page-home #weekly-checkin-card {
    max-width: calc(100vw - 52px);
  }

  #page-home .hero-badge {
    max-width: calc(100vw - 52px);
  }
}


/* ===== V79 PLAN PREVIEW + PROFILE FULLSCREEN ===== */

/* Prévia da planilha: botões não ficam mais fixos/flutuantes.
   Agora aparecem no fim da leitura, após validação e semanas. */
.plan-preview-page .ai-result-actions {
  position: static !important;
  bottom: auto !important;
  z-index: auto !important;
  margin-top: 18px !important;
  padding: 0 !important;
  background: transparent !important;
  backdrop-filter: none !important;
  border: 0 !important;
  box-shadow: none !important;
}

.plan-preview-page .ai-result-actions .btn-generate,
.plan-preview-page .ai-result-actions .ai-btn-full {
  min-height: 58px !important;
  border-radius: 18px !important;
}

.plan-preview-page .ai-result-actions .btn-generate {
  background: #CCFF00 !important;
  color: #000 !important;
}

.plan-preview-page .ai-result-actions .ai-btn-full {
  background: rgba(255, 255, 255, 0.06) !important;
  border: 1px solid rgba(255, 255, 255, 0.12) !important;
  color: #fff !important;
}

.ai-all-weeks-container,
.ai-result-weeks,
.ai-week-card,
.ai-weeks-toggle-card {
  max-width: 100% !important;
  overflow-x: hidden !important;
}

.ai-all-weeks-container.hidden {
  display: none !important;
}

/* Próximo treino centralizado e sem bolinha lateral */
#page-home .hero-badge {
  justify-content: center !important;
  text-align: center !important;
  gap: 0 !important;
  padding: 9px 16px !important;
  letter-spacing: 0.16em;
}

#page-home .hero-badge .pulse-dot {
  display: none !important;
}

/* Perfil e páginas internas de Perfil sem navbar inferior */
body.profile-fullscreen-mode .bottom-nav,
.app.profile-fullscreen-mode .bottom-nav {
  display: none !important;
}

body.profile-fullscreen-mode .page.active,
.app.profile-fullscreen-mode .page.active {
  padding-bottom: calc(var(--safe-bottom) + 18px) !important;
}

/* no mobile com páginas fixas, libera a área que antes era reservada para a nav */
@media (max-width: 767px) {
  body.profile-fullscreen-mode .page.active,
  .app.profile-fullscreen-mode .page.active {
    bottom: 0 !important;
    padding-bottom: calc(var(--safe-bottom) + 18px) !important;
  }

  body.profile-fullscreen-mode #page-settings.active,
  body.profile-fullscreen-mode #page-shoes.active,
  body.profile-fullscreen-mode #page-shoe-form.active,
  body.profile-fullscreen-mode #page-general-settings.active,
  body.profile-fullscreen-mode #page-support.active,
  body.profile-fullscreen-mode #page-support-app.active,
  body.profile-fullscreen-mode #page-privacy.active {
    bottom: 0 !important;
  }
}

/* Melhor leitura dos cards de semanas dentro da prévia no celular */
@media (max-width: 680px) {
  .plan-preview-page .ai-result-actions {
    grid-template-columns: 1fr !important;
    gap: 12px !important;
  }

  .ai-week-header {
    gap: 10px !important;
  }

  .ai-week-header-left {
    min-width: 0 !important;
  }

  .ai-week-title {
    word-break: break-word;
  }
}


/* ===== V80 PROFILE TRUE FULLSCREEN + STANDARD BUTTONS + SWIPE ===== */

/* Perfil e todas as telas internas realmente sem header/nav */
body.profile-fullscreen-mode .app-header,
.app.profile-fullscreen-mode .app-header,
body.profile-fullscreen-mode .bottom-nav,
.app.profile-fullscreen-mode .bottom-nav {
  display: none !important;
}

body.profile-fullscreen-mode .page.active,
.app.profile-fullscreen-mode .page.active {
  padding-top: calc(var(--safe-top) + 14px) !important;
  padding-bottom: calc(var(--safe-bottom) + 18px) !important;
  min-height: 100dvh !important;
}

@media (max-width: 767px) {
  body.profile-fullscreen-mode .page.active,
  .app.profile-fullscreen-mode .page.active {
    top: 0 !important;
    bottom: 0 !important;
    height: 100dvh !important;
    padding-top: calc(var(--safe-top) + 14px) !important;
    padding-bottom: calc(var(--safe-bottom) + 18px) !important;
  }

  body.profile-fullscreen-mode #page-settings.active,
  body.profile-fullscreen-mode #page-shoes.active,
  body.profile-fullscreen-mode #page-shoe-form.active,
  body.profile-fullscreen-mode #page-general-settings.active,
  body.profile-fullscreen-mode #page-support.active,
  body.profile-fullscreen-mode #page-support-app.active,
  body.profile-fullscreen-mode #page-privacy.active {
    top: 0 !important;
    bottom: 0 !important;
  }
}

/* Botões de foto no padrão RunEvo */
.profile-photo-picker {
  background: #CCFF00 !important;
  background-image: none !important;
  color: #000000 !important;
  border: 1px solid #CCFF00 !important;
  box-shadow: 0 10px 26px rgba(204, 255, 0, 0.14) !important;
  border-radius: 18px !important;
  min-height: 54px !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  font-weight: 950 !important;
  text-align: center !important;
}

.profile-photo-picker span {
  color: #000000 !important;
}

.profile-photo-picker.ghost {
  background: rgba(255, 255, 255, 0.08) !important;
  color: #ffffff !important;
  border: 1px solid rgba(255, 255, 255, 0.12) !important;
  box-shadow: none !important;
}

.profile-photo-picker.ghost span,
.profile-photo-picker.ghost {
  color: #ffffff !important;
}

/* Botão adicionar tênis no padrão RunEvo */
.settings-mini-btn,
.shoes-list-state .settings-mini-btn,
.profile-subpage-head .settings-mini-btn {
  background: #CCFF00 !important;
  background-image: none !important;
  color: #000000 !important;
  border: 1px solid #CCFF00 !important;
  border-radius: 999px !important;
  min-height: 46px !important;
  padding: 0 22px !important;
  font-weight: 950 !important;
  box-shadow: 0 10px 26px rgba(204, 255, 0, 0.14) !important;
}

.settings-mini-btn * {
  color: #000000 !important;
}


/* ===== V81 FORM + PREVIEW POLISH ===== */

/* Prévia: mais respiro entre os botões finais */
.plan-preview-page .ai-result-actions {
  gap: 18px !important;
  margin-top: 26px !important;
  padding-top: 18px !important;
  padding-bottom: 10px !important;
}

.plan-preview-page .ai-result-actions .btn-generate,
.plan-preview-page .ai-result-actions .ai-btn-full {
  margin: 0 !important;
}

/* Terreno: nenhum card parece selecionado sem radio checked */
.terrain-option input:not(:checked) + .terrain-card {
  background: rgba(255,255,255,0.045) !important;
  border-color: rgba(255,255,255,0.10) !important;
  box-shadow: none !important;
}

.terrain-option input:not(:checked) + .terrain-card strong,
.terrain-option input:not(:checked) + .terrain-card b {
  color: #ffffff !important;
}

.terrain-option input:checked + .terrain-card {
  background: rgba(204,255,0,0.12) !important;
  border-color: #CCFF00 !important;
  box-shadow: 0 0 0 1px rgba(204,255,0,0.22), 0 16px 34px rgba(204,255,0,0.08) !important;
}

.terrain-option input:checked + .terrain-card strong,
.terrain-option input:checked + .terrain-card b {
  color: #CCFF00 !important;
}

/* Caixas de tempo com foco mais limpo */
.ai-time-history-group .ai-checkline {
  transition: border-color .2s ease, background .2s ease;
}

.ai-time-history-group .ai-checkline:has(input:checked) {
  border-color: rgba(204,255,0,.75) !important;
  background: rgba(204,255,0,.10) !important;
  color: #CCFF00 !important;
}


/* ===== V82 FORM TIMES + PREVIEW CLEANUP + STATS ALIGNMENT ===== */

/* Prévia da planilha: remove espaços de áreas ocultadas e deixa o card mais limpo */
.plan-review-card .plan-review-header,
.coach-strategy-strip {
  display: none !important;
}

.plan-review-card {
  padding-top: 18px !important;
}

/* Estatísticas: contador do cabeçalho não fica grudado no canto */
.review-card-header {
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  gap: 14px !important;
}

.review-card-header > strong {
  margin-left: auto !important;
  min-width: 34px !important;
  height: 34px !important;
  padding: 0 10px !important;
  border-radius: 999px !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  text-align: center !important;
  background: rgba(204, 255, 0, 0.08) !important;
  color: #CCFF00 !important;
  border: 1px solid rgba(204, 255, 0, 0.20) !important;
}

.review-card-header > span {
  min-width: 0 !important;
}


/* ===== V83 IA EVO DETAIL POLISH ===== */
.coach-analysis-grid-detailed > div strong,
.coach-strength-grid.coach-analysis-grid-detailed > div strong {
  line-height: 1.45 !important;
  font-size: 0.93rem !important;
  font-weight: 750 !important;
}

.coach-analysis-grid-detailed > div,
.coach-strength-grid.coach-analysis-grid-detailed > div {
  min-height: 96px !important;
}

.plan-review-issue p {
  line-height: 1.5 !important;
}


/* ===== V84 TIME INPUT STABILITY ===== */
.ai-input.time-input {
  font-variant-numeric: tabular-nums;
  letter-spacing: 0.01em;
}


/* ===== V86 CONCISE STRATEGY CARD ===== */
.coach-analysis-grid-detailed strong,
.coach-strength-grid strong {
  line-height: 1.45 !important;
  font-size: 0.92rem !important;
}

.coach-summary {
  line-height: 1.55 !important;
  max-width: 100%;
}

.coach-analysis-card .coach-alert-box li {
  margin-bottom: 6px !important;
}


/* ===== V87 STRATEGY WITHOUT ELLIPSIS ===== */
.coach-analysis-grid-detailed strong,
.coach-strength-grid strong {
  display: block;
  white-space: normal !important;
  overflow: visible !important;
  text-overflow: initial !important;
  line-height: 1.42 !important;
}

.coach-analysis-grid-detailed > div,
.coach-strength-grid > div {
  min-height: auto !important;
}


/* ===== V89 TOUR ALIGNMENT FIX ===== */
.tour-card-v88 {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
}

.tour-card-v88 .tour-eyebrow {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  align-self: center;
  width: max-content;
  max-width: 100%;
  margin: 0 auto 12px;
  padding: 7px 14px;
  border-radius: 999px;
  background: rgba(204, 255, 0, 0.10);
  border: 1px solid rgba(204, 255, 0, 0.25);
  color: #CCFF00;
  font-size: 0.72rem;
  font-weight: 950;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  text-align: center;
  position: relative;
  left: 0;
  right: 0;
}

.tour-card-v88 p {
  margin: 0 0 18px;
  line-height: 1.55;
  text-align: center;
  max-width: 270px;
}

.tour-progress {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  gap: 7px;
  margin: 14px 0 8px;
}

.tour-progress span {
  flex: 1;
  max-width: 34px;
  height: 5px;
  border-radius: 999px;
  background: rgba(255,255,255,0.12);
}

.tour-progress span.active {
  background: #CCFF00;
  box-shadow: 0 0 16px rgba(204,255,0,.35);
}

.tour-card-v88 small {
  display: block;
  color: rgba(255,255,255,.58);
  font-weight: 800;
  letter-spacing: .04em;
  text-align: center;
}

#modal-overlay #modal-confirm[data-action="start-tour"],
#modal-overlay #modal-confirm {
  font-weight: 950;
}


/* ===== V91 TOUR BADGE CENTER FIX ===== */
#modal-message .tour-card-v88 {
  align-items: center !important;
  justify-content: center;
}

#modal-message .tour-card-v88 .tour-eyebrow {
  margin-inline: auto;
}


/* ===== V93 AUTH UI ===== */
.auth-container-v93 {
  width: min(430px, calc(100vw - 34px));
}

.auth-tabs {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 8px;
  margin: 16px 0 18px;
  padding: 5px;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.06);
  border: 1px solid rgba(255, 255, 255, 0.08);
}

.auth-tab {
  min-height: 42px;
  border: 0;
  border-radius: 999px;
  background: transparent;
  color: rgba(255,255,255,.70);
  font-weight: 950;
  font-family: 'Outfit', sans-serif;
  cursor: pointer;
}

.auth-tab.active {
  background: #CCFF00;
  color: #000;
  box-shadow: 0 10px 26px rgba(204,255,0,.14);
}

.auth-form-v93 {
  gap: 13px;
}

.auth-helper {
  margin: 2px 0 0;
  color: var(--text-secondary);
  font-size: .82rem;
  line-height: 1.35;
  text-align: center;
}

.auth-divider {
  display: flex;
  align-items: center;
  gap: 10px;
  margin: 4px 0;
  color: var(--text-muted);
  font-size: .75rem;
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: .10em;
}

.auth-divider::before,
.auth-divider::after {
  content: "";
  flex: 1;
  height: 1px;
  background: rgba(255,255,255,.10);
}

.auth-social-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 9px;
}

.auth-social-btn {
  min-height: 48px;
  border-radius: 16px;
  border: 1px solid rgba(255,255,255,.12);
  background: rgba(255,255,255,.07);
  color: #fff;
  font-family: 'Outfit', sans-serif;
  font-weight: 900;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  cursor: pointer;
}

.auth-social-btn span {
  width: 26px;
  height: 26px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 999px;
  background: rgba(204,255,0,.10);
  color: #CCFF00;
  font-weight: 950;
}

.auth-link-btn {
  border: 0;
  background: transparent;
  color: #CCFF00;
  font-weight: 900;
  font-family: 'Outfit', sans-serif;
  cursor: pointer;
  padding: 6px;
}

.auth-dev-note {
  margin-top: 4px;
  padding: 10px 12px;
  border-radius: 14px;
  background: rgba(204,255,0,.07);
  border: 1px solid rgba(204,255,0,.16);
  color: var(--text-secondary);
  font-size: .74rem;
  line-height: 1.35;
  text-align: left;
}

@media (max-width: 420px) {
  .auth-container-v93 {
    width: min(390px, calc(100vw - 26px));
  }
}


/* ===== V94 SUPABASE AUTH STATES ===== */
.login-btn:disabled,
.auth-social-btn:disabled {
  opacity: .62;
  cursor: wait;
}


/* ===== V96 AUTH CALLBACK HARDENING ===== */
.auth-dev-note strong {
  color: #CCFF00;
}


/* ===== V97 AUTH POLISH ===== */
.auth-container-v97 {
  width: min(430px, calc(100vw - 28px));
  padding: 32px 26px 26px !important;
  border-radius: 28px !important;
  background:
    radial-gradient(circle at 80% 18%, rgba(204,255,0,.10), transparent 34%),
    linear-gradient(180deg, rgba(255,255,255,.055), rgba(255,255,255,.025)) !important;
  border: 1px solid rgba(255,255,255,.12) !important;
  box-shadow: 0 28px 90px rgba(0,0,0,.55), 0 0 40px rgba(204,255,0,.05) !important;
}

.auth-container-v97 .login-logo {
  margin-bottom: 8px;
}

.auth-container-v97 .logo-text {
  font-size: clamp(1.9rem, 6vw, 2.45rem);
  letter-spacing: -0.06em;
}

.auth-container-v97 .login-access {
  margin-bottom: 20px;
  color: rgba(255,255,255,.62);
  font-size: .76rem;
  line-height: 1.25;
  letter-spacing: .10em;
}

.auth-container-v97 .auth-tabs {
  margin: 6px 0 20px;
  padding: 4px;
  border-radius: 999px;
  background: rgba(255,255,255,.07);
  border: 1px solid rgba(255,255,255,.11);
}

.auth-container-v97 .auth-tab {
  min-height: 46px;
}

.auth-container-v97 .form-group label {
  font-size: .82rem;
  color: rgba(255,255,255,.62);
  letter-spacing: .03em;
  text-transform: none;
}

.auth-container-v97 .login-input {
  min-height: 54px;
  border-radius: 18px;
  background: rgba(0,0,0,.22);
  border-color: rgba(255,255,255,.13);
}

.auth-container-v97 .login-input:focus {
  border-color: rgba(204,255,0,.85);
  box-shadow: 0 0 0 3px rgba(204,255,0,.10);
}

.auth-container-v97 .auth-helper {
  margin: 2px 0 2px;
  max-width: 310px;
  align-self: center;
}

.auth-container-v97 .login-btn {
  min-height: 56px;
  border-radius: 16px;
  background: #CCFF00 !important;
  color: #050505 !important;
  box-shadow: 0 18px 35px rgba(204,255,0,.15) !important;
}

.auth-container-v97 .auth-social-btn {
  min-height: 48px;
  border-radius: 16px;
  background: rgba(255,255,255,.055);
}

.auth-container-v97 .auth-link-btn {
  width: fit-content;
  align-self: flex-start;
  padding: 4px 0 0;
}

.auth-container-v97 .auth-dev-note {
  display: none !important;
}

.auth-status {
  display: grid;
  gap: 4px;
  padding: 12px 14px;
  border-radius: 16px;
  text-align: left;
  font-size: .8rem;
  line-height: 1.35;
}

.auth-status strong {
  font-size: .86rem;
}

.auth-status span {
  color: rgba(255,255,255,.72);
}

.auth-status.success {
  background: rgba(66, 220, 120, .10);
  border: 1px solid rgba(66, 220, 120, .24);
  color: #7dffae;
}

.auth-status.info {
  background: rgba(204,255,0,.08);
  border: 1px solid rgba(204,255,0,.20);
  color: #CCFF00;
}

.auth-status.warning {
  background: rgba(255,210,80,.10);
  border: 1px solid rgba(255,210,80,.24);
  color: #ffe082;
}

@media (max-width: 420px) {
  .auth-container-v97 {
    width: min(392px, calc(100vw - 22px));
    padding: 28px 22px 22px !important;
  }

  .auth-container-v97 .login-input,
  .auth-container-v97 .login-btn {
    min-height: 52px;
  }
}


/* ===== V100 PROFILE NAME POLISH ===== */
#profile-hub-name {
  max-width: min(92vw, 620px);
  margin-left: auto;
  margin-right: auto;
  overflow-wrap: anywhere;
  word-break: break-word;
  line-height: 1.05;
}

@media (max-width: 640px) {
  #profile-hub-name {
    font-size: clamp(2rem, 8.5vw, 3.1rem) !important;
    max-width: calc(100vw - 42px);
  }
}


/* ===== V101 AUTH STEP FLOW ===== */
.auth-container-v101 {
  width: min(440px, calc(100vw - 28px));
  min-height: auto;
  padding: 30px 26px 28px !important;
  border-radius: 28px !important;
  background:
    radial-gradient(circle at 82% 18%, rgba(204,255,0,.11), transparent 35%),
    linear-gradient(180deg, rgba(255,255,255,.055), rgba(255,255,255,.025)) !important;
  border: 1px solid rgba(255,255,255,.13) !important;
  box-shadow: 0 26px 80px rgba(0,0,0,.60), 0 0 42px rgba(204,255,0,.05) !important;
}

.auth-step-header {
  display: flex;
  align-items: center;
  gap: 16px;
  margin: 0 0 18px;
}

.auth-step-back {
  width: 42px;
  height: 42px;
  border: 0;
  background: transparent;
  color: #fff;
  font-size: 2rem;
  line-height: 1;
  cursor: pointer;
}

.auth-step-progress {
  flex: 1;
  height: 5px;
  max-width: 154px;
  margin: 0 auto;
  border-radius: 999px;
  background: rgba(150,160,180,.35);
  overflow: hidden;
}

.auth-step-progress span {
  display: block;
  width: 34%;
  height: 100%;
  border-radius: inherit;
  background: #f8f9fa;
}

.auth-title {
  margin: 8px 0 26px;
  color: #fff;
  font-size: clamp(1.8rem, 7vw, 2.35rem);
  line-height: 1.18;
  letter-spacing: -0.05em;
  text-align: left;
}

.auth-container-v101 .login-logo {
  margin-bottom: 4px;
}

.auth-container-v101 .login-access {
  margin-bottom: 18px;
}

.auth-container-v101 .auth-tabs {
  margin: 0 0 22px;
  padding: 5px;
  border-radius: 999px;
  background: rgba(255,255,255,.075);
  border: 1px solid rgba(255,255,255,.11);
}

.auth-container-v101 .auth-tab {
  min-height: 46px;
  border-radius: 999px;
}

.auth-container-v101 .form-group label {
  font-size: .86rem;
  color: rgba(255,255,255,.70);
  text-transform: none;
  letter-spacing: .01em;
}

.auth-container-v101 .login-input {
  min-height: 58px;
  border-radius: 17px;
  background: rgba(255,255,255,.055);
  border: 1px solid rgba(160,175,190,.30);
  font-size: 1rem;
}

.auth-container-v101 .login-input:focus {
  border-color: rgba(204,255,0,.95);
  box-shadow: 0 0 0 3px rgba(204,255,0,.12);
}

.auth-container-v101 .login-btn {
  min-height: 58px;
  border-radius: 999px !important;
  background: #CCFF00 !important;
  color: #050505 !important;
  box-shadow: 0 18px 36px rgba(204,255,0,.15) !important;
}

.auth-container-v101 .auth-helper {
  color: rgba(255,255,255,.62);
  max-width: 330px;
  align-self: center;
}

.auth-container-v101 .auth-social-btn {
  min-height: 51px;
  border-radius: 999px;
  background: #f4f5f7 !important;
  color: #111 !important;
  font-weight: 900;
}

.auth-container-v101 .auth-social-btn span {
  background: transparent !important;
  color: inherit !important;
}

.auth-container-v101 .auth-social-btn[onclick*="apple"] {
  display: none;
}

.auth-container-v101 .auth-social-register .auth-social-btn {
  justify-content: center;
}

.auth-container-v101 .auth-divider {
  margin: 14px 0 12px;
}

@media (min-width: 780px) {
  .auth-container-v101 .auth-step-header,
  .auth-container-v101 .auth-title {
    display: none;
  }
}

@media (max-width: 640px) {
  .login-screen {
    align-items: flex-start;
    padding-top: 22px;
  }

  .auth-container-v101 {
    width: min(100%, calc(100vw - 24px));
    min-height: auto;
    border-radius: 0 !important;
    border-color: transparent !important;
    background: #050505 !important;
    box-shadow: none !important;
    padding: 22px 18px 26px !important;
  }

  .auth-container-v101 .login-logo,
  .auth-container-v101 .login-access {
    display: none;
  }

  .auth-container-v101 .auth-tabs {
    margin-bottom: 18px;
  }
}


/* ===== V102 AUTH FLOW FIX ===== */
.auth-container-v101 .auth-step-header,
.auth-container-v101 .auth-title {
  display: block;
}

.auth-container-v101 .auth-step-header {
  display: flex !important;
}

.auth-container-v101 .auth-social-btn[onclick*="apple"] {
  display: flex !important;
}

.auth-container-v101 .auth-divider.hidden {
  display: none !important;
}

.auth-container-v101 .form-group.hidden,
.auth-container-v101 .hidden {
  display: none !important;
}

.auth-container-v101 .auth-social-grid {
  display: grid;
  gap: 10px;
  margin-top: 10px;
}

.auth-container-v101 .auth-social-btn {
  width: 100%;
  justify-content: center;
  gap: 10px;
}

.auth-container-v101 .auth-link-btn {
  margin-top: 10px;
}

@media (min-width: 780px) {
  .auth-container-v101 .auth-step-header,
  .auth-container-v101 .auth-title {
    display: flex !important;
  }

  .auth-container-v101 .auth-title {
    display: block !important;
    text-align: left;
  }
}


/* ===== V103 AUTH RESET + VISUAL POLISH ===== */
.auth-container-v101 .auth-title {
  font-size: clamp(1.55rem, 5.4vw, 2.05rem) !important;
  line-height: 1.12 !important;
  margin: 4px 0 22px !important;
  letter-spacing: -0.055em;
}

.auth-provider-icon {
  width: 22px;
  height: 22px;
  object-fit: contain;
  display: inline-block;
  flex: 0 0 auto;
}

.auth-container-v101 .auth-social-btn {
  position: relative;
  justify-content: center;
}

.auth-container-v101 .auth-social-btn .auth-provider-icon {
  position: absolute;
  left: 28px;
}

.auth-container-v101 .auth-social-grid.hidden,
.auth-container-v101 .auth-divider.hidden,
.auth-container-v101 .form-group.hidden {
  display: none !important;
}

.auth-container-v101 .auth-step-progress span {
  transition: width .2s ease;
}

.auth-container-v101:has(#auth-password-group:not(.hidden)) .auth-step-progress span {
  width: 68%;
}

.auth-container-v101:has(#auth-confirm-password-group:not(.hidden)) .auth-step-progress span {
  width: 100%;
}

@media (max-width: 640px) {
  .auth-container-v101 .auth-title {
    font-size: clamp(1.75rem, 8vw, 2.35rem) !important;
    max-width: 92%;
  }

  .auth-container-v101 .login-btn {
    margin-top: 8px;
  }

  .auth-container-v101 .auth-link-btn {
    width: 100%;
    min-height: 54px;
    border-radius: 999px;
    border: 2px solid rgba(255,255,255,.84);
    color: #fff;
    display: grid;
    place-items: center;
    margin-top: 14px;
    font-size: 1rem;
  }
}


/* ===== V104 AUTH RESPONSIVE + SETA.PNG ===== */
:root {
  --auth-card-mobile-max: 430px;
}

/* seta padrão do app */
.auth-step-back,
.back-btn,
.profile-back-btn,
.page-back-btn,
.settings-back,
button[aria-label="Voltar"] {
  position: relative;
  width: 42px !important;
  min-width: 42px !important;
  height: 42px !important;
  padding: 0 !important;
  border: 0 !important;
  background: transparent !important;
  color: transparent !important;
  font-size: 0 !important;
  line-height: 0 !important;
  overflow: hidden;
}

.auth-step-back::before,
.back-btn::before,
.profile-back-btn::before,
.page-back-btn::before,
.settings-back::before,
button[aria-label="Voltar"]::before {
  content: "";
  display: block;
  width: 30px;
  height: 30px;
  margin: 6px;
  background: url("../img/seta.png") center / contain no-repeat;
  filter: none;
}

.auth-step-header {
  position: relative;
  display: grid !important;
  grid-template-columns: 42px 1fr 42px;
  align-items: center;
  gap: 0 !important;
  width: 100%;
}

.auth-step-progress {
  grid-column: 2;
  justify-self: center;
  width: 156px;
  max-width: 42vw;
  margin: 0 !important;
}

/* Desktop/preview: evita card gigante e mantém proporção de app */
.login-screen {
  min-height: 100dvh;
  overflow-y: auto;
}

.auth-container-v101 {
  width: min(430px, calc(100vw - 32px)) !important;
  max-height: none;
  margin: 24px auto !important;
  padding: clamp(22px, 3.4vw, 30px) clamp(20px, 3.2vw, 26px) !important;
}

.auth-container-v101 .login-logo {
  margin-bottom: 8px !important;
}

.auth-container-v101 .logo-text {
  font-size: clamp(1.75rem, 4.4vw, 2.15rem) !important;
}

.auth-container-v101 .login-access {
  font-size: .74rem !important;
  line-height: 1.25 !important;
  margin-bottom: 16px !important;
}

.auth-container-v101 .auth-title {
  font-size: clamp(1.55rem, 4.6vw, 2rem) !important;
  line-height: 1.14 !important;
  margin: 8px 0 18px !important;
  max-width: 100%;
}

.auth-container-v101 .auth-tabs {
  min-height: 54px;
  margin-bottom: 18px !important;
}

.auth-container-v101 .auth-tab {
  min-height: 44px !important;
  font-size: .92rem;
}

.auth-container-v101 .form-group {
  margin-bottom: 14px !important;
}

.auth-container-v101 .form-group label {
  margin-bottom: 7px !important;
  font-size: .84rem !important;
}

.auth-container-v101 .login-input {
  min-height: 54px !important;
  border-radius: 16px !important;
  font-size: .98rem !important;
}

.auth-container-v101 .login-btn {
  min-height: 56px !important;
  margin-top: 6px !important;
  font-size: 1.02rem !important;
}

.auth-container-v101 .auth-helper {
  margin: 4px auto 8px !important;
  font-size: .82rem !important;
  line-height: 1.35;
}

.auth-container-v101 .auth-divider {
  margin: 12px 0 10px !important;
}

.auth-container-v101 .auth-social-grid {
  gap: 10px !important;
}

.auth-container-v101 .auth-social-btn {
  min-height: 52px !important;
  font-size: .96rem !important;
}

/* "Esqueci minha senha" igual no mobile também em desktop */
.auth-container-v101 .auth-link-btn {
  width: 100%;
  min-height: 54px;
  border-radius: 999px;
  border: 2px solid rgba(255,255,255,.84);
  color: #fff !important;
  background: rgba(0,0,0,.10);
  display: grid;
  place-items: center;
  margin-top: 14px;
  font-size: 1rem;
  font-weight: 900;
  text-align: center;
}

.auth-container-v101 .auth-link-btn:hover {
  background: rgba(255,255,255,.06);
}

/* Estado de cadastro: evita cortar conteúdo em telas baixas */
.auth-container-v101 .auth-social-grid:not(.hidden) + .auth-link-btn {
  margin-top: 12px;
}

/* Mobile real: mais compacto e sem estouro vertical */
@media (max-width: 640px) {
  .login-screen {
    align-items: flex-start !important;
    padding: max(14px, env(safe-area-inset-top)) 12px max(20px, env(safe-area-inset-bottom)) !important;
  }

  .auth-container-v101 {
    width: min(var(--auth-card-mobile-max), calc(100vw - 24px)) !important;
    margin: 0 auto !important;
    padding: 20px 18px 22px !important;
    border-radius: 26px !important;
    border: 1px solid rgba(255,255,255,.11) !important;
    background:
      radial-gradient(circle at 82% 16%, rgba(204,255,0,.10), transparent 34%),
      linear-gradient(180deg, rgba(255,255,255,.04), rgba(255,255,255,.018)) !important;
  }

  .auth-container-v101 .login-logo,
  .auth-container-v101 .login-access {
    display: block !important;
  }

  .auth-container-v101 .logo-text {
    font-size: 1.8rem !important;
  }

  .auth-container-v101 .login-access {
    font-size: .66rem !important;
    margin-bottom: 12px !important;
  }

  .auth-step-header {
    margin-bottom: 12px !important;
  }

  .auth-step-progress {
    width: 142px;
  }

  .auth-container-v101 .auth-title {
    font-size: clamp(1.42rem, 7vw, 1.9rem) !important;
    margin-bottom: 16px !important;
  }

  .auth-container-v101 .auth-tabs {
    min-height: 50px;
    margin-bottom: 14px !important;
  }

  .auth-container-v101 .auth-tab {
    min-height: 40px !important;
    font-size: .86rem !important;
  }

  .auth-container-v101 .login-input {
    min-height: 50px !important;
    font-size: .94rem !important;
  }

  .auth-container-v101 .login-btn,
  .auth-container-v101 .auth-link-btn,
  .auth-container-v101 .auth-social-btn {
    min-height: 50px !important;
    font-size: .92rem !important;
  }

  .auth-container-v101 .auth-provider-icon {
    width: 20px;
    height: 20px;
  }

  .auth-container-v101 .auth-social-btn .auth-provider-icon {
    left: 28px;
  }
}

/* Telas muito baixas: compacta mais ainda */
@media (max-height: 760px) and (max-width: 640px) {
  .auth-container-v101 {
    padding-top: 16px !important;
    padding-bottom: 16px !important;
  }

  .auth-container-v101 .logo-text {
    font-size: 1.55rem !important;
  }

  .auth-container-v101 .login-access {
    display: none !important;
  }

  .auth-step-header {
    margin-bottom: 8px !important;
  }

  .auth-container-v101 .auth-title {
    font-size: 1.42rem !important;
    margin: 6px 0 12px !important;
  }

  .auth-container-v101 .auth-tabs {
    margin-bottom: 10px !important;
  }

  .auth-container-v101 .form-group {
    margin-bottom: 10px !important;
  }

  .auth-container-v101 .login-input,
  .auth-container-v101 .login-btn,
  .auth-container-v101 .auth-link-btn,
  .auth-container-v101 .auth-social-btn {
    min-height: 46px !important;
  }

  .auth-container-v101 .auth-divider {
    margin: 8px 0 !important;
  }
}


/* ===== V105 MOBILE AUTH BAR + RATE-LIMIT FIX ===== */
.auth-container-v101 .auth-step-header {
  display: grid !important;
  grid-template-columns: 42px minmax(120px, 170px) 42px !important;
  justify-content: center !important;
  align-items: center !important;
  gap: 8px !important;
  width: 100% !important;
}

.auth-container-v101 .auth-step-back.hidden {
  display: block !important;
  visibility: hidden !important;
  pointer-events: none !important;
}

.auth-container-v101 .auth-step-progress {
  grid-column: 2 !important;
  justify-self: center !important;
  width: min(170px, 42vw) !important;
  max-width: 170px !important;
  margin: 0 !important;
}

.auth-container-v101 .auth-title {
  font-size: clamp(1.35rem, 4.8vw, 1.8rem) !important;
  max-width: 100% !important;
  line-height: 1.1 !important;
  word-break: normal !important;
  overflow-wrap: normal !important;
  hyphens: none !important;
}

@media (max-width: 640px) {
  .auth-container-v101 {
    width: min(404px, calc(100vw - 28px)) !important;
    padding-left: 18px !important;
    padding-right: 18px !important;
  }

  .auth-container-v101 .auth-step-header {
    grid-template-columns: 34px minmax(116px, 160px) 34px !important;
    gap: 6px !important;
    margin-bottom: 10px !important;
  }

  .auth-container-v101 .auth-step-back,
  .auth-container-v101 button[aria-label="Voltar"] {
    width: 34px !important;
    min-width: 34px !important;
    height: 34px !important;
  }

  .auth-container-v101 .auth-step-back::before,
  .auth-container-v101 button[aria-label="Voltar"]::before {
    width: 24px !important;
    height: 24px !important;
    margin: 5px !important;
  }

  .auth-container-v101 .auth-step-progress {
    width: min(160px, 40vw) !important;
  }

  .auth-container-v101 .auth-title {
    font-size: clamp(1.36rem, 6.1vw, 1.72rem) !important;
    line-height: 1.08 !important;
    margin-top: 6px !important;
    margin-bottom: 14px !important;
  }
}

@media (max-width: 390px) {
  .auth-container-v101 .auth-title {
    font-size: 1.28rem !important;
  }

  .auth-container-v101 .auth-step-progress {
    width: 126px !important;
  }
}


/* ===== V106 AUTH STATUS ===== */
.auth-status {
  display: grid;
  gap: 4px;
  padding: 12px 14px;
  border-radius: 16px;
  margin: 8px 0 12px;
  font-size: .86rem;
  line-height: 1.35;
  border: 1px solid rgba(204,255,0,.24);
  background: rgba(204,255,0,.08);
  color: rgba(255,255,255,.86);
}

.auth-status strong {
  color: #CCFF00;
  font-size: .9rem;
}

.auth-status.success {
  border-color: rgba(81, 220, 120, .34);
  background: rgba(81, 220, 120, .10);
}

.auth-status.success strong {
  color: #7CFF95;
}

.login-error:not(.hidden) {
  display: block;
  margin: 8px 0 12px;
  color: #ff8b8b;
  font-size: .86rem;
  text-align: center;
}


/* ===== V110 TREINOS / EXPORTAÇÃO ===== */
.export-backup-header {
  align-items: flex-start;
}

.export-backup-badge {
  display: none !important;
}

.training-export-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
}

.export-action-card {
  user-select: none;
  -webkit-tap-highlight-color: transparent;
}

.export-action-card.selected {
  background: rgba(204, 255, 0, .11) !important;
  border-color: rgba(204, 255, 0, .62) !important;
  box-shadow: 0 0 0 1px rgba(204, 255, 0, .18), 0 16px 40px rgba(204,255,0,.10) !important;
}

.export-action-card:not(.selected):focus {
  outline: none;
}

.export-action-card:not(.selected):focus-visible {
  outline: 2px solid rgba(204, 255, 0, .7);
  outline-offset: 3px;
}

.manual-manager-badge {
  text-transform: uppercase;
}

.manual-manager-input {
  padding-right: 44px !important;
  background-position: right 18px center !important;
}

.manual-manager-grid select {
  padding-right: 44px !important;
}

@media (max-width: 720px) {
  .training-export-grid {
    grid-template-columns: 1fr !important;
  }

  .manual-manager-input {
    padding-right: 42px !important;
    background-position: right 16px center !important;
  }
}


/* ===== V111 EXPORTAÇÃO: RESTAURA CARD VISUAL ===== */
.training-export-card {
  margin-top: 28px !important;
  padding: 28px !important;
  border-radius: 28px !important;
  border: 1px solid rgba(204, 255, 0, .32) !important;
  background:
    radial-gradient(circle at 92% 0%, rgba(204, 255, 0, .14), transparent 34%),
    linear-gradient(145deg, rgba(25, 30, 27, .98), rgba(8, 10, 9, .98)) !important;
  box-shadow: 0 20px 60px rgba(0,0,0,.34), inset 0 0 0 1px rgba(255,255,255,.025) !important;
}

.export-backup-header {
  display: flex !important;
  justify-content: space-between !important;
  gap: 18px !important;
  align-items: flex-start !important;
  margin-bottom: 22px !important;
}

.export-backup-eyebrow,
.phase-dashboard-header span {
  color: var(--primary, #CCFF00) !important;
  font-weight: 900 !important;
  letter-spacing: .14em !important;
  text-transform: uppercase !important;
}

.export-backup-header h3 {
  color: #fff !important;
  font-size: clamp(1.35rem, 2.4vw, 2rem) !important;
  line-height: 1.05 !important;
  margin: 8px 0 8px !important;
  font-weight: 900 !important;
}

.export-backup-header p {
  color: rgba(255,255,255,.68) !important;
  font-size: 1rem !important;
  line-height: 1.45 !important;
  margin: 0 !important;
  max-width: 720px !important;
}

.training-export-grid {
  display: grid !important;
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  gap: 16px !important;
}

.export-action-card {
  min-height: 168px !important;
  padding: 24px !important;
  border-radius: 24px !important;
  border: 1px solid rgba(255,255,255,.12) !important;
  background: rgba(255,255,255,.045) !important;
  text-align: left !important;
  display: grid !important;
  align-content: start !important;
  gap: 10px !important;
}

.export-action-card span {
  font-size: 1.85rem !important;
  line-height: 1 !important;
}

.export-action-card strong {
  color: #fff !important;
  font-size: 1.25rem !important;
  font-weight: 900 !important;
}

.export-action-card small {
  color: rgba(255,255,255,.58) !important;
  font-size: .96rem !important;
  line-height: 1.4 !important;
}

.export-backup-status {
  margin-top: 16px !important;
  color: rgba(255,255,255,.68) !important;
  font-size: .95rem !important;
}

.phase-dashboard-header span,
.phase-dashboard-card .dashboard-eyebrow,
.phase-dashboard-card > span {
  color: var(--primary, #CCFF00) !important;
}

@media (max-width: 720px) {
  .training-export-card {
    padding: 24px !important;
    border-radius: 24px !important;
  }

  .training-export-grid {
    grid-template-columns: 1fr !important;
  }

  .export-action-card {
    min-height: 144px !important;
  }
}


/* ===== V112 NAVIGATION FIX ===== */
.page.hidden {
  display: none !important;
}

.page.active {
  display: block !important;
}

.bottom-nav.hidden {
  display: none !important;
}


/* ===== V113 EXPORTAÇÃO: TIPOGRAFIA ALINHADA AOS CARDS SUPERIORES ===== */
.training-export-card {
  padding: 24px !important;
}

.export-backup-eyebrow {
  font-size: .72rem !important;
  line-height: 1.2 !important;
  letter-spacing: .14em !important;
  color: var(--primary, #CCFF00) !important;
  font-weight: 900 !important;
  margin-bottom: 8px !important;
}

.export-backup-header h3 {
  font-size: 1.18rem !important;
  line-height: 1.15 !important;
  font-weight: 900 !important;
  margin: 6px 0 8px !important;
  letter-spacing: -0.02em !important;
}

.export-backup-header p {
  font-size: .92rem !important;
  line-height: 1.45 !important;
  color: rgba(255,255,255,.64) !important;
  max-width: 760px !important;
}

.export-backup-header {
  margin-bottom: 20px !important;
}

.export-action-card {
  min-height: 150px !important;
  padding: 22px !important;
  border-radius: 20px !important;
}

.export-action-card span {
  font-size: 1.55rem !important;
}

.export-action-card strong {
  font-size: 1rem !important;
  line-height: 1.15 !important;
  letter-spacing: -0.01em !important;
}

.export-action-card small {
  font-size: .86rem !important;
  line-height: 1.45 !important;
  color: rgba(255,255,255,.56) !important;
}

.export-backup-status {
  margin-top: 16px !important;
  font-size: .88rem !important;
  color: rgba(255,255,255,.66) !important;
}

@media (max-width: 720px) {
  .training-export-card {
    padding: 22px !important;
  }

  .export-backup-header h3 {
    font-size: 1.1rem !important;
  }

  .export-action-card {
    min-height: 136px !important;
    padding: 20px !important;
  }
}


/* ===== V114 NOVA IDENTIDADE VISUAL ===== */
.splash-content-v114 {
  display: grid !important;
  place-items: center !important;
  gap: 0 !important;
}

.splash-brand-icon {
  width: clamp(180px, 46vw, 340px);
  height: auto;
  display: block;
  object-fit: contain;
  filter: drop-shadow(0 0 40px rgba(255,255,255,.12));
}

.splash-content-v114 .splash-subtitle,
.splash-content-v114 .splash-loader,
.splash-content-v114 .logo-text {
  display: none !important;
}

.brand-logo-img {
  display: block;
  object-fit: contain;
  user-select: none;
  -webkit-user-drag: none;
}

.login-logo {
  display: flex !important;
  justify-content: center !important;
  align-items: center !important;
  margin-bottom: 4px !important;
  width: 100% !important;
}

.login-brand-logo {
  width: min(300px, 78vw);
  max-height: 120px;
  margin: 0 auto;
}

.auth-container-v101 .login-access {
  text-transform: lowercase !important;
  letter-spacing: .03em !important;
  font-size: .82rem !important;
  color: rgba(255,255,255,.70) !important;
  margin-top: 0 !important;
  margin-bottom: 14px !important;
  text-align: center !important;
}

.header-left {
  display: flex !important;
  align-items: center !important;
}

.header-brand-logo {
  width: clamp(180px, 22vw, 260px);
  max-height: 60px;
  object-position: left center;
}

.app-header .header-title {
  display: none !important;
}

@media (max-width: 720px) {
  .login-brand-logo {
    width: min(280px, 76vw);
    max-height: 110px;
  }

  .header-brand-logo {
    width: min(340px, 76vw);
    max-height: 64px;
  }

  .splash-brand-icon {
    width: clamp(160px, 50vw, 260px);
  }

  .auth-container-v101 .login-logo {
    margin-bottom: 2px !important;
  }

  .auth-container-v101 .login-access {
    margin-top: 0 !important;
    margin-bottom: 12px !important;
    font-size: .78rem !important;
  }
}


/* ===== V115 PWA ICON + HEADER LOGO FIX ===== */
.header-left {
  min-width: 0 !important;
  flex: 1 1 auto !important;
  overflow: visible !important;
}

.header-brand-logo,
#app-header-logo {
  width: clamp(220px, 30vw, 360px) !important;
  height: auto !important;
  max-width: none !important;
  max-height: 78px !important;
  object-fit: contain !important;
  object-position: left center !important;
  transform: translateZ(0) scale(1.18) !important;
  transform-origin: left center !important;
}

.app-header {
  overflow: visible !important;
}

@media (max-width: 720px) {
  .app-header {
    min-height: calc(var(--header-height) + var(--safe-top) + 8px) !important;
    overflow: visible !important;
  }

  .header-left {
    flex: 1 1 58% !important;
  }

  .header-brand-logo,
  #app-header-logo {
    width: min(260px, 52vw) !important;
    max-height: 58px !important;
    transform: translateZ(0) scale(1.32) !important;
  }
}

@media (max-width: 390px) {
  .header-brand-logo,
  #app-header-logo {
    width: min(238px, 50vw) !important;
    transform: translateZ(0) scale(1.28) !important;
  }
}


/* ===== V117 PLAN QUALITY SCORE ===== */
.plan-quality-card {
  margin: 18px 0;
  padding: 18px;
  border-radius: 22px;
  border: 1px solid rgba(204,255,0,.22);
  background: linear-gradient(145deg, rgba(204,255,0,.08), rgba(255,255,255,.035));
}

.plan-quality-head {
  display: flex;
  justify-content: space-between;
  gap: 18px;
  align-items: flex-start;
  margin-bottom: 16px;
}

.plan-quality-eyebrow {
  display: block;
  color: var(--primary, #CCFF00);
  font-size: .7rem;
  font-weight: 900;
  letter-spacing: .14em;
  text-transform: uppercase;
  margin-bottom: 6px;
}

.plan-quality-head h4 {
  margin: 0 0 6px;
  color: #fff;
  font-size: 1.18rem;
  font-weight: 900;
}

.plan-quality-head p {
  margin: 0;
  color: rgba(255,255,255,.62);
  font-size: .9rem;
  line-height: 1.4;
}

.plan-quality-score {
  min-width: 92px;
  border-radius: 18px;
  padding: 10px 12px;
  text-align: center;
  background: rgba(0,0,0,.26);
  border: 1px solid rgba(255,255,255,.10);
}

.plan-quality-score strong {
  color: var(--primary, #CCFF00);
  font-size: 1.8rem;
  line-height: 1;
  font-weight: 950;
}

.plan-quality-score span {
  color: rgba(255,255,255,.55);
  font-weight: 800;
}

.plan-quality-score small {
  display: block;
  margin-top: 4px;
  color: rgba(255,255,255,.72);
  font-size: .72rem;
  font-weight: 900;
  text-transform: uppercase;
}

.plan-quality-metrics {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
}

.plan-quality-metric {
  padding: 12px;
  border-radius: 16px;
  background: rgba(0,0,0,.18);
  border: 1px solid rgba(255,255,255,.07);
}

.plan-quality-metric span {
  display: block;
  color: rgba(255,255,255,.50);
  font-size: .72rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: .05em;
}

.plan-quality-metric strong {
  color: #fff;
  font-size: 1.05rem;
  font-weight: 900;
}

.plan-quality-bar {
  height: 5px;
  overflow: hidden;
  border-radius: 999px;
  background: rgba(255,255,255,.10);
  margin-top: 8px;
}

.plan-quality-bar i {
  display: block;
  height: 100%;
  border-radius: inherit;
  background: var(--primary, #CCFF00);
}

.plan-quality-insights {
  margin-top: 14px;
  padding-top: 12px;
  border-top: 1px solid rgba(255,255,255,.08);
}

.plan-quality-insights p {
  margin: 5px 0;
  color: rgba(255,255,255,.66);
  font-size: .86rem;
  line-height: 1.35;
}

.plan-quality-card.warning .plan-quality-score strong {
  color: #ffd166;
}

.plan-quality-card.danger .plan-quality-score strong {
  color: #ff7a7a;
}

@media (max-width: 720px) {
  .plan-quality-head {
    flex-direction: column;
  }

  .plan-quality-score {
    width: 100%;
  }

  .plan-quality-metrics {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}


/* ===== V118 HOTFIX: BANNER DE REMOVER PLANILHA ===== */
.ai-adopted-banner {
  display: flex;
  align-items: center;
  gap: 14px;
  flex-wrap: wrap;
}

.ai-adopted-banner.hidden {
  display: none !important;
}

.btn-adopted-remove {
  margin-left: auto;
  border: 1px solid rgba(255, 112, 112, .42) !important;
  background: rgba(255, 112, 112, .12) !important;
  color: #ffb4b4 !important;
  border-radius: 16px !important;
  padding: 12px 16px !important;
  font-weight: 900 !important;
  cursor: pointer !important;
}

.btn-adopted-remove:hover {
  background: rgba(255, 112, 112, .20) !important;
}

@media (max-width: 720px) {
  .btn-adopted-remove {
    width: 100%;
    margin-left: 0;
  }
}


/* ===== V119 TOAST HOTFIX ===== */
.runevo-toast-container {
  position: fixed;
  z-index: 99999;
  left: 50%;
  bottom: calc(24px + env(safe-area-inset-bottom, 0px));
  transform: translateX(-50%);
  display: grid;
  gap: 10px;
  width: min(420px, calc(100vw - 32px));
  pointer-events: none;
}

.runevo-toast {
  opacity: 0;
  transform: translateY(12px) scale(.98);
  transition: opacity .2s ease, transform .2s ease;
  padding: 13px 16px;
  border-radius: 18px;
  color: #fff;
  background: rgba(22, 26, 24, .96);
  border: 1px solid rgba(255, 255, 255, .12);
  box-shadow: 0 18px 50px rgba(0,0,0,.42);
  font-weight: 800;
  font-size: .92rem;
  line-height: 1.35;
  text-align: center;
}

.runevo-toast.show {
  opacity: 1;
  transform: translateY(0) scale(1);
}

.runevo-toast.success {
  color: #0b1205;
  background: var(--primary, #CCFF00);
  border-color: rgba(204, 255, 0, .55);
}

.runevo-toast.info {
  color: #fff;
  background: rgba(30, 36, 34, .96);
  border-color: rgba(204, 255, 0, .35);
}

.runevo-toast.error {
  color: #fff;
  background: rgba(92, 24, 24, .96);
  border-color: rgba(255, 112, 112, .45);
}


/* ===== V120 ULTRA QUALITY CALIBRATION ===== */
.plan-quality-advice {
  color: #fff !important;
  font-weight: 900 !important;
  background: rgba(204,255,0,.08);
  border: 1px solid rgba(204,255,0,.20);
  border-radius: 14px;
  padding: 10px 12px;
  margin-bottom: 10px !important;
}

.plan-quality-note {
  margin-top: 12px;
  color: rgba(255,255,255,.56);
  font-size: .78rem;
  font-weight: 800;
  letter-spacing: .02em;
}


/* ===== V122/V123 PLAN SUMMARY + VARIETY ===== */
.plan-review-grid {
  grid-template-columns: repeat(5, minmax(0, 1fr));
}

.plan-review-metric span {
  min-height: 1.8em;
}

@media (max-width: 980px) {
  .plan-review-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 520px) {
  .plan-review-grid {
    grid-template-columns: 1fr;
  }
}


/* ===== V124 RISK + SUMMARY REFINE ===== */
.coach-risk-pill {
  max-width: min(360px, 42vw);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.coach-risk-pill.very-high {
  background: rgba(255, 59, 48, 0.20);
  border-color: rgba(255, 59, 48, 0.48);
  color: #ff8a84;
}

.plan-review-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
}

@media (max-width: 720px) {
  .coach-analysis-header {
    align-items: stretch;
  }

  .coach-risk-pill {
    max-width: 100%;
    width: fit-content;
  }

  .plan-review-grid {
    grid-template-columns: 1fr !important;
  }
}


/* ===== V125 FREE x RUNEVO+ FOUNDATION ===== */
.plus-lock-badge,
.plus-chip {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  margin-left: 6px;
  padding: 3px 8px;
  border-radius: 999px;
  background: rgba(204, 255, 0, .14);
  border: 1px solid rgba(204, 255, 0, .38);
  color: var(--primary, #CCFF00);
  font-size: .68rem;
  font-style: normal;
  font-weight: 950;
  letter-spacing: .06em;
  text-transform: uppercase;
  vertical-align: middle;
}

.premium-feature-card {
  position: relative;
}

.premium-feature-card::after {
  content: 'PLUS';
  position: absolute;
  top: 14px;
  right: 14px;
  padding: 4px 8px;
  border-radius: 999px;
  background: rgba(204,255,0,.16);
  border: 1px solid rgba(204,255,0,.35);
  color: var(--primary, #CCFF00);
  font-size: .62rem;
  font-weight: 950;
  letter-spacing: .08em;
}

.plus-modal-content {
  text-align: left;
}

.plus-benefit-list {
  display: grid;
  gap: 8px;
  margin: 14px 0;
  padding: 12px;
  border-radius: 16px;
  background: rgba(204,255,0,.06);
  border: 1px solid rgba(204,255,0,.18);
}

.plus-benefit-list span {
  color: rgba(255,255,255,.86);
  font-weight: 800;
  font-size: .92rem;
}

.plus-modal-note {
  color: rgba(255,255,255,.56);
  font-size: .84rem;
  line-height: 1.4;
}

.plus-inline-card {
  display: flex;
  justify-content: space-between;
  gap: 18px;
  align-items: center;
  margin: 18px 0;
  padding: 18px;
  border-radius: 22px;
  border: 1px solid rgba(204,255,0,.25);
  background: linear-gradient(145deg, rgba(204,255,0,.10), rgba(255,255,255,.035));
}

.plus-inline-card.unlocked {
  border-color: rgba(204,255,0,.38);
  background: linear-gradient(145deg, rgba(204,255,0,.14), rgba(255,255,255,.04));
}

.plus-inline-eyebrow {
  display: block;
  color: var(--primary, #CCFF00);
  font-size: .68rem;
  font-weight: 950;
  letter-spacing: .14em;
  text-transform: uppercase;
  margin-bottom: 6px;
}

.plus-inline-card strong {
  color: #fff;
  display: block;
  font-size: 1.05rem;
  font-weight: 950;
}

.plus-inline-card p {
  color: rgba(255,255,255,.62);
  margin: 6px 0 0;
  line-height: 1.4;
}

.plus-inline-card button {
  flex: 0 0 auto;
  border: 0;
  border-radius: 999px;
  padding: 12px 16px;
  background: var(--primary, #CCFF00);
  color: #071000;
  font-weight: 950;
  cursor: pointer;
}

.disabled-by-active-plan {
  opacity: .58;
  filter: grayscale(.25);
}

@media (max-width: 720px) {
  .plus-inline-card {
    flex-direction: column;
    align-items: stretch;
  }

  .plus-inline-card button {
    width: 100%;
  }

  .premium-feature-card::after {
    top: 10px;
    right: 10px;
  }
}


/* ===== V126 RUNEVO+ PAGE + LOGO SYNC ===== */
body.is-runevo-plus .header-brand-logo,
.header-brand-logo.is-plus {
  filter: drop-shadow(0 0 14px rgba(204,255,0,.22));
}

.runevo-plus-profile-item small {
  margin-left: 8px;
  padding: 3px 8px;
  border-radius: 999px;
  background: rgba(204,255,0,.12);
  border: 1px solid rgba(204,255,0,.28);
  color: var(--primary, #CCFF00);
  font-size: .68rem;
  font-weight: 950;
  text-transform: uppercase;
}

.runevo-plus-container {
  padding-bottom: 56px;
}

.runevo-plus-hero {
  margin-top: 24px;
  padding: 28px;
  border-radius: 30px;
  border: 1px solid rgba(204,255,0,.26);
  background:
    radial-gradient(circle at 80% 0%, rgba(204,255,0,.18), transparent 38%),
    linear-gradient(145deg, rgba(255,255,255,.055), rgba(255,255,255,.018));
  text-align: center;
  box-shadow: 0 28px 80px rgba(0,0,0,.34);
}

.runevo-plus-hero img {
  width: min(240px, 70vw);
  max-height: 88px;
  object-fit: contain;
  margin-bottom: 16px;
}

.runevo-plus-status {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 7px 12px;
  border-radius: 999px;
  background: rgba(255,255,255,.08);
  border: 1px solid rgba(255,255,255,.16);
  color: rgba(255,255,255,.78);
  font-size: .72rem;
  font-weight: 950;
  letter-spacing: .10em;
  text-transform: uppercase;
}

.runevo-plus-status.active {
  background: rgba(204,255,0,.16);
  border-color: rgba(204,255,0,.42);
  color: var(--primary, #CCFF00);
}

.runevo-plus-hero h1 {
  margin: 18px 0 8px;
  color: #fff;
  font-size: clamp(2rem, 6vw, 3.4rem);
  line-height: .98;
  letter-spacing: -.04em;
}

.runevo-plus-hero p {
  max-width: 680px;
  margin: 0 auto 22px;
  color: rgba(255,255,255,.68);
  line-height: 1.55;
}

.runevo-plus-hero button {
  width: min(420px, 100%);
  border: 0;
  border-radius: 999px;
  padding: 16px 18px;
  background: var(--primary, #CCFF00);
  color: #071000;
  font-weight: 950;
  cursor: pointer;
}

.runevo-plus-hero button:disabled {
  opacity: .9;
  cursor: default;
}

.runevo-plus-card {
  margin-top: 20px;
  padding: 22px;
  border-radius: 26px;
  border: 1px solid rgba(255,255,255,.10);
  background: rgba(255,255,255,.045);
}

.runevo-plus-card.subtle {
  background: rgba(204,255,0,.045);
  border-color: rgba(204,255,0,.18);
}

.runevo-plus-eyebrow {
  display: block;
  color: var(--primary, #CCFF00);
  font-size: .72rem;
  font-weight: 950;
  letter-spacing: .14em;
  text-transform: uppercase;
  margin-bottom: 6px;
}

.runevo-plus-card h3 {
  color: #fff;
  margin: 0 0 16px;
  font-size: 1.35rem;
}

.runevo-plus-features {
  display: grid;
  gap: 12px;
}

.plus-feature-row {
  display: flex;
  gap: 12px;
  align-items: flex-start;
  padding: 14px;
  border-radius: 18px;
  background: rgba(0,0,0,.22);
  border: 1px solid rgba(255,255,255,.08);
}

.plus-feature-row strong {
  color: #fff;
  display: block;
  margin-bottom: 4px;
}

.plus-feature-row p {
  color: rgba(255,255,255,.62);
  margin: 0;
  line-height: 1.4;
}

.plus-compare-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px;
}

.plus-compare-grid div {
  padding: 16px;
  border-radius: 18px;
  background: rgba(0,0,0,.22);
  border: 1px solid rgba(255,255,255,.08);
}

.plus-compare-grid strong {
  display: block;
  color: var(--primary, #CCFF00);
  margin-bottom: 6px;
}

.plus-compare-grid p {
  color: rgba(255,255,255,.64);
  margin: 0;
  line-height: 1.45;
}

@media (max-width: 720px) {
  .runevo-plus-hero {
    padding: 22px;
  }

  .plus-compare-grid {
    grid-template-columns: 1fr;
  }
}


/* ===== V127 LOGO ZOOM + FREE/PLUS POLISH ===== */
.app-header,
.header-left {
  overflow: visible !important;
}

.header-left {
  min-width: 0 !important;
  flex: 1 1 auto !important;
}

.header-brand-logo,
#app-header-logo {
  width: clamp(260px, 32vw, 420px) !important;
  height: auto !important;
  max-width: none !important;
  max-height: 72px !important;
  object-fit: contain !important;
  object-position: left center !important;
  transform: translateZ(0) scale(1.26) !important;
  transform-origin: left center !important;
  will-change: transform;
}

.header-brand-logo.is-plus,
body.is-runevo-plus #app-header-logo {
  transform: translateZ(0) scale(1.30) !important;
}

.runevo-plus-card.current {
  background:
    radial-gradient(circle at 92% 0%, rgba(204,255,0,.14), transparent 34%),
    rgba(255,255,255,.045);
  border-color: rgba(204,255,0,.24);
}

.plus-current-plan {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
}

.plus-current-plan strong {
  display: block;
  color: #fff;
  font-size: 1.6rem;
  font-weight: 950;
  letter-spacing: -.03em;
}

.plus-current-plan p {
  margin: 6px 0 0;
  color: rgba(255,255,255,.64);
  line-height: 1.45;
}

.plus-current-plan > span {
  width: 54px;
  height: 54px;
  display: grid;
  place-items: center;
  flex: 0 0 auto;
  border-radius: 18px;
  background: rgba(204,255,0,.12);
  border: 1px solid rgba(204,255,0,.25);
}

.plus-policy-table {
  display: grid;
  gap: 8px;
}

.plus-policy-row {
  display: grid;
  grid-template-columns: 1.05fr .95fr 1.1fr;
  gap: 10px;
  align-items: stretch;
}

.plus-policy-row > strong,
.plus-policy-row > span {
  padding: 12px;
  border-radius: 14px;
  background: rgba(0,0,0,.20);
  border: 1px solid rgba(255,255,255,.07);
  color: rgba(255,255,255,.72);
  font-size: .86rem;
  line-height: 1.35;
}

.plus-policy-row > strong {
  color: #fff;
  font-weight: 900;
}

.plus-policy-row.head > strong,
.plus-policy-row.head > span {
  color: var(--primary, #CCFF00);
  background: rgba(204,255,0,.08);
  border-color: rgba(204,255,0,.20);
  font-weight: 950;
  text-transform: uppercase;
  font-size: .72rem;
  letter-spacing: .08em;
}

.plus-policy-row:not(.head) > span:last-child {
  color: #fff;
  border-color: rgba(204,255,0,.18);
  background: rgba(204,255,0,.06);
}

@media (max-width: 720px) {
  .header-brand-logo,
  #app-header-logo {
    width: min(300px, 62vw) !important;
    max-height: 60px !important;
    transform: translateZ(0) scale(1.44) !important;
  }

  .header-brand-logo.is-plus,
  body.is-runevo-plus #app-header-logo {
    transform: translateZ(0) scale(1.48) !important;
  }

  .plus-policy-row {
    grid-template-columns: 1fr;
  }

  .plus-policy-row.head {
    display: none;
  }

  .plus-policy-row > strong::before {
    content: 'Recurso';
    display: block;
    color: var(--primary, #CCFF00);
    font-size: .65rem;
    letter-spacing: .08em;
    text-transform: uppercase;
    margin-bottom: 5px;
  }

  .plus-policy-row > span:nth-child(2)::before {
    content: 'Free';
    display: block;
    color: var(--primary, #CCFF00);
    font-size: .65rem;
    letter-spacing: .08em;
    text-transform: uppercase;
    margin-bottom: 5px;
  }

  .plus-policy-row > span:nth-child(3)::before {
    content: 'RunEvo+';
    display: block;
    color: var(--primary, #CCFF00);
    font-size: .65rem;
    letter-spacing: .08em;
    text-transform: uppercase;
    margin-bottom: 5px;
  }

  .plus-current-plan {
    align-items: flex-start;
  }
}

@media (max-width: 390px) {
  .header-brand-logo,
  #app-header-logo {
    width: min(280px, 60vw) !important;
    transform: translateZ(0) scale(1.38) !important;
  }
}


/* ===== V128 MOBILE PLUS SALES UI ===== */
.runevo-plus-page {
  overflow-x: hidden;
}

.runevo-plus-container {
  max-width: 520px !important;
  padding-left: 20px !important;
  padding-right: 20px !important;
}

.runevo-plus-hero,
.runevo-plus-card {
  border-radius: 28px !important;
}

.runevo-plus-card h3 {
  font-size: clamp(1.55rem, 7vw, 2.15rem) !important;
  line-height: .98 !important;
  letter-spacing: -.045em !important;
}

.plus-section-caption {
  margin: -4px 0 18px;
  color: rgba(255,255,255,.62);
  font-size: .95rem;
  line-height: 1.45;
}

.runevo-plus-features {
  gap: 14px !important;
}

.plus-feature-row {
  position: relative;
  padding: 18px !important;
  gap: 14px !important;
  border-radius: 24px !important;
  background:
    radial-gradient(circle at 100% 0%, rgba(204,255,0,.08), transparent 36%),
    rgba(0,0,0,.30) !important;
}

.plus-feature-icon {
  width: 42px;
  height: 42px;
  display: grid;
  place-items: center;
  flex: 0 0 auto;
  border-radius: 16px;
  background: rgba(204,255,0,.12);
  border: 1px solid rgba(204,255,0,.22);
  font-size: 1.28rem;
}

.plus-feature-row strong {
  font-size: 1.08rem !important;
  line-height: 1.08 !important;
}

.plus-feature-row p {
  font-size: .94rem !important;
  line-height: 1.42 !important;
}

.plus-policy-cards {
  display: grid;
  gap: 14px;
}

.plus-policy-card {
  padding: 16px;
  border-radius: 24px;
  background: rgba(0,0,0,.28);
  border: 1px solid rgba(255,255,255,.08);
}

.plus-policy-card > strong {
  display: block;
  margin-bottom: 12px;
  color: #fff;
  font-size: 1.08rem;
  font-weight: 950;
  letter-spacing: -.02em;
}

.plus-policy-options {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px;
}

.plus-policy-options span {
  min-height: 82px;
  padding: 13px;
  border-radius: 18px;
  background: rgba(255,255,255,.035);
  border: 1px solid rgba(255,255,255,.08);
  color: rgba(255,255,255,.72);
  font-weight: 850;
  line-height: 1.25;
}

.plus-policy-options span small {
  display: block;
  margin-bottom: 7px;
  color: rgba(255,255,255,.48);
  font-size: .66rem;
  font-weight: 950;
  letter-spacing: .12em;
  text-transform: uppercase;
}

.plus-policy-options .plus-option {
  color: #fff;
  background: rgba(204,255,0,.08);
  border-color: rgba(204,255,0,.28);
  box-shadow: inset 0 0 0 1px rgba(204,255,0,.04);
}

.plus-policy-options .plus-option small {
  color: var(--primary, #CCFF00);
}

@media (max-width: 720px) {
  .runevo-plus-card {
    padding: 20px !important;
  }

  .plus-feature-row {
    align-items: flex-start !important;
  }

  .plus-policy-options {
    grid-template-columns: 1fr 1fr !important;
  }
}

@media (max-width: 390px) {
  .runevo-plus-container {
    padding-left: 16px !important;
    padding-right: 16px !important;
  }

  .plus-policy-card {
    padding: 14px;
  }

  .plus-policy-options {
    gap: 8px;
  }

  .plus-policy-options span {
    padding: 11px;
    font-size: .86rem;
  }
}

/* remove estilo antigo da tabela em mobile para evitar cards quebrados */
.plus-policy-row,
.plus-policy-table,
.plus-compare-grid {
  all: unset;
}


/* ===== V129 PLUS PLAN HISTORY + COMPARISON ===== */
.plus-plan-compare-card {
  margin: 18px 0;
  padding: 18px;
  border-radius: 26px;
  border: 1px solid rgba(204,255,0,.28);
  background:
    radial-gradient(circle at 90% 0%, rgba(204,255,0,.14), transparent 36%),
    rgba(255,255,255,.045);
}

.plus-plan-compare-card h3 {
  color: #fff;
  margin: 4px 0 14px;
  font-size: clamp(1.45rem, 6vw, 2rem);
  letter-spacing: -.04em;
}

.plus-compare-plans {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px;
  margin-bottom: 14px;
}

.plus-plan-mini-card {
  padding: 15px;
  border-radius: 20px;
  border: 1px solid rgba(255,255,255,.09);
  background: rgba(0,0,0,.26);
}

.plus-plan-mini-card > span {
  display: inline-flex;
  margin-bottom: 8px;
  padding: 4px 8px;
  border-radius: 999px;
  background: rgba(204,255,0,.10);
  border: 1px solid rgba(204,255,0,.20);
  color: var(--primary, #CCFF00);
  font-size: .66rem;
  font-weight: 950;
  text-transform: uppercase;
  letter-spacing: .08em;
}

.plus-plan-mini-card strong {
  display: block;
  color: #fff;
  font-size: 1rem;
  line-height: 1.12;
}

.plus-plan-mini-card p {
  color: rgba(255,255,255,.60);
  margin: 6px 0 0;
  font-size: .82rem;
  line-height: 1.35;
}

.plus-plan-mini-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 7px;
  margin-top: 12px;
}

.plus-plan-mini-grid b {
  padding: 8px;
  border-radius: 12px;
  background: rgba(255,255,255,.045);
  color: rgba(255,255,255,.78);
  font-size: .72rem;
  font-weight: 900;
}

.plus-compare-table {
  display: grid;
  gap: 7px;
}

.plus-compare-row {
  display: grid;
  grid-template-columns: 1fr .8fr .8fr;
  gap: 8px;
  align-items: center;
}

.plus-compare-row > * {
  padding: 10px;
  border-radius: 14px;
  background: rgba(0,0,0,.22);
  color: rgba(255,255,255,.72);
  font-size: .82rem;
}

.plus-compare-row strong {
  color: #fff;
}

.plus-compare-row span:last-child {
  color: #fff;
  background: rgba(204,255,0,.08);
  border: 1px solid rgba(204,255,0,.15);
}

.plus-plan-compare-card > p {
  color: rgba(255,255,255,.58);
  margin: 12px 0 0;
  font-size: .86rem;
  line-height: 1.4;
}

.runevo-plus-history {
  display: grid;
  gap: 14px;
}

.plus-history-locked {
  padding: 18px;
  border-radius: 22px;
  background: rgba(0,0,0,.28);
  border: 1px solid rgba(204,255,0,.18);
  text-align: left;
}

.plus-history-locked > span {
  display: grid;
  place-items: center;
  width: 46px;
  height: 46px;
  border-radius: 16px;
  background: rgba(204,255,0,.10);
  margin-bottom: 12px;
}

.plus-history-locked strong {
  color: #fff;
  display: block;
  font-size: 1.12rem;
}

.plus-history-locked p,
.plus-empty-history {
  color: rgba(255,255,255,.62);
  line-height: 1.45;
  margin: 8px 0 0;
}

.plus-history-locked button {
  width: 100%;
  margin-top: 14px;
  border: 0;
  border-radius: 999px;
  padding: 13px 16px;
  background: var(--primary, #CCFF00);
  color: #071000;
  font-weight: 950;
}

.plus-history-list {
  display: grid;
  gap: 10px;
}

@media (max-width: 720px) {
  .plus-compare-plans {
    grid-template-columns: 1fr;
  }

  .plus-compare-row {
    grid-template-columns: 1fr;
  }

  .plus-compare-row strong::before {
    content: 'Métrica';
    display: block;
    color: var(--primary, #CCFF00);
    font-size: .62rem;
    letter-spacing: .08em;
    text-transform: uppercase;
    margin-bottom: 4px;
  }

  .plus-compare-row span:nth-child(2)::before {
    content: 'Atual';
    display: block;
    color: rgba(255,255,255,.45);
    font-size: .62rem;
    letter-spacing: .08em;
    text-transform: uppercase;
    margin-bottom: 4px;
  }

  .plus-compare-row span:nth-child(3)::before {
    content: 'Nova';
    display: block;
    color: var(--primary, #CCFF00);
    font-size: .62rem;
    letter-spacing: .08em;
    text-transform: uppercase;
    margin-bottom: 4px;
  }
}


/* ===== V130 PLUS NAVIGATION POLISH ===== */
.plus-sales-story p {
  color: rgba(255,255,255,.68);
  line-height: 1.55;
  margin: 0 0 18px;
}

.plus-sales-points {
  display: grid;
  gap: 12px;
}

.plus-sales-points div {
  padding: 15px;
  border-radius: 20px;
  background: rgba(0,0,0,.24);
  border: 1px solid rgba(255,255,255,.08);
}

.plus-sales-points strong {
  display: block;
  color: var(--primary, #CCFF00);
  font-size: 1rem;
  font-weight: 950;
  margin-bottom: 5px;
}

.plus-sales-points span {
  display: block;
  color: rgba(255,255,255,.66);
  line-height: 1.38;
}

.plus-feature-link-card {
  background:
    radial-gradient(circle at 95% 0%, rgba(204,255,0,.13), transparent 38%),
    rgba(255,255,255,.045) !important;
}

.plus-feature-link-card button {
  width: 100%;
  margin-top: 16px;
  border: 0;
  border-radius: 999px;
  padding: 15px 18px;
  background: var(--primary, #CCFF00);
  color: #071000;
  font-weight: 950;
}

.my-resources-page .runevo-plus-card:first-of-type {
  margin-top: 24px;
}

body.is-runevo-plus #btn-generate.disabled-by-active-plan {
  opacity: 1 !important;
  filter: none !important;
}


/* ===== V131 PROFILE REORG: ASSINATURA E RECURSOS ===== */
.runevo-resources-profile-item .profile-item-icon {
  background: rgba(204,255,0,.10);
  color: var(--primary, #CCFF00);
}

.profile-list-section h3 {
  letter-spacing: .04em;
}

.my-resources-page .runevo-plus-card:first-of-type {
  margin-top: 24px;
}


/* ===== V132 MONETIZATION LOGIC REORG ===== */
body.is-runevo-free .premium-feature-card {
  display: none !important;
}

.plus-pricing-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px;
}

.plus-price-card {
  position: relative;
  padding: 18px;
  border-radius: 24px;
  background: rgba(0,0,0,.28);
  border: 1px solid rgba(255,255,255,.09);
}

.plus-price-card.featured {
  border-color: rgba(204,255,0,.35);
  background:
    radial-gradient(circle at 100% 0%, rgba(204,255,0,.14), transparent 42%),
    rgba(204,255,0,.06);
}

.plus-price-card span {
  color: var(--primary, #CCFF00);
  font-size: .72rem;
  font-weight: 950;
  letter-spacing: .12em;
  text-transform: uppercase;
}

.plus-price-card strong {
  display: block;
  color: #fff;
  margin-top: 8px;
  font-size: 1.25rem;
  letter-spacing: -.03em;
}

.plus-price-card p {
  color: rgba(255,255,255,.62);
  line-height: 1.4;
  margin: 8px 0 12px;
  font-size: .9rem;
}

.plus-price-card small {
  display: inline-flex;
  padding: 6px 9px;
  border-radius: 999px;
  background: rgba(255,255,255,.06);
  border: 1px solid rgba(255,255,255,.10);
  color: rgba(255,255,255,.58);
  font-weight: 850;
}

.resources-note-card {
  background: rgba(204,255,0,.045) !important;
}

@media (max-width: 720px) {
  .plus-pricing-grid {
    grid-template-columns: 1fr;
  }
}


/* ===== V133 PLUS SALES PRICING ===== */
.plus-pricing-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 14px;
}

.plus-price-card {
  position: relative;
  width: 100%;
  text-align: left;
  padding: 22px;
  border-radius: 28px;
  border: 1px solid rgba(255,255,255,.14);
  background: rgba(255,255,255,.045);
  color: #fff;
  cursor: pointer;
  box-shadow: none;
  transition: border-color .18s ease, background .18s ease, transform .18s ease, box-shadow .18s ease;
}

.plus-price-card.featured {
  border-color: rgba(255,255,255,.14);
  background: rgba(255,255,255,.045);
}

.plus-price-card.selected,
.plus-price-card[aria-pressed="true"] {
  border-color: rgba(204,255,0,.62);
  background:
    radial-gradient(circle at 100% 0%, rgba(204,255,0,.16), transparent 40%),
    rgba(204,255,0,.07);
  box-shadow: 0 0 0 1px rgba(204,255,0,.18), 0 18px 48px rgba(204,255,0,.08);
}

.plus-price-card:active {
  transform: scale(.99);
}

.plus-price-card span {
  display: block;
  color: rgba(255,255,255,.92);
  font-size: clamp(1.35rem, 6vw, 2rem);
  font-weight: 950;
  letter-spacing: -.04em;
  text-transform: lowercase;
}

.plus-price-card strong {
  display: block;
  margin-top: 14px;
  color: #fff;
  font-size: clamp(1.8rem, 8vw, 2.6rem);
  font-weight: 850;
  letter-spacing: -.06em;
}

.plus-price-card p {
  margin: 10px 0 0;
  color: rgba(255,255,255,.62);
  font-size: .95rem;
  line-height: 1.38;
}

.plus-price-card small {
  display: inline-flex;
  margin-top: 14px;
  padding: 7px 10px;
  border-radius: 999px;
  background: rgba(255,255,255,.07);
  border: 1px solid rgba(255,255,255,.12);
  color: rgba(255,255,255,.72);
  font-weight: 850;
}

.plus-price-card em {
  position: absolute;
  right: 16px;
  top: 16px;
  padding: 8px 11px;
  border-radius: 999px;
  background: var(--primary, #CCFF00);
  color: #071000;
  font-size: .72rem;
  font-style: normal;
  font-weight: 950;
  letter-spacing: .06em;
  text-transform: uppercase;
}

.plus-price-card:not(.selected):not([aria-pressed="true"]) em {
  opacity: .72;
}

@media (max-width: 390px) {
  .plus-price-card {
    padding: 18px;
  }

  .plus-price-card em {
    position: static;
    display: inline-flex;
    margin-top: 10px;
  }
}


/* ===== V134 MY RESOURCES POLISH ===== */
.my-resources-plan-hero {
  margin-top: 24px;
  padding: 22px;
  border-radius: 28px;
  border: 1px solid rgba(204,255,0,.26);
  background:
    radial-gradient(circle at 95% 15%, rgba(204,255,0,.22), transparent 38%),
    linear-gradient(135deg, rgba(204,255,0,.10), rgba(255,255,255,.035));
  box-shadow: 0 22px 72px rgba(0,0,0,.34);
}

.my-resources-plan-hero h3 {
  margin: 14px 0 8px;
  color: #fff;
  font-size: clamp(2rem, 9vw, 3rem);
  line-height: .95;
  letter-spacing: -.055em;
}

.my-resources-plan-hero p {
  margin: 0;
  max-width: 420px;
  color: rgba(255,255,255,.68);
  font-size: 1rem;
  line-height: 1.45;
}

.my-resources-plan-hero > strong {
  display: inline-flex;
  margin-top: 18px;
  padding: 9px 12px;
  border-radius: 999px;
  background: rgba(204,255,0,.12);
  border: 1px solid rgba(204,255,0,.28);
  color: var(--primary, #CCFF00);
  font-size: .78rem;
  font-weight: 950;
  letter-spacing: .07em;
  text-transform: uppercase;
}

.runevo-resources-profile-item .profile-item-icon {
  background: rgba(204,255,0,.12) !important;
  border-color: rgba(204,255,0,.25) !important;
}

.runevo-plus-history .plus-history-list {
  max-height: 386px;
  overflow-y: auto;
  padding-right: 4px;
  scroll-snap-type: y proximity;
  scrollbar-width: thin;
  scrollbar-color: rgba(204,255,0,.18) transparent;
  -webkit-mask-image: linear-gradient(to bottom, #000 0%, #000 86%, transparent 100%);
  mask-image: linear-gradient(to bottom, #000 0%, #000 86%, transparent 100%);
}

.runevo-plus-history .plus-history-list::-webkit-scrollbar {
  width: 4px;
}

.runevo-plus-history .plus-history-list::-webkit-scrollbar-track {
  background: transparent;
}

.runevo-plus-history .plus-history-list::-webkit-scrollbar-thumb {
  background: rgba(204,255,0,.18);
  border-radius: 999px;
}

.runevo-plus-history .plus-history-list .plus-plan-mini-card {
  min-height: 178px;
  scroll-snap-align: start;
}

@media (max-width: 420px) {
  .runevo-plus-history .plus-history-list {
    max-height: 372px;
  }

  .runevo-plus-history .plus-history-list .plus-plan-mini-card {
    min-height: 174px;
  }
}


/* ===== V135 PLAN CARDS MOBILE FIX ===== */
.plus-plan-compare-card {
  overflow: hidden !important;
}

.plus-plan-mini-card {
  min-width: 0 !important;
  overflow: hidden !important;
}

.plus-plan-mini-card > span {
  max-width: 100% !important;
  white-space: nowrap !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
}

.plus-plan-mini-card strong {
  max-width: 100% !important;
  display: -webkit-box !important;
  -webkit-line-clamp: 2 !important;
  -webkit-box-orient: vertical !important;
  overflow: hidden !important;
}

.plus-plan-mini-card p {
  white-space: nowrap !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
}

.plus-history-current {
  margin-bottom: 12px;
}

.runevo-plus-history .plus-history-list {
  max-height: 332px !important;
  overflow-y: auto !important;
  display: grid !important;
  gap: 10px !important;
  padding-right: 4px !important;
  -webkit-mask-image: linear-gradient(to bottom, #000 0%, #000 88%, transparent 100%) !important;
  mask-image: linear-gradient(to bottom, #000 0%, #000 88%, transparent 100%) !important;
}

.runevo-plus-history .plus-history-list .plus-plan-mini-card.history-card {
  min-height: 156px !important;
  max-height: 156px !important;
  padding: 13px !important;
}

.runevo-plus-history .plus-history-list .plus-plan-mini-card.history-card > span,
.plus-history-current .plus-plan-mini-card.history-card > span {
  font-size: .58rem !important;
  letter-spacing: .06em !important;
  padding: 4px 7px !important;
}

.runevo-plus-history .plus-history-list .plus-plan-mini-card.history-card strong,
.plus-history-current .plus-plan-mini-card.history-card strong {
  font-size: .92rem !important;
  line-height: 1.08 !important;
}

.runevo-plus-history .plus-history-list .plus-plan-mini-card.history-card p,
.plus-history-current .plus-plan-mini-card.history-card p {
  font-size: .75rem !important;
}

.runevo-plus-history .plus-history-list .plus-plan-mini-card.history-card .plus-plan-mini-grid,
.plus-history-current .plus-plan-mini-card.history-card .plus-plan-mini-grid {
  gap: 6px !important;
  margin-top: 9px !important;
}

.runevo-plus-history .plus-history-list .plus-plan-mini-card.history-card .plus-plan-mini-grid b,
.plus-history-current .plus-plan-mini-card.history-card .plus-plan-mini-grid b {
  padding: 7px !important;
  font-size: .66rem !important;
  white-space: nowrap !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
}

@media (max-width: 720px) {
  .plus-plan-compare-card {
    padding: 16px !important;
    border-radius: 24px !important;
  }

  .plus-plan-compare-card h3 {
    font-size: 1.45rem !important;
    line-height: 1.05 !important;
  }

  .plus-compare-plans {
    grid-template-columns: 1fr !important;
    gap: 12px !important;
  }

  .plus-compare-plans .plus-plan-mini-card {
    padding: 14px !important;
  }

  .plus-compare-plans .plus-plan-mini-grid {
    gap: 7px !important;
  }

  .plus-compare-plans .plus-plan-mini-grid b {
    font-size: .70rem !important;
    padding: 8px !important;
    white-space: nowrap !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
  }

  .runevo-plus-history .plus-history-list {
    max-height: 326px !important;
  }
}

@media (max-width: 390px) {
  .plus-plan-compare-card {
    padding: 14px !important;
  }

  .plus-plan-mini-card {
    padding: 12px !important;
  }

  .plus-plan-mini-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }

  .plus-plan-mini-grid b {
    font-size: .66rem !important;
  }

  .runevo-plus-history .plus-history-list {
    max-height: 316px !important;
  }

  .runevo-plus-history .plus-history-list .plus-plan-mini-card.history-card {
    min-height: 150px !important;
    max-height: 150px !important;
  }
}


/* ===== V136 HISTORY DEDUPE + SCROLL FIX ===== */
.runevo-plus-history {
  overflow: visible !important;
}

.plus-history-current {
  margin-bottom: 14px !important;
}

.runevo-plus-history .plus-history-list {
  position: relative !important;
  max-height: 360px !important;
  min-height: 0 !important;
  overflow-y: auto !important;
  overflow-x: hidden !important;
  display: flex !important;
  flex-direction: column !important;
  gap: 12px !important;
  padding: 0 6px 22px 0 !important;
  border-radius: 22px !important;
  scroll-padding-bottom: 26px !important;
  -webkit-mask-image: none !important;
  mask-image: none !important;
}

.runevo-plus-history .plus-history-list::after {
  content: '';
  position: sticky;
  bottom: -1px;
  display: block;
  height: 34px;
  margin-top: -34px;
  pointer-events: none;
  background: linear-gradient(to bottom, transparent, rgba(0,0,0,.86));
  border-radius: 0 0 22px 22px;
}

.runevo-plus-history .plus-history-list .plus-history-scroll-end {
  height: 26px !important;
  min-height: 26px !important;
  flex: 0 0 26px !important;
}

.runevo-plus-history .plus-history-list .plus-plan-mini-card.history-card {
  flex: 0 0 auto !important;
  min-height: 154px !important;
  max-height: none !important;
  height: auto !important;
  box-sizing: border-box !important;
}

.runevo-plus-history .plus-history-list .plus-plan-mini-card.history-card:last-of-type {
  margin-bottom: 22px !important;
}

.plus-history-current .plus-plan-mini-card.history-card {
  min-height: 154px !important;
  max-height: none !important;
  height: auto !important;
}

@media (max-width: 720px) {
  .runevo-plus-history .plus-history-list {
    max-height: 356px !important;
    padding-bottom: 28px !important;
  }

  .runevo-plus-history .plus-history-list .plus-plan-mini-card.history-card {
    min-height: 152px !important;
  }
}

@media (max-width: 390px) {
  .runevo-plus-history .plus-history-list {
    max-height: 348px !important;
  }

  .runevo-plus-history .plus-history-list .plus-plan-mini-card.history-card {
    min-height: 150px !important;
  }
}


/* ===== V137 HISTORY CARDS RESPONSIVE FIX ===== */
.runevo-plus-history,
.runevo-plus-card.history {
  min-width: 0 !important;
  overflow: visible !important;
}

.runevo-plus-history .plus-history-list {
  max-height: clamp(390px, 62vh, 560px) !important;
  min-height: 0 !important;
  overflow-y: auto !important;
  overflow-x: hidden !important;
  display: flex !important;
  flex-direction: column !important;
  gap: 14px !important;
  padding: 0 6px 34px 0 !important;
  margin: 0 !important;
  scroll-padding-bottom: 44px !important;
  scrollbar-width: thin !important;
  scrollbar-color: rgba(204,255,0,.22) transparent !important;
  -webkit-mask-image: none !important;
  mask-image: none !important;
}

.runevo-plus-history .plus-history-list::-webkit-scrollbar {
  width: 4px !important;
}

.runevo-plus-history .plus-history-list::-webkit-scrollbar-track {
  background: transparent !important;
}

.runevo-plus-history .plus-history-list::-webkit-scrollbar-thumb {
  background: rgba(204,255,0,.22) !important;
  border-radius: 999px !important;
}

.runevo-plus-history .plus-history-list::after {
  content: '' !important;
  flex: 0 0 18px !important;
  height: 18px !important;
  position: static !important;
  display: block !important;
  margin: 0 !important;
  background: transparent !important;
}

.runevo-plus-history .plus-history-list .plus-history-scroll-end {
  display: none !important;
}

.runevo-plus-history .plus-plan-mini-card.history-card,
.plus-history-current .plus-plan-mini-card.history-card {
  width: 100% !important;
  min-width: 0 !important;
  max-width: 100% !important;
  min-height: auto !important;
  max-height: none !important;
  height: auto !important;
  flex: 0 0 auto !important;
  box-sizing: border-box !important;
  padding: clamp(14px, 4vw, 18px) !important;
  border-radius: clamp(18px, 5vw, 24px) !important;
  overflow: hidden !important;
}

.runevo-plus-history .plus-plan-mini-card.history-card > span,
.plus-history-current .plus-plan-mini-card.history-card > span {
  display: inline-flex !important;
  max-width: 100% !important;
  margin-bottom: 10px !important;
  padding: 5px 9px !important;
  font-size: clamp(.58rem, 2.4vw, .68rem) !important;
  line-height: 1 !important;
  white-space: nowrap !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
}

.runevo-plus-history .plus-plan-mini-card.history-card strong,
.plus-history-current .plus-plan-mini-card.history-card strong {
  display: -webkit-box !important;
  -webkit-line-clamp: 2 !important;
  -webkit-box-orient: vertical !important;
  max-width: 100% !important;
  margin: 0 !important;
  color: #fff !important;
  font-size: clamp(.98rem, 4.2vw, 1.12rem) !important;
  line-height: 1.08 !important;
  letter-spacing: -.025em !important;
  overflow: hidden !important;
}

.runevo-plus-history .plus-plan-mini-card.history-card p,
.plus-history-current .plus-plan-mini-card.history-card p {
  max-width: 100% !important;
  margin: 7px 0 0 !important;
  font-size: clamp(.78rem, 3.2vw, .9rem) !important;
  line-height: 1.28 !important;
  color: rgba(255,255,255,.58) !important;
  white-space: nowrap !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
}

.runevo-plus-history .plus-plan-mini-card.history-card .plus-plan-mini-grid,
.plus-history-current .plus-plan-mini-card.history-card .plus-plan-mini-grid {
  display: grid !important;
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  gap: clamp(7px, 2vw, 9px) !important;
  margin-top: 14px !important;
  width: 100% !important;
}

.runevo-plus-history .plus-plan-mini-card.history-card .plus-plan-mini-grid b,
.plus-history-current .plus-plan-mini-card.history-card .plus-plan-mini-grid b {
  min-width: 0 !important;
  width: 100% !important;
  box-sizing: border-box !important;
  padding: clamp(8px, 2.5vw, 10px) !important;
  border-radius: 13px !important;
  background: rgba(255,255,255,.055) !important;
  color: rgba(255,255,255,.82) !important;
  font-size: clamp(.66rem, 2.8vw, .76rem) !important;
  line-height: 1.05 !important;
  font-weight: 900 !important;
  white-space: nowrap !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
}

.plus-history-current {
  margin-bottom: 16px !important;
}

@media (max-width: 360px) {
  .runevo-plus-history .plus-plan-mini-card.history-card .plus-plan-mini-grid,
  .plus-history-current .plus-plan-mini-card.history-card .plus-plan-mini-grid {
    grid-template-columns: 1fr !important;
  }

  .runevo-plus-history .plus-history-list {
    max-height: 470px !important;
  }
}

@media (min-width: 520px) {
  .runevo-plus-history .plus-history-list {
    max-height: 520px !important;
  }

  .runevo-plus-history .plus-plan-mini-card.history-card .plus-plan-mini-grid,
  .plus-history-current .plus-plan-mini-card.history-card .plus-plan-mini-grid {
    grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
  }
}


/* ===== V138 HISTORY CARDS UNIFORM ===== */
/* Mantém planilha ativa e arquivadas com o mesmo padrão visual em qualquer largura. */
.runevo-plus-history .plus-history-current .plus-plan-mini-card.history-card,
.runevo-plus-history .plus-history-list .plus-plan-mini-card.history-card {
  width: 100% !important;
  padding: clamp(16px, 4.2vw, 20px) !important;
  border-radius: 24px !important;
  background:
    radial-gradient(circle at 100% 0%, rgba(204,255,0,.07), transparent 38%),
    rgba(0,0,0,.28) !important;
  border: 1px solid rgba(255,255,255,.10) !important;
}

/* Remove a mudança para 4 colunas em telas largas/dobradas. Histórico deve ser consistente e legível. */
.runevo-plus-history .plus-history-current .plus-plan-mini-card.history-card .plus-plan-mini-grid,
.runevo-plus-history .plus-history-list .plus-plan-mini-card.history-card .plus-plan-mini-grid {
  display: grid !important;
  grid-template-columns: 1fr !important;
  gap: 9px !important;
  margin-top: 15px !important;
}

.runevo-plus-history .plus-history-current .plus-plan-mini-card.history-card .plus-plan-mini-grid b,
.runevo-plus-history .plus-history-list .plus-plan-mini-card.history-card .plus-plan-mini-grid b {
  width: 100% !important;
  min-width: 0 !important;
  padding: 10px 12px !important;
  border-radius: 999px !important;
  background: rgba(255,255,255,.055) !important;
  color: rgba(255,255,255,.84) !important;
  font-size: clamp(.70rem, 2.7vw, .78rem) !important;
  line-height: 1.1 !important;
  white-space: nowrap !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
}

.runevo-plus-history .plus-history-current .plus-plan-mini-card.history-card strong,
.runevo-plus-history .plus-history-list .plus-plan-mini-card.history-card strong {
  font-size: clamp(1rem, 4vw, 1.15rem) !important;
  line-height: 1.08 !important;
}

.runevo-plus-history .plus-history-current .plus-plan-mini-card.history-card p,
.runevo-plus-history .plus-history-list .plus-plan-mini-card.history-card p {
  font-size: clamp(.82rem, 3.1vw, .92rem) !important;
}

/* Histórico com scroll mais estável para Fold, Ultra e telas menores. */
.runevo-plus-history .plus-history-list {
  max-height: clamp(430px, 64vh, 620px) !important;
  padding-bottom: 38px !important;
}

@media (min-width: 520px) {
  .runevo-plus-history .plus-history-list {
    max-height: clamp(440px, 66vh, 640px) !important;
  }

  .runevo-plus-history .plus-history-current .plus-plan-mini-card.history-card .plus-plan-mini-grid,
  .runevo-plus-history .plus-history-list .plus-plan-mini-card.history-card .plus-plan-mini-grid {
    grid-template-columns: 1fr !important;
  }
}

@media (max-width: 360px) {
  .runevo-plus-history .plus-history-current .plus-plan-mini-card.history-card .plus-plan-mini-grid,
  .runevo-plus-history .plus-history-list .plus-plan-mini-card.history-card .plus-plan-mini-grid {
    grid-template-columns: 1fr !important;
  }
}


/* ===== V139 FORCE HISTORY CARD TEMPLATE ===== */
/* v139 não depende mais do grid antigo. O JS gera .history-plan-metrics para histórico. */
.runevo-plus-history .plus-history-current .history-card-v139,
.runevo-plus-history .plus-history-list .history-card-v139 {
  width: 100% !important;
  min-width: 0 !important;
  max-width: 100% !important;
  height: auto !important;
  min-height: auto !important;
  max-height: none !important;
  padding: 16px !important;
  box-sizing: border-box !important;
  overflow: hidden !important;
  border-radius: 24px !important;
  background:
    radial-gradient(circle at 100% 0%, rgba(204,255,0,.07), transparent 38%),
    rgba(0,0,0,.28) !important;
  border: 1px solid rgba(255,255,255,.10) !important;
}

.runevo-plus-history .history-card-v139 .plus-plan-mini-grid {
  display: none !important;
}

.runevo-plus-history .history-card-v139 .history-plan-metrics {
  display: flex !important;
  flex-direction: column !important;
  gap: 9px !important;
  width: 100% !important;
  margin-top: 15px !important;
}

.runevo-plus-history .history-card-v139 .history-plan-metrics b {
  display: block !important;
  width: 100% !important;
  min-width: 0 !important;
  max-width: 100% !important;
  box-sizing: border-box !important;
  padding: 10px 12px !important;
  border-radius: 999px !important;
  background: rgba(255,255,255,.055) !important;
  color: rgba(255,255,255,.84) !important;
  font-size: clamp(.70rem, 2.7vw, .78rem) !important;
  line-height: 1.1 !important;
  font-weight: 900 !important;
  white-space: nowrap !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
}

.runevo-plus-history .history-card-v139 > span {
  display: inline-flex !important;
  max-width: 100% !important;
  margin-bottom: 10px !important;
  padding: 5px 9px !important;
  font-size: clamp(.58rem, 2.4vw, .68rem) !important;
  line-height: 1 !important;
  white-space: nowrap !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
}

.runevo-plus-history .history-card-v139 strong {
  display: -webkit-box !important;
  -webkit-line-clamp: 2 !important;
  -webkit-box-orient: vertical !important;
  max-width: 100% !important;
  margin: 0 !important;
  color: #fff !important;
  font-size: clamp(1rem, 4vw, 1.15rem) !important;
  line-height: 1.08 !important;
  letter-spacing: -.025em !important;
  overflow: hidden !important;
}

.runevo-plus-history .history-card-v139 p {
  max-width: 100% !important;
  margin: 7px 0 0 !important;
  color: rgba(255,255,255,.58) !important;
  font-size: clamp(.82rem, 3.1vw, .92rem) !important;
  line-height: 1.28 !important;
  white-space: nowrap !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
}

.runevo-plus-history .plus-history-list {
  max-height: clamp(430px, 64vh, 620px) !important;
  overflow-y: auto !important;
  overflow-x: hidden !important;
  display: flex !important;
  flex-direction: column !important;
  gap: 14px !important;
  padding: 0 6px 42px 0 !important;
  scroll-padding-bottom: 52px !important;
  -webkit-mask-image: none !important;
  mask-image: none !important;
}

.runevo-plus-history .plus-history-list::after {
  content: '' !important;
  flex: 0 0 24px !important;
  height: 24px !important;
  position: static !important;
  display: block !important;
  background: transparent !important;
}

@media (min-width: 520px) {
  .runevo-plus-history .history-card-v139 .history-plan-metrics {
    display: flex !important;
    flex-direction: column !important;
  }
}

@media (max-width: 360px) {
  .runevo-plus-history .history-card-v139 {
    padding: 14px !important;
  }
}


/* ===== V140 HISTORY RENDER AUDIT FIX ===== */
.runevo-plus-history .history-card-v140,
.runevo-plus-history .history-card-v139 {
  width: 100% !important;
  min-width: 0 !important;
  max-width: 100% !important;
  height: auto !important;
  min-height: auto !important;
  max-height: none !important;
  padding: 16px !important;
  box-sizing: border-box !important;
  overflow: hidden !important;
  border-radius: 24px !important;
  background:
    radial-gradient(circle at 100% 0%, rgba(204,255,0,.07), transparent 38%),
    rgba(0,0,0,.28) !important;
  border: 1px solid rgba(255,255,255,.10) !important;
}

.runevo-plus-history .history-card-v140 .plus-plan-mini-grid,
.runevo-plus-history .history-card-v139 .plus-plan-mini-grid {
  display: none !important;
}

.runevo-plus-history .history-card-v140 .history-plan-metrics,
.runevo-plus-history .history-card-v139 .history-plan-metrics {
  display: flex !important;
  flex-direction: column !important;
  gap: 9px !important;
  width: 100% !important;
  margin-top: 15px !important;
}

.runevo-plus-history .history-card-v140 .history-plan-metrics b,
.runevo-plus-history .history-card-v139 .history-plan-metrics b {
  display: block !important;
  width: 100% !important;
  min-width: 0 !important;
  max-width: 100% !important;
  box-sizing: border-box !important;
  padding: 10px 12px !important;
  border-radius: 999px !important;
  background: rgba(255,255,255,.055) !important;
  color: rgba(255,255,255,.84) !important;
  font-size: clamp(.70rem, 2.7vw, .78rem) !important;
  line-height: 1.1 !important;
  font-weight: 900 !important;
  white-space: nowrap !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
}

.runevo-plus-history .history-card-v140 > span,
.runevo-plus-history .history-card-v139 > span {
  display: inline-flex !important;
  max-width: 100% !important;
  margin-bottom: 10px !important;
  padding: 5px 9px !important;
  font-size: clamp(.58rem, 2.4vw, .68rem) !important;
  line-height: 1 !important;
  white-space: nowrap !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
}

.runevo-plus-history .history-card-v140 strong,
.runevo-plus-history .history-card-v139 strong {
  display: -webkit-box !important;
  -webkit-line-clamp: 2 !important;
  -webkit-box-orient: vertical !important;
  max-width: 100% !important;
  margin: 0 !important;
  color: #fff !important;
  font-size: clamp(1rem, 4vw, 1.15rem) !important;
  line-height: 1.08 !important;
  letter-spacing: -.025em !important;
  overflow: hidden !important;
}

.runevo-plus-history .history-card-v140 p,
.runevo-plus-history .history-card-v139 p {
  max-width: 100% !important;
  margin: 7px 0 0 !important;
  color: rgba(255,255,255,.58) !important;
  font-size: clamp(.82rem, 3.1vw, .92rem) !important;
  line-height: 1.28 !important;
  white-space: nowrap !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
}

.runevo-plus-history .plus-history-list {
  max-height: clamp(430px, 64vh, 620px) !important;
  overflow-y: auto !important;
  overflow-x: hidden !important;
  display: flex !important;
  flex-direction: column !important;
  gap: 14px !important;
  padding: 0 6px 42px 0 !important;
  scroll-padding-bottom: 52px !important;
  -webkit-mask-image: none !important;
  mask-image: none !important;
}

.runevo-plus-history .plus-history-list::after {
  content: '' !important;
  flex: 0 0 24px !important;
  height: 24px !important;
  position: static !important;
  display: block !important;
  background: transparent !important;
}


/* ===== V141 PAYWALL + RESOURCES RULES ===== */
.resources-upgrade-card {
  background:
    radial-gradient(circle at 100% 0%, rgba(204,255,0,.15), transparent 38%),
    rgba(204,255,0,.055) !important;
  border-color: rgba(204,255,0,.25) !important;
}

.resources-upgrade-card button {
  width: 100%;
  margin-top: 14px;
  border: 0;
  border-radius: 999px;
  padding: 14px 18px;
  background: var(--primary, #CCFF00);
  color: #071000;
  font-weight: 950;
}

.plus-modal-highlight {
  margin: 12px 0;
  padding: 12px;
  border-radius: 16px;
  background: rgba(204,255,0,.08);
  border: 1px solid rgba(204,255,0,.18);
  color: rgba(255,255,255,.78);
}

body.is-runevo-free .premium-feature-card {
  display: none !important;
}

body.is-runevo-plus .premium-feature-card {
  display: flex !important;
}

#my-resources-history-section.hidden,
#my-resources-upgrade-section.hidden {
  display: none !important;
}

.runevo-plus-features .plus-feature-row {
  animation: resourcePop .18s ease both;
}

@keyframes resourcePop {
  from { opacity: 0; transform: translateY(4px); }
  to { opacity: 1; transform: translateY(0); }
}


/* ===== V142 EXCEL PAYWALL + ARIA FIX ===== */
/* Excel aparece no Free, mas continua bloqueado pelo JS. */
body.is-runevo-free .premium-feature-card {
  display: flex !important;
}

.premium-feature-card.is-premium-locked {
  position: relative;
  opacity: 1 !important;
}

.premium-feature-card.is-premium-locked::after {
  content: 'Toque para assinar';
  position: absolute;
  right: 14px;
  bottom: 12px;
  padding: 5px 8px;
  border-radius: 999px;
  background: rgba(204,255,0,.10);
  border: 1px solid rgba(204,255,0,.22);
  color: var(--primary, #CCFF00);
  font-size: .62rem;
  font-weight: 950;
  letter-spacing: .07em;
  text-transform: uppercase;
}

.export-action-card .plus-chip {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: fit-content;
  margin-left: 0;
  margin-top: 8px;
  padding: 5px 9px;
  border-radius: 999px;
  border: 1px solid rgba(204,255,0,.36);
  background: rgba(204,255,0,.12);
  color: var(--primary, #CCFF00);
  font-size: .62rem;
  font-style: normal;
  font-weight: 950;
  line-height: 1;
  letter-spacing: .08em;
  text-transform: uppercase;
  white-space: nowrap;
}

.export-action-card strong .plus-chip {
  vertical-align: middle;
}

.export-action-card.premium-feature-card strong {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 0;
}

.export-action-card.premium-feature-card small {
  min-width: 0;
}

body.is-runevo-plus .premium-feature-card.is-premium-unlocked::after {
  display: none !important;
}

@media (max-width: 430px) {
  .premium-feature-card.is-premium-locked::after {
    position: static;
    display: inline-flex;
    width: fit-content;
    margin-top: 10px;
  }
}


/* ===== V143 EXPORT PAYWALL CARD ===== */
body.is-runevo-free .premium-feature-card {
  display: flex !important;
}

.export-action-card.premium-feature-card {
  position: relative;
  isolation: isolate;
  overflow: hidden;
}

.export-action-card .premium-lock-cta {
  display: none;
}

body.is-runevo-free .export-action-card.premium-feature-card {
  min-height: 150px;
  cursor: pointer;
}

body.is-runevo-free .export-action-card.premium-feature-card > span,
body.is-runevo-free .export-action-card.premium-feature-card > strong,
body.is-runevo-free .export-action-card.premium-feature-card > small {
  opacity: .34;
  filter: blur(.9px);
  transform: scale(.995);
}

body.is-runevo-free .export-action-card.premium-feature-card::before {
  content: '';
  position: absolute;
  inset: 0;
  z-index: 1;
  background:
    radial-gradient(circle at 50% 45%, rgba(204,255,0,.12), transparent 42%),
    rgba(0,0,0,.28);
  pointer-events: none;
}

body.is-runevo-free .export-action-card.premium-feature-card .premium-lock-cta {
  position: absolute;
  z-index: 2;
  left: 50%;
  top: 50%;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  transform: translate(-50%, -50%);
  width: min(78%, 230px);
  min-height: 42px;
  padding: 11px 16px;
  border-radius: 999px;
  background: rgba(204,255,0,.95);
  color: #071000;
  border: 1px solid rgba(204,255,0,.55);
  box-shadow: 0 0 24px rgba(204,255,0,.18);
  font-size: .78rem;
  font-weight: 950;
  line-height: 1;
  letter-spacing: .08em;
  text-align: center;
  text-transform: uppercase;
  white-space: nowrap;
}

body.is-runevo-free .export-action-card.premium-feature-card:hover .premium-lock-cta,
body.is-runevo-free .export-action-card.premium-feature-card:focus-visible .premium-lock-cta {
  box-shadow: 0 0 0 4px rgba(204,255,0,.12), 0 0 30px rgba(204,255,0,.24);
}

body.is-runevo-free .premium-feature-card.is-premium-locked::after {
  display: none !important;
  content: none !important;
}

body.is-runevo-plus .export-action-card.premium-feature-card > span,
body.is-runevo-plus .export-action-card.premium-feature-card > strong,
body.is-runevo-plus .export-action-card.premium-feature-card > small {
  opacity: 1;
  filter: none;
  transform: none;
}

body.is-runevo-plus .export-action-card.premium-feature-card::before,
body.is-runevo-plus .export-action-card.premium-feature-card .premium-lock-cta {
  display: none !important;
}

.export-action-card .plus-chip {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: fit-content;
  margin-top: 8px;
  padding: 5px 9px;
  border-radius: 999px;
  border: 1px solid rgba(204,255,0,.36);
  background: rgba(204,255,0,.12);
  color: var(--primary, #CCFF00);
  font-size: .62rem;
  font-style: normal;
  font-weight: 950;
  line-height: 1;
  letter-spacing: .08em;
  text-transform: uppercase;
  white-space: nowrap;
}

.export-action-card.premium-feature-card strong {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
}

@media (max-width: 520px) {
  .export-action-card.premium-feature-card {
    align-items: flex-start;
    padding-bottom: 24px;
  }

  body.is-runevo-free .export-action-card.premium-feature-card {
    min-height: 168px;
  }

  body.is-runevo-free .export-action-card.premium-feature-card .premium-lock-cta {
    width: min(82%, 220px);
    font-size: .72rem;
  }
}


/* ===== V144 EXPORT CARD MOBILE CLEAN ===== */
body.is-runevo-free .export-action-card.premium-feature-card {
  display: grid !important;
  grid-template-columns: 54px 1fr !important;
  grid-template-areas:
    "icon title"
    "icon desc"
    "cta cta" !important;
  align-items: start !important;
  gap: 8px 14px !important;
  min-height: auto !important;
  padding: 18px !important;
  overflow: hidden !important;
}

body.is-runevo-free .export-action-card.premium-feature-card::before,
body.is-runevo-free .export-action-card.premium-feature-card::after,
body.is-runevo-free .premium-feature-card.is-premium-locked::before,
body.is-runevo-free .premium-feature-card.is-premium-locked::after {
  display: none !important;
  content: none !important;
}

body.is-runevo-free .export-action-card.premium-feature-card > span {
  grid-area: icon !important;
  opacity: .42 !important;
  filter: blur(.45px) saturate(.65) !important;
  transform: none !important;
}

body.is-runevo-free .export-action-card.premium-feature-card > strong {
  grid-area: title !important;
  opacity: .58 !important;
  filter: blur(.35px) !important;
  transform: none !important;
  min-width: 0 !important;
  display: flex !important;
  flex-direction: column !important;
  align-items: flex-start !important;
  gap: 6px !important;
  line-height: 1.05 !important;
}

body.is-runevo-free .export-action-card.premium-feature-card > small {
  grid-area: desc !important;
  opacity: .46 !important;
  filter: blur(.35px) !important;
  transform: none !important;
  min-width: 0 !important;
  max-width: 100% !important;
  line-height: 1.35 !important;
}

body.is-runevo-free .export-action-card.premium-feature-card .premium-lock-cta {
  grid-area: cta !important;
  position: static !important;
  z-index: 2 !important;
  left: auto !important;
  top: auto !important;
  transform: none !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 100% !important;
  min-height: 44px !important;
  margin-top: 10px !important;
  padding: 13px 16px !important;
  border-radius: 999px !important;
  background: rgba(204,255,0,.96) !important;
  color: #071000 !important;
  border: 1px solid rgba(204,255,0,.55) !important;
  box-shadow: 0 0 24px rgba(204,255,0,.14) !important;
  font-size: .78rem !important;
  font-weight: 950 !important;
  line-height: 1 !important;
  letter-spacing: .08em !important;
  text-align: center !important;
  text-transform: uppercase !important;
  white-space: nowrap !important;
}

body.is-runevo-free .export-action-card .plus-chip {
  margin-top: 0 !important;
  padding: 5px 9px !important;
  font-size: .58rem !important;
}

body.is-runevo-plus .export-action-card.premium-feature-card {
  display: flex !important;
}

body.is-runevo-plus .export-action-card.premium-feature-card .premium-lock-cta {
  display: none !important;
}

@media (max-width: 390px) {
  body.is-runevo-free .export-action-card.premium-feature-card {
    grid-template-columns: 46px 1fr !important;
    padding: 16px !important;
    gap: 8px 12px !important;
  }

  body.is-runevo-free .export-action-card.premium-feature-card .premium-lock-cta {
    min-height: 42px !important;
    font-size: .70rem !important;
    letter-spacing: .06em !important;
  }
}


/* ===== V145 PAYWALL VISUAL SYSTEM ===== */
/* Sistema visual oficial para cards que levam ao RunEvo+ */
.runevo-locked-resource-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 14px;
  margin-top: 16px;
}

.runevo-locked-resource-card {
  position: relative;
  display: grid;
  grid-template-columns: 48px 1fr;
  grid-template-areas:
    "icon title"
    "icon desc"
    "cta cta";
  align-items: start;
  gap: 8px 13px;
  width: 100%;
  min-width: 0;
  padding: 17px;
  border-radius: 24px;
  border: 1px solid rgba(255,255,255,.10);
  background:
    radial-gradient(circle at 100% 0%, rgba(204,255,0,.08), transparent 42%),
    rgba(0,0,0,.28);
  color: #fff;
  text-align: left;
  overflow: hidden;
  cursor: pointer;
}

.runevo-locked-resource-card .locked-card-icon {
  grid-area: icon;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 46px;
  height: 46px;
  border-radius: 16px;
  background: rgba(204,255,0,.10);
  border: 1px solid rgba(204,255,0,.18);
  font-size: 1.25rem;
  opacity: .42;
  filter: blur(.35px) saturate(.7);
}

.runevo-locked-resource-card > strong {
  grid-area: title;
  min-width: 0;
  color: #fff;
  font-size: 1rem;
  line-height: 1.08;
  opacity: .60;
  filter: blur(.30px);
}

.runevo-locked-resource-card > small {
  grid-area: desc;
  min-width: 0;
  color: rgba(255,255,255,.64);
  font-size: .86rem;
  line-height: 1.35;
  opacity: .48;
  filter: blur(.30px);
}

.runevo-locked-resource-card .premium-lock-cta {
  grid-area: cta;
  position: static !important;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  min-height: 42px;
  margin-top: 10px;
  padding: 12px 16px;
  border-radius: 999px;
  background: rgba(204,255,0,.96);
  color: #071000;
  border: 1px solid rgba(204,255,0,.55);
  box-shadow: 0 0 24px rgba(204,255,0,.14);
  font-size: .74rem;
  font-weight: 950;
  line-height: 1;
  letter-spacing: .08em;
  text-align: center;
  text-transform: uppercase;
  white-space: nowrap;
}

.runevo-locked-resource-card:focus-visible .premium-lock-cta,
.runevo-locked-resource-card:hover .premium-lock-cta {
  box-shadow: 0 0 0 4px rgba(204,255,0,.12), 0 0 26px rgba(204,255,0,.20);
}

.resources-upgrade-main-btn {
  width: 100%;
  margin-top: 14px;
  border: 0;
  border-radius: 999px;
  padding: 15px 18px;
  background: var(--primary, #CCFF00);
  color: #071000;
  font-weight: 950;
}

/* O Excel usa o mesmo padrão, mas mantém a estrutura original do card de exportação. */
body.is-runevo-free .export-action-card.premium-feature-card {
  display: grid !important;
  grid-template-columns: 54px 1fr !important;
  grid-template-areas:
    "icon title"
    "icon desc"
    "cta cta" !important;
  align-items: start !important;
  gap: 8px 14px !important;
  min-height: auto !important;
  padding: 18px !important;
}

body.is-runevo-free .export-action-card.premium-feature-card > span { grid-area: icon !important; }
body.is-runevo-free .export-action-card.premium-feature-card > strong { grid-area: title !important; }
body.is-runevo-free .export-action-card.premium-feature-card > small { grid-area: desc !important; }

body.is-runevo-free .export-action-card.premium-feature-card .premium-lock-cta {
  grid-area: cta !important;
}

/* Em Plus, cards premium ficam normais e CTAs de bloqueio somem. */
body.is-runevo-plus .runevo-locked-resource-card {
  display: none !important;
}

@media (max-width: 390px) {
  .runevo-locked-resource-card {
    grid-template-columns: 44px 1fr;
    padding: 15px;
    gap: 8px 11px;
  }

  .runevo-locked-resource-card .locked-card-icon {
    width: 42px;
    height: 42px;
  }

  .runevo-locked-resource-card .premium-lock-cta {
    font-size: .68rem;
    letter-spacing: .06em;
  }
}


/* ===== V146 PAYWALL CARDS FIX ===== */
.runevo-locked-resource-grid {
  display: grid !important;
  grid-template-columns: 1fr !important;
  gap: 14px !important;
  margin-top: 16px !important;
}

.runevo-locked-resource-card.premium-feature-card,
body.is-runevo-free .runevo-locked-resource-card.premium-feature-card {
  position: relative !important;
  display: grid !important;
  grid-template-columns: 52px 1fr !important;
  grid-template-areas:
    "icon copy"
    "cta cta" !important;
  align-items: start !important;
  gap: 12px 14px !important;
  width: 100% !important;
  min-height: auto !important;
  padding: 17px !important;
  border-radius: 24px !important;
  border: 1px solid rgba(255,255,255,.10) !important;
  background: radial-gradient(circle at 100% 0%, rgba(204,255,0,.08), transparent 42%), rgba(0,0,0,.28) !important;
  color: #fff !important;
  text-align: left !important;
  overflow: hidden !important;
  cursor: pointer !important;
}

.runevo-locked-resource-card.premium-feature-card::before,
.runevo-locked-resource-card.premium-feature-card::after,
body.is-runevo-free .runevo-locked-resource-card.premium-feature-card::before,
body.is-runevo-free .runevo-locked-resource-card.premium-feature-card::after,
body.is-runevo-free .runevo-locked-resource-card.premium-feature-card.is-premium-locked::before,
body.is-runevo-free .runevo-locked-resource-card.premium-feature-card.is-premium-locked::after {
  display: none !important;
  content: none !important;
  background: transparent !important;
}

.runevo-locked-resource-card .locked-card-icon,
body.is-runevo-free .runevo-locked-resource-card.premium-feature-card .locked-card-icon {
  grid-area: icon !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 48px !important;
  height: 48px !important;
  border-radius: 16px !important;
  background: rgba(204,255,0,.10) !important;
  border: 1px solid rgba(204,255,0,.18) !important;
  font-size: 1.20rem !important;
  opacity: .38 !important;
  filter: blur(.35px) saturate(.70) !important;
  transform: none !important;
}

.runevo-locked-resource-card .locked-card-copy,
body.is-runevo-free .runevo-locked-resource-card.premium-feature-card .locked-card-copy {
  grid-area: copy !important;
  display: flex !important;
  flex-direction: column !important;
  gap: 6px !important;
  min-width: 0 !important;
  opacity: .46 !important;
  filter: blur(.35px) !important;
  transform: none !important;
}

.runevo-locked-resource-card .locked-card-copy strong,
body.is-runevo-free .runevo-locked-resource-card.premium-feature-card .locked-card-copy strong {
  color: #fff !important;
  font-size: 1rem !important;
  line-height: 1.08 !important;
  font-weight: 950 !important;
}

.runevo-locked-resource-card .locked-card-copy small,
body.is-runevo-free .runevo-locked-resource-card.premium-feature-card .locked-card-copy small {
  color: rgba(255,255,255,.68) !important;
  font-size: .86rem !important;
  line-height: 1.35 !important;
}

.runevo-locked-resource-card .premium-lock-cta,
body.is-runevo-free .runevo-locked-resource-card.premium-feature-card .premium-lock-cta {
  grid-area: cta !important;
  position: static !important;
  left: auto !important;
  top: auto !important;
  transform: none !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 100% !important;
  min-height: 44px !important;
  margin-top: 8px !important;
  padding: 13px 16px !important;
  border-radius: 999px !important;
  background: rgba(204,255,0,.96) !important;
  color: #071000 !important;
  border: 1px solid rgba(204,255,0,.55) !important;
  box-shadow: 0 0 24px rgba(204,255,0,.14) !important;
  font-size: .76rem !important;
  font-weight: 950 !important;
  line-height: 1 !important;
  letter-spacing: .08em !important;
  text-align: center !important;
  text-transform: uppercase !important;
  white-space: nowrap !important;
}

body.is-runevo-free .runevo-locked-resource-card.premium-feature-card > span,
body.is-runevo-free .runevo-locked-resource-card.premium-feature-card > strong,
body.is-runevo-free .runevo-locked-resource-card.premium-feature-card > small {
  opacity: unset !important;
  filter: none !important;
  transform: none !important;
}

@media (max-width: 390px) {
  .runevo-locked-resource-card.premium-feature-card,
  body.is-runevo-free .runevo-locked-resource-card.premium-feature-card {
    grid-template-columns: 44px 1fr !important;
    padding: 15px !important;
    gap: 10px 12px !important;
  }
  .runevo-locked-resource-card .locked-card-icon {
    width: 42px !important;
    height: 42px !important;
  }
  .runevo-locked-resource-card .premium-lock-cta {
    font-size: .68rem !important;
    letter-spacing: .06em !important;
  }
}


/* ===== V147 PAYWALL CARDS CLEAN ===== */
/* Em Meus Recursos, remove botões repetidos e deixa apenas o CTA geral “Assinar RunEvo+”. */
.runevo-locked-resource-card.no-inner-cta {
  grid-template-columns: 52px 1fr !important;
  grid-template-areas: "icon copy" !important;
  min-height: 112px !important;
  padding: 18px !important;
}

.runevo-locked-resource-card.no-inner-cta .premium-lock-cta {
  display: none !important;
}

.runevo-locked-resource-card.no-inner-cta .locked-card-copy {
  opacity: .54 !important;
  filter: blur(.25px) !important;
}

.runevo-locked-resource-card.no-inner-cta .locked-card-icon {
  opacity: .42 !important;
  filter: blur(.30px) saturate(.75) !important;
}

.runevo-locked-resource-card.no-inner-cta:hover,
.runevo-locked-resource-card.no-inner-cta:focus-visible {
  border-color: rgba(204,255,0,.24) !important;
  background:
    radial-gradient(circle at 100% 0%, rgba(204,255,0,.12), transparent 42%),
    rgba(0,0,0,.30) !important;
}

.runevo-locked-resource-card.no-inner-cta:hover .locked-card-copy,
.runevo-locked-resource-card.no-inner-cta:focus-visible .locked-card-copy {
  opacity: .66 !important;
}

.resources-upgrade-main-btn {
  margin-top: 18px !important;
  min-height: 46px !important;
  box-shadow: 0 0 24px rgba(204,255,0,.12);
}

@media (max-width: 390px) {
  .runevo-locked-resource-card.no-inner-cta {
    grid-template-columns: 44px 1fr !important;
    min-height: 104px !important;
    padding: 16px !important;
  }
}


/* ===== V148 GENERATION FREE X PLUS FLOW ===== */
.generation-paywall-choice {
  display: grid;
  gap: 12px;
  text-align: left;
}

.generation-paywall-choice > p {
  margin: 0 0 4px;
  color: rgba(255,255,255,.72);
  line-height: 1.45;
}

.generation-choice-card {
  padding: 14px;
  border-radius: 22px;
  border: 1px solid rgba(255,255,255,.10);
  background: rgba(255,255,255,.04);
}

.generation-choice-card.plus {
  background:
    radial-gradient(circle at 100% 0%, rgba(204,255,0,.12), transparent 42%),
    rgba(204,255,0,.04);
  border-color: rgba(204,255,0,.20);
}

.generation-choice-card strong {
  display: block;
  color: #fff;
  font-size: 1rem;
  line-height: 1.1;
  margin-bottom: 5px;
}

.generation-choice-card span {
  display: block;
  color: rgba(255,255,255,.64);
  font-size: .88rem;
  line-height: 1.35;
}

.generation-choice-card button {
  width: 100%;
  margin-top: 12px;
  border: 0;
  border-radius: 999px;
  padding: 13px 14px;
  font-weight: 950;
  letter-spacing: .02em;
}

.generation-choice-card.free button {
  background: rgba(255,255,255,.10);
  color: #fff;
  border: 1px solid rgba(255,255,255,.14);
}

.generation-choice-card.plus button {
  background: var(--primary, #CCFF00);
  color: #071000;
}


/* ===== V149 PROFESSIONAL COMPARISON ===== */
.pro-comparison-card {
  overflow: hidden;
}

.pro-comparison-card h3 {
  margin-bottom: 8px;
}

.pro-comparison-lead {
  color: rgba(255,255,255,.66);
  margin: 0 0 18px;
  line-height: 1.4;
}

.pro-comparison-hero {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px;
  margin: 16px 0;
}

.pro-comparison-hero article {
  min-width: 0;
  padding: 15px;
  border-radius: 22px;
  border: 1px solid rgba(255,255,255,.10);
  background: rgba(0,0,0,.22);
}

.pro-comparison-hero article.new {
  background:
    radial-gradient(circle at 100% 0%, rgba(204,255,0,.12), transparent 45%),
    rgba(204,255,0,.035);
  border-color: rgba(204,255,0,.20);
}

.pro-comparison-hero span {
  display: inline-flex;
  width: fit-content;
  margin-bottom: 8px;
  padding: 5px 9px;
  border-radius: 999px;
  background: rgba(204,255,0,.12);
  color: var(--primary, #CCFF00);
  font-size: .64rem;
  font-weight: 950;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.pro-comparison-hero strong {
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  color: #fff;
  line-height: 1.08;
  overflow: hidden;
}

.pro-comparison-hero p {
  margin: 7px 0 0;
  color: rgba(255,255,255,.58);
  font-size: .84rem;
}

.pro-comparison-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px;
  margin-top: 14px;
}

.pro-compare-metric {
  min-width: 0;
  padding: 14px;
  border-radius: 20px;
  border: 1px solid rgba(255,255,255,.10);
  background: rgba(0,0,0,.20);
}

.pro-compare-metric > span {
  display: block;
  color: rgba(255,255,255,.48);
  font-size: .72rem;
  font-weight: 900;
  letter-spacing: .08em;
  text-transform: uppercase;
  margin-bottom: 10px;
}

.pro-compare-values {
  display: grid;
  gap: 7px;
}

.pro-compare-values b {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  min-width: 0;
  padding: 9px 10px;
  border-radius: 14px;
  background: rgba(255,255,255,.045);
  color: rgba(255,255,255,.62);
  font-size: .74rem;
}

.pro-compare-values strong {
  color: #fff;
  font-size: .86rem;
  text-align: right;
}

.pro-compare-metric p {
  margin: 10px 0 0;
  color: rgba(255,255,255,.58);
  font-size: .78rem;
  line-height: 1.3;
}

.pro-compare-metric.winner-nova {
  border-color: rgba(204,255,0,.24);
  background:
    radial-gradient(circle at 100% 0%, rgba(204,255,0,.10), transparent 40%),
    rgba(0,0,0,.20);
}

.pro-comparison-recommendation {
  display: grid;
  grid-template-columns: 42px 1fr;
  gap: 12px;
  align-items: start;
  margin-top: 16px;
  padding: 15px;
  border-radius: 22px;
  border: 1px solid rgba(204,255,0,.22);
  background: rgba(204,255,0,.07);
}

.pro-comparison-recommendation > span {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 42px;
  height: 42px;
  border-radius: 15px;
  background: rgba(204,255,0,.10);
}

.pro-comparison-recommendation strong {
  color: #fff;
  line-height: 1.12;
}

.pro-comparison-recommendation p {
  margin: 6px 0 0;
  color: rgba(255,255,255,.68);
  line-height: 1.4;
}

.pro-comparison-recommendation.adotar {
  border-color: rgba(204,255,0,.34);
  background: rgba(204,255,0,.095);
}

.pro-comparison-recommendation.manter {
  border-color: rgba(255,150,120,.28);
  background: rgba(255,90,60,.07);
}

.pro-comparison-actions {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px;
  margin-top: 15px;
}

.pro-comparison-actions button {
  min-height: 46px;
  border: 0;
  border-radius: 999px;
  padding: 13px 16px;
  background: var(--primary, #CCFF00);
  color: #071000;
  font-weight: 950;
}

.pro-comparison-actions button.secondary {
  background: rgba(255,255,255,.08);
  color: #fff;
  border: 1px solid rgba(255,255,255,.13);
}

.pro-comparison-footnote {
  margin: 14px 0 0 !important;
  color: rgba(255,255,255,.52);
  font-size: .82rem;
}

@media (max-width: 720px) {
  .pro-comparison-hero,
  .pro-comparison-grid,
  .pro-comparison-actions {
    grid-template-columns: 1fr;
  }

  .pro-comparison-card {
    padding: 18px !important;
  }
}


/* ===== V150 IDENTICAL PLAN + EXCEL LAYOUT ===== */
.identical-plan-card {
  border-color: rgba(204,255,0,.30) !important;
}

.identical-plan-notice {
  display: grid;
  grid-template-columns: 44px 1fr;
  gap: 12px;
  align-items: start;
  margin-top: 16px;
  padding: 15px;
  border-radius: 22px;
  border: 1px solid rgba(204,255,0,.24);
  background: rgba(204,255,0,.075);
}

.identical-plan-notice > span {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 44px;
  height: 44px;
  border-radius: 16px;
  background: rgba(204,255,0,.12);
}

.identical-plan-notice strong {
  display: block;
  color: #fff;
  line-height: 1.12;
}

.identical-plan-notice p {
  margin: 6px 0 0;
  color: rgba(255,255,255,.68);
  line-height: 1.4;
}

.pro-comparison-actions.single {
  grid-template-columns: 1fr !important;
}

/* Excel liberado no RunEvo+ segue o mesmo padrão visual do PDF. */
body.is-runevo-plus .export-action-card.premium-feature-card {
  display: grid !important;
  grid-template-columns: 44px 1fr !important;
  grid-template-areas: "icon copy" !important;
  align-items: start !important;
  gap: 14px !important;
  padding: 18px !important;
  min-height: 160px !important;
  border-radius: 22px !important;
}

.export-action-card .export-card-copy {
  grid-area: copy;
  display: flex;
  flex-direction: column;
  gap: 10px;
  min-width: 0;
}

body.is-runevo-plus .export-action-card.premium-feature-card > span:not(.export-card-copy) {
  grid-area: icon !important;
  opacity: 1 !important;
  filter: none !important;
  transform: none !important;
}

body.is-runevo-plus .export-action-card.premium-feature-card .export-card-copy strong {
  display: flex !important;
  flex-direction: column !important;
  align-items: flex-start !important;
  gap: 8px !important;
  color: #fff !important;
  font-size: 1.05rem !important;
  line-height: 1.08 !important;
}

body.is-runevo-plus .export-action-card.premium-feature-card .export-card-copy small {
  color: rgba(255,255,255,.62) !important;
  font-size: .92rem !important;
  line-height: 1.38 !important;
}

body.is-runevo-plus .export-action-card.premium-feature-card .plus-chip {
  margin-top: 0 !important;
}

/* Free mantém o padrão de bloqueio aprovado, agora usando o wrapper de conteúdo. */
body.is-runevo-free .export-action-card.premium-feature-card {
  grid-template-areas:
    "icon copy"
    "cta cta" !important;
}

body.is-runevo-free .export-action-card.premium-feature-card .export-card-copy {
  grid-area: copy !important;
  opacity: .46 !important;
  filter: blur(.35px) !important;
  transform: none !important;
}

body.is-runevo-free .export-action-card.premium-feature-card .export-card-copy strong,
body.is-runevo-free .export-action-card.premium-feature-card .export-card-copy small {
  opacity: 1 !important;
  filter: none !important;
  transform: none !important;
}

body.is-runevo-free .export-action-card.premium-feature-card > strong,
body.is-runevo-free .export-action-card.premium-feature-card > small {
  display: none !important;
}

@media (max-width: 430px) {
  body.is-runevo-plus .export-action-card.premium-feature-card {
    min-height: 150px !important;
    padding: 17px !important;
  }
}


/* ===== V151 EXCEL PLUS LAYOUT CLEAN ===== */
/* No RunEvo+, o Excel já está liberado: remove aparência premium e organiza como o PDF. */
body.is-runevo-plus .export-action-card.premium-feature-card {
  display: grid !important;
  grid-template-columns: 42px 1fr !important;
  grid-template-areas:
    "icon title"
    "desc desc" !important;
  align-items: center !important;
  column-gap: 12px !important;
  row-gap: 14px !important;
  min-height: 170px !important;
  padding: 20px !important;
  border-radius: 22px !important;
  border: 1px solid rgba(255,255,255,.12) !important;
  background:
    radial-gradient(circle at 100% 0%, rgba(204,255,0,.08), transparent 42%),
    rgba(255,255,255,.035) !important;
  overflow: hidden !important;
}

body.is-runevo-plus .export-action-card.premium-feature-card > span:not(.export-card-copy) {
  grid-area: icon !important;
  width: 42px !important;
  min-width: 42px !important;
  height: 42px !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  opacity: 1 !important;
  filter: none !important;
  transform: none !important;
  font-size: 1.55rem !important;
}

body.is-runevo-plus .export-action-card.premium-feature-card .export-card-copy {
  display: contents !important;
  opacity: 1 !important;
  filter: none !important;
  transform: none !important;
}

body.is-runevo-plus .export-action-card.premium-feature-card .export-card-copy strong {
  grid-area: title !important;
  display: block !important;
  min-width: 0 !important;
  margin: 0 !important;
  color: #fff !important;
  font-size: 1.12rem !important;
  font-weight: 950 !important;
  line-height: 1.08 !important;
  letter-spacing: -.015em !important;
}

body.is-runevo-plus .export-action-card.premium-feature-card .export-card-copy small {
  grid-area: desc !important;
  display: block !important;
  width: 100% !important;
  max-width: none !important;
  min-width: 0 !important;
  margin: 0 !important;
  color: rgba(255,255,255,.64) !important;
  font-size: .94rem !important;
  line-height: 1.42 !important;
}

body.is-runevo-plus .export-action-card.premium-feature-card .plus-chip,
body.is-runevo-plus .export-action-card.premium-feature-card .premium-lock-cta {
  display: none !important;
}

/* Free continua com o padrão bloqueado aprovado e sem interferência do layout Plus. */
body.is-runevo-free .export-action-card.premium-feature-card .export-card-copy {
  display: flex !important;
}

@media (max-width: 430px) {
  body.is-runevo-plus .export-action-card.premium-feature-card {
    grid-template-columns: 40px 1fr !important;
    min-height: 162px !important;
    padding: 18px !important;
    column-gap: 11px !important;
  }

  body.is-runevo-plus .export-action-card.premium-feature-card > span:not(.export-card-copy) {
    width: 40px !important;
    min-width: 40px !important;
    height: 40px !important;
    font-size: 1.45rem !important;
  }
}


/* ===== V152 EXPORT CARDS UNIFORM LAYOUT ===== */
/* PDF e Excel liberados seguem o mesmo padrão: ícone + título na primeira linha, descrição em largura total abaixo. */
body.is-runevo-plus .export-action-card:not(.premium-feature-card),
body.is-runevo-plus .export-action-card.premium-feature-card {
  display: grid !important;
  grid-template-columns: 42px 1fr !important;
  grid-template-areas:
    "icon title"
    "desc desc" !important;
  align-items: center !important;
  column-gap: 12px !important;
  row-gap: 14px !important;
  min-height: 170px !important;
  padding: 20px !important;
  border-radius: 22px !important;
  border: 1px solid rgba(255,255,255,.12) !important;
  background:
    radial-gradient(circle at 100% 0%, rgba(204,255,0,.08), transparent 42%),
    rgba(255,255,255,.035) !important;
  overflow: hidden !important;
}

body.is-runevo-plus .export-action-card:not(.premium-feature-card) > span:not(.export-card-copy),
body.is-runevo-plus .export-action-card.premium-feature-card > span:not(.export-card-copy) {
  grid-area: icon !important;
  width: 42px !important;
  min-width: 42px !important;
  height: 42px !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  opacity: 1 !important;
  filter: none !important;
  transform: none !important;
  font-size: 1.55rem !important;
}

body.is-runevo-plus .export-action-card:not(.premium-feature-card) .export-card-copy,
body.is-runevo-plus .export-action-card.premium-feature-card .export-card-copy {
  display: contents !important;
  opacity: 1 !important;
  filter: none !important;
  transform: none !important;
}

body.is-runevo-plus .export-action-card:not(.premium-feature-card) .export-card-copy strong,
body.is-runevo-plus .export-action-card.premium-feature-card .export-card-copy strong {
  grid-area: title !important;
  display: block !important;
  min-width: 0 !important;
  margin: 0 !important;
  color: #fff !important;
  font-size: 1.12rem !important;
  font-weight: 950 !important;
  line-height: 1.08 !important;
  letter-spacing: -.015em !important;
}

body.is-runevo-plus .export-action-card:not(.premium-feature-card) .export-card-copy small,
body.is-runevo-plus .export-action-card.premium-feature-card .export-card-copy small {
  grid-area: desc !important;
  display: block !important;
  width: 100% !important;
  max-width: none !important;
  min-width: 0 !important;
  margin: 0 !important;
  color: rgba(255,255,255,.64) !important;
  font-size: .94rem !important;
  line-height: 1.42 !important;
}

body.is-runevo-free .export-action-card:not(.premium-feature-card) {
  display: grid !important;
  grid-template-columns: 42px 1fr !important;
  grid-template-areas:
    "icon title"
    "desc desc" !important;
  align-items: center !important;
  column-gap: 12px !important;
  row-gap: 14px !important;
  min-height: 170px !important;
  padding: 20px !important;
}

body.is-runevo-free .export-action-card:not(.premium-feature-card) > span:not(.export-card-copy) {
  grid-area: icon !important;
  width: 42px !important;
  min-width: 42px !important;
  height: 42px !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  font-size: 1.55rem !important;
}

body.is-runevo-free .export-action-card:not(.premium-feature-card) .export-card-copy {
  display: contents !important;
}

body.is-runevo-free .export-action-card:not(.premium-feature-card) .export-card-copy strong {
  grid-area: title !important;
  font-size: 1.12rem !important;
  line-height: 1.08 !important;
}

body.is-runevo-free .export-action-card:not(.premium-feature-card) .export-card-copy small {
  grid-area: desc !important;
  width: 100% !important;
  max-width: none !important;
  font-size: .94rem !important;
  line-height: 1.42 !important;
}

@media (max-width: 430px) {
  body.is-runevo-plus .export-action-card:not(.premium-feature-card),
  body.is-runevo-plus .export-action-card.premium-feature-card,
  body.is-runevo-free .export-action-card:not(.premium-feature-card) {
    grid-template-columns: 40px 1fr !important;
    min-height: 162px !important;
    padding: 18px !important;
    column-gap: 11px !important;
  }

  body.is-runevo-plus .export-action-card:not(.premium-feature-card) > span:not(.export-card-copy),
  body.is-runevo-plus .export-action-card.premium-feature-card > span:not(.export-card-copy),
  body.is-runevo-free .export-action-card:not(.premium-feature-card) > span:not(.export-card-copy) {
    width: 40px !important;
    min-width: 40px !important;
    height: 40px !important;
    font-size: 1.45rem !important;
  }
}


/* ===== V153 EXPORTS PREMIUM ===== */
/* PDF e Excel agora são RunEvo+. No Free, ambos usam o mesmo padrão bloqueado aprovado. */
body.is-runevo-free .export-action-card.premium-feature-card {
  display: grid !important;
  grid-template-columns: 54px 1fr !important;
  grid-template-areas:
    "icon copy"
    "cta cta" !important;
  align-items: start !important;
  gap: 8px 14px !important;
  min-height: auto !important;
  padding: 18px !important;
  border-radius: 22px !important;
  overflow: hidden !important;
}

body.is-runevo-free .export-action-card.premium-feature-card::before,
body.is-runevo-free .export-action-card.premium-feature-card::after {
  display: none !important;
  content: none !important;
}

body.is-runevo-free .export-action-card.premium-feature-card > span:not(.export-card-copy) {
  grid-area: icon !important;
  opacity: .42 !important;
  filter: blur(.45px) saturate(.65) !important;
  transform: none !important;
}

body.is-runevo-free .export-action-card.premium-feature-card .export-card-copy {
  grid-area: copy !important;
  display: flex !important;
  flex-direction: column !important;
  gap: 8px !important;
  opacity: .46 !important;
  filter: blur(.35px) !important;
  transform: none !important;
}

body.is-runevo-free .export-action-card.premium-feature-card .export-card-copy strong,
body.is-runevo-free .export-action-card.premium-feature-card .export-card-copy small {
  opacity: 1 !important;
  filter: none !important;
  transform: none !important;
}

body.is-runevo-free .export-action-card.premium-feature-card .premium-lock-cta {
  grid-area: cta !important;
  position: static !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 100% !important;
  min-height: 44px !important;
  margin-top: 10px !important;
  padding: 13px 16px !important;
  border-radius: 999px !important;
  background: rgba(204,255,0,.96) !important;
  color: #071000 !important;
  border: 1px solid rgba(204,255,0,.55) !important;
  box-shadow: 0 0 24px rgba(204,255,0,.14) !important;
  font-size: .78rem !important;
  font-weight: 950 !important;
  line-height: 1 !important;
  letter-spacing: .08em !important;
  text-align: center !important;
  text-transform: uppercase !important;
  white-space: nowrap !important;
}

/* No Plus, ambos ficam liberados e limpos, no mesmo layout. */
body.is-runevo-plus .export-action-card.premium-feature-card {
  display: grid !important;
  grid-template-columns: 42px 1fr !important;
  grid-template-areas:
    "icon title"
    "desc desc" !important;
  align-items: center !important;
  column-gap: 12px !important;
  row-gap: 14px !important;
  min-height: 170px !important;
  padding: 20px !important;
  border-radius: 22px !important;
  border: 1px solid rgba(255,255,255,.12) !important;
  background:
    radial-gradient(circle at 100% 0%, rgba(204,255,0,.08), transparent 42%),
    rgba(255,255,255,.035) !important;
  overflow: hidden !important;
}

body.is-runevo-plus .export-action-card.premium-feature-card > span:not(.export-card-copy) {
  grid-area: icon !important;
  width: 42px !important;
  min-width: 42px !important;
  height: 42px !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  opacity: 1 !important;
  filter: none !important;
  transform: none !important;
  font-size: 1.55rem !important;
}

body.is-runevo-plus .export-action-card.premium-feature-card .export-card-copy {
  display: contents !important;
  opacity: 1 !important;
  filter: none !important;
  transform: none !important;
}

body.is-runevo-plus .export-action-card.premium-feature-card .export-card-copy strong {
  grid-area: title !important;
  display: block !important;
  min-width: 0 !important;
  margin: 0 !important;
  color: #fff !important;
  font-size: 1.12rem !important;
  font-weight: 950 !important;
  line-height: 1.08 !important;
}

body.is-runevo-plus .export-action-card.premium-feature-card .export-card-copy small {
  grid-area: desc !important;
  display: block !important;
  width: 100% !important;
  max-width: none !important;
  min-width: 0 !important;
  margin: 0 !important;
  color: rgba(255,255,255,.64) !important;
  font-size: .94rem !important;
  line-height: 1.42 !important;
}

body.is-runevo-plus .export-action-card.premium-feature-card .premium-lock-cta,
body.is-runevo-plus .export-action-card.premium-feature-card .plus-chip {
  display: none !important;
}

@media (max-width: 430px) {
  body.is-runevo-plus .export-action-card.premium-feature-card,
  body.is-runevo-free .export-action-card.premium-feature-card {
    grid-template-columns: 40px 1fr !important;
    padding: 18px !important;
    column-gap: 11px !important;
  }
}


/* ===== V154 SINGLE EXPORT PAYWALL CTA ===== */
/* Exportações premium no Free: cards escuros/ofuscados + um único CTA geral. */
.export-premium-single-cta {
  display: none;
}

body.is-runevo-free .export-premium-single-cta {
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  width: 100%;
  min-height: 46px;
  margin-top: 2px;
  padding: 14px 18px;
  border: 0;
  border-radius: 999px;
  background: rgba(204,255,0,.96);
  color: #071000;
  box-shadow: 0 0 24px rgba(204,255,0,.14);
  font-size: .80rem;
  font-weight: 950;
  line-height: 1;
  letter-spacing: .08em;
  text-transform: uppercase;
}

body.is-runevo-free .export-premium-single-cta:hover,
body.is-runevo-free .export-premium-single-cta:focus-visible {
  box-shadow: 0 0 0 4px rgba(204,255,0,.12), 0 0 26px rgba(204,255,0,.20);
}

/* Remove botões internos repetidos dos cards de exportação. */
body.is-runevo-free .export-action-card.premium-feature-card .premium-lock-cta,
body.is-runevo-plus .export-action-card.premium-feature-card .premium-lock-cta {
  display: none !important;
}

/* Mantém a essência premium: fundo escuro, conteúdo ofuscado e cards clicáveis. */
body.is-runevo-free .export-action-card.premium-feature-card {
  background:
    radial-gradient(circle at 100% 0%, rgba(204,255,0,.055), transparent 42%),
    rgba(255,255,255,.028) !important;
  border-color: rgba(255,255,255,.10) !important;
}

body.is-runevo-free .export-action-card.premium-feature-card:hover,
body.is-runevo-free .export-action-card.premium-feature-card:focus-visible {
  border-color: rgba(204,255,0,.23) !important;
  background:
    radial-gradient(circle at 100% 0%, rgba(204,255,0,.085), transparent 42%),
    rgba(255,255,255,.035) !important;
}

/* Como não há CTA interno, os cards não precisam reservar área extra. */
body.is-runevo-free .export-action-card.premium-feature-card {
  grid-template-areas: "icon copy" !important;
  min-height: 126px !important;
}

@media (max-width: 430px) {
  body.is-runevo-free .export-action-card.premium-feature-card {
    min-height: 118px !important;
  }

  body.is-runevo-free .export-premium-single-cta {
    min-height: 44px;
    font-size: .74rem;
  }
}


/* ===== V155 MOBILE APP / CAPACITOR READINESS ===== */
:root {
  --app-height: 100dvh;
  --app-width: 100vw;
  --app-header-total: calc(var(--header-height) + var(--safe-top));
  --app-bottom-total: calc(var(--nav-height) + var(--safe-bottom));
}

html,
body {
  width: 100%;
  min-height: var(--app-height);
  overscroll-behavior-y: none;
  touch-action: manipulation;
}

body.mobile-shell,
body.capacitor-mode,
body.standalone-mode {
  background: #000;
  -webkit-user-select: none;
  user-select: none;
}

body.mobile-shell input,
body.mobile-shell textarea,
body.mobile-shell [contenteditable="true"] {
  -webkit-user-select: text;
  user-select: text;
}

body.mobile-shell .app,
body.capacitor-mode .app,
body.standalone-mode .app {
  min-height: var(--app-height);
  background: #000;
}

/* Header final para app mobile */
.app-header {
  height: var(--app-header-total) !important;
  min-height: var(--app-header-total) !important;
  padding: var(--safe-top) 24px 0 !important;
  align-items: center !important;
  background: rgba(0,0,0,.96) !important;
  -webkit-backdrop-filter: blur(18px);
  backdrop-filter: blur(18px);
  overflow: visible !important;
}

.header-left {
  flex: 0 1 auto !important;
  min-width: 0 !important;
  height: var(--header-height) !important;
  display: flex !important;
  align-items: center !important;
  overflow: visible !important;
}

.header-brand-logo,
#app-header-logo {
  width: clamp(146px, 42vw, 190px) !important;
  max-width: 46vw !important;
  max-height: 54px !important;
  height: auto !important;
  transform: none !important;
  object-fit: contain !important;
  object-position: left center !important;
  filter: drop-shadow(0 0 10px rgba(255,255,255,.04));
}

body.is-runevo-plus .header-brand-logo,
.header-brand-logo.is-plus,
body.is-runevo-plus #app-header-logo {
  width: clamp(160px, 46vw, 204px) !important;
  max-width: 50vw !important;
  transform: none !important;
}

.header-right {
  height: var(--header-height) !important;
  display: flex !important;
  align-items: center !important;
  justify-content: flex-end !important;
  gap: 8px !important;
  flex: 0 0 auto !important;
}

.header-user-profile {
  width: 52px !important;
  height: 52px !important;
  min-width: 52px !important;
  padding: 0 !important;
  border: 0 !important;
  background: transparent !important;
  display: grid !important;
  place-items: center !important;
}

.header-user-avatar {
  width: 52px !important;
  height: 52px !important;
  min-width: 52px !important;
  border-radius: 999px !important;
  border: 2px solid rgba(204,255,0,.45) !important;
  box-shadow: 0 0 0 4px rgba(204,255,0,.045) !important;
  font-size: 0 !important;
}

.header-user-avatar.has-photo,
.header-user-avatar[style*="background-image"] {
  background-size: cover !important;
  background-position: center !important;
}

.header-user-text,
.header-logout-btn {
  display: none !important;
}

.btn-back:not(.hidden) + .header-brand-logo,
.header-left:has(.btn-back:not(.hidden)) .header-brand-logo {
  width: clamp(122px, 34vw, 160px) !important;
}

/* Páginas com altura real de app */
.page {
  padding: calc(var(--app-header-total) + 16px) 16px calc(var(--app-bottom-total) + 16px) !important;
  min-height: var(--app-height) !important;
}

.page.active {
  animation-duration: .18s !important;
}

/* Home: fidelidade visual e respiro */
#page-home {
  display: none;
  flex-direction: column;
}

#page-home.active {
  display: flex !important;
}

.hero-section,
.countdown-section,
.weekly-section {
  flex: 0 0 auto;
}

.hero-section {
  margin-bottom: 20px !important;
}

.hero-badge {
  width: 100% !important;
  justify-content: center !important;
  min-height: 36px !important;
  margin-bottom: 12px !important;
  padding: 6px 14px !important;
  border-radius: 999px !important;
}

.hero-badge .pulse-dot {
  display: none !important;
}

.hero-card {
  min-height: 154px !important;
  padding: 20px !important;
  border-radius: 16px !important;
  background: var(--bg-card) !important;
  border-color: var(--border) !important;
  box-shadow: none !important;
  isolation: isolate;
}

.hero-card::before {
  content: '' !important;
  position: absolute !important;
  inset: 0 0 0 auto !important;
  width: min(46%, 190px) !important;
  height: 100% !important;
  pointer-events: none !important;
  background:
    radial-gradient(circle at 100% 50%, rgba(204,255,0,.24) 0%, rgba(204,255,0,.14) 28%, rgba(204,255,0,.055) 48%, transparent 72%),
    linear-gradient(90deg, transparent 0%, rgba(204,255,0,.045) 72%, rgba(204,255,0,.07) 100%) !important;
  z-index: 0 !important;
}

.hero-card > * {
  position: relative;
  z-index: 1;
}

.hero-card .workout-phase {
  font-size: .72rem !important;
  font-weight: 900 !important;
  letter-spacing: .22em !important;
}

.hero-card .workout-title {
  max-width: 74% !important;
  font-size: 1.32rem !important;
  line-height: 1.16 !important;
  font-weight: 900 !important;
  letter-spacing: -.025em !important;
}

.hero-card .workout-date {
  margin-bottom: 14px !important;
  font-size: .86rem !important;
}

.hero-card .workout-meta {
  gap: 12px !important;
  flex-wrap: nowrap !important;
  max-width: 84% !important;
}

.hero-card .meta-item {
  min-width: 0 !important;
  max-width: 100% !important;
  border-radius: 8px !important;
  padding: 7px 12px !important;
  background: rgba(255,255,255,.055) !important;
}

.hero-card .meta-item:last-child {
  flex: 1 1 auto;
  overflow: hidden;
}

.hero-card .meta-value {
  display: inline-block;
  max-width: 100%;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  vertical-align: bottom;
}

.hero-card .hero-arrow {
  right: 16px !important;
  color: rgba(255,255,255,.34) !important;
  font-size: 2rem !important;
  z-index: 2 !important;
}

.countdown-card,
.workout-row,
.weekly-checkin-card {
  border-radius: 16px !important;
  background: var(--bg-card) !important;
}

.weekly-section {
  margin-bottom: 20px !important;
}

.weekly-workouts {
  gap: 10px !important;
}

.workout-row {
  min-height: 84px !important;
  padding: 14px !important;
  align-items: center !important;
}

.workout-row .row-title {
  font-size: .96rem !important;
  font-weight: 800 !important;
}

.workout-row .row-km {
  margin-right: 0 !important;
  font-size: .95rem !important;
  color: var(--accent-light) !important;
}

.row-status-chip {
  display: inline-flex !important;
  align-items: center !important;
  width: max-content !important;
  max-width: 100% !important;
  margin-top: 6px !important;
  padding: 3px 8px !important;
  border-radius: 999px !important;
  background: rgba(255,255,255,.08) !important;
  color: rgba(255,255,255,.78) !important;
  font-size: .68rem !important;
  font-weight: 900 !important;
}

/* Check-in ocupa o final da tela quando há poucos treinos */
.weekly-checkin-card:not(.hidden) {
  display: flex !important;
  flex-direction: column !important;
  flex: 1 1 auto !important;
  min-height: clamp(260px, 32dvh, 380px) !important;
  margin-top: auto !important;
  margin-bottom: 0 !important;
  padding: 18px !important;
  border-radius: 22px !important;
  border: 1px solid rgba(204,255,0,.28) !important;
  background:
    radial-gradient(circle at 100% 0%, rgba(204,255,0,.08), transparent 45%),
    rgba(204,255,0,.055) !important;
}

.checkin-header {
  align-items: flex-start !important;
}

.checkin-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  gap: 8px !important;
}

.checkin-grid > div {
  min-width: 0 !important;
  border-radius: 16px !important;
}

.checkin-grid span {
  font-size: .68rem !important;
  line-height: 1.18 !important;
}

.checkin-grid strong {
  font-size: .95rem !important;
}

.checkin-hint {
  margin-top: 2px !important;
  font-size: .92rem !important;
  line-height: 1.42 !important;
}

.btn-checkin {
  margin-top: auto !important;
}

/* Detalhe de treino em modo app: tela inteira mais nativa */
body.mobile-shell #page-workout,
body.capacitor-mode #page-workout,
body.standalone-mode #page-workout {
  padding-bottom: calc(var(--safe-bottom) + 20px) !important;
}

.workout-detail .btn-complete,
.workout-action-grid .btn-complete {
  min-height: 56px !important;
  border-radius: 18px !important;
  background: var(--accent) !important;
  color: #050700 !important;
  box-shadow: 0 18px 36px rgba(204,255,0,.10) !important;
}

/* Modal final com cara de bottom-sheet no app */
body.mobile-shell .modal-overlay,
body.capacitor-mode .modal-overlay,
body.standalone-mode .modal-overlay {
  align-items: flex-end !important;
  justify-content: flex-end !important;
  padding: 0 !important;
  background: rgba(0,0,0,.74) !important;
}

body.mobile-shell .modal-card,
body.capacitor-mode .modal-card,
body.standalone-mode .modal-card {
  width: 100% !important;
  max-width: 100% !important;
  border-radius: 28px 28px 0 0 !important;
  padding: 22px 20px calc(var(--safe-bottom) + 20px) !important;
  text-align: left !important;
  max-height: 92dvh !important;
  overflow-y: auto !important;
}

body.mobile-shell .modal-card::before,
body.capacitor-mode .modal-card::before,
body.standalone-mode .modal-card::before {
  content: '';
  display: block;
  width: 44px;
  height: 5px;
  border-radius: 999px;
  background: rgba(255,255,255,.18);
  margin: 0 auto 18px;
}

body.mobile-shell .modal-icon,
body.capacitor-mode .modal-icon,
body.standalone-mode .modal-icon {
  text-align: center !important;
  font-size: 3rem !important;
}

body.mobile-shell .modal-card h3,
body.capacitor-mode .modal-card h3,
body.standalone-mode .modal-card h3 {
  text-align: center !important;
}

body.mobile-shell .modal-actions,
body.capacitor-mode .modal-actions,
body.standalone-mode .modal-actions {
  display: grid !important;
  grid-template-columns: 1fr 1fr !important;
  gap: 12px !important;
}

body.mobile-shell .modal-actions .btn,
body.capacitor-mode .modal-actions .btn,
body.standalone-mode .modal-actions .btn {
  min-height: 52px !important;
  border-radius: 16px !important;
}

/* Bottom nav final */
.bottom-nav {
  height: var(--app-bottom-total) !important;
  padding-bottom: var(--safe-bottom) !important;
  background: rgba(0,0,0,.98) !important;
  -webkit-backdrop-filter: blur(18px);
  backdrop-filter: blur(18px);
}

.bottom-nav .nav-item {
  height: var(--nav-height) !important;
  padding: 7px 4px !important;
  border-radius: 0 !important;
}

.nav-item svg {
  width: 23px !important;
  height: 23px !important;
}

.nav-item span {
  font-size: .68rem !important;
  font-weight: 800 !important;
  letter-spacing: .02em !important;
}

@media (min-width: 768px) {
  .app {
    width: min(430px, 100vw);
    margin: 0 auto;
    min-height: var(--app-height);
    border-left: 1px solid rgba(255,255,255,.06);
    border-right: 1px solid rgba(255,255,255,.06);
  }

  .app-header,
  .bottom-nav {
    width: min(430px, 100vw) !important;
    left: 50% !important;
    right: auto !important;
    transform: translateX(-50%) !important;
  }

  .bottom-nav {
    border-radius: 0 !important;
  }
}

@media (max-width: 390px) {
  .header-brand-logo,
  #app-header-logo {
    width: 138px !important;
    max-width: 43vw !important;
  }

  .header-user-profile,
  .header-user-avatar {
    width: 48px !important;
    height: 48px !important;
    min-width: 48px !important;
  }

  .hero-card .workout-title {
    max-width: 70% !important;
    font-size: 1.22rem !important;
  }

  .hero-card .meta-item {
    padding-inline: 10px !important;
  }

  .nav-item span {
    font-size: .62rem !important;
  }
}



/* =========================================================
   RUNEVO V156 - APP ONLY FOUNDATION / CAPACITOR
   ========================================================= */

html[data-runevo-build="app-only"],
body.runevo-app-only {
  background: #000000 !important;
  overscroll-behavior-y: none;
  -webkit-tap-highlight-color: transparent;
  touch-action: manipulation;
}

body.runevo-app-only {
  min-height: 100dvh;
  min-height: calc(var(--app-height, 100vh));
  user-select: none;
  -webkit-user-select: none;
}

body.runevo-app-only .install-prompt,
body.runevo-app-only .pwa-install,
body.runevo-app-only .install-app,
body.runevo-app-only #installPrompt,
body.runevo-app-only #installButton,
body.runevo-app-only .browser-only,
body.runevo-app-only [data-browser-only="true"] {
  display: none !important;
}

body.runevo-app-only .app-header,
body.runevo-app-only header,
body.runevo-app-only .top-nav {
  padding-top: max(env(safe-area-inset-top), 10px);
}

body.runevo-app-only .bottom-nav,
body.runevo-app-only .mobile-nav,
body.runevo-app-only nav[role="navigation"] {
  padding-bottom: max(env(safe-area-inset-bottom), 8px);
}

body.runevo-app-only input,
body.runevo-app-only select,
body.runevo-app-only textarea {
  font-size: 16px !important;
}

body.runevo-app-only .app,
body.runevo-app-only #app,
body.runevo-app-only main {
  max-width: 480px;
  margin: 0 auto;
}

body.runevo-app-only * {
  scrollbar-width: none;
}

body.runevo-app-only *::-webkit-scrollbar {
  width: 0;
  height: 0;
}

body.runevo-app-only .modal,
body.runevo-app-only .bottom-sheet,
body.runevo-app-only .workout-modal {
  overscroll-behavior: contain;
}



/* =========================================================
   RUNEVO V157 - MOBILE SHELL POLISH / PIXEL 7
   Correção global para app Capacitor:
   - remove vãos pretos no topo;
   - padroniza labels e inputs;
   - evita labels quebradas;
   - ajusta bottom nav;
   - compacta cards no modo app.
   ========================================================= */

html[data-runevo-build="app-only"] {
  --header-height: 76px;
  --nav-height: 76px;
  --app-header-total: var(--header-height);
  --app-bottom-total: calc(var(--nav-height) + env(safe-area-inset-bottom, 0px));
}

/* O Capacitor já entrega a área útil abaixo da status bar quando StatusBar.overlaysWebView=false.
   Então NÃO devemos duplicar safe-area no header/page. */
body.runevo-app-only .app-header,
html[data-runevo-build="app-only"] .app-header {
  height: var(--header-height) !important;
  min-height: var(--header-height) !important;
  padding: 0 24px !important;
  padding-top: 0 !important;
  align-items: center !important;
  background: rgba(0, 0, 0, 0.98) !important;
}

body.runevo-app-only .header-left,
html[data-runevo-build="app-only"] .header-left,
body.runevo-app-only .header-right,
html[data-runevo-build="app-only"] .header-right {
  height: var(--header-height) !important;
  align-items: center !important;
}

body.runevo-app-only .header-brand-logo,
body.runevo-app-only #app-header-logo,
html[data-runevo-build="app-only"] .header-brand-logo,
html[data-runevo-build="app-only"] #app-header-logo {
  width: 148px !important;
  max-width: 44vw !important;
  max-height: 54px !important;
  object-fit: contain !important;
  object-position: left center !important;
  transform: translateY(1px) !important;
}

body.runevo-app-only .header-user-profile,
html[data-runevo-build="app-only"] .header-user-profile {
  width: 54px !important;
  height: 54px !important;
  min-width: 54px !important;
}

body.runevo-app-only .header-user-avatar,
html[data-runevo-build="app-only"] .header-user-avatar {
  width: 54px !important;
  height: 54px !important;
  min-width: 54px !important;
}

/* Remove o vácuo preto entre header e conteúdo. */
body.runevo-app-only .page,
html[data-runevo-build="app-only"] .page {
  padding: calc(var(--header-height) + 16px) 16px calc(var(--nav-height) + env(safe-area-inset-bottom, 0px) + 18px) !important;
  min-height: 100dvh !important;
}

body.runevo-app-only .page.active,
html[data-runevo-build="app-only"] .page.active {
  overflow-x: hidden !important;
}

/* Home sem centralização vertical involuntária quando não há planilha. */
body.runevo-app-only #page-home.active,
html[data-runevo-build="app-only"] #page-home.active {
  display: block !important;
}

body.runevo-app-only #page-home .hero-section,
body.runevo-app-only #page-home .countdown-section,
body.runevo-app-only #page-home .weekly-section,
body.runevo-app-only #page-home #weekly-checkin-card,
html[data-runevo-build="app-only"] #page-home .hero-section,
html[data-runevo-build="app-only"] #page-home .countdown-section,
html[data-runevo-build="app-only"] #page-home .weekly-section,
html[data-runevo-build="app-only"] #page-home #weekly-checkin-card {
  max-width: none !important;
  width: 100% !important;
}

body.runevo-app-only #page-home .hero-section,
html[data-runevo-build="app-only"] #page-home .hero-section {
  margin-top: 0 !important;
  margin-bottom: 16px !important;
}

/* Card do próximo treino mais limpo no app. */
body.runevo-app-only .hero-badge,
html[data-runevo-build="app-only"] .hero-badge {
  min-height: 34px !important;
  font-size: 0.72rem !important;
  letter-spacing: 0.18em !important;
  padding: 8px 14px !important;
}

body.runevo-app-only .hero-card,
html[data-runevo-build="app-only"] .hero-card {
  min-height: 144px !important;
  padding: 18px !important;
}

body.runevo-app-only .hero-card .workout-title,
html[data-runevo-build="app-only"] .hero-card .workout-title {
  font-size: 1.18rem !important;
  line-height: 1.18 !important;
  max-width: 76% !important;
}

body.runevo-app-only .hero-card .workout-date,
html[data-runevo-build="app-only"] .hero-card .workout-date {
  font-size: 0.84rem !important;
}

body.runevo-app-only .hero-card::before,
html[data-runevo-build="app-only"] .hero-card::before {
  width: min(38%, 150px) !important;
  background:
    linear-gradient(90deg, transparent 0%, rgba(204,255,0,.035) 68%, rgba(204,255,0,.10) 100%) !important;
}

body.runevo-app-only .hero-card .meta-item,
html[data-runevo-build="app-only"] .hero-card .meta-item {
  padding: 7px 10px !important;
}

body.runevo-app-only .hero-card .meta-value,
html[data-runevo-build="app-only"] .hero-card .meta-value {
  font-size: 0.84rem !important;
}

/* Cards e títulos globais mais consistentes. */
body.runevo-app-only .section-title,
html[data-runevo-build="app-only"] .section-title {
  font-size: 1.25rem !important;
  line-height: 1.16 !important;
  margin-bottom: 14px !important;
}

body.runevo-app-only .ai-form-title,
body.runevo-app-only .settings-card-header h3,
body.runevo-app-only .profile-list-item span:not(.profile-item-icon),
html[data-runevo-build="app-only"] .ai-form-title,
html[data-runevo-build="app-only"] .settings-card-header h3,
html[data-runevo-build="app-only"] .profile-list-item span:not(.profile-item-icon) {
  font-size: 1.02rem !important;
  line-height: 1.18 !important;
}

/* IA Evo: grids quebravam no Pixel 7. Força layout app-first. */
body.runevo-app-only #page-ai .ai-hero,
html[data-runevo-build="app-only"] #page-ai .ai-hero {
  display: none !important;
}

body.runevo-app-only .ai-container,
html[data-runevo-build="app-only"] .ai-container {
  padding-bottom: 0 !important;
}

body.runevo-app-only .ai-trust-card,
html[data-runevo-build="app-only"] .ai-trust-card {
  display: none !important;
}

body.runevo-app-only .ai-form-card,
html[data-runevo-build="app-only"] .ai-form-card {
  padding: 16px !important;
  margin-bottom: 14px !important;
  border-radius: 18px !important;
}

body.runevo-app-only .ai-form-row,
html[data-runevo-build="app-only"] .ai-form-row {
  display: grid !important;
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  gap: 10px !important;
}

body.runevo-app-only .ai-distance-row,
html[data-runevo-build="app-only"] .ai-distance-row {
  grid-template-columns: 1fr !important;
}

body.runevo-app-only .ai-form-group,
html[data-runevo-build="app-only"] .ai-form-group {
  min-width: 0 !important;
  margin-bottom: 12px !important;
}

body.runevo-app-only .ai-label,
html[data-runevo-build="app-only"] .ai-label {
  min-height: 18px !important;
  font-size: 0.72rem !important;
  line-height: 1.18 !important;
  letter-spacing: 0.08em !important;
  overflow-wrap: normal !important;
  word-break: normal !important;
}

body.runevo-app-only .ai-input,
html[data-runevo-build="app-only"] .ai-input {
  min-height: 48px !important;
  padding: 12px 13px !important;
  font-size: 16px !important;
  border-radius: 12px !important;
}

body.runevo-app-only .ai-radio-group,
html[data-runevo-build="app-only"] .ai-radio-group {
  display: grid !important;
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  gap: 8px !important;
}

body.runevo-app-only .ai-radio-btn,
html[data-runevo-build="app-only"] .ai-radio-btn {
  min-height: 46px !important;
  display: grid !important;
  place-items: center !important;
  padding: 8px 6px !important;
  font-size: 0.74rem !important;
  line-height: 1.05 !important;
  white-space: nowrap !important;
}

/* Terreno: no Pixel 7, 3 cards lado a lado ficaram gigantes e com labels ruins. */
body.runevo-app-only .terrain-options,
html[data-runevo-build="app-only"] .terrain-options {
  grid-template-columns: 1fr !important;
  gap: 10px !important;
}

body.runevo-app-only .terrain-card,
html[data-runevo-build="app-only"] .terrain-card {
  min-height: 82px !important;
  grid-template-columns: 1fr auto !important;
  padding: 14px !important;
  border-radius: 16px !important;
}

body.runevo-app-only .terrain-card strong,
html[data-runevo-build="app-only"] .terrain-card strong {
  font-size: 0.98rem !important;
}

body.runevo-app-only .terrain-card small,
html[data-runevo-build="app-only"] .terrain-card small {
  font-size: 0.82rem !important;
}

/* Tempos anteriores: mantém 2 colunas, mas reduz quebra feia. */
body.runevo-app-only .ai-time-history-group .ai-checkline,
html[data-runevo-build="app-only"] .ai-time-history-group .ai-checkline {
  min-height: 44px !important;
  padding: 9px 10px !important;
  font-size: 0.78rem !important;
  line-height: 1.15 !important;
}

/* Botões principais não devem ocupar meia tela. */
body.runevo-app-only .btn-generate,
body.runevo-app-only .ai-btn-full,
body.runevo-app-only .manual-manager-btn,
html[data-runevo-build="app-only"] .btn-generate,
html[data-runevo-build="app-only"] .ai-btn-full,
html[data-runevo-build="app-only"] .manual-manager-btn {
  min-height: 54px !important;
  padding: 14px 18px !important;
  border-radius: 18px !important;
  font-size: 1rem !important;
}

/* Treinos: card de edição mais equilibrado. */
body.runevo-app-only .training-hub-container,
html[data-runevo-build="app-only"] .training-hub-container {
  padding-top: 0 !important;
}

body.runevo-app-only .manual-manager-card,
html[data-runevo-build="app-only"] .manual-manager-card {
  padding: 18px !important;
  border-radius: 18px !important;
}

body.runevo-app-only .manual-manager-card h2,
html[data-runevo-build="app-only"] .manual-manager-card h2 {
  font-size: 1.28rem !important;
  line-height: 1.18 !important;
}

/* Stats: remove vácuo superior e compacta cards. */
body.runevo-app-only #page-stats,
html[data-runevo-build="app-only"] #page-stats {
  padding-top: calc(var(--header-height) + 16px) !important;
}

body.runevo-app-only .stats-grid,
html[data-runevo-build="app-only"] .stats-grid {
  gap: 10px !important;
}

body.runevo-app-only .stat-card,
html[data-runevo-build="app-only"] .stat-card {
  min-height: 116px !important;
  padding: 14px !important;
  border-radius: 16px !important;
}

body.runevo-app-only .stat-card-icon,
html[data-runevo-build="app-only"] .stat-card-icon {
  font-size: 1.35rem !important;
}

body.runevo-app-only .stat-card-value,
html[data-runevo-build="app-only"] .stat-card-value {
  font-size: 1.45rem !important;
}

body.runevo-app-only .stat-card-accent .stat-card-value,
html[data-runevo-build="app-only"] .stat-card-accent .stat-card-value {
  font-size: 2rem !important;
}

/* Perfil/Configurações: labels e cards de lista com tamanho app. */
body.runevo-app-only .profile-hub,
html[data-runevo-build="app-only"] .profile-hub {
  padding-top: 0 !important;
}

body.runevo-app-only .profile-list-card,
html[data-runevo-build="app-only"] .profile-list-card {
  border-radius: 18px !important;
}

body.runevo-app-only .profile-list-item,
html[data-runevo-build="app-only"] .profile-list-item {
  min-height: 72px !important;
  padding: 14px 16px !important;
}

body.runevo-app-only .profile-item-icon,
html[data-runevo-build="app-only"] .profile-item-icon {
  width: 44px !important;
  min-width: 44px !important;
  text-align: center !important;
  font-size: 1.35rem !important;
}

/* Bottom nav: labels não podem quebrar nem ficar miúdas demais. */
body.runevo-app-only .bottom-nav,
html[data-runevo-build="app-only"] .bottom-nav {
  height: calc(var(--nav-height) + env(safe-area-inset-bottom, 0px)) !important;
  min-height: calc(var(--nav-height) + env(safe-area-inset-bottom, 0px)) !important;
  padding: 6px 10px max(env(safe-area-inset-bottom, 0px), 8px) !important;
  align-items: center !important;
}

body.runevo-app-only .nav-item,
html[data-runevo-build="app-only"] .nav-item {
  min-width: 68px !important;
  max-width: 92px !important;
  padding: 6px 4px !important;
  gap: 2px !important;
  font-size: 0.74rem !important;
  line-height: 1 !important;
  white-space: nowrap !important;
}

body.runevo-app-only .nav-item span,
html[data-runevo-build="app-only"] .nav-item span {
  display: block !important;
  max-width: 88px !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
  white-space: nowrap !important;
}

body.runevo-app-only .nav-item svg,
html[data-runevo-build="app-only"] .nav-item svg {
  width: 24px !important;
  height: 24px !important;
  flex: 0 0 auto !important;
}

/* Ajustes específicos para telas menores/Pixel em 393px. */
@media (max-width: 430px) {
  html[data-runevo-build="app-only"] {
    --header-height: 74px;
    --nav-height: 74px;
  }

  body.runevo-app-only .page,
  html[data-runevo-build="app-only"] .page {
    padding-left: 15px !important;
    padding-right: 15px !important;
    padding-top: calc(var(--header-height) + 14px) !important;
  }

  body.runevo-app-only .ai-form-card,
  html[data-runevo-build="app-only"] .ai-form-card,
  body.runevo-app-only .settings-card,
  html[data-runevo-build="app-only"] .settings-card {
    padding: 15px !important;
  }

  body.runevo-app-only .ai-radio-btn,
  html[data-runevo-build="app-only"] .ai-radio-btn {
    font-size: 0.70rem !important;
  }

  body.runevo-app-only .nav-item,
  html[data-runevo-build="app-only"] .nav-item {
    min-width: 64px !important;
    font-size: 0.70rem !important;
  }
}
