/* ═══════════════════════════════════════════════════════════════
   KarunaPura Sutta Tool · Frontend CSS v4.1.0
   Hoja depurada: sin parches históricos acumulados.
   ═══════════════════════════════════════════════════════════════ */


/* 6.8.729 — contrato global de tipografía móvil y capas transitorias.
   Las superficies flotantes del lector, la app y el mapa comparten una sola
   jerarquía. Los valores son globales para poder gobernar también overlays
   montados directamente bajo body, pero cada componente conserva su propio
   contexto de apilado. */
:root {
  --ks-mobile-type-step: 0px;
  --ks-mobile-control-step: 0px;
  --ks-layer-app-root: 1000000;
  --ks-layer-content: 0;
  --ks-layer-local-raised: 10;
  --ks-layer-sticky: 1000010;
  --ks-layer-controls: 1000100;
  --ks-layer-edge-navigation: 1000150;
  --ks-layer-sidebar: 1000175;
  --ks-layer-dropdown: 1000200;
  --ks-layer-popover: 1000300;
  /* Información contextual de lectura (comentarios, glosario, tooltips):
     siempre por encima de controles/dropdowns/popovers ordinarios, pero por
     debajo de un diálogo real. */
  --ks-layer-tooltip: 1000350;
  --ks-layer-dialog-backdrop: 1000400;
  --ks-layer-dialog: 1000500;
  --ks-layer-drawer-backdrop: 1000700;
  --ks-layer-drawer: 1000800;
  --ks-layer-drawer-toggle: 1000810;
  --ks-layer-notice: 1000900;
  --ks-layer-fullscreen: 1001000;
  /* Ayuda es la superficie de UI de mayor prioridad dentro de la aplicación.
     Quedan fuera únicamente overlays de sistema/seguridad montados bajo body. */
  --ks-layer-help: 1001100;
}
@media screen and (max-width: 767px), screen and (pointer: coarse) and (max-width: 1180px) {
  :root {
    --ks-mobile-type-step: 1px;
    --ks-mobile-control-step: 2px;
  }
}

