:root{--ink:#15343c;--muted:#66787d;--accent:#c6f66a;--teal:#17675f;--paper:#f5f7f8;--line:#dce5e7;--red:#a52c39}*{box-sizing:border-box}body{margin:0;color:var(--ink);background:var(--paper);font:16px/1.5 system-ui,-apple-system,sans-serif}button,input,select,textarea{font:inherit}button,a,input,select,textarea{outline-offset:4px}button:focus-visible,a:focus-visible{outline:3px solid #6a941c}button{cursor:pointer;border:1px solid var(--line);border-radius:9px;padding:10px 16px;background:#fff;color:var(--ink);font-weight:650}button:hover{background:#edf3f3}button:disabled{opacity:.5;cursor:wait}.primary{background:var(--ink);color:white;border-color:var(--ink)}.primary:hover{background:#28545e}.accent{background:var(--accent);border-color:var(--accent)}.quiet{border:0;background:transparent;padding:7px}.danger{color:var(--red)}input,select,textarea{padding:11px;border:1px solid #b9cbce;border-radius:8px;max-width:100%;background:white;color:var(--ink)}label{font-size:14px;font-weight:650;display:block;margin:15px 0 6px}h1{font-size:38px;line-height:1.15;letter-spacing:-1.4px;margin:8px 0 15px}h2{font-size:23px;letter-spacing:-.6px;margin:0 0 12px}h3{font-size:18px;margin:0 0 8px}p{margin:6px 0 16px}.muted,small{color:var(--muted)}small{font-size:14px}a{color:var(--teal)}.row{display:flex;gap:12px;align-items:center;flex-wrap:wrap}.between{justify-content:space-between}.stack>*{display:block;width:100%}.app-header{padding:18px 4vw;display:flex;align-items:center;justify-content:space-between;background:white;border-bottom:1px solid var(--line);gap:18px}.brand{font-size:23px;font-weight:800;display:flex;align-items:center;gap:10px;letter-spacing:-.8px}.brand img{width:35px;height:35px}.app-nav{display:flex;gap:4px;overflow:auto}.app-nav .active{background:#e5efeb;color:#155449}.app-nav button{border:0;white-space:nowrap}.container{max-width:1420px;margin:auto;padding:30px 4vw 50px}.eyebrow{text-transform:uppercase;letter-spacing:1.4px;font-size:12px;font-weight:800;color:var(--teal)}.notice{background:#e5f0ed;padding:14px 18px;border-radius:10px;margin:16px 0;font-size:14px}.warning{background:#fff1d7;color:#755022}.error{background:#ffebed;color:#952636}.demo-banner{background:#ffe9b2;text-align:center;padding:9px;font-size:14px}.cards{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin:25px 0}.card,.panel{background:#fff;border:1px solid var(--line);border-radius:15px;padding:22px}.card .number{font-size:32px;font-weight:750;letter-spacing:-1px;margin:8px 0}.negative{color:var(--red)}.positive{color:var(--teal)}.split{display:grid;grid-template-columns:1.45fr 1fr;gap:22px}.focus{background:#12363e;color:white;border-radius:19px;padding:30px;display:flex;flex-direction:column;align-items:flex-start;min-height:285px;justify-content:space-between}.focus .eyebrow{color:#c6f66a}.focus h2{font-size:30px;max-width:640px}.focus p{color:#cfdddd}.focus button{background:var(--accent);border-color:var(--accent)}.focus-list{display:grid;gap:12px}.insight{text-align:left;display:block;width:100%;padding:21px;border-radius:13px;box-shadow:0 2px 0 #dce5e755}.insight p{font-weight:400;color:var(--muted);margin-bottom:10px}.insight small{color:var(--teal)}.section-head{display:flex;justify-content:space-between;align-items:center;gap:15px;margin:28px 0 16px}.pill{font-size:12px;padding:4px 9px;border-radius:20px;background:#e6eeed;display:inline-block;font-weight:600}.badge-review{background:#fff0d0;color:#73501c}.table-wrap{overflow-x:auto}table{border-collapse:collapse;width:100%;font-size:14px}th{text-align:left;background:#f3f6f6;color:var(--muted);font-size:12px;text-transform:uppercase;letter-spacing:.5px;padding:12px 10px}td{padding:13px 10px;border-bottom:1px solid #e6ecec;vertical-align:top}.right{text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}.merchant{max-width:330px;overflow-wrap:anywhere}.filters{display:flex;gap:12px;flex-wrap:wrap;margin:20px 0}.filters input{flex:1;min-width:150px}.amount-input{width:115px;text-align:right}.bar{height:6px;background:#e8eeee;border-radius:6px;margin-top:7px;overflow:hidden}.bar meter{width:100%;height:10px;display:block}.auth{min-height:100vh;display:grid;grid-template-columns:1fr 1fr}.auth-side{background:var(--ink);color:#fff;padding:7vw;display:flex;flex-direction:column;justify-content:space-between}.auth-side h1{font-size:53px;max-width:470px}.auth-side p{color:#bdced1;max-width:400px}.auth-side .eyebrow{color:var(--accent)}.auth-form{max-width:470px;width:100%;margin:auto;padding:45px 30px}.auth-form input{width:100%}.auth-form button.primary{width:100%;margin-top:22px}.auth-art{font-size:90px;color:#c6f66a;line-height:1;margin:30px 0}.auth-tabs{display:flex;gap:15px;margin:20px 0}.auth-tabs button{flex:1}.loading{padding:80px 20px;text-align:center}.empty{text-align:center;padding:45px 20px;color:var(--muted)}dialog{border:1px solid var(--line);border-radius:17px;width:min(650px,94vw);padding:26px;color:var(--ink);max-height:90vh}dialog::backdrop{background:#102c3bb3}dialog input:not([type=checkbox]),dialog select,dialog textarea{width:100%}dialog .actions{justify-content:flex-end;margin-top:24px}.check{display:flex;gap:9px;align-items:center}.check label{margin:0}.qr{width:210px;height:210px;background:white;padding:8px}.mono{font-family:ui-monospace,monospace;overflow-wrap:anywhere;font-size:14px}.security-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}.status-line{display:flex;justify-content:space-between;border-bottom:1px solid var(--line);padding:12px 0}.footnote{font-size:13px;color:var(--muted);margin-top:24px}#toast{position:fixed;bottom:22px;left:50%;transform:translateX(-50%);max-width:90vw;background:#12363e;color:white;border-radius:10px;padding:14px 20px;z-index:20;box-shadow:0 8px 30px #0002}.selected-link{color:var(--teal)}@media(max-width:1050px){.app-header{flex-wrap:wrap}.app-nav{order:3;width:100%}.cards{grid-template-columns:1fr 1fr}.split{grid-template-columns:1fr}.auth-side h1{font-size:39px}}@media(max-width:650px){h1{font-size:30px}.container{padding:24px 16px}.app-header{padding:16px}.brand{font-size:21px}.cards{gap:9px}.card{padding:15px}.card .number{font-size:26px}.panel{padding:16px}.focus{padding:24px}.focus h2{font-size:25px}.security-grid,.auth{grid-template-columns:1fr}.auth-side{padding:25px}.auth-side h1,.auth-side .auth-art,.auth-side>p{display:none}.auth-form{padding:28px 22px}.section-head{align-items:flex-start;flex-direction:column}dialog{padding:21px}.filters>*{max-width:100%}.app-nav button{padding:10px 12px;font-size:14px}}

/* Responsive sizing: keep controls readable and content within its column. */
.row>*,.split>*,.security-grid>*,.cards>*,.page-heading>*,.status-line>*{min-width:0}
.panel,.card,.focus,.insight{overflow-wrap:anywhere;min-width:0}
.page-heading{align-items:flex-end;gap:20px}.page-heading>div{flex:1 1 300px}
.month-control{flex:0 0 250px;margin:0;max-width:100%}.month-control input{display:block;width:100%;min-width:0;margin-top:6px;min-height:46px}
input[type=month]::-webkit-datetime-edit{padding:0}input[type=month]::-webkit-calendar-picker-indicator{flex-shrink:0;margin-left:10px}
.app-nav{min-width:0;flex-wrap:wrap;overflow:visible}.app-header>.row{justify-content:flex-end}.brand{flex-shrink:0}
.status-line{gap:16px;align-items:flex-start;flex-wrap:wrap}.status-line>span:first-child{flex:1 1 140px}.status-line>div:first-child{flex:1 1 180px}.status-line>div.row{flex:0 1 auto}.status-line p,.security-grid p{overflow-wrap:anywhere}
.filters input,.filters select{min-width:0;flex:1 1 180px;width:100%}.filters input{flex-grow:2}
button{min-height:44px;max-width:100%;white-space:normal;overflow-wrap:anywhere}.table-wrap{max-width:100%}.table-wrap th{white-space:normal}.qr{max-width:100%;height:auto;aspect-ratio:1}
dialog{overflow-y:auto;overscroll-behavior:contain;max-height:calc(100dvh - 32px)}dialog .actions{gap:10px}dialog .status-line{align-items:center}#toast{width:max-content;overflow-wrap:anywhere;max-height:40dvh;overflow:auto;bottom:max(16px,env(safe-area-inset-bottom))}
@media(max-width:1050px){.app-nav{justify-content:center}.app-nav button{flex:1 1 auto}}
@media(max-width:650px){
 .page-heading{align-items:stretch}.page-heading>div{flex-basis:100%}.month-control{flex:1 1 100%;width:100%}.page-heading h1{margin-bottom:0}
 .app-header{gap:12px}.app-header>.row{gap:8px;flex:1 1 auto}.app-header small{font-size:12px}.app-nav{gap:4px}.app-nav button{flex:1 1 28%;padding:10px 8px}
 .card .number{font-size:clamp(21px,5.8vw,29px);line-height:1.25}.card small{font-size:12px}.cards{grid-template-columns:repeat(2,minmax(0,1fr))}
 .row.section-head{flex-direction:row;align-items:stretch}.panel>.row>div.row{width:100%}.panel .row>button,.focus>button{flex:1 1 140px}.focus>button{flex:0 1 auto;width:100%}.section-head>button{width:100%}
 .transactions-table thead,.budget-table thead{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
 .transactions-table,.budget-table,.transactions-table tbody,.budget-table tbody{display:block;width:100%}
 .transactions-table tr,.budget-table tr{display:block;border:1px solid var(--line);border-radius:12px;margin:14px 0;overflow:hidden}
 .transactions-table td,.budget-table td{display:grid;grid-template-columns:minmax(85px,.7fr) minmax(0,1.3fr);gap:5px 12px;text-align:right;white-space:normal;max-width:none;padding:11px 12px;overflow-wrap:anywhere}
 .transactions-table td[data-label]::before,.budget-table td[data-label]::before{content:attr(data-label);text-align:left;color:var(--muted);font-size:12px;font-weight:650;grid-column:1;grid-row:1 / span 3}
 .transactions-table td>*{grid-column:2}.transactions-table td br,.budget-table td br{display:none}.budget-table td small{grid-column:2}.transactions-table .pill{justify-self:end}
 .transactions-table td:last-child,.budget-table td:last-child{border-bottom:0}.transactions-table .transaction-action{display:block}.transaction-action button{width:100%}.transactions-table td.empty{display:block;text-align:center}.budget-table .amount-input{width:100%;min-width:0}
 .status-line>.row{width:100%}.status-line>.row>button{flex:1}.auth-form{padding:26px 20px}dialog{padding:20px 16px}dialog .actions>button{flex:1 1 120px}
}
@media(max-width:360px){.cards{grid-template-columns:1fr}.app-header>.row{justify-content:space-between;width:100%}.container{padding:22px 12px}.panel{padding:14px}}

/* Account scope and authentication controls */
.app-header{display:grid;grid-template-columns:auto 1fr auto;align-items:center}.app-nav{justify-content:center}.header-session{justify-content:flex-end}.signout-button{order:2}.scope-controls{display:flex;gap:14px;flex:0 1 auto!important;align-items:flex-end;flex-wrap:wrap}.scope-controls label{margin:0}.account-control{width:300px;max-width:100%;flex:1 1 240px}.account-control select{display:block;width:100%;margin-top:6px;min-height:46px}.scope-controls .month-control{flex:0 1 250px}.transaction-account{display:block;margin-top:5px;color:var(--teal)}.password-field{display:flex;align-items:stretch;gap:8px}.password-field input{flex:1;min-width:0}.password-field button{flex:0 0 auto;margin:0!important;width:auto!important;min-width:64px}
@media(max-width:1050px){.app-header{grid-template-columns:1fr auto}.app-header .brand{grid-column:1;grid-row:1}.header-session{grid-column:2;grid-row:1}.app-nav{grid-column:1 / -1;grid-row:2}.header-session #sync-status{display:none}.scope-controls{width:100%}.scope-controls .month-control{flex:1 1 230px}}
@media(max-width:650px){.app-header>.header-session{width:auto;justify-content:flex-end}.header-session .signout-button{padding:9px 12px}.scope-controls{gap:12px}.scope-controls .month-control,.account-control{width:100%;flex-basis:100%}.transactions-table td small.transaction-account{grid-column:2}.page-heading>.scope-controls{min-width:0}}
/* Financial planning */
.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin:20px 0}.form-grid label{display:flex;flex-direction:column;gap:8px;min-width:0}.form-grid input,.form-grid select{width:100%;box-sizing:border-box}.goal-choices{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.goal-choice{display:flex;align-items:center;gap:12px;border:1px solid var(--line,#dbe3e5);border-radius:12px;padding:16px}.goal-choice input{width:20px;flex:0 0 20px}.goal-choice:has(input:checked){background:#e9f4ef;border-color:#377963}.plan-metrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:20px 0}.plan-metric{display:flex;flex-direction:column;gap:8px;border-radius:12px;background:#eef4f3;padding:18px;min-width:0}.plan-metric strong{font-size:1.5rem;overflow-wrap:anywhere}.plan-tool{max-width:900px}.plan-tool .status-line{gap:12px;flex-wrap:wrap}.plan-tool .status-line>div{min-width:0;overflow-wrap:anywhere}.planning-cards .insight{min-height:210px}.plan-tool a{color:#245a57;text-decoration:underline}dialog:has(.plan-tool),dialog:has(#profileForm){width:min(940px,calc(100vw - 32px));max-width:calc(100vw - 32px)}.biometric-entry{padding:18px;background:#eef4f3;border-radius:14px;margin:16px 0}.biometric-entry button{width:100%}.biometric-entry p{font-size:.9rem;margin-bottom:0}.app-header{gap:14px}.app-nav button{padding:12px 13px}
@media(max-width:700px){.form-grid,.goal-choices,.plan-metrics{grid-template-columns:1fr}.plan-metric strong{font-size:1.35rem}.plan-tool .status-line>div{width:100%}.plan-tool .status-line .row{width:auto}.planning-cards .insight{min-height:0}.app-nav button{padding:12px 14px;flex-shrink:0}dialog:has(.plan-tool),dialog:has(#profileForm){padding:20px}}

/* Spending and saved account scope */
.spending-panel{margin-bottom:24px}.chart-total{text-align:right}.chart-total strong{display:block;font-size:30px;letter-spacing:-1px}.spending-layout{display:grid;grid-template-columns:minmax(200px,320px) minmax(0,1fr);gap:36px;align-items:center;padding:16px 0}.spending-pie{display:block;width:100%;max-width:270px;margin:auto}.spending-legend{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;align-content:start}.legend-row{display:grid;grid-template-columns:14px minmax(0,1fr) auto;gap:8px;text-align:left;padding:12px}.legend-row>span{overflow-wrap:anywhere}.legend-row>b{font-size:14px;white-space:nowrap}.legend-row>small{grid-column:2 / -1}.legend-row>svg{margin-top:5px}.account-check{display:flex;align-items:center;gap:12px;margin:0;flex:1;min-width:180px}.account-check input{width:20px;height:20px;flex:0 0 auto;accent-color:var(--teal)}.account-check small{display:block;font-weight:400}.account-preference{gap:12px;flex-wrap:wrap}.budget-recommendations .insight{cursor:default}.budget-recommendations article small{display:block}.budget-recommendations .row{margin-top:16px}.budget-recommendations .row button{font-size:14px}#accountPreferences>.primary{margin-top:18px}
@media(max-width:900px){.spending-legend{grid-template-columns:1fr}.spending-layout{gap:20px;grid-template-columns:minmax(180px,240px) minmax(0,1fr)}}
@media(max-width:600px){.spending-layout{grid-template-columns:1fr}.spending-pie{max-width:220px}.chart-total{text-align:left}.chart-total strong{font-size:26px}.account-preference>button{margin-left:32px}.spending-panel .between{align-items:flex-start}}

#bank-sync-status{display:block;max-width:260px;font-size:12px;overflow-wrap:anywhere}
#bank-sync-status:empty{display:none}

.auth-verification{margin:18px 0;min-width:0}.auth-verification small{display:block;margin-top:8px}.auth-verification .quiet{font-size:13px;padding:6px 0}#authCaptcha{min-height:65px;max-width:100%}
