@import "https://fonts.googleapis.com/css2?family=IBM+Plex+Sans:wght@400;500;600&display=swap";:root{color:#f1f5f4;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;background:#111516;font-family:IBM Plex Sans,sans-serif}*{box-sizing:border-box}html{background:#111516;min-width:320px}body{background:radial-gradient(circle at 92% -5%,#62d4df11,#0000 38rem),#111516;min-width:320px;min-height:100vh;margin:0}button,input,select{font:inherit}button{cursor:pointer}::selection{color:#111516;background:#62d4df}:root{--bg:#111516;--surface:#181d1f;--surface-raised:#202729;--text:#f1f5f4;--muted:#a6b0af;--faint:#717d7c;--line:#354042;--accent:#62d4df;--accent-strong:#8ce6ed;--danger:#ff8f86;--warning:#e5c875;--success:#7bd6ac;--radius:.625rem;--focus:0 0 0 3px #62d4df47;--motion:.18s ease}.dashboard{width:min(100% - 2rem,76rem);margin:0 auto;padding:2rem 0 5rem}.topbar{border-bottom:1px solid var(--line);justify-content:space-between;align-items:flex-end;padding-bottom:1.5rem;display:flex}.kicker,.section-heading>div>p{color:var(--accent);letter-spacing:.14em;margin:0 0 .6rem;font-size:.75rem;font-weight:600}h1{letter-spacing:-.045em;margin:0;font-size:clamp(2rem,5vw,3.25rem);font-weight:500;line-height:1}.topbar>p{color:var(--faint);letter-spacing:.12em;margin:0;font-size:.75rem}.filters{grid-template-columns:repeat(3,minmax(0,1fr));gap:.75rem;margin-top:1.5rem;display:grid}label{color:var(--muted);letter-spacing:.025em;gap:.45rem;font-size:.75rem;font-weight:500;display:grid}input,select{border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);width:100%;height:3rem;color:var(--text);transition:border-color var(--motion), background var(--motion), box-shadow var(--motion);outline:none;padding:0 .8rem}input:hover,select:hover{background:var(--surface-raised);border-color:#526062}input:focus-visible,select:focus-visible,button:focus-visible,summary:focus-visible{border-color:var(--accent);box-shadow:var(--focus);outline:none}button{border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);min-height:2.75rem;color:var(--text);transition:border-color var(--motion), color var(--motion), background var(--motion), transform var(--motion), box-shadow var(--motion);padding:0 .9rem}button:hover:not(:disabled){border-color:var(--accent)}button:active:not(:disabled){transform:translateY(1px)}button:disabled{opacity:.4;cursor:not-allowed}.verdict{grid-template-columns:minmax(0,1.6fr) minmax(14rem,.6fr);align-items:end;gap:3rem;padding:clamp(3.5rem,9vw,7rem) 0 clamp(3rem,7vw,5rem);display:grid}.verdict p,.section-heading>p{color:var(--muted);margin:0 0 1rem;font-size:.8125rem}.verdict h2{letter-spacing:-.055em;max-width:18ch;margin:0;font-size:clamp(2.25rem,6vw,4.75rem);font-weight:500;line-height:1.02}.verdict-total{text-align:right;justify-items:end;gap:.3rem;padding-bottom:.4rem;display:grid}.verdict-total span,.verdict-total small{color:var(--muted);font-size:.8125rem}.verdict-total strong{font-variant-numeric:tabular-nums;font-size:clamp(1.5rem,3vw,2.25rem);font-weight:500}.analysis-section,.ledger{border-top:1px solid var(--line);padding:4rem 0}.section-heading{justify-content:space-between;align-items:flex-end;gap:2rem;margin-bottom:2rem;display:flex}.section-heading h2,.empty h2{letter-spacing:-.035em;margin:0;font-size:clamp(1.5rem,3vw,2.25rem);font-weight:500}.section-heading>p{text-align:right;margin:0}.chart{font-variant-numeric:tabular-nums;width:100%;min-height:340px}.recharts-default-legend{font-size:.8125rem!important}.data-alternative{color:var(--muted);margin-top:1rem;font-size:.8125rem}.data-alternative summary{cursor:pointer;width:max-content;max-width:100%;padding:.5rem 0}table{border-collapse:collapse;font-variant-numeric:tabular-nums;width:100%}th{color:var(--faint);letter-spacing:.05em;text-align:left;font-size:.75rem;font-weight:500}th,td{border-bottom:1px solid #293234;padding:.85rem .75rem}.data-alternative table{margin-top:1rem}.category-chart{min-height:260px}.variance-table{margin-top:2rem}.variance-table th:not(:first-child),.variance-table td:not(:first-child){text-align:right}.variance-table td{color:var(--muted)}.variance-table td:first-child{color:var(--text)}.variance-table small{color:var(--faint)}.variance-table .over{color:var(--warning)}.variance-table .under{color:var(--success)}.ledger-heading{align-items:end}.ledger-heading label{width:min(22rem,40vw)}.transactions th:nth-child(4),.transactions td:nth-child(4){text-align:right}.transactions td{color:var(--muted)}.transactions td:first-child strong{color:var(--text);font-weight:500;display:block}.transactions td small{color:var(--faint);margin-top:.25rem;display:block}.transactions .money{color:var(--text);white-space:nowrap;font-weight:500}.transactions td:last-child{text-align:right;width:1%}.edit{min-height:2.5rem;padding-inline:.75rem}.selected-row td{border-bottom-color:var(--accent);background:#62d4df09}.edit-row td{background:var(--surface);padding:0}.edit-form{padding:1.5rem}.edit-grid{grid-template-columns:repeat(5,1fr);gap:.75rem;display:grid}.edit-grid .wide{grid-column:span 2}.edit-grid label>span{float:right;color:var(--faint)}.edit-error{min-height:1.25rem;color:var(--danger);margin:.75rem 0;font-size:.8125rem}.edit-actions{grid-template-columns:auto 1fr auto auto;gap:.5rem;display:grid}.delete{color:var(--danger)}.primary{border-color:var(--accent);background:var(--accent);color:var(--bg);font-weight:600}.primary:hover:not(:disabled){background:var(--accent-strong);color:var(--bg)}.quiet{background:0 0}.pagination{justify-content:flex-end;align-items:center;gap:.75rem;margin-top:1.5rem;display:flex}.pagination span{color:var(--muted);font-size:.8125rem}.refreshing{opacity:.55;transition:opacity var(--motion)}.inline-error,.page-error{color:var(--danger);padding:.75rem 0;font-size:.8125rem}.inline-error button,.page-error button{min-height:2.25rem;margin-left:.75rem}.page-error{align-items:center;gap:1rem;margin-top:3rem;display:flex}.empty{border-top:1px solid var(--line);max-width:42rem;padding:4rem 0 6rem}.empty>p:first-child{color:var(--accent);letter-spacing:.14em;font-size:.75rem}.empty>p:last-child,.quiet-empty{max-width:36rem;color:var(--muted);line-height:1.6}.quiet-empty{padding:2rem 0}.analysis-skeleton,.ledger-skeleton{border-radius:var(--radius);background:var(--surface);animation:1.5s ease-in-out infinite pulse}.analysis-skeleton{height:42rem;margin:4rem 0}.ledger-skeleton{height:18rem}@keyframes pulse{50%{opacity:.48}}.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}@media (width<=50rem){.dashboard{width:min(100% - 1.5rem,76rem)}.topbar{align-items:start}.topbar>p{margin-top:.4rem}.filters{grid-template-columns:1fr}.verdict{grid-template-columns:1fr;gap:2rem}.verdict-total{text-align:left;justify-items:start}.section-heading{align-items:start}.section-heading>p{max-width:12rem}.ledger-heading{display:grid}.ledger-heading label{width:100%}.variance-table{font-size:.8125rem}.variance-table th,.variance-table td{padding-inline:.35rem}.transactions thead{clip:rect(0,0,0,0);width:1px;height:1px;position:absolute;overflow:hidden}.transactions,.transactions tbody{display:block}.transactions tr{border-bottom:1px solid #293234;grid-template-columns:1fr auto;grid-template-areas:"transaction amount""category edit""account edit";gap:.5rem 1rem;padding:1rem 0;display:grid}.transactions td{border:0;padding:0;display:block;width:auto!important}.transactions td:first-child{grid-area:transaction}.transactions td:nth-child(2){grid-area:category}.transactions td:nth-child(3){color:var(--faint);grid-area:account;font-size:.8125rem}.transactions td:nth-child(4){text-align:right;grid-area:amount}.transactions td:nth-child(5){grid-area:edit;align-self:end}.transactions .edit-row{padding:0;display:block}.transactions .edit-row td{display:block}.edit-form{padding:1rem 0}.edit-grid{grid-template-columns:1fr 1fr}.edit-grid .wide{grid-column:span 2}.edit-actions{grid-template-columns:1fr 1fr}.edit-actions span{display:none}.delete{grid-column:span 2}.pagination{justify-content:space-between}}@media (width<=34rem){.topbar>p{display:none}.section-heading{gap:.5rem;display:grid}.section-heading>p{text-align:left}.variance-table th:nth-child(3),.variance-table td:nth-child(3){display:none}.edit-grid{grid-template-columns:1fr}.edit-grid .wide{grid-column:auto}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
