/* ══════════════════════════════════════════
   PRIME MENTORIAS — Plataforma
   Design System: Premium Dark · True Cobalt
   ══════════════════════════════════════════ */

/* ── Fontes locais ── */
@font-face {
  font-family: 'Anton';
  src: url('desing.system/tipografia/Anton/Anton-Regular.ttf') format('truetype');
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: 'Asap Condensed';
  src: url('desing.system/tipografia/Asap_Condensed/AsapCondensed-Light.ttf') format('truetype');
  font-weight: 300;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: 'Asap Condensed';
  src: url('desing.system/tipografia/Asap_Condensed/AsapCondensed-Regular.ttf') format('truetype');
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: 'Asap Condensed';
  src: url('desing.system/tipografia/Asap_Condensed/AsapCondensed-Medium.ttf') format('truetype');
  font-weight: 500;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: 'Asap Condensed';
  src: url('desing.system/tipografia/Asap_Condensed/AsapCondensed-SemiBold.ttf') format('truetype');
  font-weight: 600;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: 'Asap Condensed';
  src: url('desing.system/tipografia/Asap_Condensed/AsapCondensed-Bold.ttf') format('truetype');
  font-weight: 700;
  font-style: normal;
  font-display: swap;
}

*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }

:root {
  /* Paleta Prime Mentorias */
  --navy:         #0f192d;
  --navy-mid:     #0c1524;
  --navy-light:   #2A68C5;
  --blue:         #2563EB;
  --blue-light:   #3B82F6;
  --blue-glow:    #60A5FA;
  --sky:          #DBEAFE;
  --muted:        #8b95ae;
  --white:        #FFFFFF;
  --border:       rgba(192,199,213,.10);
  --border-bright:rgba(37,99,235,.35);
  --gray-50:      #F7F9FC;
  --gray-100:     #F1F5F9;
  --gray-200:     #E2E8F0;
  --gray-300:     #CBD5E1;
  --gray-400:     #94A3B8;
  --gray-500:     #64748B;
  --gray-600:     #475569;
  --gray-700:     #334155;
  --gray-800:     #1E293B;

  --ff-display: 'Anton', Georgia, sans-serif;
  --ff-body:    'Asap Condensed', system-ui, sans-serif;

  --radius-sm:  6px;
  --radius-md:  14px;
  --radius-lg:  22px;
  --radius-xl:  30px;

  --shadow-sm:  0 1px 3px rgba(15,25,45,.06), 0 1px 2px rgba(15,25,45,.04);
  --shadow-md:  0 4px 16px rgba(15,25,45,.12), 0 2px 6px rgba(15,25,45,.08);
  --shadow-lg:  0 20px 50px rgba(15,25,45,.18);
  --shadow-xl:  0 28px 70px rgba(15,25,45,.28);
  --shadow-blue: 0 8px 32px rgba(37,99,235,.35);

  --transition: 220ms cubic-bezier(.4,0,.2,1);
}

html { scroll-behavior: smooth; overflow-x: hidden; }

body {
  font-family: var(--ff-body);
  font-size: 16px;
  line-height: 1.6;
  color: var(--gray-800);
  background: var(--gray-50);
  min-height: 100vh;
}

.container { max-width: 1080px; margin: 0 auto; padding: 0 24px; }
.hidden { display: none !important; }

/* ══════════════════════════════════════════
   HEADER (sóbrio, sem CTA de landing)
   ══════════════════════════════════════════ */
.header {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  z-index: 100;
  padding: 18px 0 0;
  background: transparent;
  pointer-events: none;
}
.header .header__inner { pointer-events: auto; }

.header .header__inner {
  max-width: 1160px;
  width: calc(100% - 32px);
  margin: 0 auto;
}

.header__inner {
  position: relative;
  z-index: 1;
  display: flex;
  align-items: center;
  justify-content: space-between;
  height: 92px;
  padding: 0 32px;
  border-radius: 22px;
  background: rgba(15,25,45,.82);
  backdrop-filter: blur(16px) saturate(160%);
  -webkit-backdrop-filter: blur(16px) saturate(160%);
  border: 1px solid rgba(255,255,255,.09);
  box-shadow: 0 16px 44px rgba(0,0,0,.35);
}

.logo {
  display: flex;
  align-items: center;
  gap: 12px;
  text-decoration: none;
  color: var(--white);
}

.logo__mark-img {
  height: 56px;
  width: auto;
  display: block;
  object-fit: contain;
  flex-shrink: 0;
}

.logo__full-img {
  height: 36px;
  width: auto;
  display: block;
  object-fit: contain;
}


/* Footer logo */
.logo--light .logo__full-img {
  height: 40px;
  opacity: 0.92;
}

/* Logo do header — maior que a do footer, cabeçalho mais grosso/aparente */
.header .logo--light .logo__full-img { height: 48px; }
.logo__full-img--mark { display: none; }

.nav { display: flex; align-items: center; gap: 14px; }

/* Texto curto do CTA do header, usado só em telas bem estreitas (ver media query) */
.nav__link--cta-short { display: none; }

.nav__user {
  font-size: 13px;
  color: rgba(255,255,255,.65);
  display: flex;
  align-items: center;
  gap: 8px;
}
.nav__user::before {
  content: '';
  width: 7px; height: 7px;
  border-radius: 50%;
  background: #22C55E;
  box-shadow: 0 0 8px #22C55E;
}

.nav__link--ghost {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  background: rgba(255,255,255,.04);
  border: 1px solid rgba(255,255,255,.16);
  color: rgba(255,255,255,.85);
  padding: 12px 22px;
  font-size: 15px; font-weight: 600;
  border-radius: var(--radius-sm);
  cursor: pointer;
  font-family: var(--ff-body);
  transition: var(--transition);
}
.nav__link--ghost svg { flex-shrink: 0; opacity: .75; transition: var(--transition); }
.nav__link--ghost:hover {
  background: rgba(255,255,255,.09);
  color: var(--white);
  border-color: rgba(255,255,255,.3);
  transform: translateY(-2px);
}
.nav__link--ghost:hover svg { opacity: 1; }

.nav__link--cta {
  position: relative;
  overflow: hidden;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  background: linear-gradient(135deg, var(--navy-light) 0%, var(--blue) 100%);
  color: var(--white);
  border: none;
  padding: 14px 26px;
  font-size: 15px; font-weight: 600;
  border-radius: var(--radius-sm);
  cursor: pointer;
  font-family: var(--ff-body);
  transition: var(--transition);
  white-space: nowrap;
  box-shadow: 0 10px 30px rgba(37,99,235,.4);
}
.nav__link--cta svg { flex-shrink: 0; transition: var(--transition); }
.nav__link--cta:hover {
  transform: translateY(-2px);
  box-shadow: 0 0 36px rgba(37,99,235,.6);
}
.nav__link--cta:hover svg { transform: translateX(3px); }
.nav__link--cta::after {
  content: '';
  position: absolute;
  top: 0; left: -60%;
  width: 40%; height: 100%;
  background: linear-gradient(120deg, transparent, rgba(255,255,255,.4), transparent);
  animation: ctaShimmerSweep 3.4s ease-in-out infinite;
}
@media (prefers-reduced-motion: reduce) {
  .nav__link--cta::after { animation: none; display: none; }
}

/* ══════════════════════════════════════════
   AUTH / LOGIN
   ══════════════════════════════════════════ */
.auth {
  padding: 40px 24px;
  min-height: calc(100vh - 72px);
  background: var(--navy);
  background-image: url('desing.system/fundos/background-8.png');
  background-size: cover;
  background-position: center center;
  background-repeat: no-repeat;
  position: relative;
}
.auth::before {
  content: '';
  position: absolute; inset: 0;
  background: rgba(15,25,45,.82);
  pointer-events: none;
}
.auth__inner { position: relative; z-index: 1; }

.auth__inner {
  width: 100%;
  max-width: 520px;
  margin: 0 auto;
  padding: 0;
}

.auth__logo {
  display: flex;
  justify-content: center;
  margin: 8px 0 32px;
}
.auth__logo img {
  height: 87px;
  width: auto;
  object-fit: contain;
}
@media (max-width: 640px) {
  .auth__logo img { height: 64px; }
}

.back-link {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  background: var(--navy);
  border: 1px solid rgba(255,255,255,.12);
  color: var(--white);
  font-family: var(--ff-body);
  font-size: 13px;
  font-weight: 600;
  cursor: pointer;
  padding: 8px 14px;
  border-radius: var(--radius-sm);
  margin-bottom: 24px;
  box-shadow: var(--shadow-md);
  transition: var(--transition);
}
.back-link:hover {
  background: var(--navy-mid);
  transform: translateX(-2px);
}
.back-link svg { flex-shrink: 0; }

.auth__card {
  background: var(--white);
  border: 1px solid var(--gray-200);
  border-radius: var(--radius-xl);
  padding: 28px 32px;
  box-shadow: var(--shadow-xl);
  width: 100%;
  max-width: 520px;
  box-sizing: border-box;
}

.auth__badge {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 12px; font-weight: 600;
  letter-spacing: .4px;
  color: var(--blue);
  background: rgba(37,99,235,.08);
  border: 1px solid rgba(37,99,235,.15);
  padding: 6px 12px;
  border-radius: 100px;
  margin-bottom: 20px;
}

.auth__card h2 {
  font-family: var(--ff-display);
  font-size: 2rem;
  font-weight: 400;
  color: var(--navy);
  letter-spacing: 1px;
  text-transform: uppercase;
  margin-bottom: 6px;
}

.auth__sub {
  font-size: 14px;
  color: var(--gray-600);
  margin-bottom: 28px;
}

.auth__card .booking-form { padding: 0; }

/* ── Planos (Etapa 2 do SaaS: checkout self-service da Plataforma) ── */
.plans__inner { max-width: 900px; }
.plans__title {
  font-family: var(--ff-display);
  font-size: 2.4rem;
  font-weight: 400;
  color: var(--white);
  letter-spacing: 1px;
  text-transform: uppercase;
  text-align: center;
  margin-bottom: 6px;
}
.plans__cards {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 20px;
  margin-top: 32px;
}
@media (max-width: 720px) { .plans__cards { grid-template-columns: 1fr; } }
.plan-card { display: flex; flex-direction: column; }
.plan-card__title {
  font-family: var(--ff-display);
  font-size: 1.4rem;
  font-weight: 400;
  color: var(--navy);
  letter-spacing: .5px;
  text-transform: uppercase;
  margin-bottom: 10px;
}
.plan-card__desc { font-size: 13px; color: var(--gray-600); line-height: 1.6; margin-bottom: 20px; }
.plan-toggle {
  display: flex;
  background: var(--gray-100);
  border-radius: var(--radius-md);
  padding: 4px;
  margin-bottom: 20px;
}
.plan-toggle__btn {
  flex: 1;
  border: none;
  background: none;
  font-family: var(--ff-body);
  font-size: 13px;
  font-weight: 600;
  padding: 10px;
  border-radius: var(--radius-sm);
  color: var(--gray-600);
  cursor: pointer;
  transition: var(--transition);
}
.plan-toggle__btn--active { background: var(--white); color: var(--blue); box-shadow: var(--shadow-sm); }
.plan-card__price { display: flex; align-items: baseline; gap: 4px; margin-bottom: 4px; }
.plan-card__valor { font-family: var(--ff-display); font-size: 2rem; color: var(--navy); }
.plan-card__periodo { font-size: 13px; color: var(--gray-600); }
.plan-card__note { font-size: 12px; color: var(--gray-600); margin-bottom: 20px; }

.auth__hint {
  text-align: center;
  font-size: 13px;
  color: var(--gray-600);
  margin-top: 20px;
}
.linklike {
  background: none;
  border: none;
  color: var(--blue);
  font-family: inherit;
  font-size: inherit;
  font-weight: 600;
  cursor: pointer;
  padding: 0;
  text-decoration: underline;
  text-underline-offset: 2px;
}
.linklike:hover { color: var(--blue-light); }

/* ══════════════════════════════════════════
   BUTTONS
   ══════════════════════════════════════════ */
.btn {
  display: inline-flex; align-items: center; gap: 8px;
  font-family: var(--ff-body);
  font-size: 15px; font-weight: 600;
  padding: 14px 28px;
  border-radius: var(--radius-md);
  border: none; cursor: pointer;
  text-decoration: none;
  transition: var(--transition);
  white-space: nowrap;
}

.btn--primary {
  background: linear-gradient(135deg, var(--navy-light) 0%, var(--blue) 100%);
  color: var(--white);
  box-shadow: var(--shadow-blue);
}
.btn--primary:hover {
  transform: translateY(-3px);
  box-shadow: 0 0 56px rgba(37,99,235,.65);
}

.btn--submit {
  width: 100%;
  justify-content: center;
  background: linear-gradient(135deg, var(--navy-light), var(--navy-mid));
  color: var(--white);
  font-size: 15px;
  padding: 15px;
  border-radius: var(--radius-md);
  box-shadow: var(--shadow-md);
  position: relative;
  overflow: hidden;
  border: 1px solid rgba(255,255,255,.06);
}
.btn--submit::before {
  content: '';
  position: absolute; inset: 0;
  background: linear-gradient(135deg, var(--blue), var(--navy-light));
  opacity: 0;
  transition: var(--transition);
  z-index: 0;
}
.btn--submit:hover::before { opacity: 1; }
.btn--submit:hover { transform: translateY(-1px); box-shadow: var(--shadow-blue); }
.btn--submit:disabled { opacity: .6; cursor: not-allowed; transform: none; }
.btn-text, .btn-loader { position: relative; z-index: 1; }
.btn--submit > * { position: relative; z-index: 1; }

/* ══════════════════════════════════════════
   SCHEDULING
   ══════════════════════════════════════════ */
.scheduling {
  background: var(--gray-50);
  padding: 64px 0 40px;
}

.section-header { text-align: center; margin-bottom: 48px; }
.section-header--left { text-align: left; margin-bottom: 40px; }

.section-tag {
  display: inline-block;
  font-size: 11px; font-weight: 600;
  letter-spacing: 2px; text-transform: uppercase;
  color: var(--blue);
  background: rgba(37,99,235,.08);
  padding: 5px 12px;
  border-radius: 100px;
  margin-bottom: 14px;
}
@keyframes goldPulse {
  0%, 100% { filter: drop-shadow(0 0 0px rgba(96,165,250,0)); }
  50%       { filter: drop-shadow(0 0 8px rgba(96,165,250,.55)); }
}
.section-tag--gold {
  color: var(--blue-glow);
  background: rgba(96,165,250,.12);
  border: 1px solid rgba(96,165,250,.28);
  animation: goldPulse 1.4s cubic-bezier(.4,0,.6,1) infinite;
}

.section-title {
  font-family: var(--ff-display);
  font-size: clamp(1.8rem, 3.5vw, 2.6rem);
  font-weight: 400;
  letter-spacing: 1px;
  text-transform: uppercase;
  color: var(--navy);
  margin-bottom: 10px;
}

.section-sub {
  font-size: 15px;
  color: var(--gray-600);
  font-weight: 400;
  max-width: 560px;
  margin: 0 auto;
}
.section-header--left .section-sub { margin: 0; }

/* ── Blocos DATA / HORÁRIOS ── */
.schedule-block {
  max-width: 640px;
  margin: 0 auto 36px;
}

.schedule-block__header {
  display: flex;
  align-items: center;
  gap: 14px;
  margin-bottom: 24px;
}

.schedule-block__title {
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 3px;
  text-transform: uppercase;
  color: var(--gray-400);
  white-space: nowrap;
  padding: 0 2px;
}

.schedule-block__line {
  flex: 1;
  height: 1px;
  background: var(--gray-200);
}

.slots-placeholder {
  text-align: center;
  font-size: 14px;
  color: var(--gray-400);
  padding: 28px 0;
}

/* Week nav */
.week-nav {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 0;
  justify-content: flex-start;
  flex-wrap: nowrap;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
  overscroll-behavior-x: contain;
  scrollbar-width: none;
}
.week-nav::-webkit-scrollbar { display: none; }

.week-nav__sep {
  width: 1px;
  height: 48px;
  background: var(--gray-200);
  margin: 0 4px;
  flex-shrink: 0;
}

.week-btn {
  display: flex; flex-direction: column; align-items: center;
  gap: 4px;
  padding: 12px 16px;
  background: var(--white);
  border: 1.5px solid var(--gray-200);
  border-radius: var(--radius-md);
  cursor: pointer;
  font-family: var(--ff-body);
  transition: var(--transition);
  min-width: 0;
  flex: 1;
}
.week-btn:hover { border-color: var(--blue); background: rgba(37,99,235,.03); }
.week-btn.active {
  border-color: var(--blue);
  background: var(--blue);
  box-shadow: 0 4px 14px rgba(37,99,235,.25);
}

.week-btn__day {
  font-size: 12px; font-weight: 600; text-transform: uppercase;
  letter-spacing: 1px;
  color: var(--gray-600);
  transition: var(--transition);
}
.week-btn__date {
  font-size: 20px; font-weight: 600;
  color: var(--navy);
  font-family: var(--ff-display);
  transition: var(--transition);
}
.week-btn.active .week-btn__day,
.week-btn.active .week-btn__date { color: var(--white); }

/* Slots */
.slots-section { margin-bottom: 24px; text-align: center; }
.slots-label {
  font-size: 11px; font-weight: 600;
  text-transform: uppercase; letter-spacing: 2px;
  color: var(--gray-400);
  margin-bottom: 12px;
}

.slots-grid {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 10px;
  margin-bottom: 20px;
}
.slots-grid .slot-btn { flex: 0 0 110px; }

.slot-btn {
  display: flex; flex-direction: column; align-items: center; justify-content: center;
  gap: 2px;
  padding: 14px 8px;
  background: var(--white);
  border: 1.5px solid var(--gray-200);
  border-radius: var(--radius-md);
  cursor: pointer;
  font-family: var(--ff-body);
  transition: var(--transition);
  position: relative;
}
.slot-btn:hover:not(.slot-btn--booked) {
  border-color: var(--blue);
  transform: translateY(-2px);
  box-shadow: var(--shadow-md);
}
.slot-btn.selected {
  border-color: var(--blue);
  background: linear-gradient(135deg, var(--blue), var(--blue-light));
  box-shadow: 0 4px 14px rgba(37,99,235,.3);
}
.slot-btn--booked {
  opacity: .45;
  cursor: not-allowed;
  background: var(--gray-100);
}
.slot-btn--booked::after {
  content: '';
  position: absolute;
  top: 50%; left: 12px; right: 12px;
  height: 1.5px;
  background: var(--gray-400);
  transform: translateY(-50%) rotate(-6deg);
  border-radius: 2px;
}

.slot-time {
  font-size: 17px; font-weight: 700;
  color: var(--navy);
  font-variant-numeric: tabular-nums;
  transition: var(--transition);
}
.slot-label {
  font-size: 11px; font-weight: 500;
  color: var(--gray-400);
  text-transform: uppercase; letter-spacing: .8px;
  transition: var(--transition);
}
.slot-btn.selected .slot-time,
.slot-btn.selected .slot-label { color: var(--white); }

/* ══════════════════════════════════════════
   SLOT SUMMARY — indicador DATA / HORÁRIO
   ══════════════════════════════════════════ */
.slot-summary {
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  align-items: center;
  gap: 0;
  background: var(--gray-50);
  border-top: 1px solid var(--gray-100);
  border-bottom: 1px solid var(--gray-100);
  overflow: hidden;
  transition: var(--transition);
}

.slot-summary--active {
  background: rgba(37,99,235,.04);
  border-color: rgba(37,99,235,.15);
}

.slot-summary--error {
  background: rgba(239,68,68,.04);
  border-color: rgba(239,68,68,.25);
}

.slot-summary__col {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 4px;
  padding: 18px 20px;
}

.slot-summary__label {
  display: flex;
  align-items: center;
  gap: 5px;
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 2px;
  text-transform: uppercase;
  color: var(--gray-400);
  transition: var(--transition);
}

.slot-summary--active .slot-summary__label {
  color: var(--blue);
}

.slot-summary__value {
  font-family: var(--ff-display);
  font-size: 2rem;
  font-weight: 400;
  color: var(--gray-300);
  letter-spacing: 1px;
  line-height: 1;
  transition: var(--transition);
}

.slot-summary--active .slot-summary__value {
  color: var(--navy);
}

.slot-summary__sub {
  font-size: 12px;
  font-weight: 500;
  color: var(--gray-400);
  transition: var(--transition);
}

.slot-summary--active .slot-summary__sub {
  color: var(--blue);
}

.slot-summary__divider {
  width: 1px;
  height: 48px;
  background: var(--gray-200);
  flex-shrink: 0;
  transition: var(--transition);
}

.slot-summary--active .slot-summary__divider {
  background: rgba(37,99,235,.2);
}

.slot-summary--error .slot-summary__divider {
  background: rgba(239,68,68,.2);
}

/* ══════════════════════════════════════════
   FORM SECTION
   ══════════════════════════════════════════ */
.form-section__inner { max-width: 560px; margin: 40px auto 80px; }

.form-card {
  background: var(--white);
  border-radius: var(--radius-xl);
  box-shadow: var(--shadow-md);
  overflow: hidden;
  border: 1px solid var(--gray-200);
}

.form-card__header {
  background: var(--navy);
  padding: 28px 36px;
}
.form-card__header h3 {
  font-family: var(--ff-display);
  font-size: 1.5rem; font-weight: 400;
  color: var(--white);
  letter-spacing: 1px;
  text-transform: uppercase;
  margin-bottom: 4px;
}
.form-card__header p {
  font-size: 13px;
  color: rgba(255,255,255,.55);
}

.booking-form { padding: 36px; }

