:root{
  color-scheme:light;
  --bg:#F0F3F7;--surface:#FFFFFF;--surface-alt:#E9EFF6;
  --text:#1C3455;--muted:#687B94;--primary:#285B94;--border:#D9E2ED;
  --shadow:#1C34551a;--on-primary:#FFFFFF;--nav-bg:#1C3455;--nav-text:#F5F8FF;
}
:root[data-theme="dark"]{
  color-scheme:dark;
  --bg:#0B1424;--surface:#17253B;--surface-alt:#20334E;
  --text:#F5F8FF;--muted:#A7B7CE;--primary:#6EA4E8;--border:#334763;
  --shadow:#0007;--on-primary:#0B1424;--nav-bg:#0B1424;--nav-text:#F5F8FF;
}
html,body,.app,.main,.content{background:var(--bg);color:var(--text)}
body,.main,.sidebar,.top,.card,.hero,.more-card,.action,.modal,.login-wrap,.login-card,.bottom,.site-header{transition:background .6s,color .6s,border-color .6s,box-shadow .6s}
.main{background:radial-gradient(circle at 90% 0%,color-mix(in srgb,var(--primary) 10%,transparent),transparent 35%),var(--bg)}
.sidebar{background:var(--nav-bg);color:var(--nav-text);border-right:1px solid var(--border);box-shadow:8px 0 30px var(--shadow)}
.sidebar .brand,.side-brand-row .brand,.workspace-profile b{color:var(--nav-text)}
.sidebar .brand-logo{filter:brightness(0) invert(1)}
.workspace-profile{background:#ffffff12;border:1px solid #ffffff3b;color:var(--nav-text)}
.workspace-profile>span{background:var(--primary);color:var(--on-primary)}
.workspace-profile small,.side-foot small{color:#C7D5E8}
.nav-label,.side-tools-label{color:#A7B7CE}
.side-link{color:#D8E5F7}.side-link:hover{background:#ffffff19;color:#fff}
.side-link.active{background:var(--primary);color:var(--on-primary);box-shadow:0 6px 18px var(--shadow)}
.side-link.active::before{background:#fff}
.side-foot{border-top-color:#ffffff3b;color:#D8E5F7}.side-status{background:#6EA4E8}
.top{background:var(--surface);color:var(--text);border-bottom:1px solid var(--border);box-shadow:0 6px 18px var(--shadow)}
.top h1,.top>div:first-child::before{color:var(--text)}
.top .round,.profile-trigger,.profile-dropdown,.profile-dropdown button,.install-button{background:var(--surface-alt);color:var(--text);border:1px solid var(--border);box-shadow:none}
.profile-menu-name,.profile-dropdown button:hover{color:var(--text)}.profile-dropdown button:hover{background:var(--surface-alt)}
.workspace-intro .eyebrow,.daily-head .eyebrow,.calendar-kicker{color:var(--primary)}
.workspace-intro h1,.workspace-intro p,.card h2,.section-title,.module-head h2,.calendar-head h2,.calendar-detail-head h2,.daily-head h2,.daily-date{color:var(--text)}
.workspace-intro p,.muted,.help{color:var(--muted)}
.hero,.card,.stat,.tool-link,.daily-stat,.calendar-panel,.calendar-detail,.loan-estimate,.amount-box,.profile-dropdown,.modal{background:var(--surface);border:1px solid var(--border);color:var(--text);box-shadow:0 8px 25px var(--shadow)}
.home-balance{background:linear-gradient(135deg,var(--surface),var(--surface-alt))!important;border:1px solid var(--border);color:var(--text);box-shadow:0 10px 30px var(--shadow)}
.home-balance .muted,.home-balance .balance,.home-balance .eye,.home-balance .mini strong{color:var(--text)!important}
.home-balance .mini{background:var(--surface);border:1px solid var(--border);color:var(--text);box-shadow:0 5px 14px var(--shadow)}
.home-balance .mini .muted{color:var(--muted)!important}
.budget-overview{background:linear-gradient(145deg,#1C3455,#285B94);border:1px solid #6EA4E8;box-shadow:0 12px 32px var(--shadow);color:#fff}
:root[data-theme="dark"] .budget-overview{background:linear-gradient(145deg,#17253B,#20334E);border-color:#334763}
.budget-overview h2,.budget-plan-heading strong,.budget-save-panel strong{color:#fff}
.budget-kicker,.budget-subtitle,.budget-plan-numbers,.budget-plan-heading span,.budget-split-labels,.budget-save-panel small{color:#DCE9FA}
.budget-manage,.budget-plan-icon,.budget-save-icon{background:#E9EFF6;color:#1C3455;border-color:#fff}
.budget-split .needs,.budget-split-labels .needs,.budget-plan-row.needs .budget-plan-meter i{background:#6EA4E8}
.budget-split .wants,.budget-split-labels .wants,.budget-plan-row.wants .budget-plan-meter i{background:#B8CADF}
.budget-split .savings,.budget-split-labels .savings{background:#F5F8FF}
.budget-save-panel{background:#ffffff16;border-color:#ffffff4d}
.action,.home-quick .action,.tool-link{background:var(--surface);border:1px solid var(--border);color:var(--text);box-shadow:0 6px 18px var(--shadow)}
.home-quick .action:nth-child(n){background:var(--surface);border:1px solid var(--border);color:var(--text);box-shadow:0 6px 18px var(--shadow)}
.home-quick .action:nth-child(n) strong{color:var(--text)}
.home-quick .action .pill-icon{background:var(--surface-alt);color:var(--primary)}
.action:hover,.tool-link:hover,.more-card:hover{transform:translateY(-4px);border-color:var(--primary);box-shadow:0 14px 26px var(--shadow)}
.btn,.seg button.active,.chip.active,.day.today{background:var(--primary);color:var(--on-primary);box-shadow:none}
.btn:hover,.btn.secondary:hover{filter:brightness(1.12);background:var(--primary)}
.btn.secondary{background:var(--nav-bg);color:#fff;box-shadow:none}
.btn.danger{background:var(--surface-alt);color:var(--text)}
.chip,.input,.select,.textarea,.mini,.daily-stat,.loan-estimate,.amount-box,.seg{background:var(--surface-alt);color:var(--text);border-color:var(--border)}
.input:focus,.select:focus,.textarea:focus{border-color:var(--primary);box-shadow:0 0 0 3px color-mix(in srgb,var(--primary) 22%,transparent)}
.seg button{color:var(--muted)}.seg button.active{color:var(--on-primary)}
.more-grid .more-card{background:var(--surface)!important;color:var(--text)!important;border:1px solid var(--border)!important;box-shadow:0 6px 17px var(--shadow)!important}
.more-grid .more-card .more-copy strong{color:var(--text)!important}.more-grid .more-card .more-copy small{color:var(--muted)!important}
.more-grid .more-card:hover{border-color:var(--primary)!important;box-shadow:0 15px 27px var(--shadow)!important}
.more-card:nth-child(n) .more-icon{background:var(--surface-alt);color:var(--primary)}
.more-card:nth-child(3n+2) .more-icon{background:var(--primary);color:var(--on-primary)}
.more-card:nth-child(3n) .more-icon{background:var(--nav-bg);color:#fff}
:root[data-theme="dark"] .more-card:nth-child(3n) .more-icon{background:#6EA4E8;color:#0B1424}
.nav-icon.home,.nav-icon.activity,.nav-icon.add,.nav-icon.insights,.nav-icon.more,.nav-icon.budgets,.nav-icon.goals,.nav-icon.people,.nav-icon.debts,.nav-icon.loans,.nav-icon.calendar{--icon-a:#285B94;--icon-b:#1C3455;box-shadow:0 5px 12px var(--shadow)!important}
.nav-icon.activity,.nav-icon.goals,.nav-icon.loans{--icon-a:#6EA4E8;--icon-b:#285B94}
.nav-icon.insights,.nav-icon.people,.nav-icon.calendar{--icon-a:#E9EFF6;--icon-b:#A7B7CE;color:#1C3455!important}
.nav-icon.more,.nav-icon.budgets{--icon-a:#FFFFFF;--icon-b:#D9E2ED;color:#1C3455!important}
:root[data-theme="dark"] .nav-icon.more,:root[data-theme="dark"] .nav-icon.budgets{--icon-a:#6EA4E8;--icon-b:#285B94;color:#fff!important}
.tx,.calendar-item{border-bottom-color:var(--border)}
.tx-info strong,.table-transaction strong,.calendar-item strong,.loan-numbers strong{color:var(--text)}
.tx-info small,.calendar-item small{color:var(--muted)}
.scroll-transactions{background:var(--surface);scrollbar-color:var(--primary) var(--surface-alt)}
.scroll-transactions .tx.is-centered{border-color:var(--primary);box-shadow:0 8px 20px var(--shadow)}
.daily-tracker{background:var(--surface)}
.transaction-table{background:var(--surface);color:var(--text)}
.transaction-table caption{color:var(--muted)}.transaction-table thead,.transaction-table th,.transaction-table th:last-child{background:var(--nav-bg);color:#fff}
.transaction-table td{color:var(--text);border-bottom-color:var(--border)}
.transaction-data-row:nth-child(even){background:var(--surface-alt)}
.transaction-data-row:hover,.transaction-data-row.is-centered,.transaction-data-row.is-centered td:last-child{background:color-mix(in srgb,var(--primary) 12%,var(--surface))}
.transaction-table td:last-child{background:var(--surface)}
.table-category,.record-actions .tiny,.inline-actions .tiny,.table-actions .tiny,.title-suggestion{background:var(--surface-alt);color:var(--text);border-color:var(--border)}
.calendar-nav,.calendar-today,.calendar-day,.calendar-item-icon{background:var(--surface-alt);color:var(--text);border-color:var(--border)}
.calendar-day.is-selected{background:var(--primary);color:var(--on-primary);border-color:var(--primary)}
.calendar-day.has-event i,.event-dot{background:#6EA4E8}.calendar-day.has-transaction::after,.transaction-dot{background:var(--primary)}
.calendar-detail-section{border-top-color:var(--border)}.calendar-detail-section h3{color:var(--text)}.calendar-detail-section h3 span{background:var(--surface-alt);color:var(--text)}
.modal-bg{background:#0B1424bb}.transaction-dialog>.row{background:var(--surface);border-bottom-color:var(--border)}
.transaction-dialog>.row .tiny{background:var(--surface-alt);border-color:var(--border);color:var(--text)}
.login-wrap{background:var(--bg)}
.login-hero{background:radial-gradient(circle at 76% 20%,#6EA4E850,transparent 40%),linear-gradient(145deg,#1C3455,#285B94);color:#fff}
:root[data-theme="dark"] .login-hero{background:radial-gradient(circle at 76% 20%,#6EA4E83d,transparent 40%),linear-gradient(145deg,#0B1424,#20334E)}
.login-hero::before,.login-hero::after{border-color:#A7B7CE33;background:#ffffff0b;box-shadow:0 0 0 58px #ffffff08,0 0 0 128px #ffffff05}
.login-eyebrow,.login-hero p,.login-hero-footer{color:#D9E7F8}
.login-card{background:var(--surface);color:var(--text);border:1px solid var(--border);box-shadow:0 24px 55px var(--shadow)}
.login-card-brand,.login-card h2,.login-card label,.login-card .download-site-link{color:var(--text)}
.login-kicker{color:var(--primary)}.login-card>p,.login-card .notice{color:var(--muted)}
.login-card .auth-links .forgot-link,.login-install{background:var(--surface-alt);color:var(--text);border-color:var(--border)}
.login-card .auth-links .forgot-link:hover{background:var(--surface);border-color:var(--primary)}
.bottom{background:var(--surface);color:var(--text);border-top-color:var(--border);box-shadow:0 -7px 22px var(--shadow)}
.bottom button{color:var(--muted)}.bottom button.active{color:var(--primary)}
.bottom button.add .ico{background:var(--primary);color:var(--on-primary)}
.message{background:var(--nav-bg);color:#fff;border:1px solid var(--border)}
:focus-visible{outline:3px solid var(--primary);outline-offset:2px}
/* The toggle lives outside the app root so rerenders cannot remove it. */
.theme-toggle{position:fixed;right:18px;bottom:18px;z-index:60;display:inline-flex;align-items:center;gap:8px;min-height:44px;padding:7px 13px;border-radius:999px;border:1px solid var(--border);background:var(--surface);color:var(--text);box-shadow:0 8px 24px var(--shadow);font:700 13px/1.2 Manrope,Arial,sans-serif;cursor:pointer}
.theme-toggle:hover{border-color:var(--primary);transform:translateY(-2px)}
.theme-toggle-icon{font-size:19px;line-height:1}.theme-toggle-icon::before{content:'☀';color:#285B94}.theme-toggle.night .theme-toggle-icon::before{content:'☾';color:#6EA4E8}
@media(max-width:850px){.theme-toggle{right:10px;bottom:calc(83px + env(safe-area-inset-bottom));padding:6px 10px;min-height:38px}.login-wrap~.theme-toggle{bottom:15px}.top h1{color:var(--text)}}
@media(prefers-reduced-motion:reduce){body,.main,.sidebar,.top,.card,.hero,.more-card,.action,.modal,.login-wrap,.login-card,.bottom,.theme-toggle{transition:none!important}}

@media(max-width:850px){body:has(.login-wrap) .theme-toggle{bottom:12px}}

/* Blue globe loader in both app themes. */
.cloud-loading{background:radial-gradient(circle at 50% 35%,var(--surface) 0,var(--bg) 70%);color:var(--text)}
.cloud-loading .section-path{background:var(--surface-alt);border-color:var(--border);box-shadow:inset -2px 20px 10px #1C34550b,inset -2px 30px 10px #1C345508,0 12px 30px var(--shadow)}
.cloud-loading .globe{box-shadow:0 8px 20px #1C345588}
.cloud-loading .globe::before{box-shadow:inset 0 0 15px #1C3455}
.cloud-loading .wrapper span{background:#285B94;box-shadow:inset 0 0 25px #1C3455}
.cloud-loading .wrapper span:nth-child(2n){background:#6EA4E8}
:root[data-theme="dark"] .cloud-loading .wrapper span{background:#6EA4E8;box-shadow:inset 0 0 25px #285B94}
:root[data-theme="dark"] .cloud-loading .wrapper span:nth-child(2n){background:#285B94}
/* Every More icon uses a white badge; the original symbols remain. */
.more-grid .more-card .more-icon{background:#FFFFFF!important;color:#1C3455!important;border:1px solid #D9E2ED;box-shadow:0 6px 15px #1C34552b}
/* Day has a light navigation rail; Night retains its deep navy rail. */
:root:not([data-theme="dark"]) .sidebar{background:#FFFFFF;color:#1C3455;border-right:1px solid #D9E2ED;box-shadow:8px 0 30px #1C34550d}
:root:not([data-theme="dark"]) .sidebar .brand,:root:not([data-theme="dark"]) .side-brand-row .brand{color:#1C3455}
:root:not([data-theme="dark"]) .sidebar .brand-logo{filter:brightness(0) saturate(100%) invert(33%) sepia(27%) saturate(1470%) hue-rotate(170deg) brightness(93%) contrast(93%)}
:root:not([data-theme="dark"]) .workspace-profile{background:#E9EFF6;border-color:#D9E2ED;color:#1C3455;box-shadow:none}
:root:not([data-theme="dark"]) .workspace-profile b{color:#1C3455}
:root:not([data-theme="dark"]) .workspace-profile small,:root:not([data-theme="dark"]) .side-foot small{color:#687B94}
:root:not([data-theme="dark"]) .nav-label,:root:not([data-theme="dark"]) .side-tools-label{color:#687B94}
:root:not([data-theme="dark"]) .side-link{color:#1C3455}
:root:not([data-theme="dark"]) .side-link:hover{background:#E9EFF6;color:#1C3455}
:root:not([data-theme="dark"]) .side-link.active{background:#285B94;color:#FFFFFF;box-shadow:0 7px 16px #285B9433}
:root:not([data-theme="dark"]) .side-link.active::before{background:#6EA4E8}
:root:not([data-theme="dark"]) .side-foot{border-top-color:#D9E2ED;color:#285B94}
:root:not([data-theme="dark"]) .side-status{background:#285B94}
/* Strong, distinct budget colors in the split and its matching labels. */
.budget-split{height:17px;background:#FFFFFF33;box-shadow:inset 0 1px 4px #0B142466,0 0 0 1px #FFFFFF36}
.budget-split .needs,.budget-split-labels .needs,.budget-plan-row.needs .budget-plan-meter i{background:#35C5F1}
.budget-split .wants,.budget-split-labels .wants,.budget-plan-row.wants .budget-plan-meter i{background:#FFB86B}
.budget-split .savings,.budget-split-labels .savings{background:#72DEAC}
.budget-split-labels i{box-shadow:0 0 0 2px #FFFFFF35}

