/* Theme · Guardia Civil (GC) — RFC-I-001 Fase 2
   Identidad: verde corporativo (primitivas --emerald-* AGNÓSTICAS de Foundation)
   + dorado. No usa nombres con "gc" ni depende de recolor_gc. Reskinea los
   componentes a verde sin tocar su CSS. */
:root{
  --brand-primary:        var(--emerald-700);   /* #0c5138 */
  --brand-primary-hover:  var(--emerald-600);   /* #007a53 */
  --brand-primary-strong: var(--emerald-800);   /* #06371f */
  --brand-primary-soft:   var(--emerald-50);    /* #e9f9f2 */
  --brand-accent:         var(--gold-500);       /* GC también usa dorado */
  --brand-accent-hover:   var(--gold-400);
  --brand-on-primary:     var(--neutral-0);
  --brand-on-accent:      var(--emerald-700);    /* texto verde sobre gold */
  --brand-focus-ring:     var(--emerald-600);
  --brand-surface-subtle:        var(--emerald-gray-50);
  --brand-surface-subtle-strong: var(--emerald-gray-200);
  --brand-border-subtle:         var(--emerald-gray-300);

  /* AR-048 · piloto de profundidad visual. Sólo hooks semánticos: estructura
     y estados siguen perteneciendo al Design System compartido. */
  --depth-canvas: var(--app-bg);
  --depth-surface-shadow: var(--shadow-s);
  --depth-interactive-shadow: var(--shadow-m);
  --depth-shell-shadow: var(--shadow-s);
  --depth-feature-surface: linear-gradient(135deg,var(--surface-brand-subtle),var(--card-bg));
  --depth-dash-hover-shadow: var(--shadow-m);
}

/* ==========================================================================
   AR-048 · F1 · DASHBOARD GC ORIENTADO A LA ACCIÓN
   --------------------------------------------------------------------------
   Piloto opt-in por Theme: este archivo sólo se carga en Guardia Civil y la
   clase `.visual-pilot` mantiene el rollback global del estándar visual.
   No cambia DOM, orden de foco, handlers, datos, estado ni navegación.
   ========================================================================== */

/* La ayuda conserva todo su contenido y comportamiento, pero deja de ocupar
   visualmente el papel de protagonista en escritorio. */
body.visual-pilot #view-dashboard-pro > .ayuda-box{
  padding:12px 18px;
  margin-bottom:18px;
  background:var(--card-bg);
  border-color:var(--brand-border-subtle);
  border-left-color:var(--brand-primary);
  box-shadow:var(--shadow-xs);
}
body.visual-pilot #view-dashboard-pro > .ayuda-box .ayuda-h{
  margin-bottom:8px;
  font-size:14px;
  letter-spacing:.06em;
}
body.visual-pilot #view-dashboard-pro > .ayuda-box .ayuda-pasos{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:8px 24px;
  padding-left:22px;
}
body.visual-pilot #view-dashboard-pro > .ayuda-box .ayuda-pasos li{
  margin:0;
  font-size:12.5px;
  line-height:1.45;
}
body.visual-pilot #view-dashboard-pro > .ayuda-box .ayuda-tip{
  margin-top:8px;
  padding:6px 10px;
  font-size:12px;
}

/* Contexto compacto: la acción siguiente pasa a ser el primer gran ancla. */
body.visual-pilot #view-dashboard-pro .page-header--dashboard{
  margin-bottom:20px;
  padding-bottom:16px;
}
body.visual-pilot #view-dashboard-pro .page-header--dashboard .page-header__title{
  font-size:32px;
}

/* Único protagonista. Superficie sólida: sin degradado general ni efecto
   ornamental que compita con el contenido. */
body.visual-pilot #view-dashboard-pro .pattern-next{
  position:relative;
  overflow:hidden;
  gap:28px;
  padding:28px 30px;
  background:var(--brand-primary-strong);
  border:1px solid var(--brand-primary-strong);
  border-left:6px solid var(--brand-accent);
  box-shadow:var(--shadow-m);
}
body.visual-pilot #view-dashboard-pro .pattern-next__eyebrow{
  color:var(--gold-300);
}
body.visual-pilot #view-dashboard-pro .pattern-next__title,
body.visual-pilot #view-dashboard-pro .pattern-next__desc{
  color:var(--neutral-0);
}
body.visual-pilot #view-dashboard-pro .pattern-next__title{
  font-size:30px;
  letter-spacing:.01em;
}
body.visual-pilot #view-dashboard-pro .pattern-next__desc{
  color:rgba(255,255,255,.78);
}
body.visual-pilot #view-dashboard-pro .pattern-next__actions{
  flex:0 1 auto;
}
body.visual-pilot #view-dashboard-pro .pattern-next__actions .ds-button--primary{
  background:var(--brand-accent);
  color:var(--brand-primary-strong);
  border-color:var(--brand-accent);
}
body.visual-pilot #view-dashboard-pro .pattern-next__actions .ds-button--primary:hover{
  background:var(--brand-accent-hover);
  border-color:var(--brand-accent-hover);
}
body.visual-pilot #view-dashboard-pro .pattern-next__actions .ds-button--secondary{
  background:transparent;
  color:var(--neutral-0);
  border-color:rgba(255,255,255,.72);
}
body.visual-pilot #view-dashboard-pro .pattern-next__actions .ds-button--secondary:hover{
  background:rgba(255,255,255,.10);
  border-color:var(--neutral-0);
}

/* Los rótulos ordenan el recorrido, sin crear otra gran superficie. */
body.visual-pilot #view-dashboard-pro .dash-section-title{
  margin:28px 0 14px;
  padding:0 0 10px;
  background:transparent;
  border:0;
  border-bottom:1px solid var(--brand-border-subtle);
  border-radius:0;
  font-size:17px;
  letter-spacing:.04em;
}
body.visual-pilot #view-dashboard-pro .dash-section-title .ds-icon{
  display:grid;
  place-items:center;
  width:34px;
  height:34px;
  border-radius:10px;
  background:var(--brand-primary-soft);
  font-size:18px;
}

/* Accesos rápidos = utilidades compactas. Se conservan las ocho acciones y
   su orden; sólo cambia la composición visual de cada tarjeta. */
body.visual-pilot #view-dashboard-pro .dash-acceso{
  gap:10px;
  margin-bottom:22px;
}
body.visual-pilot #view-dashboard-pro .dash-acc-card{
  display:grid;
  grid-template-columns:44px minmax(0,1fr);
  grid-template-rows:auto auto;
  column-gap:12px;
  align-items:center;
  justify-items:start;
  min-height:82px;
  padding:14px 16px;
  text-align:left;
  box-shadow:var(--shadow-xs);
}
body.visual-pilot #view-dashboard-pro .dash-acc-icon{
  grid-column:1;
  grid-row:1 / span 2;
  display:grid;
  place-items:center;
  width:44px;
  height:44px;
  margin:0;
  border-radius:12px;
  background:var(--brand-primary-soft);
  font-size:23px;
  filter:none;
}
body.visual-pilot #view-dashboard-pro .dash-acc-name{
  grid-column:2;
  align-self:end;
  font-size:14px;
  line-height:1.1;
}
body.visual-pilot #view-dashboard-pro .dash-acc-sub{
  grid-column:2;
  align-self:start;
  margin-top:3px;
  font-size:11px;
  line-height:1.25;
}

/* El recorrido académico conserva progreso e IDs. El acento superior visible
   diferencia estas tarjetas de las utilidades sin añadir otra sombra. */
body.visual-pilot #view-dashboard-pro .modulos-completos{
  gap:14px;
  margin-bottom:14px;
}
body.visual-pilot #view-dashboard-pro .modulos-completos.mc-sec-exa{
  grid-template-columns:repeat(2,minmax(0,1fr));
}
body.visual-pilot #view-dashboard-pro .mc-card{
  min-height:190px;
  padding:22px 22px 18px;
  box-shadow:var(--shadow-xs);
}
body.visual-pilot #view-dashboard-pro .mc-card::before{
  transform:scaleX(1);
  height:3px;
}
body.visual-pilot #view-dashboard-pro .mc-icon{
  width:48px;
  height:48px;
  margin-bottom:16px;
}
body.visual-pilot #view-dashboard-pro .mc-name{
  font-size:17px;
  line-height:1.15;
}
body.visual-pilot #view-dashboard-pro .mc-prog-lbl{
  color:var(--text-secondary);
  font-weight:700;
}

/* Bandas complementarias: reconocibles, contenidas y subordinadas al héroe. */
body.visual-pilot #view-dashboard-pro .dash-pers{
  min-height:92px;
  margin-top:14px;
  padding:18px 22px;
  box-shadow:var(--shadow-xs);
}
body.visual-pilot #view-dashboard-pro .dash-pers:hover{
  box-shadow:var(--shadow-s);
}

@media (max-width:1100px){
  body.visual-pilot #view-dashboard-pro > .ayuda-box .ayuda-pasos{
    grid-template-columns:1fr;
    gap:4px;
  }
  body.visual-pilot #view-dashboard-pro .dash-acceso{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
}

@media (max-width:640px){
  body.visual-pilot #view-dashboard-pro > .ayuda-box{
    padding:12px 14px;
  }
  body.visual-pilot #view-dashboard-pro .page-header--dashboard{
    margin-bottom:16px;
  }
  body.visual-pilot #view-dashboard-pro .page-header--dashboard .page-header__title{
    font-size:26px;
  }
  body.visual-pilot #view-dashboard-pro .pattern-next{
    gap:18px;
    padding:22px 18px;
  }
  body.visual-pilot #view-dashboard-pro .pattern-next__title{
    font-size:25px;
  }
  body.visual-pilot #view-dashboard-pro .dash-section-title{
    margin-top:24px;
  }
  body.visual-pilot #view-dashboard-pro .dash-acceso{
    grid-template-columns:1fr;
  }
  body.visual-pilot #view-dashboard-pro .dash-acc-card{
    min-height:74px;
    padding:12px 14px;
  }
  body.visual-pilot #view-dashboard-pro .modulos-completos{
    grid-template-columns:1fr;
  }
  body.visual-pilot #view-dashboard-pro .modulos-completos.mc-sec-exa{
    grid-template-columns:1fr;
  }
  body.visual-pilot #view-dashboard-pro .mc-card{
    min-height:0;
    padding:18px;
  }
  body.visual-pilot #view-dashboard-pro .dash-pers{
    min-height:0;
    padding:16px;
  }
}

@media (prefers-reduced-motion:reduce){
  body.visual-pilot #view-dashboard-pro .dash-acc-card,
  body.visual-pilot #view-dashboard-pro .mc-card,
  body.visual-pilot #view-dashboard-pro .dash-pers,
  body.visual-pilot #view-dashboard-pro .mc-icon{
    transition:none;
  }
  body.visual-pilot #view-dashboard-pro .dash-acc-card:hover,
  body.visual-pilot #view-dashboard-pro .mc-card:hover,
  body.visual-pilot #view-dashboard-pro .dash-pers:hover{
    transform:none;
  }
}

/* AR-048 · Personalidad GC — jerarquía de producto y profundidad visual */
body.personality-shell-v1{
  background:var(--app-bg);
  color:var(--text-primary);
}
body.personality-shell-v1 .wrap{
  max-width:1180px;
  background:transparent;
}
body.personality-shell-v1 .topbar{
  background:var(--brand-primary-strong);
  border-bottom:1px solid color-mix(in srgb,var(--brand-accent) 42%,transparent);
  box-shadow:0 8px 24px rgba(3,38,27,.16);
}
body.personality-shell-v1 .topbar :is(.topbar-l,.topbar-tit){
  color:var(--neutral-0) !important;
}
body.personality-shell-v1 .topbar .topbar-l :is(svg,path){
  color:var(--neutral-0) !important;
  fill:currentColor !important;
}
body.personality-shell-v1 #v-landing{
  padding:28px clamp(18px,4vw,48px) 48px;
}
body.personality-shell-v1 #v-landing>.hero{
  position:relative;
  overflow:hidden;
  padding:30px clamp(24px,4vw,46px);
  border:1px solid rgba(255,255,255,.13);
  border-left:8px solid var(--brand-accent);
  border-radius:20px;
  background:var(--brand-primary-strong);
  box-shadow:0 20px 42px rgba(3,38,27,.18);
}
body.personality-shell-v1 #v-landing>.hero::after{
  content:'';
  position:absolute;
  width:260px;
  height:260px;
  right:-90px;
  top:-110px;
  border-radius:50%;
  background:rgba(255,255,255,.06);
}
body.personality-shell-v1 #v-landing .hero-k{
  color:var(--brand-accent);
  letter-spacing:1.8px;
}
body.personality-shell-v1 #v-landing .hero-t{
  max-width:720px;
  font:800 clamp(34px,5vw,54px)/.96 var(--font-display);
  letter-spacing:-.4px;
}
body.personality-shell-v1 #v-landing .hero-s{
  max-width:760px;
  font-size:15px;
  line-height:1.55;
}
body.personality-shell-v1 #pers-status .combo{
  cursor:default;
  margin:18px 0 16px;
  padding:17px 20px;
  border:1px solid color-mix(in srgb,var(--brand-accent) 62%,transparent);
  border-left:6px solid var(--brand-accent);
  background:linear-gradient(100deg,var(--brand-primary-strong),var(--brand-primary));
  box-shadow:var(--shadow-md);
}
body.personality-shell-v1 .pers-prep{
  padding:16px 18px;
  border-color:var(--card-border);
  box-shadow:var(--shadow-xs);
}
body.personality-shell-v1 .pers-prep-ic{
  background:var(--surface-brand-soft);
  color:var(--brand-primary);
}
body.personality-shell-v1 .sect-tit{
  margin:26px 2px 13px;
  font:800 19px/1 var(--font-display);
  letter-spacing:.7px;
}
body.personality-shell-v1 .ruta{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:14px;
}
body.personality-shell-v1 #v-landing .rstep{
  appearance:none;
  position:relative;
  display:grid;
  grid-template-columns:40px 1fr;
  align-items:start;
  min-height:190px;
  padding:20px;
  border-color:var(--card-border);
  border-top:4px solid var(--brand-primary);
  border-radius:16px;
  background:var(--card-bg);
  box-shadow:var(--shadow-sm);
}
body.personality-shell-v1 #v-landing .rstep.star{
  border-color:var(--card-border);
  border-top-color:var(--brand-accent);
  background:var(--card-bg);
}
body.personality-shell-v1 #v-landing .rnum{
  grid-column:1;
  grid-row:1;
  width:34px;
  height:34px;
  background:var(--brand-primary);
}
body.personality-shell-v1 #v-landing .ric{
  grid-column:2;
  grid-row:1;
  justify-self:end;
  color:var(--brand-primary);
}
body.personality-shell-v1 #v-landing .rbody{
  grid-column:1/-1;
  grid-row:2;
  margin-top:20px;
}
body.personality-shell-v1 #v-landing .rtit{
  display:block;
  font:800 23px/1.05 var(--font-display);
  text-transform:uppercase;
}
body.personality-shell-v1 #v-landing .rsub{
  display:block;
  margin-top:9px;
  font-size:13px;
  line-height:1.45;
}
body.personality-shell-v1 #v-landing .rstat{
  position:absolute;
  left:20px;
  bottom:18px;
}
body.personality-shell-v1 .pers-library{
  border:1px solid var(--card-border);
  border-radius:16px;
  padding:0 16px 16px;
  background:var(--card-bg);
  box-shadow:var(--shadow-xs);
}
body.personality-shell-v1 .pers-library>summary{
  min-height:70px;
}
body.personality-shell-v1 .q-grid{
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:12px;
}
body.personality-shell-v1 .q-card{
  min-height:155px;
  border-color:var(--card-border);
  box-shadow:var(--shadow-xs);
}
body.personality-shell-v1 #v-landing :is(.rstep,.pers-prep-go,.pers-library>summary):focus-visible{
  outline:3px solid var(--brand-accent);
  outline-offset:3px;
}