.form-group { margin-bottom: 18px; }
.form-group label:not(.radio-opt):not(.checkbox-opt) {
  display: block;
  font-size: 13px; font-weight: 600;
  color: var(--gray-700);
  margin-bottom: 8px;
  letter-spacing: .2px;
}
.optional { font-weight: 400; color: var(--gray-400); }
.req { color: #EF4444; font-weight: 700; }

.input-wrap { position: relative; }
.input-icon {
  position: absolute;
  left: 14px; top: 50%; transform: translateY(-50%);
  color: var(--gray-400);
  pointer-events: none;
}
.input-wrap:has(textarea) .input-icon { top: 16px; transform: none; }

.input-wrap input,
.input-wrap textarea,
.input-wrap select {
  width: 100%;
  padding: 13px 14px;
  font-family: var(--ff-body);
  font-size: 15px;
  color: var(--gray-800);
  background: var(--white);
  border: 1.5px solid var(--gray-200);
  border-radius: var(--radius-md);
  outline: none;
  transition: var(--transition);
  resize: none;
}
.input-wrap select {
  appearance: none;
  -webkit-appearance: none;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18' viewBox='0 0 24 24' fill='none' stroke='%239CA3AF' stroke-width='2'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 12px center;
  padding-right: 38px;
  cursor: pointer;
}
.input-wrap select:disabled { background-color: var(--gray-100); color: var(--gray-400); cursor: not-allowed; }
.input-wrap:has(.input-icon) input,
.input-wrap:has(.input-icon) textarea {
  padding-left: 44px;
}
.input-wrap input:focus,
.input-wrap textarea:focus {
  border-color: var(--blue);
  box-shadow: 0 0 0 3px rgba(37,99,235,.1);
}
.input-wrap input::placeholder,
.input-wrap textarea::placeholder { color: var(--gray-400); }
.input-wrap input.error,
.input-wrap textarea.error,
.input-wrap select.error { border-color: #EF4444; }

.input-toggle-pass {
  position: absolute;
  right: 10px; top: 50%; transform: translateY(-50%);
  display: flex; align-items: center; justify-content: center;
  width: 30px; height: 30px;
  padding: 0; margin: 0;
  background: none; border: none;
  color: var(--gray-400);
  cursor: pointer;
  line-height: 0;
  transition: var(--transition);
}
.input-toggle-pass:hover { color: var(--gray-600); }
.input-wrap:has(.input-toggle-pass) input { padding-right: 42px; }

.form-error {
  display: block;
  font-size: 12px; color: #EF4444;
  margin-top: 5px; min-height: 16px;
}

.form-privacy {
  display: flex; align-items: center; gap: 6px;
  font-size: 12px;
  color: var(--gray-400);
  text-align: center;
  margin-top: 18px;
  justify-content: center;
}

.spin { animation: spin .8s linear infinite; }
@keyframes spin { to { transform: rotate(360deg); } }

/* ══════════════════════════════════════════
   DIAGNÓSTICO
   ══════════════════════════════════════════ */
.diagnostic {
  padding: 40px 0 80px;
}

.diagnostic .diagnostic__inner {
  max-width: 640px;
  width: calc(100% - 48px);
  margin: 0 auto;
}

.diag-form {
  background: var(--white);
  border: 1px solid var(--gray-200);
  border-radius: var(--radius-xl);
  padding: 36px;
  box-shadow: var(--shadow-sm);
}

/* ══════════════════════════════════════════
   POLÍTICA DE PRIVACIDADE (tela)
   ══════════════════════════════════════════ */
.privacy {
  padding: 40px 0 80px;
}
.privacy .privacy__inner {
  max-width: 720px;
  width: calc(100% - 48px);
  margin: 0 auto;
}
.privacy__card {
  background: var(--white);
  border: 1px solid var(--gray-200);
  border-radius: var(--radius-xl);
  padding: 40px;
  box-shadow: var(--shadow-xl);
}
.privacy__card h1 {
  font-family: var(--ff-display);
  font-size: clamp(1.8rem, 4vw, 2.4rem);
  font-weight: 400;
  letter-spacing: 1px;
  text-transform: uppercase;
  color: var(--navy);
  margin-bottom: 6px;
}
.privacy__updated {
  font-size: 13px;
  color: var(--gray-400);
  margin-bottom: 28px;
}
.privacy__intro {
  font-size: 15px;
  line-height: 1.7;
  color: var(--gray-600);
  margin-bottom: 32px;
}
.privacy__card section { margin-bottom: 28px; }
.privacy__card section:last-of-type { margin-bottom: 0; }
.privacy__card h2 {
  font-family: var(--ff-body);
  font-size: 16px;
  font-weight: 700;
  color: var(--navy);
  margin-bottom: 10px;
}
.privacy__card ul { margin: 0; padding-left: 20px; }
.privacy__card p,
.privacy__card li {
  font-size: 14px;
  line-height: 1.7;
  color: var(--gray-600);
}
.privacy__card li + li { margin-top: 6px; }
.privacy__card a {
  color: var(--blue);
  font-weight: 600;
  text-decoration: underline;
  text-underline-offset: 2px;
}
.privacy__card a:hover { color: var(--blue-light); }
@media (max-width: 640px) {
  .privacy__card { padding: 28px 22px; }
}

.diag-block {
  padding-bottom: 24px;
  margin-bottom: 24px;
  border-bottom: 1px solid var(--gray-200);
}
.diag-block:last-of-type {
  border-bottom: none;
  padding-bottom: 8px;
  margin-bottom: 16px;
}

.diag-block__title {
  font-family: var(--ff-body);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 2px;
  text-transform: uppercase;
  color: var(--blue);
  margin-bottom: 20px;
}

/* Radio groups */
.radio-group {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.radio-opt {
  display: flex;
  flex-direction: row;
  align-items: center;
  gap: 14px;
  min-height: 48px;
  padding: 0 20px;
  background: var(--white);
  border: 1.5px solid var(--gray-200);
  border-radius: var(--radius-md);
  cursor: pointer;
  color: var(--gray-700);
  transition: var(--transition);
  user-select: none;
}
.radio-opt:hover {
  border-color: var(--gray-300);
  background: var(--gray-50);
}
.radio-opt input[type="radio"] {
  appearance: none;
  -webkit-appearance: none;
  width: 20px; height: 20px;
  min-width: 20px; min-height: 20px;
  box-sizing: border-box;
  border: 2px solid var(--gray-300);
  border-radius: 50%;
  cursor: pointer;
  flex-shrink: 0;
  margin: 0; padding: 0;
  position: static;
  transform: none;
  transition: var(--transition);
}
.radio-opt input[type="radio"]:checked {
  border-color: var(--blue);
  border-width: 6px;
}
.radio-opt span {
  font-size: 14px;
  font-weight: 500;
  line-height: 1;
  margin: 0; padding: 0;
  display: flex;
  align-items: center;
}
.radio-opt:has(input:checked) {
  border-color: var(--blue);
  background: rgba(37,99,235,.05);
  color: var(--navy);
}
.radio-group.error-group .radio-opt { border-color: #FCA5A5; }

/* Single-column layout for long radio options */
.radio-group--col {
  grid-template-columns: 1fr;
}

/* Checkbox groups */
.checkbox-group {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.checkbox-opt {
  display: flex;
  flex-direction: row;
  align-items: center;
  gap: 14px;
  min-height: 48px;
  padding: 0 20px;
  background: var(--white);
  border: 1.5px solid var(--gray-200);
  border-radius: var(--radius-md);
  cursor: pointer;
  color: var(--gray-700);
  transition: var(--transition);
  user-select: none;
}
.checkbox-opt:hover {
  border-color: var(--gray-300);
  background: var(--gray-50);
}
.checkbox-opt span {
  font-size: 14px;
  font-weight: 500;
  line-height: 1;
  margin: 0; padding: 0;
  display: flex;
  align-items: center;
}
.checkbox-opt input[type="checkbox"] {
  appearance: none;
  -webkit-appearance: none;
  width: 20px; height: 20px;
  min-width: 20px; min-height: 20px;
  box-sizing: border-box;
  border: 2px solid var(--gray-300);
  border-radius: 4px;
  cursor: pointer;
  flex-shrink: 0;
  margin: 0; padding: 0;
  position: static;
  transform: none;
  transition: var(--transition);
}
.checkbox-opt input[type="checkbox"]:checked {
  border-color: var(--blue);
  background-color: var(--blue);
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none'%3E%3Cpath d='M13.5 4.5l-7 7L3 8' stroke='white' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: center;
  background-size: 12px;
}
.checkbox-opt:has(input:checked) {
  border-color: var(--blue);
  background: rgba(37,99,235,.05);
  color: var(--navy);
}

/* Consentimento LGPD — texto longo, quebra em várias linhas.
   O layout flex/centralizado dos checkboxes curtos (uma linha só)
   não serve aqui: precisa alinhar o checkbox no topo e deixar o
   texto quebrar normalmente, sem virar item de flex-row. */
.checkbox-opt:has(#dConsentimento) {
  align-items: flex-start;
  min-height: 0;
  padding: 16px 20px;
}
.checkbox-opt:has(#dConsentimento) input[type="checkbox"] {
  margin-top: 2px;
}
.checkbox-opt:has(#dConsentimento) span {
  display: block;
  line-height: 1.5;
}
.checkbox-opt:has(#dConsentimento) span a {
  color: var(--blue);
  font-weight: 600;
  text-decoration: underline;
  text-underline-offset: 2px;
}
.checkbox-opt:has(#dConsentimento) span a:hover {
  color: var(--blue-light);
}

/* Optional section label */
.diag-optional {
  font-size: 10px;
  font-weight: 400;
  letter-spacing: 0.5px;
  text-transform: none;
  color: var(--gray-400);
  margin-left: 4px;
}

/* ══════════════════════════════════════════
   APRESENTAÇÃO DA MENTORIA
   ══════════════════════════════════════════ */

/* ── Scroll-reveal (spring easing do Remotion: cubic-bezier 0.16,1,0.3,1) ── */
.reveal {
  opacity: 0;
  transform: translateY(28px);
  transition:
    opacity 620ms cubic-bezier(0.16, 1, 0.3, 1) var(--delay, 0ms),
    transform 620ms cubic-bezier(0.16, 1, 0.3, 1) var(--delay, 0ms);
}
.reveal.visible { opacity: 1; transform: translateY(0); }
@media (prefers-reduced-motion: reduce) {
  .reveal { opacity: 1; transform: none; transition: none; }
}

/* ── Reveal refinado do corpo (blur-in; disparado via GSAP ScrollTrigger, ver app.js) ── */
.reveal-blur {
  opacity: 0;
  transform: translateY(30px);
  filter: blur(14px);
  transition:
    opacity 900ms cubic-bezier(0.16, 1, 0.3, 1),
    transform 900ms cubic-bezier(0.16, 1, 0.3, 1),
    filter 900ms cubic-bezier(0.16, 1, 0.3, 1);
  will-change: opacity, transform, filter;
}
.reveal-blur.visible { opacity: 1; transform: translateY(0); filter: blur(0); }
@media (prefers-reduced-motion: reduce) {
  .reveal-blur { opacity: 1 !important; transform: none !important; filter: none !important; transition: none !important; }
}

/* ── Hero ── */
.pres-hero {
  background: var(--navy);
  min-height: 100dvh;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 138px 0 56px;
  position: relative;
  overflow: hidden;
}

/* ── Animação contínua do hero: partículas de luz ── */
.pres-hero__ambient {
  position: absolute; inset: 0;
  z-index: 2;
  pointer-events: none;
  overflow: hidden;
}
.pres-hero__particle {
  position: absolute;
  bottom: 0; left: 0;
  width: 5px; height: 5px;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(96,165,250,.95), rgba(96,165,250,0) 70%);
  animation-name: heroParticleFloat;
  animation-timing-function: linear;
  animation-iteration-count: infinite;
}
@keyframes heroParticleFloat {
  0%   { transform: translateY(0) scale(1); opacity: 0; }
  12%  { opacity: .85; }
  90%  { opacity: .35; }
  100% { transform: translateY(-360px) scale(.5); opacity: 0; }
}
@media (prefers-reduced-motion: reduce) {
  .pres-hero__particle { animation: none; opacity: 0; }
}

.pres-hero__inner {
  position: relative;
  z-index: 3;
  width: 100%;
  padding-left: 120px;
  padding-right: 60px;
  text-align: left;
  display: grid;
  grid-template-columns: minmax(0, 520px) minmax(0, 1fr);
  align-items: center;
  gap: 32px;
}
.pres-hero__col { min-width: 0; }

/* ── Mockup em vídeo ao lado do hero — fundo do vídeo é a mesma cor sólida
   do hero (#0f192d), então o encontro é por igualdade de cor, sem precisar
   de máscara/degradê nas bordas ── */
.pres-hero__media {
  position: relative;
  aspect-ratio: 7 / 4;
  width: 100%;
}
.pres-hero__media-video {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
@media (max-width: 1100px) {
  .pres-hero__inner { grid-template-columns: 1fr; padding-left: 20px; padding-right: 20px; }
  .pres-hero__media { aspect-ratio: 4 / 3; max-width: 640px; margin: 24px auto 0; }
}

.back-link--light { color: rgba(255,255,255,.45); margin-right: 24px; }
.back-link--light:hover { color: var(--white); }

.pres-hero__tag { margin-bottom: 24px; }

.pres-hero__title {
  font-family: var(--ff-display);
  font-size: clamp(2.6rem, 5.5vw, 4.4rem);
  font-weight: 400;
  line-height: 1.06;
  letter-spacing: 1px;
  text-transform: uppercase;
  background: linear-gradient(
    135deg,
    #c8cdd4 0%,
    #ffffff 28%,
    #9ba4b0 50%,
    #f0f2f5 72%,
    #c0c7d0 100%
  );
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
  margin: 0 0 24px;
}
.pres-hero__sub {
  font-size: 18px;
  background: linear-gradient(
    135deg,
    #a8b0bc 0%,
    #dde2e8 40%,
    #8e97a4 65%,
    #cdd2d8 100%
  );
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
  line-height: 1.72;
  max-width: 520px;
  font-weight: 300;
}
.pres-hero__emphasis {
  font-family: var(--ff-body);
  font-size: clamp(1.1rem, 1.8vw, 1.35rem);
  font-weight: 600;
  margin-top: 20px;
  letter-spacing: 0.2px;
  text-transform: none;
  color: rgba(255,255,255,.88);
  border-left: 3px solid var(--blue-light);
  padding-left: 16px;
  line-height: 1.55;
  background: none;
  -webkit-text-fill-color: unset;
}

/* ── Corpo ── */
.pres-body { background: var(--gray-50); }
.pres-section { padding: 88px 0; }
.pres-section + .pres-section { border-top: 1px solid var(--gray-200); }

/* Padding lateral consistente em todas as seções — similar ao hero (120px) */
.pres-body .container { padding-left: 180px; padding-right: 180px; }

.pres-section__title {
  font-family: var(--ff-display);
  font-size: clamp(1.9rem, 3.2vw, 2.8rem);
  font-weight: 400;
  letter-spacing: 1px;
  text-transform: uppercase;
  color: var(--navy);
  margin-bottom: 32px;
  line-height: 1.1;
}
.pres-section__title--light { color: var(--white); }

/* ── Quem sou eu ── */
.pres-text { max-width: 640px; }
.pres-text p {
  font-size: 16px;
  line-height: 1.82;
  color: var(--gray-600);
  margin-bottom: 18px;
}
.pres-text p:last-child { margin-bottom: 0; }
.pres-text__highlight {
  font-family: var(--ff-display);
  font-size: 1.5rem !important;
  font-weight: 400;
  letter-spacing: 1px;
  text-transform: uppercase;
  color: var(--navy) !important;
  border-left: 3px solid var(--blue);
  padding: 4px 0 4px 20px;
  margin: 28px 0 !important;
  line-height: 1.35 !important;
}

/* ── Seção Quem sou eu ── */
.pres-section--who {
  padding: 80px 0;
  background: var(--navy);
  background-image: url('desing.system/fundos/background-3.png');
  background-size: cover;
  background-position: center;
  border-top: none;
  position: relative;
  overflow: hidden;
}
.pres-section--who::before {
  content: '';
  position: absolute; inset: 0;
  background: rgba(15,25,45,.90);
  pointer-events: none;
  z-index: 0;
}
.pres-section--who .pres-who__grid,
.pres-section--who .pres-section__title { position: relative; z-index: 1; }
.pres-section--who .pres-section__title { color: var(--white); }
.pres-section--who .pres-text p { color: var(--sky); }
.pres-section--who .pres-text__highlight {
  color: var(--white) !important;
  border-left-color: var(--blue-glow);
}
.pres-who__grid {
  display: grid;
  grid-template-columns: 1fr 400px;
  gap: 64px;
  align-items: center;
}
.pres-who__photo-col {
  display: flex;
  align-items: flex-end;
  justify-content: center;
}
.pres-photo { width: 100%; height: auto; display: block; }
.pres-achievements {
  display: flex; flex-wrap: wrap; gap: 8px;
  margin-top: 28px;
}
.pres-achievement {
  display: inline-flex; align-items: center; gap: 7px;
  font-size: 12px; font-weight: 600;
  color: var(--blue-glow);
  background: rgba(96,165,250,.10);
  border: 1px solid rgba(96,165,250,.28);
  border-radius: 100px;
  padding: 7px 14px;
  width: fit-content;
  letter-spacing: .2px;
}

/* ── Seção alt (O que é a mentoria) ── */
.pres-section--alt {
  background: var(--white);
  border-top: 1px solid var(--gray-200);
  border-bottom: 1px solid var(--gray-200);
}
.pres-section--alt + .pres-section { border-top: none; }

/* ── A plataforma por dentro ── */
.pres-section--platform {
  background: var(--navy);
  background-image: url('desing.system/fundos/background-6.png');
  background-size: cover;
  background-position: center;
  position: relative;
  overflow: hidden;
  padding: 96px 0;
}
.pres-section--platform::before {
  content: '';
  position: absolute; inset: 0;
  background: rgba(10, 18, 32, .90);
  pointer-events: none;
  z-index: 0;
}
.pres-section--platform .container { position: relative; z-index: 1; }
.pres-section--platform .pres-section__title { color: var(--white); }
.pres-platform__intro {
  color: var(--sky);
  font-size: 17px;
  max-width: 600px;
  margin: 0 0 52px;
  line-height: 1.65;
}
/* ── Carrossel horizontal de mockups ── */
.pres-mockup-showcase-wrap {
  width: 100vw;
  position: relative;
  left: 50%;
  transform: translateX(-50%);
  margin-top: 56px;
  margin-bottom: 8px;
}
.pres-mockup-showcase {
  overflow: hidden;
  padding: 40px 0;
  cursor: grab;
  user-select: none;
  position: relative;
}
.pres-mockup-showcase.is-dragging { cursor: grabbing; }
.pres-mockup-track {
  display: flex;
  gap: 28px;
  will-change: transform;
  transition: transform .42s cubic-bezier(.4, 0, .2, 1);
  opacity: 0;
}
.pres-mockup-track.no-anim { transition: none !important; }
.pres-mockup-track.ready { opacity: 1; transition: transform .42s cubic-bezier(.4, 0, .2, 1), opacity .25s; }
.pres-mockup-showcase__item {
  flex: 0 0 82vw;
  max-width: 1000px;
}
.pres-mockup-showcase__item img {
  display: block;
  width: 100%;
  height: auto;
  border-radius: 16px;
  border: 1px solid rgba(96, 165, 250, .18);
  box-shadow: 0 24px 80px rgba(0,0,0,.7), 0 0 0 1px rgba(255,255,255,.05);
  pointer-events: none;
  user-select: none;
}
.pres-mockup-showcase__label {
  margin: 16px 0 0;
  color: var(--sky);
  font-size: 12px;
  font-family: var(--ff-body);
  letter-spacing: .06em;
  text-transform: uppercase;
  text-align: center;
}
.pres-mockup-btn {
  position: absolute;
  top: 50%;
  transform: translateY(-60%);
  z-index: 10;
  width: 48px;
  height: 48px;
  border-radius: 50%;
  background: rgba(10, 20, 40, .82);
  border: 1px solid rgba(96, 165, 250, .3);
  color: var(--white);
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  backdrop-filter: blur(10px);
  transition: background .2s, border-color .2s, transform .2s;
}
.pres-mockup-btn:hover {
  background: var(--blue);
  border-color: var(--blue);
  transform: translateY(-60%) scale(1.08);
}
.pres-mockup-btn--prev { left: 20px; }
.pres-mockup-btn--next { right: 20px; }
@media (max-width: 720px) {
  .pres-mockup-btn { width: 38px; height: 38px; }
  .pres-mockup-btn--prev { left: 8px; }
  .pres-mockup-btn--next { right: 8px; }
}

.pres-mockup-dots {
  display: flex;
  justify-content: center;
  gap: 8px;
  margin-top: 4px;
}
.pres-mockup-dots__dot {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: rgba(96,165,250,.25);
  transition: background .25s, transform .25s;
}
.pres-mockup-dots__dot--active {
  background: var(--blue-glow);
  transform: scale(1.4);
}
@media (max-width: 720px) {
  .pres-mockup-showcase__item { flex: 0 0 90vw; }
  .pres-mockup-showcase { padding: 20px 5vw 32px; gap: 20px; }
}

.pres-lead {
  font-size: 19px;
  color: var(--gray-500);
  line-height: 1.65;
  max-width: 580px;
  font-weight: 300;
  margin-bottom: 6px;
}
.pres-lead--strong {
  font-family: var(--ff-display);
  font-size: clamp(1.7rem, 2.6vw, 2.2rem);
  font-weight: 400;
  color: var(--navy);
  margin-top: 6px;
  margin-bottom: 24px;
  max-width: 800px;
  letter-spacing: 1px;
  text-transform: uppercase;
}
.pres-intro {
  font-size: 15px;
  color: var(--gray-600);
  line-height: 1.8;
  max-width: 680px;
  margin-bottom: 40px;
}

/* ── Feature cards ── */
.pres-features {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 16px;
  margin-bottom: 36px;
}
.pres-feature {
  position: relative;
  background: var(--gray-50);
  border: 1px solid var(--gray-200);
  border-left: 3px solid transparent;
  border-radius: var(--radius-lg);
  padding: 28px 24px 28px 22px;
  transition:
    border-color 240ms ease,
    background 240ms ease,
    box-shadow 240ms ease,
    transform 360ms cubic-bezier(0.16, 1, 0.3, 1);
}
.pres-feature:hover {
  border-color: var(--blue);
  background: var(--white);
  box-shadow: 0 32px 90px rgba(37,99,235,.18), 0 0 0 1px rgba(59,130,246,.12);
  transform: translateY(-6px);
}
.pres-feature__num {
  position: absolute;
  top: 18px; right: 20px;
  font-family: var(--ff-display);
  font-size: 2.2rem;
  font-weight: 300;
  color: var(--gray-200);
  line-height: 1;
  letter-spacing: -1px;
  transition: color 240ms ease;
  user-select: none;
}
.pres-feature:hover .pres-feature__num { color: rgba(37,99,235,.12); }
.pres-feature__icon {
  width: 44px; height: 44px;
  background: rgba(37,99,235,.07);
  border: 1px solid rgba(37,99,235,.14);
  border-radius: var(--radius-md);
  display: flex; align-items: center; justify-content: center;
  color: var(--blue);
  margin-bottom: 16px;
  transition: background 240ms ease, border-color 240ms ease;
}
.pres-feature:hover .pres-feature__icon {
  background: rgba(37,99,235,.14);
  border-color: rgba(37,99,235,.28);
}
.pres-feature__title {
  font-size: 15px; font-weight: 700;
  color: var(--navy);
  margin-bottom: 10px;
  letter-spacing: -.1px;
}
.pres-feature__text {
  font-size: 14px;
  color: var(--gray-600);
  line-height: 1.72;
}
.pres-closing {
  font-size: 15px;
  color: var(--gray-700);
  line-height: 1.78;
  max-width: 100%;
  padding: 22px 28px;
  background: rgba(37,99,235,.04);
  border-left: 3px solid var(--blue);
  border-radius: 0 var(--radius-md) var(--radius-md) 0;
  font-style: italic;
  text-align: left;
}

/* ── Para quem é (dark) ── */
.pres-section--dark {
  background: var(--navy-mid);
  background-image: url('desing.system/fundos/background-5.png');
  background-size: cover;
  background-position: center center;
  background-repeat: no-repeat;
  border-top: none !important;
  position: relative;
  overflow: hidden;
  padding: 100px 0;
}
.pres-section--dark::before {
  content: '';
  position: absolute; inset: 0;
  background: rgba(12,21,36,.88);
  pointer-events: none;
  z-index: 0;
}
.pres-section--dark .pres-dark__inner,
.pres-section--dark .pres-dark__deco { z-index: 1; }
.pres-dark__inner { position: relative; z-index: 1; max-width: 820px; margin: 0 auto; text-align: center; }
.pres-dark__deco {
  position: absolute;
  top: -40px; left: -16px;
  font-family: var(--ff-display);
  font-size: 20rem;
  font-weight: 700;
  color: rgba(255,255,255,.022);
  line-height: 1;
  pointer-events: none;
  user-select: none;
}
.pres-dark__text {
  font-size: 18px;
  color: rgba(255,255,255,.70);
  line-height: 1.78;
  margin-bottom: 18px;
  font-weight: 300;
}
.pres-dark__text--muted { color: rgba(255,255,255,.40); font-size: 16px; }
.pres-dark__list {
  list-style: none;
  padding: 0; margin: 32px 0 0;
  display: flex; flex-direction: column; gap: 0;
  width: 100%;
  max-width: 680px;
}
.pres-dark__item {
  display: flex;
  align-items: flex-start;
  gap: 20px;
  padding: 28px 0;
  border-bottom: 1px solid rgba(192,199,213,.10);
  font-size: clamp(1.15rem, 2vw, 1.4rem);
  color: rgba(255,255,255,.85);
  line-height: 1.5;
  font-weight: 400;
  font-family: var(--ff-body);
}
.pres-dark__item:first-child { border-top: 1px solid rgba(192,199,213,.10); }
.pres-dark__cards {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  margin-left: auto;
  margin-right: auto;
  gap: 16px;
  margin-top: 40px;
  width: 100%;
  max-width: 760px;
}
.pres-dark__card {
  background: rgba(255,255,255,.04);
  border: 1px solid rgba(192,199,213,.12);
  text-align: left;
  border-radius: var(--radius-lg);
  padding: 32px 28px;
  display: flex;
  flex-direction: column;
  gap: 12px;
  transition: background 280ms ease, border-color 280ms ease, transform 280ms ease;
}
.pres-dark__card:hover {
  background: rgba(96,165,250,.07);
  border-color: rgba(96,165,250,.28);
  transform: translateY(-4px);
}
.pres-dark__item-title {
  display: block;
  font-size: clamp(1rem, 1.6vw, 1.2rem);
  font-weight: 700;
  color: var(--white);
  margin-bottom: 6px;
  font-family: var(--ff-body);
}
.pres-dark__item-desc {
  font-size: clamp(.9rem, 1.4vw, 1rem);
  color: rgba(255,255,255,.60);
  line-height: 1.6;
  font-weight: 300;
  margin: 0;
}
.pres-dark__not-for {
  margin-top: 52px;
  padding: 36px 40px;
  border: 1px solid rgba(239,68,68,.20);
  border-radius: var(--radius-lg);
  background: rgba(239,68,68,.05);
  max-width: 680px;
}
.pres-dark__not-title {
  font-family: var(--ff-display);
  font-size: clamp(1rem, 1.8vw, 1.3rem);
  font-weight: 400;
  letter-spacing: 1px;
  text-transform: uppercase;
  color: rgba(239,68,68,.80);
  margin-bottom: 20px;
}
.pres-dark__not-list {
  list-style: none;
  padding: 0; margin: 0;
  display: flex; flex-direction: column; gap: 12px;
}
.pres-dark__not-list li {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  font-size: clamp(.95rem, 1.5vw, 1.05rem);
  color: rgba(255,255,255,.55);
  font-weight: 300;
  line-height: 1.5;
}
.pres-dark__x {
  color: rgba(239,68,68,.70);
  font-size: 1.2rem;
  font-weight: 700;
  flex-shrink: 0;
  line-height: 1.4;
}
.pres-dark__arrow {
  font-size: clamp(1.4rem, 2.4vw, 1.8rem);
  color: var(--blue-glow);
  font-weight: 700;
  line-height: 1.4;
  flex-shrink: 0;
  animation: goldPulse 1.4s cubic-bezier(.4,0,.6,1) infinite;
}
.pres-dark__divider {
  width: 40px; height: 2px;
  background: var(--blue);
  border-radius: 2px;
  margin: 32px 0;
}
.pres-dark__cta-line {
  font-family: var(--ff-display);
  font-size: clamp(1.5rem, 2.6vw, 2.1rem);
  font-weight: 400;
  color: var(--white);
  max-width: 580px;
  line-height: 1.38;
  letter-spacing: 1px;
  text-transform: uppercase;
}

/* ── CTA ── */
/* ── CTA intermediária (após "Para quem é") ── */
.pres-dark__midcta { margin-top: 44px; }

/* ── Depoimentos (prints reais de WhatsApp) ── */
.pres-testimonials__grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 340px));
  justify-content: center;
  gap: 28px;
  margin-top: 12px;
}
.pres-testimonial-img {
  border-radius: var(--radius-lg);
  overflow: hidden;
  box-shadow: var(--shadow-md);
  border: 1px solid var(--gray-200);
  line-height: 0;
}
.pres-testimonial-img img {
  display: block;
  width: 100%;
  height: auto;
}
@media (max-width: 860px) {
  .pres-testimonials__grid { grid-template-columns: minmax(0, 340px); }
}

/* ── FAQ ── */
.pres-faq {
  text-align: center;
}
.pres-faq__list {
  max-width: 760px;
  margin: 0 auto;
  display: flex;
  flex-direction: column;
  gap: 12px;
  text-align: left;
}
.pres-faq__item {
  border: 1px solid var(--gray-200);
  border-radius: var(--radius-md);
  padding: 18px 22px;
  background: var(--white);
}
.pres-faq__item summary {
  font-family: var(--ff-body);
  font-size: 16px;
  font-weight: 600;
  color: var(--navy);
  cursor: pointer;
  list-style: none;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}
.pres-faq__item summary::-webkit-details-marker { display: none; }
.pres-faq__item summary::after {
  content: '';
  flex-shrink: 0;
  width: 10px; height: 10px;
  border-right: 2px solid var(--blue);
  border-bottom: 2px solid var(--blue);
  transform: rotate(45deg);
  transition: transform .2s;
}
.pres-faq__item[open] summary::after { transform: rotate(-135deg); }
.pres-faq__item p {
  font-size: 15px;
  line-height: 1.7;
  color: var(--gray-600);
  margin-top: 14px;
}

.pres-cta {
  text-align: center;
  border-top: none !important;
  background: var(--navy);
  background-image: url('desing.system/fundos/background-8.png');
  background-size: cover;
  background-position: center;
  position: relative;
  overflow: hidden;
}
.pres-cta::before {
  content: '';
  position: absolute; inset: 0;
  background: rgba(15,25,45,.88);
  pointer-events: none;
  z-index: 0;
}
.pres-cta .container { position: relative; z-index: 1; }
.pres-cta__title {
  font-family: var(--ff-display);
  font-size: clamp(2rem, 3.5vw, 3rem);
  font-weight: 400;
  letter-spacing: 1px;
  text-transform: uppercase;
  color: var(--white);
  margin: 14px 0 12px;
  line-height: 1.08;
}
.pres-cta__sub {
  font-size: 16px;
  color: var(--sky);
  max-width: 420px;
  margin: 0 auto 36px;
  line-height: 1.72;
  font-weight: 300;
}
.pres-cta__btn {
  font-size: 19px;
  padding: 22px 56px;
  gap: 12px;
}
.pres-cta__btn .btn-arrow {
  width: 22px; height: 22px;
  flex-shrink: 0;
}
@media (max-width: 640px) {
  .pres-cta__btn .btn-arrow { width: 26px; height: 26px; }
}
.pres-cta__btn {
  background: linear-gradient(135deg, var(--navy-light) 0%, var(--blue) 100%);
  box-shadow: 0 12px 40px rgba(37,99,235,.40);
  border-radius: var(--radius-sm);
}
.pres-cta__btn:hover {
  transform: translateY(-4px);
  box-shadow: 0 0 56px rgba(37,99,235,.65);
}

/* ── Moldura de exclusividade + shimmer do CTA final ── */
.pres-cta__frame {
  display: inline-flex;
  flex-direction: column;
  align-items: center;
  gap: 16px;
  border: 1px solid rgba(96,165,250,.22);
  border-radius: 20px;
  padding: 26px 32px;
  animation: ctaFrameBreathe 3.2s ease-in-out infinite;
}
@keyframes ctaFrameBreathe {
  0%, 100% { border-color: rgba(96,165,250,.18); }
  50%      { border-color: rgba(96,165,250,.55); }
}
.pres-cta__slots {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .6px;
  text-transform: uppercase;
  color: var(--blue-glow);
}
.pres-cta__slots-dot {
  width: 6px; height: 6px;
  border-radius: 50%;
  background: var(--blue-glow);
  flex-shrink: 0;
  animation: ctaDotBlink 1.6s ease-in-out infinite;
}
@keyframes ctaDotBlink {
  0%, 100% { opacity: .35; }
  50%      { opacity: 1; }
}
.pres-cta__btn--shimmer {
  position: relative;
  overflow: hidden;
}
.pres-cta__btn--shimmer::after {
  content: '';
  position: absolute;
  top: 0; left: -60%;
  width: 40%; height: 100%;
  background: linear-gradient(120deg, transparent, rgba(255,255,255,.35), transparent);
  animation: ctaShimmerSweep 3.4s ease-in-out infinite;
}
@keyframes ctaShimmerSweep {
  0%   { left: -60%; }
  55%  { left: 120%; }
  100% { left: 120%; }
}
@media (max-width: 640px) {
  .pres-cta__frame { width: 100%; padding: 20px 18px; }
}
@media (prefers-reduced-motion: reduce) {
  .pres-cta__frame { animation: none; }
  .pres-cta__slots-dot { animation: none; opacity: .8; }
  .pres-cta__btn--shimmer::after { animation: none; display: none; }
}

/* ── Responsive ── */
@media (max-width: 860px) {
  .pres-who__grid { grid-template-columns: 1fr; gap: 40px; }
  .pres-who__photo-col { max-width: 300px; margin: 0 auto; }
  .pres-section { padding: 64px 0; }
  .pres-body .container { padding-left: 40px; padding-right: 40px; }
}
/* ── Score Cards ── */
.score-cards__heading {
  margin: 40px 0 14px;
  font-size: 15px;
  font-weight: 700;
  letter-spacing: 2px;
  text-transform: uppercase;
  color: var(--sky);
  opacity: .85;
}
.score-cards {
  display: flex;
  gap: 14px;
  margin-top: 52px;
}
.score-card {
  position: relative;
  flex: 1;
  background: rgba(255,255,255,.05);
  border: 1px solid rgba(96,165,250,.18);
  border-radius: 16px;
  padding: 24px 16px 22px;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
}
.score-card__badge {
  font-size: 9px;
  font-weight: 700;
  letter-spacing: 1.5px;
  text-transform: uppercase;
  color: var(--blue-glow);
  background: rgba(96,165,250,.14);
  border: 1px solid rgba(96,165,250,.3);
  border-radius: 100px;
  padding: 3px 9px;
  margin-bottom: 16px;
  flex-shrink: 0;
}
.score-card__value {
  display: block;
  font-family: var(--ff-display);
  font-size: clamp(1.9rem, 3.8vw, 3rem);
  color: var(--white);
  line-height: 1;
  letter-spacing: -1px;
  margin-bottom: 10px;
  flex: 1;
  display: flex;
  align-items: center;
}
.score-card__label {
  display: block;
  font-size: 11px;
  font-weight: 600;
  letter-spacing: .8px;
  text-transform: uppercase;
  color: var(--sky);
  opacity: .65;
  flex-shrink: 0;
}
.score-card--highlight {
  border-color: rgba(96,165,250,.5);
  background: rgba(37,99,235,.12);
  box-shadow: 0 0 32px rgba(96,165,250,.10), inset 0 1px 0 rgba(255,255,255,.07);
}
.score-card--highlight .score-card__value { color: var(--blue-glow); }
.score-card--highlight .score-card__label { opacity: 1; }
.score-card__shimmer {
  position: absolute;
  inset: 0;
  background: linear-gradient(
    105deg,
    transparent 35%,
    rgba(96,165,250,.07) 50%,
    transparent 65%
  );
  background-size: 250% 100%;
  animation: scoreShimmer 3s ease-in-out infinite;
  pointer-events: none;
}
@keyframes scoreShimmer {
  0%   { background-position: 250% center; }
  100% { background-position: -250% center; }
}

@media (max-width: 640px) {
  .pres-hero { padding: 108px 0 72px; }
  .pres-hero__inner { padding-left: 20px; padding-right: 20px; }
  .pres-body .container { padding-left: 20px; padding-right: 20px; }
  .pres-section { padding: 48px 0; }
  .pres-features { grid-template-columns: 1fr; }
  .pres-dark__cards { grid-template-columns: 1fr; }
  .pres-cta__btn { width: 100%; justify-content: center; }
  .pres-who__photo-col { max-width: 260px; }
  .pres-text { max-width: 100%; }
  .pres-dark__deco { font-size: 10rem; }
  .score-cards { gap: 10px; }
  .score-card { padding: 20px 16px 18px; }
  .score-card__value { font-size: 2rem; flex: none; margin-bottom: 8px; }
  .score-card__badge { margin-bottom: 12px; }
  .pres-lead { max-width: 100%; }
  .pres-intro { max-width: 100%; }
  .pres-closing { max-width: 100%; }
  .pres-lead--strong {
    font-size: 0.92rem;
    letter-spacing: 0.3px;
    line-height: 1.4;
  }
}

/* ══════════════════════════════════════════
   MODAL
   ══════════════════════════════════════════ */
.modal-overlay {
  position: fixed; inset: 0;
  background: rgba(15,25,45,.6);
  backdrop-filter: blur(6px);
  z-index: 200;
  display: flex; align-items: center; justify-content: center;
  padding: 24px;
  animation: overlayIn .25s ease;
}
@keyframes overlayIn { from { opacity: 0; } to { opacity: 1; } }

.modal {
  background: var(--white);
  border-radius: var(--radius-xl);
  padding: 44px 36px;
  max-width: 440px; width: 100%;
  text-align: center;
  box-shadow: var(--shadow-xl);
  animation: modalIn .35s cubic-bezier(.34,1.56,.64,1) both;
}
@keyframes modalIn {
  from { opacity: 0; transform: scale(.9) translateY(16px); }
  to   { opacity: 1; transform: scale(1) translateY(0); }
}

.modal__icon {
  width: 68px; height: 68px;
  border-radius: 50%;
  background: linear-gradient(135deg, #22C55E, #16A34A);
  display: flex; align-items: center; justify-content: center;
  margin: 0 auto 20px;
  color: var(--white);
  box-shadow: 0 8px 20px rgba(34,197,94,.3);
}

.modal__title {
  font-family: var(--ff-display);
  font-size: 1.8rem; font-weight: 400;
  color: var(--navy);
  letter-spacing: 1px;
  text-transform: uppercase;
  margin-bottom: 10px;
}
.modal__body {
  font-size: 15px; color: var(--gray-600);
  line-height: 1.6;
  margin-bottom: 22px;
}
.modal__whatsapp {
  display: flex; align-items: center; justify-content: center; gap: 8px;
  background: #F0FDF4;
  border: 1px solid #BBF7D0;
  border-radius: var(--radius-md);
  padding: 12px;
  font-size: 13px; font-weight: 500;
  color: #166534;
  margin-bottom: 22px;
}
.modal__btn { width: 100%; justify-content: center; }

/* ══════════════════════════════════════════
   FOOTER
   ══════════════════════════════════════════ */
.footer {
  background: var(--navy);
  background-image: url('desing.system/fundos/background-6.png');
  background-size: cover;
  background-position: center center;
  background-repeat: no-repeat;
  padding: 32px 0;
  margin-top: auto;
  border-top: 1px solid rgba(255,255,255,.05);
  position: relative;
  overflow: hidden;
}
.footer::before {
  content: '';
  position: absolute; inset: 0;
  background: rgba(15,25,45,.92);
  pointer-events: none;
  z-index: 0;
}
.footer__inner { position: relative; z-index: 1; }
.footer__inner {
  display: flex; align-items: center; justify-content: space-between;
  flex-wrap: wrap; gap: 16px;
  margin-left: 0;
  max-width: none;
  padding-left: 56px;
}
.footer__copy {
  font-size: 12px; color: rgba(255,255,255,.4);
}
.footer__social {
  display: flex;
  align-items: center;
  gap: 12px;
  position: absolute;
  left: 50%;
  transform: translateX(-50%);
}
.footer__social-link {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 8px 14px;
  border-radius: var(--radius-sm);
  border: 1px solid rgba(255,255,255,.12);
  color: rgba(255,255,255,.50);
  font-size: 13px;
  font-weight: 500;
  transition: var(--transition);
}
.footer__social-link:hover {
  color: var(--white);
  border-color: rgba(255,255,255,.30);
  background: rgba(255,255,255,.08);
}
.logo--light .logo__text { color: rgba(255,255,255,.7); }
.logo--light .logo__text strong { color: var(--white); }

/* ══════════════════════════════════════════
   RESPONSIVE
   ══════════════════════════════════════════ */
@media (max-width: 640px) {
  .logo__mark-img { height: 44px; }
  .nav { gap: 6px; }
  .logo--light .logo__full-img { height: 44px; }
  .header { padding-top: 12px; }
  .header__inner { height: 64px; padding: 0 14px; border-radius: 16px; }
  .header .logo--light .logo__full-img { height: 28px; }
  .header .nav__link--ghost,
  .header .nav__link--cta { padding: 8px 12px; font-size: 12.5px; gap: 5px; }
  .header .nav__link--ghost svg,
  .header .nav__link--cta svg { width: 14px; height: 14px; }
  .scheduling { padding: 48px 0 32px; }
  .week-btn { padding: 8px 16px; min-width: 80px; }
  .week-nav__sep { display: none; }
  /* Sinaliza que há mais dias fora da tela (fade + espaço extra no fim) */
  .week-nav {
    mask-image: linear-gradient(to right, black calc(100% - 28px), transparent 100%);
    -webkit-mask-image: linear-gradient(to right, black calc(100% - 28px), transparent 100%);
    padding-right: 12px;
    scroll-snap-type: x proximity;
  }
  .week-btn { scroll-snap-align: start; }
  .form-card__header { padding: 24px; }
  .booking-form { padding: 24px; }
  .auth__card { padding: 28px 24px; }
  .diag-form { padding: 24px; }
  .slots-grid .slot-btn { flex: 0 0 90px; }
  .radio-group { grid-template-columns: 1fr 1fr; }
  .radio-group--col { grid-template-columns: 1fr; }
  .checkbox-group { grid-template-columns: 1fr 1fr; }
  .footer__inner { justify-content: center; text-align: center; flex-direction: column; align-items: center; }
  .footer__social { position: static; transform: none; }
}

/* Telas bem estreitas: mantém a logo completa (só bem menor) e encurta o
   texto do CTA, pra tudo caber numa linha só no header */
@media (max-width: 430px) {
  .header__inner { padding: 0 10px; }
  .header .logo { margin-left: 6px; }
  .nav { gap: 4px; }
  .header .logo--light .logo__full-img { height: 24px; }
  .nav__link--cta-full { display: none; }
  .nav__link--cta-short { display: inline; }
  .header .nav__link--ghost,
  .header .nav__link--cta { padding: 7px 10px; font-size: 11.5px; gap: 4px; }
}

@media (max-width: 400px) {
  .radio-group { grid-template-columns: 1fr; }
  .checkbox-group { grid-template-columns: 1fr; }
}

/* ══════════════════════════════════════════
   AVISO: FALAR COM O MENTOR NO WHATSAPP
   ══════════════════════════════════════════ */
.wa-help {
  max-width: 640px;
  margin: 0 auto 28px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  flex-wrap: wrap;
  background: var(--gray-50);
  border: 1px solid var(--gray-200);
  border-radius: var(--radius-md);
  padding: 14px 18px;
}
.wa-help__text {
  display: flex;
  align-items: center;
  gap: 10px;
  color: var(--gray-500);
  font-size: 13.5px;
  line-height: 1.5;
  flex: 1;
  min-width: 220px;
}
.wa-help__text svg { flex-shrink: 0; color: var(--blue); }
.wa-help__btn {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  background: #25D366;
  color: #fff;
  font-size: 13.5px;
  font-weight: 700;
  padding: 10px 16px;
  border-radius: var(--radius-md);
  white-space: nowrap;
  transition: transform .15s ease, box-shadow .15s ease;
}
.wa-help__btn:hover { transform: translateY(-1px); box-shadow: var(--shadow-md); }

/* ══════════════════════════════════════════
   MEUS AGENDAMENTOS
   ══════════════════════════════════════════ */
.my-bookings { margin-bottom: 8px; }

.booking-item {
  display: flex; align-items: center; justify-content: space-between;
  background: var(--white);
  border: 1px solid var(--gray-200);
  border-radius: var(--radius-md);
  padding: 14px 18px;
  margin-bottom: 10px;
  gap: 12px;
  box-shadow: var(--shadow-sm);
}
.booking-item__info {
  display: flex; align-items: center; gap: 10px;
  font-size: 14px; color: var(--gray-700);
}
.booking-item__info svg { color: var(--blue); flex-shrink: 0; }

.booking-item__cancel-btn {
  flex-shrink: 0;
  padding: 6px 14px;
  border-radius: var(--radius-sm);
  border: 1px solid #FCA5A5;
  background: #FFF5F5;
  color: #DC2626;
  font-size: 13px; font-weight: 500;
  cursor: pointer;
  font-family: var(--ff-body);
  transition: var(--transition);
}
.booking-item__cancel-btn:hover {
  background: #FEE2E2;
  border-color: #DC2626;
}
.booking-item__no-cancel {
  font-size: 12px; color: var(--gray-400); flex-shrink: 0;
}

/* ══════════════════════════════════════════
   MODAL — variantes
   ══════════════════════════════════════════ */
.modal__icon--warn {
  background: #FFF5F5;
  color: #DC2626;
}
.modal__actions {
  display: flex; flex-direction: column; gap: 10px; width: 100%;
}
.modal__actions .btn { width: 100%; justify-content: center; }

.btn--ghost {
  background: transparent;
  border: 1px solid var(--gray-300);
  color: var(--gray-600);
}
.btn--ghost:hover { border-color: var(--gray-400); background: var(--gray-100); }

.btn--google {
  width: 100%;
  justify-content: center;
  background: var(--white);
  border: 1.5px solid var(--gray-200);
  color: var(--gray-700);
}
.btn--google:hover { border-color: var(--gray-300); background: var(--gray-100); }

.auth__divider {
  display: flex; align-items: center; gap: 12px;
  margin: 18px 0;
  color: var(--gray-400);
  font-size: 13px;
}
.auth__divider::before,
.auth__divider::after {
  content: ''; flex: 1; height: 1px; background: var(--gray-200);
}

.form-note {
  font-size: 12px;
  color: var(--gray-400);
  margin-top: 6px;
  line-height: 1.4;
}

.cadastro-google-resumo {
  display: flex; align-items: center; gap: 8px;
  padding: 12px 14px;
  margin-bottom: 18px;
  border-radius: var(--radius-md);
  background: rgba(34,197,94,.08);
  border: 1px solid rgba(34,197,94,.25);
  color: #15803D;
  font-size: 13.5px;
}
.cadastro-google-resumo svg { flex-shrink: 0; }

.btn--danger {
  background: #DC2626;
  color: var(--white);
}

/* ══════════════════════════════════════════
   PLATAFORMA DO ALUNO — Layout base
   ══════════════════════════════════════════ */

/* Oculta o footer na plataforma (desktop e mobile). O header não precisa de
   regra aqui: ele já nasce com "hidden" no HTML e showScreen() (app.js)
   decide quando reaparece — evita o antigo flash da marca errada no refresh. */
body.plat-active .footer {
  display: none;
}

/* Bloqueia scroll do body na plataforma — só .plat-main rola */
body.plat-active {
  overflow: hidden;
}

#schedulingScreen {
  background: var(--gray-50);
  padding: 0;
  display: flex;
  flex-direction: row;
  height: 100vh;
  overflow: hidden;
  align-items: stretch;
}

/* ── Wordmark placeholder da Prime Caverna (PLANEJAMENTO_PRIME_CAVERNA.md, Fase B) ──
   Provisório até o Felipe mandar o logo definitivo (fundo verde) — troca por <img> depois,
   sem precisar mexer em mais nada (os ids/classes que o apontam continuam os mesmos). */
.caverna-wordmark {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-family: 'Anton', sans-serif;
  font-size: 20px;
  letter-spacing: 0.02em;
  color: var(--white);
  line-height: 1;
  white-space: nowrap;
}
.caverna-wordmark b { color: var(--blue-glow); font-weight: inherit; }
.caverna-wordmark__dot {
  width: 10px;
  height: 10px;
  border-radius: 3px;
  background: #22C55E; /* placeholder verde — sinaliza onde o logo real vai entrar */
  flex-shrink: 0;
}
.caverna-wordmark--mobile { font-size: 16px; }
.caverna-wordmark--auth {
  font-size: 32px;
  justify-content: center;
}
.caverna-wordmark--auth .caverna-wordmark__dot { width: 14px; height: 14px; border-radius: 4px; }

/* ── Mobile header ── */
.plat-mobile-header {
  display: none;
  align-items: center;
  justify-content: space-between;
  padding: 0 1rem;
  height: 56px;
  background: #0c1524;
  border-bottom: 1px solid rgba(192,199,213,0.10);
  flex-shrink: 0;
  position: relative;
  z-index: 10;
}

.plat-mobile-header__logo {
  height: 28px;
  width: auto;
  object-fit: contain;
}

.plat-mobile-header__burger {
  color: #8b95ae;
  background: none;
  border: none;
  cursor: pointer;
  padding: 6px;
  border-radius: 6px;
  line-height: 0;
  transition: color 0.15s, background 0.15s;
}

.plat-mobile-header__burger:hover {
  color: #fff;
  background: rgba(255,255,255,0.08);
}

/* ── Botão recolher sidebar (desktop only) ── */
.plat-sidebar__collapse-btn {
  display: none; /* ativado apenas no desktop via media query abaixo */
  align-items: center;
  justify-content: center;
  width: 28px;
  height: 28px;
  border-radius: 8px;
  background: rgba(255,255,255,0.05);
  border: 1px solid rgba(192,199,213,0.12);
  color: #8b95ae;
  cursor: pointer;
  flex-shrink: 0;
  transition: background 0.15s, color 0.15s;
}
.plat-sidebar__collapse-btn:hover {
  background: rgba(255,255,255,0.1);
  color: #fff;
}
.plat-sidebar__collapse-btn .sb-collapse-icon {
  transition: transform 0.22s;
}
/* Seta vira para direita quando colapsado */
.plat-sidebar--collapsed .plat-sidebar__collapse-btn .sb-collapse-icon {
  transform: rotate(180deg);
}

/* ── Botão fechar (X) — visível só no drawer mobile ── */
.plat-sidebar__close {
  display: none;
  align-items: center;
  justify-content: center;
  color: #8b95ae;
  background: none;
  border: none;
  cursor: pointer;
  padding: 4px;
  border-radius: 6px;
  flex-shrink: 0;
  transition: color 0.15s;
}

.plat-sidebar__close:hover {
  color: #fff;
}

/* ── Overlay escuro do drawer ── */
.plat-drawer-overlay {
  display: none;
  position: fixed;
  inset: 0;
  background: rgba(0,0,0,0.55);
  z-index: 99;
  backdrop-filter: blur(2px);
  -webkit-backdrop-filter: blur(2px);
}

/* ── Sidebar — CSS controla tudo; sem depender de Tailwind sticky ── */
.plat-sidebar {
  width: 240px;
  flex-shrink: 0;
  background: #0c1524;
  border-right: 1px solid rgba(192,199,213,0.10);
  display: flex;
  flex-direction: column;
  height: 100%;
  overflow: hidden;
  transition: width 0.22s cubic-bezier(0.4,0,0.2,1);
}

/* ── Nav ── */
.plat-nav {
  display: flex;
  flex-direction: column;
  gap: 2px;
  padding: 0.75rem;
  min-height: 0;
}

/* ── Botão Sair ── */
.plat-sidebar__logout-btn {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 9px 12px;
  border-radius: 8px;
  font-size: 13px;
  font-weight: 500;
  color: #8b95ae;
  background: none;
  border: none;
  cursor: pointer;
  text-align: left;
  transition: all 0.15s;
  width: 100%;
}
.plat-sidebar__logout-btn:hover {
  background: rgba(239,68,68,0.08);
  color: #f87171;
}

/* ── Oculta scrollbar dentro da sidebar ── */
.no-scrollbar::-webkit-scrollbar { display: none; }
.no-scrollbar { -ms-overflow-style: none; scrollbar-width: none; }

.plat-nav__item {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 9px 12px;
  border-radius: 8px;
  font-size: 13px;
  font-weight: 500;
  color: #8b95ae;
  background: none;
  border: none;
  cursor: pointer;
  text-align: left;
  transition: all 0.15s;
  width: 100%;
}

.plat-nav__item:hover {
  background: rgba(37,99,235,0.08);
  color: #93c5fd;
}

.plat-nav__item--active {
  background: rgba(37,99,235,0.12);
  color: #60a5fa;
  border: 1px solid rgba(37,99,235,0.35);
}

.plat-nav__item--soon {
  opacity: 0.4;
  cursor: not-allowed;
}

.plat-nav__item--soon:hover {
  background: none;
  color: #8b95ae;
}

.plat-nav__soon-badge {
  margin-left: auto;
  font-size: 9px;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: #4b5672;
  flex-shrink: 0;
}

.plat-bottom-nav__item--soon {
  opacity: 0.35;
  cursor: not-allowed;
}

/* ── Freemium: painéis que exigem Plataforma paga ou Mentoria ── */
.plat-nav__item--locked {
  opacity: 0.55;
}
.plat-nav__item--locked:hover {
  opacity: 0.85;
}
.plat-nav__lock-badge {
  margin-left: auto;
  flex-shrink: 0;
  display: inline-flex;
  color: #4b5672;
}
.plat-nav__lock-badge svg { display: block; }

/* ── Modal de upsell (painel bloqueado) ── */
.upsell-modal .modal__icon {
  background: rgba(37,99,235,0.12);
  color: #2563EB;
}
.upsell-modal .modal__actions { flex-direction: column; }

/* ── Sidebar footer ── */
.plat-sidebar__footer {
  padding: 0.75rem 1rem;
  border-top: 1px solid rgba(192,199,213,0.10);
  background: #0c1524;
}

.plat-user {
  display: flex;
  align-items: center;
  gap: 10px;
}

.plat-user__avatar {
  width: 30px;
  height: 30px;
  border-radius: 50%;
  background: rgba(37,99,235,0.15);
  border: 1px solid rgba(37,99,235,0.35);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 12px;
  font-weight: 700;
  color: #60a5fa;
  flex-shrink: 0;
}

.plat-user__info {
  display: flex;
  flex-direction: column;
  min-width: 0;
}

.plat-user__email {
  font-size: 11px;
  color: #8b95ae;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

/* ── Main content area — único elemento que rola ── */
.plat-main {
  flex: 1;
  min-width: 0;
  height: 100%;
  overflow-y: auto;
  background: var(--gray-50);
}

.plat-panel {
  padding: 2rem;
  max-width: 1100px;
  margin: 0 auto;
}

/* ══════════════════════════════════════════
   TEMA CLARO / ESCURO — escopado à plataforma do aluno
   A sidebar já é navy (#0c1524) nos dois modos; o dark mode
   só inverte os tokens do conteúdo principal (.plat-main).
   ══════════════════════════════════════════ */

/* Botão de alternância (vive na sidebar, sempre escura) */
.plat-theme-toggle {
  width: 100%;
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 9px 12px;
  border-radius: 8px;
  background: rgba(255, 255, 255, 0.04);
  border: 1px solid rgba(192, 199, 213, 0.12);
  color: #cbd5e1;
  font-family: var(--ff-body);
  font-size: 13px;
  font-weight: 600;
  cursor: pointer;
  transition: background .15s, color .15s, border-color .15s;
}
.plat-theme-toggle:hover {
  background: rgba(37, 99, 235, 0.10);
  color: #93c5fd;
  border-color: rgba(37, 99, 235, 0.30);
}
.plat-theme-toggle__ic { flex-shrink: 0; }
.plat-theme-toggle__ic--sun { display: none; }
body.plat-dark .plat-theme-toggle__ic--moon { display: none; }
body.plat-dark .plat-theme-toggle__ic--sun  { display: inline; }

/* Tokens do modo escuro — só dentro da plataforma do aluno */
body.plat-dark #schedulingScreen {
  --white:    #1b2436;
  --gray-50:  #0f1729;
  --gray-100: #233048;
  --gray-200: #2e3c57;
  --gray-300: #3b4b6b;
  --gray-400: #8fa6c0;
  --gray-500: #b6c1d4;
  --gray-600: #cbd5e1;
  --gray-700: #e2e8f0;
  --gray-800: #f1f5f9;
  --navy:     #eaf0fe;
  --border:   rgba(192, 199, 213, .14);
  --shadow-sm: 0 1px 3px rgba(0, 0, 0, .40);
  --shadow-md: 0 6px 18px rgba(0, 0, 0, .45);
  --shadow-lg: 0 20px 50px rgba(0, 0, 0, .55);
  --shadow-xl: 0 28px 70px rgba(0, 0, 0, .65);
}
#schedulingScreen .plat-main { transition: background-color .25s ease; }
/* Único fundo branco hardcoded no conteúdo → segue o token no escuro */
body.plat-dark #schedulingScreen .crono-day-chip { background: var(--white); }

/* ── Dark mode: fixes de componentes com cores fora dos tokens ── */

/* btn--submit: texto precisa ser branco fixo (não var(--white) que vira escuro) */
body.plat-dark #schedulingScreen .btn--submit { color: #ffffff; }
body.plat-dark #schedulingScreen .btn--submit svg { color: #ffffff; }

/* form-card header (agendamento): navy vira claro, manter header escuro */
body.plat-dark #schedulingScreen .form-card__header {
  background: #162234;
}
body.plat-dark #schedulingScreen .form-card__header h3 { color: #eaf0fe; }
body.plat-dark #schedulingScreen .form-card__header p  { color: rgba(255,255,255,.62); }

/* dashboard — greeting */
body.plat-dark #schedulingScreen .dash-greeting {
  background: linear-gradient(135deg, #08111f 0%, #0d1a30 100%);
  border-color: rgba(96, 165, 250, .10);
}
/* título e data usam cores fixas (#ffffff, #93c5fd) — não precisam de override */

/* dashboard — kpi icon: fundo mais forte no dark mode para emojis não sumirem */
body.plat-dark #schedulingScreen .dash-kpi__icon {
  background: rgba(96, 165, 250, 0.12);
}

