:root{
  --bg:#f6f7f8; --paper:#fff; --ink:#0f1113; --muted:#4b5563;
  --line:#d5dbe3; --line-strong:#a9b3c2;
  --c-green:#0b7e59; --c-blue:#3763e0; --c-amber:#d97706; --c-red:#c0352b;
  --font-sans: "IBM Plex Sans", ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans";
  --font-mono: "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, Consolas, "Liberation Mono", monospace;
}
@media (prefers-color-scheme:dark){
  :root{ --bg:#0c0d0f; --paper:#111316; --ink:#e9eef2; --muted:#9aa4b2; --line:#2a2f37; --line-strong:#3a414c; }
}
html[data-theme="dark"]{ --bg:#0c0d0f; --paper:#111316; --ink:#e9eef2; --muted:#9aa4b2; --line:#2a2f37; --line-strong:#3a414c; }
html[data-theme="light"]{ --bg:#f6f7f8; --paper:#fff; --ink:#0f1113; --muted:#4b5563; --line:#d5dbe3; --line-strong:#a9b3c2; }

/* Base */
html,body{height:100%}
body{background:var(--bg); color:var(--ink); font-family:var(--font-sans); -webkit-font-smoothing:antialiased; text-rendering:optimizeLegibility;}
a{color:var(--c-blue); text-decoration:underline; text-underline-offset:2px; text-decoration-thickness:.08em}
a:hover{text-decoration:underline}

/* Quarto UI */
.quarto-container, .content, .page-columns, .content .page-columns{background:transparent}
#quarto-sidebar, .sidebar, nav.quarto-sidebar{background:var(--paper) !important; border-right:1px solid var(--line)}
.sidebar nav a{color:inherit}
.navbar, .navbar-expand, .navbar .navbar-nav .nav-link{background:var(--paper); color:inherit}
.navbar, .navbar-expand{border-bottom:1px solid var(--line)}
.sidebar .sidebar-title{font-weight:800}

/* Tarjetas/alertas/blocks */
.card, .callout, .panel-input, .panel-tabset{background:var(--paper); border:1px solid var(--line-strong); border-radius:0; box-shadow:none}
pre, code, pre code{font-family:var(--font-mono); }
pre{background:var(--paper); border:1px solid var(--line); padding:.75rem; overflow:auto}

/* Tabla de contenidos */
#TOC, .toc-active{background:var(--paper); border-left:1px solid var(--line);}

/* Corregir textos en vertical (forzar horizontal) */
h1,h2,h3,h4,h5,h6, .card-title, .callout-title, .nav-tabs .nav-link, .btn, .quarto-title h1,
main *{writing-mode:horizontal-tb !important; transform:none !important; letter-spacing:normal !important;}

/* Ajustes menores */
.table{--bs-table-bg:transparent}
footer{background:transparent; border-top:0}

/* --- Correcciones de tipografía/rotaciones heredadas --- */
h1,h2,h3,h4,h5,h6,
.card .card-title, .callout .callout-title,
.nav-tabs .nav-link, .btn, .quarto-title h1,
main *, .sidebar * {
  writing-mode: horizontal-tb !important;
  transform: none !important;
  letter-spacing: normal !important;
}

/* Mapear tokens de infra a Bootstrap para que Quarto/Bootstrap obedezcan el tema */
html[data-bs-theme="light"]{
  --bs-body-bg: var(--bg);
  --bs-body-color: var(--ink);
  --bs-border-color: var(--line);
  --bs-emphasis-color: var(--ink);
  --bs-link-color: var(--c-blue,#3763e0);
  --bs-link-hover-color: var(--c-blue,#3763e0);
  --bs-card-bg: var(--paper);
  --bs-card-border-color: var(--line-strong);
  --bs-heading-color: var(--ink);
}
html[data-bs-theme="dark"]{
  --bs-body-bg: var(--bg);
  --bs-body-color: var(--ink);
  --bs-border-color: var(--line);
  --bs-emphasis-color: var(--ink);
  --bs-link-color: var(--c-blue,#8aa2ff);
  --bs-link-hover-color: var(--c-blue,#8aa2ff);
  --bs-card-bg: var(--paper);
  --bs-card-border-color: var(--line-strong);
  --bs-heading-color: var(--ink);
}

/* Sidebar y navbar con tu paleta */
#quarto-sidebar, .sidebar, nav.quarto-sidebar{background:var(--paper)!important;border-right:1px solid var(--line)}
.navbar, .navbar-expand{background:var(--paper);border-bottom:1px solid var(--line)}
.sidebar nav a{color:inherit}

/* Código y callouts */
.card, .callout, .panel-input, .panel-tabset{background:var(--paper);border:1px solid var(--line-strong);border-radius:0;box-shadow:none}
pre, code, pre code{font-family:var(--font-mono)}
pre{background:var(--paper);border:1px solid var(--line);padding:.75rem;overflow:auto}
