:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--canvas:#f5f5f0;--surface:#fff;--ink:#172b25;--muted:#53645c;--line:#dde3db;--green:#175b43;--on-green:#fff;--soft:#e7eee5;--amber:#78520a;--amber-bg:#fff2d8;--danger:#a32f32;--error-bg:#fff0ee;--focus:#3975ce}:root[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--canvas:#101a16;--surface:#192720;--ink:#f1f5ef;--muted:#b7c7bd;--line:#3a4e42;--green:#9ddcbc;--on-green:#102b1d;--soft:#253b2d;--amber:#ffda91;--amber-bg:#3a2d12;--danger:#ffb3b5;--error-bg:#3b2021;--focus:#99bfff}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--canvas:#101a16;--surface:#192720;--ink:#f1f5ef;--muted:#b7c7bd;--line:#3a4e42;--green:#9ddcbc;--on-green:#102b1d;--soft:#253b2d;--amber:#ffda91;--amber-bg:#3a2d12;--danger:#ffb3b5;--error-bg:#3b2021;--focus:#99bfff}}*{box-sizing:border-box}html{font-size:16px}body{background:var(--canvas);color:var(--ink);-webkit-font-smoothing:antialiased;margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;line-height:1.5}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer;touch-action:manipulation}button:disabled{opacity:.55;cursor:default}button,input,select{min-height:44px}button{background:0 0;border:0}button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible{outline:3px solid var(--focus);outline-offset:3px}a{color:var(--green)}h1,h2,h3,p{margin:0}h1{letter-spacing:-.06rem;font-size:1.875rem;font-weight:650;line-height:1.2}h2{letter-spacing:-.025rem;font-size:1.2rem}h3{font-size:1rem}small,.small{font-size:.8rem}.muted{color:var(--muted)}.positive{color:var(--green)}.danger,.error{color:var(--danger)}.space{margin-top:24px}.stack{gap:16px;display:grid}.row{justify-content:space-between;align-items:center;gap:12px;display:flex}.full{width:100%}.eyebrow{letter-spacing:2px;text-transform:uppercase;color:var(--green);font-size:.7rem;font-weight:700}.brand-mark{background:var(--green);color:var(--on-green);border-radius:16px;place-items:center;width:52px;height:52px;font-size:1.9rem;font-weight:600;display:grid}.welcome{gap:24px;max-width:440px;margin:8vh auto;padding:24px;display:grid}.welcome h1{letter-spacing:-.13rem;font-size:3rem;line-height:1.1}.welcome>p{color:var(--muted)}.trust{color:var(--muted);align-items:center;gap:8px;padding-top:16px;font-size:.8rem;display:flex}.primary,.secondary{border-radius:14px;justify-content:center;align-items:center;gap:8px;width:100%;min-height:50px;padding:13px 16px;font-weight:600;display:flex}.primary{background:var(--green);color:var(--on-green)}.secondary{background:var(--surface);border:1px solid var(--line);font-weight:500}.quiet{min-height:44px;color:var(--muted);padding:8px;font-size:.8rem}.text-button{color:var(--green);white-space:normal;justify-content:center;align-items:center;gap:4px;padding:4px;font-size:.8rem;font-weight:600;display:flex}.icon-button{background:var(--soft);border-radius:50%;flex-shrink:0;place-items:center;width:44px;height:44px;display:inline-grid}.avatar{background:var(--soft);border-radius:50%;flex-shrink:0;width:44px;height:44px;font-weight:600}.callout{background:var(--soft);color:var(--ink);border-radius:12px;padding:14px 16px;font-size:.8rem}.error-panel{color:var(--danger);background:var(--error-bg);overflow-wrap:anywhere;border-radius:12px;margin-bottom:16px;padding:16px;font-size:.875rem}.error{overflow-wrap:anywhere;font-size:.8rem}.error-panel .quiet{color:inherit;text-decoration:underline}.card{background:var(--surface);border:1px solid var(--line);border-radius:18px;padding:20px}.badge{background:var(--soft);border-radius:6px;align-items:center;gap:4px;max-width:100%;padding:3px 6px;font-size:.68rem;font-weight:500;line-height:1.3;display:inline-flex}.inset{background:var(--soft);border-radius:14px;margin-top:16px;padding:16px}.app{max-width:1200px;min-height:100dvh;margin:0 auto;display:flex}.desktop-rail{border-right:1px solid var(--line);flex-shrink:0;width:230px;height:100dvh;padding:40px 24px;position:sticky;top:0}.desktop-rail>strong{margin-top:16px;font-size:1.4rem;display:block}.desktop-rail nav{gap:8px;margin-top:40px;display:grid}.desktop-rail nav button{color:var(--muted);text-align:left;border-radius:12px;align-items:center;gap:12px;padding:12px 16px;display:flex}.desktop-rail nav button[aria-current=page]{background:var(--soft);color:var(--green);font-weight:600}.rail-foot{color:var(--muted);font-size:.7rem;position:absolute;bottom:40px}.app-main{flex:1;min-width:0}.environment{text-align:center;background:var(--soft);color:var(--ink);letter-spacing:.06rem;padding:7px 16px;font-size:.625rem}.connection-banner{background:var(--amber-bg);color:var(--amber);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;padding:10px 16px;font-size:.8rem;display:flex}.connection-banner button{font-size:.8rem;text-decoration:underline}.page{max-width:760px;margin:auto;padding:32px 40px 130px}.screen-header{justify-content:space-between;align-items:center;gap:12px;margin-bottom:28px;display:flex}.household-name{color:var(--muted);text-transform:uppercase;letter-spacing:.06rem;text-align:left;overflow-wrap:anywhere;align-items:center;gap:4px;max-width:100%;min-height:28px;padding:0;font-size:.7rem;display:flex}.filter-row{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.filter-row label{flex:1;min-width:130px}.filter-row select{background:var(--surface);border:1px solid var(--line);border-radius:10px;width:100%;padding:8px 12px;font-size:.8rem}.segmented{background:var(--soft);border-radius:14px;gap:4px;padding:4px;display:flex}.segmented button{border-radius:10px;flex:1;justify-content:center;align-items:center;gap:5px;min-width:0;padding:7px 4px;font-size:.8rem;display:flex}.segmented button[aria-pressed=true]{background:var(--surface);font-weight:600;box-shadow:0 2px 6px #172b2510}.hero{padding:28px 0 24px}.hero-amount{letter-spacing:-.1rem;font-variant-numeric:tabular-nums;overflow-wrap:anywhere;margin:8px 0;font-size:2.7rem;font-weight:650;line-height:1.2}.balance-card{border:1px solid var(--line);background:var(--surface);border-radius:18px;justify-content:space-between;align-items:center;gap:12px;padding:20px;display:flex}.balance-card h2{margin-top:5px;font-size:1.1rem}.review-card{background:var(--soft);text-align:left;border-radius:14px;align-items:center;gap:12px;width:100%;margin-top:16px;padding:16px;display:flex}.review-card>span{flex:1}.review-card strong{font-size:.875rem;display:block}.review-card small{color:var(--muted);margin-top:3px;font-size:.75rem;display:block}.section-heading{justify-content:space-between;align-items:center;gap:12px;margin:28px 0 8px;display:flex}.transaction-row{text-align:left;border-bottom:1px solid var(--line);align-items:center;gap:12px;width:100%;padding:16px 0;display:flex}.transaction-icon{background:var(--soft);border-radius:14px;flex-shrink:0;place-items:center;width:42px;height:42px;display:grid}.transaction-copy{flex:1;min-width:0}.transaction-copy strong{overflow-wrap:anywhere;font-size:.875rem;font-weight:600;display:block}.transaction-copy small{color:var(--muted);overflow-wrap:anywhere;margin:3px 0 5px;font-size:.68rem;display:block}.transaction-amount{text-align:right;font-variant-numeric:tabular-nums;flex-shrink:0;max-width:45%}.transaction-amount strong{overflow-wrap:anywhere;font-size:.875rem;display:block}.transaction-amount small{color:var(--muted);overflow-wrap:anywhere;margin-top:4px;font-size:.68rem;display:block}.mobile-nav{display:none}.fab{background:var(--green);width:58px;height:58px;color:var(--on-green);z-index:3;border-radius:20px;place-items:center;display:grid;position:fixed;bottom:32px;right:max(24px,50vw - 576px);box-shadow:0 8px 24px #173b3033}.count{background:var(--green);color:var(--on-green);border-radius:5px;margin-left:5px;padding:1px 4px;font-size:.6rem}.toast{z-index:20;background:var(--ink);width:max-content;max-width:min(90vw,580px);color:var(--canvas);overflow-wrap:anywhere;border-radius:14px;align-items:center;gap:12px;padding:10px 16px;font-size:.8rem;display:flex;position:fixed;bottom:112px;left:50%;transform:translate(-50%);box-shadow:0 5px 20px #0003}.toast span{min-width:0}.toast button{color:inherit;flex-shrink:0}.empty{text-align:center;color:var(--muted);flex-direction:column;align-items:center;gap:14px;padding:44px 12px;display:flex}.empty h2{color:var(--ink);font-size:1.4rem}.empty p{max-width:400px;font-size:.875rem}.skeleton{background:var(--soft);border-radius:12px;height:70px}.skeleton.large{height:200px}.toolbar{justify-content:space-between;align-items:center;gap:12px;display:flex}.chips{flex-wrap:wrap;gap:8px;display:flex}.chips button,.chip{border:1px solid var(--line);background:var(--surface);border-radius:10px;min-height:44px;padding:7px 12px;font-size:.75rem}.chips .selected,.chip.selected{background:var(--green);color:var(--on-green);border-color:var(--green)}.sheet{background:var(--canvas);color:var(--ink);border:0;border-radius:26px;width:calc(100% - 32px);max-width:520px;max-height:90dvh;padding:0;overflow-y:auto;box-shadow:0 8px 80px #071c1833}.sheet::backdrop{background:#08191077}.sheet-content{padding:12px 24px max(28px, env(safe-area-inset-bottom))}.sheet .row header{margin-bottom:20px}.handle{background:var(--line);border-radius:4px;width:40px;height:4px;margin:0 auto 12px}.field{color:var(--muted);min-width:0;margin-top:16px;font-size:.75rem;display:block}.field input,.field select,.field textarea{background:var(--surface);border:1px solid var(--line);width:100%;color:var(--ink);border-radius:12px;min-width:0;margin-top:6px;padding:11px 12px;font-size:1rem;display:block}.field textarea{resize:vertical}.form-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:12px;display:grid}.money-entry{align-items:center;gap:12px;padding:20px 0 4px;display:flex}.money-entry input{letter-spacing:-.1rem;font-variant-numeric:tabular-nums;width:100%;min-width:0;color:var(--ink);background:0 0;border:0;padding:0;font-size:3rem}.money-entry select{background:var(--soft);border:0;border-radius:10px;flex-shrink:0;width:88px;padding:6px;font-size:.875rem}.quote-preview{overflow-wrap:anywhere;font-size:.8rem}.quote-preview strong{font-weight:600}.quote-preview small{color:var(--muted);margin-top:5px;display:block}.check{align-items:center;gap:8px;min-height:44px;font-size:.8rem;display:flex}.check input{width:20px;height:20px;min-height:20px;accent-color:var(--green);flex-shrink:0}.split-row{justify-content:space-between;align-items:center;gap:12px;display:flex}.split-row>input{background:var(--surface);border:1px solid var(--line);border-radius:10px;width:100px;min-width:0;padding:8px;font-size:1rem}.form-footer{gap:4px;margin-top:24px;display:grid}.detail-row{border-bottom:1px solid var(--line);justify-content:space-between;gap:16px;padding:12px 0;font-size:.8rem;display:flex}.detail-row>span:last-child{overflow-wrap:anywhere;text-align:right;max-width:60%}.setting-row{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:12px;padding:14px 0;font-size:.875rem;display:flex}.setting-row small{font-size:.7rem}.setting-row select,.card>select{background:var(--surface);border:1px solid var(--line);border-radius:10px;max-width:100%;padding:8px}.card>select{width:100%;margin-top:8px;display:block}.settings-section{border-bottom:1px solid var(--line);padding:16px 0}summary{cursor:pointer;align-items:center;min-height:44px;font-size:.875rem;display:flex}summary:before{content:"›";margin-right:8px}details[open]>summary:before{content:"⌄"}.divider{color:var(--muted);text-align:center;padding:8px;font-size:.8rem}.capture-card{background:var(--surface);border:1px solid var(--line);border-radius:16px;margin-top:16px;padding:18px}.source-text{white-space:pre-wrap;overflow-wrap:anywhere;max-height:200px;color:var(--muted);overflow:auto}.chart-row{margin-top:24px;font-size:.85rem}.bar-track{background:var(--soft);border-radius:5px;height:8px;margin:10px 0;overflow:hidden}.bar-track>div{background:var(--green);border-radius:5px;height:100%}.metric-grid{grid-template-columns:1fr 1fr;gap:12px;display:grid}.metric-grid h2{font-variant-numeric:tabular-nums;overflow-wrap:anywhere;margin-top:8px}.sr-only{clip-path:inset(50%);width:1px;height:1px;position:absolute;overflow:hidden}@media (width<=800px){.desktop-rail{display:none}.page{max-width:560px;padding:24px 20px 170px}.mobile-nav{background:var(--surface);border-top:1px solid var(--line);z-index:4;padding:8px 8px max(12px, env(safe-area-inset-bottom));display:block;position:fixed;bottom:0;left:0;right:0}.mobile-nav nav{max-width:560px;margin:auto;display:flex}.mobile-nav button{min-width:0;color:var(--muted);flex-direction:column;flex:1;justify-content:center;align-items:center;gap:4px;padding:4px 0;font-size:.625rem;display:flex}.mobile-nav button[aria-current=page]{color:var(--green);font-weight:700}.fab{bottom:calc(94px + env(safe-area-inset-bottom));right:max(20px,50vw - 260px)}.toast{bottom:calc(164px + env(safe-area-inset-bottom))}.sheet{border-radius:26px 26px 0 0;width:100%;max-width:100%;max-height:95dvh;margin:0;inset:auto 0 0}.sheet-content{max-width:560px;padding:12px 20px max(24px, env(safe-area-inset-bottom));margin:auto}.hero-amount{font-size:2.65rem}.balance-card{align-items:flex-start}.balance-card .text-button{max-width:120px}.welcome{margin:4vh auto}.welcome h1{font-size:2.7rem}}@media (width<=350px){.page{padding-left:16px;padding-right:16px}.transaction-row{gap:8px}.transaction-icon{width:34px;height:38px}.transaction-amount strong{font-size:.8rem}.form-grid{grid-template-columns:1fr}.hero-amount{font-size:2.3rem}.balance-card{display:block}.balance-card .text-button{max-width:none;margin-top:8px}.metric-grid{grid-template-columns:1fr}}@media (prefers-reduced-motion:no-preference){button{transition:background .18s,color .18s}.sheet[open]{animation:.18s ease-out rise}.skeleton{animation:1.5s ease-in-out infinite pulse}@keyframes rise{0%{transform:translateY(16px)}to{transform:translateY(0)}}@keyframes pulse{50%{opacity:.55}}}.flow-bar{border-radius:5px;gap:3px;height:16px;margin:16px 0;display:flex;overflow:hidden}.flow-bar span{background:var(--green);min-width:1px}.empty-copy{max-width:400px;font-size:.875rem}.empty-copy p{margin:12px 0}