body.single-kp_sutta .kp-sutta-page {
  --kp-accent: var(--extra-color-1, #daa520);
  --kp-control-accent: var(--extra-color-1, #daa520);
  --kp-hero-line: var(--accent-color, #8c8630);
  --kp-hero-bg: var(--extra-color-3, #f5f2ea);
  --kp-text: var(--primary-text-color, #353535);
  --kp-muted: #77716a;
  --kp-tooltip-text: #5f584f;
  --kp-reading-width: 800px;
  --kp-wide-width: 1480px;
  --kp-reading-pad: 20px;
  --kp-sutta-hero-title-size: 50px;
  --kp-sutta-hero-title-color: #4f4942;
  --kp-sutta-hero-title-weight: 300;
  --kp-sutta-hero-title-style: normal;
  --kp-sutta-h2-size: 33px;
  --kp-sutta-h2-color: var(--kp-text);
  --kp-sutta-h2-weight: 400;
  --kp-sutta-h2-style: normal;
  --kp-sutta-h3-size: 20px;
  --kp-sutta-h3-color: var(--kp-text);
  --kp-sutta-h3-weight: 400;
  --kp-sutta-h3-style: normal;
  --kp-sutta-h4-size: 17px;
  --kp-sutta-h4-color: var(--kp-text);
  --kp-sutta-h4-weight: 400;
  --kp-sutta-h4-style: normal;
  width: 100%;
  max-width: none;
  margin: 0;
  padding: 0 0 60px;
  color: var(--kp-text);
  font-family: "Noto Sans", "Fira Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  font-size: calc(16px + var(--ks-mobile-type-step, 0px));
  line-height: 1.5;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-rendering: optimizeLegibility;
  -webkit-text-size-adjust: 100%;
  text-size-adjust: 100%;
}


/* 6.8.298 — contrato compartido lector público / lector app.
   La app usa datos JSON, pero el lector vive dentro de este scope para heredar
   las mismas variables y estados visuales que la página individual. */




.kp-reader-scope .kp-note-marker.kp-note-variant { color: var(--extra-color-2, #fff176) !important; }


body.single-kp_sutta .kp-reader-floating-panel {
  position: fixed !important;
  left: var(--kp-panel-left, 16px) !important;
  top: var(--kp-panel-top, 64px) !important;
  right: auto !important;
  bottom: auto !important;
  z-index: var(--ks-layer-popover, 1000300) !important;
}

body.single-kp_sutta .kp-sutta-page.kp-reader-disclosure-open .kp-view-controls,
body.single-kp_sutta .kp-sutta-page.kp-reader-disclosure-open .kp-version-control,
body.single-kp_sutta .kp-sutta-page.kp-reader-disclosure-open .kp-publication-control {
  z-index: var(--ks-layer-controls, 1000100);
}

body.single-kp_sutta .container-wrap,
body.single-kp_sutta #page-header-wrap + .container-wrap,
body.single-kp_sutta .main-content,
body.single-kp_sutta .row {
  padding-top: 0 !important;
}


/* Neutralizar estilos italic del tema dentro del plugin.
   Mantiene tamaño, familia, peso y altura de línea del texto donde aparece. */
body.single-kp_sutta .kp-sutta-page i,
body.single-kp_sutta .kp-sutta-page em,
body.single-kp_sutta .kp-sutta-page [lang="pi"],
body.single-kp_sutta .kp-sutta-page [translate="no"] {
  font-family: inherit !important;
  font-size: inherit !important;
  line-height: inherit !important;
  font-weight: inherit !important;
  font-style: italic !important;
}

body.single-kp_sutta .kp-sutta-page *,
body.single-kp_sutta .kp-sutta-page *::before,
body.single-kp_sutta .kp-sutta-page *::after {
  box-sizing: border-box;
}

/* ───────────────────────── Contenedores ───────────────────────── */

.kp-sutta-inner,
.kp-hero-inner {
  width: min(100%, var(--kp-reading-width));
  margin-left: auto;
  margin-right: auto;
}

.kp-sutta-page.kp-active-sidebyside .kp-sutta-inner,
.kp-sutta-page.kp-active-sidebyside .kp-hero-inner,
.kp-sutta-page.kp-active-linebyline .kp-hero-inner {
  width: min(100%, var(--kp-wide-width));
}

/* ───────────────────────── Hero ───────────────────────── */

.kp-sutta-hero {
  width: 100%;
  background: var(--kp-hero-bg);
  border-bottom: 2px solid var(--kp-hero-line);
  margin: 0 0 24px;
  padding: 44px 36px 36px;
}

.kp-hero-panel { display: none; }
.kp-sutta-page.kp-active-plain .kp-hero-panel-single { display: block; }
.kp-sutta-page.kp-active-pali .kp-hero-panel-pali-only { display: block; }
.kp-sutta-page.kp-active-sidebyside .kp-hero-panel-sidebyside,
.kp-sutta-page.kp-active-linebyline .kp-hero-panel-sidebyside { display: grid; }

.kp-hero-panel-single,
.kp-hero-panel-pali-only { text-align: center; }

.kp-hero-panel-sidebyside {
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: 0 88px;
  align-items: start;
  text-align: center;
}

.kp-hero-lang-pali {
  border-left: 1px solid color-mix(in srgb, var(--kp-hero-line) 28%, transparent);
  padding-left: 56px;
}

.kp-sutta-hero h5.kp-hero-nikaya,
.kp-sutta-hero h5.kp-hero-ref,
.kp-sutta-hero h5.kp-hero-chapter {
  margin: 0 0 8px;
  padding: 0;
  color: #77716a;
  font-family: "Fira Sans", "Noto Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  font-size: calc(14px + var(--ks-mobile-type-step, 0px));
  font-weight: 400;
  line-height: 1.35;
  letter-spacing: .12em;
  text-transform: uppercase;
}

.kp-sutta-hero h5.kp-hero-chapter { margin-bottom: 18px; }

.kp-sutta-hero .kp-hero-title {
  max-width: 680px;
  margin: 0 auto;
  color: var(--kp-sutta-hero-title-color);
  font-family: "Fira Sans", "Noto Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  font-size: var(--kp-sutta-hero-title-size);
  font-style: var(--kp-sutta-hero-title-style);
  font-weight: var(--kp-sutta-hero-title-weight);
  line-height: 1.08;
}

.kp-hero-panel-single .kp-hero-title,
.kp-hero-panel-pali-only .kp-hero-title { max-width: 900px; }


.kp-hero-separator {
  width: 100px;
  height: 0;
  border-top: 1px solid var(--kp-hero-line);
  margin: 28px auto 26px;
}

.kp-hero-blurb-block {
  width: min(100%, 900px);
  margin-left: auto;
  margin-right: auto;
}

.kp-blurb {
  max-width: 760px;
  margin: 0 auto;
  color: #4f4a42;
  font-family: "Noto Sans", "Fira Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  font-size: calc(16px + var(--ks-mobile-type-step, 0px));
  font-weight: 300;
  line-height: 1.58;
  text-align: left;
}

/* ───────────────────────── Controles ───────────────────────── */

.kp-view-controls {
  position: relative;
  left: 50%;
  transform: translateX(-50%);
  display: flex;
  align-items: center;
  flex-wrap: nowrap !important;
  gap: 8px;
  width: min(calc(100vw - 40px), 1000px);
  max-width: 1000px;
  margin: 0 0 48px;
  padding-left: var(--kp-reading-pad);
  padding-right: var(--kp-reading-pad);
  font-family: "Noto Sans", "Fira Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  font-size: calc(13px + var(--ks-mobile-type-step, 0px));
}

.kp-view-modes,
.kp-reader-tools {
  display: flex;
  align-items: center;
  flex-wrap: nowrap;
  gap: 8px;
}

.kp-view-modes {
  min-width: 0;
}

.kp-reader-tools {
  flex: 0 0 auto;
}

.kp-mobile-control-label {
  display: none;
}

.kp-view-label {
  color: #77716a;
  margin-right: 4px;
}

.kp-mode-btn {
  padding: 5px 14px;
  border: 1px solid #ccc;
  border-radius: 20px;
  background: #fff;
  color: #444;
  font: inherit;
  line-height: 1.25;
  white-space: nowrap;
  cursor: pointer;
  transition: background .15s ease, border-color .15s ease, color .15s ease;
}

.kp-mode-btn:hover,
.kp-mode-btn:focus-visible {
  border-color: var(--kp-control-accent);
  color: var(--kp-control-accent);
  outline: none;
}

.kp-mode-btn.active {
  background: var(--kp-control-accent);
  border-color: var(--kp-control-accent);
  color: #fff;
}
.kp-version-control {


  gap: 7px;

  color: #77716a;
}

.kp-version-control select {
  width: auto;
  min-width: 150px;
  margin: 0;
  padding: 5px 30px 5px 10px;
  border: 1px solid #d8d2ca;
  border-radius: 999px;
  background-color: #fff;
  color: #5f584f;
  font: inherit;
  line-height: 1.35;
}

.kp-control-spacer {
  flex: 1 1 auto;
  min-width: 12px;
}

.kp-icon-toggle {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 30px;
  width: 30px;
  height: 30px;
  border: 1px solid rgba(120, 114, 106, .32);
  border-radius: 999px;
  background: #fff;
  color: var(--kp-muted);
  cursor: pointer;
  padding: 0;
  transition: background .15s ease, border-color .15s ease, color .15s ease;
}

.kp-icon-toggle:hover,
.kp-icon-toggle:focus-visible {
  border-color: var(--kp-control-accent);
  color: var(--kp-control-accent);
  outline: none;
}

.kp-icon-toggle.is-active,
.kp-icon-toggle[aria-pressed="true"] {
  background: var(--kp-control-accent);
  border-color: var(--kp-control-accent);
  color: #fff;
}

.kp-icon-toggle-symbol {
  font-size: calc(10px + var(--ks-mobile-type-step, 0px));
  line-height: 1;
  font-weight: 500;
  letter-spacing: .02em;
}

.kp-notes-toggle .kp-icon-toggle-symbol {
  font-size: calc(15px + var(--ks-mobile-type-step, 0px));
  transform: translateY(1px);
}
.kp-refs-toggle .kp-icon-toggle-symbol {
  font-size: calc(9px + var(--ks-mobile-type-step, 0px));
  font-weight: 600;
}
.kp-icon-toggle.kp-refs-toggle {
  width: 30px;
  flex-basis: 30px;
  padding: 0;
}

/* KP-CONTROL-TOOLTIP:START — autoridad compartida lector / Sutta App. */
.kp-control-tooltip-host {
  position: relative;
}

.kp-control-tooltip {
  position: absolute;
  z-index: var(--ks-layer-tooltip, 1000350);
  right: 0;
  bottom: calc(100% + 8px);
  display: none;
  width: max-content;
  max-width: min(260px, calc(100vw - 28px));
  padding: 7px 10px;
  border: 1px solid rgba(120, 103, 82, .22);
  border-radius: 12px;
  background: var(--kp-hero-bg, var(--extra-color-3, #f5f2ea));
  box-shadow: 0 10px 28px rgba(0,0,0,.10);
  color: #6f675d;
  font-size: calc(12px + var(--ks-mobile-type-step, 0px));
  font-weight: 300;
  line-height: 1.35;
  white-space: normal;
  text-align: left;
  pointer-events: none;
}

.kp-control-tooltip--below {
  top: calc(100% + 8px);
  bottom: auto;
}

.kp-control-tooltip--align-left {
  right: auto;
  left: 0;
}

.kp-control-tooltip--side-left {
  top: 50%;
  right: calc(100% + 8px);
  bottom: auto;
  transform: translateY(-50%);
}

.kp-control-tooltip--side-right {
  top: 50%;
  right: auto;
  bottom: auto;
  left: calc(100% + 8px);
  transform: translateY(-50%);
}

.kp-icon-toggle:hover .kp-control-tooltip,
.kp-icon-toggle:focus-visible .kp-control-tooltip,
.kp-control-tooltip-host:hover .kp-control-tooltip,
.kp-control-tooltip-host:focus-visible .kp-control-tooltip {
  display: block;
}

@media (hover: none) and (pointer: coarse) {
  .kp-control-tooltip-host .kp-control-tooltip {
    display: none !important;
  }
}
/* KP-CONTROL-TOOLTIP:END */

/* ───────────────────── Mapa bajo demanda ───────────────────── */

.kp-sutta-page.ks-reader-map-mode > .kp-sutta-hero,
.kp-sutta-page.ks-reader-map-mode > .kp-sutta-inner {
  display: none;
}

.ks-reader-map-host {
  width: 100%;
  min-height: 100vh;
  background: #fff;
  overflow: hidden;
}

.ks-reader-map-host[hidden] {
  display: none;
}

body.admin-bar .ks-reader-map-host {
  min-height: calc(100vh - 32px);
}

.ks-reader-map-host .kp-d3-v2,
.ks-reader-map-host .kp-d3-v2-stage {
  min-height: 100vh !important;
  height: 100vh !important;
}

body.admin-bar .ks-reader-map-host .kp-d3-v2,
body.admin-bar .ks-reader-map-host .kp-d3-v2-stage {
  min-height: calc(100vh - 32px) !important;
  height: calc(100vh - 32px) !important;
}

.ks-reader-map-loading,
.ks-reader-map-error {
  min-height: inherit;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 14px;
  padding: 28px;
  color: #5f584f;
  font-size: calc(15px + var(--ks-mobile-type-step, 0px));
}
.ks-reader-map-mark {
  width: 48px;
  height: 48px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 2px solid rgba(141, 136, 41, .22);
  border-top-color: #8d8829;
  border-radius: 999px;
  color: #8d8829;
  font-size: calc(12px + var(--ks-mobile-type-step, 0px));
  font-weight: 700;
  letter-spacing: .06em;
  animation: ks-reader-map-spin 1s linear infinite;
}
@keyframes ks-reader-map-spin {
  to { transform: rotate(360deg); }
}

/* ───────────────────────── Cuerpo ───────────────────────── */

.kp-sutta-body {
  margin: 0 var(--kp-reading-pad);
  color: var(--kp-text);
  font-family: "Noto Sans", "Fira Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  font-size: calc(16px + var(--ks-mobile-type-step, 0px));
  line-height: 1.5;
  --kp-reader-text-size: calc(16px + var(--ks-mobile-type-step, 0px));
  --kp-reader-text-line-height: 1.5;
  --kp-reader-line-mode-line-height: 1.5;
}

.kp-sutta-body .kp-paragraph {
  margin: 0 0 1.20em;
  padding: 0;
}

.kp-sutta-body .kp-paragraph:last-child { margin-bottom: 0; }

.kp-paragraph-es,
.kp-paragraph-pali,
.kp-paragraph-lines {
  margin: 0;
  padding: 0;
}

.kp-seg-es,
.kp-seg-pali,
.kp-side-es,
.kp-side-pali,
.kp-line-es,
.kp-line-pali,
.kp-paragraph-es,
.kp-paragraph-pali {
  font-family: "Noto Sans", "Fira Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif !important;
  font-size: var(--kp-reader-text-size, calc(16px + var(--ks-mobile-type-step, 0px))) !important;
  line-height: var(--kp-reader-text-line-height, 1.7) !important;
}

.kp-seg-es,
.kp-side-es,
.kp-line-es,
.kp-paragraph-es { color: var(--kp-text); }
.kp-seg-pali,
.kp-side-pali,
.kp-line-pali,
.kp-paragraph-pali { color: var(--kp-muted); }

.kp-paragraph-sidebyside { display: none; }
.kp-paragraph-lines { display: none; }
.kp-heading-es,
.kp-heading-pali,
.kp-heading-sidebyside,
.kp-heading-lines { display: none; }

/*
 * Contrato tipográfico único de encabezados del lector.
 * Bilara es la referencia editorial; Legacy conserva su HTML nativo, pero
 * comparte exactamente familia, tamaño, peso, interlineado y espaciado.
 */
.kp-sutta-body .kp-structural-heading,
.kp-sutta-body .kp-continuous-translation h1,
.kp-sutta-body .kp-continuous-translation h2,
.kp-sutta-body .kp-continuous-translation h3,
.kp-sutta-body .kp-continuous-translation h4 {
  margin: 2.35em 0 1.05em;
  padding: 0;
  color: var(--kp-sutta-h2-color);
  font-family: "Fira Sans", "Noto Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif !important;
  font-style: var(--kp-sutta-h2-style);
  font-weight: var(--kp-sutta-h2-weight);
  line-height: 1.22;
}

.kp-sutta-body .kp-heading-level-2,
.kp-sutta-body .kp-continuous-translation h1,
.kp-sutta-body .kp-continuous-translation h2 {
  color: var(--kp-sutta-h2-color);
  font-size: var(--kp-sutta-h2-size);
  font-style: var(--kp-sutta-h2-style) !important;
  font-weight: var(--kp-sutta-h2-weight);
}
.kp-sutta-body .kp-heading-level-3,
.kp-sutta-body .kp-continuous-translation h3 {
  margin-top: 2em;
  color: var(--kp-sutta-h3-color);
  font-size: calc(var(--kp-sutta-h3-size) + var(--ks-mobile-type-step, 0px));
  font-style: var(--kp-sutta-h3-style) !important;
  font-weight: var(--kp-sutta-h3-weight);
}
.kp-sutta-body .kp-heading-level-4,
.kp-sutta-body .kp-continuous-translation h4 {
  margin-top: 1.65em;
  color: var(--kp-sutta-h4-color);
  font-size: calc(var(--kp-sutta-h4-size) + var(--ks-mobile-type-step, 0px));
  font-style: var(--kp-sutta-h4-style) !important;
  font-weight: var(--kp-sutta-h4-weight);
}

.kp-structural-heading .kp-seg-es,
.kp-structural-heading .kp-seg-pali,
.kp-structural-heading .kp-side-es,
.kp-structural-heading .kp-side-pali,
.kp-structural-heading .kp-line-es,
.kp-structural-heading .kp-line-pali {
  font-family: inherit !important;
  font-size: inherit !important;
  font-style: inherit !important;
  line-height: inherit !important;
  font-weight: inherit !important;
}

/* Solo pali: párrafos reconstruidos desde html_text, sin cortes visuales de Bilara. */
.kp-sutta-body.kp-mode-pali .kp-paragraph-pali { display: block; color: var(--kp-text); font-weight: 300; }
.kp-sutta-body.kp-mode-pali .kp-paragraph-es,
.kp-sutta-body.kp-mode-pali .kp-paragraph-sidebyside,
.kp-sutta-body.kp-mode-pali .kp-paragraph-lines { display: none; }
.kp-sutta-body.kp-mode-pali .kp-seg-pali { display: inline; color: var(--kp-text); font-weight: 300; }
.kp-sutta-body.kp-mode-pali .kp-heading-pali { display: block; color: var(--kp-text); }
.kp-sutta-body.kp-mode-pali .kp-paragraph.kp-gatha .kp-seg-pali {
  display: block;
  margin: 0;
  padding: 0;
}

/* Solo español: párrafos reales y segmentos inline. */
.kp-sutta-body.kp-mode-plain .kp-paragraph-es { display: block; font-weight: 300; }
.kp-sutta-body.kp-mode-plain .kp-paragraph-pali,
.kp-sutta-body.kp-mode-plain .kp-paragraph-sidebyside,
.kp-sutta-body.kp-mode-plain .kp-paragraph-lines { display: none; }
.kp-sutta-body.kp-mode-plain .kp-seg-es { display: inline; font-weight: 300; }
.kp-sutta-body.kp-mode-plain .kp-heading-es { display: block; }

/* Una traducción vacía nunca se sustituye por pali.
 * Los párrafos sin traducción permanecen fuera del flujo hasta que SEG
 * necesita proyectar su referencia vacía. Los encabezados estructurales
 * sin traducción no se muestran en la vista de traducción. */
.kp-sutta-body.kp-mode-plain .kp-structural-heading.kp-heading-no-translation,
.kp-sutta-body.kp-mode-plain .kp-paragraph.kp-paragraph-no-spanish {
  display: none;
}
.kp-sutta-page.kp-refs-active .kp-sutta-body.kp-mode-plain .kp-paragraph.kp-paragraph-no-spanish {
  display: block;
}

/* Textos en verso: respetar las líneas de SuttaCentral en modo solo idioma.
 * La sangría pertenece al párrafo gatha; cada segmento solo crea una línea. */
.kp-sutta-body.kp-mode-plain .kp-paragraph.kp-gatha .kp-seg-es {
  display: block;
  margin: 0;
  padding: 0;
  font-weight: 300;
}


/* Lado a lado: filas por segmento, agrupadas por párrafo real. */
.kp-sutta-body.kp-mode-sidebyside .kp-paragraph-es,
.kp-sutta-body.kp-mode-sidebyside .kp-paragraph-pali,
.kp-sutta-body.kp-mode-sidebyside .kp-paragraph-lines { display: none; }
.kp-sutta-body.kp-mode-sidebyside .kp-paragraph-sidebyside { display: block; }
.kp-sutta-body.kp-mode-sidebyside .kp-heading-sidebyside { display: block; }
.kp-side-pair {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: 0 84px;
  align-items: start;
  min-width: 0;
  margin: 0 0 .34em;
}
.kp-side-pair:last-child { margin-bottom: 0; }
.kp-side-es,
.kp-side-pali {
  display: block;
  min-width: 0;
  margin: 0;
  padding: 0;
  overflow-wrap: anywhere;
  font-weight: 300;
}
.kp-side-es { padding-right: 8px; }
.kp-side-pali {
  border-left: 1px solid #eee;
  padding-left: 36px;
}
@media (max-width: 760px) {
  .kp-side-pair { gap: 0 24px; }
  .kp-side-pali { padding-left: 18px; }
}

/* Línea a línea: un solo párrafo continuo, alternando español y pali. */
.kp-sutta-body.kp-mode-linebyline .kp-paragraph-es,
.kp-sutta-body.kp-mode-linebyline .kp-paragraph-pali,
.kp-sutta-body.kp-mode-linebyline .kp-paragraph-sidebyside { display: none; }
.kp-sutta-body.kp-mode-linebyline .kp-heading-lines { display: block; }
.kp-sutta-body.kp-mode-linebyline .kp-paragraph-lines {
  display: block;
  margin: 0;
  padding: 0;
  line-height: var(--kp-reader-line-mode-line-height, 1.5) !important;
}
.kp-line-es,
.kp-line-pali {
  display: block;
  margin: 0;
  padding: 0;
  line-height: var(--kp-reader-line-mode-line-height, 1.5) !important;
}
.kp-line-es { color: var(--kp-text); font-weight: 400; margin-bottom: .12em; }
.kp-line-pali { color: #8a837a; font-weight: 300; margin-bottom: .58em; }
.kp-paragraph-lines > .kp-line-pali:last-child { margin-bottom: 0; }
.kp-sutta-body.kp-mode-linebyline .kp-paragraph { margin-bottom: 1.20em; }

/* ───────────────────────── Notas y variantes ───────────────────────── */

.kp-note-marker {
  position: relative;
  display: inline-block;
  margin-inline-start: 0;
  margin-inline-end: .3em;
  color: var(--kp-accent);
  font-size: calc(.95em + var(--ks-mobile-type-step, 0px));
  font-weight: 700;
  line-height: 1;
  vertical-align: super;
  cursor: help;
  outline: none;
}

.kp-note-comment { color: var(--kp-accent); }
body.single-kp_sutta .kp-sutta-page .kp-note-marker.kp-note-variant { color: var(--extra-color-2, #fff176) !important; }
.kp-sutta-page.kp-notes-hidden .kp-note-marker {
  display: inline-block !important;
  width: .44em;
  min-width: .44em;
  margin-inline-start: 0;
  margin-inline-end: .3em;
  visibility: hidden !important;
  pointer-events: none !important;
}
.kp-sutta-page:not(.kp-notes-hidden) .kp-note-marker { display: inline-block; }
.kp-sutta-page.kp-reader-disclosure-open .kp-note-marker,
.kp-sutta-page.kp-reader-disclosure-open .kp-note-tooltip,
.kp-sutta-page.kp-reader-disclosure-open .kp-gloss-tooltip { visibility: hidden !important; }

/* Referencias SEG/Legacy: contrato visual inmutable en `reader-interaction-v2.css`.
 * `frontend.css` conserva el resto de la tipografía y geometría del lector, pero
 * no vuelve a definir REF para evitar dos autoridades CSS. */

/* ───────────────────────── Glosario ───────────────────────── */

mark.kp-gloss {
  position: relative;
  display: inline;
  background: transparent;
  border-bottom: none;
  color: inherit;
  padding: 0;
  cursor: inherit;
  pointer-events: none;
}

/* Activo: el toggle añade kp-gloss-active al contenedor */
.kp-gloss-active mark.kp-gloss {
  border-bottom: 1px solid var(--kp-accent);
  cursor: help;
  pointer-events: auto;
}

.kp-gloss-active mark.kp-gloss:focus-visible {
  outline: 1px solid var(--kp-accent);
  outline-offset: 2px;
}

/* ───────────────────────── Tooltips flotantes ───────────────────────── */

.kp-gloss-tooltip,
.kp-note-tooltip {
  position: fixed;
  z-index: var(--ks-layer-tooltip, 1000350);
  left: var(--kp-tip-left, 16px);
  top: var(--kp-tip-top, 88px);
  right: auto;
  bottom: auto;
  transform: none;
  display: none;
  box-sizing: border-box;
  max-width: calc(100vw - 32px);
  max-height: calc(100vh - 32px);
  overflow: auto;
  padding: 14px 16px;
  border: 1px solid rgba(120, 103, 82, .22);
  border-radius: 16px;
  background: var(--kp-hero-bg);
  box-shadow: 0 16px 36px rgba(0,0,0,.13);
  color: var(--kp-tooltip-text);
  font-family: "Noto Sans", "Fira Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  font-size: calc(16px + var(--ks-mobile-type-step, 0px));
  line-height: 1.55;
  font-weight: 400;
  text-align: left;
  white-space: normal;
  pointer-events: auto;
}

.kp-gloss-tooltip { width: min(360px, calc(100vw - 32px)); }
.kp-note-tooltip { width: min(520px, calc(100vw - 32px)); }

.kp-gloss-active mark.kp-gloss.kp-tip-open .kp-gloss-tooltip,
.kp-note-marker.kp-tip-open .kp-note-tooltip { display: block; }

/* Puentes invisibles para desktop hover. En móvil no afectan al toque. */
.kp-gloss-active mark.kp-gloss::after,
.kp-note-marker::after {
  content: "";
  position: absolute;
  left: -12px;
  right: -12px;
  bottom: 100%;
  height: 24px;
  display: none;
  background: transparent;
}
.kp-gloss-active mark.kp-gloss.kp-tip-open::after,
.kp-note-marker.kp-tip-open::after { display: block; }

.kp-gloss-tooltip-title,
.kp-gloss-tooltip-text,
.kp-license-title,
.kp-license-subtitle,
.kp-license-text { display: block; }

.kp-gloss-tooltip-title {
  margin: 0 0 6px;
  color: #4f4942;
  font-size: calc(16px + var(--ks-mobile-type-step, 0px));
  font-weight: 500;
  line-height: 1.35;
}
.kp-gloss-tooltip-text {
  margin: 0;
  font-size: calc(16px + var(--ks-mobile-type-step, 0px));
  line-height: 1.55;
  font-weight: 400;
}
.kp-gloss-tooltip-link {
  display: inline-block;
  margin-top: 9px;
  font-size: calc(13px + var(--ks-mobile-type-step, 0px));
  line-height: 1.2;
}

/* ───────────────────────── Créditos y CC0 ───────────────────────── */

.kp-sutta-credits {
  width: min(100%, var(--kp-reading-width));
  max-width: var(--kp-reading-width);
  margin: 44px auto 0;
  padding: 14px var(--kp-reading-pad) 0;
  border-top: 1px solid rgba(0,0,0,.12);
  color: #7a746b;
  font-family: "Noto Sans", "Fira Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  font-size: calc(14px + var(--ks-mobile-type-step, 0px));
  line-height: 1.52;
}
.kp-sutta-credits p { margin: 0; padding: 0; }

.kp-license-info {
  position: relative;
  display: inline-block;
  margin-left: .28em;
  vertical-align: baseline;
}
.kp-license-info-btn {
  width: 18px;
  height: 18px;
  border: 1px solid color-mix(in srgb, var(--kp-accent) 55%, transparent);
  border-radius: 50%;
  background: transparent;
  color: var(--kp-accent);
  font: 600 calc(12px + var(--ks-mobile-type-step, 0px))/16px "Noto Sans", "Fira Sans", sans-serif;
  text-align: center;
  padding: 0;
  cursor: help;
}
.kp-license-tooltip {
  position: absolute;
  z-index: var(--ks-layer-tooltip, 1000350);
  left: 50%;
  bottom: calc(100% + 10px);
  transform: translateX(-50%);
  display: none;
  width: min(420px, 82vw);
  max-height: 62vh;
  overflow: auto;
  padding: 18px 20px;
  border: 1px solid rgba(120, 103, 82, .22);
  border-radius: 18px;
  background: var(--kp-hero-bg);
  box-shadow: 0 14px 34px rgba(0,0,0,.14);
  color: #6f675d;
  font-family: "Noto Sans", "Fira Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  font-size: calc(13.5px + var(--ks-mobile-type-step, 0px));
  font-weight: 300;
  line-height: 1.52;
  text-align: left;
  white-space: normal;
}
.kp-license-info:hover .kp-license-tooltip,
.kp-license-info:focus-within .kp-license-tooltip { display: block; }
.kp-license-title {
  margin: 0 0 3px;
  color: #4f4942;
  font-size: calc(16px + var(--ks-mobile-type-step, 0px));
  font-weight: 500;
  line-height: 1.3;
}
.kp-license-title-small { margin-top: 12px; }
.kp-license-subtitle {
  margin: 0 0 10px;
  color: #8b7f70;
  font-size: calc(13px + var(--ks-mobile-type-step, 0px));
  font-weight: 400;
  line-height: 1.35;
}
.kp-license-text {
  margin: 7px 0 0;
  color: #6f675d;
  font-size: calc(13.5px + var(--ks-mobile-type-step, 0px));
  line-height: 1.52;
}

/* ───────────────────────── Responsive ───────────────────────── */

@media (max-width: 900px) {
  .kp-sutta-hero { padding: 32px 22px 30px; }
  .kp-sutta-page.kp-active-linebyline .kp-hero-inner,
  .kp-sutta-page.kp-active-sidebyside .kp-hero-inner { width: min(100%, 900px); }
  .kp-hero-panel-sidebyside {
    grid-template-columns: 1fr;
    gap: 30px;
  }
  .kp-hero-lang-pali {
    border-left: none;
    border-top: 1px solid color-mix(in srgb, var(--kp-hero-line) 28%, transparent);
    padding-left: 0;
    padding-top: 28px;
  }
}

@media (max-width: 767px), (pointer: coarse) and (orientation: portrait) {
  .kp-sutta-hero .kp-hero-title {
    max-width: 100%;
    font-size: clamp(22px, 6.5vw, 32px);
    line-height: 1.12;
    overflow-wrap: anywhere;
    word-break: normal;
    hyphens: none;
  }
}

/* Estados visuales de segmento: autoridad única en reader-interaction-v2.css. */

@media (max-width: 767px), (pointer: coarse) and (orientation: portrait) {
  .kp-view-controls {
    left: auto;
    transform: none;
    display: grid;
    grid-template-columns: max-content minmax(0, 1fr);
    grid-template-rows: auto auto;
    align-items: center;
    column-gap: 4px;
    row-gap: 8px;
    width: 100%;
    padding-left: 12px;
    padding-right: 12px;
  }
  .kp-reader-primary-actions {
    grid-column: 1;
    grid-row: 2;
    justify-content: flex-end;
    flex-wrap: nowrap;
    gap: 3px;
    min-width: 0;
  }
  .kp-reader-primary-actions:empty {
    display: none;
  }
  .kp-view-controls:not(:has(.kp-reader-primary-actions)) .kp-view-modes {
    grid-column: 1 / -1;
    justify-content: center;
  }
  .kp-view-modes {
    grid-column: 2;
    grid-row: 2;
    justify-content: flex-start;
    flex-wrap: nowrap;
    gap: 2px;
    min-width: 0;
    margin-top: 0;
  }
  .kp-view-label {
    display: none;
  }
  .kp-mode-btn {
    min-height: 30px;
    padding: 4px 4px;
    font-size: calc(11.5px + var(--ks-mobile-type-step, 0px));
  }
  .kp-controls-back-link {
    grid-column: 1 / -1;
    grid-row: 1;
    margin-right: 0;
    white-space: nowrap;
  }
  /* La Sutta App ya ofrece navegación global mediante el rail y oculta el
     enlace de retorno. Su lector puede compactar versiones + vistas en la
     primera fila y reservar la segunda para las herramientas. */
  .ks-sutta-app-reader .kp-reader-primary-actions {
    grid-row: 1;
  }
  .ks-sutta-app-reader .kp-view-modes {
    grid-row: 1;
  }
  .ks-sutta-app-reader .kp-reader-tools {
    grid-row: 2;
  }
  .kp-reader-tools {
    grid-column: 1 / -1;
    grid-row: 3;
    justify-content: center;
    flex-wrap: nowrap;
    min-width: 0;
    gap: 4px;
  }
  .kp-reader-tools .kp-mobile-control-label { display: none; }
  .kp-version-control {
    margin-left: 0;
  }
  .kp-view-separator {
    height: 20px;
    margin: 0 1px;
  }
  .kp-version-menu {
    left: auto;
    right: 0;
  }
  .kp-control-spacer {
    display: none;
  }
  .kp-gloss-tooltip { width: min(340px, calc(100vw - 24px)); }
  .kp-note-tooltip { width: min(420px, calc(100vw - 24px)); }
  .kp-gloss-tooltip,
  .kp-note-tooltip {
    max-width: calc(100vw - 24px);
    max-height: calc(100vh - 24px);
  }
  .kp-license-tooltip {
    left: auto;
    right: -10px;
    transform: none;
    width: min(360px, calc(100vw - 34px));
  }
  body.admin-bar .ks-reader-map-host,
  body.admin-bar .ks-reader-map-host .kp-d3-v2,
  body.admin-bar .ks-reader-map-host .kp-d3-v2-stage {
    min-height: calc(100vh - 46px) !important;
    height: calc(100vh - 46px) !important;
  }
}



/* ─── Variante de color de controles: verde accent ─────────────── */
/* Solo afecta a botones de vista, glosario y notas.               */
/* Solo cambia controles. Subrayados, comentarios y enlaces siguen var(--extra-color-1); variantes siguen var(--extra-color-2); líneas del hero siguen var(--accent-color). */

body.single-kp_sutta .kp-sutta-page.kp-accent-green {
  --kp-control-accent: var(--accent-color, #8c8630);
}

/* Contrato de presentación Bilara.
 * La estructura del release decide la función; KarunaPura conserva la
 * jerarquía editorial con una escala menor, cursiva y color atenuado. */
.kp-sutta-body .kp-paratext {
  --kp-paratext-align: left;
  --kp-paratext-color: #8b857e;
  --kp-paratext-weight: 400;
  --kp-paratext-transform: none;
  --kp-paratext-tracking: normal;
  --kp-reader-text-size: calc(14px + var(--ks-mobile-type-step, 0px));
  --kp-reader-text-line-height: 1.5;
  --kp-reader-line-mode-line-height: 1.5;
  margin-bottom: .8em;
  color: var(--kp-paratext-color);
  font-size: var(--kp-reader-text-size);
  font-style: italic;
  font-weight: var(--kp-paratext-weight);
  line-height: var(--kp-reader-text-line-height);
  text-align: var(--kp-paratext-align);
  text-transform: var(--kp-paratext-transform);
  letter-spacing: var(--kp-paratext-tracking);
}
.kp-sutta-body .kp-paragraph:not(.kp-paratext) + .kp-paratext:not(.kp-paratext-subsection-close) {
  margin-top: 2.35em;
}
.kp-sutta-body .kp-paratext .kp-paragraph-es,
.kp-sutta-body .kp-paratext .kp-paragraph-pali,
.kp-sutta-body .kp-paratext .kp-side-es,
.kp-sutta-body .kp-paratext .kp-side-pali,
.kp-sutta-body .kp-paratext .kp-line-es,
.kp-sutta-body .kp-paratext .kp-line-pali,
.kp-sutta-body .kp-paratext .kp-seg-es,
.kp-sutta-body .kp-paratext .kp-seg-pali {
  color: inherit;
  font-style: inherit;
  font-weight: inherit;
  text-align: inherit;
  text-transform: inherit;
  letter-spacing: inherit;
}

/* Contrato canónico de versos Bilara. Todo <blockquote class="gatha"> y
 * toda línea con semántica verse-line se proyecta a kp-gatha. La sangría se
 * aplica a la unidad visual de cada modo, no al span de segmento, para que el
 * resultado sea idéntico en solo idioma, solo pali, lado a lado y línea a línea. */
.kp-sutta-body .kp-paragraph.kp-gatha {
  --kp-verse-inset: clamp(1.25rem, 4.5%, 3.5rem);
  box-sizing: border-box;
  padding-inline-start: 0;
}
.kp-sutta-body .kp-paragraph.kp-gatha .kp-paragraph-es,
.kp-sutta-body .kp-paragraph.kp-gatha .kp-paragraph-pali,
.kp-sutta-body .kp-paragraph.kp-gatha .kp-side-es,
.kp-sutta-body .kp-paragraph.kp-gatha .kp-side-pali,
.kp-sutta-body .kp-paragraph.kp-gatha .kp-line-es,
.kp-sutta-body .kp-paragraph.kp-gatha .kp-line-pali {
  box-sizing: border-box;
  padding-inline-start: var(--kp-verse-inset);
}
.kp-sutta-body .kp-paragraph.kp-gatha .kp-paragraph-es .kp-seg-es,
.kp-sutta-body .kp-paragraph.kp-gatha .kp-paragraph-pali .kp-seg-pali {
  padding-inline-start: 0;
}


/* Etiquetas de interlocutor Bilara (p. ej. Cnd 2). La semántica procede del
 * wrapper/role y se proyecta igual en las cuatro vistas del lector. */
.kp-sutta-body .kp-speaker-segment {
  box-sizing: border-box;
  font-style: italic !important;
  padding-inline-start: clamp(.75rem, 2.25%, 1.5rem);
}
.kp-sutta-body span.kp-speaker-segment {
  display: block;
}

/* Invocación o front matter canónico. */
.kp-sutta-body .kp-paratext-invocation {
  --kp-paratext-align: center;
  --kp-paratext-weight: 500;
  margin: 1.25em 0 2.15em;
}

/* Instrucción editorial de expansión o peyyāla. */
.kp-sutta-body .kp-paratext-expansion {
  --kp-paratext-align: left;
  margin-top: 1.35em;
  margin-bottom: 1.35em;
}

/* Cierre del discurso. */
.kp-sutta-body .kp-paratext-sutta-close {
  --kp-paratext-align: center;
  --kp-paratext-weight: 600;
  margin-top: 2.65em;
}

/* Cierre de vagga o sección: conserva el nivel versal del contrato previo. */
.kp-sutta-body .kp-paratext-section-close {
  --kp-paratext-align: center;
  --kp-paratext-weight: 500;
  --kp-paratext-transform: uppercase;
  --kp-paratext-tracking: .035em;
  margin-top: 2.2em;
}

/* Introducción del uddāna. */
.kp-sutta-body .kp-paratext-uddana-intro {
  --kp-paratext-align: left;
  --kp-paratext-weight: 600;
  margin-top: 2.25em;
  margin-bottom: 1em;
}

/* Recapitulación métrica: blockquote editorial con una sangría algo mayor. */
.kp-sutta-body .kp-paragraph.kp-paratext-uddana-verse {
  --kp-paratext-align: left;
  --kp-paratext-weight: 400;
  --kp-verse-inset: clamp(1.75rem, 6%, 4.5rem);
  margin-top: .25em;
  margin-bottom: 1.1em;
}
.kp-sutta-body .kp-paratext-uddana-verse .kp-seg-es,
.kp-sutta-body .kp-paratext-uddana-verse .kp-seg-pali,
.kp-sutta-body .kp-paratext-uddana-verse .kp-line-es,
.kp-sutta-body .kp-paratext-uddana-verse .kp-line-pali {
  display: block;
}

/* Cierre interno de una subsección Bilara (`endsection`).
 * Pertenece al bloque que acaba: queda próximo al texto precedente, separado
 * con claridad del bloque siguiente y no se transforma a versales. */
.kp-sutta-body .kp-paratext-subsection-close {
  --kp-paratext-align: center;
  --kp-paratext-weight: 500;
  --kp-paratext-transform: none;
  --kp-paratext-tracking: normal;
  margin-top: .45em;
  margin-bottom: 2.15em;
}

/* Colofón de libro, sección, kanda o colección. */
.kp-sutta-body .kp-paratext-collection-close {
  --kp-paratext-align: center;
  --kp-paratext-weight: 600;
  --kp-paratext-transform: uppercase;
  --kp-paratext-tracking: .04em;
  margin-top: 2.55em;
}

/* El paratexto sin traducción conserva su pista segmentaria vacía.
 * En modo Traducción no proyecta el texto pali; SEG puede mostrar la
 * referencia mediante la regla canónica de párrafos sin traducción. */

/* <j> marca en Bilara una junta métrica dentro de una línea de verso. */
.kp-bilara-join {
  display: inline-block;
  width: 1.35em;
}

.kp-sutta-body.kp-mode-pali .kp-paratext .kp-paragraph-pali {
  display: block;
}

/* En la vista bilingüe pertenece siempre a la columna pali. */
.kp-side-pair.kp-side-pali-only {
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
}
.kp-side-pair.kp-side-pali-only .kp-side-pali {
  grid-column: 2;
  border-left: 1px solid #eee;
  padding-left: 36px;
}

/* ─── Selector de versiones de traducción ───────────────────────── */
.kp-version-control {
  position: relative;
  display: inline-flex;
  align-items: center;
  margin-left: 4px;
}
.kp-version-toggle .kp-icon-toggle-symbol {
  font-weight: 500;
  letter-spacing: 0;
}
.kp-version-list-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 17px;
  height: 17px;
  line-height: 1;
}
.kp-version-list-icon svg {
  display: block;
  width: 17px;
  height: 17px;
  fill: none;
  stroke: #5f584f;
  stroke-width: 1.8;
  stroke-linecap: round;
  stroke-linejoin: round;
}
.kp-version-toggle:hover .kp-version-list-icon svg,
.kp-version-toggle:focus-visible .kp-version-list-icon svg {
  stroke: var(--kp-control-accent);
}
.kp-version-toggle.is-active .kp-version-list-icon svg,
.kp-version-toggle[aria-expanded="true"] .kp-version-list-icon svg {
  stroke: #3f3a34;
}
.kp-version-menu {
  position: absolute;
  top: calc(100% + 10px);
  right: 0;
  z-index: var(--ks-layer-popover, 1000300);
  width: max-content;
  min-width: 210px;
  max-width: min(320px, calc(100vw - 32px));
  padding: 10px;
  border: 1px solid #ddd5ca;
  border-radius: 16px;
  background: #fff;
  box-shadow: 0 14px 34px rgba(0, 0, 0, .10);
  color: #5f584f;
}
body.single-kp_sutta .kp-reader-floating-panel.kp-version-menu {
  max-height: calc(100vh - 24px);
  overflow-y: auto;
  overflow-x: hidden;
}
.kp-version-menu-title {
  padding: 4px 8px 9px;
  color: #746b61;
  font-size: calc(12.5px + var(--ks-mobile-type-step, 0px));
  font-weight: 500;
  line-height: 1.2;
}
.kp-version-option {
  display: flex;
  align-items: center;
  gap: 8px;
  width: 100%;
  min-height: 38px;
  padding: 8px 9px;
  border: 0;
  border-radius: 10px;
  background: transparent;
  color: #4f4942;
  font: inherit;
  font-size: calc(13.5px + var(--ks-mobile-type-step, 0px));
  line-height: 1.3;
  text-align: left;
  cursor: pointer;
}
.kp-version-option:hover,
.kp-version-option:focus-visible {
  background: color-mix(in srgb, var(--kp-control-accent) 10%, transparent);
  outline: none;
}
.kp-version-option.is-active {
  color: var(--kp-control-accent);
  font-weight: 500;
}
.kp-version-dot {
  width: 1em;
  text-align: center;
  font-size: calc(11px + var(--ks-mobile-type-step, 0px));
}
.kp-version-label {
  min-width: 0;
}
.kp-version-bilara-badge {
  display: inline-flex;
  align-items: center;
  flex: 0 0 auto;
  margin-left: auto;
  padding: 2px 7px 3px;
  border: 1px solid color-mix(in srgb, var(--kp-control-accent) 48%, #ddd5ca);
  border-radius: 999px;
  background: color-mix(in srgb, var(--kp-control-accent) 7%, #fff);
  color: color-mix(in srgb, var(--kp-control-accent) 86%, #4f4942);
  font-family: "Fira Sans", "Noto Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  font-size: calc(9.5px + var(--ks-mobile-type-step, 0px));
  font-weight: 600;
  line-height: 1.1;
  letter-spacing: .035em;
  text-transform: uppercase;
  white-space: nowrap;
}


.kp-sutta-page.kp-active-pali .kp-paragraph-pali,
.kp-sutta-page.kp-active-pali .kp-seg-pali {
  color: var(--kp-text);
}

/* Solo el cuerpo pali ordinario va en redonda. El paratexto conserva la
 * cursiva editorial solicitada en todas las vistas. */
.kp-sutta-page.kp-active-pali .kp-hero-panel-pali-only .kp-hero-title,
.kp-sutta-page.kp-active-pali .kp-paragraph:not(.kp-paratext) .kp-paragraph-pali,
.kp-sutta-page.kp-active-pali .kp-paragraph:not(.kp-paratext) .kp-seg-pali:not(.kp-speaker-segment),
.kp-sutta-page.kp-active-pali .kp-structural-heading [lang="pi"] {
  font-style: normal !important;
}

/* ─── Navegación hacia la colección de suttas ─────────────────── */
.kp-controls-back-link {
  display: inline-flex;
  align-items: center;
  flex: 0 0 auto;
  margin-right: 10px;
  padding: 5px 12px;
  border: 1px solid rgba(120, 114, 106, .24);
  border-radius: 999px;
  background: rgba(255,255,255,.58);
  color: #6f675d;
  font: inherit;
  line-height: 1.25;
  text-decoration: none;
  transition: background .15s ease, border-color .15s ease, color .15s ease;
}
.kp-controls-back-link:hover,
.kp-controls-back-link:focus-visible {
  border-color: var(--kp-control-accent);
  background: #fff;
  color: var(--kp-control-accent);
  outline: none;
  text-decoration: none;
}
.kp-sutta-reader-end {
  width: 100%;
  min-width: 0;
  padding-bottom: 36px;
}
.kp-sutta-bottom-nav {
  width: min(calc(100% - 72px), 1280px);
  max-width: 1280px;
  margin: 76px auto 0;
  padding: 0;
  position: static;
  left: auto;
  transform: none;
  font-family: "Noto Sans", "Fira Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}
.kp-sutta-nav-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  align-items: stretch;
  gap: clamp(18px, 2.1vw, 32px);
}
.kp-sutta-bottom-nav a {
  text-decoration: none;
  transition: background .15s ease, border-color .15s ease, color .15s ease, box-shadow .15s ease, transform .15s ease;
}
.kp-sutta-nav-home {
  display: inline-flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  justify-self: center;
  align-self: center;
  width: 178px;
  min-width: 178px;
  padding: 11px 18px;
  border: 1px solid rgba(120, 114, 106, .20);
  border-radius: 999px;
  background: rgba(255,255,255,.46);
  color: #6f675d;
  line-height: 1.22;
  white-space: nowrap;
  box-shadow: 0 2px 0 rgba(218, 165, 32, .52);
}
.kp-sutta-nav-home-kicker {
  color: #9a8f2a;
  font-size: calc(9px + var(--ks-mobile-type-step, 0px));
  font-weight: 700;
  letter-spacing: .11em;
  text-transform: uppercase;
}
.kp-sutta-nav-home-label {
  font-size: calc(13px + var(--ks-mobile-type-step, 0px));
  font-weight: 300;
}
.kp-sutta-nav-card {
  display: flex;
  width: 100%;
  min-width: 0;
  min-height: 166px;
  flex-direction: column;
  justify-content: center;
  gap: 8px;
  padding: 22px 26px;
  border: 1px solid rgba(158, 146, 72, .22);
  border-radius: 18px;
  background: rgba(255,255,255,.62);
  box-shadow: 0 2px 0 rgba(218, 165, 32, .68);
  color: #6f675d;
}
.kp-sutta-nav-prev { text-align: left; }
.kp-sutta-nav-next {
  text-align: right;
  border-color: rgba(158, 146, 72, .30);
  box-shadow: 0 3px 0 rgba(218, 165, 32, .78);
}

.kp-sutta-nav-empty { visibility: hidden; }
.kp-sutta-nav-kicker {
  color: #9a8f2a;
  font-size: calc(11px + var(--ks-mobile-type-step, 0px));
  font-weight: 600;
  letter-spacing: .08em;
  line-height: 1.25;
  text-transform: uppercase;
}
.kp-sutta-nav-title {
  color: #4f4942;
  font-size: calc(18px + var(--ks-mobile-type-step, 0px));
  font-weight: 600;
  line-height: 1.22;
  overflow-wrap: anywhere;
}
.kp-sutta-nav-meta {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 6px;
  color: #9a8f2a;
  font-size: calc(12px + var(--ks-mobile-type-step, 0px));
  line-height: 1.25;
  text-transform: uppercase;
}
.kp-sutta-nav-next .kp-sutta-nav-meta { justify-content: flex-end; }
.kp-sutta-nav-pali {
  color: #9b948b;
  font-size: calc(16px + var(--ks-mobile-type-step, 0px));
  font-style: italic;
  font-weight: 300;
  letter-spacing: .01em;
  line-height: 1.25;
  text-transform: none;
}
body.single-kp_sutta .kp-sutta-page .kp-sutta-nav-card .kp-sutta-nav-pali[lang="pi"] {
  font-size: calc(16px + var(--ks-mobile-type-step, 0px)) !important;
  line-height: 1.25 !important;
  font-weight: 300 !important;
}
.kp-sutta-nav-dot {
  color: rgba(154, 143, 42, .58);
  font-weight: 600;
}
.kp-sutta-nav-ref {
  color: #9a8f2a;
  font-size: calc(16px + var(--ks-mobile-type-step, 0px));
  font-weight: 700;
  letter-spacing: .04em;
}
body.single-kp_sutta .kp-sutta-page .kp-sutta-nav-card .kp-sutta-nav-ref {
  font-size: calc(16px + var(--ks-mobile-type-step, 0px)) !important;
  line-height: 1.25 !important;
}
.kp-sutta-nav-blurb {
  display: -webkit-box;
  width: 100%;
  color: #817970;
  font-size: calc(13px + var(--ks-mobile-type-step, 0px));
  font-weight: 300;
  line-height: 1.42;
  max-width: none;
  overflow: hidden;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
}
.kp-sutta-nav-next .kp-sutta-nav-blurb { align-self: stretch; }
.kp-sutta-bottom-nav a:hover,
.kp-sutta-bottom-nav a:focus-visible {
  border-color: var(--kp-control-accent);
  background: #fff;
  color: var(--kp-control-accent);
  outline: none;
  text-decoration: none;
}
.kp-sutta-nav-card:hover,
.kp-sutta-nav-card:focus-visible,
.kp-sutta-nav-home:hover,
.kp-sutta-nav-home:focus-visible {
  box-shadow: 0 3px 0 rgba(218, 165, 32, .88), 0 14px 34px rgba(0,0,0,.06);
  transform: translateY(-1px);
}
@media (max-width: 900px) {
  .kp-sutta-nav-grid {
    grid-template-columns: 1fr 1fr;
    grid-template-areas: "prev next";
    gap: 14px;
  }
  .kp-sutta-nav-prev { grid-area: prev; }
  .kp-sutta-nav-next { grid-area: next; }
  .kp-sutta-nav-home {
    grid-area: home;
    justify-self: center;
    width: min(260px, 100%);
    min-width: 0;
    margin-top: 4px;
  }
  .kp-sutta-nav-card {
    min-height: 142px;
    text-align: left;
  }
  .kp-sutta-nav-next { text-align: right; }
  .kp-sutta-nav-empty { display: none; }
}
@media (max-width: 760px) {
  .kp-sutta-bottom-nav {
    width: min(calc(100% - 32px), 1280px);
    margin-top: 48px;
  }
  .kp-sutta-nav-grid {
    grid-template-columns: 1fr;
    grid-template-areas:
      "next"
      "prev";
    gap: 12px;
  }
  .kp-sutta-nav-card {
    min-height: 132px;
    padding: 18px 20px;
    text-align: left;
  }
  .kp-sutta-nav-next { text-align: left; }

  .kp-sutta-nav-next .kp-sutta-nav-meta { justify-content: flex-start; }
  .kp-sutta-nav-next .kp-sutta-nav-blurb { align-self: stretch; }
  .kp-sutta-nav-home {
    width: min(280px, 100%);
    padding-top: 9px;
    padding-bottom: 9px;
  }
  .kp-sutta-nav-next {
    border-color: rgba(158, 146, 72, .34);
    box-shadow: 0 3px 0 rgba(218, 165, 32, .82);
  }
}

/* ─── Ruta sutta en el hero ────────────────────────────────────── */
.kp-pali-route {
  --kp-route-width: min(calc(100vw - 72px), var(--kp-wide-width));
  display: flex;
  align-items: baseline;
  justify-content: center;
  gap: 9px;
  width: var(--kp-route-width);
  max-width: none;
  margin: 14px 0 0 50%;
  transform: translateX(-50%);
  padding-top: 10px;
  border-top: 1px solid color-mix(in srgb, var(--kp-hero-line) 28%, transparent);
  color: #8a8177;
  font-family: "Noto Sans", "Fira Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  font-size: 14px;
  font-weight: 300;
  line-height: 1.45;
  text-align: center;
  flex-wrap: nowrap;
}
.kp-pali-route-label,
.kp-pali-route-badge {
  display: inline-flex;
  align-items: center;
  white-space: nowrap;
}
.kp-pali-route-label {
  color: #6f675d;
  font-size: 12px;
  font-weight: 500;
  letter-spacing: .08em;
  text-transform: uppercase;
}
.kp-pali-route-label::after,
.kp-pali-route-badge::after {
  content: "·";
  margin-left: 9px;
  color: #aaa197;
  font-weight: 300;
}
.kp-pali-route-badge {
  color: var(--kp-hero-line, var(--accent-color, #8c8630));
  font-size: 16px;
  font-weight: 600;
  letter-spacing: .02em;
}
.kp-pali-route-text {
  display: inline-flex;
  align-items: baseline;
  justify-content: center;
  flex-wrap: wrap;
  min-width: 0;
  font-style: normal;
  white-space: normal;
}
.kp-pali-route-segment {
  display: inline-flex;
  align-items: baseline;
  max-width: 100%;
  white-space: nowrap;
}
.kp-pali-route-text a {
  color: #7c5f35;
  text-decoration: none !important;
  border-bottom: 0 !important;
  box-shadow: none !important;
  background-image: none !important;
  transition: color .16s ease;
}
.kp-pali-route-text a:hover,
.kp-pali-route-text a:focus-visible {
  color: #9b7a35;
  outline: none;
}
.kp-pali-route-sep {
  margin: 0 7px;
  color: #aaa197;
}

/* ─── Datos de publicación ─────────────────────────────────────── */
.kp-publication-control {
  position: relative;
  display: inline-flex;
  align-items: center;
}
.kp-publication-toggle .kp-icon-toggle-symbol {
  font-family: Georgia, "Times New Roman", serif;
  font-size: calc(15px + var(--ks-mobile-type-step, 0px));
  font-style: italic;
  font-weight: 600;
  transform: translateY(-1px);
}
.kp-publication-panel {
  position: absolute;
  top: calc(100% + 10px);
  right: 0;
  z-index: var(--ks-layer-popover, 1000300);
  width: min(560px, calc(100vw - 32px));
  max-height: min(68dvh, 560px);
  overflow-y: auto;
  overflow-x: hidden;
  overscroll-behavior: contain;
  -webkit-overflow-scrolling: touch;
  touch-action: pan-y;
  pointer-events: auto !important;
  scroll-behavior: auto !important;
  overflow-anchor: none;
  padding: 14px 16px 16px;
  border: 1px solid #ddd5ca;
  border-radius: 18px;
  background: #fff;
  box-shadow: 0 16px 38px rgba(0, 0, 0, .12);
  color: #5f584f;
}
body.single-kp_sutta .kp-reader-floating-panel.kp-publication-panel {
  max-height: min(70vh, calc(100vh - 24px));
}
.kp-publication-panel-title {
  margin: 0 0 10px;
  color: #4f4942;
  font-size: calc(14px + var(--ks-mobile-type-step, 0px));
  font-weight: 500;
  line-height: 1.25;
}
.kp-publication-detail-row {
  display: grid;
  grid-template-columns: minmax(110px, 31%) minmax(0, 1fr);
  gap: 10px 14px;
  padding: 9px 0;
  border-top: 1px solid rgba(0,0,0,.07);
}
.kp-publication-detail-label {
  color: #8b7f70;
  font-size: calc(12px + var(--ks-mobile-type-step, 0px));
  font-weight: 500;
  line-height: 1.35;
}
.kp-publication-detail-value {
  color: #4f4942;
  font-size: calc(12.5px + var(--ks-mobile-type-step, 0px));
  font-weight: 300;
  line-height: 1.48;
  overflow-wrap: anywhere;
}
.kp-publication-detail-value a {
  display: inline !important;
  padding: 0 !important;
  color: var(--accent-color, #8c8630) !important;
  background: none !important;
  box-shadow: none !important;
  text-decoration: none !important;
  transition: color .18s ease !important;
}
.kp-publication-detail-value a:hover,
.kp-publication-detail-value a:focus-visible {
  color: var(--extra-color-1, #daa520) !important;
  background: none !important;
  box-shadow: none !important;
  text-decoration: none !important;
  outline: none !important;
}

@media (max-width: 767px), (pointer: coarse) and (orientation: portrait) {
  .kp-pali-route {
    --kp-route-width: min(calc(100vw - 32px), var(--kp-wide-width));
    margin-top: 12px;
    padding-top: 9px;
    text-align: center;
    justify-content: center;
    flex-wrap: wrap;
    gap: 5px 8px;
  }
  .kp-pali-route-text {
    flex: 1 1 100%;
    width: 100%;
    justify-content: center;
    white-space: normal;
    text-align: center;
  }
  .kp-pali-route-label::after,
  .kp-pali-route-badge::after {
    margin-left: 8px;
  }
  .kp-publication-panel {
    right: 0;
    width: min(360px, calc(100vw - 24px));
  }
  .kp-publication-detail-row {
    grid-template-columns: 1fr;
    gap: 4px;
  }
}

/* En los modos bilingües la división vertical del hero ya actúa como eje visual.
   El separador horizontal se oculta visualmente, pero conserva su espacio para que
   el hero no salte al cambiar entre vistas. */
.kp-sutta-page.kp-active-sidebyside .kp-hero-separator,
.kp-sutta-page.kp-active-linebyline .kp-hero-separator {
  visibility: hidden;
  border-color: transparent;
}

/* Versiones HTML continuas no alineadas */
.kp-continuous-translation {
  max-width: 760px;
  margin: 0 auto;
  color: var(--kp-text);
  font-family: "Noto Sans", "Fira Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  font-size: calc(16px + var(--ks-mobile-type-step, 0px));
  font-style: normal;
  font-weight: 300;
  line-height: 1.5;
}
.kp-continuous-translation p,
.kp-continuous-translation div,
.kp-continuous-translation section,
.kp-continuous-translation article,
.kp-continuous-translation blockquote,
.kp-continuous-translation li {
  color: inherit;
  font-family: inherit !important;
  font-size: inherit !important;
  font-style: normal !important;
  font-weight: inherit;
  line-height: inherit !important;
  letter-spacing: 0;
  text-transform: none;
}
.kp-continuous-translation blockquote {
  margin: 0;
  padding: 0;
  border: 0;
}
.kp-continuous-translation ol,
.kp-continuous-translation ul {
  margin: 0 0 1.20em 1.4em;
  padding-left: 1.35em;
}
.kp-continuous-translation li {
  margin: 0 0 .18em;
  padding-left: .2em;
}
.kp-continuous-translation ol:has(> li > ol),
.kp-continuous-translation ol.kp-list-alpha-groups {
  list-style-type: upper-alpha;
}
.kp-continuous-translation ol:has(> li > ol) > li,
.kp-continuous-translation ol.kp-list-alpha-groups > li {
  margin-bottom: .68em;
}
.kp-continuous-translation ol:has(> li > ol) > li > ol,
.kp-continuous-translation ol.kp-list-alpha-groups > li > ol {
  margin: .08em 0 0 1.45em;
  padding-left: 1.2em;
  list-style-type: decimal;
}
.kp-continuous-translation ol.kp-list-alpha-groups > li ol {
  list-style-type: decimal;
}
.kp-continuous-translation header,
.kp-continuous-translation footer {
  margin: 0 0 1.8em;
  color: var(--kp-muted);
  font-size: calc(.95em + var(--ks-mobile-type-step, 0px));
}
.kp-continuous-translation p {
  margin: 0 0 1.20em;
  padding: 0;
}
.kp-sutta-page .kp-continuous-translation > i,
.kp-sutta-page .kp-continuous-translation > em,
.kp-sutta-page .kp-continuous-translation p > i:only-child,
.kp-sutta-page .kp-continuous-translation p > em:only-child,
.kp-sutta-page .kp-continuous-translation div > i:only-child,
.kp-sutta-page .kp-continuous-translation div > em:only-child,
.kp-sutta-page .kp-continuous-translation section > i:only-child,
.kp-sutta-page .kp-continuous-translation section > em:only-child,
.kp-sutta-page .kp-continuous-translation article > i:only-child,
.kp-sutta-page .kp-continuous-translation article > em:only-child,
.kp-sutta-page .kp-continuous-translation blockquote > i:only-child,
.kp-sutta-page .kp-continuous-translation blockquote > em:only-child {
  font-style: normal !important;
}
.kp-sutta-page .kp-continuous-translation .kp-continuous-add {
  color: color-mix(in srgb, var(--kp-text) 68%, transparent);
  font-style: italic !important;
}
.kp-continuous-pali-fallback {
  display: none;
}
.kp-continuous-version.kp-mode-pali .kp-continuous-translation {
  display: none;
}
.kp-continuous-version.kp-mode-pali .kp-continuous-pali-fallback {
  display: block;
  max-width: none;
  margin: 0;
  font-family: inherit;
}

@media (max-width: 760px) {
  .kp-pali-route {
    --kp-route-width: min(calc(100vw - 32px), var(--kp-wide-width));
    width: var(--kp-route-width);
    flex-wrap: wrap;
  }
}

/* 6.8.299 — espejo scoped del contrato visual del lector público para la Sutta App.
   Fuente: reglas body.single-kp_sutta del lector actual; scope equivalente: .kp-reader-scope. */
/* ═══════════════════════════════════════════════════════════════
   KarunaPura Sutta Tool · Frontend CSS v4.1.0
   Hoja depurada: sin parches históricos acumulados.
   ═══════════════════════════════════════════════════════════════ */

.kp-reader-scope .kp-sutta-page {
  --kp-accent: var(--extra-color-1, #daa520);
  --kp-control-accent: var(--extra-color-1, #daa520);
  --kp-hero-line: var(--accent-color, #8c8630);
  --kp-hero-bg: var(--extra-color-3, #f5f2ea);
  --kp-text: var(--primary-text-color, #353535);
  --kp-muted: #77716a;
  --kp-tooltip-text: #5f584f;
  --kp-reading-width: 800px;
  --kp-wide-width: 1480px;
  --kp-reading-pad: 20px;
  --kp-sutta-hero-title-size: 50px;
  --kp-sutta-hero-title-color: #4f4942;
  --kp-sutta-hero-title-weight: 300;
  --kp-sutta-hero-title-style: normal;
  --kp-sutta-h2-size: 33px;
  --kp-sutta-h2-color: var(--kp-text);
  --kp-sutta-h2-weight: 400;
  --kp-sutta-h2-style: normal;
  --kp-sutta-h3-size: 20px;
  --kp-sutta-h3-color: var(--kp-text);
  --kp-sutta-h3-weight: 400;
  --kp-sutta-h3-style: normal;
  --kp-sutta-h4-size: 17px;
  --kp-sutta-h4-color: var(--kp-text);
  --kp-sutta-h4-weight: 400;
  --kp-sutta-h4-style: normal;
  width: 100%;
  max-width: none;
  margin: 0;
  padding: 0 0 60px;
  color: var(--kp-text);
  font-family: "Noto Sans", "Fira Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  font-size: calc(16px + var(--ks-mobile-type-step, 0px));
  line-height: 1.5;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-rendering: optimizeLegibility;
  -webkit-text-size-adjust: 100%;
  text-size-adjust: 100%;
}
.kp-reader-scope .kp-reader-floating-panel {
  position: fixed !important;
  left: var(--kp-panel-left, 16px) !important;
  top: var(--kp-panel-top, 64px) !important;
  right: auto !important;
  bottom: auto !important;
  z-index: var(--ks-layer-popover, 1000300) !important;
}
.kp-reader-scope .kp-sutta-page.kp-reader-disclosure-open .kp-view-controls,
.kp-reader-scope .kp-sutta-page.kp-reader-disclosure-open .kp-version-control,
.kp-reader-scope .kp-sutta-page.kp-reader-disclosure-open .kp-publication-control {
  z-index: var(--ks-layer-controls, 1000100);
}
/* Neutralizar estilos italic del tema dentro del plugin.
   Mantiene tamaño, familia, peso y altura de línea del texto donde aparece. */
.kp-reader-scope .kp-sutta-page i,
.kp-reader-scope .kp-sutta-page em,
.kp-reader-scope .kp-sutta-page [lang="pi"],
.kp-reader-scope .kp-sutta-page [translate="no"] {
  font-family: inherit !important;
  font-size: inherit !important;
  line-height: inherit !important;
  font-weight: inherit !important;
  font-style: italic !important;
}
.kp-reader-scope .kp-sutta-page *,
.kp-reader-scope .kp-sutta-page *::before,
.kp-reader-scope .kp-sutta-page *::after {
  box-sizing: border-box;
}
.kp-reader-scope .kp-sutta-page .kp-note-marker.kp-note-variant { color: var(--extra-color-2, #fff176) !important; }
/* ─── Variante de color de controles: verde accent ─────────────── */
/* Solo afecta a botones de vista, glosario y notas.               */
/* Solo cambia controles. Subrayados, comentarios y enlaces siguen var(--extra-color-1); variantes siguen var(--extra-color-2); líneas del hero siguen var(--accent-color). */

.kp-reader-scope .kp-sutta-page.kp-accent-green {
  --kp-control-accent: var(--accent-color, #8c8630);
}
.kp-reader-scope .kp-reader-floating-panel.kp-version-menu {
  max-height: calc(100vh - 24px);
  overflow-y: auto;
  overflow-x: hidden;
}
.kp-reader-scope .kp-sutta-page .kp-sutta-nav-card .kp-sutta-nav-pali[lang="pi"] {
  font-size: calc(16px + var(--ks-mobile-type-step, 0px)) !important;
  line-height: 1.25 !important;
  font-weight: 300 !important;
}
.kp-reader-scope .kp-sutta-page .kp-sutta-nav-card .kp-sutta-nav-ref {
  font-size: calc(16px + var(--ks-mobile-type-step, 0px)) !important;
  line-height: 1.25 !important;
}
.kp-reader-scope .kp-reader-floating-panel.kp-publication-panel {
  max-height: min(70vh, calc(100vh - 24px));
}

/* 6.8.343 — cierre de contrato visual: el resaltado de referencia no cambia
   tipografía ni añade eje lateral; las ventanas flotantes siempre quedan por
   encima del texto, referencias y marcas. */
.kp-reader-primary-actions {
  display: inline-flex;
  align-items: center;
  flex-wrap: nowrap;
  gap: 8px;
  flex: 0 0 auto;
}
.kp-reader-primary-actions .kp-version-control {
  margin-left: 0;
}
.kp-view-separator {
  display: inline-block;
  width: 1px;
  height: 22px;
  margin: 0 4px;
  background: rgba(120, 114, 106, .18);
  flex: 0 0 auto;
}
.kp-sutta-page.kp-reader-disclosure-open .kp-view-controls,
body.single-kp_sutta .kp-sutta-page.kp-reader-disclosure-open .kp-view-controls,
.kp-reader-scope .kp-sutta-page.kp-reader-disclosure-open .kp-view-controls,
.ks-sutta-app-reader .kp-view-controls {
  position: relative;
  z-index: var(--ks-layer-controls, 1000100) !important;
}
.kp-reader-floating-panel,
body.single-kp_sutta .kp-reader-floating-panel,
.kp-reader-scope .kp-reader-floating-panel,
.kp-version-menu:not([hidden]),
.kp-publication-panel:not([hidden]) {
  z-index: var(--ks-layer-popover, 1000300) !important;
}


/* 6.8.729 — geometría única de paneles del lector, válida en app y página
   individual. JS fija estas variables tras medir visualViewport. */
.kp-reader-floating-panel,
body.single-kp_sutta .kp-reader-floating-panel,
.kp-reader-scope .kp-reader-floating-panel {
  box-sizing: border-box !important;
  position: fixed !important;
  left: var(--kp-panel-left, 16px) !important;
  top: var(--kp-panel-top, 64px) !important;
  right: auto !important;
  bottom: auto !important;
  width: min(var(--kp-panel-preferred-width, 560px), var(--kp-panel-max-width, calc(100dvw - 24px))) !important;
  max-width: var(--kp-panel-max-width, calc(100dvw - 24px)) !important;
  max-height: min(var(--kp-panel-max-height, calc(100dvh - 24px)), var(--kp-panel-height-cap, calc(100dvh - 24px))) !important;
  overflow: auto !important;
  overscroll-behavior: contain !important;
  z-index: var(--ks-layer-popover, 1000300) !important;
}
.kp-reader-floating-panel.kp-version-menu {
  --kp-panel-preferred-width: 320px;
  min-width: min(210px, var(--kp-panel-max-width, calc(100dvw - 24px))) !important;
}
.kp-reader-floating-panel.kp-publication-panel {
  --kp-panel-preferred-width: 560px;
  --kp-panel-height-cap: min(68dvh, 560px);
  overflow-y: auto !important;
  overflow-x: hidden !important;
  overscroll-behavior: contain !important;
  scrollbar-gutter: stable;
  -webkit-overflow-scrolling: touch;
  touch-action: pan-y;
  pointer-events: auto !important;
  scroll-behavior: auto !important;
  overflow-anchor: none;
}
.kp-sutta-page.kp-reader-disclosure-open .kp-control-tooltip,
body.single-kp_sutta .kp-sutta-page.kp-reader-disclosure-open .kp-control-tooltip,
.kp-reader-scope .kp-sutta-page.kp-reader-disclosure-open .kp-control-tooltip {
  display: none !important;
}


/* Fórmula inicial Bilara (<span class="evam">): conserva el tamaño del cuerpo,
 * pero se presenta en versales. Se aplica al segmento, no al párrafo completo. */
.kp-sutta-body [data-kp-bilara-inline="evam"] {
  font-size: inherit;
  text-transform: uppercase;
  letter-spacing: .015em;
}