/* Pantallas internas: misma profundidad y densidad que el resto del aula GC. */
body.personality-shell-v1 .view:not(#v-landing){
  max-width:1120px;
  margin-inline:auto;
  padding:28px clamp(18px,3vw,34px) 48px;
}
body.personality-shell-v1 .view:not(#v-landing)>.hero{
  border:1px solid color-mix(in srgb,var(--brand-accent) 44%,var(--card-border));
  border-left:7px solid var(--brand-accent);
  border-radius:18px;
  background:linear-gradient(112deg,var(--brand-primary-strong),var(--brand-primary));
  box-shadow:var(--shadow-md);
}
body.personality-shell-v1 #v-learn #learn-dims{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:14px;
  margin-top:18px;
}
body.personality-shell-v1 #v-learn .dim-row{
  height:100%;
  margin:0;
  padding:20px;
  border-color:var(--card-border);
  border-left:5px solid var(--brand-primary);
  border-radius:15px;
  background:var(--card-bg);
  box-shadow:var(--shadow-xs);
}
body.personality-shell-v1 #v-learn .panel{
  margin-top:18px;
  border-left:6px solid var(--brand-accent);
  box-shadow:var(--shadow-sm);
}
body.personality-shell-v1 #v-test{
  max-width:920px;
  margin-top:28px;
  margin-bottom:40px;
  border:1px solid var(--card-border);
  border-radius:20px;
  background:var(--card-bg);
  box-shadow:var(--shadow-md);
}
body.personality-shell-v1 #v-test .test-head{
  padding-bottom:14px;
  border-bottom:1px solid var(--card-border);
}
body.personality-shell-v1 #v-test .test-adj{
  max-width:760px;
  margin-inline:auto;
  font-size:clamp(24px,3vw,34px);
  line-height:1.2;
}
body.personality-shell-v1 #v-test .scale{
  max-width:700px;
  margin:24px auto 0;
  gap:11px;
}
body.personality-shell-v1 #v-test .opt{
  min-height:66px;
  border-color:var(--card-border);
  border-radius:14px;
  box-shadow:var(--shadow-xs);
}
body.personality-shell-v1 #v-test .pn{
  margin-top:28px;
  border-color:var(--card-border);
  box-shadow:var(--shadow-xs);
}
body.personality-shell-v1 :is(#v-bio-intro,#v-ent-intro)>.note,
body.personality-shell-v1 :is(#v-bio-intro,#v-ent-intro)>.card{
  margin-top:18px;
  border-radius:15px;
  box-shadow:var(--shadow-xs);
}
body.personality-shell-v1 #v-bio #bio-form{
  margin-top:18px;
  padding:24px clamp(18px,3vw,32px) 32px;
  border:1px solid var(--card-border);
  border-radius:18px;
  background:var(--card-bg);
  box-shadow:var(--shadow-sm);
}
body.personality-shell-v1 #v-bio #bio-form .sect-tit{
  margin:28px 0 16px;
  padding:12px 14px;
  border-left:5px solid var(--brand-accent);
  border-radius:0 10px 10px 0;
  background:var(--surface-brand-soft);
}
body.personality-shell-v1 #v-bio #bio-form :is(input,select,textarea){
  border-color:var(--card-border);
  background:var(--neutral-0);
  box-shadow:0 1px 0 rgba(3,38,27,.03);
}
body.personality-shell-v1 #v-bio #bio-form :is(input,select,textarea):focus{
  border-color:var(--brand-primary);
  box-shadow:0 0 0 3px color-mix(in srgb,var(--brand-primary) 16%,transparent);
}
body.personality-shell-v1 :is(#v-bio-report,#v-ent,#v-ent-report)>[id]{
  margin-top:18px;
}

@media (max-width:820px){
  body.personality-shell-v1 .ruta,
  body.personality-shell-v1 .q-grid{grid-template-columns:1fr 1fr;}
  body.personality-shell-v1 #v-landing .rstep{min-height:180px;}
}
@media (max-width:560px){
  body.personality-shell-v1 #v-landing{padding:16px 14px 34px;}
  body.personality-shell-v1 #v-landing>.hero{padding:24px 20px;border-radius:17px;}
  body.personality-shell-v1 #v-landing .hero-t{font-size:36px;}
  body.personality-shell-v1 .pers-prep{align-items:flex-start;flex-wrap:wrap;}
  body.personality-shell-v1 .pers-prep-go{width:100%;text-align:left;padding:4px 0 0 54px;}
  body.personality-shell-v1 .ruta,
  body.personality-shell-v1 .q-grid{grid-template-columns:1fr;}
  body.personality-shell-v1 #v-landing .rstep{
    min-height:0;
    padding:18px;
    grid-template-columns:38px 1fr;
  }
  body.personality-shell-v1 #v-landing .rbody{margin-top:14px;}
  body.personality-shell-v1 #v-landing .rtit{font-size:21px;}
  body.personality-shell-v1 #v-landing .rstat{
    position:static;
    grid-column:1/-1;
    grid-row:3;
    justify-self:start;
    margin-top:12px;
  }
  body.personality-shell-v1 .view:not(#v-landing){
    padding:18px 14px 34px;
  }
  body.personality-shell-v1 #v-learn #learn-dims{grid-template-columns:1fr;}
  body.personality-shell-v1 #v-test{
    margin-top:14px;
    border:0;
    border-radius:0;
    background:transparent;
    box-shadow:none;
  }
  body.personality-shell-v1 #v-test .scale{gap:9px;}
  body.personality-shell-v1 #v-test .opt{min-height:62px;}
  body.personality-shell-v1 #v-bio #bio-form{
    padding:16px 14px 24px;
  }
}

/* ==========================================================================
   AR-048 · F6 — continuidad premium: Teoría y Psicotécnicos GC
   Capa exclusivamente visual. No altera estados, eventos, datos ni scoring.
   ========================================================================== */

/* --- Teoría: bloques, temas, tests y documentación --- */
body.visual-pilot :is(
  #view-pro-teo-bloques,
  #view-pro-teo-temas,
  #view-pro-teo-detalle,
  #view-pro-teo-estudio,
  #view-pro-teo-esquema,
  #view-pro-teo-temario
) :is(.page-header--module,.conf-header){
  position:relative;
  overflow:hidden;
  padding:24px 26px;
  margin-bottom:24px;
  background:var(--card-bg);
  border:1px solid var(--card-border);
  border-left:6px solid var(--brand-primary);
  border-radius:14px;
  box-shadow:var(--shadow-s);
}
body.visual-pilot :is(
  #view-pro-teo-bloques,
  #view-pro-teo-temas,
  #view-pro-teo-detalle,
  #view-pro-teo-estudio,
  #view-pro-teo-esquema,
  #view-pro-teo-temario
) :is(.page-header--module,.conf-header)::after{
  content:"";
  position:absolute;
  inset:0 0 auto;
  height:3px;
  background:linear-gradient(90deg,var(--brand-accent),transparent 68%);
  pointer-events:none;
}
body.visual-pilot #view-pro-teo-bloques .modulos-completos{
  gap:18px;
}
body.visual-pilot #view-pro-teo-bloques .mc-card{
  min-height:210px;
  padding:26px;
  border-color:var(--card-border);
  border-radius:16px;
  box-shadow:var(--shadow-xs);
}
body.visual-pilot #view-pro-teo-bloques .mc-card::before{
  height:5px;
  background:var(--brand-primary);
  transform:none;
}
body.visual-pilot #view-pro-teo-bloques .mc-card::after{
  content:"";
  position:absolute;
  right:-28px;
  bottom:-36px;
  width:116px;
  height:116px;
  border-radius:50%;
  background:color-mix(in srgb,var(--brand-primary) 5%,transparent);
  pointer-events:none;
}
body.visual-pilot #view-pro-teo-bloques .mc-icon{
  width:54px;
  height:54px;
  border-radius:14px;
  background:var(--brand-primary-soft);
  box-shadow:inset 0 0 0 1px var(--brand-border-subtle);
}
body.visual-pilot #view-pro-teo-bloques .mc-name{
  font-size:20px;
  margin-bottom:7px;
}
body.visual-pilot #view-pro-teo-bloques .mc-card:hover{
  transform:translateY(-4px);
  border-color:var(--brand-border-subtle);
  box-shadow:var(--shadow-m);
}
body.visual-pilot #view-pro-teo-temas .teo-tema-item{
  min-height:76px;
  padding:16px 18px;
  border-color:var(--card-border);
  border-left:5px solid var(--brand-primary);
  border-radius:12px;
  box-shadow:var(--shadow-xs);
}
body.visual-pilot #view-pro-teo-temas .teo-tema-item:hover{
  transform:translateX(3px);
  background:var(--brand-primary-soft);
  box-shadow:var(--shadow-s);
}
body.visual-pilot #view-pro-teo-temas .teo-tema-num{
  display:grid;
  place-items:center;
  min-width:46px;
  height:42px;
  border-radius:10px;
  background:var(--brand-primary-soft);
  box-shadow:inset 0 0 0 1px var(--brand-border-subtle);
}
body.visual-pilot #view-pro-teo-temas .teo-tema-txt{
  font-size:14px;
  line-height:1.5;
}
body.visual-pilot #view-pro-teo-detalle .teo-acc-head{
  min-height:54px;
  padding:14px 18px;
  color:var(--brand-on-primary);
  background:var(--brand-primary);
  border-top:4px solid var(--brand-accent);
  border-radius:12px;
  box-shadow:var(--shadow-s);
}
body.visual-pilot #view-pro-teo-detalle .teo-acc-count,
body.visual-pilot #view-pro-teo-detalle .teo-acc-chev{
  color:color-mix(in srgb,var(--brand-on-primary) 82%,transparent);
}
body.visual-pilot #view-pro-teo-detalle .teo-test-grid{
  gap:12px;
}
body.visual-pilot #view-pro-teo-detalle .teo-test-card{
  padding:17px 18px;
  border-color:var(--card-border);
  border-left:4px solid var(--brand-primary);
  box-shadow:var(--shadow-xs);
}
body.visual-pilot #view-pro-teo-detalle .teo-test-card:hover{
  transform:translateY(-2px);
  background:var(--card-bg);
  box-shadow:var(--shadow-s);
}
/* Los estados evaluativos conservan la precedencia del Status System. */
body.visual-pilot #view-pro-teo-detalle .teo-test-card.ok{border-left-color:var(--success-500);}
body.visual-pilot #view-pro-teo-detalle .teo-test-card.flojo{border-left-color:var(--warning-500);}
body.visual-pilot #view-pro-teo-detalle .teo-doc-item{
  min-height:82px;
  padding:17px 18px;
  border-color:var(--card-border);
  border-left:5px solid var(--brand-accent);
  border-radius:12px;
  box-shadow:var(--shadow-xs);
}
body.visual-pilot #view-pro-teo-detalle .teo-doc-icon{
  display:grid;
  place-items:center;
  width:46px;
  height:46px;
  color:var(--brand-primary);
  background:var(--brand-primary-soft);
  border-radius:12px;
}
body.visual-pilot #view-pro-teo-detalle .teo-doc-name{font-size:14px;font-weight:800;}
body.visual-pilot :is(#view-pro-teo-esquema,#view-pro-teo-temario) .teo-esquema-note{
  padding:14px 16px;
  border-left:5px solid var(--brand-accent);
  box-shadow:var(--shadow-xs);
}
body.visual-pilot :is(#view-pro-teo-esquema,#view-pro-teo-temario) .teo-esquema-viewer,
body.visual-pilot #view-pro-teo-estudio :is(.estudio-card,.tem-doc-wrap){
  border-color:var(--card-border);
  box-shadow:var(--shadow-m);
}

/* --- Psicotécnicos: landing, configuración, runner y resultado --- */
body.module-shell-v1 .psico-hero{
  padding:24px 28px;
  border-left:7px solid var(--brand-accent);
  border-radius:15px;
  background:var(--brand-primary);
  box-shadow:var(--shadow-m);
}
body.module-shell-v1 .psico-hero::before{
  right:-30px;
  top:-72px;
  width:210px;
  height:210px;
  background:color-mix(in srgb,var(--brand-accent) 12%,transparent);
}
body.module-shell-v1 .psico-hero .hero-title{
  font-family:var(--font-display);
  font-size:clamp(26px,3vw,36px);
  font-weight:800;
  line-height:1.12;
  letter-spacing:.01em;
}

