:root {
    color-scheme: light;
    --admin-bg: #f3f6f9;
    --admin-surface: rgba(255, 255, 255, .92);
    --admin-surface-solid: #ffffff;
    --admin-text: #17212b;
    --admin-muted: #6f7d89;
    --admin-border: #dce4ea;
    --admin-primary: #2f729a;
    --admin-primary-strong: #245f82;
    --admin-danger: #b42318;
    --admin-shadow: 0 24px 70px rgba(27, 50, 68, .13);
    --admin-body-start: #f8fafc;
    --admin-body-end: #edf2f6;
    --admin-topbar-bg: rgba(255,255,255,.88);
    --admin-login-panel-bg: rgba(255,255,255,.84);
    --admin-control-bg: #ffffff;
    --admin-soft-bg: #f6f8fa;
    --admin-softer-bg: #f8fafb;
    --admin-hover-bg: #f9fbfc;
    --admin-menu-hover-bg: #f3f6f8;
    --admin-table-border: #e7edf1;
    --admin-table-border-soft: #eef2f5;
    --admin-heading-muted: #55636e;
    --admin-switch-off: #c9d2d9;
    --admin-login-mobile-bg: #ffffff;
    --admin-sheet-bg: rgba(255,255,255,.96);
    --admin-lead-color: #000000;
    --admin-lead-panel-bg: #edf6fd;
    --admin-lead-panel-border: #a7bfd3;
    --admin-mab-input-text: #000000;
    --admin-mab-input-background: #ffffff;
    --admin-mab-input-border: #aaaaaa;
    --admin-mab-input-placeholder: #777777;
    --admin-mab-input-hover-text: #000000;
    --admin-mab-input-hover-background: #e1f5fe;
    --admin-mab-input-hover-border: lightskyblue;
    --admin-mab-input-focus-text: #ffffff;
    --admin-mab-input-focus-background: #2f729a;
    --admin-mab-input-focus-border: #2f729a;
    --admin-mab-input-focus-placeholder: rgba(255, 255, 255, .75);
    --admin-mab-input-focus-shadow: rgba(2, 164, 241, .62) 0 0 5px 2px;
}

/* Iteración 198: capa semántica del motor de temas.
   Los temas definen roles visuales; los componentes dejan de depender de que
   todas las superficies compartan un mismo color. Claro y Oscuro conservan
   exactamente la paleta anterior en esta primera fase. */
:root {
    --admin-theme-page-background: var(--admin-bg);
    --admin-theme-sheet-background: var(--admin-sheet-bg);
    --admin-theme-text-primary: var(--admin-text);
    --admin-theme-text-secondary: var(--admin-muted);
    --admin-theme-accent: var(--admin-primary);

    --admin-theme-panel-default-background: var(--admin-surface-solid);
    --admin-theme-panel-default-border: var(--admin-border);

    --admin-theme-query-panel-background: var(--admin-surface-solid);
    --admin-theme-query-panel-border: color-mix(in srgb, var(--admin-primary) 38%, var(--admin-border));
    --admin-theme-query-accent: var(--admin-primary);
    --admin-theme-query-heading-start: color-mix(in srgb, var(--admin-primary) 12%, var(--admin-surface-solid));
    --admin-theme-query-heading-mid: color-mix(in srgb, var(--admin-primary) 4%, var(--admin-surface-solid));
    --admin-theme-query-heading-end: var(--admin-surface-solid);
    --admin-theme-query-heading-border: color-mix(in srgb, var(--admin-primary) 28%, var(--admin-border));
    --admin-theme-query-icon-background: color-mix(in srgb, var(--admin-primary) 8%, var(--admin-surface-solid));
    --admin-theme-query-icon-border: color-mix(in srgb, var(--admin-primary) 35%, var(--admin-border));

    --admin-theme-presentation-panel-background: var(--admin-surface-solid);
    --admin-theme-presentation-panel-border: color-mix(in srgb, var(--admin-primary) 38%, var(--admin-border));
    --admin-theme-presentation-accent: var(--admin-primary);
    --admin-theme-presentation-heading-start: color-mix(in srgb, var(--admin-primary) 12%, var(--admin-surface-solid));
    --admin-theme-presentation-heading-mid: color-mix(in srgb, var(--admin-primary) 4%, var(--admin-surface-solid));
    --admin-theme-presentation-heading-end: var(--admin-surface-solid);
    --admin-theme-presentation-heading-border: color-mix(in srgb, var(--admin-primary) 28%, var(--admin-border));
    --admin-theme-presentation-icon-background: color-mix(in srgb, var(--admin-primary) 8%, var(--admin-surface-solid));
    --admin-theme-presentation-icon-border: color-mix(in srgb, var(--admin-primary) 35%, var(--admin-border));
    --admin-theme-presentation-inner-background: var(--admin-softer-bg);
    --admin-theme-presentation-inner-border: var(--admin-border);

    --admin-theme-results-panel-background: var(--admin-surface-solid);
    --admin-theme-results-panel-border: var(--admin-border);
    --admin-theme-results-table-background: var(--admin-surface-solid);
}

/* Iteración 201: las paletas concretas viven en assets/js/admin-themes.js.
   Este archivo conserva únicamente los valores fallback del tema Claro y los roles
   semánticos consumidos por los componentes. Agregar un tema nuevo no requiere
   modificar CSS ni HTML. */
