/* =========================================================
   Stany unified theme — ÚNICA fuente de tokens
   html[data-theme="dark"|"light"]  (default: dark)
   ========================================================= */

:root,
html[data-theme="dark"] {
  color-scheme: dark;

  --bg: #0d1117;
  --bg-soft: #0f141b;
  --bg-elev: #161b22;
  --bg-glass: rgba(13, 17, 23, 0.96);
  --card: #161b22;
  --card-hover: rgba(56, 139, 253, 0.04);
  --text: #c9d1d9;
  --text-strong: #f0f6fc;
  --muted: #8b949e;
  --muted-2: #7d8590;
  --border: #30363d;
  --border-muted: rgba(240, 246, 252, 0.08);
  --border-soft: rgba(240, 246, 252, 0.10);
  --accent: #58a6ff;
  --accent-strong: #1f6feb;
  --accent-soft: rgba(56, 139, 253, 0.16);
  --accent-hover: #79c0ff;
  --success: #3fb950;
  --success-soft: rgba(46, 160, 67, 0.12);
  --success-border: rgba(63, 185, 80, 0.30);
  --success-text: #7ee787;
  --warning: #d29922;
  --danger: #f85149;
  --shadow: 0 24px 48px rgba(1, 4, 9, 0.30);
  --ring: rgba(56, 139, 253, 0.25);
  --code-bg: #0d1117;
  --code-fg: #e6edf3;
  --overlay: linear-gradient(90deg, rgba(1,4,9,.82) 0%, rgba(1,4,9,.35) 55%, transparent 100%);
  --banner-bg: #05070c;
  --banner-shell: #010409;

  --stany-nav: #010409;
  --stany-nav-text: rgba(255, 255, 255, 0.86);
  --stany-nav-border: rgba(255, 255, 255, 0.08);
  --stany-nav-hover: rgba(255, 255, 255, 0.08);
  --stany-nav-hover-text: #ffffff;
  --stany-nav-btn-border: rgba(255, 255, 255, 0.18);
  --stany-nav-btn-bg: rgba(255, 255, 255, 0.06);
  --on-accent: #ffffff;

  /* aliases for legacy portal chrome */
  --ghv2-bg: var(--stany-nav);
  --ghv2-border: var(--border);
  --ghv2-text: var(--stany-nav-text);
  --ghv2-muted: var(--muted);

  /* aliases usados por CSS viejo */
  --stany-bg: var(--bg);
  --stany-bg-elev: var(--bg-elev);
  --stany-card: var(--card);
  --stany-text: var(--text);
  --stany-text-strong: var(--text-strong);
  --stany-muted: var(--muted);
  --stany-accent: var(--accent);
  --stany-accent-soft: var(--accent-soft);
  --stany-border: var(--border);
  --stany-shadow: var(--shadow);
  --stany-success: var(--success);
  --stany-warning: var(--warning);
  --stany-danger: var(--danger);

  --tblr-primary: #1f6feb;
  --tblr-primary-rgb: 31, 111, 235;
  --tblr-border-color: #30363d;
  --tblr-body-bg: #0d1117;
  --tblr-body-color: #c9d1d9;
  --tblr-bg-surface: #161b22;
  --tblr-bg-subtle: #0f141b;
  --tblr-font-sans-serif: Inter, system-ui, -apple-system, Segoe UI, Roboto, sans-serif;
}