/* AR-048 · F6 — accesos de práctica y guías bajo un único lenguaje GC */
body.visual-pilot :is(#modal-tipo-teo,#modal-tipo-ing) .modal{
  border-top:6px solid var(--brand-accent);
  border-radius:18px;
  box-shadow:var(--shadow-xl);
}
body.visual-pilot :is(#modal-tipo-teo,#modal-tipo-ing) .modal-title{
  color:var(--brand-primary);
  letter-spacing:.01em;
}
body.visual-pilot :is(#modal-tipo-teo,#modal-tipo-ing) .modal-sub{
  margin-bottom:18px;
  color:var(--text-secondary);
}
body.visual-pilot :is(#modal-tipo-teo,#modal-tipo-ing) .modal-cta-card{
  min-height:108px;
  border-radius:13px;
  box-shadow:var(--shadow-xs);
  transition:border-color .18s ease,box-shadow .18s ease,transform .18s ease;
}
body.visual-pilot :is(#modal-tipo-teo,#modal-tipo-ing) .modal-cta-card:first-child{
  color:var(--brand-primary) !important;
  border:2px solid var(--brand-border-subtle) !important;
  border-left:6px solid var(--brand-primary) !important;
  background:var(--surface-elevated) !important;
}
body.visual-pilot :is(#modal-tipo-teo,#modal-tipo-ing) .modal-cta-card:last-child{
  color:var(--brand-on-primary) !important;
  border:2px solid var(--brand-primary) !important;
  border-left:6px solid var(--brand-accent) !important;
  background:var(--brand-primary) !important;
  box-shadow:var(--shadow-m);
}
body.visual-pilot :is(#modal-tipo-teo,#modal-tipo-ing) .modal-cta-card:hover{
  transform:translateY(-2px);
  box-shadow:var(--shadow-l);
}
body.visual-pilot :is(#modal-tipo-teo,#modal-tipo-ing) .modal-cta-card:focus-visible{
  outline:3px solid var(--border-focus);
  outline-offset:3px;
}
body.visual-pilot .dash-guias{
  color:var(--brand-primary);
  border-color:var(--brand-border-subtle);
  border-left-color:var(--brand-accent);
  background:var(--surface-elevated);
  box-shadow:var(--shadow-m);
}
body.visual-pilot .dash-guias .dash-pers-ic{
  color:var(--brand-primary);
  background:var(--brand-primary-soft);
}
body.visual-pilot .dash-guias .dash-pers-name{color:var(--brand-primary);}
body.visual-pilot .dash-guias .dash-pers-sub{color:var(--text-secondary);}
body.visual-pilot .dash-guias .dash-pers-go{
  color:var(--brand-primary);
  background:var(--brand-accent);
}
body.module-shell-v1 .dash-step-hd{
  margin-bottom:18px;
  padding:12px 0 14px;
  border-bottom:1px solid var(--brand-border-subtle);
}
body.module-shell-v1 .dash-step-hd .step-n{
  width:38px;
  height:38px;
  background:var(--brand-primary);
  box-shadow:0 0 0 5px var(--brand-primary-soft);
}
body.module-shell-v1 .dash-step-hd .step-t{font-size:22px;}
body.module-shell-v1 :is(.aprende-card,.cat-card){
  border-color:var(--card-border);
  border-radius:12px;
  box-shadow:var(--shadow-xs);
}
body.module-shell-v1 .aprende-card{
  min-height:82px;
  border-left:5px solid var(--brand-primary);
}
body.module-shell-v1 .aprende-card:not(.soon):hover,
body.module-shell-v1 .cat-card:hover{
  transform:translateY(-3px);
  border-color:var(--brand-border-subtle);
  box-shadow:var(--shadow-s);
}
body.module-shell-v1 .aprende-card:not(.soon):hover{border-left-color:var(--brand-accent);}
body.module-shell-v1 .aprende-ic,
body.module-shell-v1 .cat-icon{
  background:var(--brand-primary-soft);
  box-shadow:inset 0 0 0 1px var(--brand-border-subtle);
}
body.module-shell-v1 .cat-card.selected{
  border-color:var(--brand-primary);
  background:var(--brand-primary-soft);
  box-shadow:0 0 0 2px color-mix(in srgb,var(--brand-primary) 12%,transparent),var(--shadow-s);
}
body.module-shell-v1 .config-panel{
  padding:24px;
  border-color:var(--card-border);
  border-top:4px solid var(--brand-accent);
  border-radius:14px;
  box-shadow:var(--shadow-s);
}
body.module-shell-v1 .bopt{
  min-height:38px;
  padding:8px 15px;
  border-radius:8px;
  border-color:var(--brand-border-subtle);
}
body.module-shell-v1 .bopt.on{
  background:var(--brand-primary);
  border-color:var(--brand-primary);
  box-shadow:var(--shadow-xs);
}
body.module-shell-v1 .btn-start{
  min-height:48px;
  border-radius:10px;
  background:var(--brand-primary);
  box-shadow:var(--shadow-s);
}
body.module-shell-v1 .test-header{
  padding:14px 24px;
  color:var(--brand-on-primary);
  background:var(--brand-primary);
  border-bottom:4px solid var(--brand-accent);
  box-shadow:var(--shadow-s);
}
body.module-shell-v1 .test-header :is(.prog-lbl,.prog-info){color:var(--brand-on-primary);}
body.module-shell-v1 .test-header .prog-track{background:color-mix(in srgb,var(--brand-on-primary) 20%,transparent);}
body.module-shell-v1 .test-header .prog-fill{background:var(--brand-accent);}
body.module-shell-v1 .test-body{
  margin-top:22px;
  padding:26px 28px 42px;
  background:var(--card-bg);
  border:1px solid var(--card-border);
  border-radius:16px;
  box-shadow:var(--shadow-m);
}
body.module-shell-v1 .q-cat-badge{
  color:var(--brand-primary);
  background:var(--gold-50);
  border-color:color-mix(in srgb,var(--brand-accent) 42%,transparent);
}
body.module-shell-v1 :is(.ans-card,.mans-card){
  border-color:var(--card-border);
  box-shadow:var(--shadow-xs);
}
body.module-shell-v1 :is(.ans-card,.mans-card):hover:not(:disabled){
  transform:translateY(-2px);
  border-color:var(--brand-accent);
  box-shadow:var(--shadow-s);
}
body.module-shell-v1 .exp-panel{
  padding:20px 22px;
  border-color:var(--card-border);
  border-left:5px solid var(--brand-primary);
  box-shadow:var(--shadow-s);
}
body.module-shell-v1 .qstat,
body.module-shell-v1 .breakdown,
body.module-shell-v1 .rbadge{
  border-color:var(--card-border);
  box-shadow:var(--shadow-xs);
}
body.module-shell-v1 .result-wrap{
  max-width:720px;
  margin-top:28px;
  padding:38px 32px;
  background:var(--card-bg);
  border:1px solid var(--card-border);
  border-top:5px solid var(--brand-accent);
  border-radius:18px;
  box-shadow:var(--shadow-m);
}
body.module-shell-v1 .result-title{font-size:clamp(30px,5vw,42px);color:var(--brand-primary);}
body.module-shell-v1 .rbtn{min-height:48px;border-radius:10px;}

@media (max-width:640px){
  body.visual-pilot :is(
    #view-pro-teo-bloques,
    #view-pro-teo-temas,
    #view-pro-teo-detalle,
    #view-pro-teo-estudio,
    #view-pro-teo-esquema,
    #view-pro-teo-temario
  ) :is(.page-header--module,.conf-header){
    padding:20px 18px;
  }
  body.visual-pilot #view-pro-teo-bloques .mc-card{min-height:0;padding:20px;}
  body.visual-pilot #view-pro-teo-temas .teo-tema-item{padding:14px 12px;}
  body.module-shell-v1 .psico-hero{padding:22px 20px;}
  body.module-shell-v1 .config-panel{padding:18px;}
  body.module-shell-v1 .test-body{
    margin-top:14px;
    padding:20px 16px 34px;
    border-right:0;
    border-left:0;
    border-radius:0;
  }
  body.module-shell-v1 .result-wrap{
    margin:14px 12px 28px;
    padding:28px 18px;
  }
}

@media (prefers-reduced-motion:reduce){
  body.visual-pilot :is(.mc-card,.teo-tema-item,.teo-test-card),
  body.module-shell-v1 :is(.aprende-card,.cat-card,.ans-card,.mans-card){
    transition:none;
  }
}

/* ================================================================
   AR-048 · F5 — Refuerzo, planificación y entrenamiento GC
   Capa exclusivamente visual: conserva DOM, handlers, datos y estado.
   ================================================================ */

/* --- Mis errores: de listado utilitario a centro de refuerzo --- */
body.visual-pilot #view-pro-falladas{
  max-width:1180px;
  padding-bottom:56px;
}
body.visual-pilot #view-pro-falladas .conf-header{
  position:relative;
  margin:22px 0 24px;
  padding:22px 24px 22px 28px;
  overflow:hidden;
  border:1px solid color-mix(in srgb,var(--brand-primary) 24%,white);
  border-left:7px solid var(--brand-primary);
  border-radius:14px;
  background:var(--card-bg);
  box-shadow:var(--shadow-sm);
}
body.visual-pilot #view-pro-falladas .conf-header::after{
  content:"\21BB";
  position:absolute;
  right:22px;
  top:50%;
  translate:0 -50%;
  color:color-mix(in srgb,var(--brand-primary) 8%,transparent);
  font:900 76px/1 var(--font-display);
  pointer-events:none;
}
body.visual-pilot #view-pro-falladas .fall-intro{
  margin-bottom:20px;
  padding:16px 18px;
  border-color:color-mix(in srgb,var(--brand-primary) 22%,white);
  border-left:4px solid var(--brand-accent);
  border-radius:12px;
  background:var(--brand-primary-soft);
  color:var(--brand-primary);
}
body.visual-pilot #view-pro-falladas .fall-cards{
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:16px;
}
body.visual-pilot #view-pro-falladas .fall-card{
  position:relative;
  min-height:190px;
  display:flex;
  flex-direction:column;
  justify-content:center;
  padding:24px 20px 20px;
  overflow:hidden;
  border-color:var(--card-border);
  border-top:4px solid var(--danger-500);
  border-radius:14px;
  background:var(--card-bg);
  box-shadow:var(--shadow-sm);
  transition:translate .18s ease,box-shadow .18s ease;
}
body.visual-pilot #view-pro-falladas .fall-card:not(.dis):hover{
  translate:0 -2px;
  box-shadow:var(--shadow-m);
}
body.visual-pilot #view-pro-falladas .fall-card.dis{
  border-top-color:var(--neutral-300);
  background:var(--neutral-50);
  opacity:.78;
  box-shadow:none;
}
body.visual-pilot #view-pro-falladas .fall-card-top{
  gap:12px;
  margin-bottom:10px;
}
body.visual-pilot #view-pro-falladas .fall-card-top .ti{
  width:44px;
  height:44px;
  display:grid;
  place-items:center;
  border-radius:12px;
  background:var(--danger-50);
  font-size:24px;
}
body.visual-pilot #view-pro-falladas .fall-card.dis .fall-card-top .ti{
  background:var(--neutral-100);
}
body.visual-pilot #view-pro-falladas .fall-n{
  font-size:42px;
}
body.visual-pilot #view-pro-falladas .fall-card-name{
  margin-bottom:16px;
  color:var(--brand-primary);
  font-family:var(--font-display);
  font-size:17px;
  font-weight:800;
}
body.visual-pilot #view-pro-falladas .prog-cta{
  width:100%;
  min-height:42px;
  justify-content:center;
  margin-top:auto;
  border-radius:9px;
  background:var(--brand-primary);
  color:white;
}
body.visual-pilot #view-pro-falladas .prog-cta:disabled{
  background:var(--neutral-200);
  color:var(--neutral-600);
  cursor:not-allowed;
}

/* --- Contrato compartido de los dos planes semanales --- */
body.visual-pilot :is(
  #view-estudio,#view-est-semana,#view-estudio-sesion,
  #view-entrenamiento,#view-ent-semana,#view-entrenamiento-sesion,
  #view-ent-player,#view-ent-progreso
){
  background:transparent;
}
body.visual-pilot :is(
  #view-estudio,#view-est-semana,#view-estudio-sesion,
  #view-entrenamiento,#view-ent-semana,#view-entrenamiento-sesion,
  #view-ent-player,#view-ent-progreso
) .ent-bar{
  top:var(--topbar-h,0px);
  min-height:66px;
  padding:12px clamp(18px,3vw,32px);
  border:1px solid var(--card-border);
  border-top:0;
  border-radius:0 0 14px 14px;
  background:color-mix(in srgb,var(--card-bg) 94%,transparent);
  box-shadow:var(--shadow-xs);
  backdrop-filter:blur(12px);
}
body.visual-pilot :is(
  #view-estudio,#view-est-semana,#view-estudio-sesion,
  #view-entrenamiento,#view-ent-semana,#view-entrenamiento-sesion,
  #view-ent-player,#view-ent-progreso
) .ent-back{
  min-height:40px;
  padding:0 14px;
  border:1px solid color-mix(in srgb,var(--brand-primary) 28%,white);
  border-radius:9px;
  color:var(--brand-primary);
  letter-spacing:.8px;
}
body.visual-pilot :is(#view-estudio,#view-entrenamiento) .ent-regen{
  min-height:40px;
  border-color:color-mix(in srgb,var(--brand-primary) 26%,white);
  border-radius:9px;
  background:var(--card-bg);
  color:var(--brand-primary);
}
body.visual-pilot :is(
  #view-estudio,#view-est-semana,#view-estudio-sesion,
  #view-entrenamiento,#view-ent-semana,#view-entrenamiento-sesion,
  #view-ent-player,#view-ent-progreso
) .ent-scroll{
  width:min(100%,1180px);
  margin-inline:auto;
  padding:28px clamp(18px,3vw,34px) 56px;
}
body.visual-pilot :is(#view-estudio,#view-entrenamiento) .ent-global{
  padding:18px 20px;
  border:1px solid color-mix(in srgb,var(--brand-primary) 22%,white);
  border-radius:13px;
  background:var(--card-bg);
  box-shadow:var(--shadow-xs);
}
body.visual-pilot :is(#view-estudio,#view-entrenamiento) .ent-global-bar{
  height:9px;
  background:var(--brand-primary-soft);
}
body.visual-pilot :is(#view-estudio,#view-entrenamiento) .ent-global-fill{
  background:var(--brand-accent);
}
body.visual-pilot :is(#view-estudio,#view-entrenamiento) .ent-resumen{
  position:relative;
  padding:22px;
  overflow:hidden;
  border:1px solid color-mix(in srgb,var(--brand-accent) 58%,var(--brand-primary));
  border-left:7px solid var(--brand-accent);
  border-radius:15px;
  background:var(--brand-primary);
  color:white;
  box-shadow:0 14px 32px color-mix(in srgb,var(--brand-primary) 20%,transparent);
}
body.visual-pilot :is(#view-estudio,#view-entrenamiento) .ent-resumen-apt{
  margin-top:3px;
  font-size:28px;
  color:white;
}
body.visual-pilot :is(#view-estudio,#view-entrenamiento) .ent-resumen-meta{
  color:color-mix(in srgb,white 82%,transparent);
}
body.visual-pilot :is(#view-estudio,#view-entrenamiento) .ent-nota-chip{
  border:1px solid rgba(255,255,255,.14);
  background:rgba(255,255,255,.1);
}
body.visual-pilot :is(#view-estudio,#view-entrenamiento) .ent-leyenda{
  padding:14px 16px;
  border:1px solid color-mix(in srgb,var(--brand-primary) 15%,white);
  border-radius:11px;
  background:var(--brand-primary-soft);
}
body.visual-pilot :is(#view-estudio,#view-entrenamiento) .ent-wk-card{
  position:relative;
  padding:22px;
  overflow:hidden;
  border-color:var(--card-border);
  border-radius:15px;
  background:var(--card-bg);
  box-shadow:var(--shadow-sm);
}
body.visual-pilot :is(#view-estudio,#view-entrenamiento) .ent-wk-card::before{
  content:"";
  position:absolute;
  inset:0 auto 0 0;
  width:5px;
  background:var(--neutral-200);
}
body.visual-pilot :is(#view-estudio,#view-entrenamiento) .ent-wk-card.actual{
  border:1px solid color-mix(in srgb,var(--brand-primary) 48%,white);
  box-shadow:var(--shadow-m);
}
body.visual-pilot :is(#view-estudio,#view-entrenamiento) .ent-wk-card.actual::before{
  background:var(--brand-accent);
}
body.visual-pilot :is(#view-estudio,#view-entrenamiento) .ent-wk-title{
  margin:2px 0;
  font-size:30px;
  color:var(--brand-primary);
}
body.visual-pilot :is(#view-estudio,#view-entrenamiento) .ent-wk-fase{
  color:var(--gold-700);
}
body.visual-pilot :is(#view-estudio,#view-entrenamiento) .ent-wk-row{
  min-height:42px;
  padding:9px 0;
}