/* dashboard — kpi accent */
body.plat-dark #schedulingScreen .dash-kpi--accent {
  background: linear-gradient(135deg, #1e3558, #152234);
  border-color: rgba(96, 165, 250, .18);
}
body.plat-dark #schedulingScreen .dash-kpi--accent .dash-kpi__value { color: #93c5fd; }

/* dashboard — gamificação (nível/desafio/streak) */
body.plat-dark #schedulingScreen .gam-nivel-card {
  background: linear-gradient(135deg, #14213a 0%, #0f1a2e 100%);
  border-color: rgba(96, 165, 250, .18);
}
body.plat-dark #schedulingScreen .gam-nivel-card__nome { color: #93c5fd; }
body.plat-dark #schedulingScreen .gam-progress-bar { background: rgba(96, 165, 250, .16); }
body.plat-dark #schedulingScreen .gam-detalhe-header {
  background: linear-gradient(135deg, #14213a 0%, #0f1a2e 100%);
  border-color: rgba(96, 165, 250, .18);
}
body.plat-dark #schedulingScreen .gam-detalhe-header__nome { color: #93c5fd; }
body.plat-dark #schedulingScreen .gam-roadmap-item--atual {
  background: rgba(96, 165, 250, .08);
  border-color: rgba(96, 165, 250, .3);
}

/* dashboard — aulas e rsim areas */
body.plat-dark #schedulingScreen .dash-aulas-area,
body.plat-dark #schedulingScreen .dash-rsim-area {
  background: rgba(255,255,255,.04);
  border-color: rgba(255,255,255,.07);
}
body.plat-dark #schedulingScreen .dash-aulas-area__label,
body.plat-dark #schedulingScreen .dash-rsim-area__label { color: #e2e8f0; }
body.plat-dark #schedulingScreen .dash-aulas-stat-label { color: #b6c1d4; }
body.plat-dark #schedulingScreen .dash-aulas-stat-val { color: #e2e8f0; }
body.plat-dark #schedulingScreen .dash-aulas-area__sub,
body.plat-dark #schedulingScreen .dash-rsim-area__count { color: #8fa6c0; }
body.plat-dark #schedulingScreen .dash-aulas-area__bar-wrap,
body.plat-dark #schedulingScreen .dash-rsim-area__bar-wrap { background: rgba(255,255,255,.10); }
body.plat-dark #schedulingScreen .dash-aulas-progress { border-color: rgba(255,255,255,.06); }
body.plat-dark #schedulingScreen .dash-aulas-ring-pct { color: #93c5fd; }
body.plat-dark #schedulingScreen .dash-aulas-ring-svg circle:first-child { stroke: rgba(255,255,255,.08); }
body.plat-dark #schedulingScreen .dash-rsim-area--empty .dash-rsim-area__empty-msg { color: #8fa6c0; }

/* dashboard de erros — box "em extinção" (fundo/borda verde-claro hardcoded, texto sumia no dark) */
body.plat-dark #schedulingScreen .erros-extincao {
  background: rgba(34, 197, 94, .12);
  border-color: rgba(34, 197, 94, .30);
  color: #e2e8f0;
}
body.plat-dark #schedulingScreen .erros-extincao__badge { color: inherit; }

/* cronômetro — accent card (gradiente hardcoded claro) */
body.plat-dark #schedulingScreen .ct-stat-card--accent {
  background: linear-gradient(135deg, #1e3558, #152234);
  border-color: var(--gray-200);
}

/* cronômetro — botão de formato ativo (background hardcoded claro) */
body.plat-dark #schedulingScreen .ct-format-btn--active {
  background: rgba(37, 99, 235, .20);
  color: #93c5fd;
  border-color: var(--blue);
}

/* cronômetro — insights da semana (gradiente hardcoded claro) */
body.plat-dark #schedulingScreen .ct-insights {
  background: linear-gradient(135deg, rgba(30, 53, 88, .60), rgba(21, 34, 52, .60));
  border-color: rgba(96, 165, 250, .18);
}
body.plat-dark #schedulingScreen .ct-insights__title {
  color: #93c5fd;
}
body.plat-dark #schedulingScreen .ct-insights__list li {
  color: var(--gray-300);
}
body.plat-dark #schedulingScreen .ct-insights__list strong {
  color: var(--white);
}

/* badges de prioridade/status com fundo hardcoded claro */
body.plat-dark #schedulingScreen .sono-card__insight--warn {
  background: rgba(180, 130, 0, .18);
  color: #fcd34d;
}
body.plat-dark #schedulingScreen .aulas-badge--andamento,
body.plat-dark #schedulingScreen .aulas-priority-badge--importante {
  background: rgba(180, 130, 0, .18);
  color: #fcd34d;
  border-color: rgba(180, 130, 0, .30);
}

/* stepper de revisão (aula e módulo): pill e botão "+/-" com fundo azul
   claro/branco hardcoded — no dark mode o texto virava claro em cima
   desse mesmo fundo claro, ficando ilegível */
body.plat-dark #schedulingScreen .aulas-rev-stepper {
  background: rgba(96, 165, 250, .14);
  border-color: rgba(96, 165, 250, .30);
}
body.plat-dark #schedulingScreen .aulas-rev-stepper--zero {
  background: var(--gray-100);
  border-color: var(--gray-200);
}
body.plat-dark #schedulingScreen .aulas-rev-step-btn {
  background: rgba(255, 255, 255, .06);
  color: #93c5fd;
}
body.plat-dark #schedulingScreen .aulas-rev-step-btn:hover:not(:disabled) {
  background: var(--blue);
  color: #fff;
}
body.plat-dark #schedulingScreen .aulas-rev-step-btn:disabled {
  color: var(--gray-400);
}
body.plat-dark #schedulingScreen .aulas-rev-count {
  color: #eaf0fe;
}

/* ── Bottom nav (mobile) ── */
.plat-bottom-nav {
  display: none;
  position: fixed;
  bottom: 0;
  left: 0;
  right: 0;
  z-index: 50;
  background: #0c1524;
  border-top: 1px solid rgba(192,199,213,0.10);
  padding: 8px 0 max(8px, env(safe-area-inset-bottom));
}

.plat-bottom-nav__item {
  flex: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 3px;
  padding: 4px 0;
  background: none;
  border: none;
  cursor: pointer;
  color: #8b95ae;
  font-size: 10px;
  font-weight: 500;
  transition: color 0.15s;
}

