/* Compatibilidad del tema de los buscadores: su selector histórico es body.theme-dark. */
body.theme-dark {
  --grafem-900: #302559;
  --grafem-700: #4A3A85;
  --grafem-600: #5B479B;
  --grafem-500: #7E68C6;
  --grafem-300: #A488E4;
  --grafem-200: #C7B5F0;
  --grafem-100: #E4DAFA;
  --grafem-50: #F6F3FD;
  --surface: #14102A;
  --surface-raised: #1E1838;
  --surface-sunken: #0E0B1F;
  --surface-tint: #2A2250;
  --ink: #F1EDFB;
  --ink-muted: #B4ACD0;
  --ink-brand: #C9B6F2;
  --line: #342C55;
  --line-strong: #7A70A3;
  --accent: var(--grafem-300);
  --accent-hover: #C3AEF0;
  --on-accent: #14102A;
  --link: #C3AEF0;
  --focus: #C3AEF0;
  --data-1: #C9B6F2;
  --data-2: #8B6FE0;
  --data-3: #5FC9B8;
  --data-4: #F0A274;
  --success: #5FD0A8;
  --warning: #F2B45A;
  --danger: #F2A49C;
  --shadow-sm: 0 1px 2px rgba(0,0,0,0.4);
  --shadow-md: 0 10px 30px rgba(0,0,0,0.45);
  --shadow-glow: 0 16px 48px rgba(164,136,228,0.30);
  color-scheme: dark;
}
/* grafem: capa de identidad sobre la interfaz existente. Sin cambios de flujo. */
:root, [data-theme="light"], [data-theme="dark"], body.theme-dark {
  --ly-naranja-lince: var(--accent);
  --ly-naranja-lince-rgb: 48, 37, 89;
  --ly-coral-iberico: var(--grafem-300);
  --ly-gradient-brand: var(--gradient-marca);
  --ly-gradient-brand-subtle: var(--surface-tint);
  --ly-navy-deep: var(--ink-brand);
  --ly-azul-medianoche: var(--ink-brand);
  --ly-font-headings: var(--font-display);
  --ly-font-body: var(--font-sans);
  --ly-bg-alabaster: var(--surface);
  --ly-alabastro: var(--surface);
  --ly-bg-card-light: var(--surface-raised);
  --ly-gris-arena: var(--surface-sunken);
  --page-bg: var(--surface);
  --section-bg: var(--surface-raised);
  --soft-bg: var(--surface-sunken);
  --panel-bg: var(--surface-raised);
  --panel-muted: var(--surface-sunken);
  --bg: var(--surface);
  --panel: var(--surface-raised);
  --panel-soft: var(--surface-sunken);
  --text: var(--ink);
  --muted: var(--ink-muted);
  --subtle: var(--ink-muted);
  --strong-line: var(--line-strong);
  --accent-strong: var(--link);
  --accent-button-hover: var(--accent-hover);
  --accent-soft: var(--surface-tint);
  --glass: var(--surface-raised);
  --glass-strong: var(--surface-raised);
  --glass-border: var(--line);
  --topbar-scrim: var(--surface);
  --table-head: var(--surface-sunken);
  --map-region: var(--grafem-100);
  --map-region-hover: var(--grafem-200);
  --map-region-selected: var(--grafem-600);
  --map-stroke: var(--surface-raised);
  --app-v2-bg: var(--surface);
  --app-v2-panel: var(--surface-raised);
  --app-v2-glass: var(--surface-raised);
  --app-v2-ink: var(--ink);
  --app-v2-muted: var(--ink-muted);
  --app-v2-line: var(--line);
  --app-v2-accent: var(--accent);
  --header-bg: var(--surface);
  --shadow-soft: var(--shadow-md);
  --shadow-tight: var(--shadow-sm);
}
body { font-family:var(--font-sans); }
body :is(button,input,select,textarea), body.liquid-ui { font-family:var(--font-sans); }
body :is(h1,h2,h3,h4,.brand,.brand__name), body.liquid-ui :is(h1,h2,h3,.brand) { font-family:var(--font-display); }
body.liquid-ui :is(small,dt,dd,.eyebrow) { font-family:var(--font-sans); }
body :is(.btn-primary,.primary-button,.auth-submit,.submit-button) { background:var(--accent); color:var(--on-accent); border-color:var(--accent); }
body :is(.btn-primary,.primary-button,.auth-submit,.submit-button):hover { background:var(--accent-hover); color:var(--on-accent); }
body :is(.logo-img,.mobile-nav-logo,.footer-brand-logo) { object-fit:contain; }
body .footer { background:var(--grafem-900); color:#f1edfb; }
body .footer :is(p,a,span,h2) { color:#f1edfb; }
body .hero-editorial { background:#302559; }
body .hero-editorial img { object-fit:cover; }
body .hero-editorial::after { background:none; }
body .hero-source-slip { background:var(--surface-raised); color:var(--ink); border-color:var(--line); }
body .hero-source-slip :is(strong,dd) { color:var(--ink); }
body .hero-source-slip :is(span,dt) { color:var(--ink-muted); }
body .hero-eyebrow { color:var(--ink-brand); }
body :is(a,button,input,textarea,select):focus-visible { outline:2px solid var(--focus); outline-offset:4px; }
body :is(input,textarea) { caret-color:var(--accent); }
body input::placeholder, body textarea::placeholder { color:var(--ink-muted); opacity:1; }
body ::selection { background:var(--grafem-200); color:var(--grafem-900); }
html { scrollbar-color:var(--grafem-300) var(--surface-sunken); }
body :is(table,.data-readout,.gf-readout) { font-variant-numeric:tabular-nums; }
body a { text-underline-offset:.2em; }
/* La cuenta conserva controles, selección de avatar y valores de perfil. */
body .lynx-avatar-svg { visibility:hidden; }
body :has(> .lynx-avatar-svg) { background:var(--surface-tint) url('/brand/img/grafem-favicon.svg') center/70% no-repeat; }
@media (prefers-reduced-motion:reduce) {
  html { scroll-behavior:auto; }
  *,*::before,*::after { animation-duration:.01ms !important; transition-duration:.01ms !important; animation-iteration-count:1 !important; }
}

body :is(.method-media,.product-media) { background:var(--surface-sunken); }
body :is(.method-media,.product-media) img { object-fit:contain; padding:24px; }
body .method-media img { aspect-ratio:4/3; }
body .product-media img { aspect-ratio:4/3; }
body .liquid-material-media img { object-fit:cover; padding:0; }
body img[src*="/assets/avatars/planets/"] { object-position:9999px 9999px; background:var(--surface-tint) url('/brand/img/esfera-lavanda.svg') center/contain no-repeat; }
body img[src*="/assets/avatars/planets/saturn"], body img[src*="/assets/avatars/planets/jupiter"] { background-image:url('/brand/img/planeta-anillo.svg'); }
body img[src*="/assets/avatars/planets/earth"], body img[src*="/assets/avatars/planets/neptune"] { background-image:url('/brand/img/esfera-cristal.svg'); }

/* La identidad anterior tenía selectores con ID dentro de :is(): el contraste
   de acciones requiere prioridad explícita sobre esos estilos heredados. */
body.liquid-ui :is(.btn-primary,.primary-button,.primary-action,.drawer-primary-action,.search-box button[type="submit"],.search-box #searchButton,.search-box #btnBuscar),
body.public-shell-page :is(.btn-primary,.primary-button), body :is(.auth-submit,.submit-button) {
 background:var(--accent) !important; color:var(--on-accent) !important; -webkit-text-fill-color:var(--on-accent) !important; border-color:var(--accent) !important;
}
body.liquid-ui :is(.btn-primary,.primary-button,.primary-action,.drawer-primary-action,.search-box button[type="submit"],.search-box #searchButton,.search-box #btnBuscar)::before { background:var(--gradient-marca); }
body.landing-page #hero-title { font-size:clamp(2.25rem,4vw,3.75rem); line-height:1.09; letter-spacing:-.03em; max-width:14ch; }
body.landing-page .hero-eyebrow { font-size:.875rem; line-height:1.6; text-transform:none; letter-spacing:0; }
body.landing-page .hero-editorial { width:100%; min-height:0; margin:0; aspect-ratio:4/3; border-radius:20px; }
body.landing-page .hero-editorial picture,body.landing-page .hero-editorial picture img { width:100%; height:100%; }
body.landing-page .hero-source-slip { background:var(--surface-raised);color:var(--ink);border:1px solid var(--line);border-radius:12px;box-shadow:var(--shadow-md);left:-20px;bottom:20px; }
body.landing-page .hero-source-slip > span,body.landing-page .hero-source-slip dt {color:var(--ink-muted);}
body.landing-page .hero-source-slip > strong,body.landing-page .hero-source-slip dd {color:var(--ink);}
body .mobile-nav-overlay { overflow:hidden; }
html { overflow-x:clip; }
:root,body.theme-dark { --liquid-accent:var(--accent); --liquid-accent-rgb:48,37,89; --auth-bg:var(--surface);--auth-panel:var(--surface-raised);--auth-text:var(--ink);--auth-muted:var(--ink-muted);--auth-line:var(--line);--auth-line-strong:var(--line-strong);--auth-accent:var(--accent);--auth-accent-hover:var(--accent-hover); }
@media(min-width:981px){body.landing-page .hero-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:64px;align-items:center;}}
@media(max-width:980px){body.landing-page .hero-source-slip{left:12px;bottom:12px;max-width:calc(100% - 24px);}body.landing-page #hero-title{max-width:19ch;}}

/* Colores primitivos también en body: evita ciclos de variables heredadas del login. */
html[data-theme="light"] body {
  --grafem-900: #302559;
  --grafem-700: #4A3A85;
  --grafem-600: #5B479B;
  --grafem-500: #7E68C6;
  --grafem-300: #A488E4;
  --grafem-200: #C7B5F0;
  --grafem-100: #E4DAFA;
  --grafem-50: #F6F3FD;
  --surface: #FBFAFE;
  --surface-raised: #FFFFFF;
  --surface-sunken: #F3EFFC;
  --surface-tint: #EEE8FB;
  --ink: #1B1533;
  --ink-muted: #5E5878;
  --ink-brand: #302559;
  --line: #E3DEF2;
  --line-strong: #8E84B3;
  --accent: var(--grafem-900);
  --accent-hover: var(--grafem-700);
  --on-accent: #FFFFFF;
  --link: #5B479B;
  --focus: #6A55B8;
  --data-1: #302559;
  --data-2: #7E68C6;
  --data-3: #1D7A6E;
  --data-4: #B5602E;
  --success: #1F7A5C;
  --warning: #9A5700;
  --danger: #B3261E;
  --shadow-sm: 0 1px 2px rgba(48,37,89,0.08);
  --shadow-md: 0 10px 30px rgba(48,37,89,0.12);
  --shadow-glow: 0 16px 48px rgba(164,136,228,0.45);
  color-scheme: light;
}
html[data-theme="dark"] body, html body.theme-dark {
  --grafem-900: #302559;
  --grafem-700: #4A3A85;
  --grafem-600: #5B479B;
  --grafem-500: #7E68C6;
  --grafem-300: #A488E4;
  --grafem-200: #C7B5F0;
  --grafem-100: #E4DAFA;
  --grafem-50: #F6F3FD;
  --surface: #14102A;
  --surface-raised: #1E1838;
  --surface-sunken: #0E0B1F;
  --surface-tint: #2A2250;
  --ink: #F1EDFB;
  --ink-muted: #B4ACD0;
  --ink-brand: #C9B6F2;
  --line: #342C55;
  --line-strong: #7A70A3;
  --accent: var(--grafem-300);
  --accent-hover: #C3AEF0;
  --on-accent: #14102A;
  --link: #C3AEF0;
  --focus: #C3AEF0;
  --data-1: #C9B6F2;
  --data-2: #8B6FE0;
  --data-3: #5FC9B8;
  --data-4: #F0A274;
  --success: #5FD0A8;
  --warning: #F2B45A;
  --danger: #F2A49C;
  --shadow-sm: 0 1px 2px rgba(0,0,0,0.4);
  --shadow-md: 0 10px 30px rgba(0,0,0,0.45);
  --shadow-glow: 0 16px 48px rgba(164,136,228,0.30);
  color-scheme: dark;
}

html[data-theme] body.login-page {
 --login-bg:var(--surface);--login-panel:var(--surface-raised);--login-ink:var(--ink);--login-muted:var(--ink-muted);--login-line:var(--line);--login-accent:var(--accent);
}
body.login-page .btn-submit { background:var(--accent) !important;color:var(--on-accent) !important;-webkit-text-fill-color:var(--on-accent) !important; }
body.login-page .btn-submit:hover { background:var(--accent-hover) !important; }
body.login-page :is(.login-title,.login-header h1) {color:var(--ink) !important;letter-spacing:-.03em;}
body.login-page .login-container {background:var(--surface-raised);color:var(--ink);}
body.login-page :is(.login-subtitle,.form-label,.register-link-container,.legal-links a) {color:var(--ink-muted);}
body.liquid-ui .brand-lockup .brand,body.liquid-ui .nav-shell .nav-button {color:var(--ink) !important;}
body.liquid-ui .topbar .nav-shell {background:var(--surface-raised);}
body.liquid-ui :is(.heor-intro h1,.tender-intro h1) {color:var(--ink);letter-spacing:-.03em;}
body.liquid-ui :is(.heor-control,.heor-control label,.heor-control span,.heor-field-label) {color:var(--ink-muted);}
body.public-shell-page .site-nav {background:var(--surface-sunken);}
body.public-shell-page .site-nav a {color:var(--ink);}
body.public-shell-page .header-shell {background:var(--surface-raised);}

html[data-theme="dark"] body.login-page .logo-container .logo-img {content:url('/brand/img/grafem-logo-dark.svg');filter:none;}
body img[src^="/brand/img/grafem-logo"] { filter:none !important; }
