/* 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).
   - --checkbox-*  : checkbox circular compartido por tema.
   - --badge-*, --tooltip-*, --overlay-backdrop.
   - --chart-*     : canvas carta astral.
   - --login-*     : página de login/reset.
   Adaptar cualquier nuevo color a estos tokens para mantener coherencia. */
/* Inter auto-alojada (subconjunto latino). Sustituye al @import a Google Fonts:
   sin origen externo, sin render-blocking encadenado y sin petición a terceros.
   Regenerar woff2 + estos @font-face con: node tools/fetch-inter-fonts.mjs */
@font-face {
  font-family: "Inter";
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("/fonts/inter/inter-latin.woff2") format("woff2");
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: "Inter";
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("/fonts/inter/inter-latin.woff2") format("woff2");
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: "Inter";
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("/fonts/inter/inter-latin.woff2") format("woff2");
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: "Inter";
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url("/fonts/inter/inter-latin.woff2") format("woff2");
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

: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;
  --positions-aspect-highlight-bg: rgba(242, 161, 74, 0.22);
  --positions-aspect-highlight-border: rgba(227, 129, 47, 0.55);
  --positions-aspect-highlight-shadow: rgba(227, 129, 47, 0.22);
  --aspect-matrix-neutral-color: #5f6b82;
  --aspect-matrix-neutral-highlight-color: #4f5a70;
  --aspect-matrix-partile-bg: rgba(255, 176, 59, 0.32);
  --aspect-matrix-partile-border: rgba(229, 129, 16, 0.6);
  --aspect-matrix-exact-bg: rgba(255, 158, 32, 0.52);
  --aspect-matrix-exact-border: rgba(217, 102, 0, 0.78);
  --btn-primary-bg: #990000;
  --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;
  --checkbox-size: 0.82rem;
  --checkbox-off-bg: linear-gradient(135deg, rgba(148, 163, 184, 0.22), rgba(100, 116, 139, 0.1));
  --checkbox-off-border: rgba(100, 116, 139, 0.5);
  --checkbox-off-core: rgba(148, 163, 184, 0.55);
  --checkbox-on-bg: linear-gradient(135deg, #2563eb, #22d3ee 72%, #60a5fa);
  --checkbox-on-border: rgba(34, 211, 238, 0.78);
  --checkbox-on-core: rgba(255, 255, 255, 0.78);
  --checkbox-on-shadow: rgba(37, 99, 235, 0.24);
  --checkbox-focus-ring: rgba(37, 99, 235, 0.3);
  --judgment-favorable-bg: rgba(15, 157, 88, 0.1);
  --judgment-favorable-border: rgba(15, 157, 88, 0.24);
  --judgment-favorable-text: #0b6e3f;
  --judgment-alert-bg: rgba(220, 38, 38, 0.1);
  --judgment-alert-border: rgba(220, 38, 38, 0.22);
  --judgment-alert-text: #b91c1c;
  --judgment-neutral-bg: rgba(58, 122, 254, 0.1);
  --judgment-neutral-border: rgba(58, 122, 254, 0.2);
  --judgment-neutral-text: #1f3a8a;
  --judgment-table-header-bg: rgba(58, 122, 254, 0.07);
  --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-fire-strong: rgba(255, 90, 90, 0.34);
  --triplicity-air-accent: rgba(255, 236, 179, 0.55);
  --triplicity-air-border: #f1b80a;
  --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;
  --positions-aspect-highlight-bg: rgba(242, 161, 74, 0.2);
  --positions-aspect-highlight-border: rgba(242, 161, 74, 0.6);
  --positions-aspect-highlight-shadow: rgba(242, 161, 74, 0.3);
  --aspect-matrix-neutral-color: #d7deef;
  --aspect-matrix-neutral-highlight-color: #eef2ff;
  --aspect-matrix-partile-bg: rgba(255, 214, 125, 0.3);
  --aspect-matrix-partile-border: rgba(255, 214, 125, 0.62);
  --aspect-matrix-exact-bg: rgba(255, 214, 125, 0.48);
  --aspect-matrix-exact-border: rgba(255, 214, 125, 0.9);
  --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;
  --checkbox-size: 0.82rem;
  --checkbox-off-bg: linear-gradient(135deg, rgba(71, 85, 105, 0.38), rgba(31, 41, 55, 0.46));
  --checkbox-off-border: rgba(148, 163, 184, 0.42);
  --checkbox-off-core: rgba(148, 163, 184, 0.56);
  --checkbox-on-bg: linear-gradient(135deg, #f59e0b, #f97316 72%, #fdba74);
  --checkbox-on-border: rgba(251, 146, 60, 0.8);
  --checkbox-on-core: rgba(255, 247, 237, 0.82);
  --checkbox-on-shadow: rgba(249, 115, 22, 0.3);
  --checkbox-focus-ring: rgba(249, 115, 22, 0.35);
  --judgment-favorable-bg: rgba(52, 211, 153, 0.12);
  --judgment-favorable-border: rgba(52, 211, 153, 0.38);
  --judgment-favorable-text: #b8ffe2;
  --judgment-alert-bg: rgba(248, 113, 113, 0.12);
  --judgment-alert-border: rgba(248, 113, 113, 0.34);
  --judgment-alert-text: #ffc3c3;
  --judgment-neutral-bg: rgba(139, 155, 255, 0.14);
  --judgment-neutral-border: rgba(139, 155, 255, 0.32);
  --judgment-neutral-text: #dfe5ff;
  --judgment-table-header-bg: rgba(139, 155, 255, 0.1);
  --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-fire-strong: var(--triplicity-fire-accent);
  --triplicity-air-accent: rgba(250, 214, 120, 0.3);
  --triplicity-air-border: #fcd34d;
  --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;
  --positions-aspect-highlight-bg: rgba(242, 161, 74, 0.2);
  --positions-aspect-highlight-border: rgba(242, 161, 74, 0.58);
  --positions-aspect-highlight-shadow: rgba(242, 161, 74, 0.28);
  --aspect-matrix-neutral-color: #dde3ff;
  --aspect-matrix-neutral-highlight-color: #f1f4ff;
  --aspect-matrix-partile-bg: rgba(255, 224, 138, 0.28);
  --aspect-matrix-partile-border: rgba(255, 224, 138, 0.6);
  --aspect-matrix-exact-bg: rgba(255, 224, 138, 0.46);
  --aspect-matrix-exact-border: rgba(255, 224, 138, 0.86);
  --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;
  --checkbox-size: 0.82rem;
  --checkbox-off-bg: linear-gradient(135deg, rgba(71, 85, 105, 0.36), rgba(15, 23, 42, 0.54));
  --checkbox-off-border: rgba(148, 163, 184, 0.44);
  --checkbox-off-core: rgba(148, 163, 184, 0.58);
  --checkbox-on-bg: linear-gradient(135deg, #f59e0b, #f97316 72%, #fed7aa);
  --checkbox-on-border: rgba(251, 146, 60, 0.82);
  --checkbox-on-core: rgba(255, 247, 237, 0.84);
  --checkbox-on-shadow: rgba(249, 115, 22, 0.32);
  --checkbox-focus-ring: rgba(249, 115, 22, 0.36);
  --judgment-favorable-bg: rgba(126, 245, 207, 0.12);
  --judgment-favorable-border: rgba(126, 245, 207, 0.36);
  --judgment-favorable-text: #c7fff0;
  --judgment-alert-bg: rgba(255, 109, 145, 0.14);
  --judgment-alert-border: rgba(255, 109, 145, 0.38);
  --judgment-alert-text: #ffd0dd;
  --judgment-neutral-bg: rgba(148, 163, 184, 0.16);
  --judgment-neutral-border: rgba(148, 163, 184, 0.36);
  --judgment-neutral-text: #f5f5ff;
  --judgment-table-header-bg: rgba(148, 163, 184, 0.12);
  --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-fire-strong: var(--triplicity-fire-accent);
  --triplicity-air-accent: rgba(255, 220, 150, 0.22);
  --triplicity-air-border: #ffdd57;
  --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;
}

input[type="checkbox"] {
  appearance: none;
  -webkit-appearance: none;
  box-sizing: border-box;
  width: var(--checkbox-size, 0.82rem);
  height: var(--checkbox-size, 0.82rem);
  margin: 0;
  border: 1px solid var(--checkbox-off-border, rgba(148, 163, 184, 0.5));
  border-radius: 999px;
  background: var(--checkbox-off-bg, rgba(148, 163, 184, 0.18));
  box-shadow: inset 0 0 0 2px rgba(255, 255, 255, 0.1);
  display: inline-grid;
  place-content: center;
  vertical-align: -0.08em;
  flex: 0 0 auto;
  cursor: pointer;
  transition: background 160ms ease, border-color 160ms ease, box-shadow 160ms ease, filter 160ms ease, transform 160ms ease;
}

input[type="checkbox"]::after {
  content: "";
  width: 42%;
  height: 42%;
  border-radius: inherit;
  background: var(--checkbox-off-core, rgba(148, 163, 184, 0.55));
  opacity: 0.82;
  transform: scale(0.72);
  transition: background 160ms ease, box-shadow 160ms ease, opacity 160ms ease, transform 160ms ease;
}

input[type="checkbox"]:checked {
  border-color: var(--checkbox-on-border, rgba(34, 211, 238, 0.78));
  background: var(--checkbox-on-bg, #2563eb);
  box-shadow: 0 0 0 3px var(--checkbox-on-shadow, rgba(37, 99, 235, 0.24)), 0 0 14px var(--checkbox-on-shadow, rgba(37, 99, 235, 0.24));
}

input[type="checkbox"]:checked::after {
  background: var(--checkbox-on-core, rgba(255, 255, 255, 0.78));
  opacity: 1;
  transform: scale(0.6);
  box-shadow: 0 0 8px var(--checkbox-on-core, rgba(255, 255, 255, 0.78));
}

input[type="checkbox"]:focus-visible {
  outline: 2px solid var(--checkbox-focus-ring, rgba(37, 99, 235, 0.3));
  outline-offset: 2px;
}

input[type="checkbox"]:disabled {
  cursor: default;
  filter: saturate(0.76);
  opacity: 0.72;
}

input[type="checkbox"]:disabled:not(:checked) {
  opacity: 0.54;
}