.plat-bottom-nav__item--active { color: #60a5fa; }

/* ── Plataforma: seção override no panel agendamento ── */
#panelAgendamento .scheduling { background: transparent; padding: 0; }

/* ── Dentro da plataforma, section-header alinha à esquerda ── */
.plat-panel .section-header {
  text-align: left;
  margin-bottom: 2rem;
}
.plat-panel .section-header .section-sub { margin: 0; }

/* ── Painel Início ── */
.inicio-profile {
  display: flex;
  align-items: center;
  gap: 1.25rem;
  background: #0c1524;
  border: 1px solid rgba(37,99,235,0.2);
  border-radius: 14px;
  padding: 1.5rem;
  margin-bottom: 2rem;
  box-shadow: 0 4px 20px rgba(0,0,0,0.2);
}

.inicio-avatar {
  width: 64px;
  height: 64px;
  border-radius: 50%;
  background: rgba(37,99,235,0.15);
  border: 2px solid rgba(37,99,235,0.5);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 26px;
  font-weight: 700;
  color: #60a5fa;
  flex-shrink: 0;
  box-shadow: 0 0 24px rgba(37,99,235,0.25);
  font-family: 'Anton', sans-serif;
}

.inicio-profile__info {
  display: flex;
  flex-direction: column;
  gap: 8px;
  min-width: 0;
}

.inicio-badge {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: #60a5fa;
  background: rgba(37,99,235,0.12);
  border: 1px solid rgba(37,99,235,0.3);
  padding: 3px 10px;
  border-radius: 20px;
  width: fit-content;
}

.inicio-email {
  font-size: 15px;
  color: #e2e8f0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.inicio-section-label {
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: #8b95ae;
  margin-bottom: 1rem;
}

/* ── Textos genéricos ── */
.plat-empty-msg {
  text-align: center;
  padding: 3rem 1rem;
  color: var(--gray-400);
  font-size: 15px;
}

/* ══════════════════════════════════════════
   QUIZ
   ══════════════════════════════════════════ */

.quiz-stats-row {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 10px;
  margin-bottom: 1.75rem;
}

.quiz-stat-card {
  background: var(--white);
  border: 1px solid var(--gray-200);
  border-radius: 12px;
  padding: 1rem 1.25rem;
  display: flex;
  flex-direction: column;
  gap: 4px;
  box-shadow: var(--shadow-sm);
}

.quiz-stat__label {
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: var(--gray-400);
  font-weight: 600;
}

.quiz-stat__val {
  font-size: 26px;
  font-weight: 700;
  color: var(--gray-800);
}

.quiz-stat__val--blue { color: var(--blue); }
.quiz-stat__val--green { color: #16a34a; }
.quiz-stat__val--red { color: #dc2626; }

/* Mode cards */
.quiz-mode-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 10px;
  margin-top: 0.75rem;
}

.quiz-mode-card {
  background: var(--white);
  border: 1.5px solid var(--gray-200);
  border-radius: 12px;
  padding: 1rem 1.25rem;
  text-align: left;
  cursor: pointer;
  transition: all 0.15s;
  display: flex;
  flex-direction: column;
  gap: 4px;
  box-shadow: var(--shadow-sm);
}

.quiz-mode-card:hover {
  border-color: var(--blue-light);
  box-shadow: var(--shadow-md);
}

.quiz-mode-card--active {
  background: rgba(37,99,235,0.06);
  border-color: var(--blue);
  box-shadow: 0 0 0 3px rgba(37,99,235,0.12);
}

.quiz-mode-card__label {
  font-size: 14px;
  font-weight: 700;
  color: var(--gray-800);
}

.quiz-mode-card__desc {
  font-size: 12px;
  color: var(--gray-400);
}

/* Group grid */
.quiz-group-grid {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 0.75rem;
}

.quiz-group-btn {
  padding: 8px 16px;
  border-radius: 999px;
  font-size: 13px;
  font-weight: 500;
  border: 1.5px solid var(--gray-200);
  background: var(--white);
  color: var(--gray-600);
  cursor: pointer;
  transition: all 0.15s;
}

.quiz-group-btn:hover {
  border-color: var(--blue-light);
  color: var(--blue);
}

.quiz-group-btn--active {
  background: rgba(37,99,235,0.08);
  border-color: var(--blue);
  color: var(--blue);
  font-weight: 600;
}

/* Session header */
.quiz-session-hdr {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 0.75rem;
}

.quiz-counter {
  font-size: 14px;
  color: var(--gray-600);
  font-weight: 600;
}

.quiz-end-btn {
  font-size: 13px;
  padding: 7px 16px;
}

.quiz-progress-bar {
  height: 5px;
  background: var(--gray-200);
  border-radius: 999px;
  overflow: hidden;
  margin-bottom: 1.25rem;
}

.quiz-progress-fill {
  height: 100%;
  background: var(--blue);
  border-radius: 999px;
  transition: width 0.4s ease;
}

/* Question card */
.quiz-q-card {
  background: var(--white) !important;
  border: 1px solid var(--gray-200) !important;
  box-shadow: var(--shadow-md) !important;
}

.quiz-q-meta {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 1rem;
}

.quiz-q-meta__left {
  display: flex;
  align-items: center;
  gap: 8px;
}

.quiz-seen-badge {
  font-size: 11px;
  color: #92400e;
  background: #fef3c7;
  border: 1px solid #fcd34d;
  border-radius: 999px;
  padding: 3px 10px;
  font-weight: 600;
}

.quiz-qnum {
  font-size: 12px;
  color: var(--gray-400);
  font-weight: 600;
}

.quiz-q-text {
  font-size: 16px;
  color: var(--gray-800);
  line-height: 1.7;
  margin-bottom: 1.5rem;
}

/* Options */
.quiz-options {
  display: flex;
  flex-direction: column;
  gap: 8px;
  margin-bottom: 1rem;
}

.quiz-option {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  padding: 13px 16px;
  background: var(--gray-50);
  border: 1.5px solid var(--gray-200);
  border-radius: 10px;
  font-size: 14px;
  color: var(--gray-700);
  cursor: pointer;
  transition: all 0.15s;
  text-align: left;
  line-height: 1.5;
}

.quiz-option:hover {
  border-color: var(--blue-light);
  color: var(--gray-800);
  background: rgba(37,99,235,0.04);
}

.quiz-option--selected {
  background: rgba(37,99,235,0.07);
  border-color: var(--blue);
  color: var(--blue);
}

.quiz-option--correct {
  background: #f0fdf4;
  border-color: #16a34a;
  color: #15803d;
}

.quiz-option--wrong {
  background: #fef2f2;
  border-color: #dc2626;
  color: #b91c1c;
}

.quiz-option--disabled { cursor: default; pointer-events: none; }

.quiz-opt-letter {
  font-weight: 700;
  flex-shrink: 0;
  width: 20px;
  font-size: 14px;
}

/* Feedback */
.quiz-feedback {
  margin-top: 1.25rem;
  padding-top: 1.25rem;
  border-top: 1px solid var(--gray-200);
}

.quiz-feedback__title {
  font-size: 15px;
  font-weight: 700;
  margin-bottom: 6px;
}

.quiz-feedback__title--correct { color: #15803d; }
.quiz-feedback__title--wrong { color: #b91c1c; }

.quiz-feedback__correct {
  font-size: 13px;
  color: var(--gray-600);
  margin-bottom: 0.75rem;
}

.quiz-just-box {
  background: #eff6ff;
  border: 1px solid #bfdbfe;
  border-radius: 10px;
  padding: 1rem 1.1rem;
  margin-bottom: 1rem;
}

.quiz-just-text {
  font-size: 14px;
  color: #1d4ed8;
  line-height: 1.65;
}

/* Results */
.quiz-results-wrap {
  text-align: center;
  padding: 2.5rem 1rem 3rem;
}

.quiz-results-pct {
  font-size: 64px;
  font-weight: 700;
  color: var(--gray-800);
  line-height: 1;
  margin-bottom: 8px;
}

.quiz-results-sub {
  font-size: 15px;
  color: var(--gray-400);
  margin-bottom: 2rem;
}

.quiz-results-stats {
  display: flex;
  justify-content: center;
  gap: 32px;
  margin-bottom: 2rem;
}

.quiz-res-stat {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 4px;
}

.quiz-res-stat__val {
  font-size: 36px;
  font-weight: 700;
}

.quiz-res-stat__label {
  font-size: 13px;
  color: var(--gray-400);
}

.quiz-res-stat--green .quiz-res-stat__val { color: #16a34a; }
.quiz-res-stat--red .quiz-res-stat__val { color: #dc2626; }

.quiz-results-btns {
  display: flex;
  gap: 12px;
  justify-content: center;
}

/* ══════════════════════════════════════════
   CRONOGRAMA
   ══════════════════════════════════════════ */

.crono-legend {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-bottom: 1rem;
}

.crono-legend-item {
  display: flex;
  align-items: center;
  gap: 6px;
  font-size: 12px;
  color: var(--gray-600);
}

.crono-legend-dot {
  width: 10px;
  height: 10px;
  border-radius: 3px;
  flex-shrink: 0;
}

/* ── Wrapper com scroll horizontal ── */
.crono-scroll {
  overflow-x: auto;
  padding-bottom: 8px;
}

/* ── Chips de navegação por dia (aparecem só no mobile) ── */
.crono-day-chips {
  display: none; /* exibido via @media (max-width: 768px) */
  gap: 6px;
  margin: 2px 0 14px;
  overflow-x: auto;
  scrollbar-width: none;
  -webkit-overflow-scrolling: touch;
}
.crono-day-chips::-webkit-scrollbar { display: none; }

.crono-day-chip {
  flex: 1 0 auto;
  min-width: 42px;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 3px;
  padding: 9px 8px;
  border: 1px solid var(--gray-200);
  border-radius: 12px;
  background: #fff;
  color: var(--gray-600);
  font-size: 13px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.03em;
  cursor: pointer;
  transition: background 0.15s, border-color 0.15s, color 0.15s, box-shadow 0.15s;
}

.crono-day-chip__count {
  font-size: 10px;
  font-weight: 700;
  line-height: 1;
  min-width: 16px;
  padding: 2px 5px;
  border-radius: 999px;
  background: var(--gray-100);
  color: var(--gray-500);
}

.crono-day-chip--active {
  background: var(--blue);
  border-color: var(--blue);
  color: #fff;
  box-shadow: 0 4px 12px rgba(37,99,235,0.25);
}
.crono-day-chip--active .crono-day-chip__count {
  background: rgba(255,255,255,0.25);
  color: #fff;
}

/* ── Grid: eixo de tempo + 7 colunas de dias ── */
.crono-grid {
  display: flex;
  gap: 0;
  min-width: 560px;
}

/* ── Coluna do eixo de tempo (esquerda) ── */
.crono-time-col {
  position: relative;
  width: 60px;
  flex-shrink: 0;
  margin-top: 36px; /* alinha com corpo dos dias (abaixo do header) */
}

.crono-time-label {
  position: absolute;
  right: 6px;
  font-size: 10px;
  font-weight: 600;
  color: var(--gray-400);
  transform: translateY(-50%);
  white-space: nowrap;
  line-height: 1;
}

/* ── Coluna de cada dia ── */
.crono-day-col {
  flex: 1;
  min-width: 72px;
  display: flex;
  flex-direction: column;
  border-left: 1px solid var(--gray-200);
}

.crono-day-header {
  font-size: 11px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: var(--gray-600);
  text-align: center;
  padding: 6px 4px 8px;
  border-bottom: 2px solid var(--gray-200);
  height: 36px;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}

/* ── Corpo do dia (área de tempo proporcional) ── */
.crono-day-body {
  position: relative;
  flex: 1;
}

/* ── Linhas horizontais de hora ── */
.crono-hour-line {
  position: absolute;
  left: 0;
  right: 0;
  border-top: 1px solid var(--gray-100);
  pointer-events: none;
}

.crono-half-line {
  position: absolute;
  left: 0;
  right: 0;
  border-top: 1px dashed var(--gray-100);
  pointer-events: none;
}

/* ── Área clicável para adicionar bloco ── */
.crono-day-body {
  cursor: crosshair;
}

/* ── Botão "+" fixo abaixo do grid ── */
.crono-add-btn {
  width: 100%;
  padding: 6px 4px;
  background: transparent;
  border: none;
  border-top: 1px solid var(--gray-200);
  color: var(--gray-300);
  font-size: 18px;
  cursor: pointer;
  transition: all 0.15s;
  flex-shrink: 0;
}

.crono-add-btn:hover {
  background: rgba(37,99,235,0.05);
  color: var(--blue);
}

/* ── Bloco de estudo (posição absoluta) ── */
.crono-block {
  position: absolute;
  left: 6px;
  right: 6px;
  border-radius: 6px;
  padding: 4px 8px;
  cursor: grab;
  border-left: 3px solid;
  overflow: hidden;
  transition: filter 0.15s, transform 0.15s;
  z-index: 1;
  touch-action: none; /* impede scroll ao arrastar bloco (mobile) */
}

.crono-block:hover {
  filter: brightness(0.92);
  transform: scaleX(0.97);
  z-index: 2;
}

/* Bloco original enquanto está sendo arrastado */
.crono-block--dragging {
  opacity: 0.3;
  cursor: grabbing;
}

/* Toque longo confirmado: bloco "destravado" e pronto para arrastar (mobile) */
.crono-block--armed {
  transform: scale(1.04);
  box-shadow: 0 6px 18px rgba(15, 25, 45, 0.28);
  z-index: 4;
  filter: brightness(1.02);
}

/* Clone flutuante que segue o cursor durante o arraste */
.crono-block-ghost {
  border-radius: 6px;
  padding: 4px 8px;
  border-left: 3px solid;
  overflow: hidden;
  box-shadow: 0 8px 24px rgba(15, 25, 45, 0.25);
  opacity: 0.92;
  pointer-events: none;
  z-index: 9999;
}

.crono-block-ghost__badge {
  position: absolute;
  top: 2px;
  right: 4px;
  font-size: 9px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  background: var(--blue);
  color: #fff;
  border-radius: 4px;
  padding: 1px 5px;
}

/* Sombra do destino enquanto arrasta (snap de 30 min) */
.crono-drop-preview {
  position: absolute;
  left: 6px;
  right: 6px;
  border-radius: 6px;
  border: 2px dashed;
  pointer-events: none;
  z-index: 3;
}

/* Dica de uso acima da grade */
.crono-hint {
  font-size: 12px;
  color: var(--gray-600);
  margin: 0.4rem 0 0.75rem;
  line-height: 1.5;
}

.crono-hint kbd {
  font-family: inherit;
  font-size: 11px;
  background: var(--gray-100);
  border: 1px solid var(--gray-300);
  border-radius: 4px;
  padding: 1px 5px;
  color: var(--gray-700);
}

.crono-block__title {
  font-size: 12px;
  font-weight: 600;
  color: inherit;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  line-height: 1.15;
}

.crono-block__time {
  font-size: 12px;
  margin-top: 0;
  opacity: 0.8;
  color: inherit;
  white-space: nowrap;
}

/* Cronograma modal */
.crono-modal {
  max-width: 420px;
  background: var(--white);
  border: 1px solid var(--gray-200);
  position: relative;
  max-height: calc(100dvh - 48px);
  overflow-y: auto;
}

/* Botão fechar modal (X) */
.modal-close-btn {
  position: absolute;
  top: 14px;
  right: 14px;
  background: none;
  border: none;
  cursor: pointer;
  padding: 6px;
  color: var(--gray-400);
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: background .15s, color .15s;
  z-index: 1;
}
.modal-close-btn:hover { background: var(--gray-100); color: var(--gray-700); }

.crono-modal-row {
  display: flex;
  gap: 12px;
}

.crono-cat-grid {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 6px;
}

/* Atalhos da categoria "Outros" */
.crono-custom-suggest {
  margin-top: 12px;
  padding: 12px;
  background: var(--gray-50);
  border: 1px solid var(--gray-100);
  border-radius: 10px;
}
.crono-custom-suggest__label { font-size: 12px; color: var(--gray-500); margin-bottom: 10px; line-height: 1.4; }
.crono-custom-suggest__chips { display: flex; flex-wrap: wrap; gap: 8px; }
.crono-suggest-chip {
  font-family: inherit;
  font-size: 13px;
  font-weight: 600;
  color: var(--gray-700);
  background: var(--white);
  border: 1px solid var(--gray-200);
  border-radius: 999px;
  padding: 6px 12px;
  cursor: pointer;
  transition: background .12s, color .12s, border-color .12s;
}
.crono-suggest-chip:hover { background: var(--blue); color: #fff; border-color: var(--blue); }

.crono-cat-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  width: 100%;
  padding: 9px 12px;
  border-radius: 10px;
  font-size: 13px;
  font-weight: 500;
  border: 1.5px solid var(--gray-200);
  background: var(--white);
  color: var(--gray-700);
  cursor: pointer;
  transition: all 0.15s;
  text-align: center;
  box-sizing: border-box;
}

.crono-cat-btn:hover { border-color: var(--gray-400); }

.crono-cat-btn--active {
  color: var(--gray-800);
  font-weight: 700;
}

.crono-cat-dot {
  width: 9px;
  height: 9px;
  border-radius: 50%;
  flex-shrink: 0;
}

/* Ações do modal: grade simétrica de 2 colunas (2 ou 4 botões), todos do mesmo tamanho */
.crono-modal__actions {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px;
  margin-top: 1.25rem;
}

.crono-modal__actions .btn {
  width: 100%;
  justify-content: center;
  padding: 12px 16px;
  font-size: 14px;
}

/* O botão hidden não ocupa célula da grade */
.crono-modal__actions .btn.hidden { display: none; }

/* Telas estreitas: empilha em coluna única para não espremer o texto */
@media (max-width: 360px) {
  .crono-modal__actions { grid-template-columns: 1fr; }
}

/* ── Resumo de carga horária semanal ── */
#cronoSummary {
  margin-top: 2rem;
}

.crono-summary {
  background: var(--white);
  border: 1px solid var(--gray-200);
  border-radius: 16px;
  padding: 1.5rem;
  box-shadow: var(--shadow-sm);
}

.crono-summary__header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1rem;
  margin-bottom: 1.25rem;
  flex-wrap: wrap;
}

.crono-summary__title {
  font-size: 15px;
  font-weight: 700;
  color: var(--gray-800);
}

.crono-summary__subtitle {
  font-size: 13px;
  color: var(--gray-400);
  margin-top: 2px;
}

.crono-summary__total-pill {
  background: rgba(37,99,235,0.08);
  border: 1px solid rgba(37,99,235,0.18);
  border-radius: 999px;
  padding: 6px 16px;
  font-size: 14px;
  font-weight: 700;
  color: var(--blue);
  white-space: nowrap;
}

.crono-summary__stats {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 10px;
  margin-bottom: 1.5rem;
}

.crono-summary__stat {
  background: var(--gray-50);
  border: 1px solid var(--gray-200);
  border-radius: 12px;
  padding: 12px 14px;
  text-align: center;
}

.crono-summary__stat-value {
  font-size: 20px;
  font-weight: 800;
  color: var(--gray-800);
  line-height: 1;
}

.crono-summary__stat-label {
  font-size: 10px;
  color: var(--gray-400);
  text-transform: uppercase;
  letter-spacing: 0.04em;
  margin-top: 4px;
}

.crono-summary__cats {
  display: flex;
  flex-direction: column;
  gap: 10px;
  margin-bottom: 1.25rem;
}

.crono-summary__cat-row {
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.crono-summary__cat-info {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
}

.crono-summary__cat-name {
  display: flex;
  align-items: center;
  gap: 7px;
  font-size: 13px;
  font-weight: 600;
  color: var(--gray-700);
}

.crono-summary__cat-dot {
  width: 9px;
  height: 9px;
  border-radius: 3px;
  flex-shrink: 0;
}

.crono-summary__cat-meta {
  display: flex;
  align-items: center;
  gap: 10px;
}

.crono-summary__cat-hours {
  font-size: 13px;
  font-weight: 700;
  color: var(--gray-800);
}

.crono-summary__cat-pct {
  font-size: 11px;
  color: var(--gray-400);
  min-width: 32px;
  text-align: right;
}

.crono-summary__cat-bar-wrap {
  height: 7px;
  background: var(--gray-100);
  border-radius: 999px;
  overflow: hidden;
}

.crono-summary__cat-bar {
  height: 100%;
  border-radius: 999px;
  transition: width 0.6s ease;
}

.crono-summary__insight {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  padding: 12px 14px;
  border-radius: 12px;
  font-size: 13px;
  line-height: 1.45;
}

.crono-summary__insight--warn {
  background: rgba(245,158,11,0.08);
  border: 1px solid rgba(245,158,11,0.2);
  color: #92400e;
}

.crono-summary__insight--ok {
  background: rgba(22,163,74,0.07);
  border: 1px solid rgba(22,163,74,0.18);
  color: #166534;
}

.crono-summary__insight--great {
  background: rgba(37,99,235,0.07);
  border: 1px solid rgba(37,99,235,0.15);
  color: #1e3a8a;
}

.crono-summary__insight-icon {
  font-size: 16px;
  flex-shrink: 0;
  margin-top: 1px;
}

/* ── Sub-row (disciplina dentro de grupo) ── */
.crono-summary__cat-row--sub {
  padding-left: 16px;
  opacity: .85;
}
.crono-summary__cat-row--sub .crono-summary__cat-bar-wrap { height: 5px; }
.crono-summary__cat-row--sub .crono-summary__cat-name { font-size: 12px; font-weight: 500; }
.crono-summary__cat-row--sub .crono-summary__cat-hours { font-size: 12px; }
.crono-summary__sub-indent {
  font-size: 11px;
  color: var(--gray-300);
  margin-right: -2px;
}

/* ── Section label ── */
.crono-summary__section-label {
  font-size: 10px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .07em;
  color: var(--gray-400);
  margin-bottom: .6rem;
}

/* ── Grupo colapsável (5 áreas ENEM) ── */
.crono-summary__group {
  border: 1px solid var(--gray-100);
  border-radius: 14px;
  margin-bottom: 10px;
  overflow: hidden;
  background: var(--white);
}

.crono-summary__group-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: .85rem 1rem;
  cursor: pointer;
  user-select: none;
  transition: background .15s;
}
.crono-summary__group-header:hover { background: var(--gray-50); }

.crono-summary__group-left {
  display: flex;
  align-items: center;
  gap: 10px;
}
.crono-summary__group-emoji { font-size: 20px; }
.crono-summary__group-name {
  font-size: 14px;
  font-weight: 700;
  color: var(--gray-800);
}
.crono-summary__group-sub {
  font-size: 11px;
  color: var(--gray-400);
  margin-top: 1px;
}
.crono-summary__group-right {
  display: flex;
  align-items: center;
  gap: 8px;
}
.crono-summary__chevron {
  color: var(--gray-400);
  transition: transform .25s ease;
  flex-shrink: 0;
}

/* Barra macro do grupo */
.crono-summary__group-macro-bar {
  height: 4px;
  background: var(--gray-100);
  margin: 0 1rem .1rem;
  border-radius: 999px;
  overflow: hidden;
}

/* Drill-down oculto por padrão */
.crono-summary__group-drill {
  display: none;
  flex-direction: column;
  gap: 8px;
  padding: .75rem 1rem 1rem;
  border-top: 1px solid var(--gray-100);
  background: var(--gray-50);
}

/* Estado expandido */
.crono-summary__group--open .crono-summary__group-drill { display: flex; }
.crono-summary__group--open .crono-summary__chevron { transform: rotate(180deg); }
.crono-summary__group--open .crono-summary__group-header { border-bottom: none; }

/* Grupos sem drill-down (ex: Redação) — não é clicável */
.crono-summary__group--nodrill .crono-summary__group-header {
  cursor: default;
}
.crono-summary__group--nodrill .crono-summary__group-header:hover {
  background: transparent;
}

/* ── Modal: categorias agrupadas ── */
.crono-cat-section {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 7px;
}
.crono-cat-group {
  margin-top: 12px;
}
.crono-cat-group__label {
  font-size: 10px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .07em;
  color: var(--gray-400);
  margin-bottom: 7px;
  display: flex;
  align-items: center;
  gap: 5px;
}


.crono-summary__empty {
  text-align: center;
  padding: 2.5rem 1rem;
  color: var(--gray-400);
  font-size: 14px;
}

/* ── Seção "Outras atividades" (Trabalho / Faculdade) ── */
.crono-summary__nostudy-section {
  margin-top: 1.5rem;
  padding-top: 1rem;
  border-top: 1px dashed var(--gray-200);
}
.crono-summary__nostudy-label {
  font-size: 11px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .06em;
  color: var(--gray-400);
  margin-bottom: 10px;
  display: flex;
  align-items: center;
  gap: 6px;
}
.crono-summary__nostudy-note {
  font-weight: 400;
  text-transform: none;
  letter-spacing: 0;
  font-size: 10px;
  color: var(--gray-300);
}

/* ── Card de Sono ── */
.sono-card {
  margin-top: 1.5rem;
  padding-top: 1.25rem;
  border-top: 1px dashed var(--gray-200);
}
.sono-card__header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 14px;
}
.sono-card__title { font-size: 16px; font-weight: 800; color: var(--gray-800); }
.sono-card__subtitle { font-size: 12px; color: var(--gray-400); margin-top: 2px; }
.sono-card__pill {
  flex-shrink: 0;
  font-size: 12px;
  font-weight: 700;
  color: #6366f1;
  background: rgba(99, 102, 241, .10);
  border: 1px solid rgba(99, 102, 241, .22);
  border-radius: 999px;
  padding: 5px 12px;
  white-space: nowrap;
}
.sono-input-row {
  display: flex;
  align-items: baseline;
  justify-content: center;
  gap: 10px;
  margin-bottom: 18px;
}
.sono-input {
  width: 110px;
  text-align: center;
  font-family: inherit;
  font-size: 32px;
  font-weight: 800;
  color: var(--gray-800);
  background: var(--white);
  border: 2px solid var(--gray-200);
  border-radius: 12px;
  padding: 8px 6px;
  -moz-appearance: textfield;
}
.sono-input::-webkit-outer-spin-button,
.sono-input::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
.sono-input:focus { outline: none; border-color: #6366f1; box-shadow: 0 0 0 4px rgba(99, 102, 241, .15); }
.sono-input::placeholder { color: var(--gray-300); }
.sono-input__unit { font-size: 15px; font-weight: 600; color: var(--gray-500); }

.sono-gauge { margin-bottom: 16px; }
.sono-gauge__track {
  position: relative;
  height: 10px;
  background: var(--gray-100);
  border-radius: 999px;
}
.sono-gauge__ideal {
  position: absolute;
  top: 0; bottom: 0;
  background: rgba(34, 197, 94, .30);
  border-radius: 999px;
}
.sono-gauge__marker {
  position: absolute;
  top: 50%;
  width: 18px; height: 18px;
  border-radius: 50%;
  background: #6366f1;
  border: 3px solid var(--white);
  box-shadow: 0 1px 4px rgba(15, 25, 45, .3);
  transform: translate(-50%, -50%);
  transition: left .3s ease, opacity .2s ease;
}
.sono-gauge__scale {
  display: flex;
  justify-content: space-between;
  margin-top: 6px;
  font-size: 10.5px;
  font-weight: 600;
  color: var(--gray-400);
}
.sono-gauge__scale span:nth-child(2) { color: #16a34a; }
.sono-card__insight {
  font-size: 13px;
  line-height: 1.45;
  padding: 11px 14px;
  border-radius: 10px;
  border: 1px solid transparent;
}
.sono-card__insight--none  { background: var(--gray-50); color: var(--gray-500); border-color: var(--gray-100); }
.sono-card__insight--warn  { background: #fffbeb; color: #b45309; border-color: #fde68a; }
.sono-card__insight--ok    { background: #eff6ff; color: #1d4ed8; border-color: #bfdbfe; }
.sono-card__insight--great { background: #f0fdf4; color: #15803d; border-color: #bbf7d0; }

@media (max-width: 480px) {
  .crono-summary__stats { grid-template-columns: repeat(3, 1fr); gap: 6px; }
  .crono-summary__stat-value { font-size: 17px; }
  .sono-input { width: 96px; font-size: 28px; }
  .sono-input__unit { font-size: 14px; }
}

/* ══════════════════════════════════════════
   DESEMPENHO
   ══════════════════════════════════════════ */

.plat-stats-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(120px, 1fr));
  gap: 10px;
  margin-bottom: 1.5rem;
}

.plat-stat-card {
  background: var(--white);
  border: 1px solid var(--gray-200);
  border-radius: 14px;
  padding: 1.1rem 1.25rem;
  box-shadow: var(--shadow-sm);
}

.plat-stat-label {
  font-size: 11px;
  color: var(--gray-400);
  text-transform: uppercase;
  letter-spacing: 0.05em;
  margin-bottom: 6px;
  font-weight: 600;
}

.plat-stat-val {
  font-size: 30px;
  font-weight: 700;
  color: var(--gray-800);
}

.plat-progress-card {
  background: var(--white);
  border: 1px solid var(--gray-200);
  border-radius: 14px;
  padding: 1.25rem 1.5rem;
  margin-bottom: 1.5rem;
  display: flex;
  align-items: center;
  gap: 16px;
  box-shadow: var(--shadow-sm);
}

.plat-progress-label {
  font-size: 14px;
  color: var(--gray-600);
  flex-shrink: 0;
  min-width: 140px;
  font-weight: 500;
}

.plat-progress-bar-wrap {
  flex: 1;
  height: 8px;
  background: var(--gray-200);
  border-radius: 999px;
  overflow: hidden;
}

.plat-progress-bar-fill {
  height: 100%;
  border-radius: 999px;
  transition: width 0.5s ease;
}

.plat-progress-pct {
  font-size: 16px;
  font-weight: 700;
  flex-shrink: 0;
  min-width: 44px;
  text-align: right;
}

.plat-section-label {
  font-size: 11px;
  color: var(--gray-400);
  text-transform: uppercase;
  letter-spacing: 0.08em;
  font-weight: 700;
  margin-bottom: 10px;
}

.plat-topics-list {
  display: flex;
  flex-direction: column;
  gap: 8px;
  margin-bottom: 1.5rem;
}

.plat-topic-card {
  background: var(--white);
  border: 1px solid var(--gray-200);
  border-radius: 12px;
  padding: 1rem 1.25rem;
  box-shadow: var(--shadow-sm);
}

.plat-topic-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 8px;
}

.plat-topic-name {
  font-size: 14px;
  font-weight: 600;
  color: var(--gray-800);
}

.plat-topic-pct {
  font-size: 15px;
  font-weight: 700;
}

.plat-bar-wrap {
  height: 6px;
  background: var(--gray-200);
  border-radius: 999px;
  overflow: hidden;
  margin-bottom: 6px;
}

.plat-bar-fill {
  height: 100%;
  border-radius: 999px;
  transition: width 0.5s ease;
}

.plat-topic-sub {
  font-size: 12px;
  color: var(--gray-400);
}

.plat-sessions-list {
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.plat-sess-row {
  display: flex;
  align-items: center;
  gap: 12px;
  background: var(--white);
  border: 1px solid var(--gray-200);
  border-radius: 10px;
  padding: 11px 16px;
  box-shadow: var(--shadow-sm);
}

.plat-sess-date {
  font-size: 13px;
  color: var(--gray-400);
  flex-shrink: 0;
  width: 52px;
  font-weight: 500;
}

.plat-sess-bar {
  flex: 1;
  height: 5px;
  background: var(--gray-200);
  border-radius: 999px;
  overflow: hidden;
}

.plat-sess-bar-fill { height: 100%; border-radius: 999px; }

.plat-sess-stats {
  font-size: 13px;
  display: flex;
  gap: 4px;
  flex-shrink: 0;
  font-weight: 600;
}

.plat-sess-pct {
  font-size: 13px;
  font-weight: 700;
  flex-shrink: 0;
  min-width: 40px;
  text-align: right;
}

/* ══════════════════════════════════════════
   CADERNO DE ERROS
   ══════════════════════════════════════════ */

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

.erros-card {
  background: var(--white);
  border: 1px solid var(--gray-200);
  border-radius: 14px;
  overflow: hidden;
  box-shadow: var(--shadow-sm);
}

.erros-card__header {
  width: 100%;
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
  padding: 1.25rem 1.5rem;
  background: none;
  border: none;
  cursor: pointer;
  text-align: left;
}

.erros-card__left { flex: 1; }

.erros-topic-badge {
  font-size: 11px;
  color: var(--blue);
  background: rgba(37,99,235,0.08);
  border: 1px solid rgba(37,99,235,0.2);
  border-radius: 999px;
  padding: 3px 10px;
  display: inline-block;
  margin-bottom: 8px;
  font-weight: 600;
}

.erros-q-text {
  font-size: 14px;
  color: var(--gray-800);
  line-height: 1.6;
}

.erros-chevron {
  color: var(--gray-400);
  flex-shrink: 0;
  transition: transform 0.2s;
  margin-top: 3px;
}

.erros-card__body {
  padding: 0 1.5rem 1.5rem;
  border-top: 1px solid var(--gray-200);
}

.erros-options {
  display: flex;
  flex-direction: column;
  gap: 6px;
  margin: 1rem 0;
}

.erros-option {
  display: flex;
  gap: 12px;
  padding: 10px 14px;
  background: var(--gray-50);
  border: 1.5px solid var(--gray-200);
  border-radius: 8px;
  font-size: 13px;
  color: var(--gray-600);
  line-height: 1.5;
}

.erros-option--correct {
  background: #f0fdf4;
  border-color: #16a34a;
  color: #15803d;
}

.erros-option--wrong {
  background: #fef2f2;
  border-color: #dc2626;
  color: #b91c1c;
}

.erros-opt-letter { font-weight: 700; flex-shrink: 0; }

.erros-card__actions {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  flex-wrap: wrap;
}

.erros-hint { font-size: 13px; color: var(--gray-600); }

.erros-dominated-btn {
  padding: 9px 18px;
  background: #f0fdf4;
  border: 1.5px solid #16a34a;
  border-radius: 8px;
  color: #15803d;
  font-size: 13px;
  font-weight: 700;
  cursor: pointer;
  transition: all 0.15s;
}

.erros-dominated-btn:hover { background: #dcfce7; }

/* ══════════════════════════════════════════
   RESPONSIVO — Plataforma mobile
   ══════════════════════════════════════════ */

@media (max-width: 768px) {
  /* Layout em coluna: mobile header no topo, conteúdo abaixo */
  #schedulingScreen {
    flex-direction: column;
  }

  /* Exibe o mobile header */
  .plat-mobile-header {
    display: flex;
  }

  /* Sidebar vira drawer off-screen */
  .plat-sidebar {
    position: fixed !important;
    top: 0;
    left: 0;
    height: 100vh !important;
    width: 280px;
    z-index: 100;
    transform: translateX(-100%);
    transition: transform 0.3s cubic-bezier(0.4, 0, 0.2, 1);
  }

  /* Drawer aberto */
  .plat-sidebar--open {
    transform: translateX(0) !important;
  }

  /* Overlay visível quando drawer aberto */
  .plat-drawer-overlay--open {
    display: block;
  }

  /* Exibe botão fechar dentro do drawer */
  .plat-sidebar__close {
    display: flex;
  }

  /* Conteúdo principal ocupa o espaço restante após o header mobile */
  .plat-main {
    padding-bottom: 0;
  }

  .plat-panel {
    padding: 1.25rem 1rem;
  }

  .inicio-profile {
    padding: 1.1rem;
  }

  .inicio-avatar {
    width: 52px;
    height: 52px;
    font-size: 22px;
  }

  .quiz-stats-row {
    grid-template-columns: repeat(2, 1fr);
  }

  .quiz-mode-grid {
    grid-template-columns: 1fr;
  }

  /* ── Cronograma no mobile: vista de 1 dia por vez ── */
  .crono-hint { display: none; } /* dica de teclado/arraste não se aplica no toque */

  /* Barra de dias FIXA no topo: gruda enquanto os horários rolam */
  .crono-day-chips {
    display: flex;
    position: sticky;
    top: 0;
    z-index: 20;
    background: var(--gray-50);
    margin: 0 0 8px;
    padding: 8px 12px 8px 0;
    box-shadow: 0 6px 8px -6px rgba(15, 25, 45, 0.15);
    /* Sinaliza que há mais dias fora da tela (DOM some sem isso) */
    mask-image: linear-gradient(to right, black calc(100% - 28px), transparent 100%);
    -webkit-mask-image: linear-gradient(to right, black calc(100% - 28px), transparent 100%);
    scroll-snap-type: x proximity;
  }
  .crono-day-chip { scroll-snap-align: start; }

  /* Legenda de categorias: 15 itens quebrando em várias linhas empurra o
     calendário para baixo da dobra — no mobile vira uma fileira compacta
     com scroll horizontal, como as demais tiras de chips da tela. */
  .crono-legend {
    flex-wrap: nowrap;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
    padding-bottom: 4px;
    margin-bottom: 12px;
    mask-image: linear-gradient(to right, black calc(100% - 28px), transparent 100%);
    -webkit-mask-image: linear-gradient(to right, black calc(100% - 28px), transparent 100%);
  }
  .crono-legend::-webkit-scrollbar { display: none; }
  .crono-legend-item { flex-shrink: 0; }

  .crono-scroll { overflow-x: visible; padding-bottom: 0; }

  .crono-grid { min-width: 0; }

  /* Esconde todas as colunas, mostra só o dia selecionado em largura cheia */
  .crono-day-col { display: none; }
  .crono-day-col--active {
    display: flex;
    flex: 1;
    border-left: none;
  }

  /* Header pequeno da coluna é redundante com a barra de dias → some no mobile */
  .crono-day-col--active .crono-day-header { display: none; }
  .crono-time-col { width: 44px; margin-top: 0; }

  /* Blocos: largos e legíveis, texto pode quebrar linha */
  .crono-block { left: 6px; right: 6px; padding: 7px 11px; border-radius: 9px; }
  .crono-block__title {
    font-size: 14px;
    white-space: normal;
    overflow: hidden;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
  }
  .crono-block__time { font-size: 12px; }

  /* Botão "+" por dia mais alto, melhor alvo de toque */
  .crono-add-btn { padding: 12px 4px; font-size: 22px; }

  .quiz-results-btns {
    flex-direction: column;
  }

  .plat-progress-card {
    flex-wrap: wrap;
    gap: 10px;
  }

  .plat-progress-label { min-width: unset; }
}
.btn--danger:hover { background: #B91C1C; }


/* ── Cronograma modal — labels e espaçamento ── */
.crono-modal label { color: var(--gray-700); font-size: 13px; font-weight: 600; }
.crono-modal .form-group { margin-bottom: 1rem; }


/* ══════════════════════════════════════════
   SIMULADOS — Seleção de provas
   ══════════════════════════════════════════ */

.sim-resume-card {
  display: flex;
  align-items: center;
  gap: 16px;
  background: rgba(37,99,235,0.06);
  border: 1px solid rgba(37,99,235,0.2);
  border-radius: 14px;
  padding: 1.1rem 1.25rem;
  margin-bottom: 1.5rem;
}
.sim-resume-card__icon { font-size: 24px; flex-shrink: 0; }
.sim-resume-card__info { flex: 1; min-width: 0; }
.sim-resume-card__title { font-size: 14px; font-weight: 700; color: var(--blue); }
.sim-resume-card__sub { font-size: 12px; color: var(--gray-500); margin-top: 2px; }

.sim-exam-grid { display: grid; gap: 16px; }
.sim-year-section { margin-bottom: 2rem; }
.sim-year-label {
  font-size: 11px; font-weight: 700; letter-spacing: 0.08em;
  text-transform: uppercase; color: var(--gray-400); margin-bottom: 10px;
}
.sim-exam-card {
  background: var(--white); border: 1px solid var(--gray-200);
  border-radius: 16px; padding: 1.25rem 1.5rem; box-shadow: var(--shadow-sm);
}
.sim-exam-card__header {
  display: flex; align-items: center; justify-content: space-between;
  margin-bottom: 1rem; flex-wrap: wrap; gap: 8px;
}
.sim-exam-card__title { font-size: 15px; font-weight: 700; color: var(--gray-800); }
.sim-exam-card__badge {
  font-size: 11px; font-weight: 600;
  background: var(--gray-100); color: var(--gray-500);
  border-radius: 999px; padding: 3px 10px;
}
.sim-exam-card__badge--done { background: rgba(22,163,74,0.1); color: #15803d; }
.sim-day-btns { display: flex; gap: 10px; flex-wrap: wrap; }
.sim-day-btn {
  flex: 1; min-width: 140px; padding: 14px 16px; border-radius: 12px;
  border: 1.5px solid var(--gray-200); background: var(--gray-50);
  cursor: pointer; text-align: left; transition: all 0.15s;
}
.sim-day-btn:hover { border-color: var(--blue); background: rgba(37,99,235,0.04); }
.sim-day-btn--done { border-color: rgba(22,163,74,0.3); background: rgba(22,163,74,0.04); }
.sim-day-btn__label { font-size: 13px; font-weight: 700; color: var(--gray-800); }
.sim-day-btn__sub { font-size: 11px; color: var(--gray-400); margin-top: 2px; }
.sim-day-btn__score { font-size: 11px; color: #15803d; font-weight: 600; margin-top: 4px; }

/* ══════════════════════════════════════════
   SIMULADOS — Modo Prova (full screen)
   ══════════════════════════════════════════ */

.sim-exam-mode {
  position: fixed; inset: 0; z-index: 9999;
  background: var(--gray-50); display: flex; flex-direction: column;
}
.sim-exam-mode.hidden { display: none !important; }

.sim-exam-header {
  display: flex; align-items: center; gap: 16px;
  padding: 0 20px; height: 60px;
  background: var(--white); border-bottom: 1px solid var(--gray-200);
  flex-shrink: 0; box-shadow: 0 1px 4px rgba(0,0,0,0.06);
}
.sim-exam-info { flex: 1; min-width: 0; }
.sim-exam-label { font-size: 14px; font-weight: 700; color: var(--gray-800); }
.sim-exam-qcount { font-size: 11px; color: var(--gray-400); margin-left: 10px; }
.sim-timer-wrap { text-align: center; flex-shrink: 0; }
.sim-timer {
  font-size: 22px; font-weight: 800; color: var(--gray-800);
  font-variant-numeric: tabular-nums; letter-spacing: 0.04em; line-height: 1;
}
.sim-timer--warn { color: #dc2626; }
.sim-timer-label { font-size: 9px; color: var(--gray-400); text-transform: uppercase; letter-spacing: 0.05em; margin-top: 1px; }
.sim-header-btns { display: flex; gap: 8px; flex-shrink: 0; }
.sim-btn-pause, .sim-btn-submit {
  padding: 7px 14px; border-radius: 8px; font-size: 13px; font-weight: 600;
  cursor: pointer; border: none; transition: all 0.15s;
}
.sim-btn-pause { background: var(--gray-100); color: var(--gray-700); }
.sim-btn-pause:hover { background: var(--gray-200); }
.sim-btn-submit { background: var(--blue); color: #fff; }
.sim-btn-submit:hover { background: #1d4ed8; }

.sim-exam-body { flex: 1; display: flex; overflow: hidden; min-height: 0; }

.sim-nav-panel {
  width: 200px; flex-shrink: 0; background: var(--white);
  border-right: 1px solid var(--gray-200); display: flex;
  flex-direction: column; overflow-y: auto; padding: 12px 8px; gap: 8px;
}
.sim-area-tabs { display: flex; flex-direction: column; gap: 4px; margin-bottom: 4px; }
.sim-area-tab {
  padding: 8px 10px; border-radius: 8px; border: none;
  background: transparent; font-size: 12px; font-weight: 600;
  color: var(--gray-500); cursor: pointer; text-align: left; transition: all 0.15s;
}
.sim-area-tab:hover { background: var(--gray-100); }
.sim-area-tab--active { background: rgba(37,99,235,0.09); color: var(--blue); }
.sim-area-tab--done { color: #15803d; }
.sim-area-tab--done::after { content: " \2713"; }

.sim-q-grid { display: grid; grid-template-columns: repeat(5,1fr); gap: 4px; flex: 1; }
.sim-q-btn {
  aspect-ratio: 1; border-radius: 6px; border: 1.5px solid var(--gray-200);
  background: var(--white); font-size: 10px; font-weight: 700; color: var(--gray-500);
  cursor: pointer; transition: all 0.12s; display: flex; align-items: center; justify-content: center;
}
.sim-q-btn:hover { border-color: var(--blue); color: var(--blue); }
.sim-q-btn--current { border-color: var(--blue); background: var(--blue); color: #fff; }
.sim-q-btn--answered { background: rgba(37,99,235,0.1); border-color: rgba(37,99,235,0.3); color: var(--blue); }
.sim-q-btn--answered.sim-q-btn--current { background: var(--blue); color: #fff; }

.sim-finalize-btn {
  padding: 10px 8px; border-radius: 10px; border: 1.5px solid var(--blue);
  background: rgba(37,99,235,0.06); color: var(--blue); font-size: 12px; font-weight: 700;
  cursor: pointer; transition: all 0.15s; text-align: center; flex-shrink: 0;
}
.sim-finalize-btn:hover { background: var(--blue); color: #fff; }
.sim-finalize-btn:disabled { opacity: 0.4; cursor: not-allowed; }

.sim-q-panel {
  flex: 1; overflow-y: auto; padding: 24px 32px;
  display: flex; flex-direction: column; gap: 20px; min-width: 0;
}
.sim-q-header {
  display: flex; align-items: center; justify-content: space-between; gap: 12px;
}
.sim-q-meta { display: flex; align-items: center; gap: 10px; }
.sim-q-num { font-size: 15px; font-weight: 800; color: var(--gray-800); }
.sim-q-area-badge {
  font-size: 11px; font-weight: 600; padding: 3px 10px; border-radius: 999px;
  background: rgba(37,99,235,0.09); color: var(--blue);
}
.sim-q-nav-arrows { display: flex; gap: 6px; }
.sim-q-nav-arrows button {
  width: 32px; height: 32px; border-radius: 8px; border: 1.5px solid var(--gray-200);
  background: var(--white); font-size: 16px; color: var(--gray-600);
  cursor: pointer; display: flex; align-items: center; justify-content: center; transition: all 0.12s;
}
.sim-q-nav-arrows button:hover { border-color: var(--blue); color: var(--blue); }

.sim-q-statement {
  font-size: 14px; line-height: 1.75; color: var(--gray-700);
  max-width: 740px; white-space: pre-wrap;
}
.sim-q-img-note {
  display: flex; align-items: center; gap: 8px; font-size: 12px; color: var(--gray-500);
  background: var(--gray-100); border-radius: 8px; padding: 10px 14px;
}
.sim-q-options { display: flex; flex-direction: column; gap: 8px; max-width: 700px; }
.sim-opt {
  display: flex; align-items: flex-start; gap: 12px; padding: 12px 16px;
  border-radius: 12px; border: 1.5px solid var(--gray-200); background: var(--white);
  cursor: pointer; transition: all 0.12s; text-align: left; width: 100%;
}
.sim-opt:hover { border-color: var(--blue); background: rgba(37,99,235,0.03); }
.sim-opt--selected { border-color: var(--blue); background: rgba(37,99,235,0.08); }
.sim-opt-letter {
  width: 26px; height: 26px; border-radius: 50%;
  background: var(--gray-100); border: 1.5px solid var(--gray-200);
  display: flex; align-items: center; justify-content: center;
  font-size: 12px; font-weight: 700; color: var(--gray-600); flex-shrink: 0;
}
.sim-opt--selected .sim-opt-letter { background: var(--blue); border-color: var(--blue); color: #fff; }
.sim-opt-text { font-size: 13px; color: var(--gray-700); line-height: 1.55; padding-top: 2px; }

.sim-pause-overlay, .sim-confirm-overlay {
  position: absolute; inset: 0; background: rgba(255,255,255,0.92);
  display: flex; align-items: center; justify-content: center;
  z-index: 100; backdrop-filter: blur(4px);
}
.sim-pause-box {
  background: var(--white); border: 1px solid var(--gray-200); border-radius: 20px;
  padding: 2.5rem; text-align: center; max-width: 360px; width: 90%;
  box-shadow: 0 20px 60px rgba(0,0,0,0.12);
}
.sim-pause-icon { font-size: 36px; margin-bottom: 1rem; }
.sim-pause-box h3 { font-size: 18px; font-weight: 800; color: var(--gray-800); margin-bottom: 8px; }
.sim-pause-box p { font-size: 13px; color: var(--gray-500); line-height: 1.5; }

.sim-results { max-width: 700px; margin: 0 auto; padding: 2rem 1rem; }
.sim-results__title { font-size: 22px; font-weight: 800; color: var(--gray-800); margin-bottom: 4px; }
.sim-results__sub { font-size: 13px; color: var(--gray-400); margin-bottom: 2rem; }
.sim-results__stats { display: grid; grid-template-columns: repeat(3,1fr); gap: 12px; margin-bottom: 2rem; }
.sim-results__stat {
  background: var(--white); border: 1px solid var(--gray-200); border-radius: 14px; padding: 1rem; text-align: center;
}
.sim-results__stat-val { font-size: 22px; font-weight: 800; color: var(--gray-800); }
.sim-results__stat-lbl { font-size: 10px; color: var(--gray-400); text-transform: uppercase; letter-spacing: 0.05em; margin-top: 3px; }
.sim-results__areas { display: flex; flex-direction: column; gap: 16px; margin-bottom: 2rem; }
.sim-results__area {
  background: var(--white); border: 1px solid var(--gray-200); border-radius: 14px; padding: 1.1rem 1.25rem;
}
.sim-results__area-header { display: flex; align-items: center; justify-content: space-between; margin-bottom: 10px; }
.sim-results__area-name { font-size: 14px; font-weight: 700; color: var(--gray-800); }
.sim-results__area-time { font-size: 12px; color: var(--gray-400); }
.sim-results__area-score { font-size: 13px; font-weight: 700; color: var(--blue); }
.sim-results__area-bar-wrap { height: 8px; background: var(--gray-100); border-radius: 999px; overflow: hidden; }
.sim-results__area-bar { height: 100%; border-radius: 999px; background: var(--blue); transition: width 0.8s ease; }
.sim-results__area-detail { font-size: 12px; color: var(--gray-500); margin-top: 6px; }

@media (max-width: 768px) {
  .sim-nav-panel { display: none; }
  .sim-q-panel { padding: 16px; }
  .sim-exam-header { height: auto; padding: 10px 16px; gap: 8px; }
  .sim-timer { font-size: 18px; }
  .sim-exam-qcount { display: none; }
}

/* ══════════════════════════════════════════════════════════════
   CRONOGRAMA DE AULAS
   ══════════════════════════════════════════════════════════════ */

/* ── Header ── */
.aulas-header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 1rem;
}
.aulas-header__title {
  font-family: var(--ff-display);
  font-size: clamp(1.8rem, 3.5vw, 2.6rem);
  font-weight: 400;
  color: var(--navy);
  line-height: 1.1;
}
.aulas-header__sub {
  font-size: 13px;
  color: var(--gray-400);
  margin-top: 4px;
  max-width: 480px;
}
.aulas-header__pill {
  background: var(--blue);
  color: #fff;
  font-size: 13px;
  font-weight: 700;
  padding: 5px 14px;
  border-radius: 999px;
  white-space: nowrap;
  flex-shrink: 0;
}
.aulas-header__actions {
  display: flex;
  align-items: center;
  gap: 10px;
  flex-shrink: 0;
  flex-wrap: wrap;
  justify-content: flex-end;
}

/* ── Barra de progresso global ── */
.aulas-progress-bar-wrap {
  height: 8px;
  background: var(--gray-100);
  border-radius: 999px;
  overflow: hidden;
  margin-bottom: 6px;
}
.aulas-progress-bar-fill {
  height: 100%;
  background: var(--blue);
  border-radius: 999px;
  transition: width .6s ease;
}
.aulas-progress-label {
  font-size: 12px;
  color: var(--gray-400);
  margin-bottom: 1.5rem;
}

/* ── Grade de áreas ── */
.aulas-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 14px;
}

/* ── Card de área ── */
.aulas-area-card {
  background: var(--white);
  border: 1px solid var(--gray-100);
  border-radius: 16px;
  padding: 1.1rem 1.1rem .9rem;
  cursor: pointer;
  transition: box-shadow .15s, transform .15s;
  display: flex;
  flex-direction: column;
  gap: 10px;
}
.aulas-area-card:hover {
  box-shadow: 0 4px 20px rgba(0,0,0,.08);
  transform: translateY(-2px);
}
.aulas-area-card__top {
  display: flex;
  align-items: center;
  gap: 10px;
}
.aulas-area-card__icon {
  width: 46px;
  height: 46px;
  border-radius: 12px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 24px;
  flex-shrink: 0;
}
.aulas-area-card__info { flex: 1; min-width: 0; }
.aulas-area-card__name {
  font-size: 16px;
  font-weight: 700;
  color: var(--gray-800);
  line-height: 1.2;
}
.aulas-area-card__meta {
  font-size: 13px;
  color: var(--gray-400);
  margin-top: 2px;
}
.aulas-area-card__pct {
  font-size: 22px;
  font-weight: 800;
  flex-shrink: 0;
}
.aulas-mini-bar-wrap {
  height: 6px;
  background: var(--gray-100);
  border-radius: 999px;
  overflow: hidden;
}
.aulas-mini-bar-fill {
  height: 100%;
  border-radius: 999px;
  transition: width .5s ease;
}
.aulas-area-card__status-row {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}
.aulas-area-card__cta {
  font-size: 12px;
  font-weight: 600;
  color: var(--blue);
  display: flex;
  align-items: center;
  gap: 3px;
  margin-top: 2px;
}

/* ── Badges de status ── */
.aulas-badge {
  font-size: 11px;
  font-weight: 600;
  padding: 2px 9px;
  border-radius: 999px;
  white-space: nowrap;
}
.aulas-badge--concluida  { background: #f0fdf4; color: #16a34a; }
.aulas-badge--andamento  { background: #fffbeb; color: #d97706; }
.aulas-badge--pendente   { background: #fef2f2; color: #dc2626; }

/* ── Vista de detalhe ── */
.aulas-back-btn {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 13px;
  font-weight: 600;
  color: var(--gray-500);
  background: none;
  border: none;
  cursor: pointer;
  padding: 0;
  margin-bottom: 1.25rem;
  transition: color .15s;
}
.aulas-back-btn:hover { color: var(--blue); }

.aulas-detail__header {
  display: flex;
  align-items: center;
  gap: 14px;
  margin-bottom: .75rem;
}
.aulas-detail__icon {
  width: 52px;
  height: 52px;
  border-radius: 14px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 26px;
  flex-shrink: 0;
}
.aulas-detail__title {
  font-size: 22px;
  font-weight: 800;
  color: var(--gray-800);
}
.aulas-detail__meta {
  font-size: 12px;
  color: var(--gray-400);
  margin-top: 3px;
}
.aulas-detail__pct {
  font-size: 28px;
  font-weight: 900;
  margin-left: auto;
}

/* ── Legenda de status ── */
.aulas-legend {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
  margin-bottom: 1.5rem;
  padding: .75rem 1rem;
  background: var(--gray-50);
  border-radius: 10px;
  border: 1px solid var(--gray-100);
}
.aulas-legend__hint {
  font-size: 11px;
  color: var(--gray-400);
  margin-left: auto;
}

/* ── Blocos por disciplina ── */
.aulas-subjects { display: flex; flex-direction: column; gap: 1.25rem; }
.aulas-subject-block {
  background: var(--white);
  border: 1px solid var(--gray-100);
  border-radius: 14px;
  overflow: hidden;
}
.aulas-subject-header {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  column-gap: 10px;
  row-gap: 8px;
  padding: .7rem 1rem;
  background: var(--gray-50);
  border-bottom: 1px solid var(--gray-100);
  cursor: pointer;
  user-select: none;
  transition: background .12s;
}
.aulas-subject-header:hover { background: var(--gray-100); }
.aulas-subject-block--collapsed .aulas-subject-header { border-bottom: none; }
/* Os 3 grupos do cabeçalho (título / badges+% / ações) ficam lado a lado
   quando cabem na linha; no celular, cada grupo que não couber quebra pra
   linha própria (ver media query), em vez de espremer o texto do título. */
.aulas-subject-title {
  display: flex;
  align-items: center;
  gap: 10px;
  flex: 1 1 200px;
  min-width: 0;
}
.aulas-subject-meta {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-shrink: 0;
}
.aulas-subject-actions {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 8px;
  flex-shrink: 0;
}
.aulas-subject-chevron {
  flex-shrink: 0;
  color: var(--gray-400);
  transition: transform .18s;
}
.aulas-subject-block--collapsed .aulas-subject-chevron { transform: rotate(-90deg); }
.aulas-subject-name {
  flex: 1;
  min-width: 0;
  font-size: 15px;
  font-weight: 700;
  color: var(--gray-700);
}
.aulas-subject-count {
  flex-shrink: 0;
  font-size: 11px;
  font-weight: 700;
  color: var(--gray-500);
  background: var(--gray-100);
  border-radius: 20px;
  padding: 2px 9px;
}
.aulas-subject-prog {
  flex-shrink: 0;
  font-size: 14px;
  font-weight: 700;
}
.aulas-module-done-btn {
  flex-shrink: 0;
  display: inline-flex;
  align-items: center;
  gap: 5px;
  font-family: inherit;
  font-size: 11px;
  font-weight: 700;
  color: var(--blue);
  background: #eff6ff;
  border: 1px solid #dbeafe;
  border-radius: 8px;
  padding: 5px 11px;
  cursor: pointer;
  white-space: nowrap;
  transition: background .12s, color .12s, border-color .12s;
}
.aulas-module-done-btn:hover { background: var(--blue); color: #fff; border-color: var(--blue); }
.aulas-module-playlist-btn {
  flex-shrink: 0;
  display: inline-flex;
  align-items: center;
  gap: 5px;
  font-family: inherit;
  font-size: 11px;
  font-weight: 700;
  color: #dc2626;
  background: #fef2f2;
  border: 1px solid #fecaca;
  border-radius: 8px;
  padding: 5px 10px;
  cursor: pointer;
  text-decoration: none;
  white-space: nowrap;
  transition: background .12s, color .12s, border-color .12s;
}
.aulas-module-playlist-btn:hover { background: #dc2626; color: #fff; border-color: #dc2626; }
.aulas-module-playlist-btn svg { flex-shrink: 0; }
.aulas-module-done-btn--done {
  color: #16a34a;
  background: #f0fdf4;
  border-color: #bbf7d0;
  cursor: default;
}
.aulas-module-done-btn--done:hover { background: #f0fdf4; color: #16a34a; border-color: #bbf7d0; }

/* ── Atalho global: recolher / expandir tudo ── */
.aulas-tools {
  display: flex;
  justify-content: flex-end;
  margin-bottom: 1rem;
}
.aulas-tool-btn {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-family: inherit;
  font-size: 12px;
  font-weight: 700;
  color: var(--gray-600);
  background: var(--white);
  border: 1px solid var(--gray-200);
  border-radius: 8px;
  padding: 7px 14px;
  cursor: pointer;
  transition: background .12s, border-color .12s;
}
.aulas-tool-btn:hover { background: var(--gray-50); border-color: var(--gray-300); }

/* ── Lista de aulas ── */
.aulas-list { display: flex; flex-direction: column; }
.aulas-item {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: .7rem 1rem;
  cursor: pointer;
  transition: background .12s;
  border-bottom: 1px solid var(--gray-100);
}
.aulas-item:last-child { border-bottom: none; }
.aulas-item:hover { background: var(--gray-50); }
.aulas-item:active { background: var(--gray-100); }
.aulas-item__dot { font-size: 15px; flex-shrink: 0; }
.aulas-item__title {
  flex: 1;
  font-size: 15px;
  color: var(--gray-700);
  font-weight: 500;
  line-height: 1.4;
}
.aulas-status-badge {
  font-size: 11px;
  font-weight: 700;
  padding: 4px 10px;
  border-radius: 999px;
  white-space: nowrap;
  flex-shrink: 0;
}
.aulas-priority-badge {
  font-size: 10px;
  font-weight: 700;
  padding: 3px 8px;
  border-radius: 999px;
  white-space: nowrap;
  flex-shrink: 0;
  text-transform: uppercase;
  letter-spacing: .4px;
}
.aulas-priority-badge--essencial    { color: #dc2626; background: #fef2f2; }
.aulas-priority-badge--importante   { color: #d97706; background: #fffbeb; }
.aulas-priority-badge--complementar { color: #64748b; background: #f1f5f9; }
.aulas-priority-badge--module { flex-shrink: 0; border: 1px solid currentColor; }

/* ── Revisões: stepper "-/+" reutilizado na aula e no módulo ──
   Editável de propósito (não só "+1"): corrigir um clique errado é só
   clicar no "-", sem confirmação. */
.aulas-rev-slot {
  flex-shrink: 0;
  min-width: 108px;
  display: flex;
  justify-content: flex-end;
}
.aulas-rev-wrap {
  display: flex;
  align-items: center;
  gap: 7px;
}
.aulas-rev-stepper {
  flex-shrink: 0;
  display: inline-flex;
  align-items: center;
  gap: 1px;
  background: #eff6ff;
  border: 1px solid #dbeafe;
  border-radius: 999px;
  padding: 2px;
}
.aulas-rev-stepper--zero {
  background: var(--gray-100);
  border-color: var(--gray-200);
}
.aulas-rev-step-btn {
  width: 20px;
  height: 20px;
  flex-shrink: 0;
  border-radius: 50%;
  border: none;
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: inherit;
  font-weight: 700;
  font-size: 13px;
  line-height: 1;
  color: var(--blue);
  background: #fff;
  cursor: pointer;
  padding: 0;
  transition: background .12s, color .12s;
}
.aulas-rev-step-btn:hover:not(:disabled) { background: var(--blue); color: #fff; }
.aulas-rev-step-btn:disabled { color: var(--gray-300); cursor: not-allowed; }
.aulas-rev-count {
  min-width: 20px;
  text-align: center;
  font-variant-numeric: tabular-nums;
  font-weight: 700;
  font-size: 12px;
  color: var(--gray-700);
}
.aulas-rev-count small { font-size: 9px; font-weight: 700; color: var(--gray-500); margin-left: 1px; }
.aulas-rev-stepper--zero .aulas-rev-count { color: var(--gray-500); }
.aulas-rev-date {
  font-size: 11px;
  color: var(--gray-500);
  white-space: nowrap;
}

.aulas-mod-rev-btn {
  flex-shrink: 0;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-size: 11px;
  font-weight: 700;
  color: var(--blue);
  white-space: nowrap;
}

/* ── Estatísticas de Revisão ── */
.aulas-stats-card {
  background: var(--white);
  border: 1px solid var(--gray-100);
  border-radius: 14px;
  padding: 1.25rem 1.4rem;
  margin-bottom: 1rem;
}
.aulas-stats-card h3 {
  font-size: 13px;
  font-weight: 700;
  color: var(--gray-700);
  margin: 0 0 .9rem;
}
.aulas-stats-bar-row {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 10px;
}
.aulas-stats-bar-row:last-child { margin-bottom: 0; }
.aulas-stats-bar-row__label {
  flex: 0 0 150px;
  font-size: 12px;
  font-weight: 600;
  color: var(--gray-600);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.aulas-stats-bar-row__track {
  flex: 1;
  height: 10px;
  background: var(--gray-100);
  border-radius: 999px;
  overflow: hidden;
}
.aulas-stats-bar-row__fill {
  height: 100%;
  border-radius: 999px;
  transition: width .5s ease;
}
.aulas-stats-bar-row__value {
  flex-shrink: 0;
  min-width: 24px;
  text-align: right;
  font-size: 12px;
  font-weight: 700;
  font-variant-numeric: tabular-nums;
  color: var(--gray-700);
}
.aulas-stats-row {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: .6rem 0;
  border-bottom: 1px solid var(--gray-100);
  cursor: pointer;
  transition: background .12s;
}
.aulas-stats-row:last-child { border-bottom: none; }
.aulas-stats-row:hover { background: var(--gray-50); }
.aulas-stats-row__area {
  flex-shrink: 0;
  width: 30px;
  height: 30px;
  border-radius: 9px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 15px;
}
.aulas-stats-row__info { flex: 1; min-width: 0; }
.aulas-stats-row__titulo {
  font-size: 13px;
  font-weight: 700;
  color: var(--gray-700);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.aulas-stats-row__meta {
  font-size: 11px;
  color: var(--gray-400);
  margin-top: 2px;
}
.aulas-stats-row__count {
  flex-shrink: 0;
  font-size: 13px;
  font-weight: 700;
  color: var(--blue);
  font-variant-numeric: tabular-nums;
}
.aulas-stats-row__count small { font-size: 10px; margin-left: 1px; }

/* ── Metodologia: checklist do que já foi trabalhado nas mentorias ── */
.meto-categoria-group { margin-bottom: 22px; }
.meto-categoria-group__title {
  font-size: 12px; font-weight: 700; color: var(--gray-500); text-transform: uppercase;
  letter-spacing: .05em; margin-bottom: 10px;
}
.meto-tema-row {
  display: flex; align-items: center; justify-content: space-between; gap: 12px;
  padding: 12px 16px; border-radius: 10px; margin-bottom: 8px;
  background: var(--white);
  border: 1px solid var(--gray-200);
}
body.plat-dark #schedulingScreen .meto-tema-row { background: #1e2d47; border-color: rgba(255,255,255,.14); }
.meto-tema-row__titulo { font-size: 14px; font-weight: 600; color: var(--gray-800); }
.meto-status-badge {
  font-size: 11px; font-weight: 700; padding: 4px 10px; border-radius: 999px;
  white-space: nowrap; flex-shrink: 0; text-transform: uppercase; letter-spacing: .3px;
  border: 1px solid transparent;
}
.meto-status-badge--nao_iniciado { color: #6b7280; background: #f1f5f9; }
.meto-status-badge--em_andamento { color: #d97706; background: #fffbeb; }
.meto-status-badge--concluido    { color: #16a34a; background: #f0fdf4; }

body.plat-dark #schedulingScreen .meto-status-badge--nao_iniciado {
  color: #cbd5e1; background: rgba(203, 213, 225, .12); border-color: rgba(203, 213, 225, .22);
}
body.plat-dark #schedulingScreen .meto-status-badge--em_andamento {
  color: #fcd34d; background: rgba(180, 130, 0, .18); border-color: rgba(180, 130, 0, .30);
}
body.plat-dark #schedulingScreen .meto-status-badge--concluido {
  color: #86efac; background: rgba(22, 163, 74, .18); border-color: rgba(22, 163, 74, .32);
}

/* ── Grade de sub-áreas (Física / Química / Biologia) ── */
.aulas-subarea-grid {
  display: flex;
  flex-direction: column;
  gap: 16px;
}

.aulas-subarea-card {
  background: var(--white);
  border: 1px solid var(--gray-100);
  border-radius: 18px;
  padding: 1.4rem 1.4rem 1rem;
  cursor: pointer;
  transition: box-shadow .15s, transform .15s;
  display: flex;
  flex-direction: column;
}
.aulas-subarea-card:hover {
  box-shadow: 0 6px 28px rgba(0,0,0,.10);
  transform: translateY(-3px);
}
.aulas-subarea-card__top {
  display: flex;
  align-items: center;
  gap: 14px;
}
.aulas-subarea-card__icon {
  width: 58px;
  height: 58px;
  border-radius: 16px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 28px;
  flex-shrink: 0;
}
.aulas-subarea-card__info { flex: 1; min-width: 0; }
.aulas-subarea-card__name {
  font-size: 20px;
  font-weight: 800;
  color: var(--gray-800);
  line-height: 1.15;
}
.aulas-subarea-card__meta {
  font-size: 13px;
  color: var(--gray-400);
  margin-top: 3px;
}
.aulas-subarea-card__pct {
  font-size: 30px;
  font-weight: 900;
  flex-shrink: 0;
}
.aulas-subarea-card__footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-top: 10px;
}
.aulas-subarea-card__hint {
  font-size: 12px;
  color: var(--gray-400);
}
.aulas-subarea-card__cta {
  font-size: 14px;
  font-weight: 700;
  color: var(--blue);
}

/* ── Responsive ── */
@media (max-width: 640px) {
  .aulas-grid { grid-template-columns: 1fr; }
  .aulas-header { flex-direction: column; gap: 8px; }
  .aulas-legend__hint { display: none; }
  .aulas-detail__pct { font-size: 22px; }
  .aulas-subarea-card__pct { font-size: 24px; }
  .aulas-subarea-card__name { font-size: 18px; }
  .aulas-subarea-card__icon { width: 50px; height: 50px; font-size: 24px; }

  /* Cabeçalho de módulo: 3 linhas empilhadas (título / badges+% / ações),
     cada uma alinhada com recuo sob o nome do módulo (chevron + gap ≈ 26px) */
  .aulas-subject-header { padding: .65rem .8rem; row-gap: 8px; }
  .aulas-subject-name { font-size: 14px; }
  .aulas-subject-title { flex-basis: 100%; }
  .aulas-subject-count { display: none; }
  .aulas-subject-meta,
  .aulas-subject-actions { flex-basis: 100%; padding-left: 26px; }
  .aulas-subject-actions { justify-content: flex-start; }
  .aulas-module-done-btn { padding: 5px 9px; font-size: 10.5px; }
  /* No celular o botão de playlist fica só com o ícone de play (economiza espaço) */
  .aulas-module-playlist-btn { padding: 5px 8px; }
  .aulas-module-playlist-btn__txt { display: none; }

  /* Revisão: no celular a linha da aula quebra em 2 (título em cima, status+revisão embaixo) */
  .aulas-item { flex-wrap: wrap; }
  .aulas-rev-slot { min-width: 0; margin-left: auto; }
  .aulas-mod-rev-btn { flex-basis: 100%; justify-content: space-between; }
}

/* ══════════════════════════════════════════════════════════════
   DASHBOARD
   ══════════════════════════════════════════════════════════════ */

.dash { display: flex; flex-direction: column; gap: 16px; padding-bottom: 2rem; }

/* ── Greeting ── */
.dash-greeting {
  background: linear-gradient(135deg, #0d1e38 0%, #102040 100%);
  border: 1px solid rgba(96,165,250,.15);
  border-radius: 18px;
  padding: 1.25rem 1.5rem;
  display: flex;
  align-items: center;
  gap: 1rem;
  position: relative;
  overflow: hidden;
}
.dash-greeting::after {
  content: '';
  position: absolute;
  top: -40px; right: -40px;
  width: 160px; height: 160px;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(37,99,235,.18) 0%, transparent 70%);
  pointer-events: none;
}
.dash-greeting__avatar {
  width: 50px; height: 50px;
  border-radius: 50%;
  background: linear-gradient(135deg, #1e3a8a, #1d4ed8);
  color: #fff;
  font-size: 21px;
  font-weight: 800;
  font-family: var(--ff-display);
  display: flex; align-items: center; justify-content: center;
  flex-shrink: 0;
  box-shadow: 0 4px 18px rgba(37,99,235,.45);
  letter-spacing: -.02em;
}
.dash-greeting__content { flex: 1; min-width: 0; }
.dash-greeting__title {
  font-family: var(--ff-display);
  font-size: clamp(1.1rem, 2.2vw, 1.4rem);
  color: #ffffff;
  margin: 0; line-height: 1.2;
}
.dash-greeting__date {
  font-size: 12px;
  color: #93c5fd;
  margin: 4px 0 0;
  text-transform: capitalize;
}
.dash-greeting__badges {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 6px;
  flex-shrink: 0;
}
.dash-greeting__badge {
  display: flex; align-items: center; gap: 5px;
  background: rgba(37,99,235,.25);
  border: 1px solid rgba(96,165,250,.25);
  border-radius: 999px;
  padding: 4px 12px;
  font-size: 11px;
  font-weight: 700;
  color: #93c5fd;
  white-space: nowrap;
  flex-shrink: 0;
}
.dash-greeting__badge--credits {
  background: rgba(217,119,6,.18);
  border-color: rgba(251,191,36,.3);
  color: #fbbf24;
}

/* ── KPIs ── */
.dash-kpis {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 12px;
}
.dash-kpi {
  background: var(--white);
  border: 1px solid var(--gray-100);
  border-radius: 16px;
  padding: 1.1rem 1rem;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 4px;
  text-align: center;
}
.dash-kpi__icon {
  font-size: 20px;
  width: 42px;
  height: 42px;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 12px;
  background: rgba(37, 99, 235, 0.07);
  margin-bottom: 4px;
}
.dash-kpi__value {
  font-size: 22px;
  font-weight: 800;
  color: var(--gray-800);
  line-height: 1.1;
}
.dash-kpi__label {
  font-size: 11px;
  color: var(--gray-400);
  font-weight: 500;
}

/* ── Zonas do dashboard (Hoje / Seu histórico / Sua rotina) ── */
.dash-zone-label {
  font-size: 11px;
  font-weight: 800;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: var(--gray-400);
  margin: 1.75rem 0 -.35rem;
  padding-left: 2px;
}
.dash-zone-label:first-of-type { margin-top: .5rem; }

/* "Seu histórico" — 6 KPIs vitalícias numa grade só (3 colunas × 2 linhas) */
.dash-kpis--historico { grid-template-columns: repeat(3, 1fr); }
@media (max-width: 640px) {
  .dash-kpis--historico { grid-template-columns: repeat(2, 1fr); }
}

/* ── Atividade combinada de hoje (Questões + Flashcards, plataforma + Cronômetro) ── */
.dash-kpis--atividade {
  grid-template-columns: repeat(2, 1fr);
  margin-top: 12px;
}
.dash-kpi--atividade { padding: 1.3rem 1rem; }
.dash-kpi--atividade .dash-kpi__icon {
  width: 46px;
  height: 46px;
  background: rgba(37, 99, 235, 0.09);
  color: var(--blue);
}
.dash-kpi--atividade .dash-kpi__value { font-size: 26px; }
.dash-kpi__sub {
  font-size: 10.5px;
  color: var(--gray-400);
  font-weight: 500;
  margin-top: 2px;
}
@media (max-width: 480px) {
  .dash-kpis--atividade { grid-template-columns: 1fr; }
}

/* ── Cards genéricos ── */
.dash-card {
  background: var(--white);
  border: 1px solid var(--gray-100);
  border-radius: 16px;
  padding: 1.25rem;
  flex: 1;
  min-width: 0;
}
.dash-card__title {
  font-size: 13px;
  font-weight: 700;
  color: var(--gray-700);
  margin-bottom: 1rem;
}
.dash-row {
  display: flex;
  gap: 16px;
}

/* ── Gamificação: Nível vitalício + Desafio diário + Streak ── */
.dash-row--gam {
  align-items: stretch;
}
.gam-nivel-card,
.gam-desafio-card,
.gam-streak-card {
  background: var(--white);
  border: 1px solid var(--gray-100);
  border-radius: 16px;
  padding: 1.1rem 1.25rem;
  flex: 1;
  min-width: 0;
}
.gam-nivel-card {
  flex: 1.4;
  background: linear-gradient(135deg, #eef4ff 0%, #f7faff 100%);
  border-color: rgba(37, 99, 235, .14);
  display: flex;
  align-items: center;
  gap: .9rem;
  text-align: left;
  font-family: inherit;
  cursor: pointer;
  transition: transform .15s ease, box-shadow .15s ease;
}
.gam-nivel-card:hover {
  transform: translateY(-1px);
  box-shadow: 0 6px 18px rgba(37, 99, 235, .12);
}
.gam-nivel-card__icon {
  width: 52px;
  height: 52px;
  flex-shrink: 0;
  border-radius: 50%;
  object-fit: cover;
}
.gam-nivel-card__icon--fallback {
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 26px;
  background: rgba(37, 99, 235, .1);
}
.gam-nivel-card__body { flex: 1; min-width: 0; }
.gam-nivel-card__top {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  margin-bottom: .6rem;
}
.gam-nivel-card__nome {
  font-size: 16px;
  font-weight: 800;
  color: var(--blue);
}
.gam-nivel-card__xp {
  font-size: 13px;
  font-weight: 700;
  color: var(--gray-500);
}
.gam-progress-bar {
  width: 100%;
  height: 8px;
  border-radius: 999px;
  background: rgba(37, 99, 235, .12);
  overflow: hidden;
}
.gam-progress-bar__fill {
  height: 100%;
  border-radius: 999px;
  background: linear-gradient(90deg, var(--blue), var(--blue-light));
  transition: width .4s ease;
}
.gam-nivel-card__sub {
  margin-top: .5rem;
  font-size: 12px;
  color: var(--gray-500);
  font-weight: 500;
}

.gam-desafio-card__title {
  font-size: 13px;
  font-weight: 700;
  color: var(--gray-700);
  margin-bottom: .5rem;
}
.gam-desafio-card__nums {
  display: flex;
  gap: 14px;
  align-items: baseline;
  margin-bottom: .4rem;
}
.gam-desafio-card__hoje {
  font-size: 20px;
  font-weight: 800;
  color: var(--gray-800);
}
.gam-desafio-card__ontem {
  font-size: 12px;
  color: var(--gray-400);
  font-weight: 600;
}
.gam-desafio-card__msg {
  font-size: 12px;
  font-weight: 600;
  color: var(--gray-500);
}
.gam-desafio-card__msg--up { color: #16a34a; }
.gam-desafio-card__meta {
  margin-top: .35rem;
  font-size: 11px;
  color: var(--gray-400);
}
.gam-desafio-card__chips {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin-top: .6rem;
}
.gam-chip-hoje {
  font-size: 11px;
  font-weight: 700;
  color: var(--gray-600);
  background: var(--gray-100);
  border-radius: 20px;
  padding: 3px 9px;
  white-space: nowrap;
}

.gam-streak-card {
  flex: .7;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
  gap: 2px;
}
.gam-streak-card__icon { font-size: 22px; }
.gam-streak-card__num {
  font-size: 24px;
  font-weight: 800;
  color: var(--gray-800);
  line-height: 1.1;
}
.gam-streak-card__label {
  font-size: 11px;
  color: var(--gray-400);
  font-weight: 500;
}

@media (max-width: 720px) {
  .dash-row--gam { flex-direction: column; }
  .gam-nivel-card { flex-direction: column; align-items: flex-start; }
}

/* ── Tela "Meu Nível" (detalhe: breakdown, trajetória, roadmap) ── */
.gam-voltar-btn {
  align-self: flex-start;
  background: none;
  border: none;
  color: var(--blue);
  font-size: 13px;
  font-weight: 700;
  cursor: pointer;
  padding: 4px 0;
  margin-bottom: .25rem;
  font-family: inherit;
}
.gam-voltar-btn:hover { text-decoration: underline; }

.gam-detalhe-header {
  display: flex;
  align-items: center;
  gap: 1rem;
  background: linear-gradient(135deg, #eef4ff 0%, #f7faff 100%);
  border: 1px solid rgba(37, 99, 235, .14);
  border-radius: 16px;
  padding: 1.25rem;
}
.gam-detalhe-header__icon {
  width: 72px;
  height: 72px;
  border-radius: 50%;
  object-fit: cover;
  flex-shrink: 0;
}
.gam-detalhe-header__icon--fallback {
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 34px;
  background: rgba(37, 99, 235, .1);
}
.gam-detalhe-header__nome {
  font-size: 20px;
  font-weight: 800;
  color: var(--blue);
}
.gam-detalhe-header__xp {
  font-size: 13px;
  color: var(--gray-500);
  font-weight: 600;
  margin-top: 2px;
}

.gam-breakdown { display: flex; flex-direction: column; gap: .7rem; }
.gam-breakdown-row {
  display: grid;
  grid-template-columns: 180px 1fr 64px;
  align-items: center;
  gap: 10px;
}
.gam-breakdown-row__info {
  display: flex;
  align-items: center;
  gap: 6px;
  font-size: 13px;
  color: var(--gray-700);
  font-weight: 600;
  min-width: 0;
}
.gam-breakdown-row__label {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.gam-breakdown-row__bar-wrap {
  height: 8px;
  border-radius: 999px;
  background: var(--gray-100);
  overflow: hidden;
}
.gam-breakdown-row__bar {
  height: 100%;
  border-radius: 999px;
  background: linear-gradient(90deg, var(--blue), var(--blue-light));
}
.gam-breakdown-row__xp {
  font-size: 12px;
  font-weight: 700;
  color: var(--gray-600);
  text-align: right;
}
.gam-breakdown__nota {
  margin-top: .4rem;
  font-size: 12px;
  color: var(--gray-400);
}

.gam-svg-trajetoria { width: 100%; height: auto; display: block; }

.gam-roadmap { display: flex; flex-direction: column; gap: .6rem; }
.gam-roadmap-item {
  display: flex;
  align-items: center;
  gap: .8rem;
  padding: .7rem .9rem;
  border-radius: 12px;
  border: 1px solid var(--gray-100);
}
.gam-roadmap-item__icon {
  width: 40px;
  height: 40px;
  border-radius: 50%;
  object-fit: cover;
  flex-shrink: 0;
}
.gam-roadmap-item__icon--fallback {
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 20px;
  background: rgba(37, 99, 235, .1);
}
.gam-roadmap-item__body { flex: 1; min-width: 0; }
.gam-roadmap-item__nome { font-size: 14px; font-weight: 700; color: var(--gray-800); }
.gam-roadmap-item__req { font-size: 12px; color: var(--gray-400); margin-top: 1px; }
.gam-roadmap-item__status {
  font-size: 11px;
  font-weight: 700;
  padding: 4px 10px;
  border-radius: 20px;
  white-space: nowrap;
}
.gam-roadmap-item--atual { border-color: rgba(37, 99, 235, .3); background: rgba(37, 99, 235, .04); }
.gam-roadmap-item__status--atual { background: var(--blue); color: #fff; }
.gam-roadmap-item__status--alcancado { background: #dcfce7; color: #15803d; }
.gam-roadmap-item__status--bloqueado { background: var(--gray-100); color: var(--gray-400); }
.gam-roadmap-item--bloqueado { opacity: .6; }

/* ── "Como funciona o XP" — lista de valores, sem barra (não é comparativo) ── */
.gam-valores { display: flex; flex-direction: column; gap: .55rem; }
.gam-valor-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: .5rem 0;
  border-bottom: 1px solid var(--gray-100);
}
.gam-valor-row:last-child { border-bottom: none; }
.gam-valor-row__info {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 13px;
  color: var(--gray-700);
  font-weight: 600;
}
.gam-valor-row__xp {
  flex-shrink: 0;
  font-size: 12px;
  font-weight: 700;
  color: var(--blue);
  white-space: nowrap;
  text-align: right;
}
.gam-valor-row__extra {
  font-size: 12px;
  color: var(--gray-400);
  padding: .1rem 0 .1rem 23px;
  margin-top: -.3rem;
}

/* ── Modal de subida de nível ── */
.gam-levelup__icon {
  width: 84px;
  height: 84px;
  border-radius: 50%;
  object-fit: cover;
  margin: 0 auto 18px;
  display: block;
}
.gam-levelup__icon--fallback {
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 40px;
  background: rgba(37, 99, 235, .1);
}
.gam-levelup__nome { color: var(--blue); }

@media (max-width: 640px) {
  .gam-breakdown-row { grid-template-columns: 1fr; row-gap: 4px; }
  .gam-breakdown-row__xp { text-align: left; }
}
.dash-empty {
  font-size: 13px;
  color: var(--gray-400);
  text-align: center;
  padding: 1.5rem 0;
  margin: 0;
}

/* ── Novidades (avisos do dashboard) ── */
.dash-aviso__badge-count {
  display: inline-block;
  background: var(--blue);
  color: #fff;
  font-size: 10px;
  font-weight: 700;
  border-radius: 999px;
  padding: 2px 8px;
  margin-left: 6px;
  vertical-align: middle;
}
.dash-avisos-list {
  display: flex;
  flex-direction: column;
  gap: 10px;
}
.dash-aviso {
  position: relative;
  display: flex;
  gap: 10px;
  background: var(--gray-50);
  border: 1px solid var(--gray-100);
  border-radius: 12px;
  padding: 12px 14px 12px 20px;
  cursor: pointer;
  transition: background .15s;
}
.dash-aviso:hover { background: var(--gray-100); }
.dash-aviso--novo { background: rgba(37, 99, 235, 0.06); border-color: rgba(37, 99, 235, 0.2); }
.dash-aviso__dot {
  position: absolute;
  left: 8px;
  top: 18px;
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: var(--blue);
}
.dash-aviso__body { flex: 1; min-width: 0; }
.dash-aviso__titulo { font-size: 13.5px; font-weight: 700; color: var(--gray-700); margin-bottom: 3px; }
.dash-aviso__corpo { font-size: 12.5px; color: var(--gray-500); line-height: 1.5; }
.dash-aviso__data { font-size: 11px; color: var(--gray-400); margin-top: 6px; }

/* ── Gráfico semanal ── */
.dash-week-chart {
  display: flex;
  align-items: flex-end;
  gap: 6px;
  height: 120px;
}
.dash-week-col {
  flex: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 4px;
  height: 100%;
}
.dash-week-col--today .dash-week-bar { background: var(--blue) !important; }
.dash-week-col--today .dash-week-day { color: var(--blue); font-weight: 700; }
.dash-week-label-top {
  font-size: 9px;
  color: var(--gray-400);
  white-space: nowrap;
  min-height: 14px;
}
.dash-week-bar-wrap {
  flex: 1;
  width: 100%;
  display: flex;
  align-items: flex-end;
}
.dash-week-bar {
  width: 100%;
  background: var(--blue-light);
  border-radius: 6px 6px 4px 4px;
  min-height: 0;
  transition: height .4s ease;
  opacity: .75;
}
.dash-week-day {
  font-size: 10px;
  color: var(--gray-400);
}

/* ── Matérias ── */
.dash-subjects { display: flex; flex-direction: column; gap: 10px; }
.dash-subj-row {
  display: grid;
  grid-template-columns: 140px 1fr 52px;
  align-items: center;
  gap: 10px;
}
.dash-subj-info { display: flex; align-items: center; gap: 6px; }
.dash-subj-emoji { font-size: 15px; }
.dash-subj-name { font-size: 13px; color: var(--gray-700); font-weight: 500; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.dash-subj-bar-wrap { height: 8px; background: var(--gray-100); border-radius: 999px; overflow: hidden; }
.dash-subj-bar { height: 100%; border-radius: 999px; transition: width .5s ease; }
.dash-subj-time { font-size: 12px; color: var(--gray-500); text-align: right; white-space: nowrap; }

/* ── Heatmap ── */
.dash-cal-month {
  font-size: 12px;
  font-weight: 700;
  color: var(--gray-600);
  text-transform: capitalize;
  margin-bottom: 8px;
}
.dash-cal-header, .dash-cal-grid {
  display: grid;
  grid-template-columns: repeat(7, 1fr);
  gap: 4px;
}
.dash-cal-header { margin-bottom: 4px; }
.dash-cal-dow {
  font-size: 10px;
  font-weight: 600;
  color: var(--gray-400);
  text-align: center;
}
.dash-cal-cell {
  aspect-ratio: 1;
  border-radius: 6px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 10px;
  color: var(--gray-500);
  font-weight: 500;
  cursor: default;
}
.dash-cal-cell--empty { background: transparent; }
.dash-cal-cell--lvl0 { background: var(--gray-100); color: var(--gray-400); }
.dash-cal-cell--lvl1 { background: #bfdbfe; color: #1e40af; }
.dash-cal-cell--lvl2 { background: #93c5fd; color: #1e3a8a; }
.dash-cal-cell--lvl3 { background: #3b82f6; color: #fff; }
.dash-cal-cell--lvl4 { background: #1d4ed8; color: #fff; font-weight: 700; }
.dash-cal-cell--today { outline: 2px solid var(--blue); outline-offset: -2px; }

/* ── Cronograma planejado ── */
.dash-plan-total {
  font-size: 22px;
  font-weight: 800;
  color: var(--gray-800);
  margin-bottom: 12px;
}
.dash-plan-total span {
  font-size: 12px;
  font-weight: 500;
  color: var(--gray-400);
  margin-left: 4px;
}
.dash-plan-bars { display: flex; flex-direction: column; gap: 8px; }
.dash-plan-row {
  display: grid;
  grid-template-columns: 100px 1fr 44px;
  align-items: center;
  gap: 8px;
}
.dash-plan-name { font-size: 12px; color: var(--gray-600); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.dash-plan-bar-wrap { height: 7px; background: var(--gray-100); border-radius: 999px; overflow: hidden; }
.dash-plan-bar { height: 100%; background: var(--blue-light); border-radius: 999px; transition: width .5s ease; }
.dash-plan-time { font-size: 11px; color: var(--gray-400); text-align: right; }

/* ── Quiz ── */
.dash-quiz-row { display: flex; align-items: center; gap: 20px; }
.dash-quiz-ring { position: relative; width: 80px; height: 80px; flex-shrink: 0; }
.dash-quiz-svg { width: 80px; height: 80px; transform: rotate(-90deg); }
.dash-quiz-ring-label {
  position: absolute; inset: 0;
  display: flex; align-items: center; justify-content: center;
  font-size: 16px; font-weight: 800;
}
.dash-quiz-stats { display: flex; flex-direction: column; gap: 5px; }
.dash-quiz-stat { font-size: 13px; color: var(--gray-500); }
.dash-quiz-stat span { font-weight: 700; color: var(--gray-800); font-size: 15px; }

/* ── Simulados ── */
.dash-sim-list { display: flex; flex-direction: column; gap: 8px; }
.dash-sim-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 8px 10px;
  background: var(--gray-50);
  border-radius: 10px;
  border: 1px solid var(--gray-100);
}
.dash-sim-name { font-size: 13px; font-weight: 600; color: var(--gray-700); }
.dash-sim-date { font-size: 11px; color: var(--gray-400); margin-top: 2px; }
.dash-sim-right { text-align: right; }
.dash-sim-score { font-size: 14px; font-weight: 700; }
.dash-sim-pct { font-size: 11px; font-weight: 600; }

/* ── Sessões recentes ── */
.dash-recent-list { display: flex; flex-direction: column; gap: 8px; }
.dash-recent-row {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 8px 10px;
  background: var(--gray-50);
  border-radius: 10px;
  border: 1px solid var(--gray-100);
}
.dash-recent-emoji { font-size: 22px; flex-shrink: 0; }
.dash-recent-info { flex: 1; min-width: 0; }
.dash-recent-subj { font-size: 13px; font-weight: 700; }
.dash-recent-date { font-size: 11px; color: var(--gray-400); margin-top: 2px; }
.dash-recent-meta { display: flex; flex-direction: column; align-items: flex-end; gap: 3px; flex-shrink: 0; }
.dash-recent-dur, .dash-recent-focus { font-size: 12px; color: var(--gray-500); white-space: nowrap; }

/* ── KPI accent ── */
.dash-kpi--accent {
  background: linear-gradient(135deg, #eff6ff, #f0fdf4);
  border-color: #bfdbfe;
}
.dash-kpi--accent .dash-kpi__value { color: var(--blue); }

/* ── Bloco de Mentorias ── */
.dash-mentoria {
  border-radius: 16px;
  border: 1.5px solid #e2e8f0;
  background: #fff;
  padding: 16px 20px;
  margin-bottom: 4px;
}
.dash-mentoria--loading,
.dash-mentoria--empty {
  display: flex;
  align-items: center;
  gap: 14px;
  color: #64748b;
}
.dash-mentoria--loading .dash-mentoria__icon,
.dash-mentoria--empty .dash-mentoria__icon { font-size: 22px; flex-shrink: 0; }
.dash-mentoria--empty .dash-mentoria__body { flex: 1; }
.dash-mentoria__title { font-size: 14px; font-weight: 600; color: #334155; }
.dash-mentoria__sub   { font-size: 12px; color: #94a3b8; margin-top: 2px; }
.dash-mentoria__text  { font-size: 14px; font-weight: 500; color: #94a3b8; }
.dash-mentoria__btn {
  flex-shrink: 0;
  padding: 7px 16px;
  border-radius: 8px;
  background: #2563EB;
  color: #fff;
  font-size: 13px;
  font-weight: 600;
  border: none;
  cursor: pointer;
}
.dash-mentoria__btn:hover { background: #1d4ed8; }

.dash-mentoria--has {
  background: linear-gradient(135deg, #eff6ff 0%, #f8fafc 100%);
  border-color: #bfdbfe;
}
.dash-mentoria__header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 12px;
}
.dash-mentoria__header-title { font-size: 14px; font-weight: 700; color: #1e40af; }
.dash-mentoria__header-count {
  font-size: 12px;
  font-weight: 600;
  color: #2563EB;
  background: #dbeafe;
  border-radius: 20px;
  padding: 2px 10px;
}
.dash-mentoria__items { display: flex; flex-direction: column; gap: 8px; }
.dash-mentoria__item {
  display: flex;
  align-items: center;
  gap: 12px;
  background: #fff;
  border-radius: 10px;
  border: 1px solid #dbeafe;
  padding: 10px 14px;
}
.dash-mentoria__item--today {
  border-color: #2563EB;
  background: #eff6ff;
}
.dash-mentoria__item-pulse {
  width: 8px; height: 8px;
  border-radius: 50%;
  background: #cbd5e1;
  flex-shrink: 0;
}
.dash-mentoria__item-pulse--on {
  background: #2563EB;
  box-shadow: 0 0 0 3px rgba(37,99,235,.2);
  animation: mentoriaPulse 1.8s infinite;
}
@keyframes mentoriaPulse {
  0%,100% { box-shadow: 0 0 0 3px rgba(37,99,235,.2); }
  50%      { box-shadow: 0 0 0 6px rgba(37,99,235,.05); }
}
.dash-mentoria__item-info { flex: 1; }
.dash-mentoria__item-date { font-size: 13px; font-weight: 600; color: #1e293b; text-transform: capitalize; }
.dash-mentoria__item-time { font-size: 12px; color: #64748b; margin-top: 1px; }

/* dark mode — mentorias */
body.plat-dark #schedulingScreen .dash-mentoria {
  background: #1b2436;
  border-color: #2e3c57;
}
body.plat-dark #schedulingScreen .dash-mentoria--has {
  background: linear-gradient(135deg, #1a2d4f 0%, #1b2436 100%);
  border-color: rgba(96,165,250,.25);
}
body.plat-dark #schedulingScreen .dash-mentoria__header-title { color: #93c5fd; }
body.plat-dark #schedulingScreen .dash-mentoria__header-count { background: rgba(37,99,235,.25); color: #93c5fd; }
body.plat-dark #schedulingScreen .dash-mentoria__title { color: #e2e8f0; }
body.plat-dark #schedulingScreen .dash-mentoria__sub   { color: #8fa6c0; }
body.plat-dark #schedulingScreen .dash-mentoria__text  { color: #8fa6c0; }
body.plat-dark #schedulingScreen .dash-mentoria__item  { background: #1e2d42; border-color: #2e3c57; }
body.plat-dark #schedulingScreen .dash-mentoria__item--today { background: #1a2d4f; border-color: #3b82f6; }
body.plat-dark #schedulingScreen .dash-mentoria__item-date { color: #e2e8f0; }
body.plat-dark #schedulingScreen .dash-mentoria__item-time { color: #8fa6c0; }

/* ── Cronograma de Aulas ── */
.dash-aulas-progress {
  display: flex; align-items: center; gap: 1.5rem;
  margin-bottom: 1.25rem;
  padding-bottom: 1.25rem;
  border-bottom: 1px solid var(--gray-100);
}
.dash-aulas-ring-wrap { position: relative; width: 78px; height: 78px; flex-shrink: 0; }
.dash-aulas-ring-svg { width: 78px; height: 78px; transform: rotate(-90deg); }
.dash-aulas-ring-pct {
  position: absolute; inset: 0;
  display: flex; align-items: center; justify-content: center;
  font-size: 16px; font-weight: 800; color: var(--blue);
}
.dash-aulas-stats { display: flex; flex-direction: column; gap: 7px; }
.dash-aulas-stat-row { display: flex; align-items: center; gap: 8px; }
.dash-aulas-stat-dot { width: 8px; height: 8px; border-radius: 50%; flex-shrink: 0; }
.dash-aulas-stat-label { font-size: 12px; color: var(--gray-500); flex: 1; }
.dash-aulas-stat-val { font-size: 12px; font-weight: 700; color: var(--gray-700); }
.dash-aulas-areas {
  display: grid; grid-template-columns: repeat(4, 1fr); gap: 12px;
}
.dash-aulas-area {
  background: var(--gray-50);
  border: 1px solid var(--gray-100);
  border-radius: 12px;
  padding: .85rem .9rem;
}
.dash-aulas-area__top {
  display: flex; align-items: center; gap: 5px; margin-bottom: 8px;
}
.dash-aulas-area__emoji { font-size: 14px; flex-shrink: 0; }
.dash-aulas-area__label {
  font-size: 11.5px; font-weight: 600; color: var(--gray-700);
  flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.dash-aulas-area__pct { font-size: 13px; font-weight: 800; flex-shrink: 0; }
.dash-aulas-area__bar-wrap { height: 5px; background: var(--gray-200); border-radius: 999px; overflow: hidden; margin-bottom: 6px; }
.dash-aulas-area__bar { height: 100%; border-radius: 999px; transition: width .7s ease; }
.dash-aulas-area__sub { font-size: 10.5px; color: var(--gray-400); }

/* ── Resultados Simulados por área (rsim) ── */
.dash-rsim-areas { display: flex; flex-direction: column; gap: 10px; }
.dash-rsim-area {
  background: var(--gray-50);
  border: 1px solid var(--gray-100);
  border-radius: 10px;
  padding: .75rem .9rem;
}
.dash-rsim-area__top { display: flex; align-items: center; gap: 6px; margin-bottom: 6px; }
.dash-rsim-area__label { font-size: 13px; font-weight: 600; color: var(--gray-700); flex: 1; }
.dash-rsim-area__pct { font-size: 13px; font-weight: 800; }
.dash-rsim-area__bar-wrap { height: 5px; background: var(--gray-200); border-radius: 999px; overflow: hidden; margin-bottom: 7px; }
.dash-rsim-area__bar { height: 100%; border-radius: 999px; transition: width .7s ease; }
.dash-rsim-area__meta { display: flex; align-items: center; gap: 10px; }
.dash-rsim-area__meta span { font-size: 12px; }
.dash-rsim-area__count { margin-left: auto; font-size: 11px; color: var(--gray-400); }
.dash-rsim-area--empty .dash-rsim-area__empty-msg { font-size: 12px; color: var(--gray-300); margin-top: 2px; }

/* ── Responsive ── */
@media (max-width: 768px) {
  .dash-kpis { grid-template-columns: repeat(2, 1fr); }
  .dash-row { flex-direction: column; }
  .dash-subj-row { grid-template-columns: 110px 1fr 44px; }
  .dash-plan-row { grid-template-columns: 80px 1fr 40px; }
  .dash-aulas-areas { grid-template-columns: repeat(2, 1fr); }
  .dash-greeting__badge { display: none; }
  .dash-greeting__badges { display: none; }
}
@media (max-width: 480px) {
  .dash-aulas-progress { flex-direction: column; align-items: flex-start; gap: 1rem; }
}

/* ══════════════════════════════════════════════════════════════
   CRONÔMETRO DE ESTUDOS — Premium Study Timer
   ══════════════════════════════════════════════════════════════ */

/* ── Quick Stats Row ── */
.ct-stats-row {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 12px;
  margin-bottom: 1.5rem;
}
.ct-stat-card {
  background: var(--white);
  border: 1px solid var(--gray-100);
  border-radius: 16px;
  padding: 1.1rem 1rem;
  text-align: center;
  transition: transform .2s, box-shadow .2s;
}
.ct-stat-card:hover { transform: translateY(-2px); box-shadow: 0 8px 24px rgba(37,99,235,.08); }
.ct-stat-card--accent {
  background: linear-gradient(135deg, #EFF6FF, #DBEAFE);
  border-color: #BFDBFE;
}
.ct-stat__emoji {
  font-size: 22px;
  line-height: 1;
  margin-bottom: 6px;
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--blue);
}
.ct-stat__icon-img { width: 22px; height: 22px; object-fit: contain; }
.ct-stat__icon-svg { width: 22px; height: 22px; }
.ct-stat__val {
  display: block;
  font-size: 22px;
  font-weight: 800;
  color: var(--gray-800);
  line-height: 1;
  margin-bottom: 4px;
}
.ct-stat__label { font-size: 11px; color: var(--gray-400); text-transform: uppercase; letter-spacing: .04em; }

/* ── Active Banner ── */
.ct-active-banner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  background: linear-gradient(135deg, #0f192d, #1e3a5f);
  border: 1px solid rgba(37,99,235,.35);
  border-radius: 16px;
  padding: 1rem 1.25rem;
  margin-bottom: 1.5rem;
  flex-wrap: wrap;
}
.ct-active-banner__left { display: flex; align-items: center; gap: 12px; }
.ct-active-banner__pulse {
  width: 10px; height: 10px;
  border-radius: 50%;
  background: #22c55e;
  animation: ct-pulse 1.5s ease-in-out infinite;
  flex-shrink: 0;
}
@keyframes ct-pulse {
  0%, 100% { box-shadow: 0 0 0 0 rgba(34,197,94,.5); }
  50%       { box-shadow: 0 0 0 8px rgba(34,197,94,0); }
}
.ct-active-banner__label { font-size: 11px; color: rgba(255,255,255,.5); text-transform: uppercase; letter-spacing: .06em; }
.ct-active-banner__subject { font-size: 16px; font-weight: 700; color: #fff; margin-top: 2px; }
.ct-active-banner__right { display: flex; align-items: center; gap: 12px; }
.ct-active-banner__time {
  font-size: 28px;
  font-weight: 800;
  color: #60a5fa;
  font-variant-numeric: tabular-nums;
  letter-spacing: .02em;
}
.ct-banner-btn {
  background: rgba(37,99,235,.25);
  border: 1px solid rgba(37,99,235,.5);
  color: #93c5fd;
  border-radius: 8px;
  padding: 7px 14px;
  font-size: 13px;
  font-weight: 600;
  cursor: pointer;
  transition: background .2s;
}
.ct-banner-btn:hover { background: rgba(37,99,235,.4); }
.ct-banner-btn--cancel {
  background: rgba(239,68,68,.15);
  border-color: rgba(239,68,68,.4);
  color: #fca5a5;
}
.ct-banner-btn--cancel:hover { background: rgba(239,68,68,.3); }

/* ── Setup Card ── */
.ct-setup-card {
  background: var(--white);
  border: 1px solid var(--gray-100);
  border-radius: 20px;
  padding: 1.75rem;
  margin-bottom: 2rem;
  box-shadow: 0 2px 16px rgba(0,0,0,.04);
}
.ct-setup-card__head {
  display: flex;
  align-items: center;
  gap: 10px;
  font-size: 15px;
  font-weight: 700;
  color: var(--gray-700);
  margin-bottom: 1.5rem;
}
.ct-setup-card__head svg { color: var(--blue); }
.ct-setup-fields { display: flex; flex-direction: column; gap: 1.25rem; }
.ct-date-group { max-width: 260px; }

/* ── Subject chips ── */
.ct-subject-grid {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 4px;
}
.ct-subject-chip {
  display: flex;
  align-items: center;
  gap: 6px;
  padding: 7px 14px;
  border-radius: 999px;
  border: 1.5px solid var(--gray-200);
  background: var(--gray-50);
  font-size: 13px;
  font-weight: 500;
  color: var(--gray-600);
  cursor: pointer;
  transition: all .18s;
  line-height: 1;
}
.ct-subject-chip:hover {
  border-color: var(--chip-color, var(--blue));
  color: var(--chip-color, var(--blue));
  background: color-mix(in srgb, var(--chip-color, var(--blue)) 8%, transparent);
}
.ct-subject-chip--active {
  border-color: var(--chip-color, var(--blue)) !important;
  background: color-mix(in srgb, var(--chip-color, var(--blue)) 15%, transparent) !important;
  color: var(--chip-color, var(--blue)) !important;
  font-weight: 700;
}
.ct-subject-chip__emoji { font-size: 14px; }

.ct-start-btn {
  margin-top: 1.5rem;
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  font-size: 15px;
}
.ct-start-btn:disabled {
  opacity: .45;
  cursor: not-allowed;
}

/* ── Tabs ── */
.ct-tabs {
  display: flex;
  gap: 6px;
  background: var(--gray-50);
  border: 1px solid var(--gray-100);
  border-radius: 12px;
  padding: 4px;
  margin-bottom: 1.5rem;
}
.ct-tab {
  flex: 1;
  padding: 8px 12px;
  border-radius: 8px;
  font-size: 13px;
  font-weight: 600;
  color: var(--gray-500);
  background: transparent;
  border: none;
  cursor: pointer;
  transition: all .18s;
}
.ct-tab--active {
  background: var(--white);
  color: var(--blue);
  box-shadow: 0 2px 8px rgba(0,0,0,.08);
}
.ct-tab-pane { min-height: 60px; }

/* ── Bar chart (weekly) ── */
.ct-bar-chart {
  display: flex;
  align-items: flex-end;
  gap: 8px;
  height: 140px;
  background: var(--white);
  border: 1px solid var(--gray-100);
  border-radius: 16px;
  padding: 1.25rem 1rem .8rem;
  margin-bottom: 1.25rem;
}
.ct-bar-col {
  flex: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 4px;
  height: 100%;
}
.ct-bar-wrap {
  flex: 1;
  width: 100%;
  display: flex;
  align-items: flex-end;
}
.ct-bar {
  width: 100%;
  border-radius: 6px 6px 0 0;
  transition: height .6s cubic-bezier(.34,1.56,.64,1);
  min-height: 0;
}
.ct-bar--today {
  background: var(--blue) !important;
  box-shadow: 0 0 12px rgba(37,99,235,.4);
}
.ct-bar-label {
  font-size: 10px;
  color: var(--gray-400);
  text-transform: uppercase;
  letter-spacing: .04em;
  white-space: nowrap;
}
.ct-bar-label--today { color: var(--blue); font-weight: 700; }
.ct-bar-time { font-size: 9px; color: var(--gray-400); }

/* ── Insights ── */
.ct-insights {
  background: linear-gradient(135deg, #EFF6FF, #F0FDF4);
  border: 1px solid #BFDBFE;
  border-radius: 14px;
  padding: 1rem 1.25rem;
  margin-bottom: 1.25rem;
}
.ct-insights__title {
  display: flex;
  align-items: center;
  gap: 6px;
  font-size: 12px;
  font-weight: 700;
  color: var(--blue);
  text-transform: uppercase;
  letter-spacing: .06em;
  margin-bottom: .75rem;
}
.ct-insights__list {
  list-style: none;
  display: flex;
  flex-direction: column;
  gap: 6px;
  padding: 0;
  margin: 0;
}
.ct-insights__list li {
  font-size: 13px;
  color: var(--gray-600);
  padding-left: 0;
  line-height: 1.4;
}
.ct-insights__list strong { color: var(--gray-800); }

/* ── Subject breakdown ── */
.ct-subject-breakdown {
  background: var(--white);
  border: 1px solid var(--gray-100);
  border-radius: 16px;
  padding: 1.25rem;
  margin-top: 1rem;
}
.ct-section-label {
  font-size: 11px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .08em;
  color: var(--gray-400);
  margin-bottom: 1rem;
}
.ct-subj-row {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 10px;
}
.ct-subj-row:last-child { margin-bottom: 0; }
.ct-subj-row__left {
  display: flex;
  align-items: center;
  gap: 6px;
  min-width: 110px;
}
.ct-subj-row__emoji { font-size: 14px; }
.ct-subj-row__name { font-size: 12px; font-weight: 600; color: var(--gray-700); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; max-width: 80px; }
.ct-subj-row__bar-wrap {
  flex: 1;
  height: 6px;
  background: var(--gray-100);
  border-radius: 999px;
  overflow: hidden;
}
.ct-subj-row__bar { height: 100%; border-radius: 999px; transition: width .6s ease; }
.ct-subj-row__right { display: flex; flex-direction: column; align-items: flex-end; gap: 1px; min-width: 60px; }
.ct-subj-row__time { font-size: 11px; font-weight: 700; color: var(--gray-700); }
.ct-subj-row__pct  { font-size: 10px; color: var(--gray-400); }

/* ── Monthly stats ── */
.ct-monthly-stats {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 10px;
  margin-bottom: 1.5rem;
}
.ct-monthly-stat {
  background: var(--white);
  border: 1px solid var(--gray-100);
  border-radius: 14px;
  padding: 1rem;
  text-align: center;
}
.ct-monthly-stat__val { font-size: 20px; font-weight: 800; color: var(--blue); }
.ct-monthly-stat__label { font-size: 11px; color: var(--gray-400); margin-top: 3px; }

/* ── Calendar heatmap ── */
.ct-calendar {
  background: var(--white);
  border: 1px solid var(--gray-100);
  border-radius: 16px;
  padding: 1rem;
  margin-bottom: 1rem;
}
.ct-cal-header {
  display: grid;
  grid-template-columns: repeat(7, 1fr);
  margin-bottom: 6px;
}
.ct-cal-dow {
  text-align: center;
  font-size: 10px;
  font-weight: 700;
  color: var(--gray-400);
  text-transform: uppercase;
  padding: 4px 0;
}
.ct-cal-grid {
  display: grid;
  grid-template-columns: repeat(7, 1fr);
  gap: 4px;
}
.ct-cal-cell {
  aspect-ratio: 1;
  border-radius: 6px;
  background: var(--gray-50);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 10px;
  color: var(--gray-500);
  border: 1px solid var(--gray-100);
  cursor: default;
  transition: transform .15s;
  position: relative;
}
.ct-cal-cell:hover { transform: scale(1.1); z-index: 1; }
.ct-cal-cell--empty { background: transparent; border-color: transparent; }
.ct-cal-cell--today {
  border: 1.5px solid var(--blue);
  color: var(--blue);
  font-weight: 700;
}
.ct-cal-cell span { pointer-events: none; }

/* ── History cards ── */
.ct-history-card {
  display: flex;
  gap: 12px;
  background: var(--white);
  border: 1px solid var(--gray-100);
  border-radius: 16px;
  padding: 1rem 1.1rem;
  margin-bottom: 10px;
  transition: box-shadow .2s, transform .15s;
}
.ct-history-card:hover {
  box-shadow: 0 4px 20px rgba(0,0,0,.07);
  transform: translateY(-1px);
}
.ct-history-card__left {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 4px;
  min-width: 44px;
  border-radius: 10px;
  padding: 8px;
  border-width: 1px;
  border-style: solid;
}
.ct-history-card__emoji { font-size: 20px; }
.ct-history-card__color-dot { width: 6px; height: 6px; border-radius: 50%; }
.ct-history-card__body { flex: 1; min-width: 0; }
.ct-history-card__top {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 8px;
  margin-bottom: 4px;
}
.ct-history-card__subj { font-size: 15px; font-weight: 700; color: var(--gray-800); }
.ct-history-card__dur  { font-size: 15px; font-weight: 800; flex-shrink: 0; }
.ct-history-card__meta {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  font-size: 11px;
  color: var(--gray-400);
  margin-bottom: 6px;
}
.ct-history-card__acc { color: var(--green, #22c55e); font-weight: 600; }
.ct-history-card__obs {
  font-size: 12px;
  color: var(--gray-500);
  font-style: italic;
  margin-bottom: 8px;
  line-height: 1.4;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.ct-history-card__metrics {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}
.ct-metric-pill {
  font-size: 10px;
  font-weight: 600;
  padding: 3px 8px;
  border-radius: 999px;
  background: color-mix(in srgb, var(--c, var(--blue)) 10%, transparent);
  color: var(--c, var(--blue));
  border: 1px solid color-mix(in srgb, var(--c, var(--blue)) 25%, transparent);
}
.ct-metric-pill--pink {
  --c: #ec4899;
}
.ct-history-card__actions {
  display: flex;
  flex-direction: column;
  gap: 6px;
  justify-content: center;
}
.ct-history-edit-btn,
.ct-history-share-btn,
.ct-history-del-btn {
  width: 30px; height: 30px;
  border-radius: 8px;
  border: 1px solid var(--gray-200);
  background: var(--gray-50);
  color: var(--gray-400);
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: all .15s;
  flex-shrink: 0;
}
.ct-history-edit-btn:hover  { color: #d97706; border-color: #d97706; background: #FFFBEB; }
.ct-history-share-btn:hover { color: var(--blue); border-color: var(--blue); background: #EFF6FF; }
.ct-history-del-btn:hover   { color: #ef4444; border-color: #ef4444; background: #FEF2F2; }

/* ── Floating Widget ── */
.ct-widget {
  position: fixed;
  right: 20px;
  bottom: 90px;
  z-index: 150;
  background: rgba(10, 22, 40, 0.85);
  backdrop-filter: blur(20px) saturate(180%);
  -webkit-backdrop-filter: blur(20px) saturate(180%);
  border: 1px solid rgba(37, 99, 235, 0.35);
  border-radius: 18px;
  padding: 0;
  min-width: 200px;
  box-shadow:
    0 8px 32px rgba(0,0,0,.45),
    0 0 0 1px rgba(255,255,255,.04),
    inset 0 1px 0 rgba(255,255,255,.08);
  overflow: hidden;
  user-select: none;
  animation: ct-widget-in .3s cubic-bezier(.34,1.56,.64,1);
}
@keyframes ct-widget-in {
  from { opacity: 0; transform: scale(.85) translateY(10px); }
  to   { opacity: 1; transform: scale(1) translateY(0); }
}
.ct-widget__drag {
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 8px;
  cursor: grab;
  background: rgba(255,255,255,.04);
  border-bottom: 1px solid rgba(255,255,255,.06);
  color: rgba(255,255,255,.3);
  transition: background .15s;
}
.ct-widget__drag:hover { background: rgba(255,255,255,.08); color: rgba(255,255,255,.5); }
.ct-widget__drag:active { cursor: grabbing; }
.ct-widget__body {
  padding: 10px 14px;
  text-align: center;
}
.ct-widget__subject {
  font-size: 11px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .1em;
  color: rgba(255,255,255,.5);
  margin-bottom: 4px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  max-width: 170px;
}
.ct-widget__time {
  font-size: 28px;
  font-weight: 800;
  color: #60a5fa;
  letter-spacing: .04em;
  font-variant-numeric: tabular-nums;
  line-height: 1;
}
.ct-widget__status {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 5px;
  font-size: 10px;
  color: rgba(255,255,255,.35);
  margin-top: 4px;
  text-transform: uppercase;
  letter-spacing: .08em;
}
.ct-widget__pulse {
  width: 6px; height: 6px;
  border-radius: 50%;
  background: #22c55e;
  animation: ct-pulse 1.5s ease-in-out infinite;
  flex-shrink: 0;
}
.ct-widget__controls {
  display: flex;
  border-top: 1px solid rgba(255,255,255,.06);
}
.ct-widget__ctrl {
  flex: 1;
  padding: 10px;
  background: transparent;
  border: none;
  color: rgba(255,255,255,.5);
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: background .15s, color .15s;
  fill: currentColor;
}
.ct-widget__ctrl:hover { background: rgba(255,255,255,.08); color: #fff; }
.ct-widget__ctrl + .ct-widget__ctrl { border-left: 1px solid rgba(255,255,255,.06); }
.ct-widget__ctrl--stop:hover { color: #f87171; }

/* ── Finalize Modal ── */
.ct-finalize-modal {
  max-width: 520px;
  max-height: 90vh;
  overflow-y: auto;
  padding: 0;
}
.ct-finalize-modal__header {
  text-align: center;
  padding: 1.75rem 1.75rem 1rem;
  border-bottom: 1px solid var(--gray-100);
}
.ct-finalize-modal__icon { font-size: 36px; margin-bottom: 8px; }
.ct-finalize-modal__header h3 { font-size: 20px; font-weight: 800; color: var(--gray-800); margin-bottom: 4px; }
.ct-finalize-modal__sub { font-size: 13px; color: var(--gray-500); }

.ct-finalize-summary {
  display: flex;
  justify-content: center;
  gap: 24px;
  background: var(--gray-50);
  padding: .9rem 1.75rem;
  border-bottom: 1px solid var(--gray-100);
}
.ct-finalize-summary__item { text-align: center; }
.ct-finalize-summary__label { font-size: 10px; text-transform: uppercase; letter-spacing: .06em; color: var(--gray-400); display: block; margin-bottom: 3px; }
.ct-finalize-summary__val { font-size: 16px; font-weight: 800; color: var(--gray-800); }
.ct-finalize-summary__val--blue { color: var(--blue); }

.ct-finalize-fields { padding: 1.25rem 1.75rem; }
.ct-finalize-row { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }

.ct-toggle-group { display: flex; gap: 8px; margin-top: 4px; }
.ct-toggle-btn {
  flex: 1;
  padding: 8px;
  border-radius: 8px;
  border: 1.5px solid var(--gray-200);
  background: var(--gray-50);
  font-size: 13px;
  font-weight: 600;
  color: var(--gray-500);
  cursor: pointer;
  transition: all .15s;
}
.ct-toggle-btn--active {
  border-color: var(--blue);
  background: #EFF6FF;
  color: var(--blue);
}

.ct-range {
  width: 100%;
  height: 4px;
  border-radius: 999px;
  -webkit-appearance: none;
  appearance: none;
  background: linear-gradient(to right, var(--blue) var(--val, 50%), var(--gray-100) var(--val, 50%));
  outline: none;
  cursor: pointer;
  margin-top: 8px;
}
.ct-range::-webkit-slider-thumb {
  -webkit-appearance: none;
  width: 18px; height: 18px;
  border-radius: 50%;
  background: var(--blue);
  border: 2px solid #fff;
  box-shadow: 0 2px 8px rgba(37,99,235,.4);
  cursor: pointer;
}
.ct-range-labels {
  display: flex;
  justify-content: space-between;
  font-size: 10px;
  color: var(--gray-400);
  margin-top: 4px;
}

.ct-finalize-actions {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 10px;
  padding: 1rem 1.75rem 1.75rem;
  border-top: 1px solid var(--gray-100);
}
.ct-finalize-actions .btn {
  width: auto;
}
.ct-share-trigger-btn {
  background: linear-gradient(135deg, #1e3a5f, #2563EB);
  color: #fff;
  border: none;
  padding: 10px 18px;
  border-radius: 10px;
  font-size: 13px;
  font-weight: 700;
  cursor: pointer;
  display: flex;
  align-items: center;
  gap: 6px;
  transition: opacity .2s;
}
.ct-share-trigger-btn:hover { opacity: .88; }

/* ── Share Modal ── */
.ct-share-modal {
  max-width: 480px;
}
.ct-share-modal__header { text-align: center; margin-bottom: 1rem; }
.ct-share-modal__header h3 { font-size: 18px; font-weight: 800; color: var(--gray-800); }
.ct-share-modal__header p  { font-size: 13px; color: var(--gray-500); }
.ct-share-format-btns {
  display: flex;
  gap: 8px;
  justify-content: center;
  margin-bottom: 1.25rem;
}
.ct-format-btn {
  display: flex;
  align-items: center;
  gap: 6px;
  padding: 8px 18px;
  border-radius: 10px;
  border: 1.5px solid var(--gray-200);
  background: var(--gray-50);
  font-size: 13px;
  font-weight: 600;
  color: var(--gray-500);
  cursor: pointer;
  transition: all .15s;
}
.ct-format-btn--active {
  border-color: var(--blue);
  background: #EFF6FF;
  color: var(--blue);
}
.ct-canvas-wrap {
  display: flex;
  justify-content: center;
  margin-bottom: 1.25rem;
  background: var(--gray-50);
  border-radius: 12px;
  padding: 1rem;
  border: 1px solid var(--gray-100);
}
#ctShareCanvas {
  border-radius: 12px;
  box-shadow: 0 8px 32px rgba(0,0,0,.15);
  max-width: 100%;
}
.ct-share-actions {
  display: flex;
  gap: 10px;
  justify-content: flex-end;
}

/* ── Responsive ── */
@media (max-width: 768px) {
  .ct-stats-row { grid-template-columns: repeat(2, 1fr); }
  .ct-stat-card { padding: .85rem .75rem; }
  .ct-stat__val { font-size: 18px; }
  .ct-active-banner { flex-direction: column; gap: 10px; }
  .ct-active-banner__right { flex-wrap: wrap; justify-content: center; }
  .ct-active-banner__time { font-size: 22px; width: 100%; text-align: center; }
  .ct-setup-card { padding: 1.25rem; }
  .ct-finalize-row { grid-template-columns: 1fr; }
  .ct-finalize-actions { flex-direction: column; }
  .ct-finalize-actions .btn { width: 100%; justify-content: center; }
  .ct-subj-row__name { max-width: 60px; }
  .ct-monthly-stats { grid-template-columns: repeat(3, 1fr); }
  .ct-bar-chart { height: 110px; }
  .ct-widget { right: 12px; bottom: 80px; min-width: 180px; }
  .ct-widget__time { font-size: 22px; }
  .ct-date-group { max-width: 100%; }
  .ct-history-card__obs { display: none; }
}

/* ══════════════════════════════════════════
   RESULTADOS DE SIMULADOS
   ══════════════════════════════════════════ */

/* ── Tabs de área ── */
.rsim-tabs {
  display: flex;
  gap: 4px;
  background: var(--gray-50);
  border: 1px solid var(--gray-100);
  border-radius: 12px;
  padding: 4px;
  margin-bottom: 1.75rem;
  overflow-x: auto;
  scrollbar-width: none;
  -webkit-overflow-scrolling: touch;
}
.rsim-tabs::-webkit-scrollbar { display: none; }

.rsim-tab {
  flex: 1;
  min-width: fit-content;
  padding: 8px 16px;
  border-radius: 8px;
  font-size: 13px;
  font-weight: 600;
  color: var(--gray-500);
  background: transparent;
  border: none;
  cursor: pointer;
  transition: all .18s;
  white-space: nowrap;
}
.rsim-tab:hover { color: var(--blue); }
.rsim-tab--active {
  background: var(--white);
  color: var(--blue);
  box-shadow: 0 2px 8px rgba(0,0,0,.08);
}

/* ── Seletor de modo: ENEM x Vestibular Tradicional ── */
.rsim-modo-switch {
  display: flex; gap: 8px; margin-bottom: 1.25rem;
}
.rsim-modo-btn {
  padding: 9px 18px; border-radius: 999px; font-size: 13px; font-weight: 700;
  border: 1.5px solid var(--gray-200); background: var(--white); color: var(--gray-500); cursor: pointer;
  transition: all .15s;
}
.rsim-modo-btn:hover { border-color: var(--blue); color: var(--blue); }
.rsim-modo-btn--active { background: var(--blue); border-color: var(--blue); color: #fff; }
.rsim-modo-btn--active:hover { color: #fff; background: var(--blue-light); border-color: var(--blue-light); }

/* ── Vestibular Tradicional: hub "Meus Vestibulares" ── */
.vt-hub__header {
  display: flex; align-items: center; justify-content: space-between;
  gap: 16px; margin-bottom: 1.5rem; flex-wrap: wrap;
}
.vt-hub-card {
  position: relative;
  background: var(--white); border: 1px solid var(--gray-200);
  border-radius: 14px; padding: 20px; display: flex; flex-direction: column; gap: 16px;
}
.vt-hub-card__head { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding-right: 24px; }
.vt-hub-card__nome { font-size: 15px; font-weight: 800; color: var(--navy); }
.vt-hub-card__badge {
  font-size: 11px; font-weight: 700; color: var(--blue); background: rgba(37,99,235,.1);
  padding: 3px 10px; border-radius: 999px; white-space: nowrap;
}
.vt-hub-card__del {
  position: absolute; top: 14px; right: 14px; background: none; border: none;
  color: var(--gray-400); cursor: pointer; padding: 4px; border-radius: 6px; display: flex;
}
.vt-hub-card__del:hover { color: #ef4444; background: #fef2f2; }

/* ── Vestibular Tradicional: form de criar/editar perfil ── */
.vt-form { display: flex; flex-direction: column; gap: 18px; max-width: 640px; }
.vt-form-list { display: flex; flex-direction: column; gap: 8px; margin-bottom: 8px; }
.vt-form-row-item { display: flex; align-items: center; gap: 8px; }
.vt-form-row-item .erros-input { flex: 2; }
.vt-form-row-item .erros-input--sm { flex: 1; min-width: 90px; }
.vt-form-comp-item {
  display: flex; flex-direction: column; gap: 6px;
  padding: 12px; border: 1px solid var(--gray-200); border-radius: 10px; background: var(--gray-50);
}

/* ── Vestibular Tradicional: header da tela de um perfil ── */
.vt-perfil-header {
  display: flex; align-items: center; justify-content: space-between;
  gap: 12px; margin-bottom: 1.25rem; flex-wrap: wrap;
}
.vt-perfil-header__nome { font-size: 16px; font-weight: 800; color: var(--navy); }

/* ── Resumo ── */
.rsim-summary {
  display: grid;
  grid-template-columns: repeat(9, 1fr);
  gap: 10px;
  margin-bottom: 1.75rem;
}
.rsim-summary .quiz-stat-card { padding: 14px 10px; }
.rsim-summary .quiz-stat__val { font-size: 20px; }

/* ── Seção da tabela ── */
.rsim-table-section {
  background: var(--white);
  border: 1px solid var(--gray-200);
  border-radius: var(--radius-xl);
  padding: 1.25rem;
  margin-bottom: 1.75rem;
  box-shadow: var(--shadow-sm);
}
.rsim-table-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 1rem;
  gap: 12px;
  flex-wrap: wrap;
}
.rsim-table-title {
  font-size: 15px;
  font-weight: 700;
  color: var(--navy);
}
.rsim-add-btn {
  padding: 9px 16px;
  font-size: 13px;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  flex-shrink: 0;
}

/* ── Tabela ── */
.rsim-table-wrap {
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
  border-radius: 8px;
  border: 1px solid var(--gray-100);
}
.rsim-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 13px;
  min-width: 820px;
}
.rsim-table th {
  padding: 10px 8px;
  text-align: center;
  font-size: 10px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: var(--gray-500);
  background: var(--gray-50);
  border-bottom: 2px solid var(--gray-200);
  border-right: 1px solid var(--gray-200);
  white-space: nowrap;
}
.rsim-table th:last-child { border-right: none; }
.rsim-table th:first-child,
.rsim-table th:nth-child(2) { text-align: left; }
.rsim-table td {
  padding: 5px 3px;
  border-bottom: 1px solid var(--gray-150, #e8edf4);
  border-right: 1px solid var(--gray-150, #e8edf4);
  vertical-align: middle;
}
.rsim-table td:last-child { border-right: none; }
.rsim-table tbody tr:hover { background: rgba(37,99,235,.03); }
.rsim-table tbody tr:last-child td { border-bottom: none; }

/* ── Inputs da tabela ── */
.rsim-input {
  width: 100%;
  min-width: 58px;
  padding: 6px 7px;
  font-size: 13px;
  font-family: var(--ff-body);
  color: var(--gray-800);
  background: transparent;
  border: 1.5px solid transparent;
  border-radius: 6px;
  outline: none;
  transition: border-color .15s, background .15s;
  text-align: center;
}
.rsim-input:hover {
  border-color: var(--gray-200);
  background: var(--white);
}
.rsim-input:focus {
  border-color: var(--blue);
  background: var(--white);
  box-shadow: 0 0 0 3px rgba(37,99,235,.08);
}
.rsim-input--date { min-width: 128px; text-align: left; }
.rsim-input--text { min-width: 88px;  text-align: left; }
.rsim-time-pair { display: flex; align-items: center; gap: 1px; }
.rsim-input--timeh,
.rsim-input--timem {
  width: 34px; min-width: unset; padding: 4px 2px;
  text-align: center; -moz-appearance: textfield;
}
.rsim-input--timeh::-webkit-outer-spin-button,
.rsim-input--timeh::-webkit-inner-spin-button,
.rsim-input--timem::-webkit-outer-spin-button,
.rsim-input--timem::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
.rsim-time-sep { font-size: 0.75rem; color: var(--gray-500); font-weight: 700; user-select: none; padding: 0 1px; }

/* ── Células calculadas ── */
.rsim-calc {
  text-align: center;
  font-weight: 700;
  color: var(--navy);
  white-space: nowrap;
  padding: 6px 10px;
  font-size: 13px;
}
.rsim-calc--pct    { color: #16a34a; }
.rsim-calc--time   { color: #2563EB; }
.rsim-calc--red    { color: #dc2626; font-weight: 700; }
.rsim-calc--orange { color: #ea580c; font-weight: 600; }

/* ── Botão relatório (notas) ── */
.rsim-notes-btn {
  display: flex; align-items: center; justify-content: center;
  width: 28px; height: 28px; border-radius: 6px; border: none;
  background: transparent; color: var(--gray-400); cursor: pointer;
  transition: all .15s; flex-shrink: 0;
}
.rsim-notes-btn:hover { background: rgba(37,99,235,.1); color: #2563eb; }
.rsim-notes-btn--has  { color: #2563eb; }
.rsim-notes-btn--has:hover { background: rgba(37,99,235,.15); }

/* ── Overlay e painel lateral de notas ── */
.rsim-notes-overlay {
  position: fixed; inset: 0; background: rgba(0,0,0,.35);
  z-index: 1200; opacity: 0; transition: opacity .25s;
}
.rsim-notes-overlay--open { opacity: 1; }

.rsim-notes-panel {
  position: fixed; top: 0; right: 0; bottom: 0;
  width: min(640px, 100vw); background: var(--white);
  box-shadow: -4px 0 24px rgba(0,0,0,.14);
  z-index: 1201; display: flex; flex-direction: column;
  transform: translateX(100%); transition: transform .25s cubic-bezier(.4,0,.2,1);
}
.rsim-notes-panel--open { transform: translateX(0); }

.rsim-notes-header {
  display: flex; align-items: flex-start; justify-content: space-between;
  padding: 24px 20px 16px; border-bottom: 1px solid var(--gray-200); gap: 12px;
}
.rsim-notes-label {
  font-size: 11px; font-weight: 700; text-transform: uppercase;
  letter-spacing: .06em; color: #2563eb; margin: 0 0 4px;
}
.rsim-notes-title { font-size: 16px; font-weight: 700; color: var(--navy); margin: 0; }
.rsim-notes-close {
  display: flex; align-items: center; justify-content: center;
  width: 32px; height: 32px; border-radius: 8px; border: none;
  background: transparent; color: var(--gray-400); cursor: pointer;
  flex-shrink: 0; transition: background .15s, color .15s;
}
.rsim-notes-close:hover { background: var(--gray-100); color: var(--navy); }

.rsim-notes-hint {
  padding: 12px 20px 8px; font-size: 12px; color: var(--gray-500); margin: 0;
}
.rsim-notes-textarea {
  flex: 1; margin: 0 20px; border: 1px solid var(--gray-200); border-radius: 10px;
  padding: 14px; font-size: 14px; line-height: 1.6; color: var(--navy);
  resize: none; font-family: inherit; outline: none; transition: border-color .15s;
  min-height: 320px;
}
.rsim-notes-textarea:focus { border-color: #2563eb; }

.rsim-notes-footer {
  display: flex; align-items: center; justify-content: flex-end; gap: 12px;
  padding: 16px 20px; border-top: 1px solid var(--gray-200);
}
.rsim-notes-saved { font-size: 12px; color: #16a34a; font-weight: 600; }
.rsim-notes-save-btn { margin: 0; padding: 10px 22px; }

body.plat-dark .rsim-notes-panel { background: #0f192d; }
body.plat-dark .rsim-notes-header { border-color: rgba(255,255,255,.1); }
body.plat-dark .rsim-notes-title  { color: #f1f5f9; }
body.plat-dark .rsim-notes-hint   { color: #94a3b8; }
body.plat-dark .rsim-notes-textarea {
  background: rgba(255,255,255,.05); border-color: rgba(255,255,255,.12); color: #f1f5f9;
}
body.plat-dark .rsim-notes-textarea:focus { border-color: #3b82f6; }
body.plat-dark .rsim-notes-footer { border-color: rgba(255,255,255,.1); }
body.plat-dark .rsim-notes-close:hover { background: rgba(255,255,255,.08); color: #f1f5f9; }

/* ── Botão deletar ── */
.rsim-delete-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 30px;
  height: 30px;
  border: none;
  border-radius: 6px;
  background: transparent;
  color: var(--gray-400);
  cursor: pointer;
  transition: all .15s;
  margin: 0 auto;
}
.rsim-delete-btn:hover {
  background: rgba(239,68,68,.1);
  color: #dc2626;
}

/* ── Dashboard de gráficos ── */
.rsim-dashboard {
  background: var(--white);
  border: 1px solid var(--gray-200);
  border-radius: var(--radius-xl);
  padding: 1.25rem;
  margin-bottom: 2rem;
  box-shadow: var(--shadow-sm);
}
.rsim-dashboard__header { margin-bottom: 1.25rem; }
.rsim-chart-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1.25rem;
  min-width: 0;
}
.rsim-chart-grid--single { grid-template-columns: 1fr; }
.rsim-chart-card {
  background: var(--gray-50);
  border: 1px solid var(--gray-100);
  border-radius: 12px;
  padding: 1rem;
  min-width: 0;
  box-sizing: border-box;
}
.rsim-chart-card--full { grid-column: 1 / -1; }
.rsim-chart-title {
  font-size: 11px;
  font-weight: 700;
  color: var(--gray-500);
  margin-bottom: .75rem;
  text-transform: uppercase;
  letter-spacing: .06em;
}
.rsim-chart-wrap {
  position: relative;
  height: 230px;
  width: 100%;
  min-width: 0;
}
.rsim-chart-card--full .rsim-chart-wrap { height: 250px; }
.rsim-chart-wrap canvas { max-width: 100%; }

/* ── Placeholder (Redação / estado vazio) ── */
.rsim-placeholder {
  text-align: center;
  padding: 4rem 1rem;
  color: var(--gray-400);
}
.rsim-placeholder__icon {
  width: 72px;
  height: 72px;
  background: var(--gray-50);
  border: 1px solid var(--gray-200);
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  margin: 0 auto 1.25rem;
  color: var(--gray-400);
}
.rsim-placeholder h3 {
  font-size: 18px;
  font-weight: 700;
  color: var(--navy);
  margin-bottom: .5rem;
}
.rsim-placeholder p {
  font-size: 14px;
  color: var(--gray-500);
  max-width: 360px;
  margin: 0 auto;
}

/* ── Responsivo ── */
@media (max-width: 1100px) {
  .rsim-summary { grid-template-columns: repeat(5, 1fr); }
}
@media (max-width: 760px) {
  .rsim-summary { grid-template-columns: repeat(3, 1fr); }
  .rsim-chart-grid { grid-template-columns: 1fr; }
  .rsim-chart-card--full { grid-column: 1; }
  .rsim-chart-wrap { height: 190px; }
  .rsim-chart-card--full .rsim-chart-wrap { height: 210px; }
  .rsim-add-btn { width: 100%; justify-content: center; }
  .rsim-table-header { flex-direction: column; align-items: stretch; }
}
@media (max-width: 480px) {
  .rsim-summary { grid-template-columns: repeat(2, 1fr); }
  .rsim-tabs { border-radius: 10px; }
}

/* ══════════════════════════════════════════════════════════════
   SIDEBAR RECOLHÍVEL — desktop only (min-width: 769px)
   ══════════════════════════════════════════════════════════════ */
@media (min-width: 769px) {
  /* Mostra botão de recolher apenas no desktop */
  .plat-sidebar__collapse-btn {
    display: flex;
  }

  /* ── Estado colapsado ── */
  .plat-sidebar--collapsed {
    width: 56px;
  }

  /* Logo: oculta quando colapsado */
  .plat-sidebar--collapsed #platSidebarLogo {
    display: none;
  }

  /* Logo area: centraliza o botão quando colapsado */
  .plat-sidebar--collapsed .plat-sidebar__logo-area {
    justify-content: center;
    padding-left: 0;
    padding-right: 0;
  }

  /* Nav items: centraliza ícones, oculta labels e badges */
  .plat-sidebar--collapsed .plat-nav__item {
    justify-content: center;
    padding: 9px 0;
    gap: 0;
  }
  .plat-sidebar--collapsed .plat-nav__item > span,
  .plat-sidebar--collapsed .plat-nav__soon-badge {
    display: none;
  }

  /* Logout: centraliza ícone, oculta texto */
  .plat-sidebar--collapsed .plat-sidebar__logout-btn {
    justify-content: center;
    padding: 9px 0;
    gap: 0;
  }
  .plat-sidebar--collapsed .plat-sidebar__logout-btn > span {
    display: none;
  }

  /* Tema: centraliza ícone, oculta label */
  .plat-sidebar--collapsed .plat-theme-toggle {
    justify-content: center;
    padding: 9px 0;
    gap: 0;
  }
  .plat-sidebar--collapsed #platThemeLabel {
    display: none;
  }

  /* Footer: oculta info do usuário, mantém só o avatar */
  .plat-sidebar--collapsed .plat-user__info {
    display: none;
  }
  .plat-sidebar--collapsed .plat-sidebar__footer {
    padding-left: 0;
    padding-right: 0;
    display: flex;
    justify-content: center;
  }
  .plat-sidebar--collapsed .plat-user {
    justify-content: center;
    gap: 0;
  }

  /* Padding lateral das seções de rodapé: centraliza quando colapsado */
  .plat-sidebar--collapsed .flex-shrink-0.px-3 {
    padding-left: 4px;
    padding-right: 4px;
  }
  .plat-sidebar--collapsed .plat-nav {
    padding-left: 8px;
    padding-right: 8px;
  }

  /* ── Escalonamento de fontes na plataforma (desktop) ── */
  #schedulingScreen .plat-nav__item          { font-size: 14px; }
  #schedulingScreen .plat-nav__soon-badge    { font-size: 10px; }
  #schedulingScreen .dash-card__title        { font-size: 14px; }
  #schedulingScreen .dash-kpi__value         { font-size: 24px; }
  #schedulingScreen .dash-kpi__label         { font-size: 12px; }
  #schedulingScreen .ct-stat__val            { font-size: 24px; }
  #schedulingScreen .ct-stat__label          { font-size: 12px; }
}

/* ══════════════════════════════════════════
   BANCO DE QUESTÕES CN
   ══════════════════════════════════════════ */
#bancoContent { margin: 0 auto; }
#simuladosContent { margin: 0 auto; }

.banco-header { display: flex; flex-direction: column; align-items: flex-start; }
.banco-back {
  display: inline-flex; align-items: center; gap: 4px;
  background: none; border: none; cursor: pointer;
  color: var(--blue); font-weight: 700; font-size: 14px;
  padding: 0; margin-bottom: 10px;
  order: -1;
}

/* Bloco de desempenho (hub + desempenho) */
.banco-perf {
  display: grid; grid-template-columns: repeat(4, 1fr); gap: 12px; margin-bottom: 1.5rem;
}
.banco-perf__card {
  background: var(--gray-100); border-radius: var(--radius-md);
  padding: 16px 12px; text-align: center; display: flex; flex-direction: column; align-items: center; gap: 2px;
}
.banco-perf__icon { font-size: 20px; }
.banco-perf__val  { font-size: 26px; font-weight: 800; color: var(--navy); line-height: 1.1; }
.banco-perf__lbl  { font-size: 12px; color: var(--gray-400); }
.banco-meta-bar {
  width: 100%; height: 6px; background: rgba(0,0,0,.08); border-radius: 99px; margin-top: 8px; overflow: hidden;
}
.banco-meta-bar__fill { height: 100%; background: var(--blue); border-radius: 99px; transition: width .3s ease; }

/* Ações principais */
.banco-main-actions { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; margin-bottom: 1.5rem; }
.banco-action {
  text-align: left; cursor: pointer; border: 1px solid rgba(37,99,235,.18);
  background: var(--white); border-radius: var(--radius-md); padding: 18px 20px;
  display: flex; flex-direction: column; gap: 4px; transition: transform .12s ease, box-shadow .2s ease;
}
.banco-action:hover { transform: translateY(-2px); box-shadow: 0 8px 24px rgba(37,99,235,.14); }
.banco-action--primary { background: linear-gradient(135deg, var(--blue), var(--blue-light)); border: none; }
.banco-action--primary strong { color: #fff; font-size: 17px; }
.banco-action--primary span   { color: rgba(255,255,255,.86); font-size: 13px; }

/* Cards de acesso rápido */
.banco-quick { display: flex; flex-wrap: wrap; gap: 10px; }
.banco-quick__card {
  cursor: pointer; background: var(--gray-100); border: none; border-radius: 99px;
  padding: 10px 18px; font-weight: 600; font-size: 14px; color: var(--navy);
  display: inline-flex; align-items: center; gap: 8px; transition: background .15s ease;
}
.banco-quick__card:hover { background: rgba(37,99,235,.12); }

/* Filtros em cascata */
.bfil { background: #f1f5f9; border-radius: var(--radius-md); padding: 12px 16px; margin-bottom: 1rem; display: flex; flex-direction: column; gap: 8px; }
.bfil-row { display: flex; align-items: center; gap: 12px; }
.bfil-lbl { font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: .05em; color: #64748b; min-width: 80px; flex-shrink: 0; }
.bfil-sel-wrap { flex: 1; position: relative; }
.bfil-sel-wrap::after { content: '▾'; position: absolute; right: 12px; top: 50%; transform: translateY(-50%); pointer-events: none; font-size: 11px; color: #64748b; }
.bfil-sel {
  width: 100%; appearance: none; -webkit-appearance: none;
  background: #ffffff; border: 1px solid #cbd5e1;
  border-radius: 8px; padding: 9px 32px 9px 12px;
  font-size: 13px; font-weight: 600; color: #0f192d;
  cursor: pointer; outline: none;
  transition: border-color .12s;
}
.bfil-sel:focus { border-color: #2563eb; }
.bfil-sel option { background: #ffffff; color: #0f192d; }
/* Dark mode — select usa fundo escuro sólido para legibilidade do painel nativo */
body.plat-dark #bancoContent .bfil { background: rgba(255,255,255,.06); }
body.plat-dark #bancoContent .bfil-sel { background: #1e2d47; border-color: rgba(255,255,255,.2); color: #f1f5f9; }
body.plat-dark #bancoContent .bfil-sel option { background: #1e2d47; color: #f1f5f9; }
body.plat-dark #bancoContent .bfil-lbl,
body.plat-dark #bancoContent .bfil-sel-wrap::after { color: #94a3b8; }

/* Chips multi-select do caderno */
.bcad-row { align-items: flex-start; }
.bcad-chips { display: flex; flex-wrap: wrap; gap: 7px; flex: 1; }
.bcad-chips--wrap { flex-wrap: wrap; }
.bcad-chip {
  cursor: pointer; border: 1px solid #cbd5e1; background: #ffffff;
  border-radius: 99px; padding: 5px 13px;
  font-size: 12px; font-weight: 600; color: #0f192d;
  transition: all .12s ease;
}
.bcad-chip:hover { filter: brightness(.95); }
.bcad-chip--on { color: #fff; }
body.plat-dark #bancoContent .bcad-chip { background: rgba(255,255,255,.06); color: #f1f5f9; }
body.plat-dark #bancoContent .bcad-chip--on { color: #fff; }

/* Grupos de assuntos por disciplina */
.bcad-grupos { display: flex; flex-direction: column; gap: 12px; padding: 4px 0 2px; }
.bcad-grupo { display: flex; flex-direction: column; gap: 8px; }
.bcad-grupo__hdr {
  display: flex; align-items: center; gap: 8px;
}
.bcad-grupo__dot {
  width: 10px; height: 10px; border-radius: 50%;
  background: var(--grp-cor); flex-shrink: 0;
}
.bcad-grupo__nome {
  font-size: 11px; font-weight: 700; text-transform: uppercase;
  letter-spacing: .06em; color: var(--grp-cor); white-space: nowrap;
}
.bcad-grupo__linha {
  flex: 1; height: 1px;
  background: color-mix(in srgb, var(--grp-cor) 30%, transparent);
}

.banco-muted { color: var(--gray-400); font-size: 13px; }
.banco-count { font-size: 13px; font-weight: 600; color: var(--blue); margin: 0 0 1rem; }

/* Card de questão */
.banco-q { margin-bottom: 1.25rem; }
.banco-q.form-card {
  overflow: visible;       /* form-card tem overflow:hidden que corta alternativas nos cantos */
  padding: 18px 20px 22px;
}
.banco-q__hdr { display: flex; align-items: center; gap: 10px; margin-bottom: 8px; }
.banco-q__meta { font-size: 13px; font-weight: 700; color: var(--gray-400); }

/* Card de classificação disciplina · assunto */
.banco-q__cls {
  display: inline-flex; align-items: center; gap: 6px;
  margin-bottom: 12px;
  padding: 4px 12px 4px 8px;
  border-radius: 99px;
  background: color-mix(in srgb, var(--cls-cor) 12%, transparent);
  border: 1px solid color-mix(in srgb, var(--cls-cor) 30%, transparent);
  font-size: 12px; font-weight: 600;
}
.banco-q__cls-dot {
  width: 8px; height: 8px; border-radius: 50%;
  background: var(--cls-cor); flex-shrink: 0;
}
.banco-q__cls-disc { color: var(--cls-cor); font-weight: 700; text-transform: uppercase; letter-spacing: .04em; }
.banco-q__cls-sep  { color: var(--gray-400); }
.banco-q__cls-assunto { color: var(--gray-600); }
body.plat-dark #bancoContent .banco-q__cls-assunto { color: var(--gray-400); }
body.plat-dark #bancoContent .banco-q__cls {
  background: color-mix(in srgb, var(--cls-cor) 18%, transparent);
  border-color: color-mix(in srgb, var(--cls-cor) 35%, transparent);
}
.banco-q__badge-resp {
  font-size: 11px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .04em;
  color: #92400e;
  background: #fef3c7;
  border: 1px solid #fde68a;
  border-radius: 99px;
  padding: 2px 10px;
}
body.plat-dark #bancoContent .banco-q__badge-resp {
  color: #fde68a;
  background: rgba(253,230,138,.12);
  border-color: rgba(253,230,138,.3);
}
.banco-q__marks { margin-left: auto; display: flex; gap: 8px; }
.banco-mark {
  cursor: pointer; border: none; background: var(--gray-100); border-radius: 10px;
  width: 42px; height: 42px; font-size: 21px; line-height: 1;
  opacity: .9; transition: opacity .12s ease, transform .12s ease, background .12s ease;
}
.banco-mark:hover { opacity: 1; transform: scale(1.08); }
.banco-mark--on { opacity: 1; background: rgba(37,99,235,.14); }
.banco-mark--report { opacity: .9; color: #dc2626; }
.banco-mark--report:hover { opacity: 1; background: rgba(220,38,38,.12); }

/* ── Report modal ─────────────────────────────────────── */
.banco-report-overlay {
  position: fixed; inset: 0; z-index: 8000;
  background: rgba(0,0,0,.55); backdrop-filter: blur(4px);
  display: flex; align-items: center; justify-content: center; padding: 16px;
}
.banco-report-modal {
  background: #fff; border-radius: 16px; width: 100%; max-width: 480px;
  box-shadow: 0 24px 80px rgba(0,0,0,.3); overflow: hidden;
}
.banco-report-modal__header {
  display: flex; align-items: center; gap: 10px;
  padding: 18px 20px 14px; border-bottom: 1px solid var(--gray-200);
}
.banco-report-modal__icon { font-size: 20px; color: #dc2626; }
.banco-report-modal__title { flex: 1; font-weight: 700; font-size: 15px; color: var(--gray-900); }
.banco-report-modal__close {
  border: none; background: none; cursor: pointer; font-size: 16px;
  color: var(--gray-500); padding: 4px 8px; border-radius: 6px;
}
.banco-report-modal__close:hover { background: var(--gray-100); }
.banco-report-modal__body { padding: 20px; display: flex; flex-direction: column; gap: 12px; }
.banco-report-modal__label { font-weight: 600; font-size: 14px; color: var(--gray-800); margin: 0; }
.banco-report-tipos { display: flex; flex-direction: column; gap: 8px; }
.banco-report-tipo {
  display: flex; align-items: flex-start; gap: 12px; cursor: pointer;
  padding: 10px 12px; border-radius: 10px; border: 1.5px solid var(--gray-200);
  transition: border-color .12s ease, background .12s ease;
}
.banco-report-tipo:has(input:checked) {
  border-color: #dc2626; background: rgba(220,38,38,.05);
}
.banco-report-tipo input[type="radio"] { accent-color: #dc2626; margin-top: 2px; flex-shrink: 0; }
.banco-report-tipo__info { display: flex; flex-direction: column; gap: 2px; }
.banco-report-tipo__nome { font-weight: 600; font-size: 14px; color: var(--gray-800); }
.banco-report-tipo__desc { font-size: 12px; color: var(--gray-500); }
.banco-report-obs {
  width: 100%; box-sizing: border-box; border: 1.5px solid var(--gray-300);
  border-radius: 8px; padding: 10px 12px; font-size: 13px; font-family: inherit;
  resize: vertical; color: var(--gray-800); outline: none;
  transition: border-color .12s ease;
}
.banco-report-obs:focus { border-color: #dc2626; }
.banco-report-modal__footer {
  display: flex; justify-content: flex-end; gap: 10px;
  padding: 14px 20px 18px; border-top: 1px solid var(--gray-200);
}

/* dark mode */
body.plat-dark .banco-report-modal { background: #1e2536; }
body.plat-dark .banco-report-modal__header,
body.plat-dark .banco-report-modal__footer { border-color: rgba(255,255,255,.08); }
body.plat-dark .banco-report-modal__title { color: #f1f5f9; }
body.plat-dark .banco-report-tipo { border-color: rgba(255,255,255,.1); }
body.plat-dark .banco-report-tipo:has(input:checked) { background: rgba(220,38,38,.08); }
body.plat-dark .banco-report-tipo__nome { color: #e2e8f0; }
body.plat-dark .banco-report-obs { background: rgba(255,255,255,.04); border-color: rgba(255,255,255,.12); color: #e2e8f0; }
body.plat-dark .banco-report-obs:focus { border-color: #dc2626; }

.banco-q__text { margin-bottom: 14px; color: var(--gray-800); }
.banco-q__text p { white-space: pre-wrap; line-height: 1.55; text-align: justify; margin: 0; }
.banco-q__text p + p { margin-top: 8px; }
.banco-q__ref { font-size: 12px; color: var(--gray-400); font-style: italic; text-align: left; white-space: normal; margin-top: 14px !important; }
.banco-q__img { max-width: 100%; height: auto; border-radius: 8px; margin: 6px 0 14px; display: block; }
.banco-q__opts { display: flex; flex-direction: column; gap: 10px; }
.banco-opt { width: 100%; text-align: left; }
.banco-opt__img { max-width: 220px; height: auto; border-radius: 6px; margin-left: 8px; }

/* Tesoura — eliminar hipótese */
.banco-scissors {
  margin-left: auto;
  flex-shrink: 0;
  background: none;
  border: none;
  padding: 2px 4px 2px 10px;
  cursor: pointer;
  font-size: 15px;
  opacity: 0.3;
  transition: opacity .15s;
  line-height: 1;
  color: inherit;
}
.banco-scissors:hover { opacity: 0.7; }
.banco-scissors:disabled { opacity: 0.2; cursor: default; }

/* Alternativa eliminada */
.banco-opt--eliminated {
  opacity: 0.38;
  pointer-events: none;
}
.banco-opt--eliminated > span { text-decoration: line-through; }
.banco-opt--eliminated .banco-scissors { pointer-events: all; opacity: 0.55; }

/* Botão confirmar resposta */
.banco-confirm-btn {
  display: block;
  width: 100%;
  margin-top: 14px;
  padding: 13px;
  background: var(--blue);
  color: #fff;
  border: none;
  border-radius: 10px;
  font-size: 15px;
  font-weight: 700;
  cursor: pointer;
  transition: background .15s, opacity .15s;
}
.banco-confirm-btn:not(:disabled):hover { background: var(--blue-light); }
.banco-confirm-btn:disabled { background: var(--gray-300); cursor: default; opacity: 0.55; }

/* Feedback */
.banco-feedback {
  margin-top: 14px; padding: 12px 14px; border-radius: var(--radius-sm);
  background: var(--gray-100); display: flex; flex-direction: column; gap: 4px; font-size: 14px;
  color: var(--gray-800);
}
.banco-fb--ok { color: #16a34a; }
.banco-fb--no { color: #ef4444; }

/* Paginação */
.banco-pagination { display: flex; flex-wrap: wrap; gap: 6px; justify-content: center; margin: 1.5rem 0; }
.banco-page {
  cursor: pointer; min-width: 38px; height: 38px; border-radius: 8px;
  border: 1px solid rgba(0,0,0,.12); background: var(--white); font-weight: 700; color: var(--navy);
}
.banco-page--on  { background: var(--blue); border-color: var(--blue); color: #fff; }
.banco-page--nav { font-size: 20px; padding: 5px 12px; line-height: 1; font-weight: 400; }

/* Caderno: progresso + finalizar */
.banco-cad-progress { display: flex; align-items: center; gap: 12px; margin-bottom: 1.25rem; }
.banco-cad-progress__bar { flex: 1; height: 8px; background: rgba(0,0,0,.08); border-radius: 99px; overflow: hidden; }
.banco-cad-progress__fill { height: 100%; background: var(--blue); border-radius: 99px; transition: width .3s ease; }
.banco-cad-progress span { font-size: 13px; font-weight: 600; color: var(--gray-400); white-space: nowrap; }
.banco-cad-title { margin: 1rem 0; }

/* Resultado */
.banco-result { text-align: center; padding: 1.5rem 0; }
.banco-result__pct { font-size: 64px; font-weight: 800; line-height: 1; }
.banco-result__actions { display: flex; gap: 12px; justify-content: center; margin-bottom: 1.5rem; flex-wrap: wrap; }

/* Meus cadernos */
.banco-cad-item__main {
  flex: 1; display: flex; align-items: center; justify-content: space-between;
  background: none; border: none; text-align: left; cursor: pointer; padding: 0; min-width: 0;
}
.banco-cad-del {
  flex-shrink: 0; background: none; border: none; cursor: pointer;
  color: #ef4444; padding: 6px 8px; border-radius: 8px; opacity: 0.7;
  transition: opacity .15s, background .15s;
}
.banco-cad-del:hover { opacity: 1; background: rgba(239,68,68,.1); }
.banco-cad-item {
  display: flex; align-items: center; gap: 8px;
  width: 100%; border: 1px solid rgba(0,0,0,.1);
  background: var(--white); border-radius: var(--radius-md); padding: 14px 18px; margin-bottom: 10px;
  display: flex; align-items: center; justify-content: space-between; gap: 12px;
}
.banco-cad-item strong { display: block; color: var(--navy); }
.banco-cad-item span { font-size: 13px; color: var(--gray-400); }
.banco-cad-item__status { font-size: 13px; font-weight: 700; color: var(--blue); white-space: nowrap; }

/* Barra de desempenho */
.banco-bar-row { display: flex; align-items: center; gap: 12px; margin-top: 1rem; }
.banco-bar-row__lbl { font-size: 13px; color: var(--gray-400); min-width: 150px; }
.banco-bar { flex: 1; height: 10px; background: rgba(0,0,0,.08); border-radius: 99px; overflow: hidden; }
.banco-bar__fill { height: 100%; background: var(--blue); border-radius: 99px; }
.banco-bar-row__val { font-weight: 700; color: var(--navy); }

@media (max-width: 640px) {
  .banco-perf { grid-template-columns: repeat(2, 1fr); }
  .banco-main-actions { grid-template-columns: 1fr; }
  .bfil-lbl { min-width: 100%; }
  .bfil-row { flex-wrap: wrap; }
  .banco-back { margin-bottom: 8px; }
}

/* Breadcrumb do Banco de Simulados */
.sim-crumb { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; margin-bottom: 6px; order: -2; }
.sim-crumb__item {
  background: none; border: none; cursor: pointer; padding: 0;
  font-size: 12px; font-weight: 600; color: var(--gray-400);
}
.sim-crumb__item:last-child { color: var(--blue); cursor: default; }
.sim-crumb__sep { font-size: 12px; color: var(--gray-400); }

/* ── Dark mode ── */
body.plat-dark #bancoContent .banco-perf__card,
body.plat-dark #bancoContent .banco-quick__card,
body.plat-dark #bancoContent .banco-feedback,
body.plat-dark #bancoContent .banco-mark { background: rgba(255,255,255,.06); }
body.plat-dark #bancoContent .banco-perf__val,
body.plat-dark #bancoContent .banco-quick__card,
body.plat-dark #bancoContent .banco-page,
body.plat-dark #bancoContent .banco-cad-item strong,
body.plat-dark #bancoContent .banco-bar-row__val { color: #eaf0fe; }
body.plat-dark #bancoContent .banco-action,
body.plat-dark #bancoContent .banco-page,
body.plat-dark #bancoContent .banco-cad-item { background: rgba(255,255,255,.04); border-color: rgba(255,255,255,.12); }

/* ══════════════════════════════════════════
   FLASHCARDS (v2 — árvore Mentor/Aluno, criação pelo aluno)
   ══════════════════════════════════════════ */
#flashcardsContent { margin: 0 auto; }

/* ── Árvore de baralhos ── */
.flash-tree-section { margin-bottom: 1.75rem; }
.flash-tree-section__hdr { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 8px; margin-bottom: 6px; }
.flash-tree-section h3 { font-size: 15px; font-weight: 800; color: var(--navy); margin: 0; }
.flash-tree-section__sub { font-size: 12.5px; color: var(--gray-400); margin: 0 0 10px; max-width: 62ch; }
.flash-tree-badge { font-size: 10.5px; font-weight: 700; text-transform: uppercase; letter-spacing: .04em; padding: 2px 9px; border-radius: 99px; }
.flash-tree-badge--mentor { background: rgba(37,99,235,.12); color: var(--blue); }
.flash-tree-badge--aluno  { background: rgba(22,163,74,.12); color: #16a34a; }
.flash-tree-legend { font-size: 11px; color: var(--gray-400); display: flex; align-items: center; gap: 5px; flex-wrap: wrap; margin-bottom: 8px; }
.flash-tree-legend .flash-tc { padding: 0; background: none; min-width: auto; font-size: 13px; }

.flash-tree { background: var(--gray-100); border-radius: var(--radius-md); overflow: hidden; }
.flash-tree-empty { padding: 18px; font-size: 13px; color: var(--gray-400); text-align: center; }
.flash-tree-row {
  display: flex; align-items: center; gap: 8px; padding: 9px 12px;
  border-bottom: 1px solid rgba(0,0,0,.06); position: relative;
}
.flash-tree-row:last-child { border-bottom: none; }
.flash-tree-row--top { background: rgba(37,99,235,.05); }
.flash-tree-row--drag-over { outline: 2px dashed var(--blue); outline-offset: -2px; }
.flash-tree-row--drop-before::before, .flash-tree-row--drop-after::after {
  content: ''; position: absolute; left: 12px; right: 12px; height: 3px; background: #16a34a; border-radius: 3px;
}
.flash-tree-row--drop-before::before { top: -2px; }
.flash-tree-row--drop-after::after { bottom: -2px; }
.flash-tree-row[draggable="true"] { cursor: grab; }
.flash-tree-row.is-dragging { opacity: .4; }
.flash-tree-arrow { width: 16px; flex-shrink: 0; text-align: center; font-size: 10px; color: var(--gray-400); cursor: pointer; user-select: none; }
.flash-tree-arrow--empty { cursor: default; }
.flash-tree-label { flex: 1; font-size: 13.5px; cursor: pointer; font-weight: 600; color: var(--blue); }
.flash-tree-label:hover { text-decoration: underline; }
.flash-tree-label--top { color: var(--navy); font-weight: 800; font-size: 14.5px; }
.flash-tree-counts { display: flex; align-items: center; gap: 9px; flex-shrink: 0; font-variant-numeric: tabular-nums; }
.flash-tc { min-width: 20px; text-align: center; font-size: 12px; font-weight: 700; }
.flash-tc--novos       { color: var(--blue); }
.flash-tc--aprendizado { color: #dc2626; }
.flash-tc--revisao     { color: #16a34a; }
.flash-tree-count { flex-shrink: 0; font-size: 12.5px; font-weight: 700; color: var(--gray-400); min-width: 20px; text-align: right; font-variant-numeric: tabular-nums; }
.flash-tree-kebab {
  flex-shrink: 0; width: 24px; height: 24px; border-radius: 7px; border: none; background: transparent;
  color: var(--gray-400); font-size: 15px; display: flex; align-items: center; justify-content: center; cursor: pointer;
}
.flash-tree-kebab:hover { background: rgba(0,0,0,.06); color: var(--navy); }

.flash-baralho-toolbar { display: flex; gap: 10px; margin-top: 12px; flex-wrap: wrap; }
.flash-config-link-row { display: flex; justify-content: flex-end; gap: 10px; margin: -12px 0 20px; flex-wrap: wrap; }

/* ── Barra de progresso da sessão (X de Y cards) ── */
.flash-progress-bar {
  height: 6px; border-radius: 999px; background: var(--gray-100);
  margin: -6px 0 18px; overflow: hidden;
}
.flash-progress-bar__fill {
  height: 100%; background: var(--blue); border-radius: 999px;
  transition: width .25s ease;
}
body.plat-dark #flashcardsContent .flash-progress-bar { background: rgba(255,255,255,.08); }

/* ── Contagem ao vivo durante a sessão de estudo ── */
.flash-study-counts {
  display: flex; align-items: center; justify-content: center; gap: 22px;
  margin: -8px 0 18px; padding: 10px 16px; background: var(--gray-100);
  border-radius: var(--radius-md); font-variant-numeric: tabular-nums;
}
.flash-study-counts .flash-tc { font-size: 16px; font-weight: 800; min-width: auto; display: flex; align-items: center; gap: 6px; }
.flash-study-counts .flash-tc::before { content: ''; width: 8px; height: 8px; border-radius: 50%; background: currentColor; }
body.plat-dark #flashcardsContent .flash-study-counts { background: rgba(255,255,255,.04); }

/* ── Estatística diária (estilo Anki) no rodapé do Hub ── */
.flash-daily-stats {
  text-align: center; margin: 24px 0 4px; font-size: 14px; font-weight: 600;
  color: var(--gray-400); font-variant-numeric: tabular-nums;
}
body.plat-dark #flashcardsContent .flash-daily-stats { color: rgba(255,255,255,.5); }

/* ── Editar / suspender flashcard direto da sessão de estudo ── */
.flash-study-editrow { display: flex; justify-content: center; gap: 10px; margin: 12px 0 4px; flex-wrap: wrap; }
.flash-study-edit-btn {
  display: flex; align-items: center; gap: 7px;
  background: var(--gray-100); border: 1px solid rgba(0,0,0,.08); border-radius: var(--radius-md);
  padding: 10px 18px; font-size: 14px; font-weight: 700; color: var(--navy); cursor: pointer;
}
.flash-study-edit-btn:hover { background: rgba(37,99,235,.1); border-color: rgba(37,99,235,.3); color: var(--blue); }
body.plat-dark #flashcardsContent .flash-study-edit-btn { background: rgba(255,255,255,.04); border-color: rgba(255,255,255,.14); color: #eaf0fe; }
body.plat-dark #flashcardsContent .flash-study-edit-btn:hover { background: rgba(37,99,235,.18); border-color: rgba(96,165,250,.4); color: var(--blue-glow); }

/* ── Tags (formulário de criação + navegação) ── */
.flash-tags-input__chips { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 8px; }
.flash-tags-input__row { display: flex; gap: 8px; }
.flash-tags-input__row .erros-input { flex: 1; }
.flash-tags-input__row .erros-btn { flex-shrink: 0; white-space: nowrap; }
.flash-tag-chip {
  display: inline-flex; align-items: center; gap: 6px;
  background: rgba(37,99,235,.1); color: var(--blue); border-radius: 999px;
  padding: 4px 6px 4px 12px; font-size: 12.5px; font-weight: 700;
}
.flash-tag-chip button {
  background: none; border: none; color: inherit; cursor: pointer; font-size: 14px;
  line-height: 1; padding: 2px 6px; border-radius: 50%; opacity: .7;
}
.flash-tag-chip button:hover { opacity: 1; background: rgba(37,99,235,.15); }
body.plat-dark #flashcardsContent .flash-tag-chip { background: rgba(96,165,250,.16); color: var(--blue-glow); }
.flash-tags-browse { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 14px; }
.flash-tag-count { opacity: .65; font-weight: 600; margin-left: 4px; }

/* ── Navegador de cards ── */
.flash-nav-estado {
  display: inline-block; font-size: 10.5px; font-weight: 700; letter-spacing: .02em;
  padding: 2px 8px; border-radius: 999px; margin-left: 6px; vertical-align: 2px;
}
.flash-nav-estado--novo        { background: rgba(37,99,235,.12); color: var(--blue); }
.flash-nav-estado--aprendizado { background: rgba(220,38,38,.12); color: #dc2626; }
.flash-nav-estado--revisao     { background: rgba(22,163,74,.12); color: #16a34a; }
.flash-nav-estado--suspenso    { background: rgba(180,83,9,.14); color: #b45309; }
.flash-nav-row__actions { display: flex; gap: 8px; flex-shrink: 0; flex-wrap: wrap; }

/* ── Cards suspensos ── */
.flash-susp-list { display: flex; flex-direction: column; gap: 10px; margin-top: 12px; }
.flash-susp-row {
  display: flex; align-items: center; justify-content: space-between; gap: 14px;
  background: var(--white); border: 1px solid rgba(0,0,0,.08); border-radius: var(--radius-md);
  padding: 14px 16px;
}
.flash-susp-row__txt p { margin: 0; font-size: 14px; color: var(--navy); }
body.plat-dark #flashcardsContent .flash-susp-row { background: rgba(255,255,255,.04); border-color: rgba(255,255,255,.1); }
body.plat-dark #flashcardsContent .flash-susp-row__txt p { color: #eaf0fe; }

/* ── Estatísticas: heatmap, retenção, previsão ── */
.flash-heatmap-wrap { overflow-x: auto; padding-bottom: 4px; }
.flash-heatmap {
  display: grid; grid-template-rows: repeat(7, 1fr); grid-auto-flow: column;
  gap: 4px; width: max-content;
}
.flash-heat-cell { width: 14px; height: 14px; border-radius: 4px; background: var(--gray-100); }
.flash-heat-cell--pad { background: transparent; }
.flash-heat-cell--1 { background: rgba(37,99,235,.25); }
.flash-heat-cell--2 { background: rgba(37,99,235,.5); }
.flash-heat-cell--3 { background: rgba(37,99,235,.75); }
.flash-heat-cell--4 { background: var(--blue); }
body.plat-dark #flashcardsContent .flash-heat-cell,
body.plat-dark #aulasContent .flash-heat-cell { background: rgba(255,255,255,.06); }

.flash-stat-big { font-size: 40px; font-weight: 800; color: var(--blue); margin: 0 0 4px; font-variant-numeric: tabular-nums; }

.flash-forecast { display: flex; align-items: flex-end; gap: 6px; height: 96px; overflow-x: auto; padding-bottom: 4px; }
.flash-forecast__col { display: flex; flex-direction: column; align-items: center; gap: 6px; flex-shrink: 0; width: 22px; }
.flash-forecast__bar { width: 100%; background: var(--blue); border-radius: 4px 4px 0 0; min-height: 4px; }
.flash-forecast__col span { font-size: 10px; color: var(--gray-400); }
body.plat-dark #flashcardsContent .flash-forecast__col span { color: rgba(255,255,255,.5); }

/* ── Configurações do algoritmo ── */
.flash-config-card {
  background: var(--white); border: 1px solid rgba(0,0,0,.1); border-radius: var(--radius-md);
  padding: 20px 22px; margin-bottom: 16px;
}
.flash-config-card h3 { font-size: 15px; font-weight: 800; color: var(--navy); margin: 0 0 8px; }
.flash-config-card p { font-size: 13.5px; color: var(--navy); line-height: 1.6; margin: 0 0 8px; }
.flash-config-card p:last-child { margin-bottom: 0; }
.flash-config-fonte { font-size: 12px; color: var(--gray-400); }
.flash-config-fonte a { color: var(--blue); }
.flash-config-table { width: 100%; border-collapse: collapse; font-size: 13px; }
.flash-config-table td { padding: 8px 4px; border-bottom: 1px solid rgba(0,0,0,.06); }
.flash-config-table td:first-child { color: var(--gray-400); }
.flash-config-table td:last-child { text-align: right; color: var(--navy); }
.flash-config-table tr:last-child td { border-bottom: none; }
.flash-config-nota { font-size: 12px; color: var(--gray-400); text-align: center; }
.flash-config-nota code { background: rgba(0,0,0,.06); padding: 1px 6px; border-radius: 4px; }

body.plat-dark #flashcardsContent .flash-config-card { background: rgba(255,255,255,.04); border-color: rgba(255,255,255,.14); }
body.plat-dark #flashcardsContent .flash-config-card h3,
body.plat-dark #flashcardsContent .flash-config-card p,
body.plat-dark #flashcardsContent .flash-config-table td:last-child { color: #eaf0fe; }
body.plat-dark #flashcardsContent .flash-config-table td { border-color: rgba(255,255,255,.1); }
body.plat-dark #flashcardsContent .flash-config-nota code { background: rgba(255,255,255,.1); }
.flash-inline-form { display: flex; gap: 8px; padding: 8px 14px 10px; align-items: center; }
.flash-inline-form .erros-input { flex: 1; min-width: 140px; }
.flash-inline-form--criar { padding: 0; margin-bottom: 16px; }

/* ── Popover ── */
.flash-popover {
  position: absolute; z-index: 200; background: var(--white); border: 1px solid rgba(0,0,0,.1);
  border-radius: 10px; box-shadow: 0 12px 32px rgba(15,25,45,.18); min-width: 200px; padding: 6px;
}
.flash-popover button { display: flex; align-items: center; gap: 9px; width: 100%; text-align: left; background: none; border: none; padding: 9px 10px; border-radius: 7px; font-size: 13px; font-weight: 600; color: var(--navy); cursor: pointer; }
.flash-popover button:hover { background: var(--gray-100); }
.flash-popover__divider { height: 1px; background: rgba(0,0,0,.1); margin: 4px 2px; }
.flash-popover button.danger { color: #dc2626; }

/* ── Toast ── */
.flash-toast {
  position: fixed; bottom: 24px; left: 50%; transform: translateX(-50%) translateY(12px);
  background: var(--navy); color: #fff; padding: 11px 20px; border-radius: 10px; font-size: 13px; font-weight: 600;
  opacity: 0; transition: opacity .2s ease, transform .2s ease; z-index: 300; pointer-events: none;
  box-shadow: 0 12px 28px rgba(0,0,0,.25); max-width: 90vw; text-align: center;
}
.flash-toast.is-visible { opacity: 1; transform: translateX(-50%) translateY(0); }

/* ── Ver cards de um baralho ── */
.flash-card-list { display: flex; flex-direction: column; gap: 8px; }
.flash-card-row { background: var(--gray-100); border-radius: var(--radius-md); padding: 10px 14px; }
.flash-card-row__main { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.flash-card-row__txt { font-size: 13px; color: var(--navy); flex: 1; }
.flash-card-row__actions { display: flex; gap: 8px; flex-shrink: 0; }
.flash-add-baralho-btn {
  flex-shrink: 0; background: var(--white); border: 1px solid rgba(37,99,235,.25); border-radius: 99px;
  padding: 5px 12px; font-size: 12px; font-weight: 700; color: var(--blue); cursor: pointer;
}
.flash-add-baralho-btn:hover { background: rgba(37,99,235,.08); }
.flash-btn--danger { color: #dc2626 !important; border-color: #dc2626 !important; }
.flash-btn--danger:hover { background: rgba(220,38,38,.08) !important; }

/* ── Card de estudo — centralizado ── */
.flash-study-card {
  background: var(--white); border: 1px solid rgba(37,99,235,.18); border-radius: var(--radius-md);
  padding: 32px 28px; margin-bottom: 1rem; min-height: 220px;
  display: flex; flex-direction: column; align-items: center; text-align: center; gap: 14px;
}
/* Hierarquia de 3 tamanhos no card de estudo: tag (baralho) < frente/verso < título */
.flash-study-tag { display: inline-block; background: rgba(37,99,235,.12); color: var(--blue); font-size: 12px; font-weight: 700; padding: 4px 14px; border-radius: 99px; }
.flash-study-titulo { font-size: 22px; font-weight: 800; color: var(--navy); margin: 0; }
.flash-study-divider { width: 100%; max-width: 320px; border: none; border-top: 1px solid rgba(0,0,0,.12); margin: 4px auto; }
.flash-face { display: flex; flex-direction: column; align-items: center; gap: 10px; max-width: 640px; }
.flash-face__txt { font-size: 16px; line-height: 1.6; color: var(--navy); }
.flash-face__txt hr { border: none; border-top: 1px solid rgba(0,0,0,.12); margin: 10px 0; width: 100%; }
.flash-face__img { max-width: 100%; max-height: 340px; border-radius: 10px; margin: 0 auto; display: block; }
.flash-face__extra { margin-top: 4px; font-size: 14px; color: var(--gray-400); }
.flash-blank { display: inline-block; background: rgba(37,99,235,.14); color: transparent; border-radius: 4px; padding: 0 6px; user-select: none; }
.flash-cloze-answer { background: rgba(250,204,21,.35); color: var(--navy); border-radius: 4px; padding: 0 4px; }

.flash-grade-row { display: grid; grid-template-columns: repeat(4, 1fr); gap: 10px; }
.flash-grade-btn { border: none; border-radius: var(--radius-md); padding: 12px 8px; cursor: pointer; display: flex; flex-direction: column; align-items: center; gap: 3px; color: #fff; transition: transform .12s ease; }
.flash-grade-btn strong { font-size: 14px; } .flash-grade-btn span { font-size: 12px; opacity: .9; font-weight: 600; }
.flash-grade-btn:hover { transform: translateY(-2px); }
.flash-grade-btn--errei   { background: #dc2626; }
.flash-grade-btn--dificil { background: #f59e0b; }
.flash-grade-btn--bom     { background: var(--blue); }
.flash-grade-btn--facil   { background: #16a34a; }
.flash-shortcuts-hint { text-align: center; font-size: 12px; color: var(--gray-400); margin-top: 10px; }

#flashcardsContent .banco-main-actions { grid-template-columns: 1fr; }
#flashcardsContent .banco-action { text-align: center; align-items: center; }

/* ── Oclusão de imagem (edição e estudo) ── */
.flash-occl-editor { position: relative; display: inline-block; max-width: 100%; user-select: none; }
.flash-occl-editor img { max-width: 100%; display: block; border-radius: 8px; }
.flash-occl-editor--study { max-width: 420px; margin: 0 auto; }
.flash-occl-rect { position: absolute; border: 2px solid var(--blue); background: rgba(37,99,235,.28); border-radius: 2px; }
.flash-occl-rect__del { position: absolute; top: -9px; right: -9px; width: 18px; height: 18px; border-radius: 50%; background: #dc2626; color: #fff; border: none; font-size: 11px; line-height: 1; cursor: pointer; }
.flash-occl-box { position: absolute; background: var(--navy); border-radius: 3px; }
.flash-occl-hint { font-size: 11.5px; color: var(--gray-400); margin-top: 8px; }

/* ── Criar flashcard ── */
.flash-criando-para {
  display: inline-flex; align-items: center; gap: 8px; background: rgba(37,99,235,.10);
  border: 1px solid rgba(37,99,235,.25); color: var(--blue); font-size: 13px; font-weight: 700;
  padding: 7px 10px 7px 14px; border-radius: 99px; margin-bottom: 16px; cursor: pointer; transition: background .15s ease;
}
.flash-criando-para:hover { background: rgba(37,99,235,.18); }
.flash-criando-para strong { font-weight: 800; }
.flash-criando-para__chevron { font-size: 10px; opacity: .7; }

.flash-type-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 10px; margin-bottom: 20px; }
.flash-type-card {
  background: var(--white); border: 1.5px solid rgba(0,0,0,.1); border-radius: var(--radius-md);
  padding: 16px; text-align: left; display: flex; flex-direction: column; gap: 4px; cursor: pointer;
}
.flash-type-card strong { font-size: 14px; color: var(--navy); } .flash-type-card span { font-size: 11.5px; color: var(--gray-400); }
.flash-type-card.is-active { border-color: var(--blue); background: rgba(37,99,235,.06); }

.flash-creator-grid { display: grid; grid-template-columns: 1.1fr .9fr; gap: 24px; align-items: start; }
.flash-field { margin-bottom: 16px; }
.flash-field__label-row { display: flex; align-items: center; justify-content: space-between; margin-bottom: 6px; }
.flash-field__label { font-size: 12.5px; font-weight: 700; text-transform: uppercase; letter-spacing: .03em; color: var(--gray-400); }
.flash-pin-btn { border: 1px solid rgba(0,0,0,.12); background: var(--white); width: 26px; height: 26px; border-radius: 8px; font-size: 13px; display: flex; align-items: center; justify-content: center; cursor: pointer; }
.flash-pin-btn.is-pinned { background: rgba(245,158,11,.14); border-color: #f59e0b; }
.flash-field textarea.erros-input { min-height: 78px; resize: vertical; }
.flash-cloze-toolbar { display: flex; gap: 8px; margin-bottom: 8px; }
.flash-upload-zone {
  border: 1.5px dashed rgba(0,0,0,.15); border-radius: 10px; padding: 14px; text-align: center; color: var(--gray-400);
  font-size: 12.5px; margin-top: 8px; cursor: pointer;
}
.flash-upload-zone__trocar { display: block; margin-top: 6px; font-size: 11px; }
.flash-preview-panel { background: var(--white); border: 1px solid rgba(0,0,0,.1); border-radius: var(--radius-md); padding: 20px; position: sticky; top: 20px; }
.flash-preview-panel__hdr { display: flex; align-items: center; justify-content: space-between; margin-bottom: 14px; }
.flash-preview-panel__hdr h4 { font-size: 12.5px; font-weight: 700; color: var(--gray-400); letter-spacing: .03em; margin: 0; text-transform: uppercase; }
.flash-save-row { margin-top: 6px; }

@media (max-width: 760px) {
  .flash-creator-grid { grid-template-columns: 1fr; }
  .flash-type-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 640px) {
  .flash-grade-row { grid-template-columns: repeat(2, 1fr); }
  .flash-tree-counts { gap: 6px; }
}

/* ── Dark mode ── */
body.plat-dark #flashcardsContent .flash-tree { background: rgba(255,255,255,.05); }
body.plat-dark #flashcardsContent .flash-tree-row { border-color: rgba(255,255,255,.08); }
body.plat-dark #flashcardsContent .flash-tree-row--top { background: rgba(255,255,255,.04); }
body.plat-dark #flashcardsContent .flash-tree-label--top { color: #eaf0fe; }
body.plat-dark #flashcardsContent .flash-tree-section h3 { color: #eaf0fe; }
body.plat-dark #flashcardsContent .flash-tree-kebab:hover { background: rgba(255,255,255,.08); color: #eaf0fe; }
body.plat-dark #flashcardsContent .flash-card-row { background: rgba(255,255,255,.06); }
body.plat-dark #flashcardsContent .flash-study-card { background: rgba(255,255,255,.04); border-color: rgba(255,255,255,.16); }
body.plat-dark #flashcardsContent .flash-study-titulo,
body.plat-dark #flashcardsContent .flash-face__txt { color: #eaf0fe; }
body.plat-dark #flashcardsContent .flash-add-baralho-btn { background: rgba(255,255,255,.06); border-color: rgba(255,255,255,.2); }
body.plat-dark #flashcardsContent .flash-face__txt hr,
body.plat-dark #flashcardsContent .flash-study-divider { border-color: rgba(255,255,255,.16); }
body.plat-dark #flashcardsContent .flash-type-card { background: rgba(255,255,255,.04); border-color: rgba(255,255,255,.14); }
body.plat-dark #flashcardsContent .flash-type-card strong { color: #eaf0fe; }
body.plat-dark #flashcardsContent .flash-preview-panel { background: rgba(255,255,255,.04); border-color: rgba(255,255,255,.14); }
body.plat-dark #flashcardsContent .flash-pin-btn { background: rgba(255,255,255,.06); border-color: rgba(255,255,255,.2); }
body.plat-dark #flashcardsContent .flash-upload-zone { border-color: rgba(255,255,255,.2); }
body.plat-dark .flash-popover { background: #1b2436; border-color: rgba(255,255,255,.14); }
body.plat-dark .flash-popover button { color: #eaf0fe; }
body.plat-dark .flash-popover button:hover { background: rgba(255,255,255,.08); }
body.plat-dark .flash-popover__divider { background: rgba(255,255,255,.14); }

/* ══════════════════════════════════════════
   REDAÇÃO — módulo de Resultados Simulados
   ══════════════════════════════════════════ */

/* Stats bar */
.rd-stats {
  display: flex; gap: 12px; flex-wrap: wrap; margin-bottom: 20px;
}
.rd-stat {
  flex: 1; min-width: 80px;
  background: var(--white);
  border: 1px solid var(--gray-200);
  border-radius: 12px;
  padding: 12px 16px;
  display: flex; flex-direction: column; align-items: center; gap: 4px;
  text-align: center;
}
.rd-stat__val {
  font-size: 1.5rem; font-weight: 700; color: var(--gray-800); line-height: 1;
}
.rd-stat__lbl {
  font-size: 0.72rem; color: var(--gray-400); font-weight: 500; text-transform: uppercase; letter-spacing: .04em;
}

/* Botão nova redação */
.rd-add-btn {
  display: flex; align-items: center; gap: 8px;
  margin-bottom: 20px;
}

/* Lista de cards */
.rd-list {
  display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
  gap: 14px; margin-bottom: 32px;
}

/* Card individual */
.rd-card {
  background: var(--white);
  border: 1px solid var(--gray-200);
  border-radius: 14px;
  padding: 16px 18px;
  display: flex; flex-direction: column; gap: 8px;
  transition: box-shadow .18s;
}
.rd-card:hover { box-shadow: 0 4px 16px rgba(37,99,235,.08); }
.rd-card__header {
  display: flex; justify-content: space-between; align-items: center;
}
.rd-card__date { font-size: 0.78rem; color: var(--gray-400); font-weight: 500; }
.rd-card__nota { font-size: 1.45rem; font-weight: 800; line-height: 1; }
.rd-card__nota-max { font-size: 0.75rem; font-weight: 500; color: var(--gray-400); }
.rd-card__tema {
  font-size: 0.88rem; font-weight: 600; color: var(--gray-700); line-height: 1.4;
}
.rd-card__eixo {
  font-size: 0.76rem; color: var(--gray-400);
  background: var(--gray-100); border-radius: 6px;
  padding: 3px 8px; align-self: flex-start;
}
.rd-card__tempo { font-size: 0.75rem; color: var(--gray-400); }

/* Mini barras de competência */
.rd-card__bars {
  display: flex; align-items: flex-end; gap: 5px; height: 36px;
  overflow: hidden; /* rede de segurança: uma nota fora de escala nunca deve invadir o texto do tema acima */
}
.rd-card-bar {
  flex: 1; border-radius: 3px 3px 0 0;
  height: var(--bar-h, 50%); background: var(--bar-cor, #6366f1);
  opacity: .8; min-height: 4px;
  transition: height .3s ease;
}

/* Ações do card */
.rd-card__actions {
  display: flex; justify-content: space-between; align-items: center;
  margin-top: 4px;
}
.rd-del-btn {
  background: none; border: none; cursor: pointer;
  color: var(--gray-300); padding: 4px;
  border-radius: 6px; display: flex; align-items: center;
  transition: color .15s, background .15s;
}
.rd-del-btn:hover { color: #ef4444; background: rgba(239,68,68,.08); }

/* Gráficos — usa rsim-dashboard/chart-grid/chart-card (mesmos das outras áreas) */
/* Container SVG: altura fixa 230px igual ao rsim-chart-wrap */
.rd-svg-card-body {
  position: relative;
  width: 100%;
  height: 230px;
  overflow: hidden;
}
.rd-svg-card-body svg {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  display: block;
}
/* Radar mantém proporção (pentágono não pode distorcer) */
.rd-svg-card-body--radar {
  display: flex;
  align-items: center;
  justify-content: center;
}
.rd-svg-card-body--radar svg {
  position: static;
  width: auto;
  height: 100%;
  max-width: 100%;
}
/* Barras: altura cresce com nº de entradas (como rsim erros dinâmico) */
.rd-svg-card-body--barras { height: auto; min-height: 160px; }
.rd-svg-card-body--barras svg { position: static; height: auto; }

/* ── Formulário ── */
.rd-form-wrap { max-width: 620px; margin-left: auto; margin-right: auto; }
.rd-form-header {
  display: flex; align-items: center; gap: 14px; margin-bottom: 24px;
}
.rd-form-title {
  font-size: 1.1rem; font-weight: 700; color: var(--gray-800); margin: 0;
}
.rd-form { display: flex; flex-direction: column; gap: 0; }
.rd-form-section {
  background: var(--white);
  border: 1px solid var(--gray-200);
  border-radius: 14px;
  padding: 20px;
  margin-bottom: 14px;
}
.rd-form-section__title {
  font-size: 0.8rem; font-weight: 700; color: var(--gray-500);
  text-transform: uppercase; letter-spacing: .05em;
  margin: 0 0 16px;
}
.rd-form-row {
  display: grid; grid-template-columns: 1fr 1fr; gap: 14px;
}
.rd-form-input,
.rd-form-select,
.rd-form-textarea {
  width: 100%; padding: 10px 13px;
  border: 1.5px solid var(--gray-200);
  border-radius: 9px; font-size: 0.9rem;
  color: var(--gray-800); background: var(--white);
  transition: border-color .15s;
  font-family: inherit;
}
.rd-form-input:focus,
.rd-form-select:focus,
.rd-form-textarea:focus { outline: none; border-color: var(--blue); }
.rd-form-textarea { resize: vertical; min-height: 60px; }
.rd-form-hint { font-size: 0.8rem; color: var(--gray-400); margin: 0 0 16px; }

/* Bloco de competência */
.rd-form-comp {
  padding: 14px;
  border: 1.5px solid var(--gray-200);
  border-radius: 10px;
  margin-bottom: 10px;
  display: flex; flex-direction: column; gap: 10px;
}
.rd-form-comp__header {
  display: flex; align-items: center; gap: 8px;
}
.rd-form-comp__dot {
  width: 10px; height: 10px; border-radius: 50%; flex-shrink: 0;
}
.rd-form-comp__name { font-size: 0.88rem; font-weight: 600; color: var(--gray-700); flex: 1; }
.rd-form-comp__full { font-weight: 400; color: var(--gray-400); font-size: 0.82rem; }
.rd-form-comp__val {
  font-size: 1.1rem; font-weight: 800; color: var(--blue); min-width: 36px; text-align: right;
}
.rd-form-comp__erro {
  width: 100%; border: 1.5px solid var(--gray-200);
  border-radius: 8px; padding: 8px 11px;
  font-size: 0.85rem; color: var(--gray-700);
  resize: vertical; font-family: inherit;
  transition: border-color .15s;
}
.rd-form-comp__erro:focus { outline: none; border-color: var(--blue); }

/* Pills de nota */
.rd-nota-section { display: flex; flex-direction: column; gap: 4px; }
.rd-nota-section--inter {
  padding: 8px 10px; border-radius: 8px;
  background: var(--gray-50); border: 1.5px dashed var(--gray-200);
}
.rd-nota-section__label {
  font-size: 0.73rem; font-weight: 700; text-transform: uppercase;
  letter-spacing: .04em; color: var(--gray-400);
}
.rd-nota-btns { display: flex; gap: 6px; flex-wrap: wrap; }
.rd-nota-btn {
  padding: 5px 10px; border-radius: 7px; border: 1.5px solid var(--gray-200);
  background: var(--white); font-size: 0.82rem; font-weight: 600;
  color: var(--gray-500); cursor: pointer;
  transition: border-color .15s, background .15s, color .15s;
}
.rd-nota-btn:hover { border-color: var(--btn-cor, var(--blue)); color: var(--btn-cor, var(--blue)); }
.rd-nota-btn--on {
  background: var(--btn-cor, var(--blue)); border-color: var(--btn-cor, var(--blue));
  color: #fff;
}
.rd-nota-btn--inter { border-style: dashed; }

/* Barra de nota total */
.rd-total-bar {
  display: flex; align-items: center; gap: 10px;
  padding: 14px 16px;
  background: var(--gray-50); border-radius: 10px; margin-top: 6px;
}
.rd-total-bar__label { font-size: 0.85rem; color: var(--gray-500); font-weight: 600; flex: 1; }
.rd-total-bar__val { font-size: 1.6rem; font-weight: 800; color: var(--blue); line-height: 1; }
.rd-total-bar__max { font-size: 0.8rem; color: var(--gray-400); font-weight: 500; }

/* Ações do form */
.rd-form-actions {
  display: flex; gap: 12px; justify-content: flex-end; margin-top: 6px;
}

/* ── Dark mode — scoped a #schedulingScreen (igual ao banco de questões) ── */
body.plat-dark #schedulingScreen .rd-stat,
body.plat-dark #schedulingScreen .rd-card { background: #162032; border-color: rgba(255,255,255,.1); }

body.plat-dark #schedulingScreen .rd-stat__val,
body.plat-dark #schedulingScreen .rd-card__tema,
body.plat-dark #schedulingScreen .rd-card__nota { color: #eaf0fe; }

body.plat-dark #schedulingScreen .rd-card__eixo { background: rgba(255,255,255,.08); color: #94a3b8; }

/* Formulário — cores sólidas como banco de questões */
body.plat-dark #schedulingScreen .rd-form-section { background: #162032; border-color: rgba(255,255,255,.1); }
body.plat-dark #schedulingScreen .rd-form-title,
body.plat-dark #schedulingScreen .rd-form-section__title { color: #eaf0fe; }
body.plat-dark #schedulingScreen .rd-form-comp__name { color: #cbd5e1; }

body.plat-dark #schedulingScreen .rd-form-input,
body.plat-dark #schedulingScreen .rd-form-select,
body.plat-dark #schedulingScreen .rd-form-textarea,
body.plat-dark #schedulingScreen .rd-form-comp__erro {
  background: #1e2d47;
  border-color: rgba(255,255,255,.18);
  color: #f1f5f9;
}
body.plat-dark #schedulingScreen .rd-form-select option { background: #1e2d47; color: #f1f5f9; }
body.plat-dark #schedulingScreen .rd-form-comp { border-color: rgba(255,255,255,.1); }

body.plat-dark #schedulingScreen .rd-nota-btn { background: #1e2d47; border-color: rgba(255,255,255,.15); color: #cbd5e1; }
body.plat-dark #schedulingScreen .rd-nota-btn--on { background: var(--btn-cor); border-color: var(--btn-cor); color: #fff; }
body.plat-dark #schedulingScreen .rd-nota-section--inter { background: #0f1729; border-color: rgba(255,255,255,.12); }
body.plat-dark #schedulingScreen .rd-nota-section__label { color: #64748b; }

body.plat-dark #schedulingScreen .rd-total-bar { background: #0f1729; }
body.plat-dark #schedulingScreen .rd-total-bar__label { color: #94a3b8; }
body.plat-dark #schedulingScreen .rd-form-hint { color: #8fa6c0; }

/* ── Configurações (perfil do aluno) ── */
.config-avatar-row { display: flex; align-items: center; gap: 18px; }
.config-avatar-actions__btns { display: flex; gap: 8px; flex-wrap: wrap; }
.config-avatar {
  width: 64px; height: 64px; border-radius: 50%; flex-shrink: 0;
  background: linear-gradient(135deg, #1e3a8a, #1d4ed8);
  background-size: cover; background-position: center;
  display: flex; align-items: center; justify-content: center;
  color: #fff; font-size: 1.4rem; font-weight: 800; font-family: var(--ff-display);
}
.config-credits {
  font-size: 1.1rem; font-weight: 700; color: var(--blue); margin: 0 0 6px;
}
.config-contact-list { display: flex; flex-direction: column; gap: 8px; }
.config-contact-link {
  color: var(--gray-700); font-size: 0.9rem; text-decoration: none;
}
.config-contact-link:hover { color: var(--blue); text-decoration: underline; }
.config-danger { border-color: rgba(220,38,38,.35) !important; }
.config-danger .rd-form-section__title { color: #DC2626; }

body.plat-dark #schedulingScreen .config-contact-link { color: #cbd5e1; }
body.plat-dark #schedulingScreen .config-danger { border-color: rgba(220,38,38,.4) !important; }

/* ── Responsivo mobile ── */
@media (max-width: 600px) {
  /* Stats menores em tela pequena */
  .rd-stats { gap: 8px; }
  .rd-stat { padding: 10px 10px; min-width: 64px; }
  .rd-stat__val { font-size: 1.25rem; }

  /* Cards em coluna única */
  .rd-list { grid-template-columns: 1fr; }

  /* Gráficos: 190px no mobile igual ao rsim */
  .rd-svg-card-body { height: 190px; }
  .rd-svg-card-body--barras { height: auto; }

  /* Formulário */
  .rd-form-row { grid-template-columns: 1fr; }
  .rd-form-section { padding: 14px; }
  .rd-form-wrap { max-width: 100%; }
  .rd-form-header { margin-bottom: 16px; }

  /* Pills menores */
  .rd-nota-btns { gap: 5px; flex-wrap: wrap; }
  .rd-nota-btn { padding: 5px 9px; font-size: 0.8rem; }

  /* Ações */
  .rd-form-actions { flex-direction: column-reverse; }
  .rd-form-actions .btn { width: 100%; }
  .rd-add-btn { width: 100%; justify-content: center; }
}
body.plat-dark #bancoContent .banco-page--on { background: var(--blue); border-color: var(--blue); color: #fff; }

/* ══════════════════════════════════════════
   CADERNO DE ERROS — novo sistema
   ══════════════════════════════════════════ */
#errosContent { margin: 0 auto; }

.erros-btn {
  display: inline-flex; align-items: center; gap: 6px;
  padding: 8px 16px; border-radius: 8px; font-size: 13px; font-weight: 700;
  cursor: pointer; transition: background .15s, color .15s, border-color .15s;
  border: 1.5px solid transparent;
  /* Sem isso, um <button class="erros-btn"> puro (sem --primary/--outline/
     --ghost) fica sem background/color definidos e cai no estilo nativo do
     navegador — que no modo escuro do Chrome renderiza escuro sobre escuro,
     quase invisível. Os tokens abaixo já são redefinidos em body.plat-dark. */
  background: var(--gray-100); color: var(--navy);
}
.erros-btn:hover { background: var(--gray-200); }
.erros-btn--primary { background: var(--blue); color: #fff; }
.erros-btn--primary:hover { background: var(--blue-light); }
.erros-btn--outline { background: transparent; color: var(--blue); border-color: var(--blue); }
.erros-btn--outline:hover { background: rgba(37,99,235,.07); }
.erros-btn--ghost   { background: var(--gray-100); color: var(--navy); border-color: transparent; }
.erros-btn--ghost:hover { background: var(--gray-200); }
.erros-btn--full    { width: 100%; justify-content: center; margin-top: 4px; }

.erros-hub { padding-bottom: 2rem; }
.erros-hub__header {
  display: flex; justify-content: space-between; align-items: flex-start;
  gap: 16px; margin-bottom: 1.75rem; flex-wrap: wrap;
}
.erros-hub__header-btns { display: flex; gap: 8px; flex-shrink: 0; flex-wrap: wrap; }
.erros-hub__grid  { display: grid; grid-template-columns: repeat(2, 1fr); gap: 16px; }

.erros-hub-card {
  background: var(--white); border: 1px solid var(--gray-200);
  border-radius: 14px; padding: 20px; display: flex; flex-direction: column; gap: 16px;
}
.erros-hub-card__head  { display: flex; align-items: center; gap: 10px; }
.erros-hub-card__emoji { font-size: 22px; line-height: 1; }
.erros-hub-card__label { font-size: 15px; font-weight: 800; color: var(--navy); }
.erros-hub-card__stats { display: flex; }
.erros-hub-stat {
  flex: 1; display: flex; flex-direction: column; align-items: center;
  padding: 10px 4px; border-right: 1px solid var(--gray-100);
}
.erros-hub-stat:last-child { border-right: none; }
.erros-hub-stat__n       { font-size: 20px; font-weight: 800; color: var(--navy); line-height: 1.1; }
.erros-hub-stat__n--red  { color: #ef4444; }
.erros-hub-stat__l       { font-size: 10px; color: var(--gray-500); margin-top: 2px; text-align: center; }
.erros-hub-card__actions { display: flex; gap: 8px; }
.erros-hub-card__actions .erros-btn { flex: 1; justify-content: center; font-size: 12px; padding: 7px 8px; }

.erros-section   { padding-bottom: 2rem; }

.erros-form, .erros-novo-form { display: flex; flex-direction: column; gap: 18px; max-width: 560px; }
.erros-novo-form { margin-top: 2rem; border-top: 1px solid var(--gray-200); padding-top: 1.5rem; }
.erros-form-title { font-size: 14px; font-weight: 700; color: var(--navy); margin-bottom: -4px; }
.erros-field     { display: flex; flex-direction: column; gap: 6px; }
.erros-label     { font-size: 12px; font-weight: 700; color: var(--gray-600); text-transform: uppercase; letter-spacing: .04em; }
.erros-input     {
  border: 1.5px solid var(--gray-300); border-radius: 8px;
  padding: 9px 12px; font-size: 14px; color: var(--navy);
  background: var(--white); width: 100%; transition: border-color .15s;
}
.erros-input:focus  { outline: none; border-color: var(--blue); }
.erros-input--sm    { width: auto; max-width: 220px; }
.erros-textarea     {
  border: 1.5px solid var(--gray-300); border-radius: 8px;
  padding: 9px 12px; font-size: 14px; color: var(--navy);
  background: var(--white); resize: vertical; width: 100%; transition: border-color .15s;
}
.erros-textarea:focus { outline: none; border-color: var(--blue); }
.erros-form-row     { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.erros-aviso        { font-size: 13px; color: var(--gray-600); padding: 10px 12px; background: var(--gray-100); border-radius: 8px; }
.erros-link-btn     { background: none; border: none; color: var(--blue); font-weight: 700; cursor: pointer; font-size: 13px; }

.erros-chips    { display: flex; gap: 8px; flex-wrap: wrap; }
.erros-chip     {
  padding: 6px 14px; border-radius: 999px;
  border: 1.5px solid var(--gray-300); background: var(--white);
  font-size: 12px; font-weight: 700; color: var(--gray-600); cursor: pointer; transition: all .15s;
}
.erros-chip--ativo { background: var(--blue); border-color: var(--blue); color: #fff; }

.erros-tipos-list  { display: flex; flex-direction: column; gap: 10px; margin-bottom: 8px; }
.erros-tipo-card   {
  display: flex; align-items: center; gap: 12px;
  background: var(--white); border: 1px solid var(--gray-200);
  border-radius: 10px; padding: 12px 14px;
}
.erros-tipo-card__cor  { width: 10px; height: 10px; border-radius: 50%; flex-shrink: 0; }
.erros-tipo-card__body { flex: 1; min-width: 0; }
.erros-tipo-card__nome { font-size: 14px; font-weight: 700; color: var(--navy); display: block; }
.erros-tipo-card__desc { font-size: 12px; color: var(--gray-500); margin-top: 2px; }
.erros-tipo-edit-btn,
.erros-tipo-del-btn    {
  background: none; border: none; cursor: pointer; color: var(--gray-400);
  padding: 4px; border-radius: 6px; display: flex; align-items: center; transition: color .15s;
}
.erros-tipo-edit-btn:hover { color: var(--blue); background: rgba(37,99,235,.08); }
.erros-tipo-del-btn:hover  { color: #ef4444; background: #fef2f2; }

.erros-form-actions { display: flex; gap: 8px; margin-top: 4px; }
.erros-form-actions .erros-btn { flex: 1; justify-content: center; }
.erros-btn--gray { background: var(--gray-100); color: var(--navy); border-color: transparent; }
.erros-btn--gray:hover { background: var(--gray-200); }

.erros-cores-grid { display: flex; gap: 8px; flex-wrap: wrap; margin-top: 2px; }
.erros-cor-btn    {
  width: 28px; height: 28px; border-radius: 50%;
  border: 2.5px solid transparent; cursor: pointer; transition: border-color .12s, transform .12s;
}
.erros-cor-btn--ativo { border-color: var(--navy); transform: scale(1.15); }

.erros-sucesso {
  text-align: center; padding: 4rem 1rem;
  display: flex; flex-direction: column; align-items: center; gap: 8px;
}
.erros-sucesso__icon { font-size: 44px; }
.erros-sucesso__txt  { font-size: 17px; font-weight: 700; color: var(--navy); }
.erros-sucesso__sub  { font-size: 13px; color: var(--gray-500); }

.erros-periodo-btns { display: flex; gap: 6px; margin-bottom: 1.25rem; flex-wrap: wrap; }
.erros-periodo-btn  {
  padding: 6px 14px; border-radius: 999px;
  border: 1.5px solid var(--gray-300); background: var(--white);
  font-size: 12px; font-weight: 700; color: var(--gray-600); cursor: pointer; transition: all .15s;
}
.erros-periodo-btn--ativo { background: var(--blue); border-color: var(--blue); color: #fff; }

.erros-extincao {
  display: flex; flex-wrap: wrap; align-items: center; gap: 10px;
  background: #f0fdf4; border: 1px solid #bbf7d0; border-radius: 10px;
  padding: 12px 16px; font-size: 13px; color: var(--navy); margin-bottom: 1.5rem;
}
.erros-extincao__badges { display: flex; flex-wrap: wrap; gap: 6px; }
.erros-extincao__badge  {
  padding: 3px 10px; border-radius: 999px; border: 1.5px solid;
  font-size: 11px; font-weight: 700;
}

.erros-chart-wrap   { margin-bottom: 1rem; }
.erros-chart-title  {
  font-size: 12px; font-weight: 700; color: var(--gray-600);
  margin-bottom: 12px; text-transform: uppercase; letter-spacing: .04em;
}
.erros-bars {
  display: flex; align-items: flex-end; justify-content: space-evenly;
  gap: 10px; width: 100%; padding-top: 22px;
}
.erros-bars--scroll { justify-content: flex-start; overflow-x: auto; padding-bottom: 4px; }
.erros-bar {
  display: flex; flex-direction: column; align-items: center; gap: 8px;
  flex: 1 1 0; min-width: 34px; max-width: 76px;
}
.erros-bars--scroll .erros-bar { flex: 0 0 56px; }
.erros-bar__track  { position: relative; width: 100%; height: 96px; }
.erros-bar__fill   {
  position: absolute; left: 0; right: 0; bottom: 0; width: 100%;
  border-radius: 4px 4px 0 0; opacity: 0.88; min-height: 0;
  transition: height .2s ease;
}
.erros-bar-value   {
  position: absolute; top: -18px; left: 50%; transform: translateX(-50%);
  font-size: 11px; font-weight: 700; color: var(--navy); white-space: nowrap;
}
.erros-bar-label   {
  font-size: 9px; color: var(--gray-500); text-align: center; line-height: 1.25;
  max-width: 100%; overflow: hidden; text-overflow: ellipsis;
  display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical;
}

.erros-trend-grid {
  display: grid; grid-template-columns: repeat(auto-fill, minmax(148px, 1fr));
  gap: 12px;
}
.erros-trend-card {
  background: var(--white); border: 1px solid var(--gray-200); border-radius: 12px;
  padding: 12px 14px 10px; display: flex; flex-direction: column; gap: 6px;
  transition: border-color .15s, box-shadow .15s;
}
.erros-trend-card:hover { border-color: var(--gray-300); box-shadow: var(--shadow-sm, 0 1px 3px rgba(0,0,0,.08)); }
.erros-trend-card__head { display: flex; align-items: center; gap: 6px; min-width: 0; }
.erros-trend-card__dot  {
  width: 9px; height: 9px; border-radius: 50%; flex-shrink: 0;
}
.erros-trend-card__nome {
  font-size: 12px; font-weight: 700; color: var(--navy);
  overflow: hidden; text-overflow: ellipsis; white-space: nowrap; flex: 1; min-width: 0;
}
.erros-trend-card__total {
  font-size: 13px; font-weight: 800; color: var(--gray-600); flex-shrink: 0;
}
.erros-trend-card__spark { display: block; width: 100%; height: auto; overflow: visible; }
.erros-trend-card__delta {
  display: flex; align-items: center; gap: 4px;
  font-size: 11px; font-weight: 600; color: var(--gray-500);
}
.erros-trend-card__delta-ic       { font-size: 9px; }
.erros-trend-card__delta--up      { color: #dc2626; }
.erros-trend-card__delta--down    { color: #16a34a; }
.erros-trend-card__delta--flat    { color: var(--gray-500); }

.erros-hist-filtros { margin-bottom: 1rem; }
.erros-hist-list    { display: flex; flex-direction: column; gap: 8px; }
.erros-hist-row {
  display: flex; align-items: flex-start; gap: 12px;
  background: var(--white); border: 1px solid var(--gray-200);
  border-radius: 10px; padding: 12px 14px;
}
.erros-hist-cor   { width: 8px; height: 8px; border-radius: 50%; flex-shrink: 0; margin-top: 5px; }
.erros-hist-body  { flex: 1; min-width: 0; }
.erros-hist-tipo  { font-size: 14px; font-weight: 700; color: var(--navy); display: block; margin-bottom: 4px; }
.erros-hist-meta  { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; }
.erros-hist-badge {
  padding: 2px 8px; border-radius: 999px; font-size: 11px; font-weight: 700;
  background: var(--gray-100); color: var(--gray-600);
}
.erros-hist-badge--area { background: #eff6ff; color: #1d4ed8; }
.erros-hist-date  { font-size: 11px; color: var(--gray-400); }
.erros-hist-nota  { font-size: 12px; color: var(--gray-500); margin-top: 4px; font-style: italic; }
.erros-hist-del   {
  background: none; border: none; cursor: pointer; color: var(--gray-400);
  padding: 4px; border-radius: 6px; display: flex; align-items: center;
  flex-shrink: 0; transition: color .15s;
}
.erros-hist-del:hover { color: #ef4444; background: #fef2f2; }

@media (max-width: 640px) {
  .erros-hub__grid         { grid-template-columns: 1fr; }
  .erros-hub-card__actions { flex-direction: column; }
  .erros-form-row          { grid-template-columns: 1fr; }
  .erros-hub__header       { flex-direction: column; }
  .erros-input--sm         { max-width: 100%; width: 100%; }
}

/* ══════════════════════════════════════════════════════════════
   SIMULADO COMPLETO (aba "Completo" em Resultados Simulados)
   ══════════════════════════════════════════════════════════════ */

/* Botão excluir reutilizado no painel completos — `.rsim-completo-card` é sempre navy escuro
   (não muda com o tema claro/escuro do site), então as cores aqui são fixas e não usam variável
   de tema. Antes era só o emoji 🗑 sem `color` nenhum definido — praticamente invisível em cima
   do fundo escuro do card, em qualquer um dos dois temas do site. */
.rsim-del-btn {
  display: flex; align-items: center; justify-content: center;
  width: 30px; height: 30px;
  background: rgba(148,163,184,.12); border: none; cursor: pointer;
  padding: 0; border-radius: 6px; color: #94a3b8;
  transition: background .15s, color .15s;
}
.rsim-del-btn:hover { background: rgba(239,68,68,.18); color: #f87171; }

/* Botão de relatório (notas) do card de "Simulado Completo" — mesmo ícone/comportamento do
   botão de relatório por matéria (`.rsim-notes-btn`), só com o tamanho/paleta fixa do card. */
.rsim-completo-notes-btn {
  display: flex; align-items: center; justify-content: center;
  width: 30px; height: 30px;
  background: rgba(148,163,184,.12); border: none; cursor: pointer;
  padding: 0; border-radius: 6px; color: #94a3b8;
  transition: background .15s, color .15s;
}
.rsim-completo-notes-btn:hover { background: rgba(37,99,235,.18); color: #60a5fa; }
.rsim-completo-notes-btn--has  { color: #60a5fa; background: rgba(37,99,235,.16); }
.rsim-completo-notes-btn--has:hover { background: rgba(37,99,235,.24); color: #93c5fd; }

/* Botão editar do card de "Simulado Completo" (ENEM e Vestibular Tradicional) */
.rsim-completo-edit-btn {
  display: flex; align-items: center; gap: 5px;
  background: rgba(96,165,250,.14); border: 1px solid rgba(96,165,250,.3);
  color: #93c5fd; cursor: pointer;
  padding: 0 10px; height: 30px; border-radius: 6px;
  font-size: 12px; font-weight: 600;
  transition: background .15s, color .15s;
}
.rsim-completo-edit-btn:hover { background: rgba(96,165,250,.24); color: #bfdbfe; }

.rsim-completo-form__actions { display: flex; align-items: center; gap: 10px; margin-top: 4px; }

/* Resumo numérico */
.rsim-completo-resume {
  display: flex; flex-wrap: wrap; gap: 12px;
  background: var(--navy-card, #111827); border-radius: 12px;
  padding: 16px 20px; margin-bottom: 20px;
}
.rsim-completo-resume__stat {
  display: flex; flex-direction: column; gap: 2px; min-width: 100px;
}
.rsim-completo-resume__stat--best { margin-left: auto; }
.rsim-completo-resume__num {
  font-size: 22px; font-weight: 700; color: #fff; line-height: 1.1;
}
.rsim-completo-resume__num small { font-size: 13px; font-weight: 400; color: #94a3b8; }
.rsim-completo-resume__label { font-size: 11px; color: #64748b; }

/* Botão adicionar + wrapper do form */
.rsim-completo-form-wrap { margin-bottom: 20px; }
.rsim-add-btn--save {
  margin-top: 16px; background: var(--blue); color: #fff; border: none;
  padding: 10px 20px; border-radius: 8px; font-size: 13px; font-weight: 600;
  cursor: pointer; transition: background .15s;
}
.rsim-add-btn--save:hover { background: var(--blue-light); }

/* Formulário de adição */
.rsim-completo-form {
  margin-top: 12px; background: var(--navy-card, #111827);
  border: 1px solid #1e293b; border-radius: 12px; padding: 20px;
}
.rsim-completo-form__section-title {
  font-size: 11px; font-weight: 700; text-transform: uppercase;
  letter-spacing: .06em; color: #64748b; margin: 16px 0 10px;
}
.rsim-completo-form__grid {
  display: grid; grid-template-columns: 1fr 1fr; gap: 12px;
}
.rsim-completo-form__row { display: flex; flex-direction: column; gap: 4px; }
.rsim-completo-form__row--full { grid-column: 1 / -1; }
.rsim-completo-form__label { font-size: 11px; color: #94a3b8; }
.rsim-completo-form__label small { color: #64748b; }
.rsim-completo-form__input {
  background: #0f172a; border: 1px solid #1e293b; border-radius: 7px;
  color: #e2e8f0; font-size: 13px; padding: 8px 10px; width: 100%;
  box-sizing: border-box; transition: border-color .15s;
}
.rsim-completo-form__input:focus { outline: none; border-color: var(--blue); }

/* Cards de simulados */
.rsim-completo-card {
  background: var(--navy-card, #111827); border: 1px solid #1e293b;
  border-radius: 12px; padding: 16px; margin-bottom: 12px;
}
.rsim-completo-card__head {
  display: flex; justify-content: space-between; align-items: flex-start;
  margin-bottom: 12px; gap: 8px;
}
.rsim-completo-card__info { display: flex; flex-direction: column; gap: 2px; }
.rsim-completo-card__nome { font-size: 14px; font-weight: 600; color: #e2e8f0; }
.rsim-completo-card__data { font-size: 11px; color: #64748b; }
.rsim-completo-card__badge-wrap { display: flex; align-items: center; gap: 6px; flex-shrink: 0; }
.rsim-completo-card__badge { font-size: 13px; font-weight: 700; }

/* Mini-barras por área */
.rsim-completo-card__areas {
  display: grid; grid-template-columns: repeat(4, 1fr); gap: 8px; margin-bottom: 12px;
}
.rsim-completo-card__area { display: flex; flex-direction: column; gap: 4px; }
.rsim-completo-card__area-label { font-size: 10px; font-weight: 700; color: #64748b; text-transform: uppercase; }
.rsim-completo-card__bar-wrap {
  height: 6px; background: #1e293b; border-radius: 3px; overflow: hidden;
}
.rsim-completo-card__bar { height: 100%; border-radius: 3px; transition: width .3s; }
.rsim-completo-card__area-val { font-size: 11px; color: #94a3b8; }

/* Rodapé de tempos */
.rsim-completo-card__footer {
  display: flex; gap: 16px; flex-wrap: wrap;
  font-size: 12px; color: #94a3b8; border-top: 1px solid #1e293b; padding-top: 10px;
}
.rsim-completo-card__footer strong { color: #e2e8f0; }

@media (max-width: 640px) {
  .rsim-completo-form__grid   { grid-template-columns: 1fr; }
  .rsim-completo-card__areas  { grid-template-columns: repeat(2, 1fr); }
  .rsim-completo-resume       { flex-direction: column; }
  .rsim-completo-resume__stat--best { margin-left: 0; }
}
