/* B1 · Tarjeta «Hoy» de la barra lateral y contadores.
   Azul de marca único; naranja solo para la racha (sistema de diseño). */
.bf-today {
  --bf-today-brand: var(--bf-brand, #2563eb);
  --bf-today-brand-strong: var(--bf-brand-strong, #1d4ed8);
  --bf-today-soft: var(--bf-brand-soft, #eff6ff);
  margin: 0 4px 14px;
  padding: 14px 14px 12px;
  border: 1px solid #dbeafe;
  border-radius: 16px;
  background: linear-gradient(180deg, #ffffff 0%, var(--bf-today-soft) 100%);
  box-shadow: 0 6px 18px -12px rgba(37, 99, 235, .45);
  color: #0f172a;
}
.bf-today.hidden { display: none; }
.bf-today__head { display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.bf-today__title {
  margin: 0;
  font-size: 11px;
  font-weight: 900;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--bf-today-brand-strong);
}
.bf-today__streak {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 2px 8px;
  border-radius: 999px;
  background: #fff7ed;
  color: #c2410c;
  font-size: 12px;
  font-weight: 800;
  font-variant-numeric: tabular-nums;
}
.bf-today__streak.hidden { display: none; }
.bf-today__streak svg { width: 13px; height: 13px; color: #f97316; }
.bf-today__reviews {
  margin: 8px 0 8px;
  font-size: 15px;
  font-weight: 800;
  line-height: 1.25;
  color: #0f172a;
}
.bf-today__progress {
  position: relative;
  height: 8px;
  border-radius: 999px;
  background: #dbeafe;
  overflow: hidden;
}
.bf-today__bar {
  display: block;
  height: 100%;
  width: 0;
  border-radius: inherit;
  background: var(--bf-today-brand);
  transition: width .4s ease;
}
.bf-today[data-state="done"] .bf-today__bar { background: #16a34a; }
.bf-today__meta { margin: 6px 0 0; font-size: 12px; font-weight: 600; color: #475569; line-height: 1.35; }
.bf-today__meta:empty { display: none; }
.bf-today[data-state="done"] #sideTodayProgressText { color: #15803d; font-weight: 800; }
.bf-today__exam {
  margin: 8px 0 0;
  padding: 6px 8px;
  border-radius: 10px;
  background: #ffffff;
  border: 1px solid #dbeafe;
  font-size: 12px;
  font-weight: 700;
  color: var(--bf-today-brand-strong);
}
.bf-today__exam.hidden { display: none; }
.bf-today__start {
  width: 100%;
  margin-top: 10px;
  padding: 10px 12px;
  border: 0;
  border-radius: 12px;
  background: var(--bf-today-brand);
  color: #ffffff;
  font-size: 14px;
  font-weight: 800;
  cursor: pointer;
  touch-action: manipulation;
}
.bf-today__start:hover { background: var(--bf-today-brand-strong); }
.bf-today__start:focus-visible,
.bf-today__continue:focus-visible { outline: 3px solid #93c5fd; outline-offset: 2px; }
.bf-today[data-state="done"] .bf-today__start {
  background: #ffffff;
  color: var(--bf-today-brand-strong);
  border: 1px solid #bfdbfe;
}
.bf-today__continue-wrap { margin-top: 8px; }
.bf-today__continue-wrap.hidden { display: none; }
.bf-today__continue {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  width: 100%;
  padding: 8px 10px;
  border: 1px dashed #93c5fd;
  border-radius: 12px;
  background: #ffffff;
  color: #0f172a;
  text-align: left;
  cursor: pointer;
}
.bf-today__continue-label { font-size: 13px; font-weight: 800; color: var(--bf-today-brand-strong); }
.bf-today__continue-meta {
  max-width: 100%;
  font-size: 12px;
  font-weight: 600;
  color: #475569;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

/* Contadores de la barra: azul fuerte para repasos, suave para falladas. */
.nav-badge.bf-nav-badge--brand { background: #1d4ed8; color: #ffffff; }
.nav-badge.bf-nav-badge--soft { background: #dbeafe; color: #1e3a8a; }
.nav-chip.hidden, .nav-badge.hidden { display: none; }

@media (prefers-reduced-motion: reduce) {
  .bf-today__bar { transition: none; }
}
html.bf-reduce-motion .bf-today__bar { transition: none; }

/* B3 · «Mi examen» en el Perfil: mismos controles que Preferencias (#85). */
.bf-profile__exam input[type="text"],
.bf-profile__exam input[type="date"] {
  min-height: 44px;
  padding: 9px 12px;
  border: 1px solid #94a3b8;
  border-radius: 12px;
  background: #ffffff;
  color: #17243d;
  font: 700 .85rem Manrope, system-ui, sans-serif;
}
.bf-profile__exam input:disabled { opacity: .6; }
.bf-profile__exam .bf-profile__exam-summary {
  margin: 4px 0 0;
  padding: 10px 12px;
  border-radius: 12px;
  background: var(--bf-brand-soft, #eff6ff);
  color: #1e3a8a;
  font-size: .8rem;
  font-weight: 700;
}
.bf-profile__exam .bf-profile__exam-summary:empty { display: none; }
