:root{--bg: #0b0f0d;--surface: #101712;--surface-strong: #dcefe3;--ink: #dcefe3;--muted: #5c7a6b;--line: #1b2620;--green: #5fffb0;--amber: #ff8f6b;--rust: #ff6f5b;--bluegray: #83a092;--budget: #7aa2ff;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%,1180px);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-grid{display:grid;grid-template-columns:minmax(0,1fr);gap:10px}.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-grid{align-items:start}.account-main-card,.account-session-card{display:grid;gap:14px}.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) minmax(0,.8fr) auto}.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}.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}.account-list li{grid-template-columns:minmax(0,1fr) minmax(180px,.9fr) auto auto}.card-nickname-fields{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,.8fr);gap:8px}.card-nickname-fields input{min-height:34px;padding:0 9px;font-size:.8rem}.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:16px}.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-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:grid;grid-template-columns:repeat(auto-fit,minmax(138px,1fr));gap:10px;margin-bottom:18px}.transactions-card .filter-panel{margin-bottom:6px}.transactions-card .filter-panel label{gap:5px;color:var(--muted);font-size:.72rem;font-weight:850;line-height:1}.transactions-card .filter-panel input,.transactions-card .filter-panel select{min-height:38px}.amount-range-filter{display:grid;grid-column:span 2;gap:7px;color:var(--muted);font-size:.72rem;font-weight:850;line-height:1}.amount-range-filter div:first-child{display:flex;justify-content:space-between;gap:10px}.amount-range-filter data{color:var(--ink);font-size:.72rem;white-space:nowrap}.amount-input-row{display:grid;grid-template-columns:1fr 1fr;gap:8px}.amount-input-row input{min-height:28px;border-width:0 0 1px;border-radius:0;padding:0;color:var(--ink);background:transparent;font-size:.78rem}.transactions-page .transaction-list li{min-height:42px;max-height:none;border:1px solid transparent;border-radius:4px;padding:8px 10px;transition:background .15s ease,border-color .15s ease,color .15s ease}.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{margin:18px 0 0;color:var(--muted);font-size:.72rem;font-weight:850;line-height:1}.transaction-group:first-child h2{margin-top:10px}.transaction-group .transaction-list{gap:4px;margin-top:8px}.bulk-panel{display:grid;gap:10px}.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}.selection-toggle{display:grid;align-self:stretch;width:18px;height:100%;min-width:18px;place-items:center}.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}.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-list{display:grid;margin:0;padding:0;list-style:none}.recurring-list li{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:14px;align-items:center;min-height:68px;border-top:1px dashed var(--line)}.recurring-list li:first-child{border-top:0}.recurring-list strong,.recurring-list span,.recurring-list data{display:block}.recurring-list span{color:var(--muted);font-size:.88rem}.recurring-list data{font-family:SF Mono,Cascadia Mono,ui-monospace,monospace;font-weight:850}.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(10px,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}.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 28px 28px}.dashboard-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr);grid-auto-rows:auto;grid-auto-flow:dense;gap:14px}.filter-panel{grid-template-columns:1.4fr repeat(3,minmax(120px,.8fr))}.page-grid{grid-template-columns:minmax(0,1.5fr) minmax(260px,.7fr);gap:14px}.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}.wide-card{grid-column:span 1}.overview-heatmap-card{grid-column:1 / -1;height:214px}.bottom-nav{display:none}}@media(min-width:1120px){.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:759px){.workspace{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{padding:12px}.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}}
