/* Voice Budget: calm, high contrast, mobile first. No external fonts/assets. */
:root{--bg:#f4f5f1;--card:#fff;--text:#172c2a;--muted:#667873;--line:#e2e8e2;--brand:#126b57;--soft:#eaf4ee;--red:#bd5142;--green:#126b57}
body{color:var(--text);background:var(--bg);font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;letter-spacing:-.035em}
.app{max-width:1100px;padding:26px 20px 110px;margin:auto}.top{display:flex;align-items:center;justify-content:space-between;margin:4px 0 20px;gap:12px}.top h1{font-size:23px;letter-spacing:-.06em}.sub{font-size:12px;color:var(--muted);margin-top:6px}.version-pill{border:1px solid var(--line);color:var(--brand);font-size:11px;border-radius:99px;padding:6px 11px;background:#fff;white-space:nowrap}.status{font-size:11px;margin:-8px 0 16px;color:var(--muted)}
.card{border:1px solid var(--line);box-shadow:0 6px 20px #152c2404;border-radius:23px;padding:22px;margin:0 0 18px}.sectionTitle{margin-bottom:18px}.sectionTitle b{font-size:17px}.sectionTitle .secondary{padding:7px 10px;font-size:12px}
.summary-card{background:var(--brand);color:#fff;border:0}.summary-card .sectionTitle{margin-bottom:20px}.summary-card .eyebrow{color:#d9ebe1;font-size:12px}.summary{grid-template-columns:repeat(3,1fr);gap:14px}.metric{padding:0;background:none;border-radius:0}.metric+.metric{border-left:1px solid #ffffff30;padding-left:14px}.metric span{color:#d5e8de;font-size:11px}.metric b{font-size:25px;margin-top:8px;font-weight:650;letter-spacing:-.055em}.metric.exp b,.metric.inc b{color:#fff}.budget-inline{border-top:1px solid #ffffff30;margin-top:21px;padding-top:17px;font-size:12px}.budget-line{display:flex;justify-content:space-between;gap:10px;line-height:1.6}.budget-track{height:5px;border-radius:10px;background:#ffffff25;margin:10px 0 7px;overflow:hidden}.budget-track>div{background:#b8eabd;height:100%;border-radius:10px}.budget-edit{background:none;border:0;padding:0;color:#d6ecdd;font-size:12px;text-decoration:underline;cursor:pointer}
.hero{text-align:center;padding:8px 0 0}.hero h2{font-size:24px;margin:7px 0 7px;letter-spacing:-.06em}.hero-sub{font-size:13px;color:var(--muted);margin:0 0 20px}.mic{position:relative;width:86px;height:86px;background:var(--brand);box-shadow:0 0 0 9px var(--soft);font-size:31px;margin:6px 0 14px;display:inline-flex;align-items:center;justify-content:center}.mic.listening{background:#bd5142;box-shadow:0 0 0 9px #fff0eb}.hint{font-size:12px;line-height:1.7}.hint#voiceHint{min-height:40px;max-width:380px;margin:8px auto}.input-card textarea{background:#f8faf7;min-height:82px;padding:15px;margin-top:16px;line-height:1.6;border-color:var(--line)}.input-card textarea:focus,input:focus,select:focus{outline:2px solid #126b5766;outline-offset:2px}.primary{background:var(--brand);color:#fff;border:0;padding:13px 16px;font-weight:650;font-size:15px;min-height:45px}.secondary{color:var(--text);border-color:var(--line);background:white;padding:10px 13px;min-height:40px;font-size:13px}.danger{min-height:40px}.actions{gap:9px;margin-top:14px}.quick-title{font-size:11px;color:var(--muted);margin:17px 0 8px}.quick-chips{display:flex;flex-wrap:wrap;gap:7px}.quick-chips button{background:var(--soft);color:var(--brand);border:0;padding:9px 13px;border-radius:99px;font-size:12px;min-height:36px}.keyboard-link{background:none;border:0;text-decoration:underline;color:var(--muted);font-size:12px;padding:7px}
.preview{border:2px solid #b9d8c8}.preview .sectionTitle{margin-bottom:10px}.preview-summary{padding:14px 0 17px;border-bottom:1px solid var(--line);margin-bottom:18px}.preview-summary strong{display:block;font-size:29px;letter-spacing:-.06em}.preview-summary span{display:block;color:var(--muted);font-size:12px;margin-top:6px}.preview-warning{color:#9a4a24;background:#fff5e8;border-radius:10px;padding:10px;font-size:12px;line-height:1.6;margin:10px 0}.preview-warning:empty{display:none}label{font-size:12px;margin-bottom:7px;color:var(--muted)}.grid{gap:14px}.details-toggle{border:0;background:none;padding:14px 0 0;color:var(--brand);font-size:13px;text-decoration:underline}.details-body{margin-top:15px}.details-body[hidden]{display:none}.field-value input{font-weight:600}.notice{font-size:12px;line-height:1.8}
.transaction-row{display:grid;grid-template-columns:39px minmax(0,1fr) auto;gap:11px;padding:15px 0;border-bottom:1px solid var(--line);align-items:start}.transaction-row:last-child{border-bottom:0}.category-icon{width:37px;height:37px;background:var(--soft);color:var(--brand);display:grid;place-items:center;border-radius:12px;font-size:15px;font-weight:700}.transaction-name{font-size:14px;font-weight:650;line-height:1.5;overflow-wrap:anywhere}.transaction-meta{font-size:11px;color:var(--muted);margin-top:4px;line-height:1.6;overflow-wrap:anywhere}.transaction-right{text-align:right}.transaction-amount{font-size:15px;font-weight:700;white-space:nowrap}.transaction-amount.income{color:var(--brand)}.row-actions{display:flex;justify-content:flex-end;gap:9px;margin-top:8px}.row-actions button{background:none;border:0;padding:4px 1px;color:var(--muted);font-size:11px;min-height:28px}.row-actions button[data-delete]{color:#ac6f66}.row-actions button:hover{color:var(--brand)}.dateGroup{font-size:12px;margin-top:6px;display:flex;justify-content:space-between;padding:13px 0;color:var(--muted);border-bottom:1px solid var(--line)}.empty{padding:30px 12px;font-size:13px;line-height:1.9}.empty strong{display:block;color:var(--text);margin-bottom:5px;font-size:15px}
.filters{grid-template-columns:1fr 1fr;gap:10px}.filters .wide{grid-column:1/-1}.result-summary{padding:12px 14px;border-radius:12px;background:#f3f6f0;font-size:12px;line-height:1.8;margin:14px 0;color:#405b52}.month-controls{display:flex;align-items:center;gap:9px;margin-bottom:16px}.month-controls input{flex:1;min-width:0}.month-controls button{flex:0 0 40px}.stats-total{font-size:32px;font-weight:650;margin:9px 0 6px;letter-spacing:-.06em}.stats-small{font-size:12px;color:var(--muted);line-height:1.8}.chart-row{margin-top:18px}.chart-label{display:flex;justify-content:space-between;font-size:13px;gap:10px}.chart-label small{color:var(--muted);margin-left:6px}.bar{height:7px;background:#eef2ea;margin:9px 0 0}.fill{background:var(--brand);border-radius:9px}.month-comparison{border-top:1px solid var(--line);margin-top:20px;padding-top:16px;font-size:12px;line-height:1.8;color:var(--muted)}
.nav{background:#fffffff5;border-color:var(--line);padding:9px 14px calc(9px + env(safe-area-inset-bottom));z-index:20}.navin{max-width:580px;gap:8px}.navbtn{font-size:11px;padding:8px 4px}.navbtn span{font-size:21px;margin-bottom:2px}.navbtn.active{background:var(--soft);color:var(--brand)}.toast{position:fixed;bottom:105px;left:50%;transform:translateX(-50%);max-width:calc(100% - 36px);width:max-content;border-radius:15px;background:#193c32;color:#fff;box-shadow:0 7px 30px #0002;padding:13px 17px;font-size:13px;z-index:100;display:flex;align-items:center;gap:16px}.toast[hidden]{display:none}.toast button{background:none;border:0;color:#d5efac;font-size:13px;font-weight:700;white-space:nowrap}.help-line{font-size:11px;line-height:1.7;color:var(--muted);margin-top:8px}.desktop-note{display:none}
@media(min-width:900px){.app{padding-top:34px}.top{margin-bottom:27px}.top h1{font-size:28px}#home.active{display:grid;grid-template-columns:1.05fr 1fr;gap:22px;align-items:start}#home>.card{margin:0}.summary-card{grid-column:1}.input-card{grid-column:2;grid-row:1/span 2}.recent-card{grid-column:1;grid-row:2}#preview{grid-column:2;grid-row:3}#settings.active{display:grid;grid-template-columns:1fr 1fr;gap:20px;align-items:start}#settings>.card{margin:0}.filters{grid-template-columns:repeat(4,1fr)}.filters .wide{grid-column:span 2}.hero h2{font-size:27px}.desktop-note{display:inline;color:var(--muted);font-size:12px}.card{padding:26px}}
@media(max-width:420px){.app{padding:18px 15px 108px}.card{padding:19px;border-radius:20px}.summary{grid-template-columns:repeat(3,1fr);gap:9px}.metric:nth-child(3){grid-column:auto}.metric+.metric{padding-left:9px}.metric b{font-size:21px}.metric span{font-size:10px}.grid{grid-template-columns:1fr 1fr}.grid .full{grid-column:1/-1}.transaction-row{gap:9px;grid-template-columns:34px minmax(0,1fr) auto}.category-icon{width:32px;height:32px}.top h1{font-size:23px}.transaction-amount{font-size:14px}.budget-line{font-size:11px}}
@media(prefers-reduced-motion:reduce){*{animation:none!important;scroll-behavior:auto!important}}
