:root{--bg:#f8fafc;--fg:#0f172a;--muted:#64748b;--card:#fff;--border:#e2e8f0;--accent:#0f172a;--accent-fg:#fff;--error:#b91c1c;--warning-bg:#fef3c7;--warning-fg:#92400e;--success:#15803d;--link:#1d4ed8;--focus:#2563eb;--danger-fg:#fff;--track:#e2e8f0;--goal:#0369a1;--segment-bg:#e2e8f0;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;color:var(--fg);background:var(--bg);font:16px/1.5 system-ui,-apple-system,Segoe UI,Roboto,sans-serif}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial;--bg:#0b1120;--fg:#e2e8f0;--muted:#94a3b8;--card:#111827;--border:#1f2937;--accent:#38bdf8;--accent-fg:#0b1120;--error:#f87171;--warning-bg:#422006;--warning-fg:#fbbf24;--success:#4ade80;--link:#7dd3fc;--focus:#7dd3fc;--danger-fg:#0b1120;--track:#1f2937;--goal:#38bdf8;--segment-bg:#1f2937}}body{background:var(--bg);margin:0}main{max-width:40rem;padding:max(1rem, env(safe-area-inset-top)) 1rem max(1rem, env(safe-area-inset-bottom));margin:0 auto}h1{margin:0 0 1rem;font-size:1.5rem}h2{margin:0 0 .75rem;font-size:1.1rem}.card{background:var(--card);border:1px solid var(--border);border-radius:.75rem;margin:0 0 1rem;padding:1rem}.row{flex-wrap:wrap;gap:.5rem;margin:0 0 .75rem;display:flex}button{font:inherit;background:var(--accent);color:var(--accent-fg);cursor:pointer;border:0;border-radius:.5rem;padding:.5rem .9rem}button.secondary{color:var(--fg);border:1px solid var(--border);background:0 0}button:disabled{opacity:.5;cursor:default}input{font:inherit;border:1px solid var(--border);background:var(--bg);color:var(--fg);border-radius:.5rem;flex:8rem;min-width:0;padding:.45rem .6rem}.status{grid-template-columns:max-content 1fr;gap:.25rem 1rem;margin:0 0 .75rem;display:grid}.status dt{color:var(--muted)}.status dd{overflow-wrap:anywhere;margin:0}.entries{margin:0;padding:0;list-style:none}.entries li{border-top:1px solid var(--border);gap:.75rem;padding:.35rem 0;display:flex}.entries .amount{font-variant-numeric:tabular-nums;text-align:right;min-width:6rem}.entries .note{overflow-wrap:anywhere;flex:1}.muted{color:var(--muted)}.error{color:var(--error)}.warning{background:var(--warning-bg);border-radius:.5rem;padding:.5rem .75rem}.toast{left:1rem;right:1rem;bottom:max(1rem, env(safe-area-inset-bottom));background:var(--card);border:1px solid var(--border);border-radius:.75rem;justify-content:space-between;align-items:center;gap:.5rem;max-width:38rem;margin:0 auto;padding:.75rem 1rem;display:flex;position:fixed}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}:focus-visible{outline:2px solid var(--focus);outline-offset:2px}[tabindex="-1"]:focus{outline:none}a{color:var(--link)}.app{min-height:100dvh}.sync-status{max-width:40rem;padding:max(.5rem, env(safe-area-inset-top)) 1rem .25rem;color:var(--muted);flex-wrap:wrap;align-items:center;gap:.25rem .5rem;margin:0 auto;font-size:.8125rem;display:flex}.sync-dot{background:var(--success);border-radius:50%;flex:none;width:.5rem;height:.5rem}.sync-dot-waiting{background:var(--warning-fg)}.sync-actions{flex-wrap:wrap;align-items:center;gap:.5rem;display:inline-flex}.sync-actions:empty{display:none}.screen{padding-top:.5rem;padding-bottom:calc(5rem + env(safe-area-inset-bottom))}.screen-header{align-items:center;gap:.5rem;margin:0 0 1rem;display:flex}.screen-header h1{overflow-wrap:anywhere;flex:1;min-width:0;margin:0;font-size:1.375rem}.screen-header-actions{gap:.5rem;display:flex}.tabbar{z-index:10;background:var(--card);border-top:1px solid var(--border);padding:0 env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left);justify-content:center;display:flex;position:fixed;bottom:0;left:0;right:0}.tab{max-width:8rem;min-height:56px;color:var(--muted);flex-direction:column;flex:1;justify-content:center;align-items:center;gap:.125rem;font-size:.75rem;text-decoration:none;display:flex}.tab[aria-current=page]{color:var(--fg);font-weight:600}.tab-add .icon{box-sizing:border-box;background:var(--accent);width:32px;height:32px;color:var(--accent-fg);border-radius:50%;padding:4px}.icon{fill:none;stroke:currentColor;stroke-width:2px;stroke-linecap:round;stroke-linejoin:round;flex:none;width:24px;height:24px}.icon-more{stroke-width:3px}button,.button{min-height:44px}.button{background:var(--accent);color:var(--accent-fg);border-radius:.5rem;justify-content:center;align-items:center;padding:.5rem .9rem;font-weight:500;text-decoration:none;display:inline-flex}.primary{width:100%;min-height:48px;margin-top:.5rem;font-weight:600}.wide{width:100%}.icon-button{width:44px;height:44px;color:var(--fg);background:0 0;border-radius:50%;flex:none;justify-content:center;align-items:center;padding:0;display:inline-flex}.link-button{color:var(--link);background:0 0;padding:0 .25rem;text-decoration:underline}.danger-button{background:var(--error);color:var(--danger-fg)}.loading{padding:.5rem 0}.loading-line{background:var(--track);border-radius:.25rem;height:1rem;margin:.75rem 0}.loading-line:nth-child(2n){width:70%}.busy{text-align:center;min-height:1.5em;color:var(--muted);padding:2rem 1rem}.wordmark{margin:2rem 0 1rem;font-size:1.25rem;font-weight:700}select,textarea{font:inherit;border:1px solid var(--border);background:var(--bg);color:var(--fg);border-radius:.5rem;padding:.45rem .6rem}select:disabled{opacity:.7}input[type=checkbox],input[type=radio]{width:1.25rem;height:1.25rem;accent-color:var(--accent);flex:none;margin:0;padding:0}.form{flex-direction:column;display:flex}.field{flex-direction:column;gap:.375rem;margin:0 0 1rem;display:flex}.field>label{font-size:.9375rem;font-weight:600}.field input,.field select,.field textarea{box-sizing:border-box;flex:none;width:100%;min-height:44px}.field-hint{color:var(--muted);margin:0;font-size:.875rem}.field-hint.error{color:var(--error)}.field-note{color:var(--muted);margin:0 0 1rem;font-size:.9375rem}.amount-input{border:1px solid var(--border);background:var(--bg);border-radius:.5rem;align-items:center;gap:.5rem;padding:0 .75rem;display:flex}.amount-input:focus-within{outline:2px solid var(--focus);outline-offset:2px}.field .amount-input input{font-variant-numeric:tabular-nums;background:0 0;border:0;outline:none;flex:auto;min-width:0;min-height:56px;padding:.25rem 0;font-size:1.75rem}.amount-input-code{color:var(--muted);flex:none;font-weight:600}.segmented{background:var(--segment-bg);border:0;border-radius:.75rem;flex-wrap:wrap;gap:.25rem;margin:0 0 1rem;padding:.25rem;display:flex}.segmented label,.chip{cursor:pointer;position:relative}.segmented label{flex:auto}.segmented input,.chip input{opacity:0;cursor:pointer;width:100%;height:100%;margin:0;position:absolute;inset:0}.segmented span{white-space:nowrap;border-radius:.5rem;justify-content:center;align-items:center;min-height:44px;padding:0 .625rem;display:flex}@media (width<=400px){.segmented{flex-wrap:nowrap}.segmented label{min-width:0}.segmented span{padding:0 .375rem;font-size:.9375rem}}.segmented input:checked+span{background:var(--card);font-weight:600}.segmented input:focus-visible+span{outline:2px solid var(--focus);outline-offset:2px}.chip:has(input:focus-visible){outline:2px solid var(--focus);outline-offset:2px}.chips{border:0;flex-wrap:wrap;gap:.5rem;margin:0 0 1rem;padding:0;display:flex}.chips legend,.group legend{margin:0 0 .5rem;padding:0;font-weight:600}.chip{border:1px solid var(--border);background:var(--card);min-height:44px;color:var(--fg);border-radius:999px;align-items:center;padding:0 1rem;display:inline-flex}.chip:has(input:checked){border-color:var(--accent);background:var(--accent);color:var(--accent-fg)}.check{align-items:center;gap:.75rem;min-height:44px;margin:0 0 1rem;display:flex}.group,.starter-account{border:1px solid var(--border);border-radius:.75rem;margin:0 0 1rem;padding:.75rem 1rem 0}.form-actions,.actions{flex-wrap:wrap;gap:.5rem;margin:0 0 1rem;display:flex}.amount{font-variant-numeric:tabular-nums;white-space:nowrap;text-align:right}.over{color:var(--error)}.income{color:var(--success)}.amount.transfer{color:var(--muted)}.strong{font-weight:700}.warning-text{color:var(--warning-fg)}.note{color:var(--muted);margin:.5rem 0;font-size:.9375rem}.empty{text-align:center;color:var(--muted);padding:2rem 0}.section{margin:1.5rem 0}.home-header{margin:0 0 .5rem}.period-nav{align-items:center;gap:.5rem;display:flex}.period-name{text-align:center;flex-direction:column;flex:1;align-items:center;min-height:3rem;display:flex}.period-name span:first-child{font-weight:600}.hero{padding:.5rem 0 1rem}.hero-label{color:var(--muted);margin:0;font-size:.875rem}.hero-figure{align-items:baseline;gap:.5rem;margin:0;display:flex}.hero-code{color:var(--muted);font-weight:600}.hero-figure .amount{text-align:left;font-size:2.5rem;font-weight:700;line-height:1.15}.hero-sub{color:var(--muted);flex-wrap:wrap;gap:.25rem 1rem;margin:.25rem 0 0;display:flex}.compare,.category-bars,.plan-lines,.goal-lines,.goal-cards,.goal-facts,.txn-list,.plain-list,.menu,.account-list,.lines{margin:0;padding:0;list-style:none}.compare{color:var(--muted);margin-top:.5rem}.saved-figure{margin:.25rem 0;font-size:1.5rem;font-weight:700}.banner{background:var(--warning-bg);color:var(--fg);border-radius:.75rem;margin:0 0 1rem;padding:.75rem 1rem;text-decoration:none;display:block}.banner-action{font-weight:600;text-decoration:underline}.tag{background:var(--warning-bg);color:var(--fg);vertical-align:middle;border-radius:999px;margin-left:.5rem;padding:.125rem .5rem;font-size:.75rem;font-weight:500;display:inline-block}.bar{border-radius:4px;width:100%;height:8px;display:block;overflow:hidden}.bar-track{fill:var(--track)}.bar-fill{fill:var(--accent)}.bar-over .bar-fill{fill:var(--error)}.bar-goal .bar-fill{fill:var(--goal)}.bar-muted .bar-fill{fill:var(--muted)}.category-bar,.goal-line,.plan-line,.txn-row,.account-row{border-bottom:1px solid var(--border);min-height:44px;color:inherit;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:.25rem .75rem;padding:.625rem 0;text-decoration:none;display:grid}.category-bar .bar,.goal-line .bar,.plan-line .bar,.goal-line-track,.plan-line-left,.txn-row .tag,.account-txns{grid-column:1/-1}.goal-line-track,.plan-line-left,.txn-detail{font-size:.875rem}.txn-title{text-overflow:ellipsis;white-space:nowrap;font-weight:500;overflow:hidden}.txn-detail{overflow-wrap:anywhere;grid-column:1}.txn-row .tag{justify-self:start;margin-left:0}.day-heading{color:var(--muted);margin:1rem 0 .25rem;font-size:.875rem}.account-name{min-height:44px;color:inherit;flex-direction:column;justify-content:center;font-weight:600;text-decoration:none;display:flex}.account-name .muted{font-size:.875rem;font-weight:400}.account-balance{flex-direction:column;align-items:flex-end;display:flex}.account-txns{justify-self:start;align-items:center;min-height:44px;font-size:.875rem;display:inline-flex}.menu-item,.pair,.allocation{border-bottom:1px solid var(--border);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.25rem .75rem;min-height:44px;padding:.5rem 0;display:flex}.menu-item{color:inherit;text-decoration:none}.row-actions{flex-wrap:wrap;align-items:center;gap:.75rem;display:flex}.pairs{grid-template-columns:minmax(0,1fr) auto;gap:.5rem 1rem;margin:0;display:grid}.pairs dt{color:var(--muted)}.pairs dd{text-align:right;margin:0}.total-line{justify-content:space-between;gap:1rem;margin:.75rem 0;font-weight:600;display:flex}.goal-card{border:1px solid var(--border);background:var(--card);border-radius:.75rem;margin:0 0 1rem;padding:1rem}.goal-card-name{align-items:center;gap:.5rem;margin:0 0 .25rem;display:flex}.goal-card-progress{margin:0 0 .5rem}.goal-facts{margin-top:.75rem;font-size:.9375rem}.goal-facts li{margin:.25rem 0}.category-group h3{color:var(--muted);margin:1rem 0 0;font-size:.875rem}.lines li{border-bottom:1px solid var(--border);grid-template-columns:minmax(0,1fr) auto auto;gap:.75rem;padding:.5rem 0;display:grid}
