/* Kilovatio Atelier 2.5.5 — reparación contextual de contraste.
 * Carga DESPUÉS de atelier-components.css. Mantiene fondos, composición y colores
 * científicos: NO se aplican reglas a svg, canvas, series, escalas o curvas.
 * Las superficies oscuras existentes vuelven a tener tinta clara legible,
 * sin aclarar botones, tarjetas de papel ni modificar estilos de Core.
 */
body.kv-atelier-sketchbook {
  --atelier-on-dark: #f7f1e6;
  --atelier-on-dark-secondary: #e1e5e4;
  --atelier-on-dark-muted: #cad5d8;
  --atelier-on-dark-accent: #f3d49f;
}

/* Titulares, lectura y pies: excepciones a las normas editoriales generales
 * que fuerzan color grafito sobre fondos de papel. Las clases incluidas en
 * este grupo conservan efectivamente un fondo oscuro en Core o en Atelier.
 */
body.kv-atelier-sketchbook.kv-sketch-style :is(
  .kv-hero, .kv-visual, .kv-strip, .kv2-hero, .kv2-deep-section,
  .kv2-feature, .kv2-wave-card, .kv2-schematic,
  .kv-home-board-card--dark,
  .kv-academy-hero, .kvlearn-hero, .kvlearn-course-head, .kvlearn-formula,
  .kvpb-hero, .kvad-hero, .kvbl-banner, .kvbl8-intro,
  .kvst-hero, .kvst-heading, .kvst-explanation, .kvst-metric,
  .kvst-network-source, .kvst-network-load,
  .kvx-hero, .kv-exp-hero, .kv-exp-readings-hero,
  .kvv-hero, .kvv-inner-hero, .kvv-controls, .kvv-diagram,
  .kvkg-hero, .kvs-hero, .kvs-results, .kvs-metrics > div,
  .kvs-device, .kvs-bridge, .kvs-formula,
  .kv-calculator, .kv-calculator__examples > div,
  .kvc17-hero, .kvr18-hero, .kvr18-metrics > div,
  .kvr18-option, .kvr18-feedback, .kvr18-explanation,
  .kvr18-stat, .kvr18-footer
) :is(h1,h2,h3,h4,h5,h6,p,li,dt,dd,blockquote,small,summary,figcaption) {
  color: var(--atelier-on-dark) !important;
}

/* Subtítulos, rótulos y anotaciones sobre paneles oscuros. Evitar spans
 * genéricos: algunos son indicadores científicos con colores propios. */
body.kv-atelier-sketchbook.kv-sketch-style :is(
  .kv-hero, .kv2-hero, .kv2-deep-section, .kv2-feature,
  .kv-academy-hero, .kvlearn-hero, .kvpb-hero, .kvad-hero,
  .kvbl-banner, .kvbl8-intro, .kvst-hero, .kvst-heading,
  .kvx-hero, .kv-exp-hero, .kv-exp-readings-hero,
  .kvv-hero, .kvv-inner-hero, .kvkg-hero, .kvs-hero,
  .kvc17-hero, .kvr18-hero, .kv-home-board-card--dark
) :is(.kv-eyebrow,.kv2-eyebrow,.kv2-kicker,.kv2-section-label,
       .kvbl-eyebrow,.kvsci-kicker,.kvv-kicker,.kvx-kicker,
       .kv-home-board-kicker,.kvr18-eyebrow,.kvc17-eyebrow,
       .kv-sketch-hand,.kv-handnote,.kv-note-hand,.kv-pencil-note) {
  color: var(--atelier-on-dark-accent) !important;
}

/* Elementos de lectura de calculadoras y resultados sobre fondo oscuro.
 * No se fuerzan las opciones de entrada, ni colores de fases o alarmas. */
body.kv-atelier-sketchbook.kv-sketch-style :is(.kv-calculator,.kvst-heading,.kvst-explanation,
  .kvs-results,.kvv-controls,.kvr18-hero,.kvlearn-course-head)
  :is(label,legend,output,.kv-calculator__note) {
  color: var(--atelier-on-dark-secondary) !important;
}
body.kv-atelier-sketchbook.kv-sketch-style :is(.kv2-wave-card,.kv-visual)
  :is(.kv2-wave-top,.kv2-wave-bottom,.kv-visual-top,.kv-visual-bottom) {
  color: var(--atelier-on-dark-secondary) !important;
}
/* Las unidades y los valores de las métricas mantienen sus colores de
 * señal/energía: no se fuerza el color de strong, span ni svg text. */
/* No quitar significado a los elementos codificados por color; restituir
 * el acento solo para rótulos, nunca para el valor de una serie o un trazo. */
body.kv-atelier-sketchbook.kv-sketch-style :is(.kv2-feature,.kvst-hero,
  .kvlearn-hero,.kvpb-hero,.kvad-hero,.kvbl-banner,.kvbl8-intro,
  .kvx-hero,.kv-exp-hero,.kvv-hero,.kvkg-hero,.kvs-hero,
  .kv-home-board-card--dark) a:not([class*="button"]):not([class*="btn"]):not([class*="primary"]):not([class*="secondary"]) {
  color: var(--atelier-on-dark-accent) !important;
}

/* En la calculadora heredada, Atelier 2.5.4 aclara expresamente el panel de
 * resultados. Sus cifras, previamente blancas, también deben oscurecerse.
 * Esta excepción impide una nueva inversión de contraste. */
body.kv-atelier-sketchbook.kv-sketch-style .kv-calculator__result
  :is(strong,small,span,output,.kv-unit,.kv-value,.kv-result) {
  color: var(--atelier-ink) !important;
}

/* Fondos claros añadidos por el sistema Atelier sobre componentes que
 * originalmente eran azules. Ajustar su texto DIRECTO para no intervenir
 * los diagramas y subpaneles oscuros que contienen. */
body.kv-atelier-sketchbook.kv-sketch-style :is(
  .kvv-machine,.kvr18-case-item,.kvx-card,.kvkg-node,.kvat-result,
  .kvpb-summary,.kvbl-stats,.kvbl8-stat,.kvbl9-form,
  .kvsci-readout,.kvsci-stat,.kvsci-result
) > :is(h1,h2,h3,h4,p,small,span,strong,label,output) {
  color: var(--atelier-ink) !important;
}

/* Las notas pedagógicas sobre la superficie oscura siguen siendo Caveat,
 * pero con tinta clara; nunca aplicar esta regla a fórmulas o magnitudes. */
body.kv-atelier-sketchbook.kv-sketch-style :is(
  .kv-home-board-card--dark,.kv2-feature,.kvst-hero,.kvbl-banner,.kvv-hero
) :is(.kv-sketch-hand,.kv-handnote,.kv-note-hand,.kv-pencil-note) {
  color: var(--atelier-on-dark-accent) !important;
}

/* Estilos de acceso accesibles en fondos oscuros sin retocar instrumentos. */
body.kv-atelier-sketchbook.kv-sketch-style :is(
  .kv-home-board-card--dark,.kv2-hero,.kv2-feature,.kvst-hero,
  .kvbl-banner,.kvbl8-intro,.kvx-hero,.kvv-hero,.kvs-hero
) a:focus-visible {
  outline: 2px solid var(--atelier-on-dark-accent);
  outline-offset: 3px;
}
