/* Complete, accessible financial color schemes, loaded after Tailwind. Default has no overrides. */
/* These real checkbox controls retain label/keyboard semantics. Dedicated
   selectors avoid palette utility overrides hiding their checked state. */
#exp-learning-shared-agree,#exp-learning-toggle{appearance:none;-webkit-appearance:none;position:relative;display:inline-block;flex-shrink:0;box-sizing:border-box;margin:0;vertical-align:middle;border:2px solid var(--exp-muted,#64748b);background:var(--exp-surface,#fff);cursor:pointer}
.dark #exp-learning-shared-agree,.dark #exp-learning-toggle{background:var(--exp-surface,#1e293b)}
#exp-learning-shared-agree{width:22px;height:22px;min-width:22px;border-radius:5px}
#exp-learning-toggle{width:44px;height:24px;min-width:44px;border-radius:999px}
#exp-learning-shared-agree::before,#exp-learning-toggle::before{content:'';position:absolute;display:block;width:10px;height:6px;border-left:2px solid var(--exp-on-button,#fff);border-bottom:2px solid var(--exp-on-button,#fff);transform:rotate(-45deg);opacity:0}
#exp-learning-shared-agree::before{left:4px;top:5px}
#exp-learning-toggle::before{left:5px;top:6px;width:8px;height:5px}
#exp-learning-shared-agree:checked,#exp-learning-toggle:checked{background:var(--exp-button,#0f766e);border-color:var(--exp-button,#0f766e)}
#exp-learning-shared-agree:checked::before,#exp-learning-toggle:checked::before{opacity:1}
#exp-learning-toggle::after{content:'';position:absolute;left:2px;top:2px;width:16px;height:16px;border-radius:50%;background:var(--exp-muted,#64748b)}
#exp-learning-toggle:checked::after{left:22px;background:var(--exp-on-button,#fff)}
#exp-learning-shared-agree:focus-visible,#exp-learning-toggle:focus-visible{outline:3px solid var(--exp-button,#0f766e);outline-offset:3px}
#exp-learning-shared-agree:disabled,#exp-learning-toggle:disabled{opacity:.55;cursor:not-allowed}
.exp-terms-open{overflow:hidden}
.exp-terms-overlay{position:fixed;inset:0;z-index:250;display:flex;align-items:center;justify-content:center;padding:12px;background:rgb(2 6 23 / .72)}
.exp-terms-dialog{box-sizing:border-box;width:min(760px,100%);max-height:calc(100dvh - 24px);display:flex;flex-direction:column;gap:12px;padding:22px;border:1px solid var(--exp-line,#cbd5e1);border-radius:20px;background:var(--exp-surface,#fff);color:var(--exp-fg,#0f172a);box-shadow:0 24px 70px #0005;font-size:14px;line-height:1.6;overflow:hidden}
.dark .exp-terms-dialog{background:var(--exp-surface,#1e293b);color:var(--exp-fg,#f1f5f9);border-color:var(--exp-line,#475569)}
.exp-terms-heading{display:flex;justify-content:space-between;align-items:center;gap:12px}.exp-terms-heading h2{font-size:20px;font-weight:800;line-height:1.3}
#exp-terms-version{font-size:11px;color:var(--exp-muted,#64748b)}#exp-terms-summary{font-size:13px}
#exp-terms-content{min-height:70px;overflow-y:scroll;overscroll-behavior:contain;scrollbar-gutter:stable;padding-right:8px;flex:1}
#exp-terms-content section+section{margin-top:16px}#exp-terms-content h3{font-weight:800;margin-bottom:4px}
.exp-terms-dialog button{border:1px solid var(--exp-line,#94a3b8);border-radius:10px;padding:8px 12px;font-weight:700;font-size:12px;cursor:pointer;background:transparent;color:inherit;min-height:40px}
.exp-terms-dialog button:focus-visible,#exp-terms-content:focus-visible{outline:3px solid var(--exp-button,#0d9488);outline-offset:2px}
.exp-terms-dialog button:hover{background:var(--exp-subtle,#f1f5f9)}.dark .exp-terms-dialog button:hover{background:var(--exp-subtle,#334155)}
#exp-terms-check{display:flex;align-items:center;gap:10px;text-align:left;width:100%}#exp-terms-check>span:first-child{display:grid;place-items:center;flex-shrink:0;width:22px;height:22px;border:2px solid currentColor;border-radius:6px;color:transparent;border-color:var(--exp-muted,#64748b)}
#exp-terms-check[aria-checked=true]>span:first-child{background:var(--exp-button,#0f766e);border-color:var(--exp-button,#0f766e);color:var(--exp-on-button,#fff)}
#exp-terms-accept{width:100%;background:var(--exp-button,#0f766e);color:var(--exp-on-button,#fff);border-color:transparent;margin-top:8px}
#exp-terms-accept:hover{background:var(--exp-button-hover,#115e59)}#exp-terms-accept:disabled{opacity:.45;cursor:not-allowed}
#exp-terms-scroll-hint{font-size:12px;margin-bottom:6px}#exp-terms-check:disabled{opacity:.55;cursor:not-allowed}#exp-terms-error{color:#be123c;font-size:12px}.dark #exp-terms-error{color:#fda4af}
@media(max-width:420px){.exp-terms-dialog{padding:14px;gap:8px;font-size:12px}.exp-terms-heading h2{font-size:17px}#exp-terms-summary{font-size:12px}}
:root[data-exp-palette="navy"]{--exp-page:#eef3fb;--exp-surface:#f9fbff;--exp-subtle:#f5f8fe;--exp-line:#d4e0f1;--exp-fg:#172f50;--exp-muted:#516984;--exp-button:#225aab;--exp-button-hover:#1b4789;--exp-on-button:#ffffff;}
:root.dark[data-exp-palette="navy"]{--exp-page:#111e33;--exp-surface:#1c2d46;--exp-subtle:#263a56;--exp-line:#405876;--exp-fg:#edf5ff;--exp-muted:#b4c6df;--exp-button:#78afff;--exp-button-hover:#a1c8ff;--exp-on-button:#10243c;}
:root[data-exp-palette="slate"]{--exp-page:#eceff2;--exp-surface:#f9fafb;--exp-subtle:#f4f6f8;--exp-line:#cbd4dc;--exp-fg:#253443;--exp-muted:#526373;--exp-button:#465b6b;--exp-button-hover:#314453;--exp-on-button:#ffffff;}
:root.dark[data-exp-palette="slate"]{--exp-page:#151b23;--exp-surface:#232c36;--exp-subtle:#2c3844;--exp-line:#485869;--exp-fg:#f2f5f8;--exp-muted:#bfcbd6;--exp-button:#aabccc;--exp-button-hover:#c9d5df;--exp-on-button:#192631;}
:root[data-exp-palette="forest"]{--exp-page:#edf4ee;--exp-surface:#f8fcf8;--exp-subtle:#f5faf5;--exp-line:#c9dccd;--exp-fg:#173e2b;--exp-muted:#4f725d;--exp-button:#27633e;--exp-button-hover:#1e4d31;--exp-on-button:#ffffff;}
:root.dark[data-exp-palette="forest"]{--exp-page:#101f19;--exp-surface:#1b3025;--exp-subtle:#264034;--exp-line:#426552;--exp-fg:#e8faed;--exp-muted:#b4d2bd;--exp-button:#7ddaa0;--exp-button-hover:#a8ebbf;--exp-on-button:#103222;}
:root[data-exp-palette="ocean"]{--exp-page:#eaf5f6;--exp-surface:#f7fcfd;--exp-subtle:#f2fafb;--exp-line:#c2dee3;--exp-fg:#173d48;--exp-muted:#477480;--exp-button:#126679;--exp-button-hover:#0b4d5e;--exp-on-button:#ffffff;}
:root.dark[data-exp-palette="ocean"]{--exp-page:#102229;--exp-surface:#1b343e;--exp-subtle:#264651;--exp-line:#426874;--exp-fg:#e8faff;--exp-muted:#b4d9e2;--exp-button:#83dbea;--exp-button-hover:#abebf3;--exp-on-button:#133845;}
:root[data-exp-palette="indigo"]{--exp-page:#f0f0fa;--exp-surface:#fbfaff;--exp-subtle:#f7f7fd;--exp-line:#d8d8f1;--exp-fg:#2b2958;--exp-muted:#696586;--exp-button:#5146a4;--exp-button-hover:#403888;--exp-on-button:#ffffff;}
:root.dark[data-exp-palette="indigo"]{--exp-page:#17162d;--exp-surface:#25243e;--exp-subtle:#333151;--exp-line:#514d75;--exp-fg:#f1efff;--exp-muted:#c8c3e9;--exp-button:#b0a6fb;--exp-button-hover:#cbc3ff;--exp-on-button:#1d1b3b;}
:root[data-exp-palette="burgundy"]{--exp-page:#faf0f1;--exp-surface:#fffafb;--exp-subtle:#fff7f8;--exp-line:#ecd0d6;--exp-fg:#502638;--exp-muted:#895e6c;--exp-button:#9b3355;--exp-button-hover:#7c2845;--exp-on-button:#ffffff;}
:root.dark[data-exp-palette="burgundy"]{--exp-page:#27171e;--exp-surface:#38232d;--exp-subtle:#4c303b;--exp-line:#72505f;--exp-fg:#fff0f3;--exp-muted:#e8bdcb;--exp-button:#ffa5c2;--exp-button-hover:#ffc1d4;--exp-on-button:#47182c;}
:root[data-exp-palette="steel"]{--exp-page:#ecf2f6;--exp-surface:#f6fafc;--exp-subtle:#e5eef4;--exp-line:#c4d6e3;--exp-fg:#203c52;--exp-muted:#46657a;--exp-button:#355b75;--exp-button-hover:#26465c;--exp-on-button:#ffffff;}
:root.dark[data-exp-palette="steel"]{--exp-page:#142331;--exp-surface:#21374a;--exp-subtle:#2b4358;--exp-line:#48647b;--exp-fg:#eef7ff;--exp-muted:#bad0e0;--exp-button:#a2c4dd;--exp-button-hover:#c0d8e8;--exp-on-button:#163247;}
:root[data-exp-palette]:not([data-exp-palette=""]) .bg-slate-50,:root[data-exp-palette]:not([data-exp-palette=""]) .dark\:bg-slate-900,:root[data-exp-palette]:not([data-exp-palette=""]) .bg-slate-900,:root[data-exp-palette]:not([data-exp-palette=""]) .dark\:bg-slate-900\/60{background-color:var(--exp-page)}
:root[data-exp-palette]:not([data-exp-palette=""]) .bg-white,:root[data-exp-palette]:not([data-exp-palette=""]) .dark\:bg-slate-800,:root[data-exp-palette]:not([data-exp-palette=""]) .bg-slate-800{background-color:var(--exp-surface)}
:root[data-exp-palette]:not([data-exp-palette=""]) .bg-slate-50\/80,:root[data-exp-palette]:not([data-exp-palette=""]) .dark\:bg-slate-900\/50,:root[data-exp-palette]:not([data-exp-palette=""]) .bg-slate-50,:root[data-exp-palette]:not([data-exp-palette=""]) .dark\:bg-slate-900\/60,:root[data-exp-palette]:not([data-exp-palette=""]) .bg-slate-100,:root[data-exp-palette]:not([data-exp-palette=""]) .dark\:bg-slate-700\/50,:root[data-exp-palette]:not([data-exp-palette=""]) .bg-slate-100\/80{background-color:var(--exp-subtle)}
:root[data-exp-palette]:not([data-exp-palette=""]) .border-slate-200,:root[data-exp-palette]:not([data-exp-palette=""]) .border-slate-200\/80,:root[data-exp-palette]:not([data-exp-palette=""]) .border-slate-300,:root[data-exp-palette]:not([data-exp-palette=""]) .border-slate-100,:root[data-exp-palette]:not([data-exp-palette=""]) .dark\:border-slate-700,:root[data-exp-palette]:not([data-exp-palette=""]) .dark\:border-slate-600,:root[data-exp-palette]:not([data-exp-palette=""]) .dark\:border-slate-700\/60{border-color:var(--exp-line)}
:root[data-exp-palette]:not([data-exp-palette=""]) .text-slate-900,:root[data-exp-palette]:not([data-exp-palette=""]) .text-slate-800,:root[data-exp-palette]:not([data-exp-palette=""]) .text-slate-700,:root[data-exp-palette]:not([data-exp-palette=""]) .dark\:text-slate-100,:root[data-exp-palette]:not([data-exp-palette=""]) .dark\:text-white,:root[data-exp-palette]:not([data-exp-palette=""]) .dark\:text-slate-200{color:var(--exp-fg)}
:root[data-exp-palette]:not([data-exp-palette=""]) .text-slate-600,:root[data-exp-palette]:not([data-exp-palette=""]) .text-slate-500,:root[data-exp-palette]:not([data-exp-palette=""]) .text-slate-400,:root[data-exp-palette]:not([data-exp-palette=""]) .dark\:text-slate-400,:root[data-exp-palette]:not([data-exp-palette=""]) .dark\:text-slate-300{color:var(--exp-muted)}
:root[data-exp-palette]:not([data-exp-palette=""]) .bg-brand-600,:root[data-exp-palette]:not([data-exp-palette=""]) .bg-brand-500,:root[data-exp-palette]:not([data-exp-palette=""]) .bg-teal-600,:root[data-exp-palette]:not([data-exp-palette=""]) .bg-teal-500{background-color:var(--exp-button);color:var(--exp-on-button)}
:root[data-exp-palette]:not([data-exp-palette=""]) .hover\:bg-brand-700\:hover,:root[data-exp-palette]:not([data-exp-palette=""]) .hover\:bg-teal-700\:hover{background-color:var(--exp-button-hover);color:var(--exp-on-button)}
:root[data-exp-palette]:not([data-exp-palette=""]) .text-brand-600,:root[data-exp-palette]:not([data-exp-palette=""]) .text-brand-500,:root[data-exp-palette]:not([data-exp-palette=""]) .text-teal-700,:root[data-exp-palette]:not([data-exp-palette=""]) .text-teal-600,:root[data-exp-palette]:not([data-exp-palette=""]) .dark\:text-teal-300,:root[data-exp-palette]:not([data-exp-palette=""]) .dark\:text-teal-400{color:var(--exp-button)}
:root[data-exp-palette]:not([data-exp-palette=""]) .border-brand-500,:root[data-exp-palette]:not([data-exp-palette=""]) .border-teal-500,:root[data-exp-palette]:not([data-exp-palette=""]) .focus\:border-teal-500\:focus{border-color:var(--exp-button)}
:root[data-exp-palette]:not([data-exp-palette=""]) body{background-color:var(--exp-page)!important;color:var(--exp-fg)}
:root[data-exp-palette]:not([data-exp-palette=""]) .exp-theme-option{background:var(--exp-subtle);color:var(--exp-fg);border-color:var(--exp-line)}
:root[data-exp-palette]:not([data-exp-palette=""]) .exp-theme-option[aria-pressed="true"]{border-color:var(--exp-button);box-shadow:0 0 0 1px var(--exp-button)}
:root[data-exp-palette]:not([data-exp-palette=""]) .exp-theme-selected{color:var(--exp-button)}
:root[data-exp-palette]:not([data-exp-palette=""]) .exp-theme-labels{color:var(--exp-muted)}
:root[data-exp-palette]:not([data-exp-palette=""]) input:not([type="checkbox"]),:root[data-exp-palette]:not([data-exp-palette=""]) select,:root[data-exp-palette]:not([data-exp-palette=""]) textarea{color:var(--exp-fg);border-color:var(--exp-line)}
:root[data-exp-palette]:not([data-exp-palette=""]) input::placeholder,:root[data-exp-palette]:not([data-exp-palette=""]) textarea::placeholder{color:var(--exp-muted)}
:root[data-exp-palette]:not([data-exp-palette=""]) .exp-scrollbar,:root[data-exp-palette]:not([data-exp-palette=""]) .custom-scrollbar{scrollbar-color:var(--exp-button) transparent}
:root[data-exp-palette]:not([data-exp-palette=""]) .exp-scrollbar::-webkit-scrollbar-thumb,:root[data-exp-palette]:not([data-exp-palette=""]) .custom-scrollbar::-webkit-scrollbar-thumb{background:var(--exp-button)}

/* Additional theme surfaces, forms and navigation; deliberately leave financial status colors unchanged. */
:root[data-exp-palette]:not([data-exp-palette=""]) .bg-slate-50\/50,:root[data-exp-palette]:not([data-exp-palette=""]) .bg-slate-50\/70,:root[data-exp-palette]:not([data-exp-palette=""]) .bg-slate-50\/80,:root[data-exp-palette]:not([data-exp-palette=""]) .bg-slate-50\/90,:root[data-exp-palette]:not([data-exp-palette=""]) .dark\:bg-slate-900\/30,:root[data-exp-palette]:not([data-exp-palette=""]) .dark\:bg-slate-900\/40,:root[data-exp-palette]:not([data-exp-palette=""]) .dark\:bg-slate-900\/50,:root[data-exp-palette]:not([data-exp-palette=""]) .dark\:bg-slate-900\/60,:root[data-exp-palette]:not([data-exp-palette=""]) .dark\:bg-slate-900\/70,:root[data-exp-palette]:not([data-exp-palette=""]) .bg-slate-100\/50,:root[data-exp-palette]:not([data-exp-palette=""]) .bg-slate-100\/60,:root[data-exp-palette]:not([data-exp-palette=""]) .dark\:bg-slate-700\/30,:root[data-exp-palette]:not([data-exp-palette=""]) .dark\:bg-slate-700\/40,:root[data-exp-palette]:not([data-exp-palette=""]) .dark\:bg-slate-700\/50,:root[data-exp-palette]:not([data-exp-palette=""]) .dark\:bg-slate-700\/60,:root[data-exp-palette]:not([data-exp-palette=""]) .dark\:bg-slate-800\/50,:root[data-exp-palette]:not([data-exp-palette=""]) .dark\:bg-slate-800\/80{background-color:var(--exp-subtle)}
:root[data-exp-palette]:not([data-exp-palette=""]) .bg-white\/50,:root[data-exp-palette]:not([data-exp-palette=""]) .bg-white\/70,:root[data-exp-palette]:not([data-exp-palette=""]) .bg-white\/80,:root[data-exp-palette]:not([data-exp-palette=""]) .bg-white\/90,:root[data-exp-palette]:not([data-exp-palette=""]) .bg-slate-800\/50,:root[data-exp-palette]:not([data-exp-palette=""]) .bg-slate-800\/70,:root[data-exp-palette]:not([data-exp-palette=""]) .dark\:bg-slate-800\/70,:root[data-exp-palette]:not([data-exp-palette=""]) .dark\:bg-slate-800\/80,:root[data-exp-palette]:not([data-exp-palette=""]) .dark\:bg-slate-800\/90,:root[data-exp-palette]:not([data-exp-palette=""]) .dark\:bg-slate-700{background-color:var(--exp-surface)}
:root[data-exp-palette]:not([data-exp-palette=""]) .text-slate-950,:root[data-exp-palette]:not([data-exp-palette=""]) .text-slate-800\/90,:root[data-exp-palette]:not([data-exp-palette=""]) .dark\:text-slate-50,:root[data-exp-palette]:not([data-exp-palette=""]) .dark\:text-slate-100\/90,:root[data-exp-palette]:not([data-exp-palette=""]) .text-gray-800,:root[data-exp-palette]:not([data-exp-palette=""]) .text-gray-900{color:var(--exp-fg)}
:root[data-exp-palette]:not([data-exp-palette=""]) .text-slate-300,:root[data-exp-palette]:not([data-exp-palette=""]) .text-slate-400,:root[data-exp-palette]:not([data-exp-palette=""]) .text-slate-500,:root[data-exp-palette]:not([data-exp-palette=""]) .text-slate-600,:root[data-exp-palette]:not([data-exp-palette=""]) .dark\:text-slate-300,:root[data-exp-palette]:not([data-exp-palette=""]) .dark\:text-slate-400,:root[data-exp-palette]:not([data-exp-palette=""]) .dark\:text-slate-500,:root[data-exp-palette]:not([data-exp-palette=""]) .text-gray-500,:root[data-exp-palette]:not([data-exp-palette=""]) .text-gray-600{color:var(--exp-muted)}
:root[data-exp-palette]:not([data-exp-palette=""]) .border-slate-200\/50,:root[data-exp-palette]:not([data-exp-palette=""]) .border-slate-200\/60,:root[data-exp-palette]:not([data-exp-palette=""]) .border-slate-200\/70,:root[data-exp-palette]:not([data-exp-palette=""]) .border-slate-200\/80,:root[data-exp-palette]:not([data-exp-palette=""]) .border-slate-300\/50,:root[data-exp-palette]:not([data-exp-palette=""]) .dark\:border-slate-600\/50,:root[data-exp-palette]:not([data-exp-palette=""]) .dark\:border-slate-700\/50,:root[data-exp-palette]:not([data-exp-palette=""]) .dark\:border-slate-700\/80,:root[data-exp-palette]:not([data-exp-palette=""]) .divide-slate-200{border-color:var(--exp-line)}
:root[data-exp-palette]:not([data-exp-palette=""]) .bg-teal-50,:root[data-exp-palette]:not([data-exp-palette=""]) .bg-teal-50\/50,:root[data-exp-palette]:not([data-exp-palette=""]) .bg-teal-100,:root[data-exp-palette]:not([data-exp-palette=""]) .bg-brand-50,:root[data-exp-palette]:not([data-exp-palette=""]) .dark\:bg-teal-900\/20,:root[data-exp-palette]:not([data-exp-palette=""]) .dark\:bg-teal-900\/30{background-color:var(--exp-subtle)}
:root[data-exp-palette]:not([data-exp-palette=""]) .text-teal-500,:root[data-exp-palette]:not([data-exp-palette=""]) .text-teal-600,:root[data-exp-palette]:not([data-exp-palette=""]) .text-teal-700,:root[data-exp-palette]:not([data-exp-palette=""]) .text-teal-800,:root[data-exp-palette]:not([data-exp-palette=""]) .dark\:text-teal-200,:root[data-exp-palette]:not([data-exp-palette=""]) .dark\:text-teal-300,:root[data-exp-palette]:not([data-exp-palette=""]) .dark\:text-teal-400,:root[data-exp-palette]:not([data-exp-palette=""]) .text-brand-600{color:var(--exp-button)}
:root[data-exp-palette]:not([data-exp-palette=""]) .border-teal-200,:root[data-exp-palette]:not([data-exp-palette=""]) .border-teal-300,:root[data-exp-palette]:not([data-exp-palette=""]) .border-teal-400,:root[data-exp-palette]:not([data-exp-palette=""]) .border-teal-500,:root[data-exp-palette]:not([data-exp-palette=""]) .dark\:border-teal-700,:root[data-exp-palette]:not([data-exp-palette=""]) .focus\:border-teal-500\:focus{border-color:var(--exp-button)}
:root[data-exp-palette]:not([data-exp-palette=""]) input:not([type="checkbox"]):not([type="radio"]):not([type="range"]),:root[data-exp-palette]:not([data-exp-palette=""]) textarea,:root[data-exp-palette]:not([data-exp-palette=""]) select{background-color:var(--exp-subtle);color:var(--exp-fg);border-color:var(--exp-line)}
:root[data-exp-palette]:not([data-exp-palette=""]) #exp-theme-settings,:root[data-exp-palette]:not([data-exp-palette=""]) #exp-settings-preferences{background:var(--exp-surface);color:var(--exp-fg)}
:root[data-exp-palette]:not([data-exp-palette=""]) .exp-theme-option[aria-pressed="true"]{outline-color:var(--exp-button)}

/* Comprehensive palette override: scoped to alternate themes only.
   Utility classes used across chart cards, dialogs, FAQ, nav, hover, and scrollbars.
   Never override semantic success/error/danger colors. */
:root[data-exp-palette]:not([data-exp-palette=""]) .bg-slate-950,:root[data-exp-palette]:not([data-exp-palette=""]) .bg-slate-950\/90,:root[data-exp-palette]:not([data-exp-palette=""]) .dark\:bg-slate-950,:root[data-exp-palette]:not([data-exp-palette=""]) .bg-gray-950{background-color:var(--exp-page)}
:root[data-exp-palette]:not([data-exp-palette=""]) .bg-slate-900,:root[data-exp-palette]:not([data-exp-palette=""]) .bg-slate-900\/80,:root[data-exp-palette]:not([data-exp-palette=""]) .bg-slate-900\/90,:root[data-exp-palette]:not([data-exp-palette=""]) .bg-slate-800,:root[data-exp-palette]:not([data-exp-palette=""]) .bg-slate-800\/90,:root[data-exp-palette]:not([data-exp-palette=""]) .bg-slate-800\/80,:root[data-exp-palette]:not([data-exp-palette=""]) .bg-slate-800\/70,:root[data-exp-palette]:not([data-exp-palette=""]) .bg-slate-800\/60,:root[data-exp-palette]:not([data-exp-palette=""]) .bg-slate-800\/50,:root[data-exp-palette]:not([data-exp-palette=""]) .bg-slate-700,:root[data-exp-palette]:not([data-exp-palette=""]) .bg-slate-700\/80,:root[data-exp-palette]:not([data-exp-palette=""]) .bg-slate-700\/70,:root[data-exp-palette]:not([data-exp-palette=""]) .bg-gray-900,:root[data-exp-palette]:not([data-exp-palette=""]) .bg-gray-800,:root[data-exp-palette]:not([data-exp-palette=""]) .bg-\[\#0f172a\],:root[data-exp-palette]:not([data-exp-palette=""]) .bg-\[\#111827\],:root[data-exp-palette]:not([data-exp-palette=""]) .dark\:bg-slate-800,:root[data-exp-palette]:not([data-exp-palette=""]) .dark\:bg-slate-900,:root[data-exp-palette]:not([data-exp-palette=""]) .dark\:bg-slate-950{background-color:var(--exp-surface)}
:root[data-exp-palette]:not([data-exp-palette=""]) .bg-slate-900\/50,:root[data-exp-palette]:not([data-exp-palette=""]) .bg-slate-900\/60,:root[data-exp-palette]:not([data-exp-palette=""]) .bg-slate-900\/70,:root[data-exp-palette]:not([data-exp-palette=""]) .bg-slate-900\/40,:root[data-exp-palette]:not([data-exp-palette=""]) .bg-slate-700\/50,:root[data-exp-palette]:not([data-exp-palette=""]) .bg-slate-700\/40,:root[data-exp-palette]:not([data-exp-palette=""]) .bg-slate-700\/30,:root[data-exp-palette]:not([data-exp-palette=""]) .bg-slate-600\/30,:root[data-exp-palette]:not([data-exp-palette=""]) .bg-slate-600\/50,:root[data-exp-palette]:not([data-exp-palette=""]) .bg-slate-100,:root[data-exp-palette]:not([data-exp-palette=""]) .bg-slate-200,:root[data-exp-palette]:not([data-exp-palette=""]) .bg-gray-100,:root[data-exp-palette]:not([data-exp-palette=""]) .bg-gray-200,:root[data-exp-palette]:not([data-exp-palette=""]) .bg-teal-50,:root[data-exp-palette]:not([data-exp-palette=""]) .bg-teal-100,:root[data-exp-palette]:not([data-exp-palette=""]) .bg-teal-900\/20,:root[data-exp-palette]:not([data-exp-palette=""]) .bg-teal-900\/30,:root[data-exp-palette]:not([data-exp-palette=""]) .bg-brand-50,:root[data-exp-palette]:not([data-exp-palette=""]) .bg-brand-100{background-color:var(--exp-subtle)}
:root[data-exp-palette]:not([data-exp-palette=""]) .text-white,:root[data-exp-palette]:not([data-exp-palette=""]) .text-white\/90,:root[data-exp-palette]:not([data-exp-palette=""]) .text-slate-50,:root[data-exp-palette]:not([data-exp-palette=""]) .text-slate-100,:root[data-exp-palette]:not([data-exp-palette=""]) .text-slate-200,:root[data-exp-palette]:not([data-exp-palette=""]) .text-slate-700,:root[data-exp-palette]:not([data-exp-palette=""]) .text-slate-800,:root[data-exp-palette]:not([data-exp-palette=""]) .text-slate-900,:root[data-exp-palette]:not([data-exp-palette=""]) .text-gray-900{color:var(--exp-fg)}
:root[data-exp-palette]:not([data-exp-palette=""]) .text-slate-300,:root[data-exp-palette]:not([data-exp-palette=""]) .text-slate-400,:root[data-exp-palette]:not([data-exp-palette=""]) .text-slate-500,:root[data-exp-palette]:not([data-exp-palette=""]) .text-slate-600,:root[data-exp-palette]:not([data-exp-palette=""]) .text-gray-400,:root[data-exp-palette]:not([data-exp-palette=""]) .text-gray-500,:root[data-exp-palette]:not([data-exp-palette=""]) .text-gray-600{color:var(--exp-muted)}
:root[data-exp-palette]:not([data-exp-palette=""]) .border-slate-700,:root[data-exp-palette]:not([data-exp-palette=""]) .border-slate-800,:root[data-exp-palette]:not([data-exp-palette=""]) .border-slate-900,:root[data-exp-palette]:not([data-exp-palette=""]) .border-slate-600,:root[data-exp-palette]:not([data-exp-palette=""]) .border-slate-500,:root[data-exp-palette]:not([data-exp-palette=""]) .border-slate-200,:root[data-exp-palette]:not([data-exp-palette=""]) .border-slate-300,:root[data-exp-palette]:not([data-exp-palette=""]) .border-gray-700,:root[data-exp-palette]:not([data-exp-palette=""]) .divide-slate-700,:root[data-exp-palette]:not([data-exp-palette=""]) .border-teal-700{border-color:var(--exp-line)}
:root[data-exp-palette]:not([data-exp-palette=""]) .text-teal-100,:root[data-exp-palette]:not([data-exp-palette=""]) .text-teal-200,:root[data-exp-palette]:not([data-exp-palette=""]) .text-teal-300,:root[data-exp-palette]:not([data-exp-palette=""]) .text-teal-400,:root[data-exp-palette]:not([data-exp-palette=""]) .text-teal-500,:root[data-exp-palette]:not([data-exp-palette=""]) .text-teal-600,:root[data-exp-palette]:not([data-exp-palette=""]) .text-teal-700,:root[data-exp-palette]:not([data-exp-palette=""]) .text-brand-300,:root[data-exp-palette]:not([data-exp-palette=""]) .text-brand-400,:root[data-exp-palette]:not([data-exp-palette=""]) .text-brand-500,:root[data-exp-palette]:not([data-exp-palette=""]) .text-brand-600{color:var(--exp-button)}
:root[data-exp-palette]:not([data-exp-palette=""]) .bg-teal-500,:root[data-exp-palette]:not([data-exp-palette=""]) .bg-teal-600,:root[data-exp-palette]:not([data-exp-palette=""]) .bg-teal-700,:root[data-exp-palette]:not([data-exp-palette=""]) .bg-brand-500,:root[data-exp-palette]:not([data-exp-palette=""]) .bg-brand-600,:root[data-exp-palette]:not([data-exp-palette=""]) .bg-brand-700{background-color:var(--exp-button);color:var(--exp-on-button)}
:root[data-exp-palette]:not([data-exp-palette=""]) .hover\:bg-slate-700:hover,:root[data-exp-palette]:not([data-exp-palette=""]) .hover\:bg-slate-800:hover,:root[data-exp-palette]:not([data-exp-palette=""]) .hover\:bg-slate-900:hover,:root[data-exp-palette]:not([data-exp-palette=""]) .hover\:bg-slate-100:hover,:root[data-exp-palette]:not([data-exp-palette=""]) .hover\:bg-slate-200:hover,:root[data-exp-palette]:not([data-exp-palette=""]) .hover\:bg-gray-100:hover,:root[data-exp-palette]:not([data-exp-palette=""]) .hover\:bg-teal-50:hover,:root[data-exp-palette]:not([data-exp-palette=""]) .hover\:bg-teal-900\/20:hover{background-color:var(--exp-subtle)}
:root[data-exp-palette]:not([data-exp-palette=""]) .hover\:bg-teal-500:hover,:root[data-exp-palette]:not([data-exp-palette=""]) .hover\:bg-teal-600:hover,:root[data-exp-palette]:not([data-exp-palette=""]) .hover\:bg-teal-700:hover,:root[data-exp-palette]:not([data-exp-palette=""]) .hover\:bg-brand-500:hover,:root[data-exp-palette]:not([data-exp-palette=""]) .hover\:bg-brand-600:hover,:root[data-exp-palette]:not([data-exp-palette=""]) .hover\:bg-brand-700:hover{background-color:var(--exp-button-hover);color:var(--exp-on-button)}
:root[data-exp-palette]:not([data-exp-palette=""]) .hover\:text-teal-300:hover,:root[data-exp-palette]:not([data-exp-palette=""]) .hover\:text-teal-400:hover,:root[data-exp-palette]:not([data-exp-palette=""]) .hover\:text-teal-500:hover,:root[data-exp-palette]:not([data-exp-palette=""]) .hover\:text-teal-600:hover,:root[data-exp-palette]:not([data-exp-palette=""]) .hover\:text-teal-700:hover{color:var(--exp-button)}

:root[data-exp-palette]:not([data-exp-palette=""]) header,:root[data-exp-palette]:not([data-exp-palette=""]) nav,:root[data-exp-palette]:not([data-exp-palette=""]) footer{border-color:var(--exp-line)}
:root[data-exp-palette]:not([data-exp-palette=""]) header,:root[data-exp-palette]:not([data-exp-palette=""]) footer{background-color:var(--exp-surface)}
:root[data-exp-palette]:not([data-exp-palette=""]) nav{background-color:var(--exp-subtle)}
:root[data-exp-palette]:not([data-exp-palette=""]) .faq-item,:root[data-exp-palette]:not([data-exp-palette=""]) .faq-question,:root[data-exp-palette]:not([data-exp-palette=""]) .faq-answer{background-color:var(--exp-surface);color:var(--exp-fg);border-color:var(--exp-line)}
:root[data-exp-palette]:not([data-exp-palette=""]) .faq-question:hover,:root[data-exp-palette]:not([data-exp-palette=""]) .faq-item:hover{background-color:var(--exp-subtle)}
:root[data-exp-palette]:not([data-exp-palette=""]) button:hover:not(:disabled),:root[data-exp-palette]:not([data-exp-palette=""]) a:hover{border-color:var(--exp-line)}
:root[data-exp-palette]:not([data-exp-palette=""]) .exp-review-scroll,:root[data-exp-palette]:not([data-exp-palette=""]) .custom-scrollbar,:root[data-exp-palette]:not([data-exp-palette=""]) .exp-scrollbar,:root[data-exp-palette]:not([data-exp-palette=""]) body,:root[data-exp-palette]:not([data-exp-palette=""]) *{scrollbar-color:var(--exp-button) var(--exp-subtle)}
:root[data-exp-palette]:not([data-exp-palette=""]) ::-webkit-scrollbar{width:9px;height:9px}
:root[data-exp-palette]:not([data-exp-palette=""]) ::-webkit-scrollbar-track{background:var(--exp-subtle)}
:root[data-exp-palette]:not([data-exp-palette=""]) ::-webkit-scrollbar-thumb{background:var(--exp-button);border:2px solid var(--exp-subtle);border-radius:999px}
:root[data-exp-palette]:not([data-exp-palette=""]) ::-webkit-scrollbar-thumb:hover{background:var(--exp-button-hover)}

:root[data-exp-palette]:not([data-exp-palette=""]){scrollbar-color:var(--exp-button) var(--exp-subtle);scrollbar-width:thin}

/* Coverage for remaining Tailwind variants, interactive states and controls. Palette-scoped only. */
:root[data-exp-palette]:not([data-exp-palette=""]) .dark\:text-brand-300,:root[data-exp-palette]:not([data-exp-palette=""]) .dark\:text-brand-400,:root[data-exp-palette]:not([data-exp-palette=""]) .hover\:text-brand-300:hover,:root[data-exp-palette]:not([data-exp-palette=""]) .hover\:text-brand-600:hover,:root[data-exp-palette]:not([data-exp-palette=""]) .text-brand-700,:root[data-exp-palette]:not([data-exp-palette=""]) .hover\:text-teal-200:hover,:root[data-exp-palette]:not([data-exp-palette=""]) .hover\:text-teal-300:hover,:root[data-exp-palette]:not([data-exp-palette=""]) .hover\:text-teal-400:hover,:root[data-exp-palette]:not([data-exp-palette=""]) .hover\:text-teal-500:hover,:root[data-exp-palette]:not([data-exp-palette=""]) .hover\:text-teal-600:hover,:root[data-exp-palette]:not([data-exp-palette=""]) .hover\:text-teal-700:hover,:root[data-exp-palette]:not([data-exp-palette=""]) .hover\:text-slate-200:hover,:root[data-exp-palette]:not([data-exp-palette=""]) .hover\:text-slate-600:hover,:root[data-exp-palette]:not([data-exp-palette=""]) .hover\:text-slate-700:hover,:root[data-exp-palette]:not([data-exp-palette=""]) .hover\:text-slate-800:hover,:root[data-exp-palette]:not([data-exp-palette=""]) .dark\:hover\:text-teal-300,:root[data-exp-palette]:not([data-exp-palette=""]) .dark\:hover\:text-slate-100{color:var(--exp-button)}
:root[data-exp-palette]:not([data-exp-palette=""]) .hover\:bg-slate-600:hover,:root[data-exp-palette]:not([data-exp-palette=""]) .hover\:bg-slate-500:hover,:root[data-exp-palette]:not([data-exp-palette=""]) .hover\:bg-slate-300:hover,:root[data-exp-palette]:not([data-exp-palette=""]) .hover\:bg-teal-100:hover,:root[data-exp-palette]:not([data-exp-palette=""]) .hover\:bg-brand-50:hover,:root[data-exp-palette]:not([data-exp-palette=""]) .hover\:bg-slate-700\/60:hover,:root[data-exp-palette]:not([data-exp-palette=""]) .dark\:hover\:bg-slate-700,:root[data-exp-palette]:not([data-exp-palette=""]) .dark\:hover\:bg-slate-600,:root[data-exp-palette]:not([data-exp-palette=""]) .dark\:hover\:bg-slate-800{background-color:var(--exp-subtle)}
:root[data-exp-palette]:not([data-exp-palette=""]) .dark\:bg-brand-900\/50,:root[data-exp-palette]:not([data-exp-palette=""]) .dark\:bg-teal-500\/15,:root[data-exp-palette]:not([data-exp-palette=""]) .dark\:bg-slate-900\/80,:root[data-exp-palette]:not([data-exp-palette=""]) .bg-slate-950\/75,:root[data-exp-palette]:not([data-exp-palette=""]) .dark\:bg-slate-900\/90,:root[data-exp-palette]:not([data-exp-palette=""]) .bg-slate-900\/50,:root[data-exp-palette]:not([data-exp-palette=""]) .bg-slate-800\/30,:root[data-exp-palette]:not([data-exp-palette=""]) .bg-slate-900\/30{background-color:var(--exp-subtle)}
:root[data-exp-palette]:not([data-exp-palette=""]) .dark\:text-slate-600,:root[data-exp-palette]:not([data-exp-palette=""]) .text-slate-300,:root[data-exp-palette]:not([data-exp-palette=""]) .dark\:text-slate-500,:root[data-exp-palette]:not([data-exp-palette=""]) .text-slate-400\/80,:root[data-exp-palette]:not([data-exp-palette=""]) .text-gray-300{color:var(--exp-muted)}
:root[data-exp-palette]:not([data-exp-palette=""]) .border-brand-600,:root[data-exp-palette]:not([data-exp-palette=""]) .border-brand-400,:root[data-exp-palette]:not([data-exp-palette=""]) .border-teal-400,:root[data-exp-palette]:not([data-exp-palette=""]) .border-teal-300,:root[data-exp-palette]:not([data-exp-palette=""]) .dark\:border-teal-500,:root[data-exp-palette]:not([data-exp-palette=""]) .ring-brand-500,:root[data-exp-palette]:not([data-exp-palette=""]) .ring-brand-400,:root[data-exp-palette]:not([data-exp-palette=""]) .ring-teal-500,:root[data-exp-palette]:not([data-exp-palette=""]) .ring-teal-400,:root[data-exp-palette]:not([data-exp-palette=""]) .ring-teal-500\/20,:root[data-exp-palette]:not([data-exp-palette=""]) .focus\:ring-teal-500:focus,:root[data-exp-palette]:not([data-exp-palette=""]) .focus\:ring-brand-500:focus{border-color:var(--exp-button);--tw-ring-color:var(--exp-button)}
:root[data-exp-palette]:not([data-exp-palette=""]) .bg-brand-700,:root[data-exp-palette]:not([data-exp-palette=""]) .bg-brand-600,:root[data-exp-palette]:not([data-exp-palette=""]) .bg-brand-500,:root[data-exp-palette]:not([data-exp-palette=""]) .bg-teal-700,:root[data-exp-palette]:not([data-exp-palette=""]) .bg-teal-600,:root[data-exp-palette]:not([data-exp-palette=""]) .bg-teal-500{background-color:var(--exp-button);color:var(--exp-on-button)}
:root[data-exp-palette]:not([data-exp-palette=""]) .hover\:bg-brand-700:hover,:root[data-exp-palette]:not([data-exp-palette=""]) .hover\:bg-teal-700:hover,:root[data-exp-palette]:not([data-exp-palette=""]) .hover\:bg-teal-600:hover{background-color:var(--exp-button-hover);color:var(--exp-on-button)}
:root[data-exp-palette]:not([data-exp-palette=""]) input[type="date"],:root[data-exp-palette]:not([data-exp-palette=""]) input[type="number"],:root[data-exp-palette]:not([data-exp-palette=""]) input[type="text"],:root[data-exp-palette]:not([data-exp-palette=""]) input[type="search"],:root[data-exp-palette]:not([data-exp-palette=""]) select,:root[data-exp-palette]:not([data-exp-palette=""]) textarea {background-color:var(--exp-subtle);color:var(--exp-fg);border-color:var(--exp-line);color-scheme:normal}
:root[data-exp-palette]:not([data-exp-palette=""]).dark input[type="date"],:root[data-exp-palette]:not([data-exp-palette=""]).dark select {color-scheme:dark}
:root[data-exp-palette]:not([data-exp-palette=""]) [role="dialog"],:root[data-exp-palette]:not([data-exp-palette=""]) [role="menu"],:root[data-exp-palette]:not([data-exp-palette=""]) [role="listbox"]{--tw-ring-color:var(--exp-button)}
:root[data-exp-palette]:not([data-exp-palette=""]) input:focus-visible,:root[data-exp-palette]:not([data-exp-palette=""]) textarea:focus-visible,:root[data-exp-palette]:not([data-exp-palette=""]) select:focus-visible,:root[data-exp-palette]:not([data-exp-palette=""]) button:focus-visible{outline-color:var(--exp-button)}
:root[data-exp-palette]:not([data-exp-palette=""]) .exp-theme-preview {border:1px solid var(--exp-line)}
:root[data-exp-palette]:not([data-exp-palette=""]) .faq-question:hover,:root[data-exp-palette]:not([data-exp-palette=""]) .faq-question:focus-visible {background-color:var(--exp-subtle);color:var(--exp-fg)}

/* Backup actions: protect readable labels from generic text-color overrides.
   Scoped to alternate palettes; the original Expensal theme is unchanged. */
:root[data-exp-palette]:not([data-exp-palette=""]) .exp-themed-backup-action {
  background-color:var(--exp-button) !important;
  color:var(--exp-on-button) !important;
}
:root[data-exp-palette]:not([data-exp-palette=""]) .exp-themed-backup-action:hover {
  background-color:var(--exp-button-hover) !important;
  color:var(--exp-on-button) !important;
}
:root[data-exp-palette]:not([data-exp-palette=""]) .exp-themed-delete-action {
  background-color:#be123c !important;
  color:#fff !important;
}
:root[data-exp-palette]:not([data-exp-palette=""]) .exp-themed-delete-action:hover {
  background-color:#9f1239 !important;
  color:#fff !important;
}
:root[data-exp-palette]:not([data-exp-palette=""]) .exp-themed-backup-action *,
:root[data-exp-palette]:not([data-exp-palette=""]) .exp-themed-delete-action * {
  color:inherit !important;
}

/* Alternate-brand identity: the original wordmark remains untouched in default mode. */
:root[data-exp-palette]:not([data-exp-palette=""]) #app-title {
  background-image:none !important;
  background-color:transparent !important;
  -webkit-text-fill-color:var(--exp-fg) !important;
  color:var(--exp-fg) !important;
}
:root[data-exp-palette]:not([data-exp-palette=""]) #sub-title {
  color:var(--exp-muted) !important;
}

/* Alternate palettes: modal overlays, genuine popup surfaces and native controls.
   The original theme remains untouched. */
:root[data-exp-palette]:not([data-exp-palette=""]) {
  --exp-overlay: color-mix(in srgb, var(--exp-page) 85%, transparent);
}
:root[data-exp-palette]:not([data-exp-palette=""]) .fixed.inset-0:is(.bg-slate-900\/50,.bg-slate-950\/75,.bg-slate-950\/70,.bg-black\/50,.bg-black\/60,.bg-black\/70),
:root[data-exp-palette]:not([data-exp-palette=""]) [role="dialog"].fixed.inset-0 {
  background-color:var(--exp-overlay);
}
:root[data-exp-palette]:not([data-exp-palette=""]) :is(select,select.bg-slate-50,select.dark\:bg-slate-900) {
  background-color:var(--exp-subtle);
  color:var(--exp-fg);
  border-color:var(--exp-line);
  accent-color:var(--exp-button);
}
:root[data-exp-palette]:not([data-exp-palette=""]) select option,
:root[data-exp-palette]:not([data-exp-palette=""]) select optgroup {
  background-color:var(--exp-surface);
  color:var(--exp-fg);
}
:root[data-exp-palette]:not([data-exp-palette=""]) :is(select,input[type="date"]) {
  color-scheme:light;
}
:root.dark[data-exp-palette]:not([data-exp-palette=""]) :is(select,input[type="date"]) {
  color-scheme:dark;
}
:root[data-exp-palette]:not([data-exp-palette=""]) :is(select,input,textarea)::selection {
  color:var(--exp-on-button);
  background-color:var(--exp-button);
}
:root[data-exp-palette]:not([data-exp-palette=""]) :is(select,input,textarea):focus-visible {
  outline-color:var(--exp-button);
}
:root[data-exp-palette]:not([data-exp-palette=""]) :is(.bg-indigo-600,.bg-indigo-700,.dark\:bg-indigo-900\/30) {
  background-color:var(--exp-button);
  color:var(--exp-on-button);
}
:root[data-exp-palette]:not([data-exp-palette=""]) :is(.bg-indigo-50,.bg-indigo-100,.bg-indigo-950\/60,.bg-indigo-900\/20) {
  background-color:var(--exp-subtle);
}
:root[data-exp-palette]:not([data-exp-palette=""]) :is(.text-indigo-500,.text-indigo-600,.text-indigo-700,.dark\:text-indigo-400) {
  color:var(--exp-button);
}
:root[data-exp-palette]:not([data-exp-palette=""]) :is(.border-indigo-200,.border-indigo-500,.dark\:border-indigo-700) {
  border-color:var(--exp-line);
}
/* Contextual financial states (positive / negative) retain their semantics. */

:root[data-exp-palette]:not([data-exp-palette=""]) .exp-theme-select-menu{
  z-index:9999;overflow:auto;overscroll-behavior:contain;padding:5px;
  background:var(--exp-surface);color:var(--exp-fg);
  border:1px solid var(--exp-line);border-radius:10px;
  box-shadow:0 12px 30px rgba(0,0,0,.2);
  scrollbar-color:var(--exp-button) var(--exp-subtle);
}
:root[data-exp-palette]:not([data-exp-palette=""]) .exp-theme-select-item{
  display:block;width:100%;padding:9px 11px;text-align:left;
  color:var(--exp-fg);background:transparent;
  border:0;border-radius:6px;font-size:13px;line-height:1.35;
}
:root[data-exp-palette]:not([data-exp-palette=""]) .exp-theme-select-item:is(:hover,:focus-visible,.exp-theme-select-focused){
  color:var(--exp-fg);background:var(--exp-subtle);outline:1px solid var(--exp-line);
}
:root[data-exp-palette]:not([data-exp-palette=""]) .exp-theme-select-item[aria-selected="true"]{
  color:var(--exp-on-button);background:var(--exp-button);
}
:root[data-exp-palette]:not([data-exp-palette=""]) .exp-theme-select-item:disabled{opacity:.45;cursor:not-allowed}

/* Finishing pass for screenshots: financial analysis tiles, goal dialogs,
   category cards and table headers, in both light and dark modes. */
:root[data-exp-palette]:not([data-exp-palette=""]) {
  --exp-chart-card:var(--exp-subtle);
}
:root[data-exp-palette]:not([data-exp-palette=""]) :is(
  .bg-slate-950,.bg-slate-950\/80,.bg-slate-950\/60,.bg-slate-900\/90,
  .bg-slate-900\/80,.bg-slate-900\/70,.bg-slate-900\/60,
  .bg-slate-900\/50,.bg-slate-900\/40,.bg-slate-800\/80,
  .dark\:bg-slate-950\/70,.dark\:bg-slate-950\/60,
  .dark\:bg-slate-900\/80,.dark\:bg-slate-900\/70) {
  background-color:var(--exp-chart-card);
  color:var(--exp-fg);
  border-color:var(--exp-line);
}
:root[data-exp-palette]:not([data-exp-palette=""]) :is(
  .bg-teal-900\/50,.bg-teal-900\/40,.bg-teal-800\/40,
  .bg-indigo-950\/50,.bg-blue-950\/50,.bg-blue-900\/30) {
  background-color:var(--exp-subtle);
  color:var(--exp-fg);
  border-color:var(--exp-line);
}
:root[data-exp-palette]:not([data-exp-palette=""]) :is(
  thead,thead tr,th,.exp-theme-select-menu, .exp-theme-option) {
  border-color:var(--exp-line);
}
:root[data-exp-palette]:not([data-exp-palette=""]) :is(
  thead,thead tr,th) {background-color:var(--exp-subtle);color:var(--exp-fg)}
:root[data-exp-palette]:not([data-exp-palette=""]) :is(
  input[type="date"],input[type="datetime-local"]) {
  accent-color:var(--exp-button);
  color:var(--exp-fg);
  background:var(--exp-subtle);
  border-color:var(--exp-line);
}
:root[data-exp-palette]:not([data-exp-palette=""]) :is(
  .exp-theme-select-item,button,select,input,textarea) {caret-color:var(--exp-button)}

/* Explicitly identified components: never borrow the default teal/navy palette. */
:root[data-exp-palette]:not([data-exp-palette=""]) .exp-tool-btn {
 background:var(--exp-subtle) !important;color:var(--exp-fg) !important;
 border:1px solid var(--exp-line) !important;
}
:root[data-exp-palette]:not([data-exp-palette=""]) .exp-tool-btn[aria-selected="true"] {
 background:var(--exp-button) !important;color:var(--exp-on-button) !important;
 border-color:var(--exp-button) !important;
}
:root[data-exp-palette]:not([data-exp-palette=""]) .exp-tool-btn:is(:hover,:focus-visible):not([aria-selected="true"]) {
 background:var(--exp-surface) !important;border-color:var(--exp-button) !important;
}
:root[data-exp-palette]:not([data-exp-palette=""]) .exp-tool-btn [id^="exp-tool-desc-"] {color:inherit !important;opacity:.87}
:root[data-exp-palette]:not([data-exp-palette=""]) #base-income-card-anchor {
 background:var(--exp-subtle) !important;border-color:var(--exp-line) !important;
}
:root[data-exp-palette]:not([data-exp-palette=""]) #base-income-card-anchor > .grid > section {
 background:var(--exp-surface) !important;border-color:var(--exp-line) !important;color:var(--exp-fg) !important;
}
:root[data-exp-palette]:not([data-exp-palette=""]) #base-income-card-anchor > .grid > section > .bg-teal-100 {
 background:var(--exp-subtle) !important;color:var(--exp-button) !important;
}
:root[data-exp-palette]:not([data-exp-palette=""]) #btn-save-income {
 background:var(--exp-button) !important;color:var(--exp-on-button) !important;
}
:root[data-exp-palette]:not([data-exp-palette=""]) #btn-save-income:hover {
 background:var(--exp-button-hover) !important;
}
:root[data-exp-palette]:not([data-exp-palette=""]) #exp-go-to-statement-import {
 background:var(--exp-subtle) !important;color:var(--exp-fg) !important;border-color:var(--exp-button) !important;
}
:root[data-exp-palette]:not([data-exp-palette=""]) #exp-go-to-statement-import:hover {
 background:var(--exp-button) !important;color:var(--exp-on-button) !important;
}
:root[data-exp-palette]:not([data-exp-palette=""]) [data-goal-action]:not([data-goal-action="delete"]) {
 background:var(--exp-subtle) !important;color:var(--exp-fg) !important;border-color:var(--exp-line) !important;
}
:root[data-exp-palette]:not([data-exp-palette=""]) [data-goal-action]:not([data-goal-action="delete"]):hover {
 background:var(--exp-button) !important;color:var(--exp-on-button) !important;
}
:root[data-exp-palette]:not([data-exp-palette=""]) :is(#btn-seed-cat,#btn-seed-pm) {
 background:var(--exp-subtle) !important;color:var(--exp-fg) !important;border-color:var(--exp-line) !important;
}
:root[data-exp-palette]:not([data-exp-palette=""]) :is(#btn-seed-cat,#btn-seed-pm):hover {
 background:var(--exp-button) !important;color:var(--exp-on-button) !important;
}
:root[data-exp-palette]:not([data-exp-palette=""]) :is(#btn-seed-cat,#btn-seed-pm) svg {color:inherit !important}
/* Haitian date names require the existing custom picker even in the default palette. */
:root[lang="ht"]:is(:not([data-exp-palette]),[data-exp-palette=""]) :is(.exp-theme-calendar,.exp-date-trigger){--exp-line:#cbd5e1;--exp-surface:#fff;--exp-fg:#0f172a;--exp-subtle:#f1f5f9;--exp-button:#0f766e;--exp-on-button:#fff}
:root.dark[lang="ht"]:is(:not([data-exp-palette]),[data-exp-palette=""]) :is(.exp-theme-calendar,.exp-date-trigger){--exp-line:#475569;--exp-surface:#1e293b;--exp-fg:#f1f5f9;--exp-subtle:#334155;--exp-button:#14b8a6;--exp-on-button:#0f172a}
:is(:root[data-exp-palette]:not([data-exp-palette=""]),:root[lang="ht"]) .exp-theme-calendar {
 position:fixed;z-index:10010;padding:12px;width:min(292px,calc(100vw - 16px));
 border:1px solid var(--exp-line);border-radius:12px;
 background:var(--exp-surface);color:var(--exp-fg);
 box-shadow:0 14px 38px rgba(0,0,0,.25);font-size:13px;
}
:is(:root[data-exp-palette]:not([data-exp-palette=""]),:root[lang="ht"]) .exp-theme-calendar-nav,
:is(:root[data-exp-palette]:not([data-exp-palette=""]),:root[lang="ht"]) .exp-theme-calendar-grid {
 display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:3px;
}
:is(:root[data-exp-palette]:not([data-exp-palette=""]),:root[lang="ht"]) .exp-theme-calendar-nav {
 display:flex;justify-content:space-between;align-items:center;margin-bottom:10px;
}
:is(:root[data-exp-palette]:not([data-exp-palette=""]),:root[lang="ht"]) .exp-theme-calendar button {
 background:transparent;color:var(--exp-fg);border-radius:6px;padding:7px 2px;min-width:28px;
}
:is(:root[data-exp-palette]:not([data-exp-palette=""]),:root[lang="ht"]) .exp-theme-calendar button:hover,
:is(:root[data-exp-palette]:not([data-exp-palette=""]),:root[lang="ht"]) .exp-theme-calendar button:focus-visible {
 background:var(--exp-subtle);outline:1px solid var(--exp-line);
}
:is(:root[data-exp-palette]:not([data-exp-palette=""]),:root[lang="ht"]) .exp-theme-calendar button[aria-selected="true"] {
 background:var(--exp-button);color:var(--exp-on-button);
}
:is(:root[data-exp-palette]:not([data-exp-palette=""]),:root[lang="ht"]) .exp-theme-calendar button:disabled {opacity:.35}
:is(:root[data-exp-palette]:not([data-exp-palette=""]),:root[lang="ht"]) input[type="date"]::-webkit-calendar-picker-indicator {opacity:.0}

/* One date picker per field. The real native input remains a form value carrier,
   but its picker is unreachable while an alternate palette is enabled. */
.exp-date-host {position:relative;display:block;width:100%;min-width:0;}
.exp-date-trigger {display:none}
:is(:root.exp-custom-dates[data-exp-palette]:not([data-exp-palette=""]),:root.exp-custom-dates[lang="ht"]) .exp-date-host > input[type="date"] {
 position:absolute !important;inset:0 !important;width:100% !important;
 height:100% !important;opacity:0 !important;pointer-events:none !important;
}
:is(:root.exp-custom-dates[data-exp-palette]:not([data-exp-palette=""]),:root.exp-custom-dates[lang="ht"]) .exp-date-trigger {
 display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;
 min-height:42px;padding:10px 12px;border:1px solid var(--exp-line);
 border-radius:12px;background:var(--exp-subtle);color:var(--exp-fg);
 font:inherit;font-weight:600;text-align:left;cursor:pointer;
}
:is(:root.exp-custom-dates[data-exp-palette]:not([data-exp-palette=""]),:root.exp-custom-dates[lang="ht"]) .exp-date-trigger:hover,
:is(:root.exp-custom-dates[data-exp-palette]:not([data-exp-palette=""]),:root.exp-custom-dates[lang="ht"]) .exp-date-trigger:focus-visible {
 outline:2px solid var(--exp-button);outline-offset:1px;
}
:is(:root.exp-custom-dates[data-exp-palette]:not([data-exp-palette=""]),:root.exp-custom-dates[lang="ht"]) .exp-date-icon {
 color:var(--exp-button);font-size:19px;line-height:1;
}
:is(:root.exp-custom-dates[data-exp-palette]:not([data-exp-palette=""]),:root.exp-custom-dates[lang="ht"]) .exp-date-trigger:disabled {opacity:.55;cursor:not-allowed}

/* Stable theme-card layout on small screens and both appearance modes. */
#exp-theme-grid {width:100%;min-width:0;grid-template-columns:repeat(2,minmax(0,1fr));align-items:stretch;}
#exp-theme-grid .exp-theme-option {width:100%;min-width:0;height:100%;min-height:154px;box-sizing:border-box;justify-content:flex-start;}
#exp-theme-grid .exp-theme-name {min-height:32px;overflow-wrap:anywhere;}
#exp-theme-grid .exp-theme-samples {flex:none;min-width:0;}
#exp-theme-grid .exp-theme-labels {white-space:normal;word-spacing:normal;}
#exp-theme-grid .exp-theme-selected {margin-top:auto;}
@media (min-width:640px){#exp-theme-grid {grid-template-columns:repeat(4,minmax(0,1fr));}}
/* Calendar stays entirely inside the screen rather than clipping off the left. */
.exp-theme-calendar {box-sizing:border-box;max-width:calc(100vw - 16px);}
@media (max-width:639px){
 .exp-theme-calendar {width:min(292px,calc(100vw - 16px));max-height:calc(100dvh - 16px);overflow-y:auto;}
}

/* Theme-mode changes must be atomic: interpolating colors on hundreds of
   elements is expensive on low-powered mobile GPUs. Ordinary interactions
   retain their existing animations. */
:root.exp-theme-switching *,
:root.exp-theme-switching *::before,
:root.exp-theme-switching *::after {
  transition-property:none !important;
  transition-duration:0s !important;
}

/* Responsive theme selector: intrinsic-height cards, no overflow, rounded corners.
   Applies to ALL palettes and both light/dark modes. */
#exp-theme-grid.exp-theme-grid {
  display:grid;
  grid-template-columns:minmax(0,1fr);
  gap:12px;
  width:100%;
  max-width:100%;
  align-items:stretch;
}
#exp-theme-grid > .exp-theme-option {
  display:flex;
  flex-direction:column;
  position:relative;
  min-width:0;
  max-width:100%;
  width:100%;
  height:auto;
  min-height:0;
  padding:14px;
  gap:9px;
  box-sizing:border-box;
  border-radius:14px;
  overflow:hidden;
  justify-content:flex-start;
}
#exp-theme-grid > .exp-theme-option[aria-pressed="true"] {
  padding:13px;
  border-width:2px;
}
#exp-theme-grid .exp-theme-name {
  display:block;
  min-height:0;
  max-width:100%;
  overflow-wrap:anywhere;
  line-height:1.4;
}
#exp-theme-grid .exp-theme-samples {
  display:grid;
  width:100%;
  min-width:0;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:8px;
}
#exp-theme-grid .exp-theme-preview {
  min-width:0;
  max-width:100%;
  box-sizing:border-box;
  border-radius:8px;
}
#exp-theme-grid .exp-theme-labels {
  display:block;
  min-width:0;
  white-space:normal;
  line-height:1.35;
}
#exp-theme-grid .exp-theme-selected {margin-top:auto;}
@media(min-width:480px) {
  #exp-theme-grid.exp-theme-grid {grid-template-columns:repeat(2,minmax(0,1fr));}
}
@media(min-width:900px) {
  #exp-theme-grid.exp-theme-grid {grid-template-columns:repeat(4,minmax(0,1fr));}
}

/* Theme cards: explicit UI styling even when broad button/palette rules apply. */
#exp-theme-settings #exp-theme-grid.exp-theme-grid {display:grid;grid-template-columns:minmax(0,1fr);gap:12px;align-items:stretch;}
#exp-theme-settings #exp-theme-grid > button.exp-theme-option {
  display:flex;flex-direction:column;align-items:stretch;justify-content:flex-start;
  width:100%;min-width:0;min-height:166px;height:auto;margin:0;
  padding:12px;border:1px solid #cbd5e1;border-radius:14px;
  background:#f8fafc;color:#334155;text-align:left;overflow:hidden;
  box-shadow:0 1px 3px rgba(15,23,42,.06);
}
.dark #exp-theme-settings #exp-theme-grid > button.exp-theme-option {
  background:#172033;color:#e2e8f0;border-color:#475569;
}
:root[data-exp-palette]:not([data-exp-palette=""]) #exp-theme-settings #exp-theme-grid > button.exp-theme-option {
  background:var(--exp-subtle);color:var(--exp-fg);border-color:var(--exp-line);
}
#exp-theme-settings #exp-theme-grid > button.exp-theme-option[aria-pressed="true"] {
  border:2px solid #0d9488;padding:11px;
}
:root[data-exp-palette]:not([data-exp-palette=""]) #exp-theme-settings #exp-theme-grid > button.exp-theme-option[aria-pressed="true"] {border-color:var(--exp-button);}
#exp-theme-settings #exp-theme-grid > button.exp-theme-option .exp-theme-name {
  font-size:12px;font-weight:700;line-height:1.4;text-align:left;min-height:34px;
}
#exp-theme-settings #exp-theme-grid > button.exp-theme-option .exp-theme-samples {
  display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;width:100%;
}
#exp-theme-settings #exp-theme-grid > button.exp-theme-option .exp-theme-preview {
  min-width:0;width:100%;height:55px;min-height:0;padding:7px;border-radius:8px;overflow:hidden;
}
#exp-theme-settings #exp-theme-grid > button.exp-theme-option .exp-theme-labels {
  display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;
  font-size:11px;white-space:normal;text-align:center;
}
#exp-theme-settings #exp-theme-grid > button.exp-theme-option .exp-theme-selected {
  display:block;min-height:15px;margin-top:auto;font-size:11px;font-weight:700;
}
@media(min-width:480px){#exp-theme-settings #exp-theme-grid.exp-theme-grid {grid-template-columns:repeat(2,minmax(0,1fr));}}
@media(min-width:900px){#exp-theme-settings #exp-theme-grid.exp-theme-grid {grid-template-columns:repeat(4,minmax(0,1fr));}}
/* Keep backup badges distinct from their card surface in every alternate palette. */
:root[data-exp-palette]:not([data-exp-palette=""]) #view-settings .exp-backup-icon {
  color:var(--exp-button);
  background-color:color-mix(in srgb, var(--exp-button) 18%, var(--exp-surface));
}

/* KPI shortcuts use the same semantic color as the amount beside them.
   Explicit badge states prevent broad palette utilities from flattening hover. */
:root #btn-kpi-base-income { color:var(--exp-fg, #1e293b); }
:root.dark #btn-kpi-base-income { color:var(--exp-fg, #f1f5f9); }
:root #btn-kpi-extra-income { color:#059669; }
:root.dark #btn-kpi-extra-income { color:#34d399; }
:root :is(#btn-kpi-base-income, #btn-kpi-extra-income, #btn-kpi-view-expenses) {
  background-color:color-mix(in srgb, currentColor 12%, transparent);
}
:root :is(#btn-kpi-base-income, #btn-kpi-extra-income, #btn-kpi-view-expenses):is(:hover, :focus-visible) {
  background-color:color-mix(in srgb, currentColor 26%, transparent);
}
:root :is(#btn-kpi-base-income, #btn-kpi-extra-income, #btn-kpi-view-expenses):focus-visible {
  outline:2px solid currentColor;
  outline-offset:3px;
}

/* Keep mobile budget arrows at the edges, like the calendar navigation. */
#exp-budget-prev,#exp-budget-next {flex:0 0 auto;}
#exp-budget-month {flex:0 0 auto;}
@media(max-width:639px){
  nav[aria-label="Navegar meses del presupuesto"] {
    display:flex;width:100%;min-width:0;justify-content:space-between;align-items:center;
    margin-inline:auto;gap:8px;flex-wrap:nowrap;
  }
  nav[aria-label="Navegar meses del presupuesto"] #exp-budget-month {
    min-width:0;width:auto;max-width:calc(100% - 96px);text-align:center;
  }
}


/* Empty-data actions remain recognizable in every palette and mode. */
button.exp-themed-delete-action:disabled,#exp-learning-clear:disabled{opacity:.5;cursor:not-allowed}
