/* =====================================================================
   mobile-v2.css
   Capa móvil compartida para todas las páginas v2.
   Debe cargarse SIEMPRE como última hoja de estilos.
   Objetivos:
     - Soporte safe-area iOS y altura real (100svh).
     - Tipografía fluida y touch targets >= 44px.
     - Layouts colapsados y tablas con scroll seguro.
     - Modales full-screen en móviles.
     - Atenuar la rejilla editorial y los grids muy densos.
   ===================================================================== */

/* ---------- 1. Tokens móviles compartidos ---------- */
:root {
  --m-pad-x: clamp(14px, 4vw, 22px);
  --m-pad-y: clamp(16px, 4vw, 24px);
  --m-gap: clamp(10px, 2.6vw, 16px);
  --m-radius: 0px;
  --m-tap: 44px;
  --m-safe-top: env(safe-area-inset-top, 0px);
  --m-safe-bottom: env(safe-area-inset-bottom, 0px);
  --m-safe-left: env(safe-area-inset-left, 0px);
  --m-safe-right: env(safe-area-inset-right, 0px);
  --m-fs-h1: clamp(1.7rem, 4.6vw + 0.6rem, 2.6rem);
  --m-fs-h2: clamp(1.35rem, 3vw + 0.6rem, 2rem);
  --m-fs-body: clamp(0.95rem, 0.4vw + 0.85rem, 1.05rem);
}

/* ---------- 2. Base universal ---------- */
html {
  -webkit-text-size-adjust: 100%;
  text-size-adjust: 100%;
}

body {
  min-height: 100svh;
  overflow-x: hidden;
  text-rendering: optimizeLegibility;
  -webkit-font-smoothing: antialiased;
}

img,
video,
canvas,
svg {
  max-width: 100%;
  height: auto;
}

* {
  -webkit-tap-highlight-color: transparent;
}

/* Evita zoom involuntario en iOS al enfocar inputs (>=16px) */
@media (max-width: 980px) {
  input,
  select,
  textarea,
  button {
    font-size: max(16px, 1rem);
  }

  .home-v2-page .hero-board {
    display: flex !important;
    flex-direction: column !important;
    gap: clamp(18px, 4vw, 28px) !important;
    align-items: stretch !important;
    min-height: 0 !important;
    overflow: visible !important;
  }

  .home-v2-page .hero-primary,
  .home-v2-page .hero-secondary {
    width: 100% !important;
    max-width: none !important;
    margin: 0 !important;
  }

  .home-v2-page .hero-primary {
    order: 1 !important;
    position: relative !important;
    z-index: 1 !important;
    min-height: 0 !important;
  }

  .home-v2-page .hero-secondary {
    order: 2 !important;
    position: relative !important;
    z-index: 0 !important;
    padding-left: 0 !important;
    border-left: 0 !important;
    border-top: 1px solid color-mix(in srgb, var(--rfa-line), transparent 72%) !important;
    padding-top: 20px !important;
  }
}

