/* ============================================================================
 * Cuervo CEOS · design system
 * ----------------------------------------------------------------------------
 * Principios: typography over decoration · less color · more hierarchy ·
 * subtle motion · density when it serves, breathing room when it serves.
 * Built on Material for MkDocs 9.5.x.
 * ============================================================================ */

/* ── 1 · TOKENS ────────────────────────────────────────────────────────────── */
:root {
  /* Brand · graphite */
  --cv-brand-900: #07090f;
  --cv-brand-800: #0c0f17;
  --cv-brand-700: #14181f;
  --cv-brand-500: #1f2330;
  --cv-brand-300: #4b5063;
  --cv-brand-100: #e3e5ea;

  /* Single accent · indigo. No second accent — keep palette tight. */
  --cv-accent-600: #4f46e5;
  --cv-accent-500: #6366f1;
  --cv-accent-400: #818cf8;
  --cv-accent-300: #a5b4fc;

  /* Status (used sparingly, only for badges) */
  --cv-success: #10b981;
  --cv-warning: #f59e0b;
  --cv-danger:  #ef4444;
  --cv-neutral: #64748b;

  /* Spacing */
  --cv-space-1: 0.25rem; --cv-space-2: 0.5rem; --cv-space-3: 0.75rem;
  --cv-space-4: 1rem; --cv-space-5: 1.5rem; --cv-space-6: 2rem;
  --cv-space-8: 3rem; --cv-space-10: 4rem;

  /* Type scale (modular ratio 1.2) */
  --cv-text-xs:   0.75rem;
  --cv-text-sm:   0.875rem;
  --cv-text-base: 1rem;
  --cv-text-lg:   1.125rem;
  --cv-text-xl:   1.25rem;
  --cv-text-2xl:  1.5rem;
  --cv-text-3xl:  1.875rem;
  --cv-text-4xl:  2.25rem;

  /* Radius · subtle */
  --cv-radius-sm: 4px;
  --cv-radius:    6px;
  --cv-radius-lg: 10px;
  --cv-radius-full: 9999px;

  /* Shadow · barely-there */
  --cv-shadow-sm: 0 1px 1px rgba(15, 23, 42, 0.04);
  --cv-shadow:    0 1px 2px rgba(15, 23, 42, 0.05);

  /* Motion */
  --cv-ease: cubic-bezier(0.4, 0, 0.2, 1);
  --cv-duration: 160ms;

  /* Material palette overrides · LIGHT */
  --md-primary-fg-color:           var(--cv-brand-900);
  --md-primary-fg-color--light:    var(--cv-brand-700);
  --md-primary-fg-color--dark:     var(--cv-brand-900);
  --md-accent-fg-color:            var(--cv-accent-600);
  --md-default-fg-color--lightest: rgba(15, 23, 42, 0.05);
  --md-typeset-a-color:            var(--cv-accent-600);
}

/* Material palette overrides · SLATE / dark */
[data-md-color-scheme="slate"] {
  --md-default-bg-color:           #07090f;
  --md-default-bg-color--light:    #0c0f17;
  --md-default-fg-color:           #e8eaf0;
  --md-default-fg-color--light:    rgba(232, 234, 240, 0.78);
  --md-default-fg-color--lighter:  rgba(232, 234, 240, 0.45);
  --md-default-fg-color--lightest: rgba(232, 234, 240, 0.06);
  --md-code-bg-color:              #0e121b;
  --md-code-fg-color:              #e8eaf0;
  --md-typeset-a-color:            var(--cv-accent-300);
  --md-accent-fg-color:            var(--cv-accent-400);
}