html[data-theme="light"] {
  color-scheme: light;

  --bg: #ffffff;
  --bg-soft: #f6f8fa;
  --bg-elev: #f6f8fa;
  --bg-glass: rgba(255, 255, 255, 0.96);
  --card: #ffffff;
  --card-hover: rgba(9, 105, 218, 0.04);
  --text: #24292f;
  --text-strong: #0f172a;
  --muted: #57606a;
  --muted-2: #6e7781;
  --border: #d0d7de;
  --border-muted: #d0d7de;
  --border-soft: #d8dee4;
  --accent: #0969da;
  --accent-strong: #0969da;
  --accent-soft: rgba(9, 105, 218, 0.10);
  --accent-hover: #0550ae;
  --success: #1a7f37;
  --success-soft: #dafbe1;
  --success-border: rgba(26, 127, 55, 0.35);
  --success-text: #116329;
  --warning: #9a6700;
  --danger: #cf222e;
  --shadow: 0 12px 30px rgba(31, 35, 40, 0.08);
  --ring: rgba(9, 105, 218, 0.25);
  --code-bg: #24292f;
  --code-fg: #e6edf3;
  --overlay: linear-gradient(90deg, rgba(15,23,42,.72) 0%, rgba(15,23,42,.18) 55%, transparent 100%);
  --banner-bg: #eaeef2;
  --banner-shell: #f6f8fa;

  --stany-nav: #ffffff;
  --stany-nav-text: #24292f;
  --stany-nav-border: #d0d7de;
  --stany-nav-hover: rgba(9, 105, 218, 0.08);
  --stany-nav-hover-text: #0969da;
  --stany-nav-btn-border: #d0d7de;
  --stany-nav-btn-bg: #f6f8fa;
  --on-accent: #ffffff;
  --ghv2-bg: var(--stany-nav);
  --ghv2-border: var(--border);
  --ghv2-text: var(--stany-nav-text);
  --ghv2-muted: var(--muted);

  --stany-bg: var(--bg);
  --stany-bg-elev: var(--bg-elev);
  --stany-card: var(--card);
  --stany-text: var(--text);
  --stany-text-strong: var(--text-strong);
  --stany-muted: var(--muted);
  --stany-accent: var(--accent);
  --stany-accent-soft: var(--accent-soft);
  --stany-border: var(--border);
  --stany-shadow: var(--shadow);
  --stany-success: var(--success);
  --stany-warning: var(--warning);
  --stany-danger: var(--danger);

  --tblr-primary: #0969da;
  --tblr-primary-rgb: 9, 105, 218;
  --tblr-border-color: #d0d7de;
  --tblr-body-bg: #f6f8fa;
  --tblr-body-color: #24292f;
  --tblr-bg-surface: #ffffff;
  --tblr-bg-subtle: #f6f8fa;
}

/* ---------- Base ---------- */
html { color-scheme: inherit; }
body,
body.layout-fluid,
.page,
.page-wrapper {
  font-family: Inter, system-ui, -apple-system, Segoe UI, Roboto, sans-serif !important;
  color: var(--text) !important;
  background-color: var(--bg) !important;
  background-image: none !important;
}
body.home-index {
  font-family: Inter, system-ui, -apple-system, Segoe UI, Roboto, sans-serif !important;
  color: var(--text) !important;
  background-color: var(--bg) !important;
}

/* ---------- Navbar ---------- */
header.navbar,
.home-index .navbar,
.navbar.navbar-expand-md {
  background: var(--stany-nav) !important;
  border-bottom: 1px solid var(--stany-nav-border) !important;
  box-shadow: none !important;
  backdrop-filter: blur(12px) !important;
}
header.navbar .brand,
header.navbar .navbar-brand,
header.navbar .nav-link,
header.navbar .nav-link-title,
header.navbar .tools-btn,
header.navbar .user-dropdown-btn,
.home-index .navbar .brand,
.home-index .navbar .nav-link,
.home-index .navbar .nav-link-title {
  color: var(--stany-nav-text) !important;
}
header.navbar .nav-link:hover,
header.navbar .nav-link.active,
header.navbar .tools-btn:hover,
header.navbar .tools-btn.active {
  color: var(--stany-nav-hover-text) !important;
  background: var(--stany-nav-hover) !important;
}
header.navbar .navbar-toggler {
  border-color: var(--stany-nav-btn-border) !important;
  color: var(--stany-nav-text) !important;
}
header.navbar .dropdown-menu,
header.navbar .tools-panel,
header.navbar .user-dropdown,
header.navbar .notif-panel {
  background: var(--card) !important;
  border: 1px solid var(--border) !important;
  box-shadow: var(--shadow) !important;
  color: var(--text) !important;
}
header.navbar .dropdown-item,
header.navbar .user-dropdown-item,
header.navbar .tools-panel a {
  color: var(--text) !important;
}
header.navbar .dropdown-item:hover,
header.navbar .user-dropdown-item:hover {
  background: var(--accent-soft) !important;
  color: var(--accent) !important;
}
.gh-search {
  border: 1px solid var(--stany-nav-btn-border) !important;
  background: var(--stany-nav-btn-bg) !important;
}
.gh-search-input,
.gh-search-input::placeholder,
.gh-search i,
.gh-search-hint {
  color: var(--stany-nav-text) !important;
}
.stany-theme-toggle {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 34px;
  height: 34px;
  margin: 0 4px;
  padding: 0;
  border-radius: 8px;
  border: 1px solid var(--stany-nav-btn-border) !important;
  background: var(--stany-nav-btn-bg) !important;
  color: var(--stany-nav-text) !important;
  cursor: pointer;
}
.stany-theme-toggle:hover {
  background: var(--stany-nav-hover) !important;
  color: var(--stany-nav-hover-text) !important;
}
.stany-theme-toggle .icon-moon { display: none; }
html[data-theme="dark"] .stany-theme-toggle .icon-sun { display: none; }
html[data-theme="dark"] .stany-theme-toggle .icon-moon { display: inline; }
.notif-btn {
  background: var(--stany-nav-btn-bg) !important;
  border-color: var(--stany-nav-btn-border) !important;
  color: var(--stany-nav-text) !important;
}