/* ---------- 3. Breakpoint mobile principal (<= 768px) ---------- */
@media (max-width: 768px) {

  /* Atenuar la rejilla editorial global, en móvil molesta */
  body::before {
    background-size: 120px 120px !important;
    opacity: 0.18 !important;
  }

  .rfa-project-page .mobile-drawer-actions .drawer-enter-cta {
    border-color: color-mix(in srgb, var(--rfa-accent), white 14%) !important;
    background: linear-gradient(135deg, color-mix(in srgb, var(--rfa-accent), white 10%), color-mix(in srgb, var(--rfa-accent), black 10%)) !important;
    color: #1b1206 !important;
    text-shadow: none !important;
  }

  .rfa-project-page .mobile-drawer-actions .drawer-enter-cta:hover,
  .rfa-project-page .mobile-drawer-actions .drawer-enter-cta:focus-visible {
    border-color: color-mix(in srgb, var(--rfa-accent), white 24%) !important;
    background: linear-gradient(135deg, color-mix(in srgb, var(--rfa-accent), white 18%), color-mix(in srgb, var(--rfa-accent), black 2%)) !important;
    color: #120b03 !important;
  }

  .rfa-project-page .mobile-close-btn {
    display: inline-grid !important;
    place-items: center !important;
    width: 42px !important;
    height: 42px !important;
    padding: 0 !important;
    line-height: 1 !important;
  }

  .rfa-project-page .mobile-close-btn i {
    display: block;
    line-height: 1;
    transform: translateY(-0.5px);
  }

  .home-v2-page .app-shell-2 {
    padding-top: 0 !important;
  }

  .home-v2-page .internal-topbar {
    top: 0 !important;
    margin-bottom: 14px !important;
    min-height: 0 !important;
    padding: max(var(--m-safe-top), 0px) 12px 10px !important;
    gap: 10px 12px !important;
    border-top: 0 !important;
    border-left: 0 !important;
    border-right: 0 !important;
    box-shadow: none !important;
  }

  .home-v2-page .internal-topbar::before {
    display: none !important;
  }

  .home-v2-page .brand-block {
    gap: 8px;
  }

  .home-v2-page .brand-mark {
    width: 34px;
    height: 34px;
  }

  .home-v2-page .brand-kicker {
    font-size: 0.56rem;
    letter-spacing: 0.14em;
  }

  .home-v2-page .brand-title-compact {
    font-size: 0.82rem;
    line-height: 1.05;
  }

  .home-v2-page .internal-topbar .header-cluster {
    position: relative;
    width: 100%;
    align-items: center !important;
    padding-right: 52px;
  }

  .home-v2-page .header-actions .profile-menu-trigger,
  .home-v2-page .internal-topbar .btn,
  .home-v2-page .internal-topbar .mobile-nav-toggle {
    min-height: 36px !important;
  }

  .home-v2-page #home-portal-btn {
    display: none !important;
  }

  .home-v2-page .internal-topbar .btn,
  .home-v2-page .internal-topbar .mobile-nav-toggle {
    padding: 0 10px !important;
    font-size: 0.7rem;
  }

  .home-v2-page #home-mobile-menu-btn {
    position: absolute !important;
    right: 0 !important;
    top: 50% !important;
    transform: translateY(-50%) !important;
    margin: 0 !important;
  }

  .home-v2-page .header-actions .profile-menu-trigger {
    padding: 0.18rem 0.5rem 0.18rem 0.34rem !important;
  }

  .home-v2-page .home-mobile-menu {
    width: min(360px, 100vw) !important;
    max-width: 100vw !important;
    padding: calc(16px + var(--m-safe-top)) max(16px, var(--m-safe-right)) calc(18px + var(--m-safe-bottom)) max(16px, var(--m-safe-left)) !important;
    gap: 16px !important;
    background: linear-gradient(180deg, rgba(8, 16, 28, 0.98), rgba(13, 24, 42, 0.98)) !important;
    border-right: 1px solid color-mix(in srgb, var(--rfa-accent), transparent 72%) !important;
    box-shadow: 0 28px 60px rgba(0, 0, 0, 0.34) !important;
  }

  .home-v2-page .sidebar-brand {
    grid-template-columns: 1fr auto !important;
    align-items: start !important;
    gap: 10px !important;
    padding-bottom: 12px;
    border-bottom: 1px solid color-mix(in srgb, var(--rfa-line), transparent 18%);
  }

  .home-v2-page .sidebar-brand .brand-mark {
    width: 40px;
    height: 40px;
  }

  .home-v2-page .sidebar-brand-copy {
    display: grid;
    gap: 4px;
    min-width: 0;
  }

  .home-v2-page .sidebar-brand-copy .brand-kicker {
    font-size: 0.62rem;
    letter-spacing: 0.18em;
    color: var(--rfa-text-soft);
  }

  .home-v2-page .sidebar-brand-copy .brand-title-compact {
    font-size: 0.94rem;
    line-height: 1.06;
    color: var(--rfa-text);
  }

  .home-v2-page .mobile-menu-close-btn {
    width: 42px !important;
    min-width: 42px !important;
    height: 42px !important;
    min-height: 42px !important;
    padding: 0 !important;
    display: inline-grid !important;
    place-items: center !important;
    justify-self: end;
    border: 0 !important;
    background: transparent !important;
    color: var(--rfa-text) !important;
    line-height: 1 !important;
    box-shadow: none !important;
  }

  .home-v2-page .mobile-menu-close-btn span {
    display: none;
  }

  .home-v2-page .mobile-menu-close-btn i {
    display: block;
    line-height: 1;
    transform: translateY(-0.5px);
  }

  .home-v2-page .sidebar-nav,
  .home-v2-page .home-mobile-actions {
    display: grid;
    gap: 10px;
  }

  .home-v2-page .home-mobile-actions {
    padding-top: 12px;
    border-top: 1px solid color-mix(in srgb, var(--rfa-line), transparent 18%);
  }

  .home-v2-page .home-mobile-link {
    width: 100%;
    min-height: 46px !important;
    padding: 12px 4px !important;
    border: 0 !important;
    border-bottom: 1px solid color-mix(in srgb, var(--rfa-line), transparent 18%) !important;
    background: transparent !important;
    color: var(--rfa-text) !important;
    justify-content: flex-start !important;
    gap: 10px !important;
    box-shadow: none !important;
    border-radius: 0 !important;
  }

  .home-v2-page .home-mobile-link i {
    width: 16px;
    text-align: center;
    color: color-mix(in srgb, var(--rfa-accent), white 8%);
  }

  .home-v2-page .home-mobile-link span {
    color: inherit !important;
  }

  .home-v2-page .home-mobile-link:hover,
  .home-v2-page .home-mobile-link:focus-visible {
    border-color: color-mix(in srgb, var(--rfa-accent), transparent 32%) !important;
    background: linear-gradient(90deg, color-mix(in srgb, var(--rfa-accent), transparent 88%), transparent 72%) !important;
    color: var(--rfa-text) !important;
    transform: none !important;
  }

  .home-v2-page .home-mobile-link--active,
  .home-v2-page .home-mobile-link.active {
    border-color: color-mix(in srgb, var(--rfa-accent), transparent 12%) !important;
    background: linear-gradient(90deg, color-mix(in srgb, var(--rfa-accent), transparent 72%), transparent 78%) !important;
    color: color-mix(in srgb, var(--rfa-accent), white 18%) !important;
  }

  .home-v2-page .home-mobile-link--active i,
  .home-v2-page .home-mobile-link.active i,
  .home-v2-page .home-mobile-link--active span,
  .home-v2-page .home-mobile-link.active span {
    color: inherit !important;
  }

  .home-v2-page .home-mobile-overlay {
    background: rgba(3, 8, 18, 0.58) !important;
  }

  .teacher-home-v2-page .internal-topbar,
  .player-home-v2-page .internal-topbar,
  .profile-v2-page .internal-topbar,
  .classes-v2-page .classes-toolbar,
  .jugadores-v2-page .players-toolbar,
  .teacher-courses-v2-page .teacher-courses-header,
  .european-test-v2-page .european-test-topbar {
    top: 0 !important;
    margin-bottom: 14px !important;
    min-height: 0 !important;
    padding: max(var(--m-safe-top), 0px) 12px 10px !important;
    gap: 10px 12px !important;
    border-top: 0 !important;
    border-left: 0 !important;
    border-right: 0 !important;
    box-shadow: none !important;
  }

  .teacher-home-v2-page .internal-topbar::before,
  .player-home-v2-page .internal-topbar::before,
  .profile-v2-page .internal-topbar::before,
  .classes-v2-page .classes-toolbar::before,
  .jugadores-v2-page .players-toolbar::before,
  .teacher-courses-v2-page .teacher-courses-header::before,
  .european-test-v2-page .european-test-topbar::before {
    display: none !important;
  }

  .teacher-home-v2-page .brand-block,
  .player-home-v2-page .brand-block,
  .profile-v2-page .brand-block,
  .classes-v2-page .classes-toolbar__brand,
  .jugadores-v2-page .players-toolbar__brand,
  .teacher-courses-v2-page .teacher-courses-toolbar__brand,
  .european-test-v2-page .european-test-brand-block {
    gap: 8px;
    min-width: 0;
  }

  .teacher-home-v2-page .brand-mark,
  .player-home-v2-page .brand-mark,
  .profile-v2-page .brand-mark,
  .classes-v2-page .classes-toolbar__mark,
  .jugadores-v2-page .players-toolbar__mark,
  .teacher-courses-v2-page .teacher-courses-toolbar__mark,
  .european-test-v2-page .brand-mark {
    width: 34px;
    height: 34px;
  }

  .teacher-home-v2-page .brand-kicker,
  .player-home-v2-page .brand-kicker,
  .profile-v2-page .brand-kicker,
  .classes-v2-page .brand-kicker,
  .jugadores-v2-page .brand-kicker,
  .teacher-courses-v2-page .brand-kicker,
  .european-test-v2-page .brand-kicker {
    font-size: 0.56rem;
    letter-spacing: 0.14em;
  }

  .teacher-home-v2-page .brand-title-compact,
  .player-home-v2-page .brand-title-compact,
  .profile-v2-page .brand-title-compact,
  .classes-v2-page .classes-toolbar__title,
  .jugadores-v2-page .players-toolbar__title,
  .teacher-courses-v2-page .teacher-courses-toolbar__title,
  .european-test-v2-page .brand-title-compact {
    font-size: 0.82rem;
    line-height: 1.05;
  }

  .teacher-home-v2-page .header-cluster,
  .player-home-v2-page .header-cluster,
  .classes-v2-page .classes-toolbar__identity,
  .jugadores-v2-page .players-toolbar__identity,
  .teacher-courses-v2-page .teacher-courses-toolbar__identity,
  .european-test-v2-page .header-left {
    position: relative;
    width: 100%;
    min-height: 40px;
    align-items: center !important;
    padding-right: 52px;
  }

  .teacher-home-v2-page .header-actions,
  .player-home-v2-page .header-actions,
  .profile-v2-page .header-actions,
  .classes-v2-page .classes-toolbar__side,
  .jugadores-v2-page .players-toolbar__side,
  .teacher-courses-v2-page .teacher-courses-toolbar__side,
  .european-test-v2-page .header-right {
    width: 100%;
    gap: 8px 10px !important;
    padding-left: 0 !important;
    margin-left: 0 !important;
    justify-content: flex-start !important;
    align-items: center !important;
  }

  .teacher-home-v2-page .internal-topbar .btn,
  .teacher-home-v2-page .internal-topbar .mobile-nav-toggle,
  .player-home-v2-page .internal-topbar .btn,
  .player-home-v2-page .internal-topbar .mobile-nav-toggle,
  .profile-v2-page .internal-topbar .btn,
  .classes-v2-page .classes-toolbar .btn,
  .classes-v2-page .classes-toolbar .mobile-nav-toggle,
  .jugadores-v2-page .players-toolbar .btn,
  .jugadores-v2-page .players-toolbar .mobile-nav-toggle,
  .teacher-courses-v2-page .teacher-courses-header .btn,
  .teacher-courses-v2-page .teacher-courses-header .mobile-nav-toggle,
  .european-test-v2-page .european-test-topbar .btn,
  .european-test-v2-page .european-test-topbar .mobile-nav-toggle {
    min-height: 36px !important;
    padding: 0 10px !important;
    font-size: 0.7rem;
  }

  .teacher-home-v2-page #teacher-mobile-menu-btn,
  .player-home-v2-page #player-mobile-menu-btn,
  .classes-v2-page #mobile-nav-toggle,
  .jugadores-v2-page #players-mobile-menu-btn,
  .teacher-courses-v2-page #teacher-courses-mobile-menu-btn,
  .european-test-v2-page #mobile-nav-toggle {
    position: absolute !important;
    right: 0 !important;
    top: 50% !important;
    transform: translateY(-50%) !important;
    margin: 0 !important;
  }

  .classes-v2-page {
    --classes-toolbar-offset: 0px !important;
    --classes-toolbar-height: 74px !important;
  }

  .classes-v2-page #mobile-nav-toggle,
  .classes-v2-page .classes-toolbar__menu {
    display: inline-flex !important;
    width: 36px !important;
    min-width: 36px !important;
    height: 36px !important;
    min-height: 36px !important;
    padding: 0 !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 0 !important;
  }

  .classes-v2-page .classes-toolbar__side {
    display: none !important;
  }

  .classes-v2-page .app-shell-2 {
    padding-top: 0 !important;
  }

  .classes-v2-page #classes-sidebar,
  .classes-v2-page .classes-command-shell {
    z-index: 170 !important;
    overflow-y: auto !important;
    overscroll-behavior: contain !important;
    padding-bottom: calc(18px + var(--m-safe-bottom)) !important;
  }

  .classes-v2-page .sidebar-overlay {
    z-index: 169 !important;
  }

  .classes-v2-page #classes-sidebar .sidebar-brand,
  .classes-v2-page .classes-command-shell .sidebar-brand {
    grid-template-columns: auto 1fr auto !important;
    align-items: center !important;
    gap: 10px !important;
  }

  .classes-v2-page #classes-sidebar .sidebar-brand-copy,
  .classes-v2-page .classes-command-shell .sidebar-brand-copy {
    display: grid !important;
    gap: 4px !important;
    min-width: 0 !important;
    align-self: center !important;
  }

  .classes-v2-page #classes-sidebar .sidebar-brand-copy h2,
  .classes-v2-page .classes-command-shell .sidebar-brand-copy h2 {
    margin: 0 !important;
    font-size: 0.94rem !important;
    line-height: 1.06 !important;
    letter-spacing: 0 !important;
    text-transform: none !important;
  }

  .classes-v2-page #classes-sidebar .sidebar-brand-copy p,
  .classes-v2-page .classes-command-shell .sidebar-brand-copy p {
    margin: 0 !important;
    line-height: 1.35 !important;
  }

  .classes-v2-page #classes-sidebar .mobile-menu-close-btn,
  .classes-v2-page .classes-command-shell .mobile-menu-close-btn {
    justify-self: end !important;
    align-self: center !important;
    margin-right: 0 !important;
  }

  .classes-v2-page #classes-sidebar .sidebar-actions,
  .classes-v2-page .classes-command-shell .sidebar-actions {
    padding-bottom: 4px !important;
  }

  .classes-v2-page .main-content.classes-stage {
    padding-top: calc(var(--classes-toolbar-height) + max(var(--m-safe-top), 0px) + 14px) !important;
  }

  .jugadores-v2-page {
    --players-toolbar-offset: 0px !important;
    --players-toolbar-height: 74px !important;
  }

  .jugadores-v2-page .players-toolbar {
    left: 0 !important;
    transform: none !important;
    width: 100% !important;
    z-index: 140 !important;
  }

  .jugadores-v2-page .players-toolbar__menu,
  .jugadores-v2-page #players-mobile-menu-btn {
    display: inline-flex !important;
  }

  .jugadores-v2-page .players-command-shell,
  .jugadores-v2-page #jugadores-sidebar {
    display: grid !important;
  }

  .jugadores-v2-page .players-toolbar__side {
    display: none !important;
  }

  .jugadores-v2-page .app-shell-2 {
    padding-top: 0 !important;
  }

  .jugadores-v2-page .main-content.players-stage {
    padding-top: calc(var(--players-toolbar-height) + max(var(--m-safe-top), 0px) + 14px) !important;
  }

  .jugadores-v2-page .players-toolbar__copy {
    gap: 2px !important;
  }

  .jugadores-v2-page .players-toolbar__tagline {
    display: none !important;
  }

  .jugadores-v2-page #jugadores-sidebar,
  .jugadores-v2-page .players-command-shell {
    z-index: 170 !important;
  }

  .jugadores-v2-page .players-mobile-overlay,
  .jugadores-v2-page .teacher-mobile-overlay {
    z-index: 169 !important;
  }

  .teacher-courses-v2-page {
    --teacher-courses-toolbar-offset: 0px !important;
    --teacher-courses-toolbar-height: 74px !important;
  }

  .teacher-courses-v2-page #teacher-courses-mobile-menu-btn {
    display: inline-flex !important;
    width: 36px !important;
    min-width: 36px !important;
    height: 36px !important;
    min-height: 36px !important;
    padding: 0 !important;
    border: 1px solid color-mix(in srgb, var(--rfa-line-strong), transparent 20%) !important;
    border-top-color: color-mix(in srgb, var(--rfa-accent), transparent 18%) !important;
    border-radius: 0 !important;
    background: linear-gradient(180deg, color-mix(in srgb, var(--rfa-surface-strong), black 8%), color-mix(in srgb, var(--rfa-surface), black 4%)) !important;
    color: var(--rfa-text) !important;
    box-shadow: none !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 0 !important;
  }

  .teacher-courses-v2-page #teacher-courses-mobile-menu-btn:hover,
  .teacher-courses-v2-page #teacher-courses-mobile-menu-btn:focus-visible {
    border-color: color-mix(in srgb, var(--rfa-accent), transparent 30%) !important;
    border-top-color: color-mix(in srgb, var(--rfa-accent), transparent 6%) !important;
    background: linear-gradient(180deg, color-mix(in srgb, var(--rfa-surface-strong), black 5%), color-mix(in srgb, var(--rfa-surface), black 2%)) !important;
    transform: translateY(-50%) !important;
  }

  .teacher-courses-v2-page #teacher-courses-mobile-menu-btn i {
    font-size: 0.95rem !important;
    line-height: 1 !important;
  }

  .teacher-courses-v2-page .teacher-courses-toolbar__side {
    display: none !important;
  }

  .teacher-courses-v2-page .app-shell-2 {
    padding-top: 0 !important;
  }

  .teacher-courses-v2-page .main-content.teacher-courses-stage {
    padding-top: calc(var(--teacher-courses-toolbar-height) + max(var(--m-safe-top), 0px) + 14px) !important;
  }

  .teacher-home-v2-page #logout-btn,
  .teacher-courses-v2-page #logout-btn,
  .european-test-v2-page #back-link {
    display: none !important;
  }

  .jugadores-v2-page .teacher-mobile-overlay,
  .teacher-courses-v2-page .teacher-mobile-overlay {
    background: rgba(3, 8, 18, 0.58) !important;
  }

  .teacher-home-v2-page .teacher-mobile-menu,
  .player-home-v2-page .teacher-mobile-menu,
  .classes-v2-page #classes-sidebar,
  .jugadores-v2-page .teacher-mobile-menu,
  .teacher-courses-v2-page .teacher-mobile-menu,
  .european-test-v2-page .mobile-sidebar {
    width: min(360px, 100vw) !important;
    max-width: 100vw !important;
    padding: calc(16px + var(--m-safe-top)) max(16px, var(--m-safe-right)) calc(18px + var(--m-safe-bottom)) max(16px, var(--m-safe-left)) !important;
    gap: 16px !important;
    border-right: 1px solid color-mix(in srgb, var(--rfa-accent), transparent 72%) !important;
    background: linear-gradient(180deg, rgba(8, 16, 28, 0.98), rgba(13, 24, 42, 0.98)) !important;
    box-shadow: 0 28px 60px rgba(0, 0, 0, 0.34) !important;
  }

  .teacher-home-v2-page .sidebar-brand,
  .player-home-v2-page .sidebar-brand,
  .classes-v2-page #classes-sidebar .sidebar-brand,
  .jugadores-v2-page .sidebar-brand,
  .teacher-courses-v2-page .sidebar-brand,
  .european-test-v2-page .mobile-sidebar-brand {
    grid-template-columns: 1fr auto !important;
    align-items: start !important;
    gap: 10px !important;
    padding: 0 0 12px !important;
    border-bottom: 1px solid color-mix(in srgb, var(--rfa-line), transparent 18%) !important;
  }

  .teacher-home-v2-page .sidebar-brand .brand-mark,
  .player-home-v2-page .sidebar-brand .brand-mark,
  .jugadores-v2-page .sidebar-brand .brand-mark,
  .teacher-courses-v2-page .sidebar-brand .brand-mark,
  .classes-v2-page #classes-sidebar .sidebar-brand-icon,
  .european-test-v2-page .mobile-sidebar-brand-icon {
    width: 40px !important;
    height: 40px !important;
    min-width: 40px !important;
    display: grid !important;
    place-items: center !important;
  }

  .teacher-home-v2-page .sidebar-brand-copy,
  .player-home-v2-page .sidebar-brand-copy,
  .jugadores-v2-page .sidebar-brand-copy,
  .teacher-courses-v2-page .sidebar-brand-copy,
  .classes-v2-page #classes-sidebar .sidebar-brand-copy,
  .european-test-v2-page .mobile-sidebar-brand-copy {
    display: grid !important;
    gap: 4px !important;
    min-width: 0 !important;
  }

  .teacher-home-v2-page .sidebar-brand-copy .brand-kicker,
  .player-home-v2-page .sidebar-brand-copy .brand-kicker,
  .jugadores-v2-page .sidebar-brand-copy .brand-kicker,
  .teacher-courses-v2-page .sidebar-brand-copy .brand-kicker,
  .classes-v2-page #classes-sidebar .sidebar-brand-copy p,
  .european-test-v2-page .mobile-sidebar-brand-copy p {
    font-size: 0.62rem !important;
    letter-spacing: 0.18em !important;
    color: var(--rfa-text-soft) !important;
  }

  .teacher-home-v2-page .sidebar-brand-copy .brand-title-compact,
  .player-home-v2-page .sidebar-brand-copy .brand-title-compact,
  .jugadores-v2-page .sidebar-brand-copy .brand-title-compact,
  .teacher-courses-v2-page .sidebar-brand-copy .brand-title-compact,
  .classes-v2-page #classes-sidebar .sidebar-brand-copy h2,
  .european-test-v2-page .mobile-sidebar-brand-copy h2 {
    font-size: 0.94rem !important;
    line-height: 1.06 !important;
    color: var(--rfa-text) !important;
    margin: 0 !important;
    letter-spacing: 0 !important;
    text-transform: none !important;
  }

  .teacher-home-v2-page .mobile-menu-close-btn,
  .player-home-v2-page .mobile-menu-close-btn,
  .classes-v2-page #classes-sidebar .mobile-menu-close-btn,
  .jugadores-v2-page .mobile-menu-close-btn,
  .teacher-courses-v2-page .mobile-menu-close-btn,
  .european-test-v2-page .mobile-menu-close-btn {
    width: 42px !important;
    min-width: 42px !important;
    height: 42px !important;
    min-height: 42px !important;
    padding: 0 !important;
    display: inline-grid !important;
    place-items: center !important;
    justify-self: end !important;
    border: 0 !important;
    background: transparent !important;
    color: var(--rfa-text) !important;
    line-height: 1 !important;
    box-shadow: none !important;
  }

  .teacher-home-v2-page .mobile-menu-close-btn span,
  .player-home-v2-page .mobile-menu-close-btn span,
  .classes-v2-page #classes-sidebar .mobile-menu-close-btn span,
  .jugadores-v2-page .mobile-menu-close-btn span,
  .teacher-courses-v2-page .mobile-menu-close-btn span,
  .european-test-v2-page .mobile-menu-close-btn span {
    display: none !important;
  }

  .teacher-home-v2-page .mobile-menu-close-btn i,
  .player-home-v2-page .mobile-menu-close-btn i,
  .classes-v2-page #classes-sidebar .mobile-menu-close-btn i,
  .jugadores-v2-page .mobile-menu-close-btn i,
  .teacher-courses-v2-page .mobile-menu-close-btn i,
  .european-test-v2-page .mobile-menu-close-btn i {
    display: block !important;
    line-height: 1 !important;
    transform: translateY(-0.5px) !important;
  }

  .teacher-home-v2-page .sidebar-nav,
  .teacher-home-v2-page .teacher-mobile-actions,
  .player-home-v2-page .sidebar-nav,
  .player-home-v2-page .teacher-mobile-actions,
  .classes-v2-page #classes-sidebar .sidebar-nav,
  .classes-v2-page #classes-sidebar .sidebar-actions,
  .jugadores-v2-page .sidebar-nav,
  .jugadores-v2-page .teacher-mobile-actions,
  .teacher-courses-v2-page .sidebar-nav,
  .teacher-courses-v2-page .teacher-mobile-actions,
  .european-test-v2-page .mobile-sidebar-nav,
  .european-test-v2-page .mobile-sidebar-actions {
    display: grid !important;
    gap: 10px !important;
    padding-inline: 0 !important;
  }

  .teacher-home-v2-page .teacher-mobile-actions,
  .player-home-v2-page .teacher-mobile-actions,
  .classes-v2-page #classes-sidebar .sidebar-actions,
  .jugadores-v2-page .teacher-mobile-actions,
  .teacher-courses-v2-page .teacher-mobile-actions,
  .european-test-v2-page .mobile-sidebar-actions {
    margin-top: 0 !important;
    padding-top: 12px !important;
    border-top: 1px solid color-mix(in srgb, var(--rfa-line), transparent 18%) !important;
  }

  .classes-v2-page #classes-sidebar .sidebar-brand,
  .classes-v2-page .classes-command-shell .sidebar-brand {
    grid-template-columns: auto 1fr auto !important;
    align-items: center !important;
    gap: 10px !important;
  }

  .classes-v2-page #classes-sidebar .sidebar-brand-copy,
  .classes-v2-page .classes-command-shell .sidebar-brand-copy {
    display: grid !important;
    gap: 4px !important;
    min-width: 0 !important;
    align-self: center !important;
  }

  .classes-v2-page #classes-sidebar .sidebar-brand-copy h2,
  .classes-v2-page .classes-command-shell .sidebar-brand-copy h2,
  .classes-v2-page #classes-sidebar .sidebar-brand-copy p,
  .classes-v2-page .classes-command-shell .sidebar-brand-copy p {
    margin: 0 !important;
  }

  .classes-v2-page #classes-sidebar .mobile-menu-close-btn,
  .classes-v2-page .classes-command-shell .mobile-menu-close-btn {
    justify-self: end !important;
    align-self: center !important;
    place-items: center !important;
    margin: 0 !important;
  }

  .classes-v2-page #classes-sidebar,
  .classes-v2-page .classes-command-shell {
    display: flex !important;
    flex-direction: column !important;
    height: 100dvh !important;
    max-height: 100dvh !important;
    overflow-y: auto !important;
    overflow-x: hidden !important;
    -webkit-overflow-scrolling: touch !important;
  }

  .classes-v2-page #classes-sidebar .sidebar-nav,
  .classes-v2-page .classes-command-shell .sidebar-nav {
    min-height: auto !important;
    overflow: visible !important;
  }

  .classes-v2-page #classes-sidebar .sidebar-actions,
  .classes-v2-page .classes-command-shell .sidebar-actions {
    position: static !important;
    background: transparent !important;
    padding-bottom: calc(8px + var(--m-safe-bottom)) !important;
  }

  .jugadores-v2-page #jugadores-sidebar,
  .jugadores-v2-page .players-command-shell {
    display: flex !important;
    flex-direction: column !important;
    height: 100dvh !important;
    max-height: 100dvh !important;
    overflow-y: auto !important;
    overflow-x: hidden !important;
    -webkit-overflow-scrolling: touch !important;
  }

  .jugadores-v2-page #jugadores-sidebar .sidebar-brand,
  .jugadores-v2-page .players-command-shell .sidebar-brand {
    grid-template-columns: auto 1fr auto !important;
    align-items: center !important;
    gap: 10px !important;
  }

  .jugadores-v2-page #jugadores-sidebar .sidebar-brand-copy,
  .jugadores-v2-page .players-command-shell .sidebar-brand-copy {
    display: grid !important;
    gap: 4px !important;
    min-width: 0 !important;
    align-self: center !important;
  }

  .jugadores-v2-page #jugadores-sidebar .sidebar-brand-copy .brand-kicker,
  .jugadores-v2-page #jugadores-sidebar .sidebar-brand-copy .brand-title-compact,
  .jugadores-v2-page .players-command-shell .sidebar-brand-copy .brand-kicker,
  .jugadores-v2-page .players-command-shell .sidebar-brand-copy .brand-title-compact {
    margin: 0 !important;
  }

  .jugadores-v2-page #jugadores-sidebar .mobile-menu-close-btn,
  .jugadores-v2-page .players-command-shell .mobile-menu-close-btn {
    justify-self: end !important;
    align-self: center !important;
    place-items: center !important;
    margin: 0 !important;
  }

  .jugadores-v2-page #jugadores-sidebar .sidebar-nav,
  .jugadores-v2-page .players-command-shell .sidebar-nav {
    min-height: auto !important;
    overflow: visible !important;
  }

  .jugadores-v2-page #jugadores-sidebar .teacher-mobile-actions,
  .jugadores-v2-page .players-command-shell .teacher-mobile-actions,
  .jugadores-v2-page #jugadores-sidebar .sidebar-actions,
  .jugadores-v2-page .players-command-shell .sidebar-actions {
    position: static !important;
    background: transparent !important;
    padding-bottom: calc(8px + var(--m-safe-bottom)) !important;
  }

  .teacher-home-v2-page .teacher-mobile-link,
  .player-home-v2-page .teacher-mobile-link,
  .classes-v2-page #classes-sidebar .nav-item,
  .jugadores-v2-page .teacher-mobile-link,
  .teacher-courses-v2-page .teacher-mobile-link,
  .european-test-v2-page .mobile-sidebar-link {
    width: 100% !important;
    min-height: 46px !important;
    padding: 12px 4px !important;
    border: 0 !important;
    border-bottom: 1px solid color-mix(in srgb, var(--rfa-line), transparent 18%) !important;
    background: transparent !important;
    color: var(--rfa-text) !important;
    justify-content: flex-start !important;
    gap: 10px !important;
    box-shadow: none !important;
    border-radius: 0 !important;
    text-transform: none !important;
    letter-spacing: 0 !important;
    font-size: 0.92rem !important;
    font-weight: 600 !important;
    transform: none !important;
  }

  .teacher-home-v2-page .teacher-mobile-link i,
  .player-home-v2-page .teacher-mobile-link i,
  .classes-v2-page #classes-sidebar .nav-item i,
  .jugadores-v2-page .teacher-mobile-link i,
  .teacher-courses-v2-page .teacher-mobile-link i,
  .european-test-v2-page .mobile-sidebar-link i {
    width: 16px !important;
    flex: 0 0 16px !important;
    text-align: center !important;
    color: color-mix(in srgb, var(--rfa-accent), white 8%) !important;
  }

  .teacher-home-v2-page .teacher-mobile-link span,
  .player-home-v2-page .teacher-mobile-link span,
  .classes-v2-page #classes-sidebar .nav-item span,
  .jugadores-v2-page .teacher-mobile-link span,
  .teacher-courses-v2-page .teacher-mobile-link span,
  .european-test-v2-page .mobile-sidebar-link span {
    color: inherit !important;
  }

  .teacher-home-v2-page .teacher-mobile-link:hover,
  .teacher-home-v2-page .teacher-mobile-link:focus-visible,
  .player-home-v2-page .teacher-mobile-link:hover,
  .player-home-v2-page .teacher-mobile-link:focus-visible,
  .classes-v2-page #classes-sidebar .nav-item:hover,
  .classes-v2-page #classes-sidebar .nav-item:focus-visible,
  .jugadores-v2-page .teacher-mobile-link:hover,
  .jugadores-v2-page .teacher-mobile-link:focus-visible,
  .teacher-courses-v2-page .teacher-mobile-link:hover,
  .teacher-courses-v2-page .teacher-mobile-link:focus-visible,
  .european-test-v2-page .mobile-sidebar-link:hover,
  .european-test-v2-page .mobile-sidebar-link:focus-visible {
    border-color: color-mix(in srgb, var(--rfa-accent), transparent 32%) !important;
    background: linear-gradient(90deg, color-mix(in srgb, var(--rfa-accent), transparent 88%), transparent 72%) !important;
    color: var(--rfa-text) !important;
    transform: none !important;
  }

  .teacher-home-v2-page .teacher-mobile-link--active,
  .teacher-home-v2-page .teacher-mobile-link.active,
  .player-home-v2-page .teacher-mobile-link--active,
  .player-home-v2-page .teacher-mobile-link.active,
  .classes-v2-page #classes-sidebar .nav-item.active,
  .jugadores-v2-page .teacher-mobile-link--active,
  .jugadores-v2-page .teacher-mobile-link.active,
  .teacher-courses-v2-page .teacher-mobile-link--active,
  .teacher-courses-v2-page .teacher-mobile-link.active,
  .european-test-v2-page .mobile-sidebar-link.active {
    border-color: color-mix(in srgb, var(--rfa-accent), transparent 12%) !important;
    background: linear-gradient(90deg, color-mix(in srgb, var(--rfa-accent), transparent 72%), transparent 78%) !important;
    color: color-mix(in srgb, var(--rfa-accent), white 18%) !important;
  }

  .teacher-home-v2-page .teacher-mobile-link--active i,
  .teacher-home-v2-page .teacher-mobile-link.active i,
  .teacher-home-v2-page .teacher-mobile-link--active span,
  .teacher-home-v2-page .teacher-mobile-link.active span,
  .player-home-v2-page .teacher-mobile-link--active i,
  .player-home-v2-page .teacher-mobile-link.active i,
  .player-home-v2-page .teacher-mobile-link--active span,
  .player-home-v2-page .teacher-mobile-link.active span,
  .classes-v2-page #classes-sidebar .nav-item.active i,
  .classes-v2-page #classes-sidebar .nav-item.active span,
  .jugadores-v2-page .teacher-mobile-link--active i,
  .jugadores-v2-page .teacher-mobile-link.active i,
  .jugadores-v2-page .teacher-mobile-link--active span,
  .jugadores-v2-page .teacher-mobile-link.active span,
  .teacher-courses-v2-page .teacher-mobile-link--active i,
  .teacher-courses-v2-page .teacher-mobile-link.active i,
  .teacher-courses-v2-page .teacher-mobile-link--active span,
  .teacher-courses-v2-page .teacher-mobile-link.active span,
  .european-test-v2-page .mobile-sidebar-link.active i,
  .european-test-v2-page .mobile-sidebar-link.active span {
    color: inherit !important;
  }

  body.teacher-courses-v2-page .teacher-mobile-menu,
  body.teacher-courses-v2-page #teacher-courses-sidebar {
    width: min(360px, 100vw) !important;
    max-width: 100vw !important;
    padding: calc(16px + var(--m-safe-top)) max(16px, var(--m-safe-right)) calc(18px + var(--m-safe-bottom)) max(16px, var(--m-safe-left)) !important;
    gap: 16px !important;
    border-right: 1px solid color-mix(in srgb, var(--rfa-accent), transparent 72%) !important;
    background: linear-gradient(180deg, rgba(8, 16, 28, 0.98), rgba(13, 24, 42, 0.98)) !important;
    box-shadow: 0 28px 60px rgba(0, 0, 0, 0.34) !important;
  }

  body.teacher-courses-v2-page .sidebar-brand {
    grid-template-columns: 1fr auto !important;
    align-items: start !important;
    gap: 10px !important;
    padding: 0 0 12px !important;
    border-bottom: 1px solid color-mix(in srgb, var(--rfa-line), transparent 18%) !important;
  }

  body.teacher-courses-v2-page .sidebar-brand .brand-mark {
    width: 40px !important;
    height: 40px !important;
    min-width: 40px !important;
    display: grid !important;
    place-items: center !important;
  }

  body.teacher-courses-v2-page .sidebar-brand-copy {
    display: grid !important;
    gap: 4px !important;
    min-width: 0 !important;
  }

  body.teacher-courses-v2-page .sidebar-brand-copy .brand-kicker {
    font-size: 0.62rem !important;
    letter-spacing: 0.18em !important;
    color: var(--rfa-text-soft) !important;
  }

  body.teacher-courses-v2-page .sidebar-brand-copy .brand-title-compact {
    font-size: 0.94rem !important;
    line-height: 1.06 !important;
    color: var(--rfa-text) !important;
    margin: 0 !important;
    letter-spacing: 0 !important;
    text-transform: none !important;
  }

  body.teacher-courses-v2-page .mobile-menu-close-btn {
    width: 42px !important;
    min-width: 42px !important;
    height: 42px !important;
    min-height: 42px !important;
    padding: 0 !important;
    display: inline-grid !important;
    place-items: center !important;
    justify-self: end !important;
    border: 0 !important;
    background: transparent !important;
    color: var(--rfa-text) !important;
    line-height: 1 !important;
    box-shadow: none !important;
  }

  body.teacher-courses-v2-page .mobile-menu-close-btn span {
    display: none !important;
  }

  body.teacher-courses-v2-page .mobile-menu-close-btn i {
    display: block !important;
    line-height: 1 !important;
    transform: translateY(-0.5px) !important;
  }

  body.teacher-courses-v2-page .sidebar-nav,
  body.teacher-courses-v2-page .teacher-mobile-actions,
  body.teacher-courses-v2-page .sidebar-actions {
    display: grid !important;
    gap: 10px !important;
    padding-inline: 0 !important;
  }

  body.teacher-courses-v2-page .teacher-mobile-actions,
  body.teacher-courses-v2-page .sidebar-actions {
    margin-top: 0 !important;
    padding-top: 12px !important;
    border-top: 1px solid color-mix(in srgb, var(--rfa-line), transparent 18%) !important;
  }

  body.teacher-courses-v2-page .nav-item,
  body.teacher-courses-v2-page .teacher-mobile-link {
    width: 100% !important;
    min-height: 46px !important;
    padding: 12px 4px !important;
    border: 0 !important;
    border-bottom: 1px solid color-mix(in srgb, var(--rfa-line), transparent 18%) !important;
    background: transparent !important;
    color: var(--rfa-text) !important;
    justify-content: flex-start !important;
    gap: 10px !important;
    box-shadow: none !important;
    border-radius: 0 !important;
    text-transform: none !important;
    letter-spacing: 0 !important;
    font-size: 0.92rem !important;
    font-weight: 600 !important;
    transform: none !important;
  }

  body.teacher-courses-v2-page .nav-item i,
  body.teacher-courses-v2-page .teacher-mobile-link i {
    width: 16px !important;
    flex: 0 0 16px !important;
    text-align: center !important;
    color: color-mix(in srgb, var(--rfa-accent), white 8%) !important;
  }

  body.teacher-courses-v2-page .nav-item span,
  body.teacher-courses-v2-page .teacher-mobile-link span {
    color: inherit !important;
  }

  body.teacher-courses-v2-page .nav-item:hover,
  body.teacher-courses-v2-page .nav-item:focus-visible,
  body.teacher-courses-v2-page .teacher-mobile-link:hover,
  body.teacher-courses-v2-page .teacher-mobile-link:focus-visible {
    border-color: color-mix(in srgb, var(--rfa-accent), transparent 32%) !important;
    background: linear-gradient(90deg, color-mix(in srgb, var(--rfa-accent), transparent 88%), transparent 72%) !important;
    color: var(--rfa-text) !important;
    transform: none !important;
  }

  body.teacher-courses-v2-page .nav-item.active,
  body.teacher-courses-v2-page .teacher-mobile-link--active,
  body.teacher-courses-v2-page .teacher-mobile-link.active,
  body.teacher-courses-v2-page [aria-current='page'] {
    border-color: color-mix(in srgb, var(--rfa-accent), transparent 12%) !important;
    background: linear-gradient(90deg, color-mix(in srgb, var(--rfa-accent), transparent 72%), transparent 78%) !important;
    color: color-mix(in srgb, var(--rfa-accent), white 18%) !important;
  }

  body.teacher-courses-v2-page .nav-item.active i,
  body.teacher-courses-v2-page .nav-item.active span,
  body.teacher-courses-v2-page .teacher-mobile-link--active i,
  body.teacher-courses-v2-page .teacher-mobile-link--active span,
  body.teacher-courses-v2-page .teacher-mobile-link.active i,
  body.teacher-courses-v2-page .teacher-mobile-link.active span,
  body.teacher-courses-v2-page [aria-current='page'] i,
  body.teacher-courses-v2-page [aria-current='page'] span {
    color: inherit !important;
  }

  body.teacher-courses-v2-page .teacher-courses-hero.hero-board,
  body.teacher-courses-v2-page .teacher-courses-grid-layout,
  body.teacher-courses-v2-page .teacher-courses-catalog-toolbar,
  body.teacher-courses-v2-page .teacher-courses-index-head--split,
  body.teacher-courses-v2-page .course-detail-body,
  body.teacher-courses-v2-page .admin-form-grid,
  body.teacher-courses-v2-page .builder-option,
  body.teacher-courses-v2-page .result-row,
  body.teacher-courses-v2-page .admin-response-question-row,
  body.teacher-courses-v2-page .teacher-courses-summary-stack,
  body.teacher-courses-v2-page .teacher-courses-hero-signals,
  body.teacher-courses-v2-page .program-metrics,
  body.teacher-courses-v2-page .teacher-courses-stats-strip,
  body.teacher-courses-v2-page .summary-grid,
  body.teacher-courses-v2-page .admin-responses-summary,
  body.teacher-courses-v2-page .certificate-details,
  body.teacher-courses-v2-page .certificate-card-header,
  body.teacher-courses-v2-page .certificate-topline,
  body.teacher-courses-v2-page .certificate-footer,
  body.teacher-courses-v2-page .certificate-modal-actions {
    grid-template-columns: 1fr !important;
  }

  body.teacher-courses-v2-page .teacher-courses-quick-grid,
  body.teacher-courses-v2-page .teacher-courses-quick-grid--systems,
  body.teacher-courses-v2-page .teacher-courses-quick-grid--sections,
  body.teacher-courses-v2-page .certificate-list,
  body.teacher-courses-v2-page .teacher-courses-section-actions,
  body.teacher-courses-v2-page .hero-actions,
  body.teacher-courses-v2-page .course-actions,
  body.teacher-courses-v2-page .certificate-actions,
  body.teacher-courses-v2-page .form-actions,
  body.teacher-courses-v2-page .panel-actions,
  body.teacher-courses-v2-page .quiz-actions {
    grid-template-columns: 1fr !important;
  }

  body.teacher-courses-v2-page .hero-actions,
  body.teacher-courses-v2-page .course-actions,
  body.teacher-courses-v2-page .certificate-actions,
  body.teacher-courses-v2-page .form-actions,
  body.teacher-courses-v2-page .panel-actions,
  body.teacher-courses-v2-page .quiz-actions,
  body.teacher-courses-v2-page .teacher-courses-section-actions,
  body.teacher-courses-v2-page .certificate-modal-actions {
    display: grid !important;
    gap: 10px !important;
  }

  body.teacher-courses-v2-page .hero-actions .btn,
  body.teacher-courses-v2-page .course-actions .btn,
  body.teacher-courses-v2-page .certificate-actions .btn,
  body.teacher-courses-v2-page .form-actions .btn,
  body.teacher-courses-v2-page .panel-actions .btn,
  body.teacher-courses-v2-page .quiz-actions .btn,
  body.teacher-courses-v2-page .teacher-courses-section-actions .btn,
  body.teacher-courses-v2-page .builder-link,
  body.teacher-courses-v2-page .certificate-modal-actions .btn {
    width: 100% !important;
    min-width: 0 !important;
    justify-content: center !important;
  }

  body.teacher-courses-v2-page .hero-board,
  body.teacher-courses-v2-page .panel-shell,
  body.teacher-courses-v2-page .teacher-courses-content-shell > .content-section,
  body.teacher-courses-v2-page .teacher-courses-sections-nav,
  body.teacher-courses-v2-page .teacher-courses-filters-board,
  body.teacher-courses-v2-page .course-modal,
  body.teacher-courses-v2-page .course-modal-dialog,
  body.teacher-courses-v2-page .certificate-modal-shell,
  body.teacher-courses-v2-page .certificate-sheet,
  body.teacher-courses-v2-page .certificate-sheet-frame {
    padding: 16px !important;
  }

  body.teacher-courses-v2-page .course-modal-dialog,
  body.teacher-courses-v2-page .certificate-modal-shell {
    width: min(100vw - 16px, 100%) !important;
    max-width: min(100vw - 16px, 100%) !important;
  }

  body.teacher-courses-v2-page .teacher-courses-hero-copy-text,
  body.teacher-courses-v2-page .section-lead,
  body.teacher-courses-v2-page .panel-meta,
  body.teacher-courses-v2-page .certificate-card p,
  body.teacher-courses-v2-page .certificate-meta,
  body.teacher-courses-v2-page .quiz-help,
  body.teacher-courses-v2-page .teacher-courses-toolbar__tagline {
    font-size: 0.92rem !important;
    line-height: 1.5 !important;
  }

  body.teacher-courses-v2-page .hero-title,
  body.teacher-courses-v2-page #hero-title,
  body.teacher-courses-v2-page .certificate-holder,
  body.teacher-courses-v2-page .certificate-course {
    font-size: clamp(1.5rem, 7vw, 2.1rem) !important;
    line-height: 1.06 !important;
  }

  body.teacher-courses-v2-page .teacher-courses-toolbar__tagline,
  body.teacher-courses-v2-page .teacher-courses-toolbar__role,
  body.teacher-courses-v2-page .teacher-courses-toolbar__label {
    display: none !important;
  }

  body.teacher-courses-v2-page .teacher-courses-hero.hero-board::before,
  body.teacher-courses-v2-page .panel-shell::before,
  body.teacher-courses-v2-page .certificate-card::before,
  body.teacher-courses-v2-page .certificate-card::after {
    opacity: 0.42 !important;
  }

  body.teacher-courses-v2-page .certificate-actions .btn,
  body.teacher-courses-v2-page .result-answer,
  body.teacher-courses-v2-page .certificate-detail-card,
  body.teacher-courses-v2-page .certificate-signature,
  body.teacher-courses-v2-page .certificate-verification,
  body.teacher-courses-v2-page .certificate-seal,
  body.teacher-courses-v2-page .certificate-badge {
    min-width: 0 !important;
  }

  body.teacher-courses-v2-page .main-content.teacher-courses-stage {
    gap: 18px !important;
  }

  body.teacher-courses-v2-page .course-modal {
    place-items: start center !important;
    overflow-y: auto !important;
    padding: calc(8px + var(--m-safe-top)) 8px calc(8px + var(--m-safe-bottom)) !important;
  }

  body.teacher-courses-v2-page .course-modal-dialog,
  body.teacher-courses-v2-page .certificate-modal-shell {
    width: min(100vw - 12px, 100%) !important;
    max-width: min(100vw - 12px, 100%) !important;
    max-height: none !important;
    overflow: visible !important;
    margin: 0 !important;
    padding: 16px !important;
  }

  body.teacher-courses-v2-page .course-detail {
    gap: 18px !important;
  }

  body.teacher-courses-v2-page .detail-hero-grid,
  body.teacher-courses-v2-page .course-detail-body,
  body.teacher-courses-v2-page .topic-card-header,
  body.teacher-courses-v2-page .detail-progress-head,
  body.teacher-courses-v2-page .detail-meta-grid,
  body.teacher-courses-v2-page .detail-actions,
  body.teacher-courses-v2-page .topic-video-grid {
    grid-template-columns: 1fr !important;
  }

  body.teacher-courses-v2-page .detail-meta-grid,
  body.teacher-courses-v2-page .detail-actions {
    display: grid !important;
    gap: 10px !important;
  }

  body.teacher-courses-v2-page .detail-hero-main,
  body.teacher-courses-v2-page .detail-side-stack,
  body.teacher-courses-v2-page .course-detail-main-stack {
    gap: 16px !important;
    padding-right: 0 !important;
  }

  body.teacher-courses-v2-page .detail-hero-main h2,
  body.teacher-courses-v2-page #course-detail-title {
    font-size: clamp(1.4rem, 7vw, 2rem) !important;
    line-height: 1 !important;
    letter-spacing: 0.02em !important;
  }

  body.teacher-courses-v2-page .detail-copy {
    max-width: none !important;
    font-size: 0.94rem !important;
    line-height: 1.6 !important;
  }

  body.teacher-courses-v2-page .detail-chip {
    width: 100% !important;
    min-height: 40px !important;
    justify-content: flex-start !important;
  }

  body.teacher-courses-v2-page .detail-progress-card,
  body.teacher-courses-v2-page .detail-metric-card,
  body.teacher-courses-v2-page .topic-card,
  body.teacher-courses-v2-page .admin-response-topic-card,
  body.teacher-courses-v2-page .course-outline-item {
    padding: 14px !important;
  }

  body.teacher-courses-v2-page .detail-progress-copy {
    max-width: none !important;
    text-align: left !important;
  }

  body.teacher-courses-v2-page .course-outline-panel {
    position: static !important;
    top: auto !important;
  }

  body.teacher-courses-v2-page .teacher-courses-index-head,
  body.teacher-courses-v2-page .teacher-courses-index-head--split,
  body.teacher-courses-v2-page .teacher-courses-panel-head,
  body.teacher-courses-v2-page .teacher-courses-panel-head--compact,
  body.teacher-courses-v2-page .builder-head,
  body.teacher-courses-v2-page .teacher-courses-filters-head,
  body.teacher-courses-v2-page .teacher-courses-results-toolbar,
  body.teacher-courses-v2-page .results-toolbar__summary,
  body.teacher-courses-v2-page .course-card-header {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 10px !important;
    align-items: start !important;
  }

  body.teacher-courses-v2-page .teacher-courses-index-head h2,
  body.teacher-courses-v2-page .teacher-courses-panel-head h3,
  body.teacher-courses-v2-page .builder-head h3,
  body.teacher-courses-v2-page .course-card h4 {
    font-size: clamp(1.05rem, 5vw, 1.35rem) !important;
    line-height: 1.12 !important;
  }

  body.teacher-courses-v2-page .teacher-courses-sections-nav {
    gap: 16px !important;
    padding-top: 18px !important;
  }

  body.teacher-courses-v2-page .teacher-courses-filters-board {
    gap: 14px !important;
    padding: 14px 0 16px !important;
  }

  body.teacher-courses-v2-page .teacher-courses-quick-grid {
    gap: 12px !important;
  }

  body.teacher-courses-v2-page .teacher-courses-section-link:first-child {
    grid-column: auto !important;
  }

  body.teacher-courses-v2-page .teacher-courses-section-link,
  body.teacher-courses-v2-page .teacher-courses-shortcut-card,
  body.teacher-courses-v2-page .summary-card,
  body.teacher-courses-v2-page .course-card,
  body.teacher-courses-v2-page .teacher-courses-metric-card {
    padding: 14px !important;
  }

  body.teacher-courses-v2-page .teacher-courses-metric-card p,
  body.teacher-courses-v2-page .results-toolbar__summary p,
  body.teacher-courses-v2-page .course-card p {
    max-width: none !important;
  }

  body.teacher-courses-v2-page .course-grid,
  body.teacher-courses-v2-page #teacher-courses-grid,
  body.teacher-courses-v2-page .certificate-list {
    grid-template-columns: 1fr !important;
    gap: 12px !important;
  }

  body.teacher-courses-v2-page .builder-option,
  body.teacher-courses-v2-page .builder-video-card,
  body.teacher-courses-v2-page .topic-video-card {
    grid-template-columns: 1fr !important;
    gap: 12px !important;
  }

  body.teacher-courses-v2-page .builder-counter-field {
    min-width: 0 !important;
  }

  body.teacher-courses-v2-page .builder-video-preview,
  body.teacher-courses-v2-page .topic-video-frame {
    min-height: 180px !important;
  }

  body.teacher-courses-v2-page .teacher-courses-results-toolbar,
  body.teacher-courses-v2-page .teacher-courses-results-toolbar--compact {
    padding-bottom: 12px !important;
  }


  .rfa-project-page .hero-grid {
    display: flex !important;
    flex-direction: column !important;
    gap: clamp(18px, 4vw, 28px) !important;
    align-items: stretch !important;
    overflow: visible !important;
  }

  .rfa-project-page .hero-copy,
  .rfa-project-page .executive-panel {
    width: 100% !important;
    max-width: none !important;
    margin: 0 !important;
  }

  .rfa-project-page .hero-copy {
    order: 1 !important;
    position: relative !important;
    z-index: 1 !important;
  }

  .rfa-project-page .executive-panel {
    order: 2 !important;
    position: relative !important;
    z-index: 0 !important;
  }
  /* Contenedores principales: usar todo el ancho con padding seguro */
  .container,
  .topbar-inner,
  .footer-inner,
  .entry-header,
  .entry-grid,
  .app-shell-2,
  .app-container,
  .teacher-courses-shell,
  .verify-shell,
  .page-shell,
  .rfa2-shell {
    width: 100% !important;
    max-width: 100% !important;
    padding-left: max(var(--m-pad-x), var(--m-safe-left)) !important;
    padding-right: max(var(--m-pad-x), var(--m-safe-right)) !important;
    box-sizing: border-box !important;
  }

  /* Tipografía fluida en titulares grandes */
  h1,
  .hero h1,
  .entry-hero h1,
  .page-hero h1,
  .editorial-hero-title {
    font-size: var(--m-fs-h1) !important;
    line-height: 1.1 !important;
  }

  h2,
  .section-title,
  .panel-title {
    font-size: var(--m-fs-h2) !important;
    line-height: 1.18 !important;
  }

  p,
  li,
  .lead,
  .body-copy {
    font-size: var(--m-fs-body);
    line-height: 1.55;
  }

  /* Cualquier grid multi-columna baja a 1 columna por defecto */
  .card-grid,
  .stat-grid,
  .feature-grid,
  .module-grid,
  .pillar-grid,
  .insight-grid,
  .resource-grid,
  .summary-grid,
  .action-grid,
  .dashboard-grid,
  .home-grid,
  .player-grid,
  .teacher-grid,
  .calendar-grid-row,
  .editorial-grid,
  .two-col,
  .three-col {
    grid-template-columns: 1fr !important;
    gap: var(--m-gap) !important;
  }

  /* Padding de secciones razonable */
  section,
  .section,
  .editorial-section {
    padding-top: clamp(28px, 7vw, 48px);
    padding-bottom: clamp(28px, 7vw, 48px);
  }

  /* Botones y CTAs full-width donde aplica */
  .btn-block-mobile,
  .form-actions .btn,
  .cta-row .btn,
  .auth-actions .btn {
    width: 100%;
    justify-content: center;
  }

  /* Touch targets: altura mínima cómoda */
  .btn,
  .nav-item,
  .icon-btn,
  .mobile-nav-toggle,
  .close,
  .modal-close,
  .profile-menu-trigger,
  .mobile-drawer-nav a,
  .mobile-drawer-actions a {
    min-height: var(--m-tap);
  }
}

