/* Marca parpes.es — hoja adicional que se carga detrás de style.css (BRAND_CSS).
 *
 * Traslada al portal la estética de parpes.es: marco negro y pliego de papel con
 * orla de guilloché ocre, tinta azul-negra y acentos en lacre, sobre una pared
 * azul noche. No hay tema claro y oscuro: el selector se oculta y el aspecto es
 * el mismo sea cual sea el tema guardado en el navegador.
 *
 * Todas las reglas van prefijadas con :root[data-bs-theme] para ganar en
 * especificidad a las de style.css, incluidas las de [data-bs-theme="light"].
 */

/* ── Fuentes autoalojadas (RGPD) ──────────────────────────────────────────── */
@font-face { font-family: 'EB Garamond'; src: url('parpes/fonts/eb-garamond-latin-400-normal.woff2') format('woff2'); font-weight: 400; font-style: normal; font-display: swap; }
@font-face { font-family: 'EB Garamond'; src: url('parpes/fonts/eb-garamond-latin-400-italic.woff2') format('woff2'); font-weight: 400; font-style: italic; font-display: swap; }
@font-face { font-family: 'EB Garamond'; src: url('parpes/fonts/eb-garamond-latin-500-normal.woff2') format('woff2'); font-weight: 500; font-style: normal; font-display: swap; }
@font-face { font-family: 'EB Garamond'; src: url('parpes/fonts/eb-garamond-latin-600-normal.woff2') format('woff2'); font-weight: 600 700; font-style: normal; font-display: swap; }
@font-face { font-family: 'IBM Plex Mono'; src: url('parpes/fonts/ibm-plex-mono-latin-400-normal.woff2') format('woff2'); font-weight: 400; font-style: normal; font-display: swap; }

/* ── Tokens (los de parpes-web) ───────────────────────────────────────────── */
:root {
  /* Pared fija en azul noche: el portal de parpes.es no cambia de tema */
  --wall:        #1f2a40;
  --wall-shade:  #111827;
  --frame:       #0c0b0a;
  --frame-edge:  #34302b;
  --paper:       #f3ecdb;
  --paper-deep:  #e9dfc6;
  --paper-field: #fbf8f0;
  --ink:         #1f2638;
  --ink-soft:    #4a4f5e;
  --ochre:       #a4823f;
  --ochre-faint: rgba(164, 130, 63, 0.35);
  --lacre:       #8e2a22;
  --plaque:      #0f0e0d;
  --plaque-ink:  #d8cfbd;
  --footer-ink:  #bfb6a4;

  --font-text:   'EB Garamond', Garamond, Georgia, serif;
  --font-mono:   'IBM Plex Mono', ui-monospace, monospace;

  /* Las variables de style.css pasan a la tipografía y los colores de parpes */
  --font-brand:   var(--font-text);
  --font-tagline: var(--font-text);
  --font-nav:     var(--font-text);
  --font-data:    var(--font-text);
  --gold-primary: var(--ochre);
  --gold-dark:    var(--ochre);
  --gold-accent:  var(--ochre);
  --gold-light:   var(--ochre);
}
/* Sin selector de tema: el pliego ya es claro y la pared es siempre la misma */
#theme-toggle { display: none !important; }

/* ── Pared ────────────────────────────────────────────────────────────────── */
:root[data-bs-theme] body {
  background:
    radial-gradient(ellipse 70% 55% at 50% 38%, rgba(120, 150, 210, 0.16), transparent 70%),
    linear-gradient(180deg, var(--wall) 0%, var(--wall-shade) 100%);
  color: var(--ink);
  font-family: var(--font-text);
  font-size: 1rem;
  -webkit-font-smoothing: antialiased;
}
/* Fuera el degradado y los ornamentos dorados de FactuBridge */
:root[data-bs-theme] .corner-frame,
:root[data-bs-theme] .corner-frame-bg { display: none; }
:root[data-bs-theme] main.container-fluid::before { content: none; }