/* ---------- Surfaces / typography / controls ---------- */
.card,
.feature-card,
.about-card,
.donor-card,
.donate-wrapper,
.donors-section,
.hero-shell,
.distributor-card,
.stany-card,
.login-container .card {
  background: var(--card) !important;
  border: 1px solid var(--border) !important;
  color: var(--text) !important;
  box-shadow: var(--shadow) !important;
}
.card-header,
.card-footer,
.hero-shell-header {
  background: var(--bg-elev) !important;
  border-color: var(--border) !important;
  color: var(--muted) !important;
}
h1, h2, h3,
.section-title,
.section-heading,
.page-title,
.hero-title,
.feature-title,
.donate-title,
.about-card-title {
  color: var(--text-strong) !important;
}
.section-subtitle,
.text-muted,
.muted,
.hint,
.small,
.lead,
.feature-text,
.donate-sub,
.donate-text {
  color: var(--muted) !important;
}
a:not(.btn):not(.nav-link):not(.dropdown-item):not(.btn-hero):not(.navbar-brand):not(.distributor-wa-btn):not(.dist-banner-link):not(.repo-page-tab):not(.community-country-chip) {
  color: var(--accent);
}
.btn-primary,
.btn.btn-primary,
.btn-hero-primary,
.btn-big-primary,
.btn.primary,
a.btn-primary {
  background: var(--accent-strong) !important;
  border-color: transparent !important;
  color: #fff !important;
}
.btn-secondary,
.btn.secondary,
.btn-hero-secondary,
.btn-outline {
  background: var(--card) !important;
  border: 1px solid var(--border) !important;
  color: var(--text-strong) !important;
}
.form-control,
.form-select,
input[type=text],
input[type=email],
input[type=password],
input[type=number],
input[type=search],
select,
textarea {
  border: 1px solid var(--border) !important;
  background: var(--card) !important;
  color: var(--text) !important;
}
.table thead th,
th {
  background: var(--bg-elev) !important;
  color: var(--text-strong) !important;
  border-color: var(--border) !important;
}
td {
  border-color: var(--border) !important;
  color: var(--text);
}
code {
  background: var(--code-bg) !important;
  color: var(--code-fg) !important;
}
footer,
.footer,
.site-footer,
.footer-inner {
  color: var(--muted) !important;
  border-color: var(--border) !important;
  background: transparent !important;
}



/* ========== Absolute theme enforcement (last layer) ========== */
html[data-theme="dark"],
html[data-theme="light"] {
  /* noop marker for specificity */
}