/* ---------- 4. Topbars sticky con safe-area ---------- */
.topbar,
.internal-topbar,
.header,
.entry-topbar {
  padding-top: max(8px, var(--m-safe-top)) !important;
}

@media (max-width: 768px) {
  .topbar,
  .internal-topbar,
  .header,
  .entry-topbar {
    padding-left: max(var(--m-pad-x), var(--m-safe-left)) !important;
    padding-right: max(var(--m-pad-x), var(--m-safe-right)) !important;
  }

  .topbar-inner,
  .internal-topbar > .topbar-inner,
  .internal-topbar .header-cluster {
    flex-wrap: wrap;
    gap: 8px;
  }

  /* Esconde nav desktop y muestra el toggle, refuerzo del comportamiento ya existente */
  .topbar .nav-links,
  .internal-topbar .nav-links {
    display: none !important;
  }

  .mobile-nav-toggle {
    display: inline-flex !important;
    width: var(--m-tap);
    height: var(--m-tap);
    align-items: center;
    justify-content: center;
  }

  /* Reduce el ruido visual del header en móvil */
  .header-chip,
  .status-chip,
  .topbar .brand-kicker {
    display: none !important;
  }
}

/* ---------- 5. Drawer: ancho real y safe-area ---------- */
@media (max-width: 768px) {
  .mobile-drawer,
  .home-mobile-menu,
  .teacher-mobile-menu,
  .mobile-sidebar,
  .player-mobile-menu {
    width: min(100vw, 360px) !important;
    max-width: 100vw !important;
    padding-top: calc(18px + var(--m-safe-top)) !important;
    padding-bottom: calc(18px + var(--m-safe-bottom)) !important;
    padding-left: max(18px, var(--m-safe-left)) !important;
    padding-right: max(18px, var(--m-safe-right)) !important;
    box-sizing: border-box !important;
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
  }
}

