/* Fondo de página: #rd-fondo es hermano de #app y sobrevive a todos sus repintados. Su lienzo fijo va en z-index:-1 del
   contexto raíz, sobre el fondo de html (mismo color que el de body: --u-bg = --bg) y detrás de todo el contenido, sin crear
   contextos de apilamiento nuevos: la app y la pantalla del ensayo se apilan igual que antes. */
body.rd-con-fondo { background: transparent; }
/* Tokens oscuros: los mismos de :root[data-theme="dark"] (estilos.css + ultra.css; pruebas/rd-capa.js los compara).
   Las vistas del motor (.ensayo.rd-oscuro, #u-main.rd-oscuro) no llevan fondo propio: un fondo en un bloque en flujo
   taparía el lienzo fijo de la página. Mientras existan, la página entera se oscurece (html) y la capa de página dibuja
   con la paleta oscura (rd-capa.js · paginaOscura). */
.rd-oscuro,
html:has(.ensayo.rd-oscuro, #u-main.rd-oscuro) {
  color-scheme: dark;
  --bg: #0c0e10/*tema:fijo*/;
  --surface: #15181b/*tema:fijo*/;
  --surface-2: #1b1e21/*tema:fijo*/;
  --surface-3: #24292d/*tema:fijo*/;
  --ink: #f5f5f0/*tema:fijo*/;
  --ink-2: #adb2b6/*tema:fijo*/;
  --ink-3: #969da2/*tema:fijo*/;
  --line: #2a2e31/*tema:fijo*/;
  --line-strong: #454b4e/*tema:fijo*/;
  --accent: #d4f57b/*tema:fijo*/;
  --accent-ink: #17200d/*tema:fijo*/;
  --accent-soft: #242f19/*tema:fijo*/;
  --accent-line: #597a2c/*tema:fijo*/;
  --accent-warm: #FFA24D/*tema:fijo*/;
  --accent-warm-soft: #3A2A17/*tema:fijo*/;
  --accent-warm-ink: #2A1600/*tema:fijo*/;
  --p-m1: #58C6A2/*tema:fijo*/;
  --p-m2: #DE9663/*tema:fijo*/;
  --p-lectora: #8AACEE/*tema:fijo*/;
  --p-ciencias: #CB97D7/*tema:fijo*/;
  --p-historia: #E6A75E/*tema:fijo*/;
  --m-ensayos: #57C4DD/*tema:fijo*/;
  --m-ensayos-soft: #122C35/*tema:fijo*/;
  --m-corregir: #4ED1A0/*tema:fijo*/;
  --m-corregir-soft: #0F2E23/*tema:fijo*/;
  --m-profesor: #C39BF0/*tema:fijo*/;
  --m-profesor-soft: #2A1F3D/*tema:fijo*/;
  --m-ranking: #E8B84B/*tema:fijo*/;
  --m-ranking-soft: #35290F/*tema:fijo*/;
  --m-habitos: #5CD08A/*tema:fijo*/;
  --m-habitos-soft: #142E1E/*tema:fijo*/;
  --m-carreras: #82B4E8/*tema:fijo*/;
  --m-carreras-soft: #17283A/*tema:fijo*/;
  --m-progreso: #FF9E5E/*tema:fijo*/;
  --m-progreso-soft: #3A2515/*tema:fijo*/;
  --m-pase: #F08CC4/*tema:fijo*/;
  --m-pase-soft: #37182B/*tema:fijo*/;
  --m-manual: #A8B4C6/*tema:fijo*/;
  --m-manual-soft: #242A33/*tema:fijo*/;
  --m-ink: #10131F/*tema:fijo*/;
  --foto-ink: #FBFAF6/*tema:fijo*/;
  --foto-ink-2: rgba(251, 250, 246, .78)/*tema:fijo*/;
  --foto-etq: #E7C9A8/*tema:fijo*/;
  --foto-velo: rgba(0, 0, 0, .62)/*tema:fijo*/;
  --ok: #8dddab/*tema:fijo*/;
  --ok-soft: #173725/*tema:fijo*/;
  --ok-ink: #08190f/*tema:fijo*/;
  --bad: #ff9ba0/*tema:fijo*/;
  --bad-soft: #391d22/*tema:fijo*/;
  --bad-ink: #220508/*tema:fijo*/;
  --warn: #f6cb85/*tema:fijo*/;
  --warn-soft: #392b19/*tema:fijo*/;
  --warn-ink: #231905/*tema:fijo*/;
  --velo: rgba(0, 0, 0, .42)/*tema:fijo*/;
  --shadow-sm: 0 1px 2px rgba(0, 0, 0, .5)/*tema:fijo*/;
  --shadow: 0 1px 2px rgba(0, 0, 0, .5)/*tema:fijo*/, 0 12px 32px -16px rgba(0, 0, 0, .8)/*tema:fijo*/;
  --shadow-lg: 0 2px 6px rgba(0, 0, 0, .5)/*tema:fijo*/, 0 28px 60px -24px rgba(0, 0, 0, .9)/*tema:fijo*/;
  --accent-text: #d4f57b/*tema:fijo*/;
  --u-lime: #d4f57b/*tema:fijo*/;
  --u-bg: #0c0e10/*tema:fijo*/;
  --u-muted: #a4abb0/*tema:fijo*/;
  --info: #9cc3ff/*tema:fijo*/;
  --info-soft: #1b2a3d/*tema:fijo*/;
  --ring-1: #d4f57b/*tema:fijo*/;
  --ring-1-track: #2f3d1f/*tema:fijo*/;
  --ring-2: #79cbd7/*tema:fijo*/;
  --ring-2-track: #1d3539/*tema:fijo*/;
  --ring-3: #f6cb85/*tema:fijo*/;
  --ring-3-track: #3a2e1d/*tema:fijo*/;
  --ring-1-text: #d4f57b/*tema:fijo*/;
  --ring-2-text: #79cbd7/*tema:fijo*/;
  --ring-3-text: #f6cb85/*tema:fijo*/;
  --on-accent-soft-2: #adb2b6/*tema:fijo*/;
  --on-accent-soft-3: #969da2/*tema:fijo*/;
  --chart-bar: #5d7f31/*tema:fijo*/;
  --chart-bar-hoy: #d4f57b/*tema:fijo*/;
  --chart-grid: #2e3337/*tema:fijo*/;
  --s-m1: #ddba76/*tema:fijo*/;
  --s-lectora: #e1ac73/*tema:fijo*/;
  --s-m2: #b4a2fa/*tema:fijo*/;
  --s-ciencias: #79cbd7/*tema:fijo*/;
  --s-historia: #E9A7D2/*tema:fijo*/;
}
.rd-oscuro:not(.ensayo):not(#u-main) {
  background: var(--bg);
  color: var(--ink);
}
canvas.ag {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  z-index: -1;
  pointer-events: none;
}
/* Siempre del tamaño de la pantalla, aunque un ancestro cambie de bloque contenedor (el búfer también lo limita rd-capa.js) */
#rd-fondo > canvas.ag {
  position: fixed;
  top: 0;
  right: auto;
  bottom: auto;
  left: 0;
  width: 100vw;
  height: 100vh;
  z-index: -1;
}
.rd-acompanar { align-items: start; }
@media print {
  #rd-fondo, canvas.ag { display: none !important; }
}