header.navbar,
.navbar.navbar-expand-md,
.navbar.navbar-dark {
  background: var(--stany-nav) !important;
  border-bottom-color: var(--stany-nav-border) !important;
}
header.navbar .brand,
header.navbar .navbar-brand,
header.navbar .nav-link,
header.navbar .nav-link-title,
header.navbar .tools-btn,
header.navbar .user-dropdown-btn,
header.navbar .navbar-toggler {
  color: var(--stany-nav-text) !important;
}
header.navbar #navbar-menu.show {
  background: var(--stany-nav) !important;
  border-color: var(--border) !important;
}
header.navbar .navbar-toggler-icon .toggler-line {
  background-color: var(--stany-nav-text) !important;
}
.page,
.page-wrapper,
.page-body,
.container-xl.page-body {
  background: transparent !important;
  color: var(--text) !important;
}
.card,
.card-sm,
.card-md,
.feature-card,
.about-card,
.donor-card,
.donate-wrapper,
.donors-section,
.distributor-card,
.login-card,
.auth-card,
.rs-card,
.stany-card,
.modal-content,
.list-group-item,
.accordion-item,
.dropdown-menu,
.tools-panel,
.user-dropdown,
.notif-panel {
  background: var(--card) !important;
  border-color: var(--border) !important;
  color: var(--text) !important;
}
.table,
.table > :not(caption) > * > * {
  background: transparent !important;
  color: var(--text) !important;
  border-color: var(--border) !important;
}
.bg-white,
.bg-light,
.bg-body,
.bg-body-tertiary,
.bg-surface {
  background-color: var(--card) !important;
  color: var(--text) !important;
}
.text-dark,
.text-body {
  color: var(--text) !important;
}
.text-muted,
.text-secondary {
  color: var(--muted) !important;
}
.border,
.border-top,
.border-bottom,
.border-start,
.border-end {
  border-color: var(--border) !important;
}
/* Home sections that used light gradients */
.home-index .features-section,
.home-index .about-section,
.home-index .donate-section,
.home-index .map-section,
.home-index .slideshow-section,
.home-index .access-section,
.home-index .distributors-section {
  background: var(--bg) !important;
  color: var(--text) !important;
}
.home-index .feature-card,
.home-index .about-card,
.home-index .donor-card,
.home-index .donate-wrapper,
.home-index .access-card {
  background: var(--card) !important;
  border-color: var(--border) !important;
  color: var(--text) !important;
}
.home-index .hero-section {
  background: var(--bg) !important;
  color: var(--text) !important;
}
.home-index .hero-section .hero-title {
  color: var(--text-strong) !important;
}
.home-index .hero-section .hero-subtitle {
  color: var(--text) !important;
}
.home-index .hero-section .hero-pill {
  color: var(--muted) !important;
  background: var(--accent-soft) !important;
  border-color: var(--border) !important;
}
footer,
.footer,
.site-footer,
.site-footer-nav,
.home-index .site-footer-nav {
  background: var(--bg) !important;
  color: var(--muted) !important;
  border-color: var(--border) !important;
}
.rs-wrap,
.rs-hero,
.rs-section {
  background: var(--bg) !important;
  color: var(--text) !important;
}
.rs-card,
.rs-panel {
  background: var(--card) !important;
  border-color: var(--border) !important;
  color: var(--text) !important;
}

/* Portal repo chrome — always follow active theme */
.repo-tabs-shell {
  display: none !important;
}
.repo-page-nav-shell,
.home-index .repo-page-nav-shell {
  background: var(--bg-glass) !important;
  border-bottom-color: var(--border-muted) !important;
  color: var(--text) !important;
}
.repo-meta-card,
.repo-aside-card,
.workspace-panel,
.repo-callout,
.home-index .hero-shell,
.home-index .readme-panel {
  background: var(--card) !important;
  border-color: var(--border) !important;
  color: var(--text) !important;
  box-shadow: var(--shadow) !important;
}
.repo-meta-label {
  color: var(--muted) !important;
}
.repo-meta-value,
.repo-meta-sub {
  color: var(--text-strong) !important;
}
.repo-tab,
.repo-page-tab {
  color: var(--muted) !important;
}
.repo-tab:hover,
.repo-page-tab:hover,
.repo-tab.is-current,
.repo-page-tab.is-current {
  color: var(--text-strong) !important;
}
.home-index .hero-shell-header,
.home-index .readme-panel-header {
  background: var(--bg-elev) !important;
  border-color: var(--border) !important;
  color: var(--muted) !important;
}
