/* Identidad de los docs de Saelyx sobre la hoja de Material.
 *
 * Los tokens son los de web/sx.css (negro verdadero, superficies 0B0E10-13171A, acento
 * periwinkle #6E8BFF). Aquí NO se redefine el orbe ni se carga nada de fuera: la CSP es
 * font-src 'self', así que Inter y JetBrains Mono salen de /fonts/fonts.css de la propia web.
 * El sitio es oscuro fijo (una sola paleta, sin selector de tema).
 */
@import url('/fonts/fonts.css');

:root {
  /* font: false en la configuración deja Material sin familia propia; se la damos. */
  --md-text-font: "Inter";
  --md-code-font: "JetBrains Mono";
}

/* Material coloca las variables de la paleta en [data-md-color-scheme="slate"]; para
   ganarles a igualdad de especificidad esta hoja se carga después de la suya. */
[data-md-color-scheme="slate"] {
  --md-hue: 215;

  /* Superficies */
  --md-default-bg-color:           #000000;
  --md-default-bg-color--light:    rgba(0, 0, 0, 0.54);
  --md-default-bg-color--lighter:  rgba(0, 0, 0, 0.26);
  --md-default-bg-color--lightest: rgba(0, 0, 0, 0.07);
  --md-code-bg-color:              #0B0E10;
  --md-footer-bg-color:            #000000;
  --md-footer-bg-color--dark:      #000000;
  --md-shadow-z1: 0 0 0 1px rgba(255, 255, 255, 0.08);
  --md-shadow-z2: 0 8px 24px rgba(0, 0, 0, 0.6), 0 0 0 1px rgba(255, 255, 255, 0.08);
  --md-shadow-z3: 0 12px 32px rgba(0, 0, 0, 0.7), 0 0 0 1px rgba(255, 255, 255, 0.12);

  /* Texto */
  --md-default-fg-color:           rgba(255, 255, 255, 0.90);
  --md-default-fg-color--light:    rgba(255, 255, 255, 0.62);
  --md-default-fg-color--lighter:  rgba(255, 255, 255, 0.38);
  --md-default-fg-color--lightest: rgba(255, 255, 255, 0.10);
  --md-typeset-color:              rgba(255, 255, 255, 0.90);
  --md-code-fg-color:              #D7DEFF;
  --md-typeset-a-color:            #91A7FF;          /* = --accent-bright */
  --md-typeset-mark-color:         rgba(110, 139, 255, 0.28);
  --md-typeset-kbd-color:          rgba(255, 255, 255, 0.08);
  --md-typeset-kbd-accent-color:   rgba(255, 255, 255, 0.12);
  --md-typeset-kbd-border-color:   rgba(255, 255, 255, 0.28);
  --md-typeset-table-color:        rgba(255, 255, 255, 0.10);
  --md-typeset-table-color--light: rgba(255, 255, 255, 0.04);

  /* Cabecera: negra, con el texto en claro (el acento se reserva para lo interactivo) */
  --md-primary-fg-color:        #000000;
  --md-primary-fg-color--light: #0B0E10;
  --md-primary-fg-color--dark:  #000000;
  --md-primary-bg-color:        rgba(255, 255, 255, 0.90);
  --md-primary-bg-color--light: rgba(255, 255, 255, 0.62);

  /* Acento periwinkle */
  --md-accent-fg-color:               #6E8BFF;
  --md-accent-fg-color--transparent:  rgba(110, 139, 255, 0.12);
  --md-accent-bg-color:               #0B0E10;
  --md-accent-bg-color--light:        rgba(11, 14, 16, 0.7);

  /* Avisos: mismos colores de aviso para todos los tipos, sin arcoíris */
  --md-admonition-bg-color: #0B0E10;
  --md-admonition-fg-color: rgba(255, 255, 255, 0.90);
}

body,
.md-main,
.md-sidebar {
  background-color: #000000;
}

/* Cabecera y pestañas con filete en vez de sombra */
.md-header {
  background-color: #000000;
  box-shadow: none;
  border-bottom: 1px solid rgba(255, 255, 255, 0.08);
}
.md-header[data-md-state="shadow"] {
  box-shadow: none;
}
.md-header__title,
.md-header__topic {
  font-weight: 600;
  letter-spacing: -0.01em;
}
.md-header__button.md-logo img {
  height: 1.4rem;
  width: 1.4rem;
}