/* ── 2 · GLOBAL ───────────────────────────────────────────────────────────── */
html, body {
  text-rendering: optimizeLegibility;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

/* Constrain reading width on wide screens */
.md-grid { max-width: 68rem; }

/* ── 3 · TYPOGRAPHY ───────────────────────────────────────────────────────── */
.md-typeset {
  font-feature-settings: "ss01", "cv11", "tnum";
  line-height: 1.65;
  font-size: 0.94rem;
}

/* H1 · clean weight, no gradient. */
.md-typeset h1 {
  font-weight: 700;
  font-size: var(--cv-text-4xl);
  letter-spacing: -0.025em;
  line-height: 1.15;
  margin: 0 0 var(--cv-space-3);
  color: var(--md-default-fg-color);
}

/* H2 · top divider gives clean section breaks without heavy borders */
.md-typeset h2 {
  font-weight: 600;
  font-size: var(--cv-text-2xl);
  letter-spacing: -0.015em;
  margin-top: var(--cv-space-10);
  margin-bottom: var(--cv-space-3);
  padding-top: var(--cv-space-5);
  border-top: 1px solid var(--md-default-fg-color--lightest);
}

.md-typeset h3 {
  font-weight: 600;
  font-size: var(--cv-text-xl);
  letter-spacing: -0.01em;
  margin-top: var(--cv-space-8);
  margin-bottom: var(--cv-space-2);
}

.md-typeset h4 {
  font-weight: 600;
  font-size: var(--cv-text-base);
  text-transform: none;
  letter-spacing: 0;
  color: var(--md-default-fg-color);
  margin-top: var(--cv-space-6);
}

/* Lead paragraph · first paragraph after H1 */
.md-typeset h1 + p {
  font-size: var(--cv-text-lg);
  line-height: 1.55;
  color: var(--md-default-fg-color--light);
  font-weight: 400;
  max-width: 64ch;
  margin-bottom: var(--cv-space-6);
}

/* Inline code */
.md-typeset code {
  font-size: 0.85em;
  padding: 0.1em 0.4em;
  border-radius: var(--cv-radius-sm);
  background: var(--md-default-fg-color--lightest);
  border: 0;
}

/* Code blocks */
.md-typeset pre > code {
  border-radius: var(--cv-radius);
  font-size: var(--cv-text-sm);
  line-height: 1.55;
}
.md-typeset .highlight {
  border-radius: var(--cv-radius);
  box-shadow: var(--cv-shadow-sm);
}

/* Links · subtle underline on hover only */
.md-typeset a {
  text-decoration: none;
  border-bottom: 1px solid transparent;
  transition: border-color var(--cv-duration) var(--cv-ease), color var(--cv-duration) var(--cv-ease);
}
.md-typeset a:hover {
  border-bottom-color: currentColor;
  text-decoration: none;
}

/* Blockquote · simple, no gradient */
.md-typeset blockquote {
  border-left: 2px solid var(--md-default-fg-color--lightest);
  background: transparent;
  padding: 0 var(--cv-space-5);
  margin-left: 0;
  color: var(--md-default-fg-color--light);
  font-style: normal;
}

/* Lists · tighter */
.md-typeset ul li, .md-typeset ol li { margin-bottom: 0.25em; }

/* HR · refined */
.md-typeset hr {
  border: 0;
  height: 1px;
  background: var(--md-default-fg-color--lightest);
  margin: var(--cv-space-8) 0;
}

/* ── 4 · COMPONENTS ───────────────────────────────────────────────────────── */

/* 4.1 · HERO · minimal, no gradient pattern, no eyebrow */
.cv-hero {
  padding: var(--cv-space-8) 0 var(--cv-space-6);
  margin: 0 0 var(--cv-space-6);
  border-bottom: 1px solid var(--md-default-fg-color--lightest);
}
.cv-hero h1 {
  font-size: clamp(var(--cv-text-3xl), 4vw, 2.75rem) !important;
  margin: 0 0 var(--cv-space-3) !important;
  border: 0 !important;
  padding: 0 !important;
}
.cv-hero-tagline {
  font-size: var(--cv-text-lg);
  color: var(--md-default-fg-color--light);
  max-width: 60ch;
  margin: 0 0 var(--cv-space-6);
  line-height: 1.55;
  font-weight: 400;
}
.cv-hero-cta {
  display: flex;
  flex-wrap: wrap;
  gap: var(--cv-space-3);
  align-items: center;
}
.cv-hero-cta a {
  display: inline-flex;
  align-items: center;
  gap: var(--cv-space-2);
  padding: 0.55rem 1rem;
  font-size: var(--cv-text-sm);
  font-weight: 500;
  border-radius: var(--cv-radius);
  border-bottom: 0 !important;
  transition: all var(--cv-duration) var(--cv-ease);
}
.cv-hero-cta a:nth-child(1) {
  background: var(--cv-accent-600);
  color: #fff !important;
}
.cv-hero-cta a:nth-child(1):hover {
  background: var(--cv-accent-500);
}
.cv-hero-cta a:not(:nth-child(1)) {
  color: var(--md-default-fg-color) !important;
  border: 1px solid var(--md-default-fg-color--lightest);
}
.cv-hero-cta a:not(:nth-child(1)):hover {
  border-color: var(--cv-accent-500);
  color: var(--cv-accent-600) !important;
}
[data-md-color-scheme="slate"] .cv-hero-cta a:not(:nth-child(1)):hover {
  color: var(--cv-accent-300) !important;
}

/* 4.2 · GRID CARDS · refined, calmer */
.md-typeset .grid.cards > ul > li,
.md-typeset .grid.cards > :not(ul) {
  border-radius: var(--cv-radius-lg);
  border: 1px solid var(--md-default-fg-color--lightest);
  background: var(--md-default-bg-color);
  padding: var(--cv-space-5);
  transition: border-color var(--cv-duration) var(--cv-ease), background var(--cv-duration) var(--cv-ease);
  margin: 0;
}
.md-typeset .grid.cards > ul > li:hover,
.md-typeset .grid.cards > :not(ul):hover {
  border-color: var(--cv-accent-500);
  background: rgba(99, 102, 241, 0.025);
}
[data-md-color-scheme="slate"] .md-typeset .grid.cards > ul > li:hover,
[data-md-color-scheme="slate"] .md-typeset .grid.cards > :not(ul):hover {
  background: rgba(129, 140, 248, 0.04);
}
.md-typeset .grid.cards > ul > li > p:first-child,
.md-typeset .grid.cards > :not(ul) > p:first-child {
  font-size: var(--cv-text-base);
  font-weight: 600;
  margin-bottom: var(--cv-space-2);
}
.md-typeset .grid.cards > ul > li > p,
.md-typeset .grid.cards > :not(ul) > p {
  margin: var(--cv-space-2) 0;
}
.md-typeset .grid.cards > ul > li > p:has(+ p),
.md-typeset .grid.cards > :not(ul) > p:has(+ p) {
  font-size: var(--cv-text-sm);
  color: var(--md-default-fg-color--light);
}
.md-typeset .grid.cards .twemoji,
.md-typeset .grid.cards svg {
  height: 1.3em;
  width: 1.3em;
  fill: var(--cv-accent-600);
}
[data-md-color-scheme="slate"] .md-typeset .grid.cards .twemoji,
[data-md-color-scheme="slate"] .md-typeset .grid.cards svg {
  fill: var(--cv-accent-300);
}
/* Card secondary CTAs · stack vertically, smaller */
.md-typeset .grid.cards a {
  font-size: var(--cv-text-sm);
}

/* 4.3 · PAGE METADATA BLOCK (injected by hooks/page_meta.py) */
.cv-page-meta {
  display: flex;
  flex-wrap: wrap;
  gap: var(--cv-space-2);
  margin: 0 0 var(--cv-space-6);
  padding-bottom: var(--cv-space-5);
  border-bottom: 1px solid var(--md-default-fg-color--lightest);
  align-items: center;
}
.cv-meta-badge {
  display: inline-flex;
  align-items: stretch;
  font-size: 0.72rem;
  font-weight: 500;
  border-radius: var(--cv-radius-sm);
  overflow: hidden;
  border: 1px solid var(--md-default-fg-color--lightest);
  line-height: 1.4;
  white-space: nowrap;
}
.cv-meta-label {
  padding: 0.2em 0.55em;
  background: var(--md-default-fg-color--lightest);
  color: var(--md-default-fg-color--lighter);
  text-transform: uppercase;
  letter-spacing: 0.04em;
  font-size: 0.66rem;
  font-weight: 600;
}
.cv-meta-value {
  padding: 0.2em 0.6em;
  color: var(--md-default-fg-color--light);
  font-family: var(--md-code-font), ui-monospace, monospace;
}

/* Status semantic coloring */
.cv-meta-status .cv-meta-value           { font-weight: 600; }
.cv-meta-status-active .cv-meta-value    { color: var(--cv-success); }
.cv-meta-status-stable .cv-meta-value    { color: var(--cv-success); }
.cv-meta-status-accepted .cv-meta-value  { color: var(--cv-success); }
.cv-meta-status-final .cv-meta-value     { color: var(--cv-success); }
.cv-meta-status-draft .cv-meta-value     { color: var(--cv-warning); }
.cv-meta-status-proposed .cv-meta-value  { color: var(--cv-warning); }
.cv-meta-status-experimental .cv-meta-value { color: var(--cv-warning); }
.cv-meta-status-deprecated .cv-meta-value { color: var(--cv-danger); }
.cv-meta-status-superseded .cv-meta-value { color: var(--cv-neutral); }
.cv-meta-status-archived .cv-meta-value  { color: var(--cv-neutral); }
.cv-meta-status-withdrawn .cv-meta-value { color: var(--cv-neutral); }

/* Criticality coloring */
.cv-meta-criticality-tier-1 .cv-meta-value { color: var(--cv-danger); font-weight: 600; }
.cv-meta-criticality-tier-2 .cv-meta-value { color: var(--cv-warning); font-weight: 600; }
.cv-meta-criticality-tier-3 .cv-meta-value { color: var(--cv-neutral); font-weight: 500; }

/* Stale marker · always red */
.cv-meta-stale .cv-meta-label { background: rgba(239, 68, 68, 0.15); color: var(--cv-danger); }
.cv-meta-stale .cv-meta-value { color: var(--cv-danger); font-weight: 600; }

/* Reading time · subtle */
.cv-meta-reading { margin-left: auto; }
.cv-meta-reading .cv-meta-label { background: transparent; }
.cv-meta-reading .cv-meta-value { color: var(--md-default-fg-color--lighter); font-family: inherit; }

@media (max-width: 60em) {
  .cv-meta-reading { margin-left: 0; }
}

/* 4.4 · BADGES · used in tables and inline */
.cv-badge {
  display: inline-flex;
  align-items: center;
  gap: 0.35em;
  padding: 0.1em 0.55em;
  font-size: var(--cv-text-xs);
  font-weight: 600;
  border-radius: var(--cv-radius-full);
  letter-spacing: 0.01em;
  white-space: nowrap;
  vertical-align: middle;
  line-height: 1.5;
}
.cv-badge-active     { background: rgba(16, 185, 129, 0.10); color: var(--cv-success); }
.cv-badge-draft      { background: rgba(245, 158, 11, 0.10); color: var(--cv-warning); }
.cv-badge-deprecated { background: rgba(239, 68, 68, 0.10);  color: var(--cv-danger); }
.cv-badge-archived   { background: rgba(100, 116, 139, 0.10);color: var(--cv-neutral); }
.cv-badge-tier-1     { background: rgba(239, 68, 68, 0.10);  color: var(--cv-danger); }
.cv-badge-tier-2     { background: rgba(245, 158, 11, 0.10); color: var(--cv-warning); }
.cv-badge-tier-3     { background: rgba(100, 116, 139, 0.10);color: var(--cv-neutral); }
.cv-badge::before    { content: "●"; font-size: 0.7em; line-height: 1; }

/* 4.4 · KEYBOARD HINT */
kbd, .md-typeset kbd {
  display: inline-block;
  padding: 0.1em 0.4em;
  font-family: var(--md-code-font), monospace;
  font-size: 0.78em;
  font-weight: 500;
  line-height: 1.4;
  color: var(--md-default-fg-color--light);
  background: var(--md-default-fg-color--lightest);
  border: 1px solid var(--md-default-fg-color--lightest);
  border-bottom-width: 2px;
  border-radius: var(--cv-radius-sm);
}

/* ── 5 · TABLES · uniform, scannable ──────────────────────────────────────── */
.md-typeset table:not([class]) {
  border-radius: var(--cv-radius);
  overflow: hidden;
  border: 1px solid var(--md-default-fg-color--lightest);
  font-size: var(--cv-text-sm);
  display: table;
  width: 100%;
}
.md-typeset table:not([class]) th {
  background: var(--md-default-fg-color--lightest);
  font-weight: 600;
  font-size: var(--cv-text-xs);
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: var(--md-default-fg-color--light);
  border-bottom: 1px solid var(--md-default-fg-color--lightest);
  white-space: nowrap;
}
.md-typeset table:not([class]) td,
.md-typeset table:not([class]) th {
  padding: var(--cv-space-3) var(--cv-space-4);
  border: 0;
  border-bottom: 1px solid var(--md-default-fg-color--lightest);
}
.md-typeset table:not([class]) tr:last-child td {
  border-bottom: 0;
}
.md-typeset table:not([class]) tr:hover td {
  background: var(--md-default-fg-color--lightest);
}

/* ── 6 · ADMONITIONS ──────────────────────────────────────────────────────── */
.md-typeset .admonition,
.md-typeset details {
  border-radius: var(--cv-radius);
  border-width: 0 0 0 2px !important;
  font-size: var(--cv-text-sm);
  box-shadow: none;
}
.md-typeset .admonition-title,
.md-typeset summary {
  font-weight: 600;
  letter-spacing: -0.005em;
}

/* ── 7 · NAVIGATION (header · tabs · sidebar) ─────────────────────────────── */
.md-header {
  background: var(--cv-brand-900);
  border-bottom: 1px solid rgba(255, 255, 255, 0.06);
  box-shadow: none;
}
.md-header__title {
  font-weight: 600;
  letter-spacing: -0.005em;
  font-size: 0.95rem;
}

.md-tabs {
  background: var(--cv-brand-900);
  border-bottom: 1px solid rgba(255, 255, 255, 0.06);
}
.md-tabs__link {
  font-size: var(--cv-text-sm);
  font-weight: 500;
  opacity: 0.72;
  transition: opacity var(--cv-duration) var(--cv-ease);
  margin-top: 0.6rem;
}
.md-tabs__link:hover, .md-tabs__link--active {
  opacity: 1;
}

/* Sidebar */
.md-nav__link {
  font-size: var(--cv-text-sm);
  border-radius: var(--cv-radius-sm);
  transition: background var(--cv-duration) var(--cv-ease), color var(--cv-duration) var(--cv-ease);
  line-height: 1.4;
}
.md-nav__link:hover {
  color: var(--md-accent-fg-color);
}
.md-nav__link--active {
  font-weight: 600;
  color: var(--md-accent-fg-color) !important;
}
.md-nav__title {
  font-size: var(--cv-text-xs);
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: var(--md-default-fg-color--lighter);
  font-weight: 600;
}

/* Search */
.md-search__input {
  font-size: var(--cv-text-sm);
  border-radius: var(--cv-radius);
}
.md-search__input::placeholder {
  font-weight: 500;
  opacity: 0.7;
}
.md-search-result__article {
  padding-top: var(--cv-space-3);
  padding-bottom: var(--cv-space-3);
}

/* TOC */
.md-nav--secondary .md-nav__title {
  font-size: var(--cv-text-xs);
}
.md-nav--secondary .md-nav__link {
  font-size: 0.82rem;
}

/* ── 8 · FOOTER ───────────────────────────────────────────────────────────── */
.md-footer {
  background: var(--cv-brand-900);
  color: rgba(255, 255, 255, 0.65);
  font-size: var(--cv-text-sm);
}
.md-footer-meta {
  background: var(--cv-brand-800);
  font-size: var(--cv-text-xs);
}
.md-footer-meta__inner {
  padding: var(--cv-space-3) var(--cv-space-4);
}
.md-footer__direction {
  font-size: 0.78rem;
  opacity: 0.6;
}

/* ── 9 · MERMAID · let plugin handle theming ─────────────────────────────── */
.mermaid {
  text-align: center;
  margin: var(--cv-space-6) 0;
}

/* ── 10 · PAGE-LEVEL TWEAKS ──────────────────────────────────────────────── */

/* Edit/view buttons · subtle */
.md-content__button {
  margin: 0.6rem 0 0 0.6rem;
  opacity: 0.45;
  transition: opacity var(--cv-duration) var(--cv-ease);
}
.md-content__button:hover {
  opacity: 1;
}

/* Last revision date · subtle */
.md-source-file {
  font-size: var(--cv-text-xs);
  color: var(--md-default-fg-color--lighter);
  margin-top: var(--cv-space-8);
}

/* Selection */
::selection {
  background: rgba(99, 102, 241, 0.25);
  color: inherit;
}
[data-md-color-scheme="slate"] ::selection {
  background: rgba(165, 180, 252, 0.30);
}

/* Scrollbar (webkit only) · minimal */
@supports selector(::-webkit-scrollbar) {
  ::-webkit-scrollbar { width: 10px; height: 10px; }
  ::-webkit-scrollbar-track { background: transparent; }
  ::-webkit-scrollbar-thumb {
    background: var(--md-default-fg-color--lightest);
    border-radius: 5px;
    border: 2px solid var(--md-default-bg-color);
  }
  ::-webkit-scrollbar-thumb:hover {
    background: var(--md-default-fg-color--lighter);
  }
}