@media (max-width: 480px) {
  .mobile-drawer,
  .home-mobile-menu,
  .teacher-mobile-menu,
  .mobile-sidebar,
  .player-mobile-menu {
    width: 100vw !important;
  }
}

/* ---------- 6. Tablas: scroll horizontal seguro ---------- */
@media (max-width: 768px) {
  table {
    display: block;
    width: 100%;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    border-collapse: collapse;
  }

  /* Wrappers comunes en home admin / classes / jugadores */
  .table-wrap,
  .table-responsive,
  .data-table-wrap,
  .admin-table-wrap,
  .records-wrap,
  .history-wrap,
  .compare-wrap {
    width: 100%;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    border: 1px solid var(--rfa-line, rgba(176,188,205,0.16));
  }

  th,
  td {
    white-space: nowrap;
    padding: 10px 12px;
  }
}

/* ---------- 7. Modales: full-screen confortable en móvil ---------- */
@media (max-width: 640px) {
  .modal,
  .modal-card,
  .modal-content,
  .modal-dialog,
  dialog.modal,
  .v2-modal,
  .editorial-modal {
    width: 100vw !important;
    max-width: 100vw !important;
    height: 100svh !important;
    max-height: 100svh !important;
    margin: 0 !important;
    border-radius: 0 !important;
    border-left: 0 !important;
    border-right: 0 !important;
    box-sizing: border-box !important;
    padding-top: calc(16px + var(--m-safe-top)) !important;
    padding-bottom: calc(16px + var(--m-safe-bottom)) !important;
    padding-left: max(16px, var(--m-safe-left)) !important;
    padding-right: max(16px, var(--m-safe-right)) !important;
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
  }

  .modal-overlay,
  .modal-backdrop {
    padding: 0 !important;
  }

  .modal-header,
  .modal-title-row {
    position: sticky;
    top: 0;
    background: inherit;
    z-index: 2;
    padding-top: 4px;
    padding-bottom: 8px;
  }

  .modal-actions,
  .modal-footer,
  .form-actions {
    flex-wrap: wrap;
    gap: 8px;
  }

  .modal-actions .btn,
  .modal-footer .btn {
    flex: 1 1 auto;
    min-width: 0;
  }
}