/* Navegación lateral */
.md-nav__title,
.md-nav--primary > .md-nav__title {
  color: rgba(255, 255, 255, 0.55);
}
.md-nav--primary .md-nav__item--section > .md-nav__link {
  font-family: var(--md-code-font-family);
  font-size: 0.62rem;
  font-weight: 500;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, 0.55);
}
.md-nav__link {
  color: rgba(255, 255, 255, 0.62);
}
.md-nav__link:hover,
.md-nav__link:focus {
  color: #91A7FF;
}
.md-nav__link--active,
.md-nav__item .md-nav__link--active {
  color: #91A7FF;
}
.md-sidebar__scrollwrap {
  scrollbar-color: rgba(255, 255, 255, 0.18) transparent;
}

/* Prosa */
.md-typeset {
  font-size: 0.78rem;
  line-height: 1.7;
}
.md-typeset h1 {
  color: rgba(255, 255, 255, 0.95);
  font-weight: 600;
  letter-spacing: -0.02em;
}
.md-typeset h2,
.md-typeset h3,
.md-typeset h4 {
  color: rgba(255, 255, 255, 0.92);
  font-weight: 600;
  letter-spacing: -0.01em;
}
.md-typeset a {
  color: #91A7FF;
  text-underline-offset: 2px;
}
.md-typeset a:hover,
.md-typeset a:focus {
  color: #4F63D6;
}
.md-typeset .headerlink {
  color: rgba(255, 255, 255, 0.38);
}
.md-typeset hr {
  border-bottom-color: rgba(255, 255, 255, 0.08);
}
.md-typeset blockquote {
  color: rgba(255, 255, 255, 0.62);
  border-inline-start: 2px solid #6E8BFF;
}

/* Código: monocromo a propósito (sin resaltado; la CSP descarta cualquier librería) */
.md-typeset code,
.md-typeset pre {
  font-family: var(--md-code-font-family);
}
.md-typeset code {
  background-color: #0B0E10;
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: 6px;
  padding: 0.05em 0.35em;
}
.md-typeset pre > code {
  background-color: #0B0E10;
  border: 0;
}
.md-typeset .highlight,
.md-typeset pre {
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: 10px;
}
.md-typeset .highlight pre {
  border: 0;
}

/* Tablas: ancho propio con scroll interno, nunca de página */
.md-typeset table:not([class]) {
  background-color: #0B0E10;
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: 10px;
  font-size: 0.72rem;
}
.md-typeset table:not([class]) th {
  background-color: #13171A;
  color: rgba(255, 255, 255, 0.92);
  font-weight: 600;
}
.md-typeset__scrollwrap {
  margin-inline: 0;
}

/* Avisos: una sola gramática (filete de acento) para nota, aviso y peligro */
.md-typeset .admonition,
.md-typeset details {
  background-color: #0B0E10;
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-inline-start: 3px solid #6E8BFF;
  border-radius: 10px;
  box-shadow: none;
}
.md-typeset .admonition-title,
.md-typeset summary {
  background-color: rgba(110, 139, 255, 0.10);
}
.md-typeset .admonition.warning,
.md-typeset details.warning,
.md-typeset .admonition.danger,
.md-typeset details.danger,
.md-typeset .admonition.caution,
.md-typeset details.caution {
  border-inline-start-color: #FFB454;
}
.md-typeset .admonition.warning > .admonition-title,
.md-typeset details.warning > summary,
.md-typeset .admonition.danger > .admonition-title,
.md-typeset details.danger > summary,
.md-typeset .admonition.caution > .admonition-title,
.md-typeset details.caution > summary {
  background-color: rgba(255, 180, 84, 0.10);
}

/* Buscador */
.md-search__form {
  background-color: #0B0E10;
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: 10px;
}
.md-search__form:hover {
  background-color: #13171A;
}
.md-search__output {
  background-color: #0B0E10;
}
.md-search-result__meta {
  background-color: #13171A;
}

/* Pie y navegación entre páginas */
.md-footer {
  background-color: #000000;
  border-top: 1px solid rgba(255, 255, 255, 0.08);
}
.md-footer-meta {
  background-color: #000000;
}
.md-footer__link {
  color: rgba(255, 255, 255, 0.62);
}
.md-footer__link:hover {
  color: #91A7FF;
}
.md-copyright {
  color: rgba(255, 255, 255, 0.55);
}

/* Contenido ancho: nada empuja la página en horizontal */
.md-typeset img {
  max-width: 100%;
  height: auto;
}
.md-content__inner {
  overflow-wrap: break-word;
}

/* Foco visible con el acento de la web */
:focus-visible {
  outline: 2px solid #6E8BFF;
  outline-offset: 2px;
}

/* Respeta la preferencia de movimiento reducido */
@media (prefers-reduced-motion: reduce) {
  * {
    scroll-behavior: auto !important;
    transition-duration: 0.01ms !important;
    animation-duration: 0.01ms !important;
  }
}