/* Semana, sesión, reproductor y marcas */
body.visual-pilot :is(#view-est-semana,#view-ent-semana) .ent-semsel{
  color:var(--brand-primary);
  letter-spacing:.8px;
}
body.visual-pilot :is(#view-est-semana,#view-ent-semana) .ent-semsel button{
  width:36px;
  height:36px;
  display:grid;
  place-items:center;
  border:1px solid var(--card-border);
  border-radius:50%;
  background:var(--card-bg);
}
body.visual-pilot :is(#view-est-semana,#view-ent-semana) .ent-coach{
  padding:18px;
  border-color:color-mix(in srgb,var(--brand-primary) 20%,white);
  border-left:5px solid var(--brand-accent);
  border-radius:13px;
  background:var(--brand-primary-soft);
}
body.visual-pilot :is(#view-est-semana,#view-ent-semana) .ent-coach-av{
  background:var(--brand-primary);
  color:white;
}
body.visual-pilot :is(#view-est-semana,#view-ent-semana) .ent-ses-card{
  min-height:76px;
  padding:17px 18px;
  border-color:var(--card-border);
  border-radius:13px;
  background:var(--card-bg);
  box-shadow:var(--shadow-xs);
}
body.visual-pilot :is(#view-est-semana,#view-ent-semana) .ent-ses-card:hover{
  translate:0 -1px;
  box-shadow:var(--shadow-sm);
}
body.visual-pilot :is(#view-estudio-sesion,#view-entrenamiento-sesion) .ent-det-head{
  margin-bottom:18px;
  padding:28px 26px;
  border:1px solid color-mix(in srgb,var(--brand-accent) 55%,var(--brand-primary));
  border-left:7px solid var(--brand-accent);
  border-radius:15px;
  background:var(--brand-primary);
  color:white;
  box-shadow:var(--shadow-m);
}
body.visual-pilot :is(#view-estudio-sesion,#view-entrenamiento-sesion) :is(.ent-det-fecha,.ent-det-tit,.ent-det-sub){
  color:white;
}
body.visual-pilot :is(#view-estudio-sesion,#view-entrenamiento-sesion) .ent-det-tit{
  font-size:34px;
}
body.visual-pilot :is(#view-estudio-sesion,#view-entrenamiento-sesion) .ent-tip{
  margin-inline:0;
  border-color:color-mix(in srgb,var(--brand-accent) 42%,white);
  background:var(--gold-50);
}
body.visual-pilot :is(#view-estudio-sesion,#view-entrenamiento-sesion) .ent-bl{
  border:1px solid var(--card-border);
  border-radius:13px;
  box-shadow:var(--shadow-xs);
}
body.visual-pilot :is(#view-estudio-sesion,#view-entrenamiento-sesion) .ent-bl-h{
  background:var(--brand-primary) !important;
}
body.visual-pilot :is(#view-estudio-sesion,#view-entrenamiento-sesion) .ent-det-foot{
  left:var(--sidebar-w,0px);
  max-width:none;
  padding:18px max(20px,calc((100vw - var(--sidebar-w,0px) - 1180px)/2 + 34px));
  border-top:1px solid var(--card-border);
  background:color-mix(in srgb,var(--card-bg) 96%,transparent);
  box-shadow:0 -10px 28px rgba(15,23,42,.08);
  backdrop-filter:blur(12px);
}
body.visual-pilot :is(#view-estudio-sesion,#view-entrenamiento-sesion) :is(.ent-iniciar,.ent-marcar){
  min-height:50px;
  border-radius:10px;
}
body.visual-pilot #view-ent-player .ent-pl-card{
  border-color:color-mix(in srgb,var(--brand-primary) 22%,white);
  border-top:5px solid var(--brand-accent);
  border-radius:16px;
  box-shadow:var(--shadow-m);
}
body.visual-pilot #view-ent-progreso .ent-prog-intro{
  padding:16px 18px;
  border-left:5px solid var(--brand-accent);
  border-radius:11px;
  background:var(--brand-primary-soft);
  color:var(--brand-primary);
}
body.visual-pilot #view-ent-progreso .ent-prog-card{
  padding:20px;
  border-color:var(--card-border);
  border-radius:14px;
  box-shadow:var(--shadow-sm);
}

/* Onboarding de ambos planes */
body.visual-pilot :is(#onb-ent-overlay,#onb-est-overlay) .onb-card{
  border:1px solid color-mix(in srgb,var(--brand-primary) 24%,white);
  border-top:6px solid var(--brand-accent);
  border-radius:18px;
  box-shadow:0 24px 64px rgba(15,23,42,.22);
}
body.visual-pilot :is(#onb-ent-overlay,#onb-est-overlay) .onb-title{
  color:var(--brand-primary);
}
body.visual-pilot :is(#onb-ent-overlay,#onb-est-overlay) .onb-date-input{
  color:var(--brand-primary);
  -webkit-text-fill-color:var(--brand-primary);
  caret-color:var(--brand-primary);
  opacity:1;
  background:var(--surface-default);
  border-color:color-mix(in srgb,var(--brand-primary) 28%,white);
}
body.visual-pilot :is(#onb-ent-overlay,#onb-est-overlay) .onb-date-input:focus{
  border-color:var(--brand-primary);
  box-shadow:0 0 0 3px color-mix(in srgb,var(--brand-primary) 14%,transparent);
}
body.visual-pilot :is(#onb-ent-overlay,#onb-est-overlay) .onb-date-input::-webkit-datetime-edit{
  color:var(--brand-primary);
  opacity:1;
}
body.visual-pilot :is(#onb-ent-overlay,#onb-est-overlay) .onb-opt.selected{
  border-color:var(--brand-primary);
  background:var(--brand-primary-soft);
  color:var(--brand-primary);
  box-shadow:inset 4px 0 0 var(--brand-accent);
}
body.visual-pilot :is(#onb-ent-overlay,#onb-est-overlay) .onb-btn{
  border-radius:10px;
  background:var(--brand-primary);
  box-shadow:var(--shadow-sm);
}

@media (max-width:900px){
  body.visual-pilot #view-pro-falladas .fall-cards{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
  body.visual-pilot :is(#view-estudio-sesion,#view-entrenamiento-sesion) .ent-det-foot{
    left:0;
    padding-inline:18px;
  }
}

@media (max-width:640px){
  body.visual-pilot #view-pro-falladas{
    padding-bottom:36px;
  }
  body.visual-pilot #view-pro-falladas .conf-header{
    margin-top:18px;
    padding:18px 18px 18px 20px;
  }
  body.visual-pilot #view-pro-falladas .conf-header::after{
    display:none;
  }
  body.visual-pilot #view-pro-falladas .fall-cards{
    grid-template-columns:1fr;
  }
  body.visual-pilot #view-pro-falladas .fall-card{
    min-height:164px;
  }
  body.visual-pilot :is(
    #view-estudio,#view-est-semana,#view-estudio-sesion,
    #view-entrenamiento,#view-ent-semana,#view-entrenamiento-sesion,
    #view-ent-player,#view-ent-progreso
  ) .ent-bar{
    min-height:60px;
    padding:10px 12px;
    border-radius:0 0 11px 11px;
  }
  body.visual-pilot :is(
    #view-estudio,#view-est-semana,#view-estudio-sesion,
    #view-entrenamiento,#view-ent-semana,#view-entrenamiento-sesion,
    #view-ent-player,#view-ent-progreso
  ) .ent-scroll{
    padding:20px 14px 44px;
  }
  body.visual-pilot :is(#view-estudio,#view-entrenamiento) .ent-resumen{
    padding:19px 17px;
  }
  body.visual-pilot :is(#view-estudio,#view-entrenamiento) .ent-resumen-top{
    gap:12px;
  }
  body.visual-pilot :is(#view-estudio,#view-entrenamiento) .ent-resumen-apt{
    font-size:24px;
  }
  body.visual-pilot :is(#view-estudio,#view-entrenamiento) .ent-wk-card{
    padding:19px 17px;
  }
  body.visual-pilot :is(#view-estudio,#view-entrenamiento) .ent-wk-row{
    align-items:flex-start;
  }
  body.visual-pilot :is(#view-estudio,#view-entrenamiento) .ent-wk-dur{
    white-space:nowrap;
  }
  body.visual-pilot :is(#view-estudio-sesion,#view-entrenamiento-sesion) .ent-det-head{
    margin:0 0 14px;
    padding:22px 18px;
    border-radius:13px;
  }
  body.visual-pilot :is(#view-estudio-sesion,#view-entrenamiento-sesion) .ent-det-tit{
    font-size:29px;
  }
  body.visual-pilot :is(#view-estudio-sesion,#view-entrenamiento-sesion) .ent-det-body{
    padding-inline:0;
  }
  body.visual-pilot :is(#view-estudio-sesion,#view-entrenamiento-sesion) .ent-det-foot{
    gap:8px;
    padding:10px 12px calc(10px + env(safe-area-inset-bottom));
  }
  body.visual-pilot :is(#view-estudio-sesion,#view-entrenamiento-sesion) .ent-marcar{
    white-space:normal;
  }
}

@media (prefers-reduced-motion:reduce){
  body.visual-pilot #view-pro-falladas .fall-card,
  body.visual-pilot :is(#view-est-semana,#view-ent-semana) .ent-ses-card{
    transition:none;
  }
}

/* ==========================================================================
   AR-048 · F4 · LENGUA GC: ACENTO VISUAL COMÚN
   --------------------------------------------------------------------------
   Ortografía y Gramática conservan mecánicas y estados distintos, pero
   dejan de comunicar categorías mediante turquesa/morado. El acento de
   navegación es siempre institucional; correct/incorrect siguen en Status.
   ========================================================================== */

body.visual-pilot :is(#len-conf,#len-active) > div{
  --len-accent:var(--brand-primary) !important;
}

body.visual-pilot :is(#view-lengua-conf,#view-lengua-activo){
  color:var(--text-primary);
}

body.visual-pilot :is(#view-lengua-conf,#view-lengua-activo) .len-hero{
  border-color:var(--brand-border-subtle);
  box-shadow:var(--shadow-s);
}

body.visual-pilot :is(#view-lengua-conf,#view-lengua-activo) .len-hero::before,
body.visual-pilot :is(#view-lengua-conf,#view-lengua-activo) .len-hero-ic{
  background:var(--brand-primary);
}

body.visual-pilot :is(#view-lengua-conf,#view-lengua-activo) :is(
  .len-sec-lbl i,
  .len-example .demo-tag,
  .len-count
){
  color:var(--brand-primary);
}

body.visual-pilot :is(#view-lengua-conf,#view-lengua-activo) .len-progress > i{
  background:linear-gradient(90deg,var(--brand-primary),var(--brand-primary-hover));
}

body.visual-pilot :is(#view-lengua-conf,#view-lengua-activo) .len-example{
  color:var(--text-primary);
  background:var(--brand-primary-soft);
  border-color:var(--brand-border-subtle);
}

body.visual-pilot :is(#view-lengua-conf,#view-lengua-activo) .len-chip.n{
  color:var(--brand-primary);
  background:var(--brand-primary-soft);
  border:1px solid var(--brand-border-subtle);
}

body.visual-pilot #view-lengua-activo .len-frase{
  color:var(--text-primary);
  border-color:var(--card-border);
  box-shadow:var(--shadow-xs);
}

body.visual-pilot #view-lengua-activo .len-gram-opt.sel{
  color:var(--brand-primary-strong);
  background:var(--brand-primary-soft);
  border-color:var(--brand-primary);
}

body.visual-pilot :is(#view-lengua-conf,#view-lengua-activo) .len-btn.p{
  color:var(--neutral-0);
  background:var(--brand-primary);
}

body.visual-pilot :is(#view-lengua-conf,#view-lengua-activo) .len-btn.p:hover{
  background:var(--brand-primary-hover);
}

body.visual-pilot :is(#view-lengua-conf,#view-lengua-activo) .len-btn.g{
  color:var(--brand-primary);
  background:var(--card-bg);
  border-color:var(--brand-border-subtle);
}

body.visual-pilot :is(#view-lengua-conf,#view-lengua-activo) :is(
  .len-word,
  .len-gram-opt,
  .len-btn
):focus-visible{
  outline:3px solid var(--focus-ring);
  outline-offset:3px;
}

/* Selección: tres decisiones legibles y una acción final inequívoca. */
body.visual-pilot #view-lengua-conf{
  padding-bottom:104px;
}

body.visual-pilot #view-lengua-conf #len-conf > div{
  counter-reset:gc-lengua-step;
}

body.visual-pilot #view-lengua-conf .len-hero{
  min-height:132px;
  padding:24px 28px;
  color:var(--neutral-0);
  background:var(--brand-primary-strong);
  border:0;
  border-left:6px solid var(--brand-accent);
  box-shadow:0 16px 36px rgba(4,48,27,.14);
}

body.visual-pilot #view-lengua-conf .len-hero::before{
  display:none;
}

body.visual-pilot #view-lengua-conf .len-hero-ic{
  color:var(--brand-primary-strong);
  background:var(--brand-accent);
  box-shadow:none;
}

body.visual-pilot #view-lengua-conf .len-hero-tx h3{
  color:var(--neutral-0);
  font-size:clamp(28px,4vw,36px);
}

body.visual-pilot #view-lengua-conf .len-hero-tx p{
  max-width:620px;
  color:rgba(255,255,255,.78);
  font-size:15px;
  line-height:1.5;
}

body.visual-pilot #view-lengua-conf .len-example{
  position:relative;
  margin:18px 0 28px;
  padding:18px 20px 18px 22px;
  background:var(--card-bg);
  border:1px solid var(--card-border);
  border-left:4px solid var(--brand-accent);
  border-radius:12px;
  box-shadow:var(--shadow-xs);
}

body.visual-pilot #view-lengua-conf .len-sec-lbl{
  counter-increment:gc-lengua-step;
  min-height:34px;
  margin:22px 0 10px;
  color:var(--brand-primary-strong);
  font-family:var(--font-display);
  font-size:16px;
  letter-spacing:.08em;
}

body.visual-pilot #view-lengua-conf .len-sec-lbl::before{
  content:counter(gc-lengua-step);
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:32px;
  height:32px;
  margin-right:3px;
  color:var(--neutral-0);
  background:var(--brand-primary);
  border-radius:50%;
  font-family:var(--font-body);
  font-size:14px;
  font-weight:800;
  letter-spacing:0;
}

body.visual-pilot #view-lengua-conf .len-sec-lbl > i{
  display:none;
}

body.visual-pilot #view-lengua-conf .len-conf-opt{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:12px;
  margin-bottom:4px;
}

body.visual-pilot #view-lengua-conf #len-numopts{
  grid-template-columns:repeat(4,minmax(0,1fr));
}

body.visual-pilot #view-lengua-conf .len-conf-opt .ing-modo-btn{
  min-width:0;
  min-height:62px;
  padding:14px 16px;
  border-color:var(--card-border);
  border-radius:11px;
  box-shadow:var(--shadow-xs);
}

body.visual-pilot #view-lengua-conf .len-conf-opt .ing-modo-btn.active{
  color:var(--neutral-0);
  background:var(--brand-primary);
  border-color:var(--brand-primary);
  box-shadow:0 8px 20px rgba(4,48,27,.12);
}

body.visual-pilot #view-lengua-conf > #len-conf > div > .len-actions{
  position:sticky;
  z-index:20;
  bottom:0;
  margin:28px -18px -104px;
  padding:14px 18px calc(14px + env(safe-area-inset-bottom));
  background:rgba(255,255,255,.96);
  border-top:1px solid var(--card-border);
  box-shadow:0 -10px 28px rgba(4,48,27,.08);
  backdrop-filter:blur(12px);
}

body.visual-pilot #view-lengua-conf > #len-conf > div > .len-actions .len-btn{
  width:100%;
  min-height:54px;
  justify-content:center;
  font-family:var(--font-display);
  font-size:18px;
  letter-spacing:.05em;
  text-transform:uppercase;
}

/* Explicación: diagnóstico → corrección → regla, sin bloque cromático plano. */
body.visual-pilot #view-lengua-activo .len-fb{
  position:relative;
  overflow:hidden;
  margin-top:18px;
  padding:0;
  color:var(--text-primary);
  background:var(--card-bg);
  border:1px solid var(--card-border);
  border-left:5px solid var(--status-incorrect-fg);
  border-radius:13px;
  box-shadow:var(--shadow-s);
}

