/* Paletas de tema compartidas: claro, oscuro y cielo nocturno.
   Tokens principales:
   - --color-*     : textos base.
   - --surface-*   : fondos/bordes/shadows de cards y paneles.
   - --panel-*, --table-* : sombras y tablas.
   - --input-*     : campos de formulario.
   - --btn-*       : botones primario/secundario.
   - --alert-*, --status-* : estados (success/warning/info/error).
   - --badge-*, --tooltip-*, --overlay-backdrop.
   - --chart-*     : canvas carta astral.
   - --login-*     : página de login/reset.
   Adaptar cualquier nuevo color a estos tokens para mantener coherencia. */
:root,
:root[data-theme="light"] {
  color-scheme: light;
  --theme-name: light;
  --color-body-bg: radial-gradient(circle at top left, rgba(58, 122, 254, 0.12), transparent 45%), #f5f6fb;
  --body-bg-solid: #f5f6fb;
  --color-text-primary: #1f2433;
  --text-muted: #5b6479;
  --text-secondary: #2c3040;
  --surface-default: #ffffff;
  --surface-border: rgba(24, 34, 67, 0.08);
  --surface-shadow: 0 4px 8px rgba(22, 32, 72, 0.12);
  --surface-soft: #ffffff;
  --surface-soft-border: rgba(24, 34, 67, 0.22);
  --surface-soft-shadow: 0 6px 14px rgba(22, 32, 72, 0.14);
  --surface-subtle: rgba(58, 122, 254, 0.06);
  --panel-heading-color: #1f2433;
  --panel-heading-hover-bg: rgba(120, 170, 255, 0.32);
  --panel-heading-hover-border: rgba(90, 140, 255, 0.45);
  --panel-shadow: 0 8px 18px rgba(22, 32, 72, 0.15);
  --input-border: rgba(24, 34, 67, 0.16);
  --input-bg: #ffffff;
  --input-text: #1f2433;
  --input-focus: #3a7afe;
  --input-disabled-bg: #eceff5;
  --input-disabled-text: rgba(91, 100, 121, 0.7);
  --small-btn-bg: rgba(58, 122, 254, 0.08);
  --small-btn-border: rgba(58, 122, 254, 0.18);
  --small-btn-hover: rgba(58, 122, 254, 0.12);
  --action-btn-bg: rgba(58, 122, 254, 0.08);
  --action-btn-border: rgba(58, 122, 254, 0.14);
  --bulk-textarea-bg: #ffffff;
  --bulk-textarea-border: rgba(24, 34, 67, 0.16);
  --primary-gradient: #ff5a5f;
  --primary-gradient-start: #ff5a5f;
  --primary-gradient-end: #ff5a5f;
  --primary-shadow: 0 12px 24px rgba(255, 105, 95, 0.28);
  --console-bg: rgba(248, 250, 255, 0.9);
  --console-border: rgba(24, 34, 67, 0.12);
  --console-text: #1f2433;
  --table-stripe: rgba(233, 238, 255, 0.5);
  --table-border: rgba(24, 34, 67, 0.12);
  --table-header-bg: rgba(255, 255, 255, 0.85);
  --table-header-text: #1f2433;
  --table-row-odd-bg: rgba(233, 238, 255, 0.3);
  --mansion-row-hover-bg: rgba(255, 216, 128, 0.55);
  --mansion-row-hover-text: #1f1f1f;
  --mansion-row-border: rgba(240, 140, 0, 0.55);
  --mansion-row-filter-bg: rgba(80, 132, 255, 0.26);
  --mansion-row-filter-hover-bg: rgba(60, 120, 255, 0.35);
  --mansion-row-filter-text: #13204a;
  --mansion-row-filter-hover-text: #0d152e;
  --mansion-row-filter-border: rgba(50, 110, 255, 0.55);
  --dignity-row-bg: rgba(255, 240, 179, 0.45);
  --dignity-row-odd-bg: rgba(255, 236, 179, 0.65);
  --dignity-text-color: #2d2f36;
  --floating-panel-bg: rgba(255, 255, 255, 0.95);
  --floating-panel-border: #c0ccef;
  --floating-panel-shadow: 0 10px 28px rgba(10, 14, 40, 0.12);
  --chart-border: #d0d0d0;
  --chart-background: #ffffff;
  --chart-canvas: #ffffff;
  --chart-shadow: 0 4px 16px rgba(27, 32, 50, 0.12);
  --planetary-hours-toggle-active-bg: #f2a14a;
  --planetary-hours-toggle-active-border: #e3812f;
  --planetary-hours-toggle-active-text: #2f1600;
  --planetary-hours-toggle-active-shadow: rgba(227, 129, 47, 0.35);
  --positions-lot-symbol: #0b7285;
  --btn-primary-bg: #ff5a5f;
  --btn-primary-text: #ffffff;
  --btn-primary-border: transparent;
  --btn-secondary-bg: rgba(58, 122, 254, 0.08);
  --btn-secondary-text: #1f2433;
  --btn-secondary-border: rgba(24, 34, 67, 0.14);
  --badge-bg: rgba(58, 122, 254, 0.12);
  --badge-text: #1f2433;
  --tooltip-bg: rgba(255, 255, 255, 0.98);
  --tooltip-border: rgba(24, 34, 67, 0.16);
  --tooltip-text: #1f2433;
  --overlay-backdrop: rgba(10, 12, 20, 0.35);
  --save-card-metadata-bg: rgba(58, 122, 254, 0.08);
  --alert-success-bg: rgba(15, 157, 88, 0.1);
  --alert-success-border: rgba(15, 157, 88, 0.2);
  --alert-success-text: #0f9d58;
  --alert-warning-bg: rgba(250, 204, 21, 0.16);
  --alert-warning-border: rgba(250, 204, 21, 0.28);
  --alert-warning-text: #a06000;
  --alert-info-bg: rgba(58, 122, 254, 0.12);
  --alert-info-border: rgba(58, 122, 254, 0.24);
  --alert-info-text: #1f3a8a;
  --alert-error-bg: rgba(220, 38, 38, 0.12);
  --alert-error-border: rgba(220, 38, 38, 0.22);
  --alert-error-text: #dc2626;
  --status-success: #0f9d58;
  --status-error: #dc2626;
  --status-warning: #a06000;
  --status-info: #3a7afe;
  --success-indicator-color: #0f9d58;
  --success-indicator-border: rgba(15, 157, 88, 0.35);
  --success-indicator-bg: rgba(15, 157, 88, 0.08);
  --success-indicator-shadow: rgba(15, 157, 88, 0.18);
  --success-indicator-text: #0f172a;
  --password-rule-color: #d14343;
  --password-rule-met-color: #0b9f6b;
  --primary-accent: #3a7afe;
  --secondary-accent: #5b6479;
  --accent-strong: #3a7afe;
  --warning-accent: #ff5a5f;
  --error-accent: #f43f5e;
  --success-accent: #16a34a;
  /* Triplicities */
  --triplicity-fire-accent: rgba(255, 136, 102, 0.32);
  --triplicity-air-accent: rgba(255, 236, 179, 0.55);
  --triplicity-water-accent: rgba(80, 140, 255, 0.32);
  --triplicity-earth-accent: rgba(126, 185, 102, 0.32);
  /* Footer */
  --footer-bg: var(--surface-soft);
  --footer-border: var(--surface-border);
  --footer-text: var(--color-text-primary);
  --footer-muted: rgba(31, 31, 31, 0.7);
  --footer-link: var(--color-text-primary);
  --footer-link-hover: rgba(31, 31, 31, 0.85);
  --accent-strong: #f44e4e;
  /* Login */
  --login-bg-primary: #f5f6fb;
  --login-bg-secondary: #e9ecf6;
  --login-bg-card: rgba(255, 255, 255, 0.95);
  --login-border-glow: rgba(78, 141, 244, 0.35);
  --login-accent: #3a7afe;
  --login-accent-soft: rgba(58, 122, 254, 0.15);
  --login-accent-strong: #1f2433;
  --login-text-primary: #1f2433;
  --login-text-muted: rgba(31, 36, 51, 0.65);
  --login-error: #dc2626;
  --login-success: #0f9d58;
  --login-shadow-xl: 0 18px 36px rgba(10, 14, 40, 0.18);
  --login-shadow-soft: 0 12px 24px rgba(10, 14, 40, 0.12);
  /* Location suggestions */
  --location-suggestion-border: rgba(148, 163, 184, 0.4);
  --location-suggestion-primary: #0f172a;
  --location-suggestion-secondary: #64748b;
  --location-suggestion-hover-bg: rgba(226, 232, 240, 0.6);
  --location-suggestion-hover-text: #0f172a;
}

