:root{--bg: #0b0f0d;--surface: #101712;--surface-strong: #dcefe3;--ink: #dcefe3;--muted: #5c7a6b;--line: #1b2620;--green: #5fffb0;--amber: #ff8f6b;--rust: #ff6f5b;--bluegray: #83a092;--budget: #7aa2ff;--page-max-width: 1400px;--page-padding: 28px;--page-gap: 14px;--section-gap: 14px;--card-padding: 16px;--context-width: 320px;color:var(--ink);background:var(--bg);font-family:JetBrains Mono,Cascadia Mono,SF Mono,Consolas,ui-monospace,monospace;font-synthesis:none;line-height:1.5;text-rendering:optimizeLegibility}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh;background:var(--bg)}html:has(.auth-shell),body.auth-page,body.auth-page #root{height:100%;overflow:hidden;overscroll-behavior:none}button{min-height:40px;border:1px solid var(--line);border-radius:4px;padding:0 14px;color:var(--ink);background:#0f1712;font:inherit;font-weight:750;cursor:pointer;transition:background .15s ease,transform .15s ease,border-color .15s ease}input,select,textarea{font-size:16px}button:hover{border-color:#5fffb073;transform:translateY(-1px)}button:disabled{cursor:not-allowed;opacity:.45;transform:none}h1,p{margin:0}h1{font-size:clamp(1.35rem,7vw,4.2rem);line-height:1;letter-spacing:0;overflow-wrap:anywhere;white-space:nowrap}data,.hero-amount,.transaction-list data,.category-list data{font-family:SF Mono,Cascadia Mono,ui-monospace,monospace}.app-shell{min-height:100vh}.workspace{width:min(100%,var(--page-max-width));margin:0 auto;padding:22px 14px 92px}.topbar{display:flex;min-height:0;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:14px}.eyebrow{margin:0 0 8px;color:var(--green);font-size:.78rem;font-weight:850;line-height:1}.topbar-actions{display:flex;align-items:end;gap:8px}.mobile-account-action{display:none}.period-picker{display:grid;gap:6px;position:relative;min-width:46px}.period-picker span{color:var(--muted);font-size:.68rem;font-weight:850;line-height:1;text-align:right}.period-picker-control{display:grid;width:42px;height:34px;min-height:34px;margin-left:auto;border:1px solid rgba(220,239,227,.18);border-radius:4px;color:var(--ink);background:var(--surface);padding:0;place-items:center}.calendar-icon{width:18px;height:18px}.heatmap-readout{max-width:min(58%,260px);opacity:.82;transition:color .14s ease,opacity .14s ease}.heatmap-readout-active{color:var(--ink);opacity:1}.budget-pace-readout{position:absolute;top:0;right:0;display:grid;gap:1px;margin:0;max-width:min(68%,260px);color:var(--muted);opacity:.82;text-align:right;transition:color .14s ease,opacity .14s ease}.budget-pace-readout-active{color:var(--ink);opacity:1}.budget-pace-readout data{display:block;overflow:hidden;color:inherit;font-family:SF Mono,Cascadia Mono,ui-monospace,monospace;font-size:.78rem;font-weight:850;line-height:.92;text-overflow:ellipsis;white-space:nowrap}.budget-pace-readout span{color:var(--muted);font-size:.48rem;font-weight:850;line-height:.9}.period-menu{position:absolute;top:calc(100% + 7px);right:0;z-index:20;display:grid;width:max-content;min-width:156px;max-width:calc(100vw - 28px);border:1px solid var(--line);border-radius:4px;background:var(--surface);padding:6px;box-shadow:0 18px 48px #00000047}.period-menu button{justify-content:start;width:100%;min-height:34px;border-color:transparent;padding:0 12px;color:var(--ink);background:transparent;text-align:left}.period-menu button:hover,.period-menu button:focus-visible,.period-menu-active{color:#07100b;background:var(--green);transform:none}.sidebar{display:none}.dashboard-grid{display:grid;align-items:start;grid-template-columns:minmax(0,1fr);gap:10px}.page-layout{display:grid;grid-template-columns:minmax(0,1fr);gap:var(--page-gap)}.page-primary,.page-content{min-width:0}.page-content{display:grid;gap:var(--section-gap)}.page-context{align-self:start;min-width:0}.page-toolbar{min-width:0;border:1px solid var(--line);border-radius:4px;background:var(--surface);padding:var(--card-padding)}.auth-shell{position:fixed;inset:0;display:grid;height:100vh;height:100svh;height:100dvh;max-height:100dvh;padding:22px 14px;place-items:center;overflow:hidden;touch-action:manipulation}.auth-card{display:flex;flex-direction:column;width:min(100%,560px);height:min(520px,calc(100svh - 44px));gap:10px;min-height:min(520px,calc(100svh - 44px));padding:clamp(24px,6vw,42px)}.auth-card .card-heading{margin-bottom:8px}.auth-card .brand-mark{display:grid;width:42px;height:42px;place-items:center;border:1px solid rgba(95,255,176,.42);border-radius:4px;color:#07100b;background:var(--green);font-size:.9rem;font-weight:900;line-height:1}.auth-card h1{margin:10px 0 42px;font-size:clamp(2.2rem,9vw,4.2rem);overflow-wrap:normal;white-space:normal}.auth-card label{gap:0}.field-placeholder-only{color:transparent}.auth-card input{min-height:54px;font-weight:650}.password-field{position:relative}.password-field input{padding-right:48px}.password-toggle{position:absolute;top:50%;right:8px;display:grid;width:38px;height:38px;min-height:38px;place-items:center;border:1px solid transparent;padding:0;color:var(--muted);background:transparent;transform:translateY(-50%)}.password-toggle:hover,.password-toggle:focus-visible{color:var(--green);border-color:transparent;background:#5fffb014;transform:translateY(-50%)}.password-toggle svg{width:18px;height:18px}.form-error{color:var(--rust);font-size:.78rem;font-weight:850;line-height:1.2}.auth-actions{display:grid;gap:6px;margin-top:auto;margin-bottom:0}.auth-action{display:flex;align-items:center;gap:10px;justify-content:start;width:100%;min-height:38px;border:1px solid rgba(220,239,227,.16);border-radius:4px;padding:0 12px;color:var(--ink);background:transparent;font-size:.94rem;overflow:hidden;text-align:left;text-overflow:ellipsis}.auth-action:hover,.auth-action:focus-visible{color:var(--green);border-color:#dcefe329;background:#5fffb014;transform:none}.auth-primary-action{position:relative;isolation:isolate;border-color:var(--green);color:#07100b;background:var(--green);transition:border-color .14s ease,color .14s ease}.auth-primary-action:hover,.auth-primary-action:focus-visible{color:#0b2417;border-color:#07100b;background:var(--green)}.auth-primary-action:active{color:#07100b;border-color:#020604;transform:none}.auth-switch-line{display:flex;flex-wrap:wrap;gap:5px;align-items:baseline;justify-content:center;margin-top:8px;color:var(--muted);font-size:.86rem;font-weight:800}.auth-text-action{min-height:0;border:0;padding:0;color:var(--ink);background:transparent;font-size:inherit;line-height:inherit}@media(hover:hover)and (pointer:fine){.auth-text-action:hover{color:var(--green);background:transparent;transform:none}}.auth-text-action:active{color:var(--ink);background:transparent;transform:none}.auth-text-action:focus-visible{color:var(--ink);outline:1px solid rgba(95,255,176,.42);outline-offset:3px;transform:none}@media(max-width:520px){.auth-shell{align-items:start;padding-right:10px;padding-left:10px}.auth-card{width:100%;height:auto;min-height:0;max-height:calc(100dvh - 44px)}.auth-card h1{margin-bottom:34px}.auth-actions{margin-top:26px}.card-create,.account-list li,.card-nickname-fields{grid-template-columns:minmax(0,1fr)}}.account-main-card{display:grid;gap:0}.account-sign-out{width:100%;border-color:var(--rust);color:#190705;background:var(--rust)}.account-sign-out:hover{border-color:var(--rust);background:#f87;transform:none}.account-email{display:block;color:var(--ink);font-size:clamp(1rem,4vw,1.45rem);font-weight:850;overflow-wrap:anywhere}.token-create{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:end;margin-top:8px}.card-create{grid-template-columns:minmax(0,1fr) auto}.account-page .token-create.card-create>button{align-self:end}.account-list+.card-create{margin-top:20px}.card-create>label{display:grid;gap:6px;color:var(--muted);font-size:.75rem;font-weight:850;line-height:1}.account-page .card-create input,.account-page .token-create>input{height:40px;min-height:40px;font-weight:400}.account-page .token-create>button{align-self:center;height:39px;min-height:39px;border:0;color:#07100b;background:var(--green)}.account-page .token-create>button:hover{background:#7dffc3;transform:none}.token-reveal{display:grid;margin-top:12px;padding:0}.token-reveal label{gap:4px;color:var(--muted);font-size:.72rem;font-weight:850}.token-copy-field{position:relative;margin-top:4px}.token-copy-field input{width:100%;min-height:38px;padding:0 42px 0 10px;color:var(--ink);background:transparent;font-family:SF Mono,Cascadia Mono,ui-monospace,monospace;font-size:.82rem}.token-copy-field button{position:absolute;top:1px;right:1px;display:grid;width:36px;min-height:36px;place-items:center;border:0;padding:0;color:var(--green);background:transparent;transition:color .15s ease,background .15s ease}.token-copy-field button:hover,.token-copy-field button:focus-visible,.token-copy-field .token-copy-done{color:#07100b;background:var(--green)}.token-copy-field svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.8}.token-list{display:grid;margin:4px 0 0;padding:0;list-style:none}.account-list-label{margin-top:20px;color:var(--muted);font-size:.75rem;font-weight:850;line-height:1}.shortcut-token-list{margin-top:8px}.shortcut-token-list li:first-child{border-top:0}.token-list[aria-busy=true]{min-height:44px}.token-list li{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:center;border-top:1px solid rgba(220,239,227,.26);padding:10px 0}.token-list li.token-newly-created{border-color:#5fffb06b;padding-right:10px;padding-left:10px;background:#5fffb014}.token-list strong span{display:inline-block;margin-left:8px;color:var(--green);font-size:.68rem;font-weight:850}.account-list li:first-child{border-top:0;padding-top:0}.account-list{gap:8px}.account-list li{grid-template-columns:minmax(0,1fr) minmax(160px,.42fr);border-top:1px dashed var(--line);padding:8px 0 0}.account-list strong{color:var(--ink);font-size:.95rem}.card-nickname-fields{display:grid;grid-template-columns:minmax(0,1fr);gap:8px}.token-list li:last-child{padding-bottom:0}.token-list strong,.token-list span{display:block}.token-list span{color:var(--muted);font-size:.72rem;font-weight:800}.card{min-width:0;border:1px solid var(--line);border-radius:4px;background:var(--surface);box-shadow:none;padding:var(--card-padding)}.card-action{cursor:pointer;transition:border-color .16s ease,background .16s ease}.card-action:hover,.card-action:focus-visible{border-color:#5fffb06b;outline:none}.card-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:10px}.card-heading span,.card-heading small{min-width:0;color:var(--muted);font-size:.75rem;font-weight:850;line-height:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.card-heading .heatmap-readout-active,.card-heading .budget-pace-readout-active{color:var(--ink)}.month-card{position:relative;overflow:hidden;color:var(--ink);border-color:#5fffb047;background:#0e1712}.month-card>*:not(.month-background-graph){position:relative;z-index:1}.month-background-graph{position:absolute;right:0;bottom:0;left:0;z-index:0;width:100%;height:42%;opacity:.32;pointer-events:none}.month-background-graph polyline{fill:none;stroke:var(--green);stroke-width:2;vector-effect:non-scaling-stroke}.month-background-graph .budget-marker{stroke:var(--budget);stroke-dasharray:4 4;stroke-width:2;vector-effect:non-scaling-stroke}.month-card .card-heading span,.month-card .card-heading small{color:var(--muted)}.hero-amount{display:block;margin:10px 0 6px;font-size:clamp(1.75rem,5.8vw,3.7rem);line-height:1;overflow:hidden;text-overflow:clip;white-space:nowrap}.recurring-stack span{color:var(--muted)}.compact-empty{margin:0;padding:0;color:var(--ink);font-size:.78rem;font-weight:850;line-height:1}.activity-card button{width:100%;margin-top:6px}.activity-card{display:flex;flex-direction:column;grid-row:auto}.activity-card .compact-list{flex:0 0 auto;align-content:start;margin-top:0}.compact-list li{min-height:46px;max-height:50px}.compact-list span{margin-top:0;overflow:hidden;font-size:.64rem;line-height:1.1;text-overflow:ellipsis;white-space:nowrap}.activity-card .transaction-list li{align-items:center;gap:8px;min-height:47px;max-height:51px;border-top-color:#dcefe342}.activity-card .transaction-list li>div{display:grid;gap:1px}.activity-card .transaction-list strong{line-height:1.08}.activity-card .compact-list span{font-size:.64rem;line-height:1.1}.activity-card .compact-list li:nth-child(n+5){display:none}.categories-card{display:flex;flex-direction:column}.overview-filled-card{height:var(--overview-fill-height)}.metric-amount,.progress-amount,.cashflow-amount{display:block;margin:4px 0 6px;font-family:SF Mono,Cascadia Mono,ui-monospace,monospace;font-size:clamp(1.18rem,5.2vw,2.05rem);line-height:1.08;overflow:hidden;text-overflow:clip;white-space:nowrap}.progress-card .metric-amount{margin-top:0;margin-bottom:0;overflow:visible;padding-bottom:2px;line-height:1.08}.pace-summary{display:flex;gap:6px;justify-content:flex-start;margin:0 0 6px;color:var(--ink);font-weight:850}.pace-summary span{min-width:0;overflow:hidden;font-size:.82rem;line-height:1.1;text-overflow:ellipsis;white-space:nowrap}.daily-graph-wrap{position:relative;display:grid;grid-template-columns:max-content minmax(0,1fr);column-gap:4px;flex:1 1 auto;min-height:0;margin-top:18px;margin-bottom:0;padding:0}.progress-card{display:flex;flex-direction:column;height:269px;min-height:269px;overflow:hidden}.progress-card .card-heading{position:relative}.daily-spend-graph{grid-column:2;grid-row:1;width:100%;height:100%;margin:0;padding:0;touch-action:none}.daily-spend-graph polyline{fill:none;stroke:var(--green);stroke-width:2;vector-effect:non-scaling-stroke}.daily-spend-graph .graph-projected-line{opacity:.42;stroke-dasharray:4 4}.daily-spend-graph .graph-active-line{stroke:var(--ink);stroke-width:1.35;opacity:.92;vector-effect:non-scaling-stroke}.graph-active-dot{position:absolute;z-index:1;grid-column:2;grid-row:1;width:9px;height:9px;border:1.5px solid var(--green);border-radius:999px;background:var(--ink);transform:translate(-50%,-50%);pointer-events:none}.graph-hover-point{fill:#dcefe303;stroke:transparent;cursor:crosshair;touch-action:manipulation;outline:none}.graph-hover-point:focus-visible{fill:var(--ink)}.axis-line,.axis-guide,.graph-guide{stroke:#dcefe333;stroke-width:1;vector-effect:non-scaling-stroke}.graph-guide{opacity:1}.graph-axis-labels{position:static;grid-column:1;grid-row:1;display:grid;grid-template-rows:auto minmax(0,1fr) auto;align-self:stretch;width:max-content;margin:0;padding:0;color:var(--muted);font-size:.68rem;font-weight:850;line-height:1;text-align:right}.graph-axis-labels span{position:static;transform:none}.graph-axis-labels span:nth-child(1){align-self:start}.graph-axis-labels span:nth-child(2){align-self:center}.graph-axis-labels span:nth-child(3){align-self:end}.cashflow-compare{display:grid;grid-template-columns:1fr;gap:8px;margin-top:19px;margin-bottom:0}.cashflow-bars{display:grid;grid-template-columns:1fr;gap:6px;margin:12px 0 16px}.cashflow-bar-row{min-width:0}.cashflow-bar-row span{color:var(--muted);font-weight:800}.cashflow-bar-row data{position:absolute;top:-15px;z-index:1;display:block;min-width:max-content;color:var(--ink);font-family:SF Mono,Cascadia Mono,ui-monospace,monospace;font-weight:850;font-size:.78rem;line-height:1}.cashflow-bar-row span{position:relative;display:block;height:8px;width:100%;margin-top:16px;background:#29322d}.cashflow-bar-row i{display:block;height:100%;max-width:100%;background:var(--green)}.cashflow-bar-row:last-child span{background:#29322d}.cashflow-bar-row:last-child i{background:var(--amber)}.cashflow-compare div{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;border-top:1px solid rgba(220,239,227,.26);padding-top:8px;font-size:.78rem}.cashflow-compare div:first-child{border-top:0;padding-top:0}.cashflow-compare span{color:var(--muted);font-weight:800}.cashflow-compare data{font-family:SF Mono,Cascadia Mono,ui-monospace,monospace;font-weight:850;opacity:.86}.transaction-list,.category-list{display:grid;margin:0;padding:0;list-style:none}.transaction-list li,.category-list li{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:14px;min-height:64px;border-top:1px solid rgba(220,239,227,.18)}.transaction-list li:first-child,.category-list li:first-child{border-top:0}.transaction-list strong,.transaction-list span,.transaction-list data,.category-list strong,.category-list data{display:block}.transaction-list strong,.category-list strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.transaction-list span{color:var(--muted);font-size:.88rem}.transaction-list data,.category-list data{font-weight:850;text-align:right}.transaction-row-side{display:grid;justify-items:end;min-width:0}.transaction-meta{display:flex!important;min-width:0;overflow:hidden;white-space:nowrap}.transaction-meta>span{min-width:0}.transaction-meta i{flex:0 0 auto;font-style:normal;margin-inline:2px}.transaction-meta .transaction-account{overflow:hidden;text-overflow:ellipsis}.transaction-meta .transaction-time{flex:0 0 auto}.recurring-indicator,.recurring-symbol,.recurring-cadence{display:inline!important}.transaction-list .recurring-indicator,.transaction-list .recurring-symbol,.transaction-list .recurring-cadence{font-size:.66rem;line-height:1}.transactions-page .transaction-list .recurring-indicator,.transactions-page .transaction-list .recurring-symbol,.transactions-page .transaction-list .recurring-cadence{font-size:.66rem}.recurring-indicator{position:relative;top:-.5px;margin-left:6px;color:var(--green)!important;font-family:SF Mono,Cascadia Mono,ui-monospace,monospace;font-size:.66rem;font-weight:750;line-height:1;vertical-align:baseline;white-space:nowrap}.recurring-symbol{position:static;color:var(--green)!important;font-size:inherit;font-weight:inherit}.recurring-cadence{margin-left:3px;color:var(--green)!important;font-size:inherit;font-weight:inherit}.selectable-transaction{cursor:pointer}@media(max-width:420px){.transaction-meta .transaction-account,.transaction-meta .transaction-account+i{display:none}}.transaction-meta .transaction-account+i{white-space:nowrap}.transaction-list data{white-space:nowrap}.category-list div{min-width:0}.category-list li{--category-lane-shift: 0px;--category-stack-height: 38px;--category-actual-label-top: 0;--category-actual-bar-top: 15px;--category-budget-bar-top: calc(20px - var(--category-lane-shift));--category-budget-label-top: calc(28px - var(--category-lane-shift));align-items:center;grid-template-columns:minmax(0,1fr);min-height:84px;border-top-color:#dcefe33d}.category-list strong{margin-bottom:8px}.category-bar-row{display:grid;grid-template-columns:minmax(0,1fr);gap:0;min-width:0}.category-bar-side{position:relative;height:var(--category-stack-height);background:transparent;min-width:0;overflow:visible}.category-bar-left{display:none;justify-content:flex-end;border-right:0}.category-bar-right{border-left:0}.category-income-row .category-bar-row{grid-template-columns:.3fr minmax(0,1fr)}.category-income-row .category-bar-left{display:flex;border-right:1px solid rgba(220,239,227,.2);padding-right:1px}.category-income-row .category-bar-right{border-left:1px solid rgba(220,239,227,.2);padding-left:1px}.category-list li:not(.category-has-budget){min-height:62px;--category-stack-height: 24px}.category-income-row:not(.category-has-budget){--category-stack-height: 30px}.category-list li:not(.category-has-actual).category-has-budget{min-height:62px;--category-lane-shift: 14px;--category-stack-height: 24px}.category-list li:not(.category-has-budget) strong{margin-bottom:6px}.category-budget-bar,.category-actual-bar{position:absolute;display:block}.category-budget-bar{top:var(--category-budget-bar-top);left:0;height:4px;background:var(--budget);opacity:.9}.category-actual-bar{top:var(--category-actual-bar-top);height:6px;z-index:1}.category-spend-bar{left:0;background:var(--rust)}.category-income-bar{right:0;background:var(--green)}.category-value-label{position:absolute;z-index:2;display:block;overflow:visible;color:var(--ink);font-family:SF Mono,Cascadia Mono,ui-monospace,monospace;font-size:.72rem;font-weight:850;line-height:1;white-space:nowrap}.category-spend-label,.category-income-label{top:var(--category-actual-label-top)}.category-budget-label{top:var(--category-budget-label-top);color:var(--budget);opacity:.86}.recurring-stack{display:grid;gap:12px}.recurring-stack div{border-top:1px dashed var(--line);padding-top:12px}.recurring-stack div:first-child{border-top:0;padding-top:0}.recurring-stack strong,.recurring-stack span{display:block}.heat-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:7px}.heat-grid span{display:block;aspect-ratio:1;border:1px solid var(--line);border-radius:1px;background:var(--green)}.heat-grid span:not(.heat-blank){cursor:crosshair;touch-action:none}.heat-grid span:focus-visible{outline:1px solid var(--ink);outline-offset:2px}.heat-grid .heat-active{border-color:#dcefe3db;box-shadow:inset 0 0 0 1px #dcefe380}.heat-grid.large{grid-template-columns:repeat(7,minmax(24px,1fr))}.heat-weekdays{display:grid;grid-template-columns:repeat(7,minmax(24px,1fr));gap:7px;margin-bottom:7px;color:var(--muted);font-family:SF Mono,Cascadia Mono,ui-monospace,monospace;font-size:.68rem;font-weight:850;line-height:1;text-align:center}.overview-heatmap-card{display:flex;flex-direction:column;grid-column:1 / -1;height:190px}.overview-heatmap-card .heat-grid{flex:1;grid-auto-rows:minmax(0,1fr);min-height:0}.overview-heatmap-card .heat-grid span{aspect-ratio:auto}.overview-heatmap-card .heat-grid .heat-blank{border-color:transparent;background:transparent}.overview-heatmap-card .heat-grid .heat-empty{background:transparent}.filter-panel{display:flex;flex-wrap:wrap;align-items:start;gap:10px}.transaction-search{flex:1 1 100%;min-height:40px}.filter-picker{position:relative;min-width:0;flex:1 1 calc((100% - 10px)/2)}.filter-picker>button{display:flex;width:100%;height:40px;min-height:40px;align-items:center;gap:8px;overflow:hidden;border-color:var(--line);padding:0 10px;color:var(--ink);background:var(--surface);text-align:left}.filter-label{display:block;min-width:max-content;line-height:1;white-space:nowrap}.filter-value{position:relative;top:1px;display:block;flex:0 1 auto;max-width:100%;margin-left:auto;min-width:0;overflow:hidden;color:var(--muted);font-family:var(--font-mono);font-size:.68rem;font-weight:800;line-height:1;text-overflow:ellipsis;transform:none;white-space:nowrap}.filter-picker>button:hover,.filter-picker>button[aria-expanded=true]{border-color:var(--green);color:var(--green);background:#5fffb014;transform:none}.filter-picker>button.filter-active{border-color:transparent;padding-right:36px;color:#07100b;background:var(--green)}.filter-picker>button.filter-active .filter-value{color:#07100b}.filter-picker>button:not(.filter-clear) .filter-value:before{content:"·";margin-right:6px}@media(max-width:1199px){.filter-picker{container-type:inline-size}.filter-picker>button:not(.filter-clear) .filter-value:before{content:none}@container (max-width: 160px){.filter-picker>button:not(.filter-clear) .filter-value:before{content:"·";margin-right:6px}}}.filter-picker>button.filter-clear{position:absolute;top:3px;right:3px;z-index:1;display:grid;width:30px;height:34px;min-height:34px;grid-template-columns:1fr;place-items:center;justify-content:center;align-content:center;border:0;border-radius:3px;padding:0;color:#07100b;background:transparent;font-size:1rem;line-height:1}.filter-picker>button.filter-clear:hover{border:0;color:#07100b;background:#07100b24;transform:none}.filter-picker>button.filter-clear svg{position:absolute;top:50%;left:50%;width:15px;height:15px;fill:none;stroke:currentColor;stroke-linecap:round;stroke-width:2;transform:translate(-50%,-50%)}.filter-menu{position:absolute;top:calc(100% + 6px);right:0;z-index:25;display:grid;width:max-content;min-width:210px;max-width:calc(100vw - 36px);gap:2px;border:1px solid var(--line);border-radius:4px;background:var(--surface);padding:6px;box-shadow:0 18px 48px #00000047}.filter-option{display:flex;min-height:34px;align-items:center;justify-content:flex-start;gap:9px;border:1px solid transparent;border-radius:3px;padding:0 9px;color:var(--ink);cursor:pointer}.filter-option:hover{color:#07100b;background:var(--green)}.filter-option:hover i{border-color:#07100b}.filter-option input{position:absolute;width:1px;height:1px;opacity:0}.filter-option i{display:block;width:14px;height:14px;flex:0 0 14px;border:1px solid rgba(220,239,227,.32);border-radius:3px;background:transparent}.filter-option input:checked+i{border-color:var(--green);background:var(--green)}.filter-option input:checked+i:after{content:"";display:block;width:4px;height:7px;margin:1px auto 0;border:solid #07100b;border-width:0 2px 2px 0;transform:rotate(45deg)}.filter-option:hover input:checked+i{border-color:#07100b;background:#07100b}.filter-option:hover input:checked+i:after{border-color:var(--green)}.filter-option input:focus-visible+i{outline:2px solid var(--green);outline-offset:2px}.filter-all-option{border-bottom-color:var(--line);margin-bottom:4px}.amount-filter-menu{width:min(280px,calc(100vw - 36px));gap:10px;padding:10px}.amount-input-row{display:grid;grid-template-columns:1fr 1fr;gap:8px}.amount-input-row input{min-height:38px;padding:0 9px;color:var(--ink);background:#0b0f0d;font-family:var(--font-mono);font-size:.78rem;font-weight:800}.amount-quick-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}.amount-quick-actions button{min-height:34px;padding:0 8px;color:var(--ink);font-size:.68rem}.amount-quick-actions .clear-amount{border-color:#ff705c61;color:var(--rust)}.amount-quick-actions .clear-amount:hover{border-color:var(--rust);color:#190705;background:var(--rust)}.transactions-list{min-width:0;border:1px solid var(--line);border-radius:4px;background:var(--surface);padding:var(--card-padding)}.transactions-page .transaction-list li{min-height:42px;max-height:none;column-gap:8px;border:1px solid transparent;border-radius:4px;padding:8px 10px;transition:background .15s ease,border-color .15s ease,color .15s ease}.transactions-list[aria-busy=true] .grouped-list{min-height:120px}.transactions-page .transaction-list li:hover{border-color:#5fffb03d;color:var(--green);background:#5fffb014}.transactions-page .transaction-list strong{font-size:.95rem;line-height:1.05}.transactions-page .transaction-list span{font-size:.72rem;line-height:1.05}.transactions-page .transaction-list data{font-size:.95rem}.grouped-list,.transaction-group{display:grid}.transaction-group h2{display:flex;align-items:baseline;justify-content:flex-start;gap:8px;margin:18px 0 0;color:var(--muted);font-size:.72rem;font-weight:850;line-height:1}.transaction-group h2 data{position:relative;top:-.5px;color:var(--muted);font-family:SF Mono,Cascadia Mono,ui-monospace,monospace;font-size:.66rem;font-weight:750;line-height:1;opacity:.8;white-space:nowrap}.transaction-group h2 .group-total-positive{color:#4de69f}.transaction-group h2 .group-total-negative{color:#a9786c}.transaction-group:first-child h2{margin-top:10px}.transaction-group .transaction-list{gap:4px;margin-top:8px}.bulk-panel{display:grid;gap:10px}.bulk-selection-heading{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:10px}.bulk-selection-heading strong{color:var(--muted);font-size:.75rem;font-weight:850}.bulk-panel>select{min-height:40px}.bulk-choice-picker{position:relative}.bulk-choice-picker>button,.bulk-choice-placeholder{display:flex;width:100%;min-height:40px;align-items:center;justify-content:space-between;border:1px solid var(--line);border-radius:4px;padding:0 10px;color:var(--ink);background:var(--surface);text-align:left}.bulk-choice-picker>button:after{content:"+";color:var(--muted);font-weight:850}.bulk-choice-picker .period-menu{position:static;width:100%;min-width:100%;max-width:none;margin-top:4px;box-shadow:none}.bulk-choice-placeholder{color:var(--muted)}.week-stepper{display:grid;grid-template-columns:34px minmax(0,1fr) 34px;width:100%;min-height:40px;overflow:hidden;border:1px solid var(--line);border-radius:4px;background:var(--surface)}.week-stepper button{display:grid;place-items:center;min-height:38px;border:0;border-radius:0;padding:0;color:var(--green);background:transparent;font-size:1rem;font-weight:850}.week-stepper button:hover:not(:disabled){transform:none;color:#07100b;background:var(--green)}.week-stepper button:disabled{cursor:default;color:var(--muted);opacity:.45}.week-stepper data{display:grid;place-items:center;border-inline:1px solid var(--line);color:var(--ink);font-family:var(--font-mono);font-size:.78rem;font-weight:850;pointer-events:none}.bulk-choice-picker+.weekly-stepper{margin-top:-5px}.bulk-panel .bulk-apply{border-color:var(--green);color:#07100b;background:var(--green)}.bulk-panel .bulk-apply:hover{border-color:var(--green);background:#7dffc3}.bulk-panel .bulk-delete{border-color:var(--rust);color:#190705;background:var(--rust)}.bulk-panel .bulk-delete:hover{border-color:var(--rust);background:#f87}.selection-actions,.selection-actions button{min-height:0;border:0;padding:0;background:transparent;font-size:inherit}.selection-actions{display:flex!important;align-items:center;justify-content:end;gap:4px;color:var(--muted)!important;font-size:.72rem!important;line-height:1}.selection-actions i{font-style:normal}.selection-actions .selection-clear{color:var(--rust)}.selection-actions .selection-select{color:var(--green)}.selection-actions button:hover{border-color:transparent;text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:3px;transform:none}.mobile-selection-bar,.selection-sheet-backdrop{display:none}.danger-action{border-color:#ff705c5c;color:var(--rust)}.danger-action:hover{border-color:#ff705c94;background:#ff705c14}.budget-total-grid{display:grid;grid-template-columns:minmax(0,1fr);gap:10px}.line-input-label input{min-height:38px;border-width:0 0 1px;border-radius:0;padding:0;color:var(--ink);background:transparent}.assignment-bar{display:grid;gap:8px;margin-top:14px}.assignment-bar div{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;color:var(--muted);font-size:.86rem;font-weight:850}.assignment-bar progress{width:100%;height:7px;border:0;background:#0a0f0c}.assignment-bar progress::-webkit-progress-bar{background:#0a0f0c}.assignment-bar progress::-webkit-progress-value{background:var(--budget)}.assignment-bar progress::-moz-progress-bar{background:var(--budget)}.budget-editor-list{display:grid;gap:8px}.budget-editor-list label{display:grid;grid-template-columns:minmax(0,1fr) minmax(96px,.42fr);gap:10px;align-items:center;border-top:1px dashed var(--line);padding-top:8px}.budget-editor-list label:first-child{border-top:0;padding-top:0}.budget-editor-list span{overflow:hidden;color:var(--muted);font-size:.84rem;font-weight:850;text-overflow:ellipsis;white-space:nowrap}.transaction-list li.selectable-transaction{grid-template-columns:auto minmax(0,1fr) auto;column-gap:8px}.transaction-list li.transaction-selected{background:linear-gradient(90deg,rgba(95,255,176,.06),transparent 34%)}.transactions-page .transaction-list li.transaction-selected{color:#07100b;background:var(--green)}.transactions-page .transaction-list li.transaction-selected span,.transactions-page .transaction-list li.transaction-selected data{color:#07100b}.transactions-page .transaction-list li.transaction-selected .transaction-preview,.transactions-page .transaction-list li.transaction-selected .recurring-indicator,.transactions-page .transaction-list li.transaction-selected .recurring-symbol,.transactions-page .transaction-list li.transaction-selected .recurring-cadence{color:#07100b!important}.transaction-preview{font-weight:900;text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:2px}.selection-toggle{display:grid;align-self:stretch;width:18px;height:100%;min-width:18px;place-items:center;cursor:pointer}.selection-toggle input{position:absolute;width:1px;height:1px;opacity:0}.selection-toggle span{display:block;width:14px;height:14px;border:1px solid rgba(220,239,227,.32);border-radius:3px;background:transparent;cursor:pointer}.selection-toggle input:checked+span{border-color:var(--green);background:var(--green);box-shadow:inset 0 0 0 3px var(--surface)}.selection-toggle input:focus-visible+span{outline:1px solid var(--ink);outline-offset:2px}.recurring-page .recurring-list{gap:4px;margin-top:8px}.recurring-page .transaction-list li{min-height:42px;gap:8px;border:1px solid transparent;border-radius:4px;padding:8px 10px}.recurring-page .transaction-list li.transaction-selected{color:#07100b;background:var(--green)}.recurring-page .transaction-list li.transaction-selected span,.recurring-page .transaction-list li.transaction-selected data{color:#07100b}.recurring-page .transaction-list li.transaction-selected .recurring-symbol{color:#07100b!important}.recurring-page .transaction-list strong{font-size:.95rem;line-height:1.05}.recurring-page .transaction-list .transaction-meta{font-size:.72rem;line-height:1.05}.recurring-page .transaction-list data{font-size:.95rem}.recurring-page .transaction-list li.transaction-selected .recurring-indicator,.recurring-page .transaction-list li.transaction-selected .recurring-cadence{color:#07100b!important}.recurring-summary-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--section-gap)}.recurring-page .page-toolbar{border:0;background:transparent;padding:0}.recurring-summary-card{min-width:0}.recurring-summary-card data{display:block;overflow:hidden;font-family:SF Mono,Cascadia Mono,ui-monospace,monospace;font-size:clamp(1rem,3.5vw,1.45rem);font-weight:850;text-overflow:ellipsis;white-space:nowrap}.recurring-page .transaction-row-side span{color:var(--muted);font-size:.7rem;font-weight:750}.recurring-bulk-actions{display:none}.add-card{display:grid;gap:14px}label{display:grid;gap:6px;color:var(--muted);font-size:.86rem;font-weight:800}input,select{width:100%;min-height:46px;border:1px solid var(--line);border-radius:4px;padding:0 12px;color:var(--ink);background:#0b0f0d;font-family:inherit;font-size:16px;font-weight:inherit}.checkbox-line{display:flex;align-items:center;gap:10px}.checkbox-line input{width:20px;min-height:20px}.muted-copy{color:var(--muted)}.empty-state{padding:0}.empty-state strong{display:block;margin-bottom:4px}.empty-state.compact{padding:0}.bottom-nav{position:fixed;right:10px;bottom:max(4px,env(safe-area-inset-bottom));left:10px;z-index:10;display:grid;grid-template-columns:repeat(4,minmax(0,1fr)) 56px;align-items:stretch;gap:4px;border:1px solid var(--line);border-radius:4px;background:#0b0f0df5;padding:6px;box-shadow:none;-webkit-backdrop-filter:none;backdrop-filter:none;isolation:isolate}.bottom-nav:before{position:fixed;right:0;bottom:0;left:0;z-index:-1;height:calc(64px + env(safe-area-inset-bottom));content:"";background:var(--bg)}.bottom-nav button,.sidebar button{overflow:hidden;border:0;background:transparent;font-size:.76rem;text-overflow:ellipsis}.bottom-nav button:hover,.sidebar button:hover{border-color:transparent;transform:none}.bottom-nav button{display:grid;height:44px;min-height:44px;place-items:center;line-height:1}.nav-icon{display:none}.nav-svg{width:18px;height:18px}.bottom-nav .nav-active,.sidebar .nav-active,.bottom-nav .nav-add{color:#07100b;background:var(--green)}@media(min-width:760px){.app-shell{display:grid;grid-template-columns:190px minmax(0,1fr)}.sidebar{position:sticky;top:0;display:block;height:100vh;border-right:1px solid var(--line);padding:22px 14px;background:#0d1510}.brand-lockup{display:flex;align-items:center;gap:10px;margin-bottom:28px}.brand-mark{display:grid;width:38px;height:38px;place-items:center;border:1px solid rgba(95,255,176,.42);border-radius:4px;color:#07100b;background:var(--green);font-weight:900}.brand-lockup strong{color:var(--ink)}.sidebar nav{display:grid;gap:6px}.sidebar button{display:flex;align-items:center;gap:10px;justify-content:start;width:100%;min-height:38px;border:1px solid transparent;text-align:left;font-size:.94rem}.sidebar .nav-icon{display:grid;width:20px;place-items:center}.sidebar button:hover{color:var(--green);background:#5fffb014}.sidebar .nav-active:hover,.sidebar .nav-active{color:#07100b;background:var(--green)}.workspace{padding:44px var(--page-padding) var(--page-padding)}.dashboard-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr);grid-auto-rows:auto;grid-auto-flow:dense;gap:14px}.filter-panel{display:flex}.transaction-search{flex:1 1 220px}.filter-picker{width:fit-content;flex:0 1 auto;max-width:100%}.filter-picker>button{width:max-content;max-width:100%}.trend-card,.progress-card,.activity-card,.categories-card{min-height:220px}.progress-card{height:224px;min-height:224px;max-height:224px;overflow:hidden}.progress-card .daily-graph-wrap{margin-top:6px;margin-bottom:0}.progress-card .graph-axis-labels{top:0}.month-card{grid-row:span 2;min-height:503px}.activity-card,.categories-card{grid-column:span 2;min-height:0}.overview-heatmap-card{grid-column:span 2}.activity-card .compact-list li:nth-child(n+5){display:grid}.activity-card .compact-list li:nth-child(n+7){display:none}.overview-heatmap-card{grid-column:1 / -1;height:214px}.bottom-nav{display:none}}@media(min-width:760px)and (max-width:1199px){.filter-panel{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.transaction-search{grid-column:1 / -1}.filter-picker{width:auto;max-width:none;flex:initial}.filter-picker>button{width:100%}.amount-filter-menu{right:auto;left:0}}@media(min-width:1200px){.filter-panel{flex-wrap:nowrap}.transaction-search{flex-basis:160px;min-width:160px}.page-layout.has-context{grid-template-columns:minmax(0,1fr) minmax(280px,var(--context-width))}.page-layout.has-context .page-toolbar{grid-column:1 / -1}.page-context{position:sticky;top:var(--page-padding)}.recurring-bulk-actions{display:block}.recurring-bulk-actions .bulk-panel{grid-template-columns:minmax(0,1fr);align-items:end}.recurring-bulk-actions .bulk-choice-picker,.recurring-bulk-actions .weekly-stepper,.recurring-bulk-actions .form-error{grid-column:1 / -1}.recurring-bulk-actions .weekly-stepper{min-width:0;margin-top:0;margin-left:0}.dashboard-grid{grid-template-columns:minmax(0,1.15fr) minmax(0,.95fr) minmax(0,.95fr);grid-auto-rows:auto}.month-card{grid-column:1;grid-row:1;min-height:360px}.trend-card{grid-column:2;grid-row:1;min-height:220px}.progress-card{grid-column:3;grid-row:1;height:265px;min-height:265px;max-height:265px;overflow:hidden}.progress-card .daily-graph-wrap{margin-top:6px;margin-bottom:0}.progress-card .graph-axis-labels{top:0}.activity-card{grid-column:2 / span 2;grid-row:2;margin-top:-95px;min-height:0}.activity-card .compact-list li:nth-child(n+7){display:grid}.activity-card .transaction-list li{min-height:44px;max-height:48px}.activity-card .compact-list li:nth-child(n+13){display:none}.categories-card{grid-column:1;grid-row:2;min-height:0}.overview-heatmap-card{align-self:end;height:var(--heatmap-fill-height, auto);min-height:0}.overview-heatmap-card.heatmap-under-activity{grid-column:2 / span 2;grid-row:2}.overview-heatmap-card.heatmap-under-categories{grid-column:1;grid-row:2}.overview-heatmap-card.heatmap-under-wide{align-self:start;grid-column:1 / -1;grid-row:3;height:214px}}@media(max-width:1199px){.transactions-page .page-context,.recurring-page .page-context{display:none}.mobile-selection-bar{position:fixed;right:14px;bottom:max(14px,env(safe-area-inset-bottom));left:14px;z-index:30;display:grid;gap:10px;border:1px solid var(--green);border-radius:4px;background:var(--surface);padding:12px;box-shadow:0 12px 36px #00000052}.mobile-selection-bar>div,.mobile-selection-bar nav{display:flex;align-items:center;gap:8px;justify-content:space-between}.mobile-selection-bar strong{font-size:.82rem}.mobile-selection-bar button{min-height:34px;padding:0 10px;font-size:.76rem}.mobile-selection-bar>div button{min-height:0;border:0;padding:0;color:var(--muted);background:transparent}.mobile-selection-bar nav button:not(.mobile-delete-action){flex:1}.mobile-selection-bar .mobile-delete-action{display:grid;flex:0 0 42px;width:42px;min-width:42px;place-items:center;border-color:#ff705c80;color:#190705;background:var(--rust);padding:0}.mobile-selection-bar .mobile-delete-action:hover{border-color:var(--rust);background:#f87}.mobile-selection-bar .mobile-stop-action{border-color:var(--rust);color:#190705;background:var(--rust)}.mobile-selection-bar .mobile-stop-action:hover{border-color:var(--rust);background:#f87}.mobile-delete-action svg{width:17px;height:17px;fill:currentColor}.selection-sheet-backdrop{position:fixed;inset:0;z-index:40;display:grid;align-items:end;background:#0000008f}.selection-sheet{display:grid;max-height:min(74dvh,640px);gap:12px;overflow:auto;border:1px solid var(--line);border-radius:4px 4px 0 0;background:var(--surface);padding:16px}.selection-sheet-heading{display:flex;align-items:center;justify-content:space-between;gap:12px}.selection-sheet-heading button{min-height:34px;padding:0 10px;font-size:1rem}.selection-option-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}.selection-option-list button{justify-content:start;min-height:38px;text-align:left}.selection-option-active{border-color:var(--green)!important;color:var(--green);background:#5fffb014}.selection-apply{border-color:var(--green);color:#07100b;background:var(--green)}}@media(max-width:759px){.workspace{--page-padding: 10px;--card-padding: 12px;padding-inline:10px}.topbar{align-items:flex-start}.period-picker{min-width:46px}.topbar-actions{align-items:end}.mobile-account-action{display:grid;align-self:end;width:42px;height:34px;min-height:34px;border:1px solid rgba(220,239,227,.18);border-radius:4px;color:var(--ink);background:var(--surface);padding:0;place-items:center;transform:none;transition:background .15s ease,border-color .15s ease,color .15s ease}.mobile-account-action:hover,.mobile-account-action:focus-visible,.mobile-account-action:active{transform:none}.mobile-account-action.nav-active{border-color:var(--green);color:#07100b;background:var(--green)}.period-picker>span:not(.period-picker-control){display:none}.card,.page-toolbar{padding:var(--card-padding)}.amount-filter-menu{right:auto;left:0}.mobile-selection-bar{right:10px;bottom:max(70px,calc(env(safe-area-inset-bottom) + 64px));left:10px}.dashboard-grid>.month-card{order:1;min-height:150px}.dashboard-grid>.trend-card{order:2}.dashboard-grid>.progress-card{order:3}.dashboard-grid>.activity-card{order:4}.dashboard-grid>.categories-card{order:5}.dashboard-grid>.overview-heatmap-card{order:6}.dashboard-grid>.month-card .month-background-graph{height:54%;opacity:.42}.dashboard-grid>.month-card .budget-marker{stroke-width:3}.progress-card{height:250px;min-height:250px;max-height:250px}.progress-card .daily-graph-wrap{margin-top:6px;margin-bottom:0}.progress-card .graph-axis-labels{top:0}.transaction-list li,.category-list li{gap:8px}.transaction-list li{min-height:52px}.compact-list li{min-height:48px;max-height:52px}.category-income-row .category-bar-row{grid-template-columns:.26fr minmax(0,1fr)}.category-bar-row data{font-size:.66rem}.bottom-nav{grid-template-columns:repeat(4,minmax(0,1fr)) 56px}.bottom-nav button{display:grid;min-width:0;min-height:44px;place-items:center;padding:0;font-size:1rem}.bottom-nav .nav-label{display:none}.bottom-nav .nav-icon{display:grid;place-items:center;line-height:1}.bottom-nav .nav-add .nav-icon{font-weight:900}.budget-total-grid,.budget-editor-list.two-col{grid-template-columns:1fr}}