/* ── Pliego: el área de contenido, enmarcada y con orla de guilloché ──────── */
/* Bootstrap toma de aquí sus colores dentro del papel, sea cual sea el tema */
:root[data-bs-theme] main.container-fluid,
:root[data-bs-theme] .login-card,
:root[data-bs-theme] .modal-content:not(.fb-modal-content) {
  --bs-body-color: var(--ink);
  --bs-body-color-rgb: 31, 38, 56;
  --bs-body-bg: var(--paper);
  --bs-emphasis-color: #000;
  --bs-secondary-color: rgba(31, 38, 56, 0.72);
  --bs-tertiary-color: rgba(31, 38, 56, 0.5);
  --bs-secondary-bg: var(--paper-deep);
  --bs-tertiary-bg: var(--paper-deep);
  --bs-heading-color: var(--ink);
  --bs-border-color: var(--ochre-faint);
  --bs-link-color: var(--lacre);
  --bs-link-color-rgb: 142, 42, 34;
  --bs-link-hover-color: var(--ink);
  --bs-link-hover-color-rgb: 31, 38, 56;
  --bs-code-color: var(--lacre);
  --bs-light-rgb: 233, 223, 198;
  --bs-primary: var(--ochre);
  --bs-primary-rgb: 164, 130, 63;
  color: var(--ink);
  /* Barra de scroll y controles nativos en claro, como el papel */
  color-scheme: light;
  scrollbar-color: var(--ochre-faint) transparent;
}

:root[data-bs-theme] main.container-fluid {
  background: radial-gradient(ellipse at 50% 45%, var(--paper) 55%, var(--paper-deep) 100%);
  border: 12px solid transparent;
  border-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='36' height='36'%3E%3Crect width='36' height='36' fill='%23f3ecdb'/%3E%3Cg fill='none' stroke='%23a4823f' stroke-width='.55'%3E%3Ccircle cx='0' cy='0' r='8.5'/%3E%3Ccircle cx='12' cy='0' r='8.5'/%3E%3Ccircle cx='24' cy='0' r='8.5'/%3E%3Ccircle cx='36' cy='0' r='8.5'/%3E%3Ccircle cx='0' cy='12' r='8.5'/%3E%3Ccircle cx='12' cy='12' r='8.5'/%3E%3Ccircle cx='24' cy='12' r='8.5'/%3E%3Ccircle cx='36' cy='12' r='8.5'/%3E%3Ccircle cx='0' cy='24' r='8.5'/%3E%3Ccircle cx='12' cy='24' r='8.5'/%3E%3Ccircle cx='24' cy='24' r='8.5'/%3E%3Ccircle cx='36' cy='24' r='8.5'/%3E%3Ccircle cx='0' cy='36' r='8.5'/%3E%3Ccircle cx='12' cy='36' r='8.5'/%3E%3Ccircle cx='24' cy='36' r='8.5'/%3E%3Ccircle cx='36' cy='36' r='8.5'/%3E%3Ccircle cx='6' cy='6' r='4'/%3E%3Ccircle cx='18' cy='6' r='4'/%3E%3Ccircle cx='30' cy='6' r='4'/%3E%3Ccircle cx='6' cy='18' r='4'/%3E%3Ccircle cx='18' cy='18' r='4'/%3E%3Ccircle cx='30' cy='18' r='4'/%3E%3Ccircle cx='6' cy='30' r='4'/%3E%3Ccircle cx='18' cy='30' r='4'/%3E%3Ccircle cx='30' cy='30' r='4'/%3E%3C/g%3E%3C/svg%3E") 12 round;
  /* El filete interior va como sombra interior: queda bajo el texto al hacer scroll */
  box-shadow:
    inset 0 0 0 1px var(--ochre),
    0 0 0 1px var(--ochre),
    0 0 0 10px var(--frame),
    0 0 0 11px var(--frame-edge),
    0 28px 50px -18px rgba(0, 0, 0, 0.55);
  /* container-fluid fija width:100%; con márgenes laterales se saldría por la derecha */
  width: auto;
  max-width: none;
  margin: 22px 24px 40px;
}
:root[data-bs-theme] main.container-fluid.main-no-navbar { margin-top: 40px; }

