/* ==================================================
   GLOSADOR · TEMA "CÓDICE" — identidad por defecto
   ---------------------------------------------------------
   Capa aditiva sobre Vidrio: aplica con <html data-skin="glass" data-codice>;
   sin data-codice no cambia nada. La pone skins/glassSkin.ts (tema 'codice',
   el de por defecto en la app, GlosaDOF público y la portada) y el script
   de arranque de las páginas de acceso. Elegido por Vic el 2026-10-15:
   blanco y negro, marca en jade sereno, fondo con grano y luz tenue.

   - Re-apunta los tokens de Vidrio (--glass-*, --gt-*), la app (.gds), el
     lector (--ri-*) y el SJF (--sjf-*) y apaga el desenfoque.
   - Blanco y negro: neutros sin tinte, encabezado sin franjas (un filete
     tenue), botones en relieve (cara con degradado, canto de 2 px; se
     hunden al presionar). Oscuro en negro, no en gris.
   - Marca: logo y nombre en jade sereno. El logo es un PNG de un color con
     alfa; un filtro SVG rellena su silueta con el jade exacto.
   - Fondo: luz tenue (foco arriba, bordes más hondos) y grano fino.
   - Menú lateral en Bruma (jade claro) y acabado fino: ver la sección FINO al final.
   - Color de la cuenta: el blanco y negro es «neutro», el predeterminado de
     «Elige el tema» (web-react/src/lib/uiPreferences.ts). Si la cuenta elige
     un color (data-tlacuilo), ese color va en botones, menú activo, íconos
     y títulos de tarjeta; las superficies siguen blancas.

   CONTRASTES (WCAG 2.2 AA, luminancia relativa sRGB)
   CLARO  tinta #2b2b2b / hoja #fff             14.2:1  min 4.5
          tenue #5f5f5f / hoja · fondo #f3f3f2   6.4 · 5.8:1  min 4.5
          botón #fff / #1f1f1f                  16.5:1  min 4.5
          borde de campo #858585 / hoja          3.7:1  min 3
          nombre jade #3b6e62 / hoja · portada #f8f8f8  5.9 · 5.5:1  min 4.5
          botón de color: blanco / acento 5.6–7.9:1; sobre el tono claro del degradado ≥ 4.6:1
   OSCURO tinta #ededed / hoja #0e0e0e          16.5:1  min 4.5
          tenue #a0a0a0 / fondo #000             8.0:1  min 4.5
          botón #141414 / #ececec               15.6:1  min 4.5
          borde de campo #7a7a7a / hoja          4.5:1  min 3
          nombre jade #7ea999 / hoja #0e0e0e · portada #171717  7.4 · 6.9:1  min 4.5
          botón de color: tinta oscura / acento 7.6–10:1

   ESPECIFICIDAD: la capa se probó sobre Vidrio con atributos de prototipo
   en <html>. Cada [data-codice] repetido conserva ese peso para ganarle a
   glass.css igual que en las capturas aprobadas; no quitar repeticiones
   sin volver a capturar (Glosador-Archivo/Branding/papel-vivo-20261014:
   destilar.py, capture_ref.py, shots/ref).
   ================================================== */
