/* System typography: use the platform's own face, optical sizing and metrics. */
html{font-size:17px;-webkit-text-size-adjust:auto;text-size-adjust:auto}
@supports(font:-apple-system-body){html{font:-apple-system-body}}
body{font-family:-apple-system,BlinkMacSystemFont,system-ui,"Segoe UI",sans-serif;font-size:1rem;line-height:1.47;font-weight:400;letter-spacing:-.015em;font-optical-sizing:auto}
button,input,select{font-family:inherit;font-optical-sizing:inherit;letter-spacing:-.012em}
h1,h2,.amount,.brand{font-optical-sizing:auto;text-wrap:balance}
h1{font-size:2rem;line-height:1.12;font-weight:700;letter-spacing:-.035em;margin:8px 0}
h2{font-size:1.18rem;line-height:1.3;font-weight:650;letter-spacing:-.022em;margin-bottom:18px}
strong{font-weight:600}
p{font-size:1rem;line-height:1.55;letter-spacing:-.012em}
small{font-size:.765rem;line-height:1.4;letter-spacing:0}
.muted{color:#67746c}
small,.legend,footer,.asidefoot{color:#67746c}
header>div>small,.hero>small:first-child,.cards>.card>small:first-child,.tip>small:first-child,.gate>small:first-child{font-size:.647rem;font-weight:600;letter-spacing:.07em;line-height:1.4}
.brand{font-family:ui-rounded,-apple-system,BlinkMacSystemFont,system-ui,sans-serif;font-size:1.76rem;font-weight:700;letter-spacing:-.045em;line-height:1.2}
.brand span{font-weight:600}
.amount{font-size:2.35rem;line-height:1.12;font-weight:650;letter-spacing:-.035em;font-variant-numeric:tabular-nums lining-nums;margin:14px 0 12px;overflow-wrap:anywhere}
.hero .amount{font-size:2.7rem;font-weight:600}
.hero small{color:#d1e2d5}
.entry{gap:12px;padding:17px 0;min-width:0}
.entry .detail{min-width:0}
.entry .detail strong{font-size:.94rem;line-height:1.3;font-weight:600;letter-spacing:-.015em;overflow-wrap:anywhere}
.entry small{font-size:.765rem;line-height:1.45;margin-top:4px}
.entry>strong{font-size:.94rem;line-height:1.3;font-weight:600;font-variant-numeric:tabular-nums lining-nums;letter-spacing:-.02em;white-space:nowrap}
.category{font-size:.88rem;line-height:1.45}
.category strong,.member,.ring,table{font-variant-numeric:tabular-nums lining-nums}
.ring{font-size:1.4rem;line-height:1;font-weight:650;letter-spacing:-.035em;flex-shrink:0}
.month{font-size:.94rem;line-height:1.3}
.month strong{font-weight:600;text-transform:capitalize}
.pill{font-size:.706rem;line-height:1.35;font-weight:500;letter-spacing:0}
button{font-size:.94rem;line-height:1.2;font-weight:500;min-height:44px}
.primary{font-weight:600}
.mini{font-size:.765rem;line-height:1.25;font-weight:500;min-height:34px}
input,select{font-size:1rem;line-height:1.3;min-height:46px}
label{font-size:.82rem;line-height:1.4;font-weight:500;letter-spacing:-.005em;gap:8px}
label input,label select{font-weight:400}
nav button{font-size:.88rem;line-height:1.3;font-weight:500}
nav button.active{font-weight:600}
.notice,.cloudwarn{font-size:.88rem;line-height:1.5}
.tip p{font-size:.94rem;line-height:1.55}
.sync,.legend,.linkbox{font-size:.765rem;line-height:1.45}
.week small{font-size:.706rem;font-variant-numeric:tabular-nums;letter-spacing:0}
footer,.asidefoot{font-size:.706rem;line-height:1.65;letter-spacing:0}
.gate h2{font-size:1.88rem;line-height:1.16;letter-spacing:-.03em;font-weight:650}
.score .muted{font-size:.88rem}
.icon{flex-shrink:0}
.toast{font-size:.88rem;line-height:1.45;max-width:calc(100vw - 32px);width:max-content;text-align:center}
@media(max-width:1000px){.amount{font-size:1.9rem}.hero .amount{font-size:2.5rem}}
@media(max-width:650px){
 header{flex-wrap:wrap;gap:14px;align-items:flex-start}header>div{flex:1 1 100%}header .primary{font-size:.88rem;padding:12px 16px}
 h1{font-size:2rem;line-height:1.1;letter-spacing:-.035em}
 h2{font-size:1.12rem;line-height:1.3}
 .amount{font-size:1.62rem;letter-spacing:-.03em}.hero .amount{font-size:2.5rem}
 .cards>.card>small:first-child{font-size:.647rem;letter-spacing:.05em}
 nav button{font-size:.706rem;line-height:1.3;padding:11px 5px;min-height:44px;letter-spacing:-.01em}
 nav{gap:2px;flex-wrap:wrap}
 .month{font-size:.88rem;gap:8px}.month button{min-height:36px}
 .entry{flex-wrap:wrap;column-gap:10px;row-gap:8px}.entry .detail{flex:1 1 90px}
 .entry .detail strong,.entry>strong{font-size:.88rem}.entry>strong{margin-left:auto}
 .entry small{font-size:.706rem}.entry .mini{font-size:.706rem}
 .workspace{align-items:center;gap:8px}.workspace select{max-width:100%}
 .legend{font-size:.706rem}.card>.row.spread{flex-wrap:wrap;row-gap:8px}
 .member.row{flex-wrap:wrap;row-gap:8px}
 .fields{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:360px){.cards{grid-template-columns:1fr}.hero{grid-column:auto}.amount{font-size:2rem}.fields{grid-template-columns:1fr}nav button{font-size:.647rem}.score{gap:12px}}
@media(prefers-contrast:more){small,.muted,.legend,footer,.asidefoot{color:#46574b}.hero small{color:#fff}}
.goal-summary{margin-bottom:22px}.goal-progress{margin-top:24px}.goal-progress .track{height:9px}.metric-line{display:flex;justify-content:space-between;gap:18px;padding:13px 0;border-bottom:1px solid var(--line);font-size:.88rem}.metric-line strong{font-variant-numeric:tabular-nums;white-space:nowrap}.metric-total{font-size:1rem;padding-top:19px;border-bottom:0}.advice-item{padding:16px 0;border-bottom:1px solid var(--line)}.advice-item:last-child{border:0}.advice-item p{margin:6px 0 0;font-size:.94rem}.category-choice{display:flex;align-items:center;gap:10px;padding:12px 0;font-size:.88rem;font-weight:400;border-bottom:1px solid var(--line)}.category-choice input{width:19px;height:19px;min-height:0;accent-color:var(--green);flex-shrink:0}.category-choice span{flex:1}.category-choice strong{font-size:.82rem;font-variant-numeric:tabular-nums}.scenario-result{background:#f0f4eb;padding:20px;border-radius:16px;margin:18px 0}.scenario-result p{font-size:.88rem}.scenario-result small{font-size:.647rem;letter-spacing:.05em;font-weight:600}input[type="range"]{padding:0;accent-color:var(--green);width:100%;border:0;background:none}
@media(max-width:650px){nav{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:1px}nav button{font-size:.647rem;min-width:0;padding:11px 2px;letter-spacing:-.02em}.metric-line{font-size:.82rem;gap:10px}.metric-total{font-size:.88rem}}
.archived{opacity:.7}.danger{background:#f6e6df;color:#914930}.warning{background:#f4eedc;color:#80632f}.destructive{background:#f5e7e1;color:#9b422f;font-weight:600}.budget-notice{margin:20px 0}.budget-notice p{font-size:.88rem;margin:8px 0}.merge-choice{border:1px solid var(--line);border-radius:14px;padding:15px;margin:12px 0;display:grid;gap:8px}
@media(max-width:650px){nav{grid-template-columns:repeat(4,minmax(0,1fr));row-gap:1px}nav button{padding:7px 2px;min-height:33px;font-size:.647rem}main{padding-bottom:135px}}
nav .nav-more{display:none}
@media(max-width:650px){nav{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:2px}nav .nav-secondary{display:none}nav .nav-more{display:block}nav button{min-height:44px;padding:11px 3px;font-size:.647rem}main{padding-bottom:115px}}
.forecast-summary{margin-bottom:22px}.forecast-wide{grid-column:1/-1}.forecast-chart{overflow-x:auto;margin:25px 0 16px}.forecast-columns{display:flex;gap:10px;align-items:flex-end;height:185px;min-width:300px}.forecast-column{flex:1;min-width:20px;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;gap:10px;height:100%}.forecast-column small{font-size:.647rem}.forecast-bar{width:70%;max-width:44px;border-radius:7px 7px 2px 2px;background:#7f9e89}.forecast-bar.estimated{background:#cfb08c;border:1px dashed #98744a}.forecast-thresholds{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:22px 0}.threshold{display:grid;gap:8px;padding:18px;border-radius:15px;background:#f0f3eb}.threshold strong{font-size:1.15rem;font-variant-numeric:tabular-nums}.threshold small{text-transform:capitalize}.forecast-details{margin-top:18px}.forecast-details summary{cursor:pointer;font-size:.88rem;color:var(--green)}.table-scroll{overflow-x:auto;margin:16px 0}.table-scroll table{min-width:420px;font-variant-numeric:tabular-nums}.table-scroll th{font-size:.765rem;font-weight:600;color:#67746c}.table-scroll td{font-size:.82rem;white-space:nowrap}.table-scroll td:first-child{white-space:normal;min-width:100px}.week-history-row{display:grid;grid-template-columns:95px minmax(20px,1fr) auto;gap:10px;align-items:center;padding:10px 0}.week-history-row .track{margin:0}.week-history-row strong{font-size:.82rem;font-variant-numeric:tabular-nums}.week-history-row small{font-size:.706rem}#forecastExclude{min-height:0}#exceptionLabel span{font-size:.82rem}
@media(max-width:650px){.forecast-thresholds{grid-template-columns:1fr}.threshold{grid-template-columns:1fr auto;align-items:center}.threshold small:last-child{grid-column:1/-1}.forecast-columns{gap:6px}.week-history-row{grid-template-columns:85px minmax(20px,1fr) auto;gap:8px}.forecast-wide{grid-column:auto}}
.language-control{display:flex;justify-content:flex-end;margin:-10px 0 18px}.language-control label{display:flex;align-items:center;gap:10px;font-size:.765rem;color:#67746c}.language-control select{font-size:.82rem;padding:8px 12px;min-height:36px}.language-settings{margin:20px 0}nav button{overflow-wrap:anywhere}
@media(max-width:650px){.language-control{margin:0 0 18px}.language-control select{min-height:40px}nav button{font-size:.62rem}}