body.visual-pilot #view-lengua-activo .len-fb.good{
  border-color:var(--status-correct-border);
  border-left-color:var(--status-correct-fg);
}

body.visual-pilot #view-lengua-activo .len-fb.bad{
  border-color:var(--status-incorrect-border);
  border-left-color:var(--status-incorrect-fg);
}

body.visual-pilot #view-lengua-activo .len-fb .lf-h{
  min-height:48px;
  margin:0;
  padding:13px 16px;
  color:var(--status-incorrect-fg);
  background:var(--status-incorrect-bg);
  border-bottom:1px solid var(--status-incorrect-border);
  font-size:15px;
}

body.visual-pilot #view-lengua-activo .len-fb.good .lf-h{
  color:var(--status-correct-fg);
  background:var(--status-correct-bg);
  border-bottom-color:var(--status-correct-border);
}

body.visual-pilot #view-lengua-activo .len-fb > :not(.lf-h):not(.len-corr){
  padding:15px 18px;
}

body.visual-pilot #view-lengua-activo .len-corr{
  margin:0;
  padding:15px 18px;
  border-bottom:1px solid var(--card-border);
  font-size:15px;
}

body.visual-pilot #view-lengua-activo .len-corr:last-child{
  border-bottom:0;
}

body.visual-pilot #view-lengua-activo .len-corr .cx{
  color:var(--status-incorrect-fg);
}

body.visual-pilot #view-lengua-activo .len-corr .cok{
  color:var(--status-correct-fg);
}

body.visual-pilot #view-lengua-activo .len-rule{
  margin:10px 0 0;
  padding:12px 14px;
  color:var(--text-secondary);
  background:var(--brand-primary-soft);
  border-left:3px solid var(--brand-accent);
  border-radius:0 8px 8px 0;
}

body.visual-pilot #view-lengua-activo .len-actions{
  margin-top:16px;
}

body.visual-pilot #view-lengua-activo .len-actions .len-btn.p{
  min-width:190px;
  justify-content:center;
  box-shadow:0 8px 18px rgba(4,48,27,.10);
}

@media (max-width:560px){
  body.visual-pilot #view-lengua-conf{
    padding-bottom:92px;
  }
  body.visual-pilot #view-lengua-conf .len-hero{
    min-height:0;
    padding:20px;
  }
  body.visual-pilot #view-lengua-conf .len-example{
    margin-bottom:24px;
  }
  body.visual-pilot #view-lengua-conf .len-conf-opt,
  body.visual-pilot #view-lengua-conf #len-numopts{
    gap:8px;
  }
  body.visual-pilot #view-lengua-conf .len-conf-opt .ing-modo-btn{
    min-height:56px;
    padding:10px 8px;
  }
  body.visual-pilot #view-lengua-conf > #len-conf > div > .len-actions{
    margin-right:-12px;
    margin-bottom:-92px;
    margin-left:-12px;
    padding-right:12px;
    padding-left:12px;
  }
  body.visual-pilot #view-lengua-activo .len-corr{
    padding:14px;
  }
  body.visual-pilot #view-lengua-activo .len-actions .len-btn.p{
    width:100%;
  }
}

/* ==========================================================================
   AR-048 · F2 · CONFIGURACIÓN GC COMO SECUENCIA DE DECISIÓN
   --------------------------------------------------------------------------
   El marcado, los controles y su comportamiento permanecen intactos. Esta
   capa sólo jerarquiza la vista unificada de Teoría (Repaso/Test).
   ========================================================================== */

body.visual-pilot #view-pro-repaso-conf{
  counter-reset:gc-config-step;
  padding-bottom:112px;
}
body.visual-pilot #view-pro-repaso-conf > .ayuda-box{
  padding:12px 18px;
  margin-bottom:18px;
  background:var(--card-bg);
  border-color:var(--brand-border-subtle);
  border-left-color:var(--brand-primary);
  box-shadow:var(--shadow-xs);
}
body.visual-pilot #view-pro-repaso-conf > .ayuda-box .ayuda-pasos{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:6px 24px;
  padding-left:22px;
}
body.visual-pilot #view-pro-repaso-conf > .ayuda-box .ayuda-pasos li{
  margin:0;
  font-size:12.5px;
}
body.visual-pilot #view-pro-repaso-conf .btn-volver{
  margin-bottom:16px;
  background:transparent;
  color:var(--brand-primary);
  border-color:var(--brand-border-subtle);
  box-shadow:none;
}
body.visual-pilot #view-pro-repaso-conf .btn-volver:hover{
  background:var(--brand-primary-soft);
  border-color:var(--brand-primary);
  transform:translateX(-2px);
}
body.visual-pilot #view-pro-repaso-conf .page-header{
  margin-bottom:24px;
  padding-bottom:18px;
}
body.visual-pilot #view-pro-repaso-conf .page-header__title{
  font-size:32px;
}

/* Numeración puramente visual: cuando la cantidad está oculta en Repaso, el
   contador visible continúa 1→2 sin modificar el DOM ni el estado. */
body.visual-pilot #view-pro-repaso-conf .conf-section-label{
  counter-increment:gc-config-step;
  display:flex;
  align-items:center;
  gap:10px;
  margin:26px 0 12px;
  color:var(--text-primary);
  font-size:12px;
  letter-spacing:.08em;
}
body.visual-pilot #view-pro-repaso-conf .conf-section-label::before{
  content:counter(gc-config-step);
  display:grid;
  place-items:center;
  width:28px;
  height:28px;
  flex:0 0 28px;
  border-radius:50%;
  background:var(--brand-primary);
  color:var(--neutral-0);
  font-family:var(--font-heading);
  font-size:12px;
  font-weight:800;
  letter-spacing:0;
}
body.visual-pilot #view-pro-repaso-conf .conf-section-label .ing-selall,
body.visual-pilot #view-pro-repaso-conf .conf-section-label > .ing-selall{
  margin-left:auto;
}

/* La decisión de modo es el protagonista de configuración. */
body.visual-pilot #view-pro-repaso-conf .teo-modo-cards{
  gap:16px;
  margin:0 0 26px;
}
body.visual-pilot #view-pro-repaso-conf .modo-card{
  position:relative;
  min-height:172px;
  padding:22px 22px 20px;
  gap:10px;
  background:var(--card-bg);
  color:var(--text-primary);
  border:1px solid var(--card-border);
  border-top:4px solid transparent;
  border-radius:var(--card-radius);
  box-shadow:var(--shadow-xs);
}
body.visual-pilot #view-pro-repaso-conf .modo-card::after{
  content:'';
  position:absolute;
  top:18px;
  right:18px;
  width:18px;
  height:18px;
  border:2px solid var(--neutral-300);
  border-radius:50%;
  background:var(--card-bg);
}
body.visual-pilot #view-pro-repaso-conf .modo-card:hover{
  border-color:var(--brand-primary);
  border-top-color:var(--brand-primary);
  box-shadow:var(--shadow-s);
}
body.visual-pilot #view-pro-repaso-conf .modo-card.active{
  background:var(--brand-primary-strong);
  color:var(--neutral-0);
  border-color:var(--brand-primary-strong);
  border-top-color:var(--brand-accent);
  box-shadow:var(--shadow-m);
}
body.visual-pilot #view-pro-repaso-conf .modo-card.active::after{
  border:5px solid var(--brand-accent);
  background:var(--brand-primary-strong);
}
body.visual-pilot #view-pro-repaso-conf .modo-card .mc-top{
  padding-right:34px;
  font-size:20px;
}
body.visual-pilot #view-pro-repaso-conf .modo-card .mc-desc{
  max-width:62ch;
  font-size:13px;
  line-height:1.6;
  color:var(--text-secondary);
}
body.visual-pilot #view-pro-repaso-conf .modo-card.active .mc-desc{
  color:rgba(255,255,255,.82);
}

/* Cantidad: opciones compactas con un único estado seleccionado. */
body.visual-pilot #view-pro-repaso-conf .ing-opts-row{
  display:grid;
  grid-template-columns:repeat(4,minmax(76px,1fr));
  gap:10px;
  max-width:620px;
}
body.visual-pilot #view-pro-repaso-conf .ing-opt{
  display:grid;
  place-items:center;
  min-height:48px;
  padding:10px 14px;
  border:1px solid var(--card-border);
  border-radius:10px;
  background:var(--card-bg);
  color:var(--text-primary);
  box-shadow:var(--shadow-xs);
}
body.visual-pilot #view-pro-repaso-conf .ing-opt:hover{
  border-color:var(--brand-primary);
}
body.visual-pilot #view-pro-repaso-conf .ing-opt.sel{
  background:var(--brand-primary);
  color:var(--neutral-0);
  border-color:var(--brand-primary);
  box-shadow:var(--shadow-s);
}

/* Temario: densidad legible y selección inequívoca sin alterar las filas. */
body.visual-pilot #view-pro-repaso-conf .ing-selall{
  min-height:34px;
  padding:7px 12px;
  border:1px solid var(--brand-border-subtle);
  border-radius:9px;
  background:var(--card-bg);
  color:var(--brand-primary);
  text-decoration:none;
}
body.visual-pilot #view-pro-repaso-conf .ing-selall:hover{
  border-color:var(--brand-primary);
  background:var(--brand-primary-soft);
}
body.visual-pilot #view-pro-repaso-conf .ing-temas-list{
  gap:8px;
}
body.visual-pilot #view-pro-repaso-conf .ing-tema-row{
  min-height:70px;
  padding:14px 16px;
  border-color:var(--card-border);
  border-radius:11px;
  box-shadow:var(--shadow-xs);
}
body.visual-pilot #view-pro-repaso-conf .ing-tema-row:hover{
  border-color:var(--brand-primary);
  box-shadow:var(--shadow-s);
}
body.visual-pilot #view-pro-repaso-conf .ing-tema-row.sel{
  background:var(--brand-primary-soft);
  border-color:var(--brand-primary);
  box-shadow:inset 4px 0 0 var(--brand-primary),var(--shadow-xs);
}
body.visual-pilot #view-pro-repaso-conf .ing-tema-num{
  color:var(--brand-primary);
}
body.visual-pilot #view-pro-repaso-conf .ing-tema-check{
  border-color:var(--neutral-300);
}
body.visual-pilot #view-pro-repaso-conf .ing-tema-row.sel .ing-tema-check{
  background:var(--brand-primary);
  border-color:var(--brand-primary);
}

/* CTA persistente autorizada por producto. El espacio inferior de la vista
   permite desplazar el último tema completamente por encima de este dock. */
body.visual-pilot #view-pro-repaso-conf > .btn-start{
  position:sticky;
  bottom:16px;
  z-index:8;
  width:100%;
  min-height:54px;
  margin-top:24px !important;
  background:var(--brand-primary) !important;
  color:var(--neutral-0);
  border:1px solid var(--brand-primary);
  border-radius:12px;
  outline:10px solid var(--app-bg);
  box-shadow:0 10px 28px rgba(6,55,31,.22);
  font-size:15px;
}
body.visual-pilot #view-pro-repaso-conf > .btn-start:hover{
  background:var(--brand-primary-hover) !important;
}
body.visual-pilot #view-pro-repaso-conf > .btn-start:disabled{
  background:var(--neutral-500) !important;
  border-color:var(--neutral-500);
  box-shadow:none;
}

@media (max-width:760px){
  body.visual-pilot #view-pro-repaso-conf > .ayuda-box .ayuda-pasos{
    grid-template-columns:1fr;
  }
  body.visual-pilot #view-pro-repaso-conf .page-header__title{
    font-size:27px;
  }
  body.visual-pilot #view-pro-repaso-conf .teo-modo-cards{
    flex-direction:column;
  }
  body.visual-pilot #view-pro-repaso-conf .modo-card{
    min-height:0;
    padding:18px;
  }
}

@media (max-width:480px){
  body.visual-pilot #view-pro-repaso-conf .ing-opts-row{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
  body.visual-pilot #view-pro-repaso-conf .conf-section-label{
    align-items:flex-start;
    flex-wrap:wrap;
  }
  body.visual-pilot #view-pro-repaso-conf .conf-section-label .ing-selall,
  body.visual-pilot #view-pro-repaso-conf .conf-section-label > .ing-selall{
    flex:0 0 calc(100% - 38px);
    width:calc(100% - 38px);
    margin-left:38px;
  }
  body.visual-pilot #view-pro-repaso-conf .ing-tema-row{
    align-items:flex-start;
    min-height:0;
    padding:13px 12px;
    gap:10px;
  }
  body.visual-pilot #view-pro-repaso-conf .ing-tema-num{
    min-width:36px;
    font-size:19px;
  }
  body.visual-pilot #view-pro-repaso-conf .ing-tema-txt{
    font-size:12.5px;
  }
  body.visual-pilot #view-pro-repaso-conf > .btn-start{
    bottom:10px;
    outline-width:8px;
  }
}

@media (prefers-reduced-motion:reduce){
  body.visual-pilot #view-pro-repaso-conf .modo-card,
  body.visual-pilot #view-pro-repaso-conf .ing-opt,
  body.visual-pilot #view-pro-repaso-conf .ing-tema-row,
  body.visual-pilot #view-pro-repaso-conf .btn-volver{
    transition:none;
  }
}

/* ==========================================================================
   AR-048 · F2 · EXTENSIÓN A CONFIGURADORES ACADÉMICOS GC
   --------------------------------------------------------------------------
   Teoría — Exámenes Oficiales, Inglés e Inglés — Exámenes Oficiales adoptan
   la misma secuencia visual. No se alteran controles, handlers ni estado.
   ========================================================================== */

body.visual-pilot :is(#view-eteo-conf,#view-eing-conf),
body.visual-pilot #view-pro-ingles #ing-tab-test{
  counter-reset:gc-config-step;
  padding-bottom:112px;
}
body.visual-pilot #view-pro-ingles #ing-tab-test{
  counter-reset:gc-config-step 1;
}
body.visual-pilot :is(#view-eteo-conf,#view-eing-conf,#view-pro-ingles) .btn-volver{
  margin-bottom:16px;
  background:transparent;
  color:var(--brand-primary);
  border-color:var(--brand-border-subtle);
  box-shadow:none;
}
body.visual-pilot :is(#view-eteo-conf,#view-eing-conf,#view-pro-ingles) .btn-volver:hover{
  background:var(--brand-primary-soft);
  border-color:var(--brand-primary);
  transform:translateX(-2px);
}
body.visual-pilot :is(#view-eteo-conf,#view-eing-conf,#view-pro-ingles) > .conf-header{
  margin-bottom:24px;
  padding-bottom:18px;
  border-bottom:1px solid var(--neutral-200);
}
body.visual-pilot :is(#view-eteo-conf,#view-eing-conf,#view-pro-ingles) > .conf-header .conf-title{
  color:var(--brand-primary);
  font-size:32px;
}
body.visual-pilot :is(#view-eteo-conf,#view-eing-conf,#view-pro-ingles) > .conf-header .conf-sub{
  margin-top:6px;
  color:var(--text-secondary);
}

/* Pasos visibles del configurador. El contador pertenece a cada vista y no
   participa en la lógica de selección. */