/* ---------- 8. Filtros y toolbars densos ---------- */
@media (max-width: 768px) {
  .filters-bar,
  .filters-row,
  .toolbar-row,
  .actions-row,
  .classes-toolbar-actions,
  .players-toolbar-actions,
  .teacher-courses-toolbar-actions {
    flex-wrap: wrap;
    gap: 8px;
  }

  .filters-bar > *,
  .filters-row > *,
  .toolbar-row > * {
    flex: 1 1 calc(50% - 8px);
    min-width: 0;
  }

  .filters-bar input,
  .filters-bar select,
  .filters-row input,
  .filters-row select {
    width: 100%;
    box-sizing: border-box;
  }
}

/* ---------- 9. Hero / dossier de rfa-proyect-v2 ---------- */
@media (max-width: 768px) {
  .executive-panel,
  .dossier-panel {
    padding: var(--m-pad-y) var(--m-pad-x) !important;
  }

  .hero-grid,
  .editorial-hero-grid,
  .pillar-grid {
    grid-template-columns: 1fr !important;
  }
}

/* ---------- 10. Footer con safe-area ---------- */
.footer,
.entry-footer {
  padding-bottom: calc(24px + var(--m-safe-bottom)) !important;
}

/* ---------- 11. Calendario classes-v2 / jugadores-v2 ---------- */
@media (max-width: 640px) {
  .calendar-grid,
  .calendar-month-grid {
    font-size: 0.85rem;
  }

  .calendar-day,
  .calendar-cell {
    min-height: 56px;
    padding: 4px;
  }

  .calendar-day .event-chip,
  .calendar-cell .event-chip {
    font-size: 0.72rem;
    padding: 2px 5px;
  }
}

/* ---------- 12. Cards / listados muy comunes ---------- */
@media (max-width: 768px) {
  .course-card,
  .certificate-card,
  .topic-card,
  .player-card,
  .class-card,
  .lead-card,
  .order-card,
  .user-card,
  .editorial-card {
    padding: var(--m-pad-y) var(--m-pad-x) !important;
  }
}

/* ---------- 13. Login / register: aire en móvil ---------- */
@media (max-width: 768px) {
  .auth-card,
  .login-card,
  .register-card,
  .entry-card {
    width: 100% !important;
    max-width: 100% !important;
    margin: 0 !important;
    padding: clamp(20px, 5vw, 28px) !important;
    box-sizing: border-box;
  }

  .entry-grid {
    grid-template-columns: 1fr !important;
  }
}

/* ---------- 14. Reduce motion preference ---------- */
@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    transition-duration: 0.001ms !important;
    animation-duration: 0.001ms !important;
    animation-iteration-count: 1 !important;
    scroll-behavior: auto !important;
  }
}