:root[data-theme="dark"] {
  color-scheme: dark;
  --theme-name: dark;
  --color-body-bg: #151821;
  --body-bg-solid: #151821;
  --color-text-primary: #e7ebf8;
  --text-muted: #94a3b8;
  --text-secondary: #d1d6e5;
  --surface-default: #1f2230;
  --surface-border: rgba(60, 68, 90, 0.3);
  --surface-shadow: 0 6px 14px rgba(0, 0, 0, 0.45);
  --surface-soft: #1b1e29;
  --surface-soft-border: rgba(82, 94, 126, 0.4);
  --surface-soft-shadow: 0 6px 14px rgba(0, 0, 0, 0.45);
  --surface-subtle: rgba(139, 155, 255, 0.06);
  --panel-heading-color: #e7ebf8;
  --panel-heading-hover-bg: rgba(139, 155, 255, 0.14);
  --panel-heading-hover-border: rgba(139, 155, 255, 0.3);
  --panel-shadow: 0 10px 22px rgba(0, 0, 0, 0.45);
  --input-border: rgba(170, 186, 210, 0.5);
  --input-bg: #242b3d;
  --input-text: #e7ebf8;
  --input-focus: #8b9bff;
  --input-disabled-bg: #252a3a;
  --input-disabled-text: #687089;
  --small-btn-bg: rgba(139, 155, 255, 0.12);
  --small-btn-border: rgba(139, 155, 255, 0.3);
  --small-btn-hover: rgba(139, 155, 255, 0.2);
  --action-btn-bg: rgba(139, 155, 255, 0.12);
  --action-btn-border: rgba(139, 155, 255, 0.26);
  --bulk-textarea-bg: #1f2230;
  --bulk-textarea-border: rgba(82, 94, 126, 0.35);
  --primary-gradient: linear-gradient(135deg, #5a6fff, #8b9bff);
  --primary-gradient-start: #5a6fff;
  --primary-gradient-end: #8b9bff;
  --primary-shadow: 0 14px 30px rgba(0, 0, 0, 0.45);
  --console-bg: rgba(31, 34, 48, 0.9);
  --console-border: rgba(82, 94, 126, 0.35);
  --console-text: #e7ebf8;
  --table-stripe: rgba(35, 43, 64, 0.55);
  --table-border: rgba(82, 94, 126, 0.35);
  --table-header-bg: rgba(31, 34, 48, 0.85);
  --table-header-text: #e7ebf8;
  --table-row-odd-bg: rgba(35, 43, 64, 0.28);
  --mansion-row-hover-bg: rgba(145, 180, 255, 0.16);
  --mansion-row-hover-text: #e7ebf8;
  --mansion-row-border: rgba(139, 155, 255, 0.35);
  --mansion-row-filter-bg: rgba(139, 155, 255, 0.16);
  --mansion-row-filter-hover-bg: rgba(139, 155, 255, 0.24);
  --mansion-row-filter-text: #dfe5ff;
  --mansion-row-filter-hover-text: #ffffff;
  --mansion-row-filter-border: rgba(139, 155, 255, 0.45);
  --dignity-row-bg: rgba(43, 52, 77, 0.6);
  --dignity-row-odd-bg: rgba(47, 56, 84, 0.7);
  --dignity-text-color: #f0f4ff;
  --floating-panel-bg: rgba(31, 34, 48, 0.95);
  --floating-panel-border: rgba(82, 94, 126, 0.4);
  --floating-panel-shadow: 0 12px 28px rgba(0, 0, 0, 0.5);
  --chart-border: rgba(82, 94, 126, 0.35);
  --chart-background: #1b1f2d;
  --chart-canvas: #1b1f2d;
  --chart-shadow: 0 6px 18px rgba(0, 0, 0, 0.45);
  --planetary-hours-toggle-active-bg: #f2a14a;
  --planetary-hours-toggle-active-border: #e3812f;
  --planetary-hours-toggle-active-text: #2f1600;
  --planetary-hours-toggle-active-shadow: rgba(242, 161, 74, 0.35);
  --positions-lot-symbol: #58c2ff;
  --btn-primary-bg: linear-gradient(135deg, #f2a14a, #d6842d); 
  --btn-primary-text: #ffffff;
  --btn-primary-border: transparent;
  --btn-secondary-bg: rgba(31, 34, 48, 0.85);
  --btn-secondary-text: #e7ebf8;
  --btn-secondary-border: rgba(82, 94, 126, 0.35);
  --badge-bg: rgba(139, 155, 255, 0.2);
  --badge-text: #e7ebf8;
  --tooltip-bg: rgba(31, 34, 48, 0.95);
  --tooltip-border: rgba(82, 94, 126, 0.35);
  --tooltip-text: #e7ebf8;
  --overlay-backdrop: rgba(5, 7, 15, 0.6);
  --save-card-metadata-bg: rgba(139, 155, 255, 0.14);
  --alert-success-bg: rgba(52, 211, 153, 0.12);
  --alert-success-border: rgba(52, 211, 153, 0.42);
  --alert-success-text: #34d399;
  --alert-warning-bg: rgba(234, 179, 8, 0.12);
  --alert-warning-border: rgba(234, 179, 8, 0.4);
  --alert-warning-text: #fcd34d;
  --alert-info-bg: rgba(139, 155, 255, 0.14);
  --alert-info-border: rgba(139, 155, 255, 0.36);
  --alert-info-text: #dfe5ff;
  --alert-error-bg: rgba(248, 113, 113, 0.12);
  --alert-error-border: rgba(248, 113, 113, 0.38);
  --alert-error-text: #f87171;
  --status-success: #34d399;
  --status-error: #f87171;
  --status-warning: #fcd34d;
  --status-info: #8b9bff;
  --success-indicator-color: #9bffc9;
  --success-indicator-border: rgba(155, 255, 201, 0.35);
  --success-indicator-bg: rgba(155, 255, 201, 0.08);
  --success-indicator-shadow: rgba(155, 255, 201, 0.25);
  --success-indicator-text: #ffffff;
  --password-rule-color: #ff7a8f;
  --password-rule-met-color: #b8ffe2;
  --primary-accent: #8b9bff;
  --secondary-accent: #94a3b8;
  --warning-accent: #fcd34d;
  --error-accent: #f87171;
  --success-accent: #34d399;
  /* Triplicities */
  --triplicity-fire-accent: rgba(255, 136, 102, 0.24);
  --triplicity-air-accent: rgba(250, 214, 120, 0.3);
  --triplicity-water-accent: rgba(112, 162, 255, 0.26);
  --triplicity-earth-accent: rgba(110, 190, 140, 0.28);
  /* Footer */
  --footer-bg: #1f2230;
  --footer-border: #2c3142;
  --footer-text: #e7ebf8;
  --footer-muted: rgba(231, 235, 248, 0.7);
  --footer-link: #e7ebf8;
  --footer-link-hover: rgba(255, 255, 255, 0.92);
  --accent-strong: #8b9bff;
  /* Login */
  --login-bg-primary: #151821;
  --login-bg-secondary: #1f2230;
  --login-bg-card: rgba(31, 34, 48, 0.9);
  --login-border-glow: rgba(139, 155, 255, 0.35);
  --login-accent: #8b9bff;
  --login-accent-soft: rgba(139, 155, 255, 0.2);
  --login-accent-strong: #dfe5ff;
  --login-text-primary: #e7ebf8;
  --login-text-muted: rgba(231, 235, 248, 0.78);
  --login-error: #f87171;
  --login-success: #34d399;
  --login-shadow-xl: 0 22px 42px rgba(0, 0, 0, 0.55);
  --login-shadow-soft: 0 12px 28px rgba(0, 0, 0, 0.45);
  /* Location suggestions */
  --location-suggestion-border: rgba(82, 94, 126, 0.65);
  --location-suggestion-primary: #e7ebf8;
  --location-suggestion-secondary: #9ca9c8;
  --location-suggestion-hover-bg: rgba(45, 58, 92, 0.65);
  --location-suggestion-hover-text: #f8fbff;
}

:root[data-theme="night"] {
  color-scheme: dark;
  --theme-name: night;
  --color-body-bg: #0f172a;
  --body-bg-solid: #0f172a;
  --color-text-primary: #e2e8f0;
  --text-muted: #94a3b8;
  --text-secondary: #d8dbff;
  --surface-default: #111c33;
  --surface-border: rgba(148, 163, 184, 0.18);
  --surface-shadow: 0 6px 14px rgba(2, 6, 23, 0.55);
  --surface-soft: rgba(17, 13, 40, 0.5);
  --surface-soft-border: rgba(148, 163, 184, 0.35);
  --surface-soft-shadow: 0 8px 18px rgba(2, 6, 23, 0.55);
  --surface-subtle: rgba(126, 102, 255, 0.08);
  --panel-heading-color: #e2e8f0;
  --panel-heading-hover-bg: rgba(148, 163, 184, 0.18);
  --panel-heading-hover-border: rgba(148, 163, 184, 0.4);
  --panel-shadow: 0 12px 24px rgba(2, 6, 23, 0.6);
  --input-border: rgba(148, 163, 184, 0.35);
  --input-bg: #111a2c;
  --input-text: #e2e8f0;
  --input-focus: #7e66ff;
  --input-disabled-bg: rgba(15, 11, 32, 0.65);
  --input-disabled-text: rgba(226, 232, 240, 0.7);
  --small-btn-bg: rgba(148, 163, 184, 0.16);
  --small-btn-border: rgba(148, 163, 184, 0.38);
  --small-btn-hover: rgba(148, 163, 184, 0.24);
  --action-btn-bg: rgba(148, 163, 184, 0.16);
  --action-btn-border: rgba(148, 163, 184, 0.38);
  --bulk-textarea-bg: rgba(15, 11, 32, 0.8);
  --bulk-textarea-border: rgba(148, 163, 184, 0.35);
  --primary-gradient: linear-gradient(145deg, #0f172a, #1c2945);
  --primary-gradient-start: #0f172a;
  --primary-gradient-end: #1c2945;
  --primary-shadow: 0 14px 30px rgba(8, 4, 24, 0.55);
  --console-bg: rgba(17, 13, 40, 0.9);
  --console-border: rgba(148, 163, 184, 0.35);
  --console-text: #e2e8f0;
  --table-stripe: rgba(17, 13, 40, 0.6);
  --table-border: rgba(148, 163, 184, 0.35);
  --table-header-bg: rgba(17, 13, 40, 0.88);
  --table-header-text: #e2e8f0;
  --table-row-odd-bg: rgba(17, 13, 40, 0.38);
  --mansion-row-hover-bg: rgba(148, 163, 184, 0.18);
  --mansion-row-hover-text: #f5f5ff;
  --mansion-row-border: rgba(148, 163, 184, 0.35);
  --mansion-row-filter-bg: rgba(148, 163, 184, 0.18);
  --mansion-row-filter-hover-bg: rgba(148, 163, 184, 0.26);
  --mansion-row-filter-text: #f5f5ff;
  --mansion-row-filter-hover-text: #ffffff;
  --mansion-row-filter-border: rgba(148, 163, 184, 0.42);
  --dignity-row-bg: rgba(26, 21, 60, 0.7);
  --dignity-row-odd-bg: rgba(30, 26, 68, 0.8);
  --dignity-text-color: #f5f5ff;
  --floating-panel-bg: rgba(17, 13, 40, 0.9);
  --floating-panel-border: rgba(148, 163, 184, 0.35);
  --floating-panel-shadow: 0 12px 26px rgba(2, 6, 23, 0.65);
  --chart-border: color-mix(in srgb, var(--surface-border) 30%, var(--accent-strong) 15%);
  --chart-background: linear-gradient(145deg, color-mix(in srgb, var(--surface-default) 92%, transparent), color-mix(in srgb, var(--surface-soft) 88%, transparent)),
    radial-gradient(160% 160% at 25% 25%, color-mix(in srgb, var(--accent-strong) 8%, transparent), transparent 55%);
  --chart-canvas: #0f172a;
  --chart-shadow: none;
  --planetary-hours-toggle-active-bg: #f2a14a;
  --planetary-hours-toggle-active-border: #e3812f;
  --planetary-hours-toggle-active-text: #2f1600;
  --planetary-hours-toggle-active-shadow: rgba(242, 161, 74, 0.35);
  --positions-lot-symbol: #7ef5cf;
  --btn-primary-bg: linear-gradient(135deg, #0f172a, #1c2945);
  --btn-primary-text: #f5f5ff;
  --btn-primary-border: transparent;
  --btn-secondary-bg: rgba(17, 13, 40, 0.85);
  --btn-secondary-text: #f5f5ff;
  --btn-secondary-border: rgba(148, 163, 184, 0.35);
  --badge-bg: rgba(148, 163, 184, 0.16);
  --badge-text: #f5f5ff;
  --tooltip-bg: rgba(17, 13, 40, 0.92);
  --tooltip-border: rgba(148, 163, 184, 0.35);
  --tooltip-text: #f5f5ff;
  --overlay-backdrop: rgba(8, 4, 24, 0.65);
  --save-card-metadata-bg: rgba(126, 102, 255, 0.16);
  --alert-success-bg: rgba(126, 245, 207, 0.12);
  --alert-success-border: rgba(126, 245, 207, 0.38);
  --alert-success-text: #7ef5cf;
  --alert-warning-bg: rgba(255, 214, 170, 0.12);
  --alert-warning-border: rgba(255, 214, 170, 0.42);
  --alert-warning-text: #ffdd57;
  --alert-info-bg: rgba(126, 180, 255, 0.14);
  --alert-info-border: rgba(126, 180, 255, 0.4);
  --alert-info-text: #dfe5ff;
  --alert-error-bg: rgba(255, 109, 145, 0.14);
  --alert-error-border: rgba(255, 109, 145, 0.42);
  --alert-error-text: #ff6d91;
  --status-success: #7ef5cf;
  --status-error: #ff6d91;
  --status-warning: #ffdd57;
  --status-info: #94a3b8;
  --success-indicator-color: #9bffc9;
  --success-indicator-border: rgba(155, 255, 201, 0.45);
  --success-indicator-bg: rgba(155, 255, 201, 0.1);
  --success-indicator-shadow: rgba(155, 255, 201, 0.32);
  --success-indicator-text: #ffffff;
  --password-rule-color: #ff88a5;
  --password-rule-met-color: #b9ffe8;
  --primary-accent: #94a3b8;
  --secondary-accent: #94a3b8;
  --warning-accent: #ffdd57;
  --error-accent: #ff6d91;
  --success-accent: #7ef5cf;
  /* Triplicities */
  --triplicity-fire-accent: rgba(255, 150, 120, 0.2);
  --triplicity-air-accent: rgba(255, 220, 150, 0.22);
  --triplicity-water-accent: rgba(140, 190, 255, 0.2);
  --triplicity-earth-accent: rgba(170, 225, 160, 0.22);
  /* Footer */
  --footer-bg: linear-gradient(170deg, color-mix(in srgb, var(--surface-default) 95%, transparent), color-mix(in srgb, var(--surface-soft) 92%, transparent) 70%, rgba(8, 10, 20, 0.9));
  --footer-border: rgba(148, 163, 184, 0.3);
  --footer-text: #f5f5ff;
  --footer-muted: rgba(245, 245, 255, 0.75);
  --footer-link: #f5f5ff;
  --footer-link-hover: #ffffff;
  --accent-strong: #94a3b8;
  /* Login */
  --login-bg-primary: #04020c;
  --login-bg-secondary: #110d28;
  --login-bg-card: rgba(17, 13, 40, 0.75);
  --login-border-glow: rgba(148, 163, 184, 0.35);
  --login-accent: #94a3b8;
  --login-accent-soft: rgba(148, 163, 184, 0.22);
  --login-accent-strong: #d8dee7;
  --login-text-primary: #f5f5ff;
  --login-text-muted: rgba(245, 245, 255, 0.72);
  --login-error: #ff6d91;
  --login-success: #7ef5cf;
  --login-shadow-xl: 0 24px 48px rgba(8, 4, 24, 0.65);
  --login-shadow-soft: 0 10px 30px rgba(10, 6, 30, 0.45);
  /* Location suggestions */
  --location-suggestion-border: rgba(94, 110, 148, 0.6);
  --location-suggestion-primary: #f5f5ff;
  --location-suggestion-secondary: #c0c8dd;
  --location-suggestion-hover-bg: rgba(34, 46, 78, 0.7);
  --location-suggestion-hover-text: #f5f5ff;
}