/* ── Navbar como la cartela negra bajo el marco ───────────────────────────── */
:root[data-bs-theme] .navbar {
  background: linear-gradient(180deg, var(--plaque), #000) !important;
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
  margin: 22px 13px 0;
  padding: 0.35rem 24px;
  box-shadow: 0 6px 14px -6px rgba(0, 0, 0, 0.6);
}
:root[data-bs-theme] .navbar-inner { border-bottom: none; padding-bottom: 0; }
:root[data-bs-theme] .navbar-brand,
:root[data-bs-theme] .navbar-brand:hover { color: var(--plaque-ink) !important; }
:root[data-bs-theme] .navbar-brand-name,
:root[data-bs-theme] .login-brand-name {
  font-family: var(--font-text);
  font-weight: 500;
  text-transform: none;
  letter-spacing: 0.06em;
}
:root[data-bs-theme] .navbar-brand-name { font-size: 1.45rem; }
:root[data-bs-theme] .navbar-brand-name .brand-cap,
:root[data-bs-theme] .login-brand-name .brand-cap { font-size: 1em; }
:root[data-bs-theme] .navbar-tagline {
  color: var(--ochre);
  font-style: normal;
  font-variant: small-caps;
  letter-spacing: 0.2em;
  font-size: 0.8rem;
}
:root[data-bs-theme] .navbar .nav-link,
:root[data-bs-theme] .navbar .navbar-nav .nav-link {
  color: var(--plaque-ink) !important;
  font-family: var(--font-text);
  font-size: 0.95rem;
  font-weight: 400 !important;
  text-transform: none;
  font-variant: small-caps;
  letter-spacing: 0.06em;
  white-space: nowrap;
  padding: 0.35rem 0.6rem !important;
}
:root[data-bs-theme] .navbar .nav-link:hover,
:root[data-bs-theme] .navbar .nav-link.active,
:root[data-bs-theme] .navbar .navbar-nav .nav-link:hover,
:root[data-bs-theme] .navbar .navbar-nav .nav-link.active {
  color: #fff !important;
  box-shadow: inset 0 -1px 0 var(--ochre);
}
:root[data-bs-theme] .navbar-user-info {
  color: var(--plaque-ink);
  opacity: 0.8;
  font-family: var(--font-mono);
  font-size: 0.72rem;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  max-width: 16rem;
}
:root[data-bs-theme] .navbar-user-info strong { color: var(--plaque-ink); }
:root[data-bs-theme] .btn-cerrar-sesion,
:root[data-bs-theme] .navbar .btn-theme-toggle {
  color: var(--plaque-ink) !important;
  border-color: rgba(216, 207, 189, 0.35);
  font-family: var(--font-text);
  text-transform: none;
  font-variant: small-caps;
  letter-spacing: 0.08em;
  font-size: 0.85rem;
  white-space: nowrap;
}
:root[data-bs-theme] .btn-cerrar-sesion:hover,
:root[data-bs-theme] .navbar .btn-theme-toggle:hover {
  background: rgba(216, 207, 189, 0.08);
  border-color: var(--plaque-ink);
}
:root[data-bs-theme] .navbar-toggler { border-color: rgba(216, 207, 189, 0.35); }
:root[data-bs-theme] .navbar-toggler-icon {
  background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%28216,207,189,0.85%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e");
}

/* ── Títulos y tipografía ─────────────────────────────────────────────────── */
:root[data-bs-theme] .page-title,
:root[data-bs-theme] main > .d-flex > h4 {
  color: var(--ink);
  font-family: var(--font-text);
  font-weight: 500;
  font-size: 1.35rem;
  text-transform: none;
  font-variant: small-caps;
  letter-spacing: 0.12em;
}
:root[data-bs-theme] .page-title .bi,
:root[data-bs-theme] main > .d-flex > h4 .bi { color: var(--ochre) !important; }
:root[data-bs-theme] .font-monospace,
:root[data-bs-theme] code,
:root[data-bs-theme] .navbar-user-info strong { font-family: var(--font-mono); }

/* ── Cards: hojas de papel con filete ocre ────────────────────────────────── */
:root[data-bs-theme] .card {
  background: var(--paper);
  color: var(--ink);
  border: 1px solid var(--ochre-faint);
  border-radius: 2px;
  box-shadow: 0 1px 0 rgba(255, 255, 255, 0.5) inset, 0 2px 6px rgba(0, 0, 0, 0.08);
  backdrop-filter: none;
}
:root[data-bs-theme] .card-header {
  background: transparent;
  border-bottom: 1px solid var(--ochre-faint);
  color: var(--ink);
  font-family: var(--font-text);
  font-size: 1rem;
  font-weight: 600;
  text-transform: none;
  font-variant: small-caps;
  letter-spacing: 0.1em;
}
:root[data-bs-theme] .card-header .bi { color: var(--ochre); }
:root[data-bs-theme] .card-footer {
  background: var(--paper-deep);
  border-top: 1px solid var(--ochre-faint);
}
:root[data-bs-theme] .trust-block {
  background: var(--paper-deep) !important;
  border-color: var(--ochre-faint) !important;
}
:root[data-bs-theme] .trust-block p.fw-semibold { color: var(--ink) !important; }

/* ── Tablas ───────────────────────────────────────────────────────────────── */
:root[data-bs-theme] .table {
  --bs-table-color: var(--ink);
  --bs-table-bg: transparent;
  --bs-table-border-color: var(--ochre-faint);
  color: var(--ink);
  font-family: var(--font-text);
  font-size: 0.95rem;
}
:root[data-bs-theme] .table td { border-color: rgba(164, 130, 63, 0.18); }
:root[data-bs-theme] .table th,
:root[data-bs-theme] .table-dark th,
:root[data-bs-theme] .facturas-thead-sticky th {
  color: var(--ink-soft);
  font-family: var(--font-text);
  font-size: 0.85rem;
  font-weight: 600;
  text-transform: none;
  font-variant: small-caps;
  letter-spacing: 0.1em;
  border-color: var(--ochre-faint);
}
:root[data-bs-theme] .table-dark {
  --bs-table-bg: var(--paper-deep);
  --bs-table-color: var(--ink);
  --bs-table-border-color: var(--ochre-faint);
  color: var(--ink);
}
:root[data-bs-theme] .facturas-thead-sticky th { background: var(--paper-deep); border-right-color: var(--ochre-faint); }
:root[data-bs-theme] .facturas-table-scroll td { border-right-color: rgba(164, 130, 63, 0.12); }
:root[data-bs-theme] .table th.bg-light {
  background-color: var(--paper-deep) !important;
  color: var(--ink-soft) !important;
}
:root[data-bs-theme] .table-hover > tbody > tr:hover > td {
  background-color: rgba(164, 130, 63, 0.1) !important;
  color: var(--ink);
}

/* ── Formularios ──────────────────────────────────────────────────────────── */
:root[data-bs-theme] .form-control,
:root[data-bs-theme] .form-select {
  background-color: var(--paper-field);
  border: 1px solid var(--ochre-faint);
  color: var(--ink);
  font-family: var(--font-text);
  font-size: 0.95rem;
  border-radius: 2px;
}
:root[data-bs-theme] .form-control:focus,
:root[data-bs-theme] .form-select:focus {
  background-color: #fff;
  border-color: var(--ochre);
  box-shadow: 0 0 0 2px rgba(164, 130, 63, 0.18);
  color: var(--ink);
}
:root[data-bs-theme] .form-control::placeholder { color: rgba(74, 79, 94, 0.6); }
:root[data-bs-theme] .form-label {
  color: var(--ink-soft);
  font-family: var(--font-text);
  font-size: 0.85rem;
  text-transform: none;
  font-variant: small-caps;
  letter-spacing: 0.1em;
}
:root[data-bs-theme] .form-text { color: var(--ink-soft); font-size: 0.85rem; }
:root[data-bs-theme] .input-group-text {
  background: var(--paper-deep);
  border-color: var(--ochre-faint);
  color: var(--ochre);
  border-radius: 2px;
}
:root[data-bs-theme] .form-check-input:checked { background-color: var(--ink); border-color: var(--ink); }

/* ── Botones: tinta sobre papel, lacre al pasar ───────────────────────────── */
:root[data-bs-theme] .btn-primary {
  background: var(--ink);
  border: 1px solid var(--ink);
  color: var(--paper) !important;
  font-family: var(--font-text);
  font-size: 0.95rem;
  font-weight: 500;
  text-transform: none;
  font-variant: small-caps;
  letter-spacing: 0.12em;
  border-radius: 2px;
}
:root[data-bs-theme] .btn-primary:hover,
:root[data-bs-theme] .btn-primary:focus {
  background: var(--lacre);
  border-color: var(--lacre);
  filter: none;
  box-shadow: 0 0 0 2px rgba(142, 42, 34, 0.18);
  color: var(--paper) !important;
}
:root[data-bs-theme] .btn-outline-secondary,
:root[data-bs-theme] .btn-dl {
  border-color: var(--ochre-faint);
  color: var(--ink-soft);
  font-family: var(--font-text);
  border-radius: 2px;
}
:root[data-bs-theme] .btn-outline-secondary:hover,
:root[data-bs-theme] .btn-dl:hover {
  background: rgba(164, 130, 63, 0.1);
  border-color: var(--ochre);
  color: var(--lacre);
}
:root[data-bs-theme] .btn-theme-toggle { border-color: var(--ochre-faint); color: var(--ochre); }

/* ── Paginación ───────────────────────────────────────────────────────────── */
:root[data-bs-theme] .pagination .page-link {
  background: var(--paper-field);
  border-color: var(--ochre-faint);
  color: var(--ink-soft);
  font-family: var(--font-text);
}
:root[data-bs-theme] .pagination .page-item.active .page-link {
  background: var(--ink);
  border-color: var(--ink);
  color: var(--paper);
}
:root[data-bs-theme] .pagination .page-link:hover {
  background: rgba(164, 130, 63, 0.12);
  border-color: var(--ochre);
  color: var(--lacre);
}
:root[data-bs-theme] .pagination .page-item.disabled .page-link {
  background: transparent;
  color: rgba(74, 79, 94, 0.45);
  border-color: rgba(164, 130, 63, 0.18);
}
:root[data-bs-theme] .periodo-actual { color: var(--ink); }

/* ── Alertas ──────────────────────────────────────────────────────────────── */
:root[data-bs-theme] .alert { font-family: var(--font-text); font-size: 0.95rem; border-radius: 2px; }
:root[data-bs-theme] .alert-info {
  background-color: rgba(31, 38, 56, 0.06) !important;
  border-color: rgba(31, 38, 56, 0.22) !important;
  color: var(--ink) !important;
}
:root[data-bs-theme] .alert-warning {
  background-color: rgba(164, 130, 63, 0.14) !important;
  border-color: rgba(164, 130, 63, 0.5) !important;
  color: #5c4515 !important;
}
:root[data-bs-theme] .alert-danger {
  background-color: rgba(142, 42, 34, 0.08) !important;
  border-color: rgba(142, 42, 34, 0.4) !important;
  color: var(--lacre) !important;
}
:root[data-bs-theme] .alert-success {
  background-color: rgba(46, 94, 58, 0.09) !important;
  border-color: rgba(46, 94, 58, 0.35) !important;
  color: #2e5e3a !important;
}

/* ── Acordeón ─────────────────────────────────────────────────────────────── */
:root[data-bs-theme] .accordion-item { background: var(--paper); border-color: var(--ochre-faint); }
:root[data-bs-theme] .accordion-button,
:root[data-bs-theme] .accordion-button:not(.collapsed) {
  background: var(--paper-deep);
  color: var(--ink);
  font-family: var(--font-text);
  font-size: 0.95rem;
  box-shadow: none;
}
:root[data-bs-theme] .accordion-button::after { filter: none; }
:root[data-bs-theme] .accordion-body {
  background: var(--paper);
  color: var(--ink);
  font-family: var(--font-text);
  font-size: 0.95rem;
}
:root[data-bs-theme] .accordion-body .text-dark,
:root[data-bs-theme] .accordion-body strong.text-dark { color: var(--ink) !important; }

/* ── Pasos numerados, respuesta AEAT, badges ──────────────────────────────── */
:root[data-bs-theme] .cert-step-num {
  background: transparent;
  border-color: var(--ochre);
  color: var(--ochre);
  font-family: var(--font-text);
  font-size: 0.9rem;
}
:root[data-bs-theme] .aeat-response {
  background: var(--paper-field);
  border-color: var(--ochre-faint);
  color: var(--ink);
  font-family: var(--font-mono);
}
:root[data-bs-theme] .badge { font-family: var(--font-mono); font-weight: 400; letter-spacing: 0.02em; border-radius: 2px; }
:root[data-bs-theme] .badge-warning { background-color: var(--ochre) !important; color: #fff !important; }
:root[data-bs-theme] .badge-danger  { background-color: var(--lacre) !important; }
:root[data-bs-theme] .badge-success { background-color: #2e5e3a !important; }
:root[data-bs-theme] .badge-secondary,
:root[data-bs-theme] .badge-dark { background-color: var(--ink-soft) !important; color: var(--paper) !important; border: none; }
:root[data-bs-theme] .badge-light { background-color: var(--paper-deep) !important; color: var(--ink) !important; border: 1px solid var(--ochre-faint); }

/* ── Login, invitación y estado: el pliego suelto sobre la pared ──────────── */
:root[data-bs-theme] .login-card .card {
  background: radial-gradient(ellipse at 50% 45%, var(--paper) 55%, var(--paper-deep) 100%);
  outline: 1px solid var(--ochre);
  outline-offset: -7px;
  box-shadow:
    0 0 0 1px var(--ochre),
    0 0 0 10px var(--frame),
    0 0 0 11px var(--frame-edge),
    0 28px 50px -18px rgba(0, 0, 0, 0.55);
}
:root[data-bs-theme] .login-logo {
  width: 110px;
  margin: 0 auto;
  display: block;
  max-height: 20vh;
  filter: none;
  opacity: 0.85;
  transform: rotate(-9deg);
}
:root[data-bs-theme] .login-brand-name {
  color: var(--ink);
  font-size: 2.6rem;
  line-height: 1;
}
:root[data-bs-theme] .login-tagline {
  color: var(--ochre);
  font-style: normal;
  font-variant: small-caps;
  letter-spacing: 0.24em;
}
:root[data-bs-theme] .login-tagline-sub { color: var(--ink-soft); opacity: 1; }

/* ── Pie y páginas legales ────────────────────────────────────────────────── */
:root[data-bs-theme] .portal-footer {
  color: var(--footer-ink);
  font-family: var(--font-text);
  font-size: 0.8rem;
  font-variant: small-caps;
  letter-spacing: 0.12em;
}
:root[data-bs-theme] .portal-footer a { color: var(--footer-ink); border-bottom: 1px solid var(--ochre-faint); }
:root[data-bs-theme] .portal-footer a:hover { color: var(--lacre); }
:root[data-bs-theme] .legal-page h1,
:root[data-bs-theme] .legal-page h2 {
  color: var(--ink);
  font-family: var(--font-text);
  text-transform: none;
  font-variant: small-caps;
  opacity: 1;
}
:root[data-bs-theme] .legal-page h1 { font-size: 1.6rem; font-weight: 500; }
:root[data-bs-theme] .legal-page h2 { font-size: 1.05rem; font-weight: 600; color: var(--ochre); }
:root[data-bs-theme] .legal-page p,
:root[data-bs-theme] .legal-page li { color: var(--ink); font-family: var(--font-text); font-size: 1rem; }
:root[data-bs-theme] .legal-page .legal-updated { color: var(--ink-soft); font-family: var(--font-mono); }
:root[data-bs-theme] .legal-page .legal-pending { color: var(--lacre); }

/* Textos de estado sobre papel */
:root[data-bs-theme] .status-ok-text,
:root[data-bs-theme] .status-ok-icon   { color: #2e5e3a; }
:root[data-bs-theme] .status-warn-text,
:root[data-bs-theme] .status-warn-icon { color: #7a5a18; }
:root[data-bs-theme] .status-err-text,
:root[data-bs-theme] .status-err-icon  { color: var(--lacre); }
:root[data-bs-theme] .status-card-header { color: var(--ink); }

/* En anchos medios la versalita no cabe entera: se compacta el menú y el nombre
   del obligado se recorta para que «Cerrar sesión» no salga de la cartela */
@media (min-width: 992px) and (max-width: 1400px) {
  :root[data-bs-theme] .navbar { padding-left: 14px; padding-right: 14px; }
  :root[data-bs-theme] .navbar-brand-name { font-size: 1.25rem; }
  :root[data-bs-theme] .navbar .nav-link,
  :root[data-bs-theme] .navbar .navbar-nav .nav-link {
    font-size: 0.88rem;
    letter-spacing: 0.03em;
    padding: 0.35rem 0.4rem !important;
  }
  :root[data-bs-theme] .navbar-user-info { max-width: 8.5rem; }
  :root[data-bs-theme] .navbar .d-flex.gap-3 { gap: 0.6rem !important; }
}

/* Ayuda bajo el formulario de acceso */
:root[data-bs-theme] .login-ayuda { color: var(--ink-soft); font-family: var(--font-text); font-size: 0.9rem; }
:root[data-bs-theme] .login-ayuda a { color: var(--lacre); }