body.visual-pilot :is(#view-eteo-conf,#view-eing-conf) .conf-section-label,
body.visual-pilot #view-pro-ingles #ing-tab-test .conf-section-label{
  counter-increment:gc-config-step;
  display:flex;
  align-items:center;
  gap:10px;
  margin:26px 0 12px;
  color:var(--text-primary);
  font-size:12px;
  letter-spacing:.08em;
}
body.visual-pilot :is(#view-eteo-conf,#view-eing-conf) .conf-section-label::before,
body.visual-pilot #view-pro-ingles #ing-tab-test .conf-section-label::before{
  content:counter(gc-config-step);
  display:grid;
  place-items:center;
  width:28px;
  height:28px;
  flex:0 0 28px;
  border-radius:50%;
  background:var(--brand-primary);
  color:var(--neutral-0);
  font-family:var(--font-heading);
  font-size:12px;
  font-weight:800;
  letter-spacing:0;
}
body.visual-pilot :is(#view-eteo-conf,#view-eing-conf,#view-pro-ingles) .conf-section-label .ing-selall{
  margin-left:auto;
}

/* Decisión de modo en los dos bancos oficiales. */
body.visual-pilot :is(#view-eteo-conf,#view-eing-conf) .teo-modo-cards{
  gap:16px;
  margin:0 0 26px;
}
body.visual-pilot :is(#view-eteo-conf,#view-eing-conf) .modo-card{
  position:relative;
  min-height:172px;
  padding:22px 22px 20px;
  gap:10px;
  background:var(--card-bg);
  color:var(--text-primary);
  border:1px solid var(--card-border);
  border-top:4px solid transparent;
  border-radius:var(--card-radius);
  box-shadow:var(--shadow-xs);
}
body.visual-pilot :is(#view-eteo-conf,#view-eing-conf) .modo-card::after{
  content:'';
  position:absolute;
  top:18px;
  right:18px;
  width:18px;
  height:18px;
  border:2px solid var(--neutral-300);
  border-radius:50%;
  background:var(--card-bg);
}
body.visual-pilot :is(#view-eteo-conf,#view-eing-conf) .modo-card:hover{
  border-color:var(--brand-primary);
  border-top-color:var(--brand-primary);
  box-shadow:var(--shadow-s);
}
body.visual-pilot :is(#view-eteo-conf,#view-eing-conf) .modo-card.active{
  background:var(--brand-primary-strong);
  color:var(--neutral-0);
  border-color:var(--brand-primary-strong);
  border-top-color:var(--brand-accent);
  box-shadow:var(--shadow-m);
}
body.visual-pilot :is(#view-eteo-conf,#view-eing-conf) .modo-card.active::after{
  border:5px solid var(--brand-accent);
  background:var(--brand-primary-strong);
}
body.visual-pilot :is(#view-eteo-conf,#view-eing-conf) .modo-card .mc-top{
  padding-right:34px;
  font-size:20px;
}
body.visual-pilot :is(#view-eteo-conf,#view-eing-conf) .modo-card .mc-desc{
  max-width:62ch;
  color:var(--text-secondary);
  font-size:13px;
  line-height:1.6;
}
body.visual-pilot :is(#view-eteo-conf,#view-eing-conf) .modo-card.active .mc-desc{
  color:rgba(255,255,255,.82);
}

/* Inglés conserva sus pestañas Guías/Test y recibe una decisión de modo más
   compacta porque sus botones no contienen descripción. */
body.visual-pilot #view-pro-ingles .ing-tabbar{
  gap:8px;
  padding:5px;
  margin-bottom:20px;
  border:1px solid var(--brand-border-subtle);
  border-radius:12px;
  background:var(--brand-primary-soft);
}
body.visual-pilot #view-pro-ingles .ing-tab-btn{
  min-height:44px;
  border-radius:9px;
}
body.visual-pilot #view-pro-ingles .ing-tab-btn.active{
  background:var(--brand-primary);
  color:var(--neutral-0);
  box-shadow:var(--shadow-s);
}
body.visual-pilot #view-pro-ingles #ing-tab-test > div:first-child{
  display:grid !important;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:12px !important;
  margin-bottom:8px !important;
}
body.visual-pilot #view-pro-ingles #ing-tab-test > div:first-child::before{
  content:'1';
  grid-column:1;
  grid-row:1;
  display:grid;
  place-items:center;
  width:28px;
  height:28px;
  border-radius:50%;
  background:var(--brand-primary);
  color:var(--neutral-0);
  font-family:var(--font-heading);
  font-size:12px;
  font-weight:800;
  letter-spacing:0;
}
body.visual-pilot #view-pro-ingles #ing-tab-test > div:first-child::after{
  content:'¿CÓMO QUIERES PRACTICAR?';
  grid-column:1 / -1;
  grid-row:1;
  align-self:center;
  padding-left:38px;
  color:var(--text-primary);
  font-family:var(--font-heading);
  font-size:12px;
  font-weight:800;
  letter-spacing:.08em;
}
body.visual-pilot #view-pro-ingles #ing-tab-test > div:first-child .ing-modo-btn{
  min-height:58px;
  justify-content:flex-start;
  padding:14px 18px;
  background:var(--card-bg);
  color:var(--text-primary);
  border:1px solid var(--card-border);
  border-radius:11px;
  box-shadow:var(--shadow-xs);
}
body.visual-pilot #view-pro-ingles #ing-tab-test > div:first-child .ing-modo-btn:first-of-type{
  grid-column:1;
  grid-row:2;
}
body.visual-pilot #view-pro-ingles #ing-tab-test > div:first-child .ing-modo-btn:last-of-type{
  grid-column:2;
  grid-row:2;
}
body.visual-pilot #view-pro-ingles #ing-tab-test > div:first-child .ing-modo-btn.active{
  background:var(--brand-primary-strong);
  color:var(--neutral-0);
  border-color:var(--brand-primary-strong);
  box-shadow:var(--shadow-m);
}

/* Opciones, listas y selección comparten el mismo contrato visual. */
body.visual-pilot :is(#view-eteo-conf,#view-eing-conf,#view-pro-ingles) .ing-opts-row{
  display:grid;
  grid-template-columns:repeat(4,minmax(76px,1fr));
  gap:10px;
  max-width:720px;
}
body.visual-pilot #view-pro-ingles #ing-dificultad{
  grid-template-columns:repeat(5,minmax(90px,1fr));
  max-width:900px;
}
body.visual-pilot :is(#view-eteo-conf,#view-eing-conf,#view-pro-ingles) .ing-opt{
  display:grid;
  place-items:center;
  min-height:48px;
  padding:10px 14px;
  background:var(--card-bg);
  color:var(--text-primary);
  border:1px solid var(--card-border);
  border-radius:10px;
  box-shadow:var(--shadow-xs);
}
body.visual-pilot :is(#view-eteo-conf,#view-eing-conf,#view-pro-ingles) .ing-opt:hover{
  border-color:var(--brand-primary);
}
body.visual-pilot :is(#view-eteo-conf,#view-eing-conf,#view-pro-ingles) .ing-opt.sel{
  background:var(--brand-primary);
  color:var(--neutral-0);
  border-color:var(--brand-primary);
  box-shadow:var(--shadow-s);
}
body.visual-pilot :is(#view-eteo-conf,#view-eing-conf,#view-pro-ingles) .ing-selall{
  min-height:34px;
  padding:7px 12px;
  border:1px solid var(--brand-border-subtle);
  border-radius:9px;
  background:var(--card-bg);
  color:var(--brand-primary);
  text-decoration:none;
}
body.visual-pilot :is(#view-eteo-conf,#view-eing-conf,#view-pro-ingles) .ing-selall:hover{
  border-color:var(--brand-primary);
  background:var(--brand-primary-soft);
}
body.visual-pilot :is(#view-eteo-conf,#view-eing-conf,#view-pro-ingles) .ing-temas-list{
  gap:8px;
}
body.visual-pilot :is(#view-eteo-conf,#view-eing-conf,#view-pro-ingles) .ing-tema-row{
  min-height:70px;
  padding:14px 16px;
  border-color:var(--card-border);
  border-radius:11px;
  box-shadow:var(--shadow-xs);
}
body.visual-pilot :is(#view-eteo-conf,#view-eing-conf,#view-pro-ingles) .ing-tema-row:hover{
  border-color:var(--brand-primary);
  box-shadow:var(--shadow-s);
}
body.visual-pilot :is(#view-eteo-conf,#view-eing-conf,#view-pro-ingles) .ing-tema-row.sel{
  background:var(--brand-primary-soft);
  border-color:var(--brand-primary);
  box-shadow:inset 4px 0 0 var(--brand-primary),var(--shadow-xs);
}
body.visual-pilot :is(#view-eteo-conf,#view-eing-conf,#view-pro-ingles) .ing-tema-num{
  color:var(--brand-primary);
}
body.visual-pilot :is(#view-eteo-conf,#view-eing-conf,#view-pro-ingles) .ing-tema-check{
  border-color:var(--neutral-300);
}
body.visual-pilot :is(#view-eteo-conf,#view-eing-conf,#view-pro-ingles) .ing-tema-row.sel .ing-tema-check{
  background:var(--brand-primary);
  border-color:var(--brand-primary);
}

/* Acción persistente en las tres extensiones de F2. */
body.visual-pilot :is(#view-eteo-conf,#view-eing-conf) > .btn-start,
body.visual-pilot #view-pro-ingles #ing-tab-test > .btn-start{
  position:sticky;
  bottom:16px;
  z-index:8;
  width:100%;
  min-height:54px;
  margin-top:24px !important;
  background:var(--brand-primary) !important;
  color:var(--neutral-0);
  border:1px solid var(--brand-primary);
  border-radius:12px;
  outline:10px solid var(--app-bg);
  box-shadow:0 10px 28px rgba(6,55,31,.22);
  font-size:15px;
}
body.visual-pilot :is(#view-eteo-conf,#view-eing-conf) > .btn-start:hover,
body.visual-pilot #view-pro-ingles #ing-tab-test > .btn-start:hover{
  background:var(--brand-primary-hover) !important;
}

@media (max-width:760px){
  body.visual-pilot :is(#view-eteo-conf,#view-eing-conf,#view-pro-ingles) > .conf-header .conf-title{
    font-size:27px;
  }
  body.visual-pilot :is(#view-eteo-conf,#view-eing-conf) .teo-modo-cards{
    flex-direction:column;
  }
  body.visual-pilot :is(#view-eteo-conf,#view-eing-conf) .modo-card{
    min-height:0;
    padding:18px;
  }
  body.visual-pilot #view-pro-ingles #ing-dificultad{
    grid-template-columns:repeat(3,minmax(0,1fr));
  }
}

@media (max-width:480px){
  body.visual-pilot :is(#view-eteo-conf,#view-eing-conf,#view-pro-ingles) .ing-opts-row,
  body.visual-pilot #view-pro-ingles #ing-dificultad{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
  body.visual-pilot #view-pro-ingles #ing-tab-test > div:first-child{
    grid-template-columns:1fr;
  }
  body.visual-pilot #view-pro-ingles #ing-tab-test > div:first-child .ing-modo-btn:first-of-type{
    grid-column:1;
    grid-row:2;
  }
  body.visual-pilot #view-pro-ingles #ing-tab-test > div:first-child .ing-modo-btn:last-of-type{
    grid-column:1;
    grid-row:3;
  }
  body.visual-pilot :is(#view-eteo-conf,#view-eing-conf) .conf-section-label,
  body.visual-pilot #view-pro-ingles #ing-tab-test .conf-section-label{
    align-items:flex-start;
    flex-wrap:wrap;
  }
  body.visual-pilot :is(#view-eteo-conf,#view-eing-conf,#view-pro-ingles) .conf-section-label .ing-selall{
    flex:0 0 calc(100% - 38px);
    width:calc(100% - 38px);
    margin-left:38px;
  }
  body.visual-pilot :is(#view-eteo-conf,#view-eing-conf,#view-pro-ingles) .ing-tema-row{
    align-items:flex-start;
    min-height:0;
    padding:13px 12px;
    gap:10px;
  }
  body.visual-pilot :is(#view-eteo-conf,#view-eing-conf,#view-pro-ingles) .ing-tema-num{
    min-width:36px;
    font-size:19px;
  }
  body.visual-pilot :is(#view-eteo-conf,#view-eing-conf,#view-pro-ingles) .ing-tema-txt{
    font-size:12.5px;
  }
  body.visual-pilot :is(#view-eteo-conf,#view-eing-conf) > .btn-start,
  body.visual-pilot #view-pro-ingles #ing-tab-test > .btn-start{
    bottom:10px;
    outline-width:8px;
  }
}

@media (prefers-reduced-motion:reduce){
  body.visual-pilot :is(#view-eteo-conf,#view-eing-conf,#view-pro-ingles) :is(.modo-card,.ing-modo-btn,.ing-opt,.ing-tema-row,.btn-volver){
    transition:none;
  }
}

/* ==========================================================================
   AR-048 · F2 · CATÁLOGO DE EXÁMENES OFICIALES GC
   --------------------------------------------------------------------------
   Exámenes Temario e Inglés conservan convocatorias, progreso, reserva y
   handlers. Esta capa sólo ordena modo → convocatoria → empezar.
   ========================================================================== */

body.visual-pilot :is(#view-examenes-teo,#view-examenes-ing){
  counter-reset:gc-config-step;
  padding-bottom:112px;
}
body.visual-pilot :is(#view-examenes-teo,#view-examenes-ing) .btn-volver{
  margin-bottom:16px;
  background:transparent;
  color:var(--brand-primary);
  border-color:var(--brand-border-subtle);
  box-shadow:none;
}
body.visual-pilot :is(#view-examenes-teo,#view-examenes-ing) .btn-volver:hover{
  background:var(--brand-primary-soft);
  border-color:var(--brand-primary);
  transform:translateX(-2px);
}
body.visual-pilot :is(#view-examenes-teo,#view-examenes-ing) > .conf-header{
  margin-bottom:24px;
  padding-bottom:18px;
  border-bottom:1px solid var(--neutral-200);
}
body.visual-pilot :is(#view-examenes-teo,#view-examenes-ing) > .conf-header .conf-title{
  color:var(--brand-primary);
  font-size:32px;
}
body.visual-pilot :is(#view-examenes-teo,#view-examenes-ing) > .conf-header .conf-sub{
  margin-top:6px;
  color:var(--text-secondary);
}
body.visual-pilot :is(#view-examenes-teo,#view-examenes-ing) .conf-section-label{
  counter-increment:gc-config-step;
  display:flex;
  align-items:center;
  gap:10px;
  margin:26px 0 12px;
  color:var(--text-primary);
  font-size:12px;
  letter-spacing:.08em;
}
body.visual-pilot :is(#view-examenes-teo,#view-examenes-ing) .conf-section-label::before{
  content:counter(gc-config-step);
  display:grid;
  place-items:center;
  width:28px;
  height:28px;
  flex:0 0 28px;
  border-radius:50%;
  background:var(--brand-primary);
  color:var(--neutral-0);
  font-family:var(--font-heading);
  font-size:12px;
  font-weight:800;
  letter-spacing:0;
}

