/* Shared by the application, embedded pages, presentation and public demo. */
:root{--muted:#666170;--green:#217557}
html{font-size:100%;-webkit-text-size-adjust:100%;text-size-adjust:100%;scroll-padding-block:1rem 7rem}
body{font-size:1rem}
button,input,select,textarea{font-family:inherit}
button,summary,input:not([type=checkbox]):not([type=radio]):not([type=range]):not([type=hidden]),select{min-height:44px}
button,summary{min-width:44px}
textarea{font-size:1rem;line-height:1.6}
input:not([type=checkbox]):not([type=radio]):not([type=range]),select,textarea{border-color:#93879e}
input::placeholder,textarea::placeholder{color:#716a7d;opacity:1}
input[type=checkbox],input[type=radio]{width:1.25rem;height:1.25rem;min-width:1.25rem;flex-shrink:0;accent-color:var(--purple)}
label:has(input[type=checkbox]),label:has(input[type=radio]){min-height:44px;padding-block:8px;cursor:pointer}
:where(button,a,input,select,textarea,summary,[tabindex]):focus-visible{outline:3px solid var(--purple)!important;outline-offset:3px;box-shadow:0 0 0 2px #fff}
:where(button,a,input,select,textarea,summary,[tabindex]){scroll-margin-block:1rem 7rem}
.skip-link{position:fixed;top:12px;left:12px;z-index:10000;transform:translateY(-200%);background:var(--purple);color:white!important;padding:12px 20px;min-height:44px;border-radius:12px;font-weight:700;text-decoration:underline}
.skip-link:focus{transform:none}
#main-content:focus{outline:none}
.language-picker button,.record-actions button,.profile-actions button,.account-category-toggle,#demo-toggle{min-width:44px;min-height:44px}
.record-actions,.profile-actions{flex-wrap:wrap;gap:10px}
.record-row>.record-actions{min-width:0}
.account-menu.header-genie-opening .menu-panel,.nav-wrap.genie-opening .nav-extra{animation-duration:180ms}
.account-menu.header-genie-closing .menu-panel,.nav-wrap.genie-closing .nav-extra{animation-duration:120ms}
.nav-wrap .tab.nav-bouncing[data-tab],.nav-main .tab.nav-bouncing[data-tab] svg{animation-duration:440ms}
.account-submenu{animation-duration:120ms}
.demo-row,.goal-track i,.floating-note,.cta{transition-duration:180ms}
.splash-logo,.splash-caption{animation-duration:180ms!important;animation-delay:0s!important}
#app-splash{transition-duration:120ms!important}
@media(max-width:900px){
 body{font-size:1rem;line-height:1.6}
 .small,.notes,small,.metric-hint,.metric-label,.empty,.record-row small,.task-row small,.subject-row small,.activity-row time,.demo-hint,.demo-banner p{font-size:.875rem}
 .record-row strong,.task-row strong,.subject-row strong,.detail-row,.list-row,.task-top>.money,.record-row>.money{font-size:1rem}
 .filter-group label,.field,.form-grid label,.admin-page label,.class-selector,.history-filter{font-size:.875rem}
 input:not([type=checkbox]):not([type=radio]):not([type=range]),select,textarea,.filter-group select,.class-selector select,.history-filter select{font-size:1rem}
 .menu-panel button,.menu-panel a.text-btn,.account-menu>summary,.account-submenu-item{font-size:.9375rem}
 .section-head button,.record-actions button,.task-actions button,.month-actions button,.profile-actions button{font-size:.875rem}
 .nav-main .tab{font-size:clamp(.625rem,2.5vw,.75rem);line-height:1.3;min-height:68px;overflow-wrap:normal}
 .nav-extra .tab{font-size:.9375rem}
 .page-heading .small{font-size:.875rem}
 .page-heading .eyebrow,.eyebrow{font-size:.75rem;line-height:1.7}
 #sync{font-size:.75rem}
 .metric-grid:not(.money-metrics):not(.admin-metrics){grid-template-columns:repeat(2,minmax(0,1fr))}
 .metric-value{white-space:normal;overflow-wrap:anywhere}
 .metric-hint,.metric-label{min-height:0}
 .profile-actions{display:flex}
 .filter-group,.period-filters>*{min-width:0}
 .detail-row,.list-row,.subject-row{grid-template-columns:minmax(0,1fr) minmax(0,max-content)}
 .detail-row .money{white-space:normal;overflow-wrap:anywhere}
 .results-list .record-row>.money{font-size:.875rem}
 .language-picker button{font-size:.875rem}
 .hero-description,.benefits p,.how-intro p,.how-steps p,.faq-list p,.closing-cta p{font-size:1rem}
 .device-note,footer,.demo-banner a,.demo-signup{font-size:.875rem}
 .faq-list summary{min-height:44px;font-size:1rem}
}
@media(max-width:400px){.metric-grid:not(.money-metrics):not(.admin-metrics){grid-template-columns:minmax(0,1fr)}.section-head{flex-wrap:wrap}.subject-row{grid-template-columns:minmax(0,1fr)}.subject-result{justify-content:flex-start}.filter-group select{max-width:100%}}
@media(prefers-reduced-motion:reduce){
 *,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}
 .nav-wrap .nav-extra,.account-menu .menu-panel{clip-path:none!important;will-change:auto!important}
}
@media(forced-colors:active){:where(button,a,input,select,textarea,summary,[tabindex]):focus-visible{outline-color:Highlight!important}.tab.active{border:2px solid Highlight}.account-setting-highlight{outline:3px solid Highlight!important}}
.subject-management-row .record-actions button,.result-submissions .record-actions button,.calendar-toolbar button{min-width:44px;min-height:44px}
.goal-progress-caption,.pull-refresh span{color:var(--muted)}.goal-progress-caption strong{color:var(--green)}
@media(max-width:900px){.bank-hero .eyebrow{font-size:.75rem}.record-row>.money{white-space:normal;overflow-wrap:anywhere}}
@media(max-width:400px){
 .results-list,.results-list.has-actions{display:block}
 .record-row,.record-row.with-actions,.results-list .record-row,.results-list.has-actions .record-row,.results-list .record-row.with-actions{display:grid;grid-template-columns:minmax(0,1fr)}
 .record-row>.money{justify-self:start;text-align:left}
 .record-row>.record-actions,.results-list .record-row.with-actions .record-actions{grid-column:1;grid-row:auto;justify-self:start;justify-content:flex-start;max-width:100%}
}
@media(max-width:900px){
 .account-cascade-compact .account-submenu-item{font-size:.9375rem}
 .chart-value,.chart-label{font-size:.75rem}
 .table-scroll table,.demo-mode .readonly-label{font-size:.875rem}
 .signed-in main{padding-bottom:calc(7rem + env(safe-area-inset-bottom,0px))}
 .signed-in footer{padding-bottom:calc(8rem + env(safe-area-inset-bottom,0px))}
 .pending-delete,#toast{bottom:calc(7rem + env(safe-area-inset-bottom,0px))}
}
/* Shared accessible styled pickers, including the open list in Safari. */
.salt-picker{position:relative;display:inline-grid;min-width:0;max-width:100%;vertical-align:middle}
select.salt-picker-native{position:absolute!important;width:1px!important;height:1px!important;min-height:0!important;padding:0!important;margin:0!important;opacity:0;pointer-events:none;clip-path:inset(50%)}
.salt-picker-button{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:46px;width:100%;max-width:100%;padding:11px 14px;border:1px solid #d8cfee;border-radius:14px;background:#f8f5fc;color:#493298;font:600 1rem/1.4 system-ui,-apple-system,sans-serif;text-align:left;cursor:pointer}
.salt-picker-caption{min-width:0;white-space:nowrap;overflow:visible;text-overflow:clip}
.salt-picker-arrow{flex:0 0 9px;width:9px;height:9px;margin:0 3px 4px;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:rotate(45deg)}
.salt-picker-button[aria-expanded=true] .salt-picker-arrow{transform:rotate(225deg);margin-bottom:-4px}
.salt-picker-button:hover:not(:disabled){background:#f1ecfa;border-color:#8e7aba}.salt-picker-button:disabled{cursor:default;opacity:.65}
.salt-picker-panel{position:fixed;z-index:3000;overflow:auto;overscroll-behavior:contain;padding:6px;background:#fff;color:#252332;border:1px solid #d8cfee;border-radius:14px;box-shadow:0 12px 35px #49329826;font:500 1rem/1.4 system-ui,-apple-system,sans-serif}
.salt-picker-panel [role=option]{display:flex;align-items:center;gap:12px;min-height:44px;padding:11px 12px;border-radius:9px;cursor:pointer;overflow-wrap:anywhere}
.salt-picker-panel [role=option]::before{content:'';flex:0 0 16px;width:16px}.salt-picker-panel [aria-selected=true]::before{content:'✓';color:#493298;font-weight:750}.salt-picker-panel [aria-selected=true]{background:#eee8f6;color:#493298;font-weight:650}.salt-picker-panel [role=option]:hover,.salt-picker-panel .picker-highlight{background:#f1ecfa;outline:2px solid #493298;outline-offset:-2px}.salt-picker-panel [aria-disabled=true]{opacity:.5;cursor:default}
.filter-group .salt-picker{max-width:250px}.form-grid .salt-picker{width:100%;margin-top:7px}.fc-filters .salt-picker{width:100%}
@media(max-width:600px){.filter-group .salt-picker{width:100%;max-width:none}#month-filter .salt-picker{width:auto;min-width:180px;max-width:70%}.salt-picker-panel{font-size:16px}}
/* Prominent legal links: shared public/app/demo, with no mobile navigation overlap. */
header.has-legal-navigation{flex-wrap:wrap}
.salt-legal-nav{display:flex;align-items:center;justify-content:center;gap:8px 20px;flex-wrap:wrap}
.salt-legal-nav a{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:8px 10px;color:#493298;background:#eee8f6;border-radius:10px;font-size:.875rem;font-weight:650;line-height:1.4;text-align:center;text-decoration:underline;text-underline-offset:3px}
.salt-legal-nav a:hover{background:#e2d9f2}.salt-legal-nav a:focus-visible{outline:3px solid #217557!important;outline-offset:3px}
.salt-legal-header{flex:1 0 100%;width:100%;grid-column:1/-1;grid-row:3;order:10;border-top:1px solid #e6e1ec;padding-top:8px;justify-content:flex-end}
footer:has(.salt-legal-footer){flex-wrap:wrap;row-gap:16px}
.salt-legal-footer{flex:1 0 100%;width:100%;padding:20px;border:1px solid #e6e1ec;border-radius:16px;background:#fff;color:#252332;text-align:center}
.salt-legal-footer strong{font-size:1rem}.salt-legal-footer p{margin:8px 0 12px;font-size:.875rem;line-height:1.6;color:#666170}
.landing-header.has-legal-navigation{height:auto;min-height:106px;padding-top:20px;padding-bottom:12px}
.landing-header .salt-legal-header{font-size:.875rem;gap:8px 14px}
@media(max-width:900px){.salt-legal-header{justify-content:center;gap:6px}.salt-legal-header a{font-size:.75rem;padding:8px;min-height:44px}.salt-legal-footer{padding:18px}.salt-legal-footer .salt-legal-nav{gap:8px}.salt-legal-footer .salt-legal-nav a{flex:1 1 180px}.landing-header.has-legal-navigation{min-height:85px}}
html.section-embedded .salt-legal-header,html.section-embedded .salt-legal-footer{display:none!important}
.legal-operator{margin:24px 0;padding:22px;background:#fff;border:1px solid #e6e1ec;border-radius:16px}.legal-operator h2{margin-top:0}.legal-operator dl{display:grid;grid-template-columns:minmax(140px,.6fr) minmax(0,1fr);gap:10px 20px;margin:0}.legal-operator dt{font-weight:650}.legal-operator dd{margin:0;overflow-wrap:anywhere}.legal-operator-footer a{color:#493298;text-decoration:underline}@media(max-width:600px){.legal-operator{padding:18px}.legal-operator dl{grid-template-columns:1fr;gap:4px}.legal-operator dd{margin-bottom:12px}}
/* Compact header controls retain a 44px touch target and their separate mobile rows. */
.site-header .inbox-bell{background:transparent;border-radius:0;width:44px;height:44px;min-width:44px;flex-basis:44px;padding:10px;color:#493298}
.site-header .inbox-bell svg{width:22px;height:22px;flex:0 0 22px}
.site-header .inbox-bell:hover{background:transparent;color:#217557}
.site-header .inbox-count{top:1px;right:0;min-width:15px;font-size:9px;padding:1px 3px}
.site-header .language-picker{align-self:flex-start;gap:0;padding:2px;border-radius:11px}
.site-header .language-picker button{min-width:44px;min-height:44px;padding:6px 7px;gap:4px;font-size:.75rem;line-height:1;border-radius:9px}
.site-header .language-picker button span{font-size:16px;line-height:1}
.site-header .account-menu>summary{font-size:.875rem;min-height:44px;padding:7px 8px}
@media(max-width:900px){
 .site-header{padding-top:8px;padding-bottom:8px;row-gap:5px;column-gap:10px}
 .site-header .language-picker{order:1;margin-top:0}
 .site-header .account-greeting{order:2;line-height:1.35;margin:0;font-size:.875rem}
 .site-header .header-right{order:3;margin-top:0;align-items:center}
 .site-header:has(#header-tools:not([hidden])) #header-tools{grid-template-columns:minmax(0,1fr) 44px auto auto;gap:5px}
 .site-header .inbox-bell svg{width:20px;height:20px;flex-basis:20px}
 .site-header .account-menu>summary{font-size:.875rem;padding:6px;gap:6px}
 .site-header .salt-legal-header{order:10;padding-top:5px}
}
/* A quieter, proportionate header and legal footer; touch targets remain accessible. */
.site-header{min-height:72px;padding:12px 24px;column-gap:16px;row-gap:6px}
.site-header .account-menu>summary{font-size:.8125rem;padding:6px 7px}
.site-header .inbox-bell svg{width:18px;height:18px;flex-basis:18px}
.site-header .language-picker{padding:1px;background:transparent;gap:0}
.site-header .language-picker button{font-size:.6875rem;padding:5px 6px;gap:4px}
.site-header .language-picker button span{font-size:14px}
.site-header .language-picker button.active{background:#f1ecfa;box-shadow:none}
.salt-legal-header{padding-top:4px;gap:4px 12px}
.salt-legal-nav a{font-size:.8125rem;padding:6px 8px;background:transparent;border-radius:8px}
.salt-legal-nav a:hover{background:#f4f0fa}
.salt-legal-footer{padding:12px 16px;border:0;border-top:1px solid #e6e1ec;border-radius:0;background:transparent}
.salt-legal-footer strong{font-size:.8125rem;font-weight:650}
.salt-legal-footer p{max-width:72ch;margin:5px auto;font-size:.75rem;line-height:1.5}
.salt-legal-footer .salt-legal-nav{gap:4px 12px}
.salt-legal-footer .salt-legal-nav a{font-size:.8125rem}
@media(max-width:900px){.site-header{padding:8px 16px;row-gap:4px;column-gap:8px}.site-header .account-menu>summary{font-size:.8125rem;padding:6px 5px;gap:5px}.site-header .account-greeting{font-size:.8125rem}.site-header .salt-legal-header{padding-top:3px;gap:4px}.salt-legal-header a{font-size:.6875rem;padding:6px}.salt-legal-footer{padding:12px 4px}.salt-legal-footer .salt-legal-nav a{flex:0 1 auto;font-size:.75rem}}

/* Fine, content-sized single-line selectors. */
.salt-picker{width:max-content;max-width:100%}
.salt-picker-button{gap:10px;min-height:44px;padding:7px 10px;border-radius:10px;background:#fcfaff;font-size:.8125rem;font-weight:500;line-height:1.35}
.salt-picker-arrow{flex-basis:7px;width:7px;height:7px;border-width:1.5px;margin-right:2px}
.filter-group .salt-picker{max-width:100%;width:max-content}
.filter-group{min-width:0;max-width:100%}
.form-grid .salt-picker,.fc-filters .salt-picker{width:100%}
.salt-picker-panel{font-size:.8125rem;border-radius:11px;padding:5px}
.salt-picker-panel [role=option]{min-height:44px;padding:8px 10px;font-weight:500}
@media(max-width:600px){.period-filters .filter-group:has(#child-select){grid-column:1/-1}.filter-group .salt-picker{width:100%}#month-filter .salt-picker{width:max-content;min-width:0;max-width:100%}.salt-picker-button,.salt-picker-panel{font-size:.8125rem}}
@media(max-width:600px){.period-filters #month-filter{grid-column:auto;display:grid;grid-template-columns:minmax(0,1fr);gap:6px;align-items:start}.period-filters #month-filter label{font-size:.875rem}.period-filters #month-filter .salt-picker{width:100%;max-width:100%}}
.cookie-banner{position:fixed;z-index:220;bottom:18px;left:50%;transform:translateX(-50%);width:min(900px,calc(100% - 28px));padding:20px;border:1px solid #d8cfee;border-radius:18px;background:#fff;color:#252332;box-shadow:0 10px 40px #25233224;display:grid;gap:16px}
.cookie-banner strong{font-size:1rem}.cookie-banner p{font-size:.875rem;line-height:1.6;margin:7px 0}.cookie-banner a,.cookie-settings a{color:#493298;text-decoration:underline}.cookie-actions{display:flex;gap:10px;flex-wrap:wrap}.cookie-actions button{background:#eee8f6;color:#493298;border:1px solid #b9a9d8;font-size:.875rem;min-height:44px;padding:10px 14px;border-radius:10px;flex:1 1 150px;font-weight:650}.cookie-actions button:hover{background:#e2d9f2}.cookie-settings{width:min(650px,calc(100% - 28px));max-height:85dvh;padding:24px;border:1px solid #d8cfee;border-radius:20px;background:#fff;color:#252332}.cookie-settings::backdrop{background:#25233266}.cookie-settings .top{display:flex;justify-content:space-between;align-items:center;gap:14px}.cookie-settings h2{font-size:1.25rem}.cookie-category{padding:16px 0;border-top:1px solid #e6e1ec}.cookie-category p{font-size:.875rem;line-height:1.6;margin:8px 0}.cookie-category label{display:flex;align-items:center;gap:10px}.cookie-category .pill{margin-left:12px}.salt-legal-footer [data-cookie-action]{min-height:44px;font-size:.8125rem;color:#493298;text-decoration:underline}
@media(max-width:900px){.signed-in .cookie-banner{bottom:calc(90px + env(safe-area-inset-bottom,0px))}.cookie-banner{padding:16px;max-height:65dvh;overflow:auto}.cookie-actions{gap:8px}.cookie-actions button{flex:1 1 130px;font-size:.8125rem}.cookie-settings{padding:20px}}
.cookie-choice-warning{position:fixed;z-index:230;left:50%;bottom:20px;transform:translateX(-50%);width:min(560px,calc(100% - 28px));padding:14px 18px;background:#fff4da;color:#60470e;border:1px solid #a98227;border-radius:12px;font-size:.875rem}