@import url("https://fonts.googleapis.com/css2?family=Literata:ital,opsz,wght@0,7..72,300..700;1,7..72,400..500&family=Newsreader:ital,opsz,wght@0,6..72,300..700;1,6..72,400..500&family=Geist:wght@300..700&family=Geist+Mono:wght@400..600&display=swap");
html[data-codice],
html[data-codice] body,
html[data-codice] .react-island-root,
html[data-codice][data-skin] .react-island-root.library-shell-mode,
html[data-codice][data-skin] .react-island-root.dof-shell-mode {
  background: var(--pv-grain) 0 0 / 220px 220px, var(--pv-paper) !important;
  background-attachment: scroll !important;
  color: var(--pv-ink) !important;
}
html[data-codice][data-skin] .react-island-root > header.app-shell-header,
html[data-codice] .public-surface-header {
  background: var(--pv-head-bg) !important;
  background-image: none !important;
  color: var(--pv-head-ink) !important;
  border-top: 2px solid var(--pv-head-top) !important;
  box-shadow: 0 1px 0 rgba(255, 255, 255, 0.07) inset !important;
  -webkit-backdrop-filter: none !important;
  backdrop-filter: none !important;
}
html[data-codice] .app-shell-header .app-logo-wordmark,
html[data-codice] .app-shell-header__brand > span:not(.glo-mark),
html[data-codice] .app-shell-header__center h1 {
  color: var(--pv-head-ink) !important;
  letter-spacing: 0.005em;
}
html[data-codice] .app-shell-header .glo-beta {
  background: transparent !important;
  color: var(--pv-head-mute) !important;
  border: 1px solid var(--pv-head-ghost) !important;
  font-weight: 600 !important;
  letter-spacing: 0.12em !important;
}
html[data-codice] .public-surface-header nav a {
  color: var(--pv-head-mute) !important;
  font-size: 13.5px !important;
  font-weight: 500 !important;
  letter-spacing: 0.01em;
  text-decoration: none;
  padding-block: 2px;
  border-bottom: 1px solid transparent;
}
html[data-codice] .public-surface-header nav a:hover {
  color: var(--pv-head-ink) !important;
  border-bottom-color: currentColor;
}
html[data-codice] .public-surface-header a.bg-terracotta-500 {
  background: var(--pv-head-cta-bg) !important;
  border-color: transparent !important;
  color: var(--pv-head-cta-ink) !important;
  border-radius: 6px !important;
  font-size: 13px !important;
  padding: 5px 12px !important;
}
html[data-codice] .public-surface-register {
  color: var(--pv-head-ink) !important;
  border-color: var(--pv-head-ghost) !important;
  border-radius: 6px !important;
  font-size: 13px !important;
  padding: 5px 12px !important;
}
html[data-codice] .app-shell-header .btn--icon,
html[data-codice] .public-surface-theme {
  background: transparent !important;
  color: var(--pv-head-ink) !important;
  border: 1px solid var(--pv-head-ghost) !important;
  border-radius: 6px !important;
  box-shadow: none !important;
}
html[data-codice] .ld-topbar {
  background: var(--pv-head-bg) !important;
  -webkit-backdrop-filter: none !important;
  backdrop-filter: none !important;
  border-top: 2px solid var(--pv-head-top) !important;
  box-shadow: var(--pv-shadow) !important;
}
html[data-codice] .ld-topbar,
html[data-codice] .ld-topbar a:not(.ld-nav__button),
html[data-codice] .ld-topbar strong,
html[data-codice] .ld-topbar .app-logo-wordmark {
  color: var(--pv-head-ink) !important;
}
html[data-codice] .ld-topbar .ld-nav a:not(.ld-nav__button) {
  color: var(--pv-head-mute) !important;
  font-weight: 500 !important;
}
html[data-codice] .ld-topbar .glo-mark {
  background-color: var(--pv-head-mark) !important;
}
html[data-codice] .ld-topbar .glo-beta {
  border: 1px solid var(--pv-head-ghost) !important;
}
html[data-codice] .ld-hero__visual {
  background: var(--pv-sheet) !important;
  -webkit-backdrop-filter: none !important;
  backdrop-filter: none !important;
  border: 1px solid var(--pv-rule) !important;
}
html[data-codice] .ld-proof {
  padding-top: 12px !important;
}
html[data-codice] .login-card {
  background: var(--pv-sheet) !important;
  -webkit-backdrop-filter: none !important;
  backdrop-filter: none !important;
  border: 1px solid var(--pv-rule) !important;
  border-top: 2px solid var(--pv-brand) !important;
  box-shadow: var(--pv-shadow) !important;
}
html[data-codice] .pub-inicio {
  padding-top: 2.2rem;
}
html[data-codice] .pub-card {
  --c: var(--pv-brand);
  position: relative;
  overflow: hidden;
  background: var(--pv-sheet) !important;
  border: 1px solid var(--pv-rule) !important;
  border-top: 0 !important;
  box-shadow: var(--pv-shadow) !important;
}
html[data-codice] .pub-card::before {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  top: 0;
  background: var(--c);
}
html[data-codice] .pub-card__icon {
  border-radius: 6px !important;
}
html[data-codice] .pub-card:hover {
  transform: translateY(-2px);
}
html[data-codice] .is-featured .pub-card {
  border-width: 1px !important;
}
html[data-codice][data-skin] .app-shell-sidebar {
  background-image: none !important;
  box-shadow: none !important;
  -webkit-backdrop-filter: none !important;
  backdrop-filter: none !important;
}
html[data-codice][data-skin] .app-shell-rail-brand {
  background: var(--pv-head-bg) !important;
  background-image: none !important;
  border-bottom: 1px solid var(--pv-head-line) !important;
  border-right: 1px solid var(--pv-head-line) !important;
  -webkit-backdrop-filter: none !important;
  backdrop-filter: none !important;
}
html[data-codice][data-skin] .app-shell-sidebar,
html[data-codice][data-skin] .app-shell-sidebar * {
  color: var(--pv-ink-2) !important;
}
html[data-codice][data-skin] .app-shell-nav-item {
  border-radius: 6px !important;
}
html[data-codice][data-skin] .app-shell-nav-item[aria-current="page"],
html[data-codice][data-skin] .app-shell-nav-item.active {
  background: var(--pv-sheet) !important;
  color: var(--pv-ink) !important;
  box-shadow: inset 3px 0 0 var(--pv-brand), 0 1px 0 rgba(255, 255, 255, 0.8) inset, 0 6px 14px -12px rgba(60, 45, 20, 0.5) !important;
}
html[data-codice][data-skin] .app-shell-nav-item[aria-current="page"] *,
html[data-codice][data-skin] .app-shell-nav-item.active * {
  color: var(--pv-ink) !important;
}
html[data-codice][data-skin] .gds .biblioteca-matter-card {
  background: var(--pv-sheet) !important;
  background-image: none !important;
  -webkit-backdrop-filter: none !important;
  backdrop-filter: none !important;
}
html[data-codice][data-skin] .gds .biblioteca-matter-card:hover {
  border-color: color-mix(in srgb, var(--pv-brand) 45%, var(--pv-rule)) !important;
}
html[data-codice][data-skin] .gds .input,
html[data-codice][data-skin] .gds .seg {
  background: var(--pv-sheet) !important;
  border: 1px solid var(--pv-rule-strong) !important;
  border-radius: 6px !important;
  box-shadow: none !important;
  -webkit-backdrop-filter: none !important;
  backdrop-filter: none !important;
}
html[data-codice][data-skin] .gds .seg__btn {
  border-radius: 4px !important;
}
html[data-codice][data-skin] .gds .seg__btn[aria-selected="true"],
html[data-codice][data-skin] .gds .seg__btn[aria-current="page"],
html[data-codice][data-skin] .gds .seg__btn.is-active {
  background: var(--pv-brand) !important;
  color: #ffffff !important;
  box-shadow: none !important;
}
html[data-codice][data-skin] .react-island-root header.app-shell-header .app-shell-header__brand > span:not(.glo-mark):not(.glo-beta),
html[data-codice][data-skin] .react-island-root header.app-shell-header .app-shell-header__brand > span:not(.glo-mark):not(.glo-beta) * {
  color: var(--pv-head-ink) !important;
  -webkit-text-fill-color: var(--pv-head-ink) !important;
  background: none !important;
}
html[data-codice][data-skin] .react-island-root header.app-shell-header .glo-beta {
  color: var(--pv-head-mute) !important;
  -webkit-text-fill-color: var(--pv-head-mute) !important;
  background: transparent !important;
  border: 1px solid var(--pv-head-ghost) !important;
}
html[data-codice][data-skin] .react-island-root header.app-shell-header .glo-mark,
html[data-codice][data-skin] .app-shell-rail-brand .glo-mark {
  background-color: var(--pv-head-mark) !important;
  opacity: 1 !important;
}
html[data-codice][data-skin] .ld-topbar .ld-brand__mark {
  background-color: var(--pv-head-mark) !important;
}
html[data-codice][data-skin] .ld-topbar .ld-brand__name {
  color: var(--pv-head-ink) !important;
}
html[data-codice][data-skin] .react-island-root > header.app-shell-header button,
html[data-codice][data-skin] .react-island-root > header.app-shell-header button *,
html[data-codice][data-skin] .react-island-root > header.app-shell-header svg {
  color: var(--pv-head-ink) !important;
}
html[data-codice][data-skin] .react-island-root > header.app-shell-header button {
  background: transparent !important;
  border-color: var(--pv-head-ghost) !important;
  box-shadow: none !important;
}
html[data-codice] .ld-hero__content,
html[data-codice] .ld-hero__content h1,
html[data-codice] .ld-hero__ai,
html[data-codice] .ld-hero__lead,
html[data-codice] .ld-hero__ai-note {
  text-align: left !important;
}
html[data-codice] .ld-hero__lead,
html[data-codice] .ld-hero__ai-note {
  margin-left: 0 !important;
  margin-right: 0 !important;
  max-width: 46ch !important;
}
html[data-codice] .ld-hero__content h1 {
  text-wrap: balance;
}
html[data-codice] .ld-hero__proof {
  grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
  width: 100% !important;
}
html[data-codice] .ld-section__header {
  text-align: left !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
  justify-items: start !important;
  max-width: 820px !important;
}
html[data-codice] .ld-section__header p {
  margin-left: 0 !important;
  max-width: 62ch !important;
}
html[data-codice] .ld-editorial__copy {
  text-align: left !important;
  justify-items: start !important;
}
html[data-codice] .ld-editorial__copy p {
  margin-left: 0 !important;
  max-width: 52ch !important;
}
html[data-codice] .ld-pricing__legacy-note,
html[data-codice] #planes .ld-text-link {
  text-align: left !important;
  margin-left: 0 !important;
  display: block;
}
html[data-codice] #creditos h3,
html[data-codice] #creditos h3 + p {
  text-align: left !important;
  margin-left: 0 !important;
}
html[data-codice] .ld-section__header > * {
  justify-self: start !important;
  margin-left: 0 !important;
  text-align: left !important;
}
html[data-codice] .ld-editorial__copy > * {
  justify-self: start !important;
  margin-left: 0 !important;
}
html[data-codice][data-theme="dark"],
html[data-codice][data-theme="dark"] body,
html[data-codice][data-theme="dark"] .react-island-root,
html[data-codice][data-theme="dark"][data-skin] .react-island-root.library-shell-mode {
  background: var(--pv-paper) !important;
}
html[data-codice][data-theme="dark"][data-skin] .gds .biblioteca-matter-card--cpeum {
  border-top-color: var(--pv-brand-ink) !important;
}
html[data-codice][data-theme="dark"][data-skin] .gds .biblioteca-matter-card,
html[data-codice][data-theme="dark"][data-skin] .gds .biblioteca-matter-card * {
  color: var(--pv-ink-2);
}
html[data-codice][data-theme="dark"] .pub-card,
html[data-codice][data-theme="dark"] .pub-card__title {
  color: var(--pv-ink) !important;
}
html[data-codice][data-theme="dark"] .pub-card__desc {
  color: var(--pv-ink-2) !important;
}
html[data-codice][data-theme="dark"] .pub-inicio__head h1 {
  color: var(--pv-ink) !important;
}
html[data-codice][data-theme="dark"] .pub-inicio__head p {
  color: var(--pv-ink-2) !important;
}
html[data-codice][data-theme="dark"][data-skin] .app-shell-nav-item[aria-current="page"],
html[data-codice][data-theme="dark"][data-skin] .app-shell-nav-item.active {
  box-shadow: inset 3px 0 0 var(--pv-brand-ink), 0 6px 14px -12px rgba(0, 0, 0, 0.8) !important;
}
html[data-codice][data-theme="dark"][data-skin] .gds .seg__btn[aria-selected="true"],
html[data-codice][data-theme="dark"][data-skin] .gds .seg__btn[aria-current="page"],
html[data-codice][data-theme="dark"][data-skin] .gds .seg__btn.is-active {
  background: #5cb8b0 !important;
  color: #0b1513 !important;
}
html[data-codice] .pub-card[data-card="materias"] {
  --c: var(--pv-m-terracota);
}
html[data-codice] .pub-card::before {
  height: 3px !important;
}
html[data-codice] .pub-card__icon,
html[data-codice] .pub-card[data-card="novedades"] .pub-card__icon {
  background: color-mix(in srgb, var(--c) 9%, var(--pv-sheet)) !important;
  color: var(--c) !important;
  box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--c) 20%, transparent) !important;
}
html[data-codice] .pub-card:hover {
  box-shadow: 0 1px 0 rgba(255, 255, 255, 0.8) inset, 0 16px 30px -20px color-mix(in srgb, var(--c) 45%, transparent) !important;
}
html[data-codice] .ld-proof {
  border-top-color: var(--pv-m-jade) !important;
}
html[data-codice] .ld-hero__proof > .ld-proof:nth-child(2) {
  border-top-color: var(--pv-m-ocre) !important;
}
html[data-codice] .ld-hero__proof > .ld-proof:nth-child(3) {
  border-top-color: var(--pv-m-terracota) !important;
}
html[data-codice] .ld-hero__proof > .ld-proof:nth-child(4) {
  border-top-color: var(--pv-m-cobalto) !important;
}
html[data-codice] .ld-proof__badge {
  border: 1px solid color-mix(in srgb, var(--pv-m-ocre) 45%, transparent) !important;
}
html[data-codice][data-theme="dark"] .pub-card__icon,
html[data-codice][data-theme="dark"] .pub-card[data-card="novedades"] .pub-card__icon {
  background: color-mix(in srgb, var(--c) 22%, var(--pv-sheet)) !important;
  color: color-mix(in srgb, var(--c) 45%, #ffffff) !important;
}
html[data-codice][data-theme="dark"] .pub-card::before {
  background: color-mix(in srgb, var(--c) 60%, #ffffff) !important;
}
html[data-codice][data-codice] .pub-card,
html[data-codice][data-codice][data-skin] .gds .biblioteca-matter-card,
html[data-codice][data-codice] .ld-hero__visual,
html[data-codice][data-codice] .login-card {
  border-radius: 8px !important;
}
html[data-codice][data-codice] .ld-topbar {
  border-radius: 8px !important;
}
html[data-codice][data-codice][data-skin] .gds .biblioteca-matter-card--cpeum {
  background: linear-gradient(160deg, rgba(14, 99, 99, 0.06), var(--pv-sheet) 65%) !important;
}
html[data-codice][data-codice] .ld-nav__button,
html[data-codice][data-codice] .ld-welcome__cta,
html[data-codice][data-codice][data-skin] .gds .btn--primary {
  background: var(--pv-brand) !important;
  border-color: var(--pv-brand) !important;
  color: #ffffff !important;
  border-radius: 6px !important;
  box-shadow: none !important;
  background-image: none !important;
}
html[data-codice][data-codice] .ld-slide--welcome {
  color: var(--pv-ink) !important;
}
html[data-codice][data-codice] .ld-slide--welcome .ld-slide__title {
  color: var(--pv-ink) !important;
}
html[data-codice][data-codice] .ld-welcome__eyebrow {
  color: var(--pv-brand) !important;
}
html[data-codice][data-codice] .ld-welcome__summary {
  color: var(--pv-mute) !important;
}
html[data-codice][data-codice] .ld-welcome__features {
  color: var(--pv-ink) !important;
}
html[data-codice][data-codice] .ld-welcome__login {
  color: var(--pv-brand) !important;
}
html[data-codice][data-codice] .ld-gallery__nav {
  background: var(--pv-sheet) !important;
  color: var(--pv-ink) !important;
  border: 1px solid var(--pv-rule-strong) !important;
}
html[data-codice][data-codice] .ld-hero h1,
html[data-codice][data-codice] .ld-hero__ai,
html[data-codice][data-codice] .ld-proof strong,
html[data-codice][data-codice] .ld-section__header h2 {
  color: var(--pv-ink) !important;
}
html[data-codice][data-codice] .ld-hero__lead,
html[data-codice][data-codice] .ld-hero__ai-note,
html[data-codice][data-codice] .ld-proof span {
  color: var(--pv-mute) !important;
}
html[data-codice][data-codice] .ld-proof__badge,
html[data-codice][data-codice] .ld-topbar .glo-beta {
  color: var(--pv-m-terracota) !important;
  border-color: rgba(134, 44, 27, 0.4) !important;
  background: transparent !important;
}
html[data-codice][data-codice] body::before,
html[data-codice][data-codice] body::after,
html[data-codice][data-codice] .react-island-root::before,
html[data-codice][data-codice] .react-island-root::after {
  background-image: none !important;
}
html[data-codice][data-codice][data-skin] .gds .seg__btn:is([aria-selected="true"], [aria-current="page"], .is-active) * {
  opacity: 0.85;
}
html[data-codice][data-codice][data-skin]:is([data-tlacuilo], :not([data-tlacuilo])) .gds .biblioteca-matter-card:not(.biblioteca-matter-card--cpeum) {
  background-image: none !important;
  background-color: var(--pv-sheet) !important;
}
html[data-codice][data-codice][data-codice] {
  --pv-grain: none;
  --pv-shadow: none;
}
html[data-codice][data-codice] :is(.pub-card, .ld-hero__visual, .login-card, .ld-topbar),
html[data-codice][data-codice][data-skin] .gds .biblioteca-matter-card {
  border: 1.5px solid var(--pv-stroke) !important;
  box-shadow: none !important;
}
html[data-codice][data-codice] .pub-card {
  padding-top: 1.4rem !important;
}
html[data-codice][data-codice] .pub-card__icon {
  box-shadow: inset 0 0 0 1.5px var(--pv-stroke) !important;
  background: transparent !important;
  color: var(--pv-brand) !important;
}
html[data-codice][data-codice][data-skin] .app-shell-sidebar {
  border-right: 1.5px solid var(--pv-stroke) !important;
}
html[data-codice][data-codice][data-skin] .gds .biblioteca-matter-card--cpeum {
  border-top: 1.5px solid var(--pv-stroke) !important;
}
html[data-codice][data-codice] :is(.ld-nav__button, .ld-welcome__cta, .public-surface-header a.bg-terracotta-500),
html[data-codice][data-codice][data-skin] .gds .btn--primary {
  background: var(--pv-brand) !important;
  border-color: var(--pv-brand) !important;
  color: var(--pv-on-brand) !important;
}
html[data-codice][data-codice][data-skin] .gds .seg__btn:is([aria-selected="true"], [aria-current="page"], .is-active),
html[data-codice][data-codice][data-skin] .gds .seg__btn:is([aria-selected="true"], [aria-current="page"], .is-active) * {
  color: var(--pv-on-brand) !important;
}
html[data-codice][data-codice] .ld-welcome__features li::before {
  border-color: var(--pv-brand) !important;
}
html[data-codice][data-codice] :is(.ld-welcome__eyebrow, .ld-welcome__login) {
  color: var(--pv-brand) !important;
}
html[data-codice][data-codice][data-theme="dark"] :is(.pub-inicio__head h1, .pub-card__title) {
  color: var(--pv-ink) !important;
}
html[data-codice][data-codice][data-theme="dark"] :is(.pub-inicio__head p, .pub-card__desc) {
  color: var(--pv-ink-2) !important;
}
html[data-codice][data-codice][data-theme="dark"] :is(.ld-hero h1, .ld-hero__ai, .ld-proof strong, .ld-section__header h2, .ld-slide--welcome .ld-slide__title, .ld-welcome__features) {
  color: var(--pv-ink) !important;
}
html[data-codice][data-codice][data-theme="dark"] :is(.ld-hero__lead, .ld-hero__ai-note, .ld-proof span, .ld-welcome__summary) {
  color: var(--pv-mute) !important;
}
html[data-codice][data-codice][data-theme="dark"][data-skin] .gds .biblioteca-matter-card,
html[data-codice][data-codice][data-theme="dark"][data-skin] .gds .biblioteca-matter-card--cpeum {
  background: var(--pv-sheet) !important;
}
html[data-codice][data-codice][data-theme="dark"][data-skin] .gds .biblioteca-matter-card--cpeum .biblioteca-matter-card__title,
html[data-codice][data-codice][data-skin] .gds .biblioteca-matter-card--cpeum .biblioteca-matter-card__title {
  color: var(--pv-brand-ink) !important;
}
html[data-codice][data-codice][data-theme="dark"] {
  --pv-shadow: 0 10px 24px -20px rgba(0, 0, 0, 0.6);
}
html[data-codice][data-codice][data-codice] {
  --pv-m-jade: #2f6f60;
  --pv-m-cobalto: #2f6f60;
  --pv-m-terracota: #2f6f60;
  --pv-m-ocre: #2f6f60;
}
html[data-codice][data-codice][data-codice][data-theme="dark"] {
  --pv-m-jade: #78b6a3;
  --pv-m-cobalto: #78b6a3;
  --pv-m-terracota: #78b6a3;
  --pv-m-ocre: #78b6a3;
}
html[data-codice][data-codice] :is(.pub-card, .ld-hero__visual, .login-card, .ld-topbar),
html[data-codice][data-codice][data-skin] .gds .biblioteca-matter-card {
  border-width: 1px !important;
}
html[data-codice][data-codice] .ld-welcome__signup {
  background: transparent !important;
  border: 0 !important;
  border-top: 1px solid var(--pv-rule) !important;
  border-radius: 0 !important;
  padding: 12px 0 0 !important;
}
html[data-codice][data-codice] .ld-hero__visual {
  box-shadow: var(--pv-shadow) !important;
}
html[data-codice][data-codice][data-skin] .gds .biblioteca-matter-card__title {
  font-weight: 500 !important;
}
html[data-codice][data-codice][data-skin] .gds .biblioteca-matter-card :is(p, span) {
  color: var(--pv-ink-2) !important;
}
html[data-codice][data-codice][data-codice][data-skin],
html[data-codice][data-codice][data-codice][data-skin]:is([data-tlacuilo], :not([data-tlacuilo])):is([data-theme], :not([data-theme])) {
  --glass-surface: var(--pv-sheet);
  --glass-raised: var(--pv-sheet);
  --glass-sunken: var(--pv-cream);
  --glass-read: var(--pv-sheet);
  --glass-menu: var(--pv-sheet);
  --glass-edge: var(--pv-stroke);
  --glass-hair: var(--pv-rule);
  --glass-hair-strong: var(--pv-stroke);
  --glass-highlight: transparent;
  --glass-shadow: none;
  --glass-shadow-hover: 0 0 0 1px var(--pv-stroke);
  --glass-chrome: var(--pv-head-bg);
  --glass-chrome-edge: var(--pv-stroke);
  --glass-blur: none;
  --glass-blur-sm: none;
  --glass-sheen: none;
  --glass-radius: 8px;
  --glass-radius-sm: 6px;
  --glass-ground: var(--pv-paper);
  --glass-primary: var(--pv-brand);
  --glass-on-primary: var(--pv-on-brand);
  --glass-primary-hover: var(--pv-brand);
  --glass-sel-ink: var(--pv-ink);
  --gt-chrome: var(--pv-head-bg);
  --gt-ground: var(--pv-paper);
  --gt-night: var(--pv-paper);
  --gt-f1: var(--pv-paper);
  --gt-f2: var(--pv-paper);
  --gt-accent: var(--pv-brand);
  --gt-brand: var(--pv-brand);
  --folder-ink: var(--pv-ink);
  --folder-ink-muted: var(--pv-mute);
}
html[data-codice][data-codice] :is(.gds, .gl-reader-shell, .sjf-root, .sjf-tesis-overlay, .sjf-folder-popup, .tlacuilo-root, .react-island-root) {
  --bg-app: transparent;
  --bg-surface: var(--pv-sheet);
  --bg-raised: var(--pv-sheet);
  --bg-sunken: var(--pv-cream);
  --line: var(--pv-rule);
  --line-soft: var(--pv-rule);
  --line-strong: var(--pv-stroke);
  --ink: var(--pv-ink);
  --ink-2: var(--pv-ink-2);
  --ink-mute: var(--pv-mute);
  --ink-soft: var(--pv-mute);
  --ink-faint: var(--pv-stroke);
  --ink-950: var(--pv-ink);
  --ink-900: var(--pv-ink);
  --ink-800: var(--pv-ink-2);
  --ink-700: var(--pv-ink-2);
  --ink-600: var(--pv-mute);
  --ink-500: var(--pv-mute);
  --ink-400: var(--pv-mute);
  --ink-300: var(--pv-stroke);
  --jade: var(--pv-brand);
  --jade-deep: var(--pv-brand);
  --jade-fill: var(--pv-brand);
  --jade-fill-hover: var(--pv-brand);
  --on-jade: var(--pv-on-brand);
  --jade-tint: color-mix(in srgb, var(--pv-brand) 10%, transparent);
  --jade-soft: color-mix(in srgb, var(--pv-brand) 18%, transparent);
  --accent-jade: var(--pv-brand);
  --accent-jade-fill: var(--pv-brand);
  --accent-jade-deep: var(--pv-brand);
  --accent-on-jade: var(--pv-on-brand);
  --accent-700: var(--pv-brand);
  --brand-primary: var(--pv-brand);
  --brand-primary-strong: var(--pv-brand);
  --ri-paper-025: var(--pv-sheet);
  --ri-paper-50: var(--pv-paper);
  --ri-paper-100: var(--pv-cream);
  --ri-ink-950: var(--pv-ink);
  --ri-ink-800: var(--pv-ink-2);
  --ri-ink-700: var(--pv-ink-2);
  --ri-ink-600: var(--pv-mute);
  --ri-ink-300: var(--pv-stroke);
  --ri-ink-200: var(--pv-rule);
  --ri-accent-700: var(--pv-brand);
  --sjf-paper: var(--pv-sheet);
  --sjf-paper-warm: var(--pv-cream);
  --sjf-primary-500: var(--pv-brand);
  --sjf-primary-600: var(--pv-brand);
  --sjf-primary-soft: color-mix(in srgb, var(--pv-brand) 10%, transparent);
  --sjf-ink-900: var(--pv-ink);
  --sjf-ink-600: var(--pv-ink-2);
  --sjf-ink-500: var(--pv-mute);
  --sjf-ink-400: var(--pv-mute);
  --tla-paper: var(--pv-paper);
}
html[data-codice][data-codice] *,
html[data-codice][data-codice] *::before,
html[data-codice][data-codice] *::after {
  -webkit-backdrop-filter: none !important;
  backdrop-filter: none !important;
}
html[data-codice][data-codice][data-skin] .react-island-root:is(.library-shell-mode, .dof-shell-mode, .radar-shell-mode, .public-dof-mode, .reader-doc-mode),
html[data-codice][data-codice][data-skin] .react-island-root {
  background: var(--pv-paper) !important;
  background-image: none !important;
}
html[data-codice][data-codice] {
  --ga-ink: var(--pv-ink);
  --ga-mute: var(--pv-mute);
  --ga-edge: var(--pv-stroke);
  --ga-hair: var(--pv-rule);
  --ga-field-edge: var(--pv-stroke);
}
html[data-codice][data-codice] body,
html[data-codice][data-codice][data-skin="glass"] body {
  background: var(--pv-paper) !important;
  color: var(--pv-ink) !important;
}
html[data-codice][data-codice] body::before {
  display: none !important;
}
html[data-codice][data-codice] :is(.login-card, .auth-card, .status-card) {
  background: var(--pv-sheet) !important;
  border: 1px solid var(--pv-stroke) !important;
  border-radius: 8px !important;
  box-shadow: none !important;
  color: var(--pv-ink) !important;
}
html[data-codice][data-codice] :is(.login-card, .auth-card, .status-card) :is(h1, h2, h3, p, label, span, li) {
  color: inherit;
}
html[data-codice][data-codice] :is(.login-card, .auth-card) h2 {
  color: var(--pv-ink) !important;
}
html[data-codice][data-codice] :is(.login-card, .auth-card) :is(p, .auth-plan-note, .auth-consent) {
  color: var(--pv-ink-2) !important;
}
html[data-codice][data-codice] :is(.login-brand, .auth-brand) :is(.tagline, h1, span) {
  color: var(--pv-ink-2) !important;
}
html[data-codice][data-codice] :is(.login-brand, .auth-brand) :is(.brand-name, h1, .gl-wordmark) {
  color: var(--pv-ink) !important;
}
html[data-codice][data-codice] .gl-logo {
  background-color: var(--pv-brand) !important;
}
html[data-codice][data-codice] .form-group label {
  color: var(--pv-mute) !important;
}
html[data-codice][data-codice] :is(.form-group input, .password-input input) {
  background: var(--pv-paper) !important;
  color: var(--pv-ink) !important;
  border: 1px solid var(--pv-stroke) !important;
  border-radius: 6px !important;
}
html[data-codice][data-codice] .form-group input:focus {
  outline: 2px solid var(--pv-brand) !important;
  outline-offset: 1px;
  border-color: var(--pv-brand) !important;
}
html[data-codice][data-codice] .form-group input::placeholder {
  color: var(--pv-mute) !important;
}
html[data-codice][data-codice] :is(.btn-login, .btn-primary) {
  background: var(--pv-brand) !important;
  border-color: var(--pv-brand) !important;
  color: var(--pv-on-brand) !important;
  border-radius: 6px !important;
  box-shadow: none !important;
}
html[data-codice][data-codice] :is(.btn-google, .secondary) {
  background: var(--pv-sheet) !important;
  color: var(--pv-ink) !important;
  border: 1px solid var(--pv-stroke) !important;
  border-radius: 6px !important;
}
html[data-codice][data-codice] :is(.login-links, .auth-links, .auth-consent, .login-footer, .auth-footer) a {
  color: var(--pv-brand) !important;
}
html[data-codice][data-codice] :is(.login-footer, .auth-footer) {
  color: var(--pv-mute) !important;
}
html[data-codice][data-codice] :is(.education-layout, .education-main, .dof-issue-shell) {
  background: var(--pv-paper) !important;
  background-image: none !important;
  color: var(--pv-ink) !important;
}
html[data-codice][data-codice] .dof-issue-shell .gds-card {
  border: 1px solid var(--pv-stroke) !important;
}
html[data-codice][data-codice] .gl-logo {
  background: transparent !important;
  color: var(--pv-ink) !important;
}
html[data-codice][data-codice][data-skin] .dof-issue-shell .gds-card,
html[data-codice][data-codice][data-skin] .education-layout .gds-card,
html[data-codice][data-codice][data-skin] :is(.education-document, .education-invite, .education-rail > *) {
  background: var(--pv-sheet) !important;
  background-image: none !important;
  border-color: var(--pv-stroke) !important;
  box-shadow: none !important;
  color: var(--pv-ink) !important;
}
html[data-codice][data-codice][data-skin] .education-document :is(b, strong, p, span, div) {
  color: inherit;
}
html[data-codice][data-codice][data-skin] .education-document {
  color: var(--pv-ink-2) !important;
}
html[data-codice][data-codice][data-codice][data-skin][data-theme] .gds.dof-issue-shell .gds-card,
html[data-codice][data-codice][data-codice][data-skin][data-theme] .gds.dof-issue-shell .gds-card * {
  background-color: var(--pv-sheet) !important;
  background-image: none !important;
}
html[data-codice][data-codice][data-codice][data-skin][data-theme] .gds.dof-issue-shell .gds-card {
  border: 1px solid var(--pv-stroke) !important;
  box-shadow: none !important;
}
html[data-codice][data-codice] .ld-editorial {
  background: var(--pv-sheet) !important;
  background-image: none !important;
  color: var(--pv-ink) !important;
  border-top: 1px solid var(--pv-stroke);
  border-bottom: 1px solid var(--pv-stroke);
}
html[data-codice][data-codice] .ld-editorial :is(h2, h3, strong) {
  color: var(--pv-ink) !important;
}
html[data-codice][data-codice] .ld-editorial :is(p, span, li) {
  color: var(--pv-ink-2) !important;
}
html[data-codice][data-codice] .ld-editorial a {
  color: var(--pv-brand) !important;
}
html[data-codice][data-codice] .ld-editorial__image {
  border: 1px solid var(--pv-stroke) !important;
  border-radius: 8px !important;
  box-shadow: none !important;
  overflow: hidden;
}
html[data-codice][data-codice] :is(.ld-card, .ld-pricing-card, .ld-feature-row__shot, .ld-pricing-table-wrap, .tla-block) {
  background: var(--pv-sheet) !important;
  background-image: none !important;
  border: 1px solid var(--pv-stroke) !important;
  border-radius: 8px !important;
  box-shadow: none !important;
}
html[data-codice][data-codice] :is(.ld-card__kicker, .ld-feature-row__num, .ld-eyebrow) {
  color: var(--pv-brand) !important;
}
html[data-codice][data-codice] :is(.ld-card, .ld-pricing-card) :is(h3, strong) {
  color: var(--pv-ink) !important;
}
html[data-codice][data-codice] :is(.ld-card, .ld-pricing-card) :is(p, li, span:not(.ld-pricing-card__badge)) {
  color: var(--pv-ink-2) !important;
}
html[data-codice][data-codice] .ld-pricing-card__badge {
  background: transparent !important;
  color: var(--pv-brand) !important;
  border: 1px solid var(--pv-brand) !important;
}
html[data-codice][data-codice] .ld-cta--primary {
  background: var(--pv-brand) !important;
  border-color: var(--pv-brand) !important;
  color: var(--pv-on-brand) !important;
  border-radius: 6px !important;
}
html[data-codice][data-codice] .ld-cta--secondary {
  background: var(--pv-sheet) !important;
  border: 1px solid var(--pv-stroke) !important;
  color: var(--pv-ink) !important;
  border-radius: 6px !important;
}
html[data-codice][data-codice] :is(.ld-section__header h2, .ld-section h2, .ld-section h3) {
  color: var(--pv-ink) !important;
}
html[data-codice][data-codice] .ld-footer {
  background: var(--pv-paper) !important;
  color: var(--pv-mute) !important;
  border-top: 1px solid var(--pv-stroke);
}
html[data-codice][data-codice] :is(.form-group input, .password-input input),
html[data-codice][data-codice][data-skin] .gds :is(.input, input[type="text"], input[type="search"], input[type="email"], input[type="password"], textarea, select) {
  border-color: var(--pv-field) !important;
}
html[data-codice][data-codice][data-codice] {
  --pg-sec: var(--pg-jade);
}
html[data-codice][data-codice][data-codice]:has(.app-shell-nav-item[aria-current="page"]:is([href$="#dof"], [href$="#estatal"], [href$="#edictos"], [href$="#avisos"])) {
  --pg-sec: var(--pg-grana);
}
html[data-codice][data-codice][data-codice]:has(.app-shell-nav-item[aria-current="page"]:is([href$="#sjf"], [href$="#/search"], [href$="#connect"])) {
  --pg-sec: var(--pg-anil);
}
html[data-codice][data-codice][data-codice]:has(.app-shell-nav-item[aria-current="page"]:is([href$="#novedades"], [href$="#radar"], [href$="#cuenta"])) {
  --pg-sec: var(--pg-ocre);
}
html[data-codice][data-codice][data-codice]:has(.gl-reader-shell) {
  --pg-sec: var(--pg-jade);
}
html[data-codice][data-codice][data-codice]:has(.dof-issue-shell) {
  --pg-sec: var(--pg-grana);
}
html[data-codice][data-codice][data-codice] :is(.app-shell-nav-item, .mobile-tabbar__item) {
  --pg-c: var(--pg-jade);
}
html[data-codice][data-codice][data-codice] :is(.app-shell-nav-item, .mobile-tabbar__item):is([href$="#dof"], [href$="#estatal"], [href$="#edictos"], [href$="#avisos"]) {
  --pg-c: var(--pg-grana);
}
html[data-codice][data-codice][data-codice] :is(.app-shell-nav-item, .mobile-tabbar__item):is([href$="#sjf"], [href$="#/search"], [href$="#connect"]) {
  --pg-c: var(--pg-anil);
}
html[data-codice][data-codice][data-codice] :is(.app-shell-nav-item, .mobile-tabbar__item):is([href$="#novedades"], [href$="#radar"], [href$="#cuenta"]) {
  --pg-c: var(--pg-ocre);
}
html[data-codice][data-codice][data-codice] .pub-card[data-card] {
  --c: var(--pg-jade);
}
html[data-codice][data-codice][data-codice] .pub-card[data-card="dof-semana"] {
  --c: var(--pg-grana);
}
html[data-codice][data-codice][data-codice] .pub-card[data-card="busqueda"] {
  --c: var(--pg-anil);
}
html[data-codice][data-codice][data-codice] .pub-card[data-card="conecta-ia"] {
  --c: var(--pg-anil);
}
html[data-codice][data-codice][data-codice] .pub-card[data-card="novedades"] {
  --c: var(--pg-ocre);
}
html[data-codice][data-codice][data-codice][data-skin] .gds .biblioteca-matter-card {
  --c: var(--pg-jade);
}
html[data-codice][data-codice][data-codice][data-skin] .gds .biblioteca-matter-card--cpeum {
  --c: var(--pg-grana);
}
html[data-codice][data-codice][data-codice][data-skin] .gds .gds-card {
  --c: var(--pg-sec);
}
html[data-codice][data-codice][data-codice] .ld-hero__proof > .ld-proof {
  --c: var(--pg-jade);
}
html[data-codice][data-codice][data-codice] .ld-hero__proof > .ld-proof:nth-child(2) {
  --c: var(--pg-ocre);
}
html[data-codice][data-codice][data-codice] .ld-hero__proof > .ld-proof:nth-child(3) {
  --c: var(--pg-grana);
}
html[data-codice][data-codice][data-codice] .ld-hero__proof > .ld-proof:nth-child(4) {
  --c: var(--pg-anil);
}
html[data-codice][data-codice][data-codice] .ld-card {
  --c: var(--pg-jade);
}
html[data-codice][data-codice][data-codice] .ld-card:nth-child(4n+2) {
  --c: var(--pg-grana);
}
html[data-codice][data-codice][data-codice] .ld-card:nth-child(4n+3) {
  --c: var(--pg-anil);
}
html[data-codice][data-codice][data-codice] .ld-card:nth-child(4n) {
  --c: var(--pg-ocre);
}
html[data-codice][data-codice][data-codice][data-skin] .react-island-root > header.app-shell-header,
html[data-codice][data-codice][data-codice] .public-surface-header {
  border-bottom: 2px solid var(--pg-sec) !important;
}
html[data-codice][data-codice][data-codice][data-skin] .app-shell-nav-item :is(svg, svg *) {
  color: var(--pg-c) !important;
}
html[data-codice][data-codice][data-codice][data-skin] .app-shell-nav-item[aria-current="page"] {
  border-left: 3px solid var(--pg-c) !important;
}
html[data-codice][data-codice][data-codice][data-skin] .app-shell-nav-item[aria-current="page"] :is(span, div) {
  color: var(--pv-ink) !important;
}
html[data-codice][data-codice][data-codice] :is(.pub-card[data-card], .ld-card),
html[data-codice][data-codice][data-codice][data-skin] .gds :is(.biblioteca-matter-card, .gds-card) {
  border-top: 3px solid var(--c) !important;
}
html[data-codice][data-codice][data-codice] .pub-card::before {
  display: none !important;
}
html[data-codice][data-codice][data-codice] .is-featured .pub-card {
  background: var(--pv-sheet) !important;
  background-image: none !important;
}
html[data-codice][data-codice][data-codice] .pub-card[data-card] .pub-card__icon,
html[data-codice][data-codice][data-codice][data-skin] .gds .biblioteca-matter-card__icon {
  color: var(--c) !important;
  box-shadow: none !important;
  border: 0 !important;
  border-radius: 8px !important;
}
html[data-codice][data-codice][data-codice] .ld-proof {
  border-top: 3px solid var(--c) !important;
}
html[data-codice][data-codice][data-codice] :is(.ld-welcome__eyebrow, .ld-eyebrow, .pub-inicio__eyebrow) {
  color: var(--pg-grana) !important;
}
html[data-codice][data-codice][data-codice] .ld-card__kicker {
  color: var(--c) !important;
}
html[data-codice][data-codice][data-codice] .ld-card__kicker::before {
  background: var(--c) !important;
}
html[data-codice][data-codice][data-codice] :is(.ld-proof__badge, .ld-topbar .glo-beta, .ld-pricing-card__badge) {
  color: var(--pg-grana) !important;
  border-color: color-mix(in srgb, var(--pg-grana) 55%, transparent) !important;
  background: transparent !important;
}
html[data-codice][data-codice][data-codice][data-skin] .react-island-root > header.app-shell-header,
html[data-codice][data-codice][data-codice] :is(.public-surface-header, .ld-topbar) {
  box-shadow: inset 0 4px 0 var(--pg-sec) !important;
}
html[data-codice][data-codice][data-codice] .ld-topbar {
  --pg-sec: var(--pg-jade);
}
html[data-codice][data-codice][data-codice] :is(.pub-card__title, .ld-proof strong, .ld-card h3),
html[data-codice][data-codice][data-codice][data-skin] .gds .biblioteca-matter-card__title {
  color: color-mix(in srgb, var(--c) 78%, var(--pv-ink)) !important;
}
html[data-codice][data-codice][data-codice] .pub-card[data-card] .pub-card__icon,
html[data-codice][data-codice][data-codice][data-skin] .gds .biblioteca-matter-card__icon {
  background: var(--c) !important;
}
html[data-codice][data-codice][data-codice] .pub-card[data-card] .pub-card__icon :is(svg, svg *),
html[data-codice][data-codice][data-codice] .pub-card[data-card] .pub-card__icon,
html[data-codice][data-codice][data-codice][data-skin] .gds .biblioteca-matter-card__icon :is(svg, svg *) {
  color: var(--pg-on) !important;
}
html[data-codice][data-codice][data-codice] :is(.pub-card[data-card], .ld-card, .ld-proof),
html[data-codice][data-codice][data-codice][data-skin] .gds :is(.biblioteca-matter-card, .gds-card) {
  background: color-mix(in srgb, var(--c) var(--pg-wash), var(--pv-sheet)) !important;
  background-image: none !important;
  border-color: color-mix(in srgb, var(--c) 40%, var(--pv-stroke)) !important;
  border-top-color: var(--c) !important;
}
html[data-codice][data-codice][data-codice][data-skin] .react-island-root > header.app-shell-header,
html[data-codice][data-codice][data-codice] :is(.public-surface-header, .ld-topbar) {
  background: color-mix(in srgb, var(--pg-sec) var(--pg-wash), var(--pv-sheet)) !important;
}
html[data-codice][data-codice][data-codice][data-skin] .app-shell-nav-item[aria-current="page"],
html[data-codice][data-codice][data-codice][data-skin] .app-shell-nav-item[aria-current="page"] :is(span, div, svg, svg *) {
  color: var(--pg-on) !important;
}
html[data-codice][data-codice][data-codice] .ld-slide--welcome {
  background: color-mix(in srgb, var(--pg-jade) var(--pg-wash), var(--pv-sheet)) !important;
}
html[data-codice][data-codice][data-codice][data-codice][data-codice] {
  --pv-head-ghost: #c9c6bf;
}
html[data-codice][data-codice][data-codice][data-codice][data-codice][data-theme="dark"] {
  --pv-head-ghost: #4a4844;
}
html[data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice] {
  --pv-paper: #f5f5f5 !important;
  --pv-sheet: #ffffff !important;
  --pv-cream: #fafafa !important;
  --pv-ink: #2b2b2b !important;
  --pv-ink-2: #3d3d3d !important;
  --pv-mute: #5f5f5f !important;
  --pv-stroke: #d2d2d2 !important;
  --pv-rule: rgba(0, 0, 0, 0.1) !important;
  --pv-rule-strong: #d2d2d2 !important;
  --pv-field: #858585 !important;
  --pv-head-bg: #ffffff !important;
  --pv-head-ink: #2b2b2b !important;
  --pv-head-mute: #3d3d3d !important;
  --pv-head-line: #d2d2d2 !important;
  --pv-brand: #1f1f1f !important;
  --pv-brand-ink: #1f1f1f !important;
  --pv-on-brand: #ffffff !important;
  --pv-head-cta-bg: #1f1f1f !important;
  --pv-head-cta-ink: #ffffff !important;
  --pv-head-top: #1f1f1f !important;
  --pg-jade: #1f1f1f !important;
  --pg-grana: #1f1f1f !important;
  --pg-anil: #1f1f1f !important;
  --pg-ocre: #1f1f1f !important;
  --pg-on: #ffffff !important;
  --pg-wash: 3% !important;
  --bn-face: linear-gradient(180deg, #3d3d3d 0%, #1f1f1f 55%, #161616 100%);
  --bn-edge: #050505;
  --bn-hi: rgba(255, 255, 255, 0.22);
  --bn-on: #ffffff;
  --bn-face-2: linear-gradient(180deg, #ffffff 0%, #f3f3f3 60%, #e7e7e7 100%);
  --bn-edge-2: #a8a8a8;
  --bn-hi-2: #ffffff;
  --bn-on-2: #2b2b2b;
  --bn-line-2: #bdbdbd;
  --bn-drop: 0 3px 6px -3px rgba(0, 0, 0, 0.35);
}
html[data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-theme="dark"] {
  --pv-head-ink: #e9e9e9 !important;
  --pv-head-mute: #cfcfcf !important;
  --pv-brand: #ececec !important;
  --pv-brand-ink: #ececec !important;
  --pv-on-brand: #141414 !important;
  --pv-head-cta-bg: #ececec !important;
  --pv-head-cta-ink: #141414 !important;
  --pv-head-top: #ececec !important;
  --pg-jade: #e6e6e6 !important;
  --pg-grana: #e6e6e6 !important;
  --pg-anil: #e6e6e6 !important;
  --pg-ocre: #e6e6e6 !important;
  --pg-on: #141414 !important;
  --pg-wash: 4% !important;
  --bn-face: linear-gradient(180deg, #ffffff 0%, #e6e6e6 60%, #d6d6d6 100%);
  --bn-edge: #6f6f6f;
  --bn-hi: #ffffff;
  --bn-on: #141414;
  --bn-face-2: linear-gradient(180deg, #343434 0%, #2a2a2a 60%, #232323 100%);
  --bn-edge-2: #070707;
  --bn-hi-2: rgba(255, 255, 255, 0.1);
  --bn-on-2: #e9e9e9;
  --bn-line-2: #4a4a4a;
  --bn-drop: 0 3px 6px -3px rgba(0, 0, 0, 0.8);
}
html[data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice] :is(.btn--primary, .btn-primary, .btn-login, .ld-cta--primary, .ld-welcome__cta, .ld-nav__button, .public-surface-header a[class~="bg-terracotta-500"], .app-shell-account__trigger) {
  background: var(--bn-face) !important;
  color: var(--bn-on) !important;
  border: 1px solid var(--bn-edge) !important;
  border-radius: 7px !important;
  box-shadow: inset 0 1px 0 var(--bn-hi), 0 2px 0 var(--bn-edge), var(--bn-drop) !important;
  text-shadow: none !important;
  transition: transform 80ms ease, box-shadow 80ms ease !important;
}
html[data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice] :is(.btn--primary, .btn-primary, .btn-login, .ld-cta--primary, .ld-welcome__cta, .ld-nav__button, .public-surface-header a[class~="bg-terracotta-500"], .app-shell-account__trigger) :is(span, svg, svg *) {
  color: var(--bn-on) !important;
}
html[data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice] :is(.btn--secondary, .btn--ghost, .btn--icon, .ld-cta--secondary, .btn-google, .public-surface-register, .app-shell-header__theme, .ld-gallery__nav, .workspace-width-control, .app-shell-notifications__button) {
  background: var(--bn-face-2) !important;
  color: var(--bn-on-2) !important;
  border: 1px solid var(--bn-line-2) !important;
  border-radius: 7px !important;
  box-shadow: inset 0 1px 0 var(--bn-hi-2), 0 2px 0 var(--bn-edge-2), var(--bn-drop) !important;
  transition: transform 80ms ease, box-shadow 80ms ease !important;
}
html[data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice] :is(.btn--secondary, .btn--ghost, .btn--icon, .ld-cta--secondary, .btn-google, .public-surface-register, .app-shell-header__theme, .ld-gallery__nav, .workspace-width-control, .app-shell-notifications__button) :is(span, svg, svg *) {
  color: var(--bn-on-2) !important;
}
html[data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice] :is(.btn--primary, .btn-primary, .btn-login, .ld-cta--primary, .ld-welcome__cta, .ld-nav__button, .public-surface-header a[class~="bg-terracotta-500"], .app-shell-account__trigger, .btn--secondary, .btn--ghost, .btn--icon, .ld-cta--secondary, .btn-google, .public-surface-register, .app-shell-header__theme, .ld-gallery__nav, .workspace-width-control, .app-shell-notifications__button):active {
  transform: translateY(2px);
  box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.35) !important;
}
html[data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice] .gds .seg {
  box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.12) !important;
}
html[data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice] .gds .seg__btn:is([aria-selected="true"], [aria-current="page"], .is-active) {
  background: var(--bn-face) !important;
  color: var(--bn-on) !important;
  box-shadow: inset 0 1px 0 var(--bn-hi), 0 1px 0 var(--bn-edge) !important;
}
html[data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-skin] .app-shell-nav-item[aria-current="page"] {
  background: var(--bn-face) !important;
  border-left-color: transparent !important;
  border-radius: 7px !important;
  box-shadow: inset 0 1px 0 var(--bn-hi), 0 2px 0 var(--bn-edge) !important;
}
html[data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-skin] .app-shell-nav-item[aria-current="page"] :is(span, div, svg, svg *) {
  color: var(--bn-on) !important;
}
html[data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice] :is(.pub-card[data-card] .pub-card__icon, .gds .biblioteca-matter-card__icon) {
  background: var(--bn-face) !important;
  box-shadow: inset 0 1px 0 var(--bn-hi), 0 2px 0 var(--bn-edge) !important;
}
html[data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice] .ld-gallery__dots :is(button, [role=tab])[aria-selected="true"] {
  background: var(--pv-ink) !important;
}
html[data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice] :is(body, .ld-page) {
  --ld-accent: var(--pv-ink) !important;
  --ld-accent-strong: var(--pv-ink) !important;
}
html[data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice] :is(.ld-hero, .ld-hero__ai-note) a {
  color: var(--pv-ink) !important;
  text-decoration-color: var(--pv-mute) !important;
}
html[data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice] :is(.react-island-root > header.app-shell-header, .public-surface-header, .ld-topbar) {
  box-shadow: none !important;
  border-top: 0 !important;
  border-bottom: 1px solid var(--pv-rule) !important;
}
html[data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice] .ld-topbar {
  border: 0 !important;
  border-bottom: 1px solid var(--pv-rule) !important;
}
html[data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-tlacuilo="jade"]:not([data-theme="dark"]) {
  --bn-acc: #2f6f60;
  --bn-on-acc: #ffffff;
}
html[data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-tlacuilo="jade"][data-theme="dark"] {
  --bn-acc: #78b6a3;
  --bn-on-acc: #141414;
}
html[data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-tlacuilo="terracota"]:not([data-theme="dark"]) {
  --bn-acc: #9a4334;
  --bn-on-acc: #ffffff;
}
html[data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-tlacuilo="terracota"][data-theme="dark"] {
  --bn-acc: #dd9584;
  --bn-on-acc: #141414;
}
html[data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-tlacuilo="ocre"]:not([data-theme="dark"]) {
  --bn-acc: #86621f;
  --bn-on-acc: #ffffff;
}
html[data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-tlacuilo="ocre"][data-theme="dark"] {
  --bn-acc: #d3ae6c;
  --bn-on-acc: #141414;
}
html[data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-tlacuilo="cobalto"]:not([data-theme="dark"]) {
  --bn-acc: #2e5f7e;
  --bn-on-acc: #ffffff;
}
html[data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-tlacuilo="cobalto"][data-theme="dark"] {
  --bn-acc: #8db3cf;
  --bn-on-acc: #141414;
}
html[data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-tlacuilo="rosa"]:not([data-theme="dark"]) {
  --bn-acc: #943d60;
  --bn-on-acc: #ffffff;
}
html[data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-tlacuilo="rosa"][data-theme="dark"] {
  --bn-acc: #e3a0bb;
  --bn-on-acc: #141414;
}
html[data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-tlacuilo="oxido"]:not([data-theme="dark"]) {
  --bn-acc: #8a4a28;
  --bn-on-acc: #ffffff;
}
html[data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-tlacuilo="oxido"][data-theme="dark"] {
  --bn-acc: #dba27f;
  --bn-on-acc: #141414;
}
html[data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-tlacuilo="grafito"]:not([data-theme="dark"]) {
  --bn-acc: #4a5260;
  --bn-on-acc: #ffffff;
}
html[data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-tlacuilo="grafito"][data-theme="dark"] {
  --bn-acc: #b9bfc9;
  --bn-on-acc: #141414;
}
html[data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice]:is([data-tlacuilo="jade"], [data-tlacuilo="terracota"], [data-tlacuilo="ocre"], [data-tlacuilo="cobalto"], [data-tlacuilo="rosa"], [data-tlacuilo="oxido"], [data-tlacuilo="grafito"]) {
  --bn-face: linear-gradient(180deg, color-mix(in srgb, var(--bn-acc) 92%, #ffffff), var(--bn-acc) 60%, color-mix(in srgb, var(--bn-acc) 90%, #000000)) !important;
  --bn-edge: color-mix(in srgb, var(--bn-acc) 55%, #000000) !important;
  --bn-on: var(--bn-on-acc) !important;
  --pv-brand: var(--bn-acc) !important;
  --pv-on-brand: var(--bn-on-acc) !important;
  --pg-jade: var(--bn-acc) !important;
  --pg-grana: var(--bn-acc) !important;
  --pg-anil: var(--bn-acc) !important;
  --pg-ocre: var(--bn-acc) !important;
  --pg-on: var(--bn-on-acc) !important;
  --pg-wash: 5% !important;
}
html[data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice] {
  --mk-base: #f3f3f2;
  --mk-glow: rgba(255, 255, 255, 0.9);
  --mk-shade: rgba(0, 0, 0, 0.06);
  --mk-dot: rgba(0, 0, 0, 0.13);
  --mk-line: rgba(0, 0, 0, 0.05);
  --mk-grain: url("data:image/svg+xml,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 width=%27200%27 height=%27200%27%3E%3Cfilter id=%27n%27 x=%270%27 y=%270%27 width=%27100%25%27 height=%27100%25%27%3E%3CfeTurbulence type=%27fractalNoise%27 baseFrequency=%270.9%27 numOctaves=%272%27 seed=%273%27/%3E%3CfeColorMatrix values=%270 0 0 0 0.5 0 0 0 0 0.5 0 0 0 0 0.5 0 0 0 0.08 0%27/%3E%3C/filter%3E%3Crect width=%27100%25%27 height=%27100%25%27 filter=%27url(%23n)%27/%3E%3C/svg%3E");
  --mk-relief: url("data:image/svg+xml,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 width=%27320%27 height=%27280%27 shape-rendering=%27crispEdges%27%3E%3Cpath d=%27M40 260V220H80V180H120V140H200V180H240V220H280V260Z%27 fill=%27rgba(0,0,0,0.025)%27/%3E%3Cpath d=%27M40 220H80V180H120V140H200%27 fill=%27none%27 stroke=%27rgba(255,255,255,0.9)%27 stroke-width=%272%27/%3E%3Cpath d=%27M200 140V180H240V220H280V260H40%27 fill=%27none%27 stroke=%27rgba(0,0,0,0.05)%27 stroke-width=%272%27/%3E%3C/svg%3E");
  --mk-lift: 0 1px 2px rgba(0, 0, 0, 0.05), 0 14px 28px -16px rgba(0, 0, 0, 0.2);
}
html[data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-theme="dark"] {
  --pv-paper: #000000 !important;
  --pv-sheet: #0e0e0e !important;
  --pv-cream: #141414 !important;
  --pv-ink: #ededed !important;
  --pv-ink-2: #d0d0d0 !important;
  --pv-mute: #a0a0a0 !important;
  --pv-stroke: #262626 !important;
  --pv-rule: rgba(255, 255, 255, 0.08) !important;
  --pv-rule-strong: #333333 !important;
  --pv-field: #7a7a7a !important;
  --pv-head-bg: #0e0e0e !important;
  --pv-head-line: #262626 !important;
  --mk-base: #000000;
  --mk-glow: rgba(255, 255, 255, 0.06);
  --mk-shade: rgba(0, 0, 0, 0);
  --mk-dot: rgba(255, 255, 255, 0.1);
  --mk-line: rgba(255, 255, 255, 0.045);
  --mk-grain: url("data:image/svg+xml,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 width=%27200%27 height=%27200%27%3E%3Cfilter id=%27n%27 x=%270%27 y=%270%27 width=%27100%25%27 height=%27100%25%27%3E%3CfeTurbulence type=%27fractalNoise%27 baseFrequency=%270.9%27 numOctaves=%272%27 seed=%273%27/%3E%3CfeColorMatrix values=%270 0 0 0 0.5 0 0 0 0 0.5 0 0 0 0 0.5 0 0 0 0.12 0%27/%3E%3C/filter%3E%3Crect width=%27100%25%27 height=%27100%25%27 filter=%27url(%23n)%27/%3E%3C/svg%3E");
  --mk-relief: url("data:image/svg+xml,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 width=%27320%27 height=%27280%27 shape-rendering=%27crispEdges%27%3E%3Cpath d=%27M40 260V220H80V180H120V140H200V180H240V220H280V260Z%27 fill=%27rgba(255,255,255,0.018)%27/%3E%3Cpath d=%27M40 220H80V180H120V140H200%27 fill=%27none%27 stroke=%27rgba(255,255,255,0.06)%27 stroke-width=%272%27/%3E%3Cpath d=%27M200 140V180H240V220H280V260H40%27 fill=%27none%27 stroke=%27rgba(0,0,0,0.9)%27 stroke-width=%272%27/%3E%3C/svg%3E");
  --mk-lift: 0 1px 2px rgba(0, 0, 0, 0.6), 0 16px 32px -14px rgba(0, 0, 0, 0.9), 0 0 0 1px rgba(255, 255, 255, 0.04);
}
html[data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice] :is(.app-logo-wordmark, .ld-brand__name, .login-brand .brand-name, .login-brand h1, .auth-brand h1, .auth-brand .brand-name, .gl-wordmark) {
  color: var(--mk-jade) !important;
  -webkit-text-fill-color: var(--mk-jade) !important;
  background-image: none !important;
}
html[data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice] .app-shell-header .glo-mark,
html[data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice] .app-shell-rail-brand .glo-mark {
  background-color: var(--mk-jade) !important;
}
html[data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice] :is(body, .react-island-root, .react-island-root:is(.library-shell-mode, .dof-shell-mode, .radar-shell-mode, .public-dof-mode, .reader-doc-mode)) {
  background: var(--mk-grain), radial-gradient(90% 55% at 50% -5%, var(--mk-glow) 0%, transparent 70%), radial-gradient(120% 70% at 50% 120%, var(--mk-shade) 0%, transparent 65%), var(--mk-base) !important;
  background-attachment: fixed !important;
}
html[data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice] :is(.react-island-root > header.app-shell-header, .public-surface-header) {
  background: var(--pv-sheet) !important;
}
html[data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice] .app-shell-sidebar {
  background: color-mix(in srgb, var(--pv-sheet) 70%, transparent) !important;
}
html[data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice]:not([data-theme="dark"]) {
  --mk-jade: #3b6e62;
  --pv-head-mark: #3b6e62 !important;
  --mk-tint: url("data:image/svg+xml,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27%3E%3Cfilter id=%27t%27 color-interpolation-filters=%27sRGB%27%3E%3CfeFlood flood-color=%27%233b6e62%27/%3E%3CfeComposite in2=%27SourceAlpha%27 operator=%27in%27/%3E%3C/filter%3E%3C/svg%3E#t");
}
html[data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-theme="dark"] {
  --mk-jade: #7ea999;
  --pv-head-mark: #7ea999 !important;
  --mk-tint: url("data:image/svg+xml,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27%3E%3Cfilter id=%27t%27 color-interpolation-filters=%27sRGB%27%3E%3CfeFlood flood-color=%27%237ea999%27/%3E%3CfeComposite in2=%27SourceAlpha%27 operator=%27in%27/%3E%3C/filter%3E%3C/svg%3E#t");
}
html[data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice] :is(img[src*="icon-512"], img[src*="brand/"], .ld-brand img) {
  filter: var(--mk-tint) !important;
}
/* Acento por cuenta (Tlacuilo): Vidrio lo declara también dentro de la app, el
   lector y el SJF (glass.css, «Acentos mesoamericanos»), así que el re-apunte en
   <html> no basta y el SJF salía terracota/rosa/ocre según la cuenta. En Códice el
   acento es siempre jade. Peso: 2 atributos + [data-skin] + 2 :is() > los 3 de glass. */
html[data-codice][data-codice][data-skin]:is([data-tlacuilo], :not([data-tlacuilo])):is([data-theme], :not([data-theme])) :is(.gds, .gl-reader-shell, .sjf-root, .sjf-tesis-overlay, .sjf-folder-popup) {
  --glass-primary: var(--pv-brand);
  --glass-primary-hover: var(--pv-brand);
  --glass-on-primary: var(--pv-on-brand);
  --glass-sel-ink: var(--pv-ink);
  --accent-jade: var(--pv-brand);
  --accent-jade-fill: var(--pv-brand);
  --accent-jade-deep: var(--pv-brand);
  --accent-on-jade: var(--pv-on-brand);
  --on-accent: var(--pv-on-brand);
  --jade: var(--pv-brand);
  --jade-deep: var(--pv-brand);
  --jade-fill: var(--pv-brand);
  --on-jade: var(--pv-on-brand);
  --jade-fill-hover: var(--pv-brand);
  --jade-tint: color-mix(in srgb, var(--pv-brand) 10%, transparent);
  --jade-soft: color-mix(in srgb, var(--pv-brand) 18%, transparent);
  --sjf-primary-500: var(--pv-brand);
  --sjf-primary-600: var(--pv-brand);
  --sjf-primary-soft: color-mix(in srgb, var(--pv-brand) 10%, transparent);
  --acc-glow: color-mix(in srgb, var(--pv-brand) 28%, transparent);
}

/* ==================================================
   FINO (Vic, 2026-10-15): «que se vea cara».
   - Menú lateral en Bruma: jade claro #e3ece8 con tinta #22302c (11.4:1); oscuro #0f1d19 con #d8d8d8
     (12.2:1). Íconos jade 4.1:1 / 8.3:1. La sección activa es una hoja con filete jade.
   - Líneas jade de 1 px y tenues (14–32 %) en el encabezado, tarjetas, campos y botones; fuera las
     rayas negras de 2–3 px. Borde de campo #789790 3.0:1 (oscuro #557a70 4.1:1).
   - Botones con relieve mínimo: canto de 1 px (no 2 px ni sombra caída), sin degradado.
   - Logo sin la línea oscura (borde gris + sombra de .app-shell-rail-brand).
   Peso: 14 [data-codice], por encima de todo lo anterior de esta hoja.
   Prototipo y capturas: Glosador-Archivo/Branding/papel-vivo-20261014 (build_fino.py, shots/fino).
   ================================================== */
/* Letra (Vic, 2026-10-15): Literata para títulos, el nombre, la lectura y el índice del lector (Newsreader y Arial quedan como
   preferencia de lectura desde Basic); Geist para la interfaz;
   Geist Mono para datos. Sólo dentro de Códice: re-apunta las variables de letra de la app, el lector,
   el SJF y la demo de Tlacuilo en cada elemento (se declaran en varios contenedores), y las clases de Tailwind. */
html[data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice], html[data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice] * {
  --font-serif: 'Literata', Georgia, serif; --font-sans: 'Geist', system-ui, -apple-system, 'Segoe UI', sans-serif; --font-mono: 'Geist Mono', ui-monospace, Consolas, monospace;
  --f-serif: var(--font-serif); --f-sans: var(--font-sans); --f-mono: var(--font-mono);
  --sjf-font-serif: var(--font-serif); --sjf-font-sans: var(--font-sans);
  --tla-serif: var(--font-serif); --tla-sans: var(--font-sans); --tla-mono: var(--font-mono);
  --role-logo-family: var(--font-serif);
}
html[data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice] body, html[data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice] .font-sans { font-family: var(--font-sans) !important; }
html[data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice] :is(.font-serif, [style*="Fraunces"], [style*="Spectral"]) { font-family: var(--font-serif) !important; }
html[data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice] :is(.font-mono, code, kbd, samp, pre) { font-family: var(--font-mono) !important; }
/* LETRA-GENERADA:INICIO (fuentes_codice.py) */
/* Reglas de la app que escriben la familia a mano; las genera fuentes_codice.py desde el CSS fuente. */
html[data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice] :is(.app-shell-devnav__heading, .app-shell-devnav__item, .app-shell-devnav__trigger, .app-shell-sidebar .glo-icon:not([data-icon-loaded='true'])::before, .dof-reader-modal__actions a, .dof-reader-modal__actions button, .feedback-bubble, .glo-beta, .react-island-root, .tl-dg, .tl-dg figcaption, .tl-dg-edges text, .tl-doc-pending, .tl-doc-save, .tl-model [role=radio], .tl-paper .tl-link, .tl-paper-org, .tl-prefs-sheet, .tl-profile, .tl-session-lead a, .tl-skill-form, .tl-skills, .tlacuilo, .tlacuilo .tl-setup h2, .tlacuilo .tl-tutorial h3, .tlacuilo-answer h2, .tlacuilo-answer h3, .tlacuilo-answer table, .tlacuilo-scope-fixed>span, .tlacuilo-side h2, body, html[data-skin="glass"] .react-island-root > .app-shell-header h1) { font-family: var(--font-sans) !important; }
html[data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice] :is(.dof-reader-heading, .dof-reader-modal__title, .dof-reader-paragraph, .dof-reader-signature, .education-ad h2, .education-ad__title, .education-document b, .education-excerpt, .education-foundation, .education-invite h2, .news-nav__title, .news-welcome__post h3, .pub-card__title, .pub-inicio__head h1, .pub-news__head h1, .pub-post h2, .pub-signup h2, .tl-paper, .tl-session-lead, .tl-session-more blockquote, .tl-step-text blockquote, .tlacuilo-answer, .tlacuilo-welcome h1) { font-family: var(--font-serif) !important; }
html[data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice] :is(.app-shell-devnav__count, .citation-preview__card figcaption, .dev-account-tabs__item b, .education-ad__chips i, .education-eyebrow, .feedback-admin__meta > time, .service-interruption__status) { font-family: var(--font-mono) !important; }
/* LETRA-GENERADA:FIN */
/* Títulos y nombre */
html[data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice] { --fn-serif: 'Literata', Georgia, serif; --fn-sans: 'Geist', system-ui, sans-serif; }
html[data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice] :is(h1, h2) { font-weight: 400 !important; letter-spacing: -0.018em !important; }
html[data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice] :is(h3, h4) { font-weight: 500 !important; letter-spacing: -0.01em !important; }
html[data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice] :is(.app-logo-wordmark, .ld-brand__name, .login-brand .brand-name, .login-brand h1, .auth-brand h1, .auth-brand .brand-name, .gl-wordmark, .app-shell-header__brand > span.font-serif) {
  font-family: var(--fn-serif) !important; font-weight: 450 !important; letter-spacing: -0.012em !important; }
html[data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice] body { -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility; }
/* Índice del lector en Literata (Vic, 2026-10-15); los conteos siguen en Geist Mono. */
html[data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice] .reader-toc-tree .reader-toc-label { font-family: var(--font-serif) !important; }

/* ---------- Líneas: jade de 1 px, tenues ---------- */
html[data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice]:not([data-theme="dark"]) {
  --cx-accent: var(--bn-acc, #3a6359); --fn-jade: var(--cx-accent);
  --fn-line: color-mix(in srgb, var(--cx-accent) 14%, transparent);
  --fn-line-2: color-mix(in srgb, var(--cx-accent) 24%, transparent);
  --fn-lift: 0 1px 2px rgba(16, 32, 28, 0.04), 0 14px 34px -22px rgba(16, 32, 28, 0.18);
  --pv-stroke: var(--fn-line-2) !important; --pv-rule: var(--fn-line) !important; --pv-rule-strong: var(--fn-line-2) !important;
  --pv-head-line: var(--fn-line) !important; --pv-field: color-mix(in srgb, var(--cx-accent) 69%, #ffffff) !important; --pv-shadow: var(--fn-lift) !important; --mk-lift: var(--fn-lift);
  --fn-btn: var(--pv-brand); --fn-btn-hover: color-mix(in srgb, var(--pv-brand) 86%, #ffffff); --fn-btn-on: var(--pv-on-brand);
  --fn-ghost-hover: color-mix(in srgb, var(--cx-accent) 7%, transparent);
  --fn-head: color-mix(in srgb, var(--cx-accent) 45%, transparent); --fn-key-line: color-mix(in srgb, var(--cx-accent) 32%, transparent); --fn-key-edge: transparent; --fn-key-hover: color-mix(in srgb, var(--cx-accent) 55%, transparent); --fn-pri-edge: #000000;
}
html[data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-theme="dark"] {
  --cx-accent: var(--bn-acc, #8fb3a7); --fn-jade: var(--cx-accent);
  --fn-line: color-mix(in srgb, var(--cx-accent) 12%, transparent);
  --fn-line-2: color-mix(in srgb, var(--cx-accent) 20%, transparent);
  --fn-lift: 0 1px 0 rgba(255, 255, 255, 0.03) inset, 0 18px 40px -24px rgba(0, 0, 0, 0.9);
  --pv-stroke: var(--fn-line-2) !important; --pv-rule: var(--fn-line) !important; --pv-rule-strong: var(--fn-line-2) !important;
  --pv-head-line: var(--fn-line) !important; --pv-field: color-mix(in srgb, var(--cx-accent) 60%, #000000) !important; --pv-shadow: var(--fn-lift) !important; --mk-lift: var(--fn-lift);
  --fn-btn: var(--pv-brand); --fn-btn-hover: color-mix(in srgb, var(--pv-brand) 86%, #000000); --fn-btn-on: var(--pv-on-brand);
  --fn-ghost-hover: color-mix(in srgb, var(--cx-accent) 8%, transparent);
  --fn-head: color-mix(in srgb, var(--cx-accent) 40%, transparent); --fn-key-line: color-mix(in srgb, var(--cx-accent) 30%, transparent); --fn-key-edge: transparent; --fn-key-hover: color-mix(in srgb, var(--cx-accent) 55%, transparent); --fn-pri-edge: #8a8a8a;
}
html[data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice] :is(.react-island-root > header.app-shell-header, .public-surface-header, .ld-topbar) {
  border: 0 !important; border-bottom: 1px solid var(--fn-head) !important; box-shadow: none !important; }
html[data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice] :is(.pub-card[data-card], .pub-card, .ld-card, .login-card, .gds .biblioteca-matter-card, .gds .gds-card) {
  border: 1px solid var(--fn-line-2) !important; border-top: 1px solid var(--fn-line-2) !important;
  background: var(--pv-sheet) !important; background-image: none !important; box-shadow: var(--fn-lift) !important; border-radius: 10px !important; }
html[data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice] .pub-card::before { display: none !important; }
html[data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice] .ld-proof { border-color: var(--fn-line-2) !important; box-shadow: none !important; }
html[data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice] :is(.news-foot, .gds hr, hr) { border-top: 1px solid var(--fn-line-2) !important; }
html[data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice] :is(.pub-card[data-card] .pub-card__icon, .gds .biblioteca-matter-card__icon) {
  background: color-mix(in srgb, var(--fn-jade) 8%, var(--pv-sheet)) !important; color: var(--fn-jade) !important;
  box-shadow: inset 0 0 0 1px var(--fn-line-2) !important; border: 0 !important; }
html[data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice] :is(.pub-card[data-card] .pub-card__icon, .gds .biblioteca-matter-card__icon) :is(svg, svg *) { color: var(--fn-jade) !important; }
html[data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice] .gds .biblioteca-matter-card--cpeum { border-top: 1px solid var(--fn-line-2) !important; }

/* ---------- Botones planos (Vic, 2026-10-15: «quita todo lo 3D de todos los botones»): sin canto ni sombra,
   sólo filete de 1 px y cambio de fondo al pasar o al activar. El relieve queda sólo en la marca. ---------- */
html[data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice] :is(.btn--primary, .btn-primary, .btn-login, .ld-cta--primary, .ld-welcome__cta, .ld-nav__button, .public-surface-header a[class~="bg-terracotta-500"]) {
  background: var(--fn-btn) !important; background-image: none !important; color: var(--fn-btn-on) !important;
  border: 1px solid transparent !important; border-radius: 6px !important; transform: none !important;
  box-shadow: none !important;
  font-weight: 500 !important; letter-spacing: 0 !important; transition: background-color 120ms ease !important; }
html[data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice] :is(.btn--primary, .btn-primary, .btn-login, .ld-cta--primary, .ld-welcome__cta, .ld-nav__button, .public-surface-header a[class~="bg-terracotta-500"]):hover { background: var(--fn-btn-hover) !important; }
html[data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice] :is(.btn--primary, .btn-primary, .btn-login, .ld-cta--primary, .ld-welcome__cta, .ld-nav__button, .public-surface-header a[class~="bg-terracotta-500"]) :is(span, svg, svg *) { color: var(--fn-btn-on) !important; }
html[data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice] :is(.btn--secondary, .ld-cta--secondary, .btn-google, .public-surface-register, .btn--ghost, .btn--icon, .app-shell-header__theme, .ld-gallery__nav, .workspace-width-control, .app-shell-notifications__button, .news-nav__arrow, .reader-toolbar button, .reader-toolbar a) {
  background: var(--pv-sheet) !important; background-image: none !important; color: var(--pv-ink) !important;
  border: 1px solid var(--fn-key-line) !important; box-shadow: none !important; transform: none !important;
  transition: background-color 120ms ease, border-color 120ms ease !important; }
html[data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice] :is(.btn--secondary, .ld-cta--secondary, .btn-google, .public-surface-register, .btn--ghost, .btn--icon, .app-shell-header__theme, .ld-gallery__nav, .workspace-width-control, .app-shell-notifications__button, .news-nav__arrow, .reader-toolbar button, .reader-toolbar a):hover { background: var(--fn-ghost-hover) !important; border-color: var(--fn-key-hover) !important; }
html[data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice] :is(.btn--secondary, .ld-cta--secondary, .btn-google, .public-surface-register, .btn--ghost, .btn--icon, .app-shell-header__theme, .ld-gallery__nav, .workspace-width-control, .app-shell-notifications__button, .news-nav__arrow, .reader-toolbar button, .reader-toolbar a) :is(span, svg, svg *) { color: var(--pv-ink) !important; }
html[data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice] :is(.btn--secondary, .ld-cta--secondary, .btn-google, .public-surface-register) { border-radius: 6px !important; font-weight: 500 !important; }
html[data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice] :is(.btn--ghost, .btn--icon, .app-shell-header__theme, .workspace-width-control, .app-shell-notifications__button, .reader-toolbar button, .reader-toolbar a) { border-radius: 8px !important; }
html[data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice] :is(.ld-gallery__nav, .news-nav__arrow) { border-radius: 999px !important; }
html[data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice] :is(.btn--primary, .btn-primary, .btn-login, .ld-cta--primary, .ld-welcome__cta, .ld-nav__button, .public-surface-header a[class~="bg-terracotta-500"], .btn--secondary, .ld-cta--secondary, .btn-google, .public-surface-register, .btn--ghost, .btn--icon, .app-shell-header__theme, .ld-gallery__nav, .workspace-width-control, .app-shell-notifications__button, .news-nav__arrow, .reader-toolbar button, .reader-toolbar a):active { transform: none !important; box-shadow: none !important; }
html[data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice] .app-shell-account__trigger { background: var(--fn-btn) !important; background-image: none !important; color: var(--fn-btn-on) !important;
  border: 0 !important; border-radius: 8px !important; box-shadow: none !important; transform: none !important; }
html[data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice] .app-shell-account__trigger :is(span, svg, svg *) { color: var(--fn-btn-on) !important; }
html[data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice] .gds .seg { box-shadow: none !important; border: 1px solid var(--fn-key-line) !important; background: transparent !important; }
html[data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice] .gds .seg__btn:is([aria-selected="true"], [aria-current="page"], .is-active) { background: var(--fn-btn) !important; background-image: none !important; color: var(--fn-btn-on) !important; box-shadow: none !important; }
/* Etiquetas («BETA», «GRATIS»): filete jade, versalitas espaciadas. */
html[data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice] :is(.app-shell-header__brand, .ld-brand) :is(span[class*="rounded-full"], .ld-brand__tag, [class*="badge"], .glo-beta) {
  border: 1px solid var(--fn-line-2) !important; color: var(--fn-jade) !important; background: transparent !important;
  font-family: var(--fn-sans) !important; font-size: 10px !important; letter-spacing: 0.16em !important; font-weight: 500 !important; }

/* DOF y su lateral: aire entre la línea del encabezado y el contenido; si no, la barra de fecha y la tarjeta
   del lateral tocan el filete y la línea se ve cortada (Vidrio quita ese aire para las pestañas, que GlosaDOF no tiene). */
html[data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice] .gds .main__header.dof-date-toolbar { padding-top: var(--dof-date-padding-top, 28px) !important; }
html[data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice] .education-rail { padding-top: 28px !important; }

/* ---------- Lector: barra y sección activa del índice ---------- */
html[data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice] .reader-toolbar { border-bottom: 1px solid var(--fn-head) !important; box-shadow: none !important; }
html[data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice] .reader-toc-item.active { background: color-mix(in srgb, var(--fn-jade) 8%, transparent) !important; box-shadow: inset 2px 0 0 var(--fn-jade) !important; }
html[data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice] .reader-toc-item.active, html[data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice] .reader-toc-item.active * { color: var(--fn-jade) !important; }

/* ---------- Logo: sin la línea oscura (borde gris 1 px + sombra 1 px) ni filete propio: el recuadro
   acaba 1 px arriba del encabezado, así su filete salía doble (2 px) bajo el logo. Debajo corre el del encabezado. ---------- */
html[data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice] .app-shell-rail-brand { border: 0 !important; box-shadow: none !important; background: var(--pv-sheet) !important; }

/* ---------- Menú lateral en jade claro ---------- */
html[data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice] .app-shell-sidebar {
  --pv-ink: var(--fn-s-ink) !important; --pv-ink-2: var(--fn-s-ink) !important; --pv-mute: var(--fn-s-mute) !important;
  --pv-head-ink: var(--fn-s-ink) !important; --pv-head-mute: var(--fn-s-mute) !important;
  --pv-sheet: var(--fn-s-bg) !important; --pv-paper: var(--fn-s-bg) !important; --pv-cream: var(--fn-s-bg) !important; --pv-head-bg: var(--fn-s-bg) !important;
  --pv-stroke: var(--fn-line) !important; --pv-rule: var(--fn-line) !important; --pv-rule-strong: var(--fn-line) !important; --pv-head-line: var(--fn-line) !important;
  --pg-jade: var(--fn-jade) !important; --pg-grana: var(--fn-jade) !important; --pg-anil: var(--fn-jade) !important; --pg-ocre: var(--fn-jade) !important; --pg-c: var(--fn-jade) !important;
  color: var(--fn-s-ink) !important; background: var(--fn-s-bg) !important; border-right: 1px solid var(--fn-line) !important; box-shadow: none !important; }
html[data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice]:not([data-theme="dark"]) .app-shell-sidebar { --fn-s-bg: color-mix(in srgb, var(--cx-accent) 13%, #ffffff); --fn-s-ink: #22302c; --fn-s-mute: #4f5f5a; --fn-s-act: #ffffff; --fn-s-act-ink: var(--fn-jade-ink); }
html[data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-theme="dark"] .app-shell-sidebar { --fn-s-bg: color-mix(in srgb, var(--cx-accent) 7%, #131917); --fn-s-ink: #d8d8d8; --fn-s-mute: #a0a0a0; --fn-s-act: color-mix(in srgb, var(--cx-accent) 12%, transparent); --fn-s-act-ink: var(--fn-jade-ink); }
html[data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice] .app-shell-sidebar :is(span, div, a, button) { color: var(--fn-s-ink) !important; }
html[data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice] .app-shell-sidebar .app-shell-nav-item { font-weight: 500 !important; }
html[data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice] .app-shell-sidebar .app-shell-nav-item span { font-size: 13.5px !important; letter-spacing: -0.006em !important; overflow-wrap: normal !important; word-break: normal !important; hyphens: none !important; }
html[data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice] .app-shell-sidebar .app-shell-nav-item :is(svg, svg *, .glo-icon) { color: var(--fn-jade) !important; }
html[data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice] .app-shell-sidebar .app-shell-nav-item[aria-current="page"] {
  background: var(--fn-s-act) !important; background-image: none !important; border-radius: 8px !important;
  box-shadow: inset 0 0 0 1px var(--fn-line-2) !important; border-left-color: transparent !important; }
html[data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice] .app-shell-sidebar .app-shell-nav-item[aria-current="page"] :is(span, div, svg, svg *) { color: var(--fn-s-act-ink) !important; }

/* ---------- Crear cuenta gratis: la acción llamativa de la parte pública (Vic, 2026-10-15) ----------
   Jade lleno en la portada y en GlosaDOF; «Acceder» / «Iniciar sesión» quedan discretos. Selector con «a.» para
   ganarle a la regla de botones principales de arriba (su :is() incluye `.public-surface-header a[class~=…]`).
   Jade sobrio (Vic, 2026-10-15, «menos intenso, más formal»): blanco sobre #3a6359 6.8:1 (al pasar #30544b 8.4:1);
   oscuro #0a1713 sobre #8fb3a7 8.0:1. El nombre y el logo siguen en el jade de marca (--mk-jade). */
html[data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice]:not([data-theme="dark"]) { --fn-cta: var(--cx-accent); --fn-cta-hover: color-mix(in srgb, var(--cx-accent) 82%, #000000); --fn-cta-edge: color-mix(in srgb, var(--cx-accent) 82%, #000000); --fn-cta-on: var(--bn-on-acc, #ffffff); --fn-cta-glow: transparent; --fn-feat: var(--pv-sheet); }
html[data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-theme="dark"] { --fn-cta: var(--cx-accent); --fn-cta-hover: color-mix(in srgb, var(--cx-accent) 88%, #ffffff); --fn-cta-edge: color-mix(in srgb, var(--cx-accent) 88%, #ffffff); --fn-cta-on: var(--bn-on-acc, #0a1713); --fn-cta-glow: transparent; --fn-feat: color-mix(in srgb, var(--cx-accent) 6%, #1a1f1d); }
html[data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice] :is(.ld-nav a.ld-nav__signup, .public-surface-header a.public-surface-register) {
  background: var(--fn-cta) !important; background-image: none !important; color: var(--fn-cta-on) !important;
  border: 1px solid var(--fn-cta-edge) !important; border-radius: 7px !important; font-weight: 600 !important;
  box-shadow: none !important; }
html[data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice] :is(.ld-nav a.ld-nav__signup, .public-surface-header a.public-surface-register):hover { background: var(--fn-cta-hover) !important; }
html[data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice] :is(.ld-nav a.ld-nav__signup, .public-surface-header a.public-surface-register) :is(span, svg, svg *) { color: var(--fn-cta-on) !important; }
html[data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice] .public-surface-header a[class~="bg-terracotta-500"] {
  background: transparent !important; color: var(--pv-ink) !important; border: 1px solid var(--fn-key-line) !important; box-shadow: none !important; font-weight: 500 !important; }
html[data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice] .public-surface-header a[class~="bg-terracotta-500"]:hover { background: var(--fn-ghost-hover) !important; }
html[data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice] .ld-nav .ld-nav__login { color: var(--pv-ink) !important; font-weight: 500 !important; }

/* ---------- Oscuro: las tarjetas de funciones con fondo propio (carbón con jade) para que no se pierdan ---------- */
html[data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-theme="dark"] :is(.pub-card, .pub-card[data-card], .ld-card, .gds .biblioteca-matter-card, .gds .gds-card, .tla-stage, .education-invite, .education-ad) {
  background: var(--fn-feat) !important; background-image: none !important; border-color: color-mix(in srgb, var(--cx-accent) 22%, transparent) !important; }
html[data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-theme="dark"] :is(.pub-card[data-card] .pub-card__icon, .gds .biblioteca-matter-card__icon) { background: color-mix(in srgb, var(--cx-accent) 12%, transparent) !important; }

/* ---------- Buscadores: más altos, filete jade y anillo al escribir ---------- */
html[data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice] :is(label.input.instrumento-search__input, label.input.flex-1, .sjf-search-input-wrap) {
  min-height: 48px !important; border-radius: 10px !important; border: 1px solid var(--pv-field) !important;
  background: var(--fn-feat, var(--pv-sheet)) !important; box-shadow: 0 10px 24px -20px rgba(16, 32, 28, 0.35) !important;
  padding-left: 14px !important; transition: border-color 120ms ease, box-shadow 120ms ease !important; }
html[data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice] :is(label.input.instrumento-search__input, label.input.flex-1, .sjf-search-input-wrap):focus-within {
  border-color: var(--fn-jade) !important; box-shadow: 0 0 0 3px color-mix(in srgb, var(--fn-jade) 20%, transparent) !important; }
html[data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice] :is(label.input.instrumento-search__input, label.input.flex-1, .sjf-search-input-wrap) :is(svg, svg *) { color: var(--fn-jade) !important; }
html[data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice] :is(label.input.instrumento-search__input, label.input.flex-1, .sjf-search-input-wrap) input { font-size: 15px !important; }
html[data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice] :is(label.input.instrumento-search__input, label.input.flex-1, .sjf-search-input-wrap) input::placeholder { color: var(--pv-mute) !important; opacity: 1 !important; }

/* ---------- Materia: título al centro, descripción en cursiva, pestañas marcadas y aire ---------- */
html[data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice] .gds:has(.normativa-matter-backbar) .main__title-block { display: grid !important; justify-items: center !important; text-align: center !important; gap: 8px !important; margin: 26px auto 26px !important; max-width: 46rem; }
html[data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice] .gds:has(.normativa-matter-backbar) .main__title-row { justify-content: center !important; }
html[data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice] .gds:has(.normativa-matter-backbar) .main__title { text-align: center !important; font-size: clamp(24px, 2.4vw, 29px) !important; font-weight: 400 !important; letter-spacing: -0.018em !important; }
html[data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice] .gds:has(.normativa-matter-backbar) .main__deck { font-family: var(--font-serif) !important; font-style: italic !important; font-size: 17.5px !important; line-height: 1.5 !important; color: var(--pv-ink-2) !important; }
html[data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice] .normativa-matter-backbar { margin-bottom: 4px !important; }
html[data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice] .normativa-matter-toolbar__filter-group:not(.normativa-matter-toolbar__filter-group--subtemas) > .normativa-matter-toolbar__chips { display: flex !important; gap: 4px !important; border-bottom: 1px solid var(--fn-line-2) !important; padding: 0 2px !important; margin-bottom: 18px !important; }
html[data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice] .normativa-matter-toolbar__filter-group:not(.normativa-matter-toolbar__filter-group--subtemas) > .normativa-matter-toolbar__chips .normativa-filter-chip {
  background: transparent !important; color: var(--pv-mute) !important; border: 1px solid transparent !important; border-bottom: 0 !important;
  border-radius: 8px 8px 0 0 !important; padding: 10px 18px !important; font-size: 14px !important; font-weight: 500 !important; box-shadow: none !important; margin-bottom: -1px !important; }
html[data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice] .normativa-matter-toolbar__filter-group:not(.normativa-matter-toolbar__filter-group--subtemas) > .normativa-matter-toolbar__chips .normativa-filter-chip:hover { color: var(--pv-ink) !important; background: var(--fn-ghost-hover) !important; }
html[data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice] .normativa-matter-toolbar__filter-group:not(.normativa-matter-toolbar__filter-group--subtemas) > .normativa-matter-toolbar__chips .normativa-filter-chip[aria-pressed="true"] {
  background: var(--fn-feat, var(--pv-sheet)) !important; color: var(--fn-jade) !important; font-weight: 600 !important;
  border-color: var(--fn-line-2) !important; box-shadow: inset 0 2px 0 var(--fn-jade) !important; }
html[data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice] .normativa-matter-toolbar__filter-group { margin-bottom: 8px !important; }
/* Subtemas: etiquetas con aire y filete jade; la elegida, jade. */
html[data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice] .normativa-matter-toolbar__filter-group--subtemas > .normativa-matter-toolbar__chips { display: flex !important; flex-wrap: wrap !important; gap: 10px !important; padding: 6px 0 4px !important; }
html[data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice] .normativa-matter-toolbar__filter-group--subtemas .normativa-filter-chip { border: 1px solid color-mix(in srgb, var(--fn-jade) 30%, transparent) !important; border-radius: 999px !important; padding: 8px 15px !important; background: color-mix(in srgb, var(--fn-jade) 7%, var(--fn-feat, var(--pv-sheet))) !important; color: var(--fn-jade-ink) !important; box-shadow: none !important; font-weight: 500 !important; }
html[data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice] .normativa-matter-toolbar__filter-group--subtemas .normativa-filter-chip:hover { background: var(--fn-ghost-hover) !important; border-color: var(--fn-key-hover) !important; }
html[data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice] .normativa-matter-toolbar__filter-group--subtemas .normativa-filter-chip[aria-pressed="true"] { background: color-mix(in srgb, var(--fn-jade) 12%, var(--pv-sheet)) !important; border-color: var(--fn-jade) !important; color: var(--fn-jade) !important; font-weight: 600 !important; }

/* ---------- Nombre a la altura del logo: las cajas están centradas, pero el centro de tinta no cae en el
   centro del renglón. Con Literata queda 2 px abajo del centro del símbolo (con Newsreader eran 3 px arriba);
   medido 2026-10-15 con probe_alineacion.py en la app, GlosaDOF y la portada. ---------- */
html[data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice] :is(.app-logo-wordmark, .public-surface-header .app-shell-header__brand > span.font-serif, .ld-brand__name) { position: relative !important; top: -0.065em !important; }

/* ---------- Jade en los nombres clave (Vic, 2026-10-15): el nombre GlosaDOF, el título de la materia y el
   nombre de cada materia en la cuadrícula. Jade #3b6e62 sobre blanco 5.9:1; oscuro #7ea999 sobre #0e0e0e 7.4:1. ---------- */
html[data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice] .public-surface-header .app-shell-header__brand > span.font-serif { color: var(--mk-jade) !important; -webkit-text-fill-color: var(--mk-jade) !important; }
html[data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice] .gds:has(.normativa-matter-backbar) .main__title { color: var(--fn-jade) !important; }
html[data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice] .gds .biblioteca-matter-card__title { color: var(--fn-jade) !important; }

/* ---------- Búsqueda (inspección 2026-10-15, escritorio y 390 px) ----------
   El selector Vigentes / No vigentes / Todas es un segmentado: una sola caja, opciones planas, la elegida
   llena (antes cada opción llevaba contorno de tecla y en móvil se cortaba el texto). Filtros en rejilla; en
   móvil el segmentado ocupa su renglón y los dos selectores comparten el siguiente. «Autoridad sugerida» en
   jade (venía en terracota, fuera de la paleta). El aviso flotante deja de tapar resultados en móvil. */
html[data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice]:not([data-theme="dark"]) { --fn-jade-ink: color-mix(in srgb, var(--cx-accent) 82%, #000000); }
html[data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-theme="dark"] { --fn-jade-ink: color-mix(in srgb, var(--cx-accent) 78%, #ffffff); }
html[data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice] .gds .search-source-switch { display: inline-flex !important; gap: 2px !important; padding: 3px !important; border: 1px solid var(--fn-key-line) !important; border-radius: 10px !important;
  background: var(--fn-feat, var(--pv-sheet)) !important; box-shadow: none !important; min-height: 44px !important; align-items: stretch !important; }
html[data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice] .gds .search-source-switch .search-source-switch__btn { border: 0 !important; box-shadow: none !important; background: transparent !important; background-image: none !important;
  border-radius: 7px !important; padding: 8px 14px !important; white-space: nowrap !important; min-width: 0 !important; color: var(--pv-ink-2) !important; font-weight: 500 !important; transform: none !important; }
html[data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice] .gds .search-source-switch .search-source-switch__btn:hover { background: var(--fn-ghost-hover) !important; }
html[data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice] .gds .search-source-switch .search-source-switch__btn[aria-pressed="true"] { background: var(--fn-btn) !important; color: var(--fn-btn-on) !important; }
/* Fila de filtros que se acomoda sola: en la app lleva además Normativa / DOF (cuatro controles); una
   rejilla fija de tres columnas la desbordaba (medido 2026-10-15). */
html[data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice] .gds .search-filter-panel__primary { display: flex !important; flex-wrap: wrap !important; gap: 12px !important; align-items: center !important; }
html[data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice] .gds .search-filter-panel__primary > label.block { flex: 1 1 240px !important; min-width: 0 !important; }
html[data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice] .gds .search-filter-panel__primary > :is(.search-source-switch, .search-vigencia-field) { flex: 0 0 auto !important; width: auto !important; max-width: 100% !important; }
html[data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice] .gds .search-filter-panel select { min-height: 44px !important; border-radius: 10px !important; border: 1px solid var(--pv-field) !important; background-color: var(--fn-feat, var(--pv-sheet)) !important; color: var(--pv-ink) !important; }
html[data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice] .gds .search-answer-card--related { border: 1px solid color-mix(in srgb, var(--fn-jade) 32%, transparent) !important; background: color-mix(in srgb, var(--fn-jade) 6%, var(--fn-feat, var(--pv-sheet))) !important; }
html[data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice] .gds .search-answer-card--related .text-terracotta-700 { color: var(--fn-jade-ink) !important; }
html[data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice] .gds .search-answer-card--related [class*="bg-terracotta"] { background: var(--fn-jade) !important; color: var(--fn-cta-on, #fff) !important; border-color: transparent !important; }
html[data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice] .gds .search-answer-card--related [class*="bg-terracotta"] :is(svg, svg *) { color: var(--fn-cta-on, #fff) !important; }
@media (max-width: 640px) {
  html[data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice] .gds .search-filter-panel__primary > :is(.search-source-switch, .search-vigencia-field) { flex: 1 1 100% !important; }
  html[data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice] .gds .search-filter-panel__primary > label.block { flex: 1 1 calc(50% - 6px) !important; }
  html[data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice] .gds .search-filter-panel__primary > .search-source-switch { display: flex !important; }
  html[data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice] .gds .search-filter-panel__primary > .search-source-switch .search-source-switch__btn { flex: 1 1 0 !important; }
  html[data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice] .gds .search-vigencia-field .search-source-switch { display: flex !important; width: 100% !important; }
  html[data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice] .gds .search-vigencia-field .search-source-switch__btn { flex: 1 1 0 !important; padding: 8px 6px !important; }
  html[data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice] .gds .search-guidance-dock { position: static !important; margin: 16px 0 0 !important; width: auto !important; }
  /* GlosaDOF en móvil: los enlaces del menú en un renglón que se desliza, en vez de tres renglones. */
  html[data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice] .public-surface-header nav { flex-wrap: nowrap !important; overflow-x: auto !important; max-width: 100% !important; gap: 18px !important; white-space: nowrap !important; scrollbar-width: none !important; padding: 2px 4px !important; }
  html[data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice] .public-surface-header nav::-webkit-scrollbar { display: none !important; }
}

/* ---------- Inicio de GlosaDOF: el bloque «Cuenta gratis» con el botón grande en jade (Vic, 2026-10-15) ---------- */
html[data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice] .pub-signup { border: 1px solid color-mix(in srgb, var(--fn-jade) 38%, transparent) !important; background: color-mix(in srgb, var(--fn-jade) 8%, var(--fn-feat, var(--pv-sheet))) !important; box-shadow: var(--fn-lift) !important; }
html[data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice] :is(.pub-signup__eyebrow, .pub-signup li svg) { color: var(--fn-jade-ink) !important; }
html[data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice] .pub-signup h2 { font-family: var(--font-serif) !important; font-weight: 400 !important; letter-spacing: -0.015em !important; color: var(--pv-ink) !important; }
html[data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice] .pub-signup li { color: var(--pv-ink) !important; }
html[data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice] .pub-signup a.pub-signup__cta { background: var(--fn-cta) !important; color: var(--fn-cta-on) !important; border: 1px solid var(--fn-cta-edge) !important; border-radius: 10px !important;
  box-shadow: none !important; transition: background-color 120ms ease !important; }
html[data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice] .pub-signup a.pub-signup__cta:hover { background: var(--fn-cta-hover) !important; }
html[data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice] .pub-signup a.pub-signup__cta:active { transform: none !important; box-shadow: none !important; }
html[data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice] .pub-signup__login { color: var(--pv-mute) !important; }
html[data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice] .pub-signup__login a { color: var(--pv-ink) !important; }

/* ---------- Oscuro con fondo: carbón con un toque de jade, luz tenue arriba y una retícula de puntos fina,
   como una mesa de trabajo digital (Vic, 2026-10-15: «pareciera que hay un abismo»). El grano se queda. ---------- */
html[data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-theme="dark"] :is(body, .react-island-root, .react-island-root:is(.library-shell-mode, .dof-shell-mode, .radar-shell-mode, .public-dof-mode, .reader-doc-mode)) {
  background: var(--mk-grain),
    radial-gradient(color-mix(in srgb, var(--cx-accent) 7.5%, transparent) 1px, transparent 1.3px) 0 0 / 22px 22px,
    radial-gradient(80% 50% at 50% -8%, color-mix(in srgb, var(--cx-accent) 11%, transparent) 0%, transparent 70%),
    radial-gradient(60% 40% at 100% 100%, color-mix(in srgb, var(--cx-accent) 8%, transparent) 0%, transparent 70%),
    #070b0a !important;
  background-attachment: fixed !important;
}

/* ---------- Búsqueda: la tarjeta es una hoja fijada a la mesa: superficie propia, sombra honda, filete de luz
   arriba y marcas de registro jade en las esquinas. ---------- */
html[data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice]:not([data-theme="dark"]) { --fn-desk-bg: #ffffff; --fn-mark: color-mix(in srgb, var(--cx-accent) 45%, transparent);
  --fn-desk-shadow: inset 0 1px 0 #ffffff, 0 1px 2px rgba(16, 32, 28, 0.06), 0 22px 48px -26px rgba(16, 32, 28, 0.32); }
html[data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-theme="dark"] { --fn-desk-bg: #0f1a17; --fn-mark: color-mix(in srgb, var(--cx-accent) 50%, transparent);
  --fn-desk-shadow: inset 0 1px 0 color-mix(in srgb, var(--cx-accent) 12%, transparent), 0 0 0 1px rgba(0, 0, 0, 0.5), 0 2px 6px rgba(0, 0, 0, 0.5), 0 30px 60px -28px rgba(0, 0, 0, 0.95); }
html[data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice] .gds .search-command-panel {
  position: relative !important; padding: 26px 28px 24px !important; border-radius: 14px !important;
  border: 1px solid var(--fn-line-2) !important; box-shadow: var(--fn-desk-shadow) !important;
  background: linear-gradient(var(--fn-mark), var(--fn-mark)) 9px 9px / 10px 1px no-repeat, linear-gradient(var(--fn-mark), var(--fn-mark)) 9px 9px / 1px 10px no-repeat, linear-gradient(var(--fn-mark), var(--fn-mark)) right 9px top 9px / 10px 1px no-repeat, linear-gradient(var(--fn-mark), var(--fn-mark)) right 9px top 9px / 1px 10px no-repeat, linear-gradient(var(--fn-mark), var(--fn-mark)) left 9px bottom 9px / 10px 1px no-repeat, linear-gradient(var(--fn-mark), var(--fn-mark)) left 9px bottom 9px / 1px 10px no-repeat, linear-gradient(var(--fn-mark), var(--fn-mark)) right 9px bottom 9px / 10px 1px no-repeat, linear-gradient(var(--fn-mark), var(--fn-mark)) right 9px bottom 9px / 1px 10px no-repeat, var(--fn-desk-bg) !important;
}
html[data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice] .gds .search-view-stack { border: 0 !important; background: transparent !important; box-shadow: none !important; }
@media (max-width: 640px) {
  html[data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice] .gds .search-command-panel { padding: 20px 16px 18px !important; }
}

/* ---------- Materia: la pestaña activa y su panel en papel crema tenue, como una sola hoja (Vic, 2026-10-15).
   Tinta #2b2b2b sobre #faf6ec 13.1:1; oscuro (cartón cálido) #ededed sobre #1f1c15 14.4:1. ---------- */
html[data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice]:not([data-theme="dark"]) { --fn-crema: #faf6ec; }
html[data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-theme="dark"] { --fn-crema: #1f1c15; }
html[data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice] .gds .normativa-matter-toolbar { background: var(--fn-crema) !important; }
html[data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice] .normativa-matter-toolbar__filter-group:not(.normativa-matter-toolbar__filter-group--subtemas) > .normativa-matter-toolbar__chips .normativa-filter-chip[aria-pressed="true"] { background: var(--fn-crema) !important; }

/* ---------- Materia como carpeta real (Vic, 2026-10-15): hoja de papel crema con lengüetas; las leyes, las
   submaterias y el buscador van transparentes encima para que se vea el papel. La hoja la dibujan el
   ::before de la barra (debajo de las lengüetas) y la lista de documentos; la lengüeta activa tapa el filo. ---------- */
html[data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice]:not([data-theme="dark"]) { --fn-folder-line: rgba(140, 118, 74, 0.32); --fn-folder-tab: #f0e9d7; --fn-folder-shadow: 0 1px 2px rgba(60, 48, 20, 0.06), 0 22px 44px -28px rgba(60, 48, 20, 0.35); }
html[data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-theme="dark"] { --fn-folder-line: rgba(224, 206, 160, 0.26); --fn-folder-tab: #2a261c; --fn-folder-shadow: 0 2px 6px rgba(0, 0, 0, 0.5), 0 30px 60px -30px rgba(0, 0, 0, 0.95); }
html[data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice] .gds:has(.normativa-matter-backbar) .normativa-matter-toolbar { position: relative !important; isolation: isolate !important; background: transparent !important; border: 0 !important;
  box-shadow: none !important; margin-bottom: 0 !important; padding: 0 22px 16px !important; }
html[data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice] .gds:has(.normativa-matter-backbar) .normativa-matter-toolbar::before { content: "" !important; position: absolute !important; z-index: -1 !important; left: 0 !important; right: 0 !important; top: 40px !important; bottom: 0 !important;
  background: var(--fn-crema) !important; border: 1px solid var(--fn-folder-line) !important; border-bottom: 0 !important; border-radius: 0 12px 0 0 !important; }
html[data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice] .gds:has(.normativa-matter-backbar) .normativa-matter-toolbar__filter-group:not(.normativa-matter-toolbar__filter-group--subtemas) > .normativa-matter-toolbar__chips { display: flex !important; align-items: flex-end !important; gap: 3px !important; height: 40px !important; margin: 0 0 18px -2px !important; padding: 0 !important; border: 0 !important; }
html[data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice] .gds:has(.normativa-matter-backbar) .normativa-matter-toolbar__filter-group:not(.normativa-matter-toolbar__filter-group--subtemas) > .normativa-matter-toolbar__chips .normativa-filter-chip { position: relative !important; height: 36px !important; margin: 0 !important; padding: 0 18px !important;
  background: var(--fn-folder-tab) !important; color: var(--pv-mute) !important; border: 1px solid var(--fn-folder-line) !important; border-bottom: 0 !important;
  border-radius: 10px 10px 0 0 !important; box-shadow: none !important; font-weight: 500 !important; }
html[data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice] .gds:has(.normativa-matter-backbar) .normativa-matter-toolbar__filter-group:not(.normativa-matter-toolbar__filter-group--subtemas) > .normativa-matter-toolbar__chips .normativa-filter-chip:hover { color: var(--pv-ink) !important; }
html[data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice] .gds:has(.normativa-matter-backbar) .normativa-matter-toolbar__filter-group:not(.normativa-matter-toolbar__filter-group--subtemas) > .normativa-matter-toolbar__chips .normativa-filter-chip[aria-pressed="true"] { z-index: 1 !important; height: 41px !important; margin-bottom: -1px !important;
  background: var(--fn-crema) !important; color: var(--fn-jade) !important; font-weight: 600 !important; box-shadow: inset 0 2px 0 var(--fn-jade) !important; }
html[data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice] .gds:has(.normativa-matter-backbar) .normativa-document-groups { background: var(--fn-crema) !important; border: 1px solid var(--fn-folder-line) !important; border-top: 0 !important;
  border-radius: 0 0 12px 12px !important; padding: 4px 22px 24px !important; margin-top: 0 !important; box-shadow: var(--fn-folder-shadow) !important; }
/* Encima del papel: transparente, sólo filetes finos. */
html[data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice] .gds:has(.normativa-matter-backbar) .normativa-document-groups :is(.instrument-registro, .gds-card, .normativa-document-group) { background: transparent !important; box-shadow: none !important; border-color: var(--fn-folder-line) !important; }
html[data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice] .gds:has(.normativa-matter-backbar) .normativa-document-groups .instrument-registro__row { background: transparent !important; border-color: var(--fn-folder-line) !important; }
html[data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice] .gds:has(.normativa-matter-backbar) .normativa-matter-toolbar__filter-group--subtemas .normativa-filter-chip { background: transparent !important; box-shadow: none !important; }
html[data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice] .gds:has(.normativa-matter-backbar) .normativa-matter-toolbar__filter-group--subtemas .normativa-filter-chip[aria-pressed="true"] { background: color-mix(in srgb, var(--fn-jade) 12%, transparent) !important; }
html[data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice] .gds:has(.normativa-matter-backbar) .normativa-matter-toolbar :is(label.input, .normativa-matter-toolbar__field, select, input) { background-color: transparent !important; }
html[data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice] .gds:has(.normativa-matter-backbar) .normativa-matter-toolbar :is(label.input, .normativa-matter-toolbar__field) { border-color: var(--fn-folder-line) !important; }
/* Vidrio prolonga el filo de las pestañas con un ::after a la derecha; en la carpeta lo dibuja la hoja. */
html[data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice] .gds:has(.normativa-matter-backbar) .normativa-matter-toolbar__filter-group:not(.normativa-matter-toolbar__filter-group--subtemas) > .normativa-matter-toolbar__chips::after { display: none !important; }
/* Los contenedores de GlosaDOF iban pintados con --pv-paper (negro en oscuro) y tapaban el fondo de mesa. */
html[data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice] :is(.education-layout, .education-main, .dof-issue-shell) { background: transparent !important; }

/* Inicio de GlosaDOF: la captura de cada función, con el radio de las tarjetas de Códice y un filete jade. */
html[data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice] .pub-card .pub-card__shot { border-radius: 9px 9px 0 0 !important; border-bottom: 1px solid var(--fn-line-2) !important; background: var(--fn-crema, var(--pv-sheet)) !important; }

/* Materia vacía: la hoja de la carpeta sigue ahí, con el espacio donde iría la lista, y el aviso en cursiva. */
html[data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice] .gds:has(.normativa-matter-backbar) .normativa-matter-toolbar ~ .gds-card { display: grid !important; place-content: center !important; justify-items: center !important; gap: 6px !important;
  min-height: 340px !important; margin: 0 !important; padding: 32px 22px !important; text-align: center !important;
  background: var(--fn-crema) !important; border: 1px solid var(--fn-folder-line) !important; border-top: 0 !important;
  border-radius: 0 0 12px 12px !important; box-shadow: var(--fn-folder-shadow) !important; }
html[data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice] .gds:has(.normativa-matter-backbar) .normativa-matter-toolbar ~ .gds-card svg { color: color-mix(in srgb, var(--fn-jade) 55%, transparent) !important; }
html[data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice] .gds:has(.normativa-matter-backbar) .normativa-matter-toolbar ~ .gds-card h3 { font-family: var(--font-serif) !important; font-style: italic !important; font-weight: 400 !important;
  font-size: 18px !important; color: var(--pv-ink-2) !important; }

/* Radar: las pestañas de arriba (Publicaciones, Avisos, Otras alertas) al centro (Vic, 2026-10-15). */
html[data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice] .gds .radar-view-tabs { justify-content: center !important; }

/* Nombre de 25 px y símbolo de 38 px (Vic, 2026-10-16: «el nombre más pequeño y el logo más grande»). */
html[data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice] :is(.app-logo-wordmark, .public-surface-header .app-shell-header__brand > span.font-serif, .ld-brand__name) { font-size: 25px !important; line-height: 1 !important; }


/* ---------- Logo y nombre como un solo sello (Vic, 2026-10-15: «se ve desalineado y separado»): símbolo de 40 px
   y nombre de 36 px en las tres superficies (la tinta del símbolo queda ~1.33 veces la del nombre, que a la vista
   iguala un dibujo lleno con letras), hueco de tinta de ~12 px y centros de tinta a menos de 1 px. En la app el
   símbolo vive en el riel fijo de 64 px y el nombre en el encabezado, por eso el nombre se corre a la izquierda, pero nunca más allá del riel: con -21px la «G» quedaba 5 px bajo él (2026-10-19). ---------- */
html[data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice] .app-shell-rail-brand .glo-mark, html[data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice] .public-surface-header .app-shell-header__brand .glo-mark { width: 38px !important; height: 38px !important; }
html[data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice] .ld-topbar .ld-brand__mark { width: 38px !important; height: 38px !important; }
html[data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice] .ld-topbar .ld-brand { gap: 8px !important; }
html[data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice] .app-shell-header .app-logo-wordmark { margin-left: -12px !important; }
html[data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice] .ld-topbar a.ld-brand .ld-brand__name { top: -0.025em !important; }
/* Relieve ligero sólo en la marca (Vic, 2026-10-15): una sombra de 1 px, como tinta impresa con presión; en oscuro
   además un filo de luz arriba. El símbolo es máscara, así que la sombra la lleva su contenedor sin fondo. */
html[data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice]:not([data-theme="dark"]) { --fn-mark-relief: 0 1px 1px rgba(20, 48, 40, 0.14); --fn-mark-relief-f: drop-shadow(0 1px 1px rgba(20, 48, 40, 0.14)); }
html[data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-theme="dark"] { --fn-mark-relief: 0 1px 1px rgba(0, 0, 0, 0.6), 0 -1px 0 rgba(255, 255, 255, 0.035); --fn-mark-relief-f: drop-shadow(0 1px 1px rgba(0, 0, 0, 0.6)) drop-shadow(0 -1px 0 rgba(255, 255, 255, 0.035)); }
html[data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice] :is(.app-logo-wordmark, .ld-brand__name, .login-brand .brand-name, .auth-brand .brand-name) { text-shadow: var(--fn-mark-relief) !important; }
html[data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice] .app-shell-rail-brand { background: transparent !important; filter: var(--fn-mark-relief-f) !important; }
html[data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice] .public-surface-header .app-shell-header__brand > .glo-mark { filter: none !important; }
html[data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice] .public-surface-header .app-shell-header__brand { filter: var(--fn-mark-relief-f) !important; }
html[data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice] .ld-topbar .ld-brand img.ld-brand__mark { filter: var(--mk-tint) var(--fn-mark-relief-f) !important; }

/* ---------- Ningún botón en relieve: lo que dibujan otras capas (Tailwind «shadow», la burbuja de reportes,
   el botón de plegar el menú). ---------- */
html[data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice] :is(.feedback-bubble__trigger, .app-shell-sidebar button, .public-surface-header :is(button, a), button[class~="shadow"], button[class~="shadow-sm"], a[class~="shadow"]) { box-shadow: none !important; }
html[data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice] .feedback-bubble__trigger { border: 1px solid var(--fn-key-line) !important; }
/* El botón de guardar el índice del lector (sobre el divisor) llevaba sombra 0 2px 8px y fondo crema. */
html[data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice] .reader-rail-toggle { box-shadow: none !important; background: var(--pv-sheet) !important; border: 1px solid var(--fn-line-2) !important; }

/* ---------- Carpeta en oscuro y claro: un solo contorno (Vic, 2026-10-15: «¿qué pasó con los contornos?»).
   La lengüeta activa lleva el mismo filete que la hoja, sin raya jade arriba, y se funde con ella; las demás,
   un filete más tenue. ---------- */
html[data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice] .gds:has(.normativa-matter-backbar) .normativa-matter-toolbar__filter-group:not(.normativa-matter-toolbar__filter-group--subtemas) > .normativa-matter-toolbar__chips .normativa-filter-chip:not([aria-pressed="true"]) { border-color: color-mix(in srgb, var(--fn-folder-line) 62%, transparent) !important; }
html[data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice] .gds:has(.normativa-matter-backbar) .normativa-matter-toolbar__filter-group:not(.normativa-matter-toolbar__filter-group--subtemas) > .normativa-matter-toolbar__chips .normativa-filter-chip[aria-pressed="true"] { border: 1px solid var(--fn-folder-line) !important; border-bottom: 0 !important; box-shadow: none !important; outline: 0 !important; }

/* ---------- Lector: una sola línea fina bajo el título y contornos que cierran (Vic, 2026-10-15). La doble raya
   roja y verde eran el acento terracota de index.css (::after de la barra y ::before de la isla) sobre el filete
   jade; queda sólo el filete, más tenue. El panel cuelga de esa línea: sin borde ni radio arriba. ---------- */
html[data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice] .reader-toolbar::after, html[data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice] .react-island-root::before { display: none !important; }
html[data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice] .reader-toolbar { border-bottom: 1px solid var(--fn-line-2) !important; }
html[data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice] .gl-reader-content { border: 1px solid var(--fn-line-2) !important; border-top: 0 !important; border-radius: 0 0 8px 8px !important; box-shadow: none !important; }
html[data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice] .reader-location-bar { border: 1px solid var(--fn-line-2) !important; box-shadow: none !important; }
/* GlosaDOF: la tarjeta de la derecha arranca a la altura de la línea del título, no 23 px antes. */
html[data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice] .education-layout:has(.gl-reader-shell) .education-rail { padding-top: 51px !important; }

/* ---------- LETRA · botón sin familia (2026-10-15) ----------
   Las flechas ‹ › de la galería de la portada no tienen regla de letra y caían a la del navegador (Arial en Windows). */
html[data-codice] .ld-gallery__nav { font-family: var(--font-sans); }

/* Nombre «Glosador» en Newsreader (Vic, 2026-10-16): la letra de la marca vuelve a la anterior; la lectura sigue en Literata. */
html[data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice] :is(.app-logo-wordmark, .ld-brand__name, .login-brand .brand-name, .login-brand h1, .auth-brand h1, .auth-brand .brand-name, .gl-wordmark, .public-surface-header .app-shell-header__brand > span.font-serif) { font-family: "Newsreader", var(--fn-serif) !important; }
html[data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice] :is(.app-logo-wordmark, .public-surface-header .app-shell-header__brand > span.font-serif, .ld-brand__name) { top: 0.143em !important; }
html[data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice] .ld-topbar a.ld-brand .ld-brand__name { top: 0.151em !important; }

/* ---------- Móvil (auditoría 2026-10-16 a 375 y 390 px, claro y oscuro: «en móvil todo se ve fatal»). Sólo teléfono. ---------- */
@media (max-width: 767px) {
  /* Barra inferior: es el menú lateral del teléfono, así que lleva su hoja (jade claro / carbón jade). Antes era carbón
     también en claro y la pestaña activa iba en el acento #3a3a3c sobre #111820 (1.6:1): parecía deshabilitada. */
  html[data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice]:not([data-theme="dark"]) .mobile-tabbar { --fn-s-bg: color-mix(in srgb, var(--cx-accent) 13%, #ffffff); --fn-s-mute: #4f5f5a; --fn-s-act-ink: var(--fn-jade-ink); }
  html[data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-theme="dark"] .mobile-tabbar { --fn-s-bg: color-mix(in srgb, var(--cx-accent) 7%, #131917); --fn-s-mute: #a0a0a0; --fn-s-act-ink: var(--fn-jade-ink); }
  html[data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice] .mobile-tabbar { background: var(--fn-s-bg) !important; border-top: 1px solid var(--fn-line-2) !important; }
  html[data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice] .react-island-root .mobile-tabbar .mobile-tabbar__item { color: var(--fn-s-mute) !important; }
  html[data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice] .react-island-root .mobile-tabbar .mobile-tabbar__item[aria-current="page"] { color: var(--fn-s-act-ink) !important; font-weight: 600 !important; }
  /* Lector: la ruta fija (Título › Capítulo › Art.) iba en blanco al 82 % y Códice apaga el desenfoque: el artículo se leía detrás. */
  html[data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice] .reader-location-bar { background: var(--pv-sheet) !important; }
  /* Lector: el texto de una fracción quedaba en 237 de 375 px (sangría del artículo de 26 px + hueco de 14 px junto al
     numeral). El numeral conserva su columna de 4rem para que «XXVIII.» no se parta y las fracciones sigan alineadas. */
  html[data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice] .gl-reader-shell .art-body { padding-left: 8px !important; }
  html[data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice] .gl-reader-shell .fraccion-item { column-gap: 0.55rem !important; }
  /* La burbuja de reportes tapaba «Entendido» del aviso «Personaliza tu lectura». */
  html[data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice]:has(.reader-customize-tip) .feedback-bubble { display: none !important; }
  /* Materia: el selector medía 247 px fijos junto a «Todas las materias» y ensanchaba la página a 414 px. */
  html[data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice] .gds .matter-switcher__trigger { max-width: 100% !important; }
  /* SJF: el botón del panel caía 10 px bajo la fila de pestañas (Códice cambió los rellenos) y tapaba el buscador;
     las pestañas usan ahora las dos columnas para que «Palabra» no se corte. */
  html[data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice] .sjf-layout .sjf-resize-rail { margin-top: 32px !important; padding-top: 0 !important; }
  html[data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice] .sjf-layout .sjf-resize-rail .sjf-sidebar-toggle { margin: 0 !important; }
  html[data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice] .sjf-search-bar .sjf-search-field-tabs { grid-column: 1 / -1 !important; margin-right: 44px !important; }
  html[data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice] .sjf-search-bar .sjf-icon-btn { justify-self: end !important; }
  /* El periodo (Esta semana … Todo) medía 345 px en una caja de 313 con overflow oculto: «Todo» no se podía tocar. */
  html[data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice] .sjf-date-filter button { flex: 1 1 auto !important; padding-left: 6px !important; padding-right: 6px !important; }
  /* DOF: el día de la semana iba a 0.5em (8 px). */
  html[data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice] .gds .dof-date-heading__weekday { font-size: max(0.5em, 12px) !important; }
}
@media (max-width: 639px) {
  /* Ley en la carpeta: el título a todo lo ancho (iba una palabra por renglón junto a las fechas), fechas y acciones debajo. */
  html[data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice] .gds .instrument-registro__row { grid-template-areas: "title title" "date actions" "count actions" "notes notes" !important; }
}
@media (max-width: 640px) {
  /* GlosaDOF: el encabezado ocupa tres renglones (136 px, 17 % de la pantalla) y se quedaba fijo; en el teléfono se va
     con la página. El menú deslizable ya no ensancha la página (379 px) y cada enlace tiene 40 px de alto para el dedo. */
  html[data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice] .public-surface-header { position: static !important; }
  html[data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice] .public-surface-header > div > div:has(> nav) { min-width: 0 !important; max-width: 100% !important; }
  html[data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice] .public-surface-header nav a { padding-block: 8px !important; }
  /* Portada: las flechas de la galería iban a media altura sobre la diapositiva y pisaban «Crear cuenta gratis»;
     en el teléfono bajan al renglón de los puntos. */
  html[data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice] .ld-gallery__dots { margin-top: 10px !important; min-height: 36px !important; align-items: center !important; }
  html[data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice] .ld-gallery__nav { top: auto !important; bottom: 0 !important; transform: none !important; }
}
@media (max-width: 400px) {
  /* Acceso y registro: la verificación de Cloudflare mide 300 px fijos y la tarjeta dejaba 261; se salía por la derecha. */
  html[data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice] :is(.login-container, .auth-container) { padding-left: 16px !important; padding-right: 16px !important; }
  html[data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice] :is(.login-card, .auth-card) { padding-left: 20px !important; padding-right: 20px !important; }
}

/* ==================================================
   CAPAS (Vic, 2026-10-16): tres nombres para lo que hay detrás de cada cosa.
   - Mesa: el fondo de la página. Claro, gris cálido (--pv-paper #f5f5f5); oscuro, la mesa digital con grano y
     retícula de puntos (#070b0a, regla «Oscuro con fondo»).
   - Carpeta: la hoja que agrupa el contenido de una vista («lo que está detrás de los features, que no sea
     enteramente blanco»): crema #faf6ec / cartón #1f1c15, filete de 1 px y sombra muy suave (relieve mínimo).
     Tinta sobre carpeta: #2b2b2b 13.1:1 y gris #5f5f5f 6.0:1; oscuro #ededed 14.4:1 y #a0a0a0 6.9:1.
   - Ficha: las tarjetas encima (papel blanco / papel oscuro), para que resalten.
   Son alias de los valores que ya existían (--fn-crema, --fn-folder-*, --pv-sheet); nada viejo cambia de nombre.
   ================================================== */
html[data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice] { --cx-carpeta: var(--fn-crema); --cx-carpeta-line: var(--fn-folder-line); --cx-carpeta-tab: var(--fn-folder-tab); --cx-carpeta-shadow: var(--fn-folder-shadow); --cx-ficha: var(--pv-sheet); }
html[data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice]:not([data-theme="dark"]) { --cx-mesa: var(--pv-paper); }
html[data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-theme="dark"] { --cx-mesa: #070b0a; }
/* Carpeta del DOF (la hoja del número). La regla por defecto de cada vista está en «La Carpeta es la hoja por defecto». */
html[data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice] .gds.dof-issue-shell {
  background: var(--cx-carpeta) !important; background-image: none !important; border: 1px solid var(--cx-carpeta-line) !important;
  border-radius: 12px !important; box-shadow: var(--cx-carpeta-shadow) !important; -webkit-backdrop-filter: none !important; backdrop-filter: none !important; }
/* DOF en la app: carpeta con pestañas (Publicaciones, Edictos…), como la de materias. La hoja cuelga de la fila de pestañas. */
html[data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice] div:has(> nav[aria-label="Secciones del DOF"]) + section.gds { border-top: 0 !important; border-radius: 0 0 12px 12px !important; }
html[data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice] nav[aria-label="Secciones del DOF"] a { background: var(--cx-carpeta-tab) !important; border-color: color-mix(in srgb, var(--cx-carpeta-line) 62%, transparent) !important; border-bottom-color: var(--cx-carpeta-line) !important; }
html[data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice] nav[aria-label="Secciones del DOF"] a[aria-current="page"] { background: var(--cx-carpeta) !important; border-color: var(--cx-carpeta-line) !important; border-bottom-color: transparent !important; color: var(--fn-jade) !important; box-shadow: none !important; }
html[data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice] nav[aria-label="Secciones del DOF"]::after { border-bottom-color: var(--cx-carpeta-line) !important; }
/* GlosaDOF: la hoja del DOF ocupaba todo el ancho junto al lateral (de 0 a 1116 px); como carpeta se separa del borde.
   En el teléfono va a todo lo ancho, sin filetes laterales ni esquinas. */
html[data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice] .education-main .gds.dof-issue-shell { margin: 24px 0 24px 24px !important; padding: 0 24px 12px !important; }
@media (max-width: 767px) {
  html[data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice] .education-main .gds.dof-issue-shell { margin: 0 !important; padding: 0 8px 12px !important; border-left: 0 !important; border-right: 0 !important; border-radius: 0 !important; }
}
/* Fichas: blancas (papel oscuro en oscuro) y con filete, para que resalten sobre la carpeta. */
html[data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice] :is(.gds.dof-issue-shell .dep-group, .gds .search-results-root .search-answer-card:not(.search-answer-card--related)) {
  background-color: var(--cx-ficha) !important; }

/* ---------- SJF como carpeta (Vic, 2026-10-16: «dale a SJF profundidad y un fondo como el de materias»): la hoja
   crema con filete y sombra suave; el lateral y el riel van transparentes encima; el buscador, el estado y las tesis
   son fichas blancas. El marco exterior (.sjf-root) ya no dibuja un segundo contorno. ---------- */
html[data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice] .sjf-root { border: 0 !important; box-shadow: none !important; background: transparent !important; }
html[data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice] .sjf-layout { background: var(--cx-carpeta) !important; background-image: none !important; border: 1px solid var(--cx-carpeta-line) !important;
  border-radius: 12px !important; box-shadow: var(--cx-carpeta-shadow) !important; }
html[data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice] .sjf-layout :is(.sjf-sidebar, .sjf-main, .sjf-view-body) { background: transparent !important; }
html[data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice] .sjf-layout .sjf-sidebar { border-right: 1px solid var(--cx-carpeta-line) !important; }
html[data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice] .sjf-layout .sjf-resize-rail { background: transparent !important; }
html[data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice] .sjf-layout .sjf-saved-folders { border-top-color: var(--cx-carpeta-line) !important; }
html[data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice] .sjf-layout :is(.sjf-quick-search, .sjf-results-state, .sjf-card) { background-color: var(--cx-ficha) !important; border-color: var(--cx-carpeta-line) !important; }

/* ---------- Cargando sobre la capa real (Vic, 2026-10-16: «en las pantallas de carga se debe ver el fondo real»).
   Vidrio pinta de blanco todo lo que sigue a la barra de la materia (.normativa-matter-toolbar ~ *), así que el
   «Buscando documentos» salía en una caja blanca dentro de la carpeta. El aviso de carga no tiene fondo propio en
   ninguna vista; en la materia es la misma hoja de la carpeta (crema, filete y esquinas de abajo). ---------- */
html[data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice] .loading-state { background: transparent !important; background-image: none !important; box-shadow: none !important; border-color: transparent !important; }
html[data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice] .gds:has(.normativa-matter-backbar) .normativa-matter-toolbar ~ .loading-state { background: var(--cx-carpeta) !important; border: 1px solid var(--cx-carpeta-line) !important; border-top: 0 !important;
  border-radius: 0 0 12px 12px !important; box-shadow: var(--cx-carpeta-shadow) !important; margin: 0 !important; }

/* ---------- Materia: menos aire arriba (Vic, 2026-10-16: «en la parte superior se desperdicia mucho espacio»).
   Del filete del encabezado a las pestañas había 199 px en la app y 182 en GlosaDOF (20 px de relleno de la .gds en
   la app, 26 px arriba y abajo del título); queda 4 px de relleno, 10 px sobre el título y 18 px hasta las pestañas. ---------- */
html[data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice] section.gds:has(.normativa-matter-backbar) { padding-top: 4px !important; }
html[data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice] .gds:has(.normativa-matter-backbar) .main__title-block { margin: 10px auto 18px !important; gap: 6px !important; }
@media (max-width: 767px) {
  html[data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice] .gds:has(.normativa-matter-backbar) .main__title-block { margin: 6px auto 14px !important; }
}

/* ---------- «Personaliza tu lectura» en Códice (Vic, 2026-10-16: «tiene problemas de contraste»): la tarjeta va en la
   superficie del panel con filete de 1 px; «Ajustar ahora» en el jade de la interfaz (blanco sobre #3a6359 6.8:1;
   oscuro #0a1713 sobre #8fb3a7 8.0:1) y «Entendido» plano con filete. Antes: relleno durazno con tinta oscura en oscuro. ---------- */
html[data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice] .reader-customize-tip { background: var(--pv-sheet) !important; background-image: none !important; color: var(--pv-ink) !important;
  border: 1px solid var(--fn-line-2) !important; border-radius: 10px !important; box-shadow: var(--fn-lift) !important;
  -webkit-backdrop-filter: none !important; backdrop-filter: none !important; }
html[data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice] .reader-customize-tip__icon { background: color-mix(in srgb, var(--fn-jade) 10%, var(--pv-sheet)) !important; color: var(--fn-jade) !important; box-shadow: inset 0 0 0 1px var(--fn-line-2) !important; }
html[data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice] .reader-customize-tip__icon :is(svg, svg *) { color: var(--fn-jade) !important; }
html[data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice] .reader-customize-tip__copy h2 { color: var(--pv-ink) !important; font-family: var(--font-sans) !important; font-weight: 600 !important; letter-spacing: 0 !important; }
html[data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice] .reader-customize-tip__copy p { color: var(--pv-mute) !important; opacity: 1 !important; }
html[data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice] .reader-customize-tip__close { color: var(--pv-mute) !important; opacity: 1 !important; background: transparent !important; border-color: transparent !important; }
html[data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice] .reader-customize-tip__close:hover { background: var(--fn-ghost-hover) !important; color: var(--pv-ink) !important; }
html[data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice] .reader-customize-tip__primary { background: var(--fn-cta) !important; background-image: none !important; color: var(--fn-cta-on) !important;
  border: 1px solid var(--fn-cta-edge) !important; border-radius: 7px !important; box-shadow: none !important; font-weight: 600 !important; }
html[data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice] .reader-customize-tip__primary:hover { background: var(--fn-cta-hover) !important; }
html[data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice] .reader-customize-tip__secondary { background: transparent !important; background-image: none !important; color: var(--pv-ink) !important;
  border: 1px solid var(--fn-key-line) !important; border-radius: 7px !important; box-shadow: none !important; font-weight: 500 !important; }
html[data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice] .reader-customize-tip__secondary:hover { background: var(--fn-ghost-hover) !important; border-color: var(--fn-key-hover) !important; }

/* ---------- Campana y cuenta (Vic, 2026-10-16: «el número de notificaciones se ve raro»). El globo heredaba la tinta de
   los botones (blanco sobre blanco en claro; en oscuro un óvalo blanco recortado): ahora es una píldora jade de 18 px
   con el número centrado en Geist 10.5 px y un anillo de 2 px del color del encabezado. Blanco sobre #3a6359 6.8:1;
   oscuro #0a1713 sobre #8fb3a7 8.0:1. La inicial de la cuenta deja el negro por un jade tenue con filete
   (#2f5249 sobre #e3e9e8 7.0:1; oscuro #a9c7bc sobre #202523 8.6:1). ---------- */
html[data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice] .app-shell-notifications__button { position: relative !important; overflow: visible !important; }
html[data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice] .app-shell-notifications__button .app-shell-notifications__badge { position: absolute !important; top: -5px !important; right: -3px !important; left: auto !important;
  box-sizing: border-box !important; display: inline-flex !important; align-items: center !important; justify-content: center !important;
  min-width: 18px !important; height: 18px !important; padding: 0 5px !important; border: 0 !important; border-radius: 999px !important;
  background: var(--fn-cta) !important; color: var(--fn-cta-on) !important; box-shadow: 0 0 0 2px var(--pv-head-bg) !important;
  font: 600 10.5px/1 var(--font-sans) !important; letter-spacing: 0 !important; font-variant-numeric: tabular-nums !important; pointer-events: none !important; }
html[data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice] .app-shell-account__trigger { background: color-mix(in srgb, var(--fn-jade) 14%, var(--pv-sheet)) !important; color: var(--fn-jade-ink) !important;
  border: 1px solid var(--fn-line-2) !important; box-shadow: none !important; font-family: var(--font-sans) !important; font-weight: 600 !important; }
html[data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice] .app-shell-account__trigger :is(span, svg, svg *) { color: var(--fn-jade-ink) !important; }
html[data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice] .app-shell-account__trigger:hover { background: color-mix(in srgb, var(--fn-jade) 22%, var(--pv-sheet)) !important; }

/* ---------- Título de la vista en la barra superior (Vic, 2026-10-16): la letra del nombre «Glosador» (Newsreader, 450),
   un punto por debajo del nombre (25 px) para que la marca siga mandando: 22 px en escritorio, 19 px en el teléfono.
   Antes iba en Geist 19 px. GlosaDOF no tiene título de vista en su barra (lleva el menú). El :not(#cx) suma el peso
   de un id: la regla generada de letra (LETRA-GENERADA) pone Geist a este h1 con un :is() que pesa más que una clase. ---------- */
html[data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice] .app-shell-header__center h1:not(#cx) { font-family: "Newsreader", var(--fn-serif) !important; font-weight: 450 !important; font-size: 22px !important;
  line-height: 1.15 !important; letter-spacing: -0.01em !important; color: var(--pv-ink) !important; }
@media (max-width: 767px) {
  html[data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice] .app-shell-header__center h1:not(#cx) { font-size: 19px !important; }
}

/* ---------- Menú lateral sin canto (Vic, 2026-10-16): el tile activo traía un borde izquierdo de 3 px transparente
   (border-l-2 de la app + Vidrio) con el fondo pintado debajo y el filete como sombra interior, así que a la izquierda
   asomaba una franja de 3 px por fuera del filete: parecía un canto en relieve. Ahora un borde real de 1 px en los cuatro
   lados y sin sombra; 1 px de margen a cada lado conserva el sitio del texto. Barrido de botones (2026-10-16, 7 vistas):
   lo mismo en las carpetas del SJF (indicador izquierdo de 2 px) y una sombra caída en el segmentado del Radar. ---------- */
html[data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice] .app-shell-sidebar .app-shell-nav-item { border: 1px solid transparent !important; margin-inline: 1px !important; box-shadow: none !important; }
html[data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice] .app-shell-sidebar .app-shell-nav-item[aria-current="page"] { border-color: var(--fn-line-2) !important; box-shadow: none !important; }
html[data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice] .sjf-nav-item { border-left-width: 0 !important; box-shadow: none !important; }
html[data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice] .sjf-nav-item.sjf-nav-active { background: color-mix(in srgb, var(--fn-jade) 10%, transparent) !important; border-radius: 6px !important; color: var(--fn-jade-ink) !important; }
html[data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice] .gds .seg__btn { box-shadow: none !important; }

/* ---------- Carpeta en papel casi neutro (Vic, 2026-10-16: «este crema es demasiado chillón»). En áreas grandes el crema
   se veía amarillo; ahora apenas cálido y la ficha blanca se separa por el filete, no por el color.
   Claro: hoja #faf6ec → #f6f5f1 (ΔE76 3.3, croma 5.3 → 2.1), pestaña #f0e9d7 → #ebe9e2 (ΔE 6.0, croma 9.6 → 3.7).
   Oscuro: cartón #1f1c15 → gris verdoso #1a1f1d (ΔE 5.6, croma 5.3 → 2.9), pestaña #2a261c → #242a27.
   Tinta #2b2b2b 13.0:1, gris #5f5f5f 5.9, jade #3a6359 6.2 sobre la hoja clara (pestaña 11.7 · 5.3 · 5.6);
   oscuro #ededed 14.3, #a0a0a0 6.4, jade #8fb3a7 7.3 (pestaña 12.5 · 5.6 · 6.4). Filete de carpeta neutro. ---------- */
html[data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice]:not([data-theme="dark"]) { --fn-crema: #f6f5f1; --fn-folder-tab: #ebe9e2; --fn-folder-line: rgba(96, 92, 78, 0.26); }
html[data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-theme="dark"] { --fn-crema: #1a1f1d; --fn-folder-tab: #242a27; --fn-folder-line: rgba(200, 214, 206, 0.2); }

/* ---------- La Carpeta es la hoja por defecto de cada vista (Vic, 2026-10-16: «ese fondo debe ser default para carpetas»).
   Una sola regla sobre la raíz de cada ruta: en la app el hijo de .app-shell-content > div (Radar, Mi biblioteca,
   Normativa, Búsqueda, Conectar IA, Cuenta, Novedades/Tlacuilo) y en GlosaDOF el de .education-main (Inicio, Materias,
   Búsqueda, Novedades, DOF). El DOF de la app (con pestañas) y el SJF tienen su propia regla de carpeta; la materia ya es
   una carpeta con pestañas y el lector no lleva hoja. Las fichas encima siguen en papel; carga y vacíos, transparentes. ---------- */
html[data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice] :is(.app-shell-content > div, .education-main, .education-main > div) > :is(section.gds, section.news-panel, section.pub-inicio, section.pub-news):not(.dof-issue-shell):not(:has(.normativa-matter-backbar, .gl-reader-shell)) {
  background: var(--cx-carpeta) !important; background-image: none !important; border: 1px solid var(--cx-carpeta-line) !important;
  border-radius: 12px !important; box-shadow: var(--cx-carpeta-shadow) !important; -webkit-backdrop-filter: none !important; backdrop-filter: none !important; }
html[data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice] :is(.app-shell-content > div, .education-main, .education-main > div) > :is(section.news-panel, section.pub-inicio, section.pub-news) { padding: 20px 24px !important; }
html[data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice] :is(.app-shell-content > div, .education-main > div) > section.gds:not(.dof-issue-shell):not(:has(.normativa-matter-backbar, .gl-reader-shell)) { padding: 20px !important; }
/* La búsqueda dejaba su pila transparente sobre la mesa; ahora la pila va sobre la carpeta, también transparente. */
html[data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice] .gds .search-view-stack { background: transparent !important; }
@media (max-width: 767px) {
  html[data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice] :is(.app-shell-content > div, .education-main, .education-main > div) > :is(section.gds, section.news-panel, section.pub-inicio, section.pub-news):not(.dof-issue-shell):not(:has(.normativa-matter-backbar, .gl-reader-shell)) { padding: 12px !important; border-radius: 10px !important; }
}

/* ---------- El logo del riel (Vic, 2026-10-16: con el lector abierto el menú queda en riel y el tlacuilo se veía sobre un
   recuadro de otro color). El recuadro de 64 × 52 era transparente sobre el encabezado blanco/oscuro, encima del riel en
   Bruma: con el riel (o el lector) es la misma hoja que el riel, con su filete derecho; el relieve de la marca pasa al
   símbolo para que la sombra no dibuje el recuadro. Con el menú abierto sigue transparente sobre el encabezado. ---------- */
html[data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice]:not([data-theme="dark"]) :is(.app-shell-sidebar, .app-shell-rail-brand) { --fn-s-bg: color-mix(in srgb, var(--cx-accent) 13%, #ffffff); }
html[data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-theme="dark"] :is(.app-shell-sidebar, .app-shell-rail-brand) { --fn-s-bg: color-mix(in srgb, var(--cx-accent) 7%, #131917); }
html[data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice] :is(.react-island-root:has(.app-shell-sidebar--rail), .react-island-root.reader-doc-mode) .app-shell-rail-brand {
  background: var(--fn-s-bg) !important; border-right: 1px solid var(--fn-line) !important; box-shadow: none !important; filter: none !important; }
html[data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice] :is(.react-island-root:has(.app-shell-sidebar--rail), .react-island-root.reader-doc-mode) .app-shell-rail-brand .glo-mark { filter: var(--fn-mark-relief-f) !important; }

/* ---------- Un solo aire arriba (Vic, 2026-10-16: «espacio desperdiciado bajo la barra superior»). Medido del filete del
   encabezado a la carpeta: 24 px en Normativa, Novedades, SJF, Búsqueda, Mi biblioteca, Conectar IA y Cuenta, 8 px en
   Radar y 10 px en el DOF (pestañas); dentro, la búsqueda sumaba 20 px más y Normativa abría con un filete vacío (la barra
   «Federal | Estatal» traía borde arriba pegado al de la carpeta). Ahora --cx-top-gap: 18 px en escritorio, 12 px en el
   teléfono, en todas las vistas de la app y de GlosaDOF. ---------- */
html[data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice] { --cx-top-gap: 18px; }
@media (max-width: 767px) { html[data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice] { --cx-top-gap: 12px; } }
html[data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice] .app-shell-content > div:not(.p-0) { padding-top: var(--cx-top-gap) !important; }
html[data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice] div:has(> nav[aria-label="Secciones del DOF"]) { padding-top: var(--cx-top-gap) !important; }
html[data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice] .education-main > div > :is(section.pub-inicio, section.pub-news, section.gds.search-view-root) { margin-top: var(--cx-top-gap) !important; }
/* Materias de GlosaDOF: la carpeta es hija directa de .education-main y traía 4 px de relleno (tarjetas pegadas al filete). */
html[data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice] .education-main > section.gds:not(:has(.normativa-matter-backbar)) { padding: 20px !important; }
html[data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice] .education-main .gds.dof-issue-shell { margin-top: var(--cx-top-gap) !important; }
html[data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice] .gds .search-view-root .search-view-stack { padding-top: 0 !important; }
html[data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice] .biblioteca-normativa-home-toolbar { border-top: 0 !important; padding-top: 0 !important; }

/* ---------- Vacíos, carga y errores sobre la Carpeta (Vic, 2026-10-16: «Sin ediciones disponibles» salía en una caja
   blanca dentro de Publicaciones). Los avisos de «no hay nada» y de carga no son fichas: van transparentes sobre la hoja,
   con el texto en gris y sin filete. Los errores conservan su tinte rojo pero en oscuro dejan el rosa casi blanco
   (bg-red-50 de Tailwind, 1.1:1 contra la tinta clara del tema): fondo rojo tenue sobre la carpeta y texto #f2b8ab (9.6:1);
   en claro la nota de error (.gds-note--cochinilla) era una caja blanca: ahora rojo tenue al 6 %. ---------- */
html[data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice] :is(.dof-issue-shell .gds-card:has(> svg:first-child):has(> h3:last-child), .sjf-layout .sjf-results-state, .cx-empty, .tlacuilo-empty, .sjf-nav-empty,
  .radar-notice-empty, .notice-empty, .radar-empty-matters, .radar-alert-manager__empty, .cuenta-empty, .billing-current-empty, .share-inbox__empty, .search-pending-state, .search-results-root--pending) {
  background: transparent !important; background-image: none !important; border-color: transparent !important; box-shadow: none !important; }
html[data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice] .dof-issue-shell .gds-card:has(> svg:first-child):has(> h3:last-child) { padding: 40px 16px !important; text-align: center !important; }
html[data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-theme="dark"] :is([class~="bg-red-50"], .gds-note--cochinilla) { background: rgba(196, 72, 52, 0.12) !important; border-color: rgba(230, 140, 120, 0.35) !important; color: #f2b8ab !important; }
html[data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-theme="dark"] :is([class~="bg-red-50"], .gds-note--cochinilla) :is(p, div, span, strong, h3, svg) { color: #f2b8ab !important; }
html[data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-theme="dark"] [class~="bg-red-50"] :is(button, a)[class~="bg-white"] { background: transparent !important; color: #f2b8ab !important; border-color: rgba(230, 140, 120, 0.45) !important; }
html[data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice]:not([data-theme="dark"]) .gds-note--cochinilla { background: rgba(160, 44, 32, 0.06) !important; border-color: rgba(160, 44, 32, 0.28) !important; }

/* ---------- SJF: estado en el lenguaje de Códice y orden en pantalla angosta (Vic, 2026-10-16). Los chips «0 nuevas» y
   «Actualización pendiente» iban en rosa terracota (toda la fila tomaba el color de «stale»): ahora chips planos de 1 px,
   neutros; «al día» en jade apagado y sólo el aviso «Actualización pendiente» en ocre sobrio (#7a5a1c sobre la carpeta
   5.9:1; oscuro #d9b56f 8.9:1). Entre 768 y 980 px el panel (estado, materias, carpetas) quedaba arriba, 268 px antes del
   buscador: ahora va debajo de la búsqueda y los resultados, a todo lo ancho. ---------- */
html[data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice] .sjf-status-chips :is(span, .sjf-dev-check-btn) { background: transparent !important; border: 1px solid var(--fn-line-2) !important; border-radius: 999px !important;
  color: var(--pv-ink-2) !important; font-family: var(--font-sans) !important; font-weight: 500 !important; box-shadow: none !important; }
html[data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice] .sjf-status-chips.sjf-freshness-fresh span { color: var(--fn-jade-ink) !important; border-color: color-mix(in srgb, var(--fn-jade) 34%, transparent) !important; }
html[data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice]:not([data-theme="dark"]) .sjf-status-chips.sjf-freshness-stale span:last-of-type { color: #7a5a1c !important; border-color: rgba(176, 122, 18, 0.4) !important; background: rgba(176, 122, 18, 0.07) !important; }
html[data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-theme="dark"] .sjf-status-chips.sjf-freshness-stale span:last-of-type { color: #d9b56f !important; border-color: rgba(217, 181, 111, 0.4) !important; background: rgba(217, 181, 111, 0.08) !important; }
html[data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice] .sjf-status-chips.sjf-freshness-warn { color: var(--pv-ink-2) !important; background: transparent !important; }
}

/* ---------- Oscuro menos oscuro (Vic, 2026-10-16: «que no se vea tan oscuro todo»). La mesa era #070b0a (casi negro) y
   las fichas #0e0e0e, más oscuras que la carpeta: sube cada capa un paso y la ficha queda arriba (más clara), como en papel.
   Mesa #070b0a → #131917 (grano, retícula de puntos y luz arriba se quedan) · Carpeta #1a1f1d · Ficha, encabezado y
   paneles #0e0e0e → #232927 · menú #0f1d19 → #16241f · tarjeta de función #12201c → #1d2a25 · filetes jade 12/20 % → 16/26 %.
   Tinta #ededed: 15.2:1 sobre la mesa, 14.3 sobre la carpeta, 12.7 sobre la ficha; gris #a0a0a0: 6.8 · 6.4 · 5.7 (AA ≥ 4.5). ---------- */
html[data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-theme="dark"] { --cx-mesa: #131917; --pv-paper: #131917 !important; --pv-sheet: #232927 !important; --pv-head-bg: #232927 !important; --pv-cream: #262c2a !important;
  --pv-stroke: #3a4642 !important; --pv-rule-strong: #44504c !important; --pv-head-line: #3a4642 !important;
  --fn-feat: color-mix(in srgb, var(--cx-accent) 6%, #1a1f1d); --fn-desk-bg: #232927;
  --fn-line: color-mix(in srgb, var(--cx-accent) 16%, transparent); --fn-line-2: color-mix(in srgb, var(--cx-accent) 26%, transparent); --fn-head: color-mix(in srgb, var(--cx-accent) 45%, transparent); }
html[data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-theme="dark"] :is(.app-shell-sidebar, .app-shell-rail-brand, .mobile-tabbar) { --fn-s-bg: color-mix(in srgb, var(--cx-accent) 7%, #131917); }
html[data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-theme="dark"] :is(body, .react-island-root, .react-island-root:is(.library-shell-mode, .dof-shell-mode, .radar-shell-mode, .public-dof-mode, .reader-doc-mode)) {
  background: var(--mk-grain),
    radial-gradient(color-mix(in srgb, var(--cx-accent) 9%, transparent) 1px, transparent 1.3px) 0 0 / 22px 22px,
    radial-gradient(80% 50% at 50% -8%, color-mix(in srgb, var(--cx-accent) 12%, transparent) 0%, transparent 70%),
    radial-gradient(60% 40% at 100% 100%, color-mix(in srgb, var(--cx-accent) 10%, transparent) 0%, transparent 70%),
    var(--cx-mesa) !important;
  background-attachment: fixed !important;
}

/* ---------- Acento jade por defecto (Vic, 2026-10-16). Sin elección (cuentas nuevas, Basic, GlosaDOF, portada y acceso) el
   acento es el jade de la interfaz, no blanco y negro: blanco sobre #3a6359 6.8:1; oscuro #0a1713 sobre #8fb3a7 8.0:1.
   Los demás colores siguen como preferencia («Blanco y negro» incluido). Con un color elegido, el símbolo y el nombre
   «Glosador» toman ese color (óxido: #8a4a28 sobre blanco 7.2:1, #dba27f sobre #232927 7.5:1); con jade, blanco y negro
   o sin elección se quedan en el jade de marca. ---------- */
html[data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice]:is([data-tlacuilo="jade"], :not([data-tlacuilo])):not([data-theme="dark"]) { --bn-acc: #3a6359; --bn-on-acc: #ffffff; }
html[data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice]:is([data-tlacuilo="jade"], :not([data-tlacuilo]))[data-theme="dark"] { --bn-acc: #8fb3a7; --bn-on-acc: #0a1713; }
html[data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice]:not([data-tlacuilo]) {
  --bn-on: var(--bn-on-acc) !important; --pv-brand: var(--bn-acc) !important; --pv-on-brand: var(--bn-on-acc) !important;
  --pg-jade: var(--bn-acc) !important; --pg-grana: var(--bn-acc) !important; --pg-anil: var(--bn-acc) !important; --pg-ocre: var(--bn-acc) !important;
  --pg-on: var(--bn-on-acc) !important; --pg-wash: 5% !important; }
html[data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice]:is([data-tlacuilo="terracota"], [data-tlacuilo="ocre"], [data-tlacuilo="cobalto"], [data-tlacuilo="rosa"], [data-tlacuilo="oxido"], [data-tlacuilo="grafito"]):is([data-theme], :not([data-theme])) {
  --mk-jade: var(--bn-acc); --pv-head-mark: var(--bn-acc) !important; }

/* ---------- Portada · «Compara lo que incluye cada plan» (Vic, 2026-10-16: «muy oscurecida, no se ve la cuadrícula y los
   subtítulos ocupan demasiado espacio»). La caja es una carpeta y la tabla una ficha con cuadrícula de 1 px (filas y
   columnas); los grupos van en un eje a la izquierda (rowspan en landing.html) y la columna recomendada (plan.recommended)
   lleva un tinte jade. En escritorio la fila de planes se queda arriba al bajar; en el teléfono la tabla se desliza
   dentro de su caja. Tinta #2b2b2b / #ededed y gris #5f5f5f / #a0a0a0 sobre la ficha ≥ 5.3:1. ---------- */
html[data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice] .ld-pricing-table-wrap { background: var(--cx-carpeta) !important; border: 1px solid var(--cx-carpeta-line) !important; border-radius: 12px !important;
  box-shadow: var(--cx-carpeta-shadow) !important; }
html[data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice] .ld-pricing-table { border-collapse: separate !important; border-spacing: 0 !important; background: var(--cx-ficha) !important;
  border: 1px solid var(--fn-line-2) !important; border-radius: 10px !important; color: var(--pv-ink-2) !important; }
html[data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice] .ld-pricing-table :is(th, td) { border: 0 !important; border-bottom: 1px solid var(--fn-line-2) !important; border-left: 1px solid var(--fn-line) !important; background-clip: padding-box !important; }
html[data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice] .ld-pricing-table :is(.ld-pricing-table__axis, .ld-pricing-table__axis-head) { border-left: 0 !important; }
html[data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice] .ld-pricing-table tbody tr:last-child > :is(th, td), html[data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice] .ld-pricing-table tbody tr:last-child { border-bottom: 0 !important; }
html[data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice] .ld-pricing-table thead th { position: sticky !important; top: 0; z-index: 2; background: var(--cx-ficha) !important; color: var(--pv-ink) !important;
  font-family: var(--font-sans) !important; font-size: 13px !important; font-weight: 600 !important; border-bottom: 1px solid var(--fn-head) !important; }
html[data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice] .ld-pricing-table thead .ld-pricing-table__axis-head { background: var(--cx-ficha) !important; border-bottom: 1px solid var(--fn-head) !important; }
html[data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice] .ld-pricing-table tbody th[scope="row"] { color: var(--pv-ink) !important; font-weight: 600 !important; }
html[data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice] .ld-pricing-table tbody th[scope="row"] small, html[data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice] .ld-pricing-table td small { color: var(--pv-mute) !important; }
html[data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice] .ld-pricing-table .ld-pricing-table__axis { width: 128px !important; vertical-align: top !important; padding: 12px 12px !important;
  background: color-mix(in srgb, var(--fn-jade) 6%, var(--cx-ficha)) !important; color: var(--fn-jade-ink) !important;
  font-family: var(--font-sans) !important; font-size: 10.5px !important; font-weight: 600 !important; letter-spacing: 0.08em !important; line-height: 1.35 !important; text-transform: uppercase !important; }
html[data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice] .ld-pricing-table .is-recommended { background: color-mix(in srgb, var(--fn-jade) 8%, var(--cx-ficha)) !important; }
html[data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice] .ld-pricing-table thead th.is-recommended { color: var(--fn-jade-ink) !important; box-shadow: inset 0 2px 0 var(--fn-jade) !important; }
@media (min-width: 1000px) {
  /* Sin desplazamiento propio la fila de planes puede quedarse fija bajo la barra de la portada (sticky, 70 px). */
  html[data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice] .ld-pricing-table-wrap { overflow: visible !important; }
  html[data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice] .ld-pricing-table thead th { top: 70px; }
}
@media (max-width: 999px) {
  html[data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice] .ld-pricing-table thead th { position: static !important; }
  html[data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice] .ld-pricing-table .ld-pricing-table__axis { width: 92px !important; padding: 10px 8px !important; font-size: 10px !important; letter-spacing: 0.05em !important; }
  html[data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice] .ld-pricing-table-wrap { padding: 14px !important; }
}

/* ---------- Un solo acento (Vic, 2026-10-16: «cambiar el color no está funcionando»). Todo lo que en Fino era jade sale de
   --cx-accent, que toma --bn-acc (el color elegido en Apariencia; jade si no hay elección): filetes, línea del encabezado,
   menú Bruma, botones, chips, pestañas activas, tinta de enlaces y tarjetas. «Blanco y negro» es el acento grafito. ---------- */
html[data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-tlacuilo="neutro"]:not([data-theme="dark"]) { --cx-accent: #3c3c3c; --bn-on-acc: #ffffff; --mk-jade: #3c3c3c; --pv-head-mark: #3c3c3c !important; }
html[data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-tlacuilo="neutro"][data-theme="dark"] { --cx-accent: #cfcfcf; --bn-on-acc: #141414; --mk-jade: #cfcfcf; --pv-head-mark: #cfcfcf !important; }

/* ---------- Contraste AA (Vic, 2026-10-16: «sigo viendo problemas de contraste», p. ej. «CONECTAR IA» en gris claro sobre la
   carpeta crema). Auditoría automática (Playwright, 22 rutas × claro/oscuro, texto contra el fondo real compuesto): las
   fallas salían de TOKENS de otras capas que suponen un suelo oscuro, no de cada elemento. Vidrio deriva el texto de acento
   sobre el suelo de --gt-chrome (aquí el blanco del encabezado → #e0e0e0 sobre crema, 1.2:1): en claro pasa a la tinta del
   acento. El pie de la portada conserva el texto «sobre oscuro» en sus enlaces aunque su hoja es clara. El número de paso de
   la portada pasa de #b85c38 (4.3:1) a #a34f2d con blanco (5.7:1). El punto separador del acceso usa el gris de la capa. ---------- */
html[data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice]:not([data-theme="dark"]) { --glass-on-ground-accent: var(--fn-jade-ink); }
html[data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice] .ld-footer :is(a, span, p, small, li) { color: var(--pv-mute) !important; }
html[data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice] .ld-footer a:hover { color: var(--fn-jade-ink) !important; }
html[data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice] .ld-slide__step { background: #a34f2d !important; color: #ffffff !important; }
html[data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice] .login-links > span[aria-hidden="true"] { color: var(--pv-mute) !important; opacity: 1 !important; }
html[data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice] .gl-reader-shell .section-article-count { color: var(--pv-ink-2) !important; }
html[data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice] .gds .biblioteca-matter-card--empty { opacity: 0.92 !important; }

/* ---------- Anuncios: un solo ritmo (Vic, 2026-10-16: «en algunos lugares están muy pegados, otros separados»).
   Medido antes: el lateral (invitación + anuncio) tocaba la carpeta del DOF (0 px; la hoja medía el ancho de su columna y
   su margen de 24 px la empujaba sobre el hueco), llegaba al borde de la ventana (0 px) mientras en Normativa quedaba a 32 px,
   separaba sus dos tarjetas 40 px, arrancaba 10 px más abajo que la hoja y, bajo 1000 px, iba a sangre de borde a borde.
   Ahora --cx-ad-gap (24 px escritorio, 16 px teléfono) es el hueco entre anuncios, con la carpeta y con el borde. ---------- */
html[data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice] { --cx-ad-gap: 24px; }
@media (max-width: 767px) { html[data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice] { --cx-ad-gap: 16px; } }
html[data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice] .education-rail { gap: var(--cx-ad-gap) !important; }
html[data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice] .education-layout:not(:has(.gl-reader-shell)) .education-rail { padding-top: 0 !important; }
html[data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice] .education-layout:has(.dof-issue-shell) { padding-right: var(--cx-ad-gap) !important; }
html[data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice] .education-layout:has(.dof-issue-shell):not(:has(.gl-reader-shell)) .education-rail { padding-top: var(--cx-top-gap) !important; }
html[data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice] .education-main .gds.dof-issue-shell { width: auto !important; max-width: 100% !important; box-sizing: border-box !important; }
html[data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice] .pub-signup { margin-bottom: var(--cx-ad-gap) !important; }
@media (max-width: 1000px) {
  html[data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice] .education-layout:has(.dof-issue-shell) { padding-right: 0 !important; }
  html[data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice] .education-layout:has(.dof-issue-shell) .education-main .gds.dof-issue-shell { margin-right: var(--cx-ad-gap) !important; margin-bottom: 0 !important; }
  html[data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice] .education-layout { row-gap: var(--cx-ad-gap) !important; }
  html[data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice] .education-layout:not(:has(.gl-reader-shell)) .education-rail { padding-top: 0 !important; }
  html[data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice] .education-layout:has(.dof-issue-shell) .education-rail { padding-inline: var(--cx-ad-gap) !important; margin-top: -12px !important; } /* los 12 px de relleno inferior de la hoja */
}
@media (max-width: 767px) {
  html[data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice][data-codice] .education-layout:has(.dof-issue-shell) .education-main .gds.dof-issue-shell { margin-right: 0 !important; }
}