body.visual-pilot :is(#view-examenes-teo,#view-examenes-ing) .ex-modo-row{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:12px;
  margin-bottom:8px;
}
body.visual-pilot :is(#view-examenes-teo,#view-examenes-ing) .ex-modo-btn{
  min-height:58px;
  justify-content:flex-start;
  padding:14px 18px;
  background:var(--card-bg);
  color:var(--text-primary);
  border:1px solid var(--card-border);
  border-radius:11px;
  box-shadow:var(--shadow-xs);
}
body.visual-pilot :is(#view-examenes-teo,#view-examenes-ing) .ex-modo-btn:hover{
  border-color:var(--brand-primary);
  box-shadow:var(--shadow-s);
}
body.visual-pilot :is(#view-examenes-teo,#view-examenes-ing) .ex-modo-btn.active{
  background:var(--brand-primary-strong);
  color:var(--neutral-0);
  border-color:var(--brand-primary-strong);
  box-shadow:var(--shadow-m);
}

body.visual-pilot :is(#view-examenes-teo,#view-examenes-ing) .ex-lista{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:12px;
  margin-bottom:18px;
}
body.visual-pilot :is(#view-examenes-teo,#view-examenes-ing) .ex-lista > .teo-prog,
body.visual-pilot :is(#view-examenes-teo,#view-examenes-ing) .ex-lista > div[style]{
  grid-column:1 / -1;
}
body.visual-pilot :is(#view-examenes-teo,#view-examenes-ing) .ex-card{
  min-width:0;
  min-height:104px;
  padding:16px;
  border:1px solid var(--card-border);
  border-top:3px solid transparent;
  border-radius:var(--card-radius);
  background:var(--card-bg);
  box-shadow:var(--shadow-xs);
}
body.visual-pilot :is(#view-examenes-teo,#view-examenes-ing) .ex-card:hover{
  border-color:var(--brand-primary);
  border-top-color:var(--brand-primary);
  box-shadow:var(--shadow-s);
}
body.visual-pilot :is(#view-examenes-teo,#view-examenes-ing) .ex-card.sel{
  padding:16px;
  background:var(--brand-primary-soft);
  border:1px solid var(--brand-primary);
  border-top:3px solid var(--brand-accent);
  box-shadow:inset 4px 0 0 var(--brand-primary),var(--shadow-s);
}
body.visual-pilot :is(#view-examenes-teo,#view-examenes-ing) .ex-card-logo{
  border-color:var(--brand-border-subtle);
}
body.visual-pilot :is(#view-examenes-teo,#view-examenes-ing) .ex-card-title{
  color:var(--brand-primary);
  font-size:18px;
}
body.visual-pilot :is(#view-examenes-teo,#view-examenes-ing) .ex-card-badge{
  background:var(--brand-primary-soft);
  color:var(--brand-primary);
}

body.visual-pilot :is(#view-examenes-teo,#view-examenes-ing) .ex-toggle{
  min-height:52px;
  margin:0 0 20px;
  padding:13px 16px;
  background:var(--card-bg);
  border-color:var(--brand-border-subtle);
  border-radius:11px;
  box-shadow:var(--shadow-xs);
}
body.visual-pilot :is(#view-examenes-teo,#view-examenes-ing) .ex-toggle:hover{
  border-color:var(--brand-primary);
}
body.visual-pilot :is(#view-examenes-teo,#view-examenes-ing) .ex-toggle-label{
  color:var(--text-primary);
}
body.visual-pilot :is(#view-examenes-teo,#view-examenes-ing) .ex-toggle-sw.on{
  background:var(--brand-primary);
}

body.visual-pilot :is(#view-examenes-teo,#view-examenes-ing) > .btn-start{
  position:sticky;
  bottom:16px;
  z-index:8;
  width:100%;
  min-height:54px;
  margin-top:24px !important;
  background:var(--brand-primary) !important;
  color:var(--neutral-0);
  border:1px solid var(--brand-primary);
  border-radius:12px;
  outline:10px solid var(--app-bg);
  box-shadow:0 10px 28px rgba(6,55,31,.22);
  font-size:15px;
}
body.visual-pilot :is(#view-examenes-teo,#view-examenes-ing) > .btn-start:hover{
  background:var(--brand-primary-hover) !important;
}

@media (max-width:760px){
  body.visual-pilot :is(#view-examenes-teo,#view-examenes-ing) > .conf-header .conf-title{
    font-size:27px;
  }
  body.visual-pilot :is(#view-examenes-teo,#view-examenes-ing) .ex-lista{
    grid-template-columns:1fr;
  }
}

@media (max-width:480px){
  body.visual-pilot :is(#view-examenes-teo,#view-examenes-ing) .ex-modo-row{
    grid-template-columns:1fr;
  }
  body.visual-pilot :is(#view-examenes-teo,#view-examenes-ing) .ex-card{
    align-items:flex-start;
    min-height:0;
    padding:13px 12px;
    gap:10px;
  }
  body.visual-pilot :is(#view-examenes-teo,#view-examenes-ing) .ex-card.sel{
    padding:13px 12px;
  }
  body.visual-pilot :is(#view-examenes-teo,#view-examenes-ing) .ex-card-logo{
    width:44px;
    height:44px;
  }
  body.visual-pilot :is(#view-examenes-teo,#view-examenes-ing) .ex-card-badge{
    padding:3px 7px;
  }
  body.visual-pilot :is(#view-examenes-teo,#view-examenes-ing) > .btn-start{
    bottom:10px;
    outline-width:8px;
  }
}

@media (prefers-reduced-motion:reduce){
  body.visual-pilot :is(#view-examenes-teo,#view-examenes-ing) :is(.btn-volver,.ex-modo-btn,.ex-card,.ex-toggle,.btn-start){
    transition:none;
  }
}

/* ==========================================================================
   AR-048 · F3 · RUNNER GC CONCENTRADO
   --------------------------------------------------------------------------
   Capa visual común para los seis runners canónicos. Conserva ds-answer,
   opciones legacy, disclosure, scoring, cronómetro, navegación y acciones.
   ========================================================================== */

body.visual-pilot.runner-immersive :is(
  #view-pro-teo-activo,
  #view-pro-ingles-activo,
  #view-eteo-activo,
  #view-eing-activo,
  #view-examenes-activo,
  #view-lengua-activo
){
  background:var(--app-bg);
}

/* La cabecera pasa a ser el único elemento institucional durante el examen. */
body.visual-pilot.runner-immersive .ing-activo-header{
  background:var(--brand-primary-strong);
  color:var(--neutral-0);
  border-bottom:0;
  box-shadow:0 8px 24px rgba(4,48,27,.18);
}
body.visual-pilot.runner-immersive .ing-back-btn{
  min-height:36px;
  padding:8px 12px;
  color:var(--neutral-0);
  border:1px solid rgba(255,255,255,.42);
  border-radius:9px;
}
body.visual-pilot.runner-immersive .ing-back-btn:hover{
  background:rgba(255,255,255,.1);
  border-color:var(--neutral-0);
}
body.visual-pilot.runner-immersive :is(
  #teo-contador,#ing-contador,#eteo-contador,#eing-contador,#ex-contador,
  .ing-crono
){
  color:var(--neutral-0);
}
body.visual-pilot.runner-immersive .ing-activo-prog-wrap{
  height:5px;
  background:rgba(255,255,255,.2);
}
body.visual-pilot.runner-immersive .ing-activo-prog{
  height:5px;
  background:var(--brand-accent);
  box-shadow:0 0 12px rgba(212,168,31,.32);
}

/* Navegador de preguntas: herramienta secundaria, separada del enunciado. */
body.visual-pilot.runner-immersive .ex-nav{
  width:calc(100% - (2 * var(--content-gutter)));
  max-width:var(--content-max-read);
  margin:14px auto 0;
  border:1px solid var(--card-border);
  border-radius:11px;
  background:var(--card-bg);
  box-shadow:var(--shadow-xs);
  overflow:hidden;
  flex-shrink:0;
}
body.visual-pilot.runner-immersive .ex-nav-header{
  min-height:44px;
  padding:10px 14px;
}
body.visual-pilot.runner-immersive .ex-nav-header:hover{
  background:var(--brand-primary-soft);
}

/* Superficie de lectura: el lienzo queda detrás y pregunta/opciones forman una
   sola unidad. El scroll continúa perteneciendo al mismo nodo histórico. */
body.visual-pilot.runner-immersive .ing-activo-body{
  width:calc(100% - (2 * var(--content-gutter)));
  margin-top:16px;
  margin-bottom:12px;
  padding:28px;
  background:var(--card-bg);
  border:1px solid var(--card-border);
  border-radius:14px;
  box-shadow:var(--shadow-s);
}
body.visual-pilot.runner-immersive .ing-tema-pill{
  padding-left:12px;
  border-left:3px solid var(--brand-accent);
}
body.visual-pilot.runner-immersive .ing-pregunta{
  color:var(--brand-primary-strong);
}

/* Opciones legacy reciben la misma presencia que ds-answer sin alterar sus
   clases evaluativas ni la precedencia del Status System compartido. */
body.visual-pilot.runner-immersive .ing-opcion{
  background:var(--card-bg);
  border:1px solid var(--card-border);
  border-radius:11px;
  box-shadow:var(--shadow-xs);
}
@media (hover:hover){
body.visual-pilot.runner-immersive .ing-opcion:hover{
  border-color:var(--brand-primary);
  background:var(--brand-primary-soft);
  box-shadow:var(--shadow-s);
}
}
body.visual-pilot.runner-immersive .ing-opcion.seleccionada{
  border-color:var(--brand-primary);
  background:var(--brand-primary-soft);
  box-shadow:inset 3px 0 0 var(--brand-primary),var(--shadow-xs);
}
body.visual-pilot.runner-immersive .ing-opcion.correcta{
  border-color:var(--status-correct-border);
  background:var(--status-correct-bg);
  color:var(--status-correct-fg);
}
body.visual-pilot.runner-immersive .ing-opcion.incorrecta{
  border-color:var(--status-incorrect-border);
  background:var(--status-incorrect-bg);
  color:var(--status-incorrect-fg);
}
body.visual-pilot.runner-immersive .ing-explicacion{
  border-radius:10px;
  border-left-width:4px;
  box-shadow:var(--shadow-xs);
}
body.visual-pilot.runner-immersive .qstat{
  border-radius:10px;
}

/* Barra estable: acciones secundarias discretas y avance inequívoco. */
body.visual-pilot.runner-immersive .ing-activo-btns{
  width:calc(100% - (2 * var(--content-gutter)));
  margin:0 auto 16px;
  padding:12px;
  background:var(--card-bg);
  border:1px solid var(--card-border);
  border-radius:12px;
  box-shadow:var(--shadow-s);
}
body.visual-pilot.runner-immersive .ing-btn-dudosa{
  min-height:46px;
  padding:11px 15px;
  background:var(--card-bg) !important;
  color:var(--text-secondary);
  border-color:var(--card-border);
  border-radius:9px;
}
body.visual-pilot.runner-immersive .ing-btn-dudosa:hover{
  color:var(--brand-primary);
  border-color:var(--brand-primary);
  background:var(--brand-primary-soft) !important;
}
body.visual-pilot.runner-immersive .ing-btn-dudosa.marcada{
  color:var(--status-doubtful-fg);
  border-color:var(--status-doubtful-border);
  background:var(--status-doubtful-bg) !important;
}
body.visual-pilot.runner-immersive .ing-btn-sig{
  min-height:46px;
  background:var(--brand-accent);
  color:var(--brand-primary-strong);
  border-radius:9px;
  box-shadow:0 6px 16px rgba(134,103,0,.16);
}
body.visual-pilot.runner-immersive .ing-btn-sig:hover{
  background:var(--brand-accent-hover);
}

@media (min-width:1200px){
  body.visual-pilot.runner-immersive .ex-nav{
    max-width:min(1120px, calc(100vw - 96px));
  }
}

/* En móvil se conserva la lectura a sangre ya validada: la identidad queda en
   cabecera y acciones, sin gastar ancho en una tarjeta dentro de otra. */
@media (max-width:640px){
  body.visual-pilot.runner-immersive .ex-nav{
    width:calc(100% - 24px);
    margin-top:10px;
  }
  body.visual-pilot.runner-immersive .ing-activo-body{
    width:100%;
    margin:0;
    padding:20px var(--content-gutter);
    border:0;
    border-radius:0;
    box-shadow:none;
  }
  body.visual-pilot.runner-immersive .ing-activo-btns{
    width:100%;
    margin:0;
    padding:10px var(--content-gutter) calc(10px + env(safe-area-inset-bottom,0px));
    border-width:1px 0 0;
    border-radius:0;
    box-shadow:0 -6px 18px rgba(4,48,27,.08);
  }
}

@media (max-width:390px){
  body.visual-pilot.runner-immersive .ing-btn-dudosa{
    padding:10px 11px;
    font-size:11.5px;
  }
}

@media (prefers-reduced-motion:reduce){
  body.visual-pilot.runner-immersive :is(.ing-back-btn,.ing-opcion,.ing-btn-dudosa,.ing-btn-sig,.ex-nav-header){
    transition:none;
  }
}

/* ==========================================================================
   AR-048 · F4 · RESULTADO GC ORIENTADO A LA DECISIÓN
   --------------------------------------------------------------------------
   Jerarquiza los resultados recibidos sin calcular ni reinterpretar nota,
   veredicto, escala, política o regla APTO/NO APTO.
   ========================================================================== */

body.visual-pilot :is(
  #view-pro-teo-resultado,
  #view-pro-ingles-resultado,
  #view-eteo-resultado,
  #view-eing-resultado,
  #view-examenes-resultado,
  #view-lengua-resultado
){
  padding-top:32px;
  padding-bottom:48px;
}

/* Las variantes legacy con conf-header adoptan la misma entrada centrada que
   page-header--results. El contenido y el veredicto siguen viniendo del JS. */
body.visual-pilot :is(
  #view-pro-ingles-resultado,
  #view-eteo-resultado,
  #view-eing-resultado,
  #view-examenes-resultado
) > .conf-header{
  max-width:var(--content-max-read);
  margin:0 auto 16px;
  padding-bottom:0;
  text-align:center;
  border:0;
}
body.visual-pilot :is(
  #view-pro-ingles-resultado,
  #view-eteo-resultado,
  #view-eing-resultado
)[data-verdict] > .conf-header .conf-title{
  display:inline-flex;
  align-items:center;
  gap:8px;
  width:auto;
  padding:8px 16px;
  font-size:15px;
  line-height:1;
  letter-spacing:.14em;
  border:1px solid transparent;
  border-radius:999px;
}
body.visual-pilot :is(
  #view-pro-ingles-resultado,
  #view-eteo-resultado,
  #view-eing-resultado
)[data-verdict="aprobado"] > .conf-header .conf-title{
  color:var(--status-correct-fg);
  background:var(--status-correct-bg);
  border-color:var(--status-correct-border);
}
body.visual-pilot :is(
  #view-pro-ingles-resultado,
  #view-eteo-resultado,
  #view-eing-resultado
)[data-verdict="no_aprobado"] > .conf-header .conf-title{
  color:var(--status-incorrect-fg);
  background:var(--status-incorrect-bg);
  border-color:var(--status-incorrect-border);
}
body.visual-pilot :is(
  #view-pro-ingles-resultado,
  #view-eteo-resultado,
  #view-eing-resultado,
  #view-examenes-resultado
) > .conf-header .conf-sub{
  margin-top:12px;
}

/* Nota/porcentaje: superficie protagonista con un borde semántico fino. */
body.visual-pilot :is(
  #view-pro-teo-resultado,
  #view-pro-ingles-resultado,
  #view-eteo-resultado,
  #view-eing-resultado,
  #view-examenes-resultado
) .ing-res-circle{
  position:relative;
  overflow:hidden;
  border-radius:16px;
  box-shadow:0 14px 34px rgba(4,48,27,.10);
}
body.visual-pilot :is(
  #view-pro-teo-resultado,
  #view-pro-ingles-resultado,
  #view-eteo-resultado,
  #view-eing-resultado,
  #view-examenes-resultado
) .ing-res-circle::before{
  content:'';
  position:absolute;
  inset:0 0 auto;
  height:4px;
  background:var(--brand-primary);
}
body.visual-pilot :is(
  #view-pro-teo-resultado,
  #view-pro-ingles-resultado,
  #view-eteo-resultado,
  #view-eing-resultado
)[data-verdict="aprobado"] .ing-res-circle::before{
  background:var(--status-correct-fg);
}
body.visual-pilot :is(
  #view-pro-teo-resultado,
  #view-pro-ingles-resultado,
  #view-eteo-resultado,
  #view-eing-resultado
)[data-verdict="no_aprobado"] .ing-res-circle::before{
  background:var(--status-incorrect-fg);
}
body.visual-pilot #view-examenes-resultado .ing-res-circle{
  width:auto;
  height:auto;
  min-width:min(280px,100%);
  padding:24px 32px;
  gap:4px;
  color:var(--brand-primary-strong);
  background:var(--card-bg) !important;
  border:1px solid var(--card-border);
}
body.visual-pilot #view-examenes-resultado .ing-res-pct{
  color:var(--brand-primary-strong);
  font-size:clamp(38px,9vw,52px);
}
body.visual-pilot #view-examenes-resultado .ing-res-lbl{
  color:var(--text-muted);
}

/* Escala/política y declaración neutral de práctica son información esencial,
   pero se subordinan a la cifra. */
body.visual-pilot .pattern-scale,
body.visual-pilot #view-examenes-resultado .ex-res-meta{
  max-width:760px;
  margin-left:auto !important;
  margin-right:auto !important;
  padding:14px 18px !important;
  background:var(--brand-primary-soft) !important;
  color:var(--text-secondary) !important;
  border:1px solid var(--brand-border-subtle) !important;
  border-left:4px solid var(--brand-primary) !important;
  border-radius:10px !important;
  line-height:1.65 !important;
}
body.visual-pilot #view-examenes-resultado .ex-res-meta{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:4px 20px;
  margin-top:20px !important;
}

/* Desglose comparable, con más aire y sin convertir cada dato en un aviso. */
body.visual-pilot :is(
  #view-pro-teo-resultado,
  #view-pro-ingles-resultado,
  #view-eteo-resultado,
  #view-eing-resultado,
  #view-examenes-resultado
) .ing-res-stats{
  gap:14px;
}
body.visual-pilot :is(
  #view-pro-teo-resultado,
  #view-pro-ingles-resultado,
  #view-eteo-resultado,
  #view-eing-resultado,
  #view-examenes-resultado
) .ing-res-stat{
  min-height:104px;
  display:flex;
  flex-direction:column;
  justify-content:center;
  box-shadow:var(--shadow-xs);
}

/* Acción posterior: repetir domina y volver conserva presencia secundaria. */
body.visual-pilot #view-examenes-resultado .ex-res-meta + div{
  display:flex !important;
  gap:12px !important;
  margin:20px 0 32px !important;
}
body.visual-pilot #view-examenes-resultado .ex-res-meta + div > button{
  flex:1 1 0 !important;
  min-height:50px;
  min-width:0;
  padding:12px 16px !important;
  border-radius:10px;
}
body.visual-pilot #view-examenes-resultado .ex-res-meta + div > button:first-child{
  background:var(--brand-primary) !important;
  color:var(--neutral-0);
}
body.visual-pilot #view-examenes-resultado .ex-res-meta + div > button:last-child{
  background:var(--card-bg) !important;
  color:var(--brand-primary);
  border:1px solid var(--brand-primary);
}

/* Repaso de errores: lista de aprendizaje, no prolongación del veredicto. */
body.visual-pilot :is(
  #view-pro-teo-resultado,
  #view-pro-ingles-resultado,
  #view-eteo-resultado,
  #view-eing-resultado,
  #view-examenes-resultado
) .ing-res-repaso{
  margin-top:8px;
  padding-top:24px;
  border-top:1px solid var(--card-border);
}
body.visual-pilot :is(
  #view-pro-teo-resultado,
  #view-pro-ingles-resultado,
  #view-eteo-resultado,
  #view-eing-resultado,
  #view-examenes-resultado
) .ing-res-repaso-item{
  padding:18px;
  margin-bottom:10px;
  border-color:var(--card-border);
  border-left:4px solid var(--brand-primary);
  border-radius:11px;
  box-shadow:var(--shadow-xs);
}
body.visual-pilot :is(
  #view-pro-teo-resultado,
  #view-pro-ingles-resultado,
  #view-eteo-resultado,
  #view-eing-resultado,
  #view-examenes-resultado
) .ing-res-repaso-item .ing-pregunta{
  color:var(--text-primary);
  line-height:1.5;
}
body.visual-pilot :is(
  #view-pro-teo-resultado,
  #view-pro-ingles-resultado,
  #view-eteo-resultado,
  #view-eing-resultado,
  #view-examenes-resultado
) .ing-res-repaso-exp{
  margin-top:8px;
  color:var(--text-secondary);
  font-size:12.5px;
  line-height:1.55;
}

/* Lengua conserva su verdad binaria APTO/NO APTO y su regla propia. */
body.visual-pilot #view-lengua-resultado #len-result{
  max-width:var(--content-max-read);
  margin:0 auto;
}
body.visual-pilot #view-lengua-resultado .btn-volver{
  margin-bottom:16px;
}
body.visual-pilot #view-lengua-resultado .conf-header{
  text-align:center;
  border:0;
  padding-bottom:0;
}
body.visual-pilot #view-lengua-resultado .len-verdict{
  min-height:150px;
  justify-content:center;
  border-width:1px;
  border-radius:16px;
  box-shadow:var(--shadow-s);
}
body.visual-pilot #view-lengua-resultado .len-verdict-v{
  font-size:clamp(38px,9vw,52px);
}
body.visual-pilot #view-lengua-resultado .len-verdict-meta,
body.visual-pilot #view-lengua-resultado .len-verdict-rule{
  padding:14px 16px;
  border:1px solid var(--brand-border-subtle);
  border-radius:10px;
}
body.visual-pilot #view-lengua-resultado .len-verdict-meta{
  text-align:center;
  background:var(--card-bg);
}
body.visual-pilot #view-lengua-resultado .len-verdict-rule{
  border-left:4px solid var(--brand-primary);
}
body.visual-pilot #view-lengua-resultado .len-actions{
  gap:12px;
  margin:20px 0 28px;
}
body.visual-pilot #view-lengua-resultado .len-actions .len-btn{
  flex:1 1 220px;
  min-height:50px;
  border-radius:10px;
}
body.visual-pilot #view-lengua-resultado .len-res-item{
  padding:16px;
  border-color:var(--card-border);
  box-shadow:var(--shadow-xs);
}

@media (max-width:640px){
  body.visual-pilot :is(
    #view-pro-teo-resultado,
    #view-pro-ingles-resultado,
    #view-eteo-resultado,
    #view-eing-resultado,
    #view-examenes-resultado,
    #view-lengua-resultado
  ){
    padding-top:24px;
    padding-bottom:32px;
  }
  body.visual-pilot #view-examenes-resultado .ex-res-meta{
    grid-template-columns:1fr;
  }
  body.visual-pilot #view-examenes-resultado .ex-res-meta + div{
    flex-direction:column;
  }
  body.visual-pilot #view-examenes-resultado .ex-res-meta + div > button{
    width:100%;
  }
}

@media (max-width:420px){
  body.visual-pilot :is(
    #view-pro-teo-resultado,
    #view-pro-ingles-resultado,
    #view-eteo-resultado,
    #view-eing-resultado,
    #view-examenes-resultado
  ) .ing-res-stats{
    gap:7px;
  }
  body.visual-pilot :is(
    #view-pro-teo-resultado,
    #view-pro-ingles-resultado,
    #view-eteo-resultado,
    #view-eing-resultado,
    #view-examenes-resultado
  ) .ing-res-stat{
    min-height:88px;
    padding:12px 6px;
  }
}

/* GC runner reading hierarchy — desktop only.
   Question and answers share Barlow, as in mobile. Hierarchy comes from a
   restrained size/weight step, not from mixing typographic voices.
   Evaluation colours remain owned by Status. */
@media (min-width:1200px){
  body.visual-pilot.runner-immersive :is(.ing-activo-body,.ing-activo-btns){
    max-width:min(1180px, calc(100vw - 96px));
    margin-left:auto;
    margin-right:auto;
  }

  body.visual-pilot.runner-immersive .ing-pregunta{
    max-width:74ch;
    color:var(--text-primary);
    font-family:var(--font-body);
    font-size:clamp(21px, 1.2vw, 22px);
    font-weight:600;
    line-height:1.45;
    letter-spacing:0;
  }
  body.visual-pilot.runner-immersive :is(.ds-answer__option,.ing-opcion){
    font-family:var(--font-body);
    font-size:clamp(18px, 1.05vw, 19px);
    font-weight:500;
    line-height:1.5;
  }
  body.visual-pilot.runner-immersive .ds-answer__option[data-paint="idle"],
  body.visual-pilot.runner-immersive .ing-opcion:not(.seleccionada):not(.correcta):not(.incorrecta){
    color:var(--text-primary);
  }
  body.visual-pilot.runner-immersive .ds-answer__label{
    max-width:74ch;
  }
  body.visual-pilot.runner-immersive .ds-answer__option[data-paint="idle"] .ds-answer__label > b,
  body.visual-pilot.runner-immersive .ing-opcion:not(.correcta):not(.incorrecta) .ing-opcion-letra{
    color:var(--brand-primary-strong);
    font-weight:700;
  }
}

@media (prefers-reduced-motion:reduce){
  body.visual-pilot :is(
    #view-pro-teo-resultado,
    #view-pro-ingles-resultado,
    #view-eteo-resultado,
    #view-eing-resultado,
    #view-examenes-resultado,
    #view-lengua-resultado
  ) :is(.ds-button,.len-btn,.ing-res-repaso-item){
    transition:none;
  }
}

/* ============================================================
   Piloto GC (jul-2026) · ds-answer con chip V1 «círculo premium»
   Chip con letra (sin radio ni «A.» inline); seleccionada = relleno de
   marca + anillo dorado; acierto/fallo con degradado iluminado.
   La letra inline del label queda solo para lectores de pantalla.
   ============================================================ */
body.visual-pilot .ds-answer__marker{
  width:34px;height:34px;flex:0 0 34px;border-radius:50%;
  border:1.5px solid var(--border-default,#dfe3ea);
  background:linear-gradient(160deg,#fff,#e9ecf1);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.8),0 1px 2px rgba(0,0,0,.06);
  display:flex;align-items:center;justify-content:center;
  font-family:'Barlow Condensed',sans-serif;font-weight:800;font-size:14px;
  color:var(--brand-primary);
  transition:all .15s;
}
body.visual-pilot .ds-answer__option:not([data-paint="annulled"]) .ds-answer__marker::after{display:none;}
body.visual-pilot .ds-answer__option[data-idx="0"] .ds-answer__marker::before{content:"A";}
body.visual-pilot .ds-answer__option[data-idx="1"] .ds-answer__marker::before{content:"B";}
body.visual-pilot .ds-answer__option[data-idx="2"] .ds-answer__marker::before{content:"C";}
body.visual-pilot .ds-answer__option[data-idx="3"] .ds-answer__marker::before{content:"D";}
body.visual-pilot .ds-answer__option[data-idx="4"] .ds-answer__marker::before{content:"E";}
body.visual-pilot .ds-answer__option[data-idx="5"] .ds-answer__marker::before{content:"F";}
body.visual-pilot .ds-answer__option[data-idx="6"] .ds-answer__marker::before{content:"G";}
body.visual-pilot .ds-answer__option[data-idx="7"] .ds-answer__marker::before{content:"H";}
body.visual-pilot .ds-answer__option[data-paint="annulled"] .ds-answer__marker::before{content:"";}
body.visual-pilot .ds-answer__label > b{
  position:absolute;width:1px;height:1px;overflow:hidden;
  clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;
}
body.visual-pilot .ds-answer__label{font-weight:500;}
body.visual-pilot .ds-answer__option[data-paint="selected"] .ds-answer__marker{
  background:linear-gradient(160deg,var(--brand-primary-hover),var(--brand-primary));
  border-color:var(--brand-primary);color:var(--dorado2,#e8ba30);
  box-shadow:0 0 0 3px rgba(201,162,39,.55);
}
body.visual-pilot .ds-answer__option[data-paint="correct"] .ds-answer__marker{
  background:linear-gradient(160deg,#2e9e5b,#1a7a4a);border-color:#2e9e5b;color:#fff;
  box-shadow:0 1px 6px rgba(34,197,94,.35);
}
body.visual-pilot .ds-answer__option[data-paint="incorrect"] .ds-answer__marker{
  background:linear-gradient(160deg,#ef4444,#dc2626);border-color:#dc2626;color:#fff;
  box-shadow:0 1px 6px rgba(220,38,38,.3);
}

/* Piloto GC · paridad de contenedores: ds-answer y opciones legacy idénticos */
body.visual-pilot .ds-answer__option{border-radius:11px;padding:15px 16px;gap:12px;}
body.visual-pilot .ing-opcion{border-radius:11px;padding:15px 16px;gap:12px;}

/* Piloto GC · el chip V1 gana a la talla 24px del runner-immersive del DS
   (design-system.css .visual-pilot.runner-immersive → 3 clases; aquí 3 clases
   + elemento). Círculo garantizado también si el DS cambia: aspect-ratio 1. */
body.visual-pilot.runner-immersive .ds-answer__marker,
body.visual-pilot.runner-immersive .ing-opcion-letra{
  width:34px;height:34px;min-width:34px;flex:0 0 34px;
  aspect-ratio:1/1;border-width:1.5px;
}

/* Piloto GC · estado SELECCIONADA premium en TODOS los módulos:
   relleno de marca (verde GC) + letra y aro dorados. Gana a la regla de
   color de letra del runner-immersive (:not(.correcta):not(.incorrecta)). */
body.visual-pilot .ing-opcion.seleccionada .ing-opcion-letra,
body.visual-pilot.runner-immersive .ing-opcion.seleccionada .ing-opcion-letra,
body.visual-pilot.runner-immersive .ing-opcion.seleccionada:not(.correcta):not(.incorrecta) .ing-opcion-letra{
  background:linear-gradient(160deg,var(--brand-primary-hover),var(--brand-primary));
  border-color:var(--brand-primary);
  color:var(--dorado2,#e8ba30);
  font-weight:800;
  box-shadow:0 0 0 3px rgba(201,162,39,.55);
}
body.visual-pilot .ds-answer__option[data-paint="selected"] .ds-answer__marker,
body.visual-pilot.runner-immersive .ds-answer__option[data-paint="selected"] .ds-answer__marker{
  background:linear-gradient(160deg,var(--brand-primary-hover),var(--brand-primary));
  border-color:var(--brand-primary);
  color:var(--dorado2,#e8ba30);
  box-shadow:0 0 0 3px rgba(201,162,39,.55);
}
