:root{--bg:oklch(98.5% .006 95);--surface:oklch(100% 0 0);--surface2:oklch(97.5% .006 95);--border:oklch(91.5% .006 95);--text:oklch(30% .02 90);--muted:oklch(56% .016 90);--sidebar:oklch(97.2% .006 95);--inputbg:oklch(97.8% .006 95);--accent:#3d9a6f;--up:#ef7a72;--down:#67c98a}*,:before,:after{box-sizing:border-box;margin:0;padding:0}[hidden]{display:none!important}@keyframes ftCardIn{0%{opacity:0;transform:translateY(18px)scale(.985)}to{opacity:1;transform:none}}@keyframes ftRowIn{0%{opacity:0;transform:translate(-10px)}to{opacity:1;transform:none}}@keyframes ftGlow{0%,to{opacity:.4;transform:translate(-50%,-50%)scale(1)}50%{opacity:.7;transform:translate(-50%,-50%)scale(1.09)}}@keyframes ftPulseHi{0%,to{background-color:#0000}22%,55%{background-color:var(--hl)}}@keyframes ftHeadIn{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:none}}html,body{height:100%}body{background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;min-height:100vh;font-family:Figtree,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,sans-serif;font-size:1rem;line-height:1.5;transition:background .3s,color .3s}button{font-family:inherit}.tabular-nums,.donut-overlay-total,.legend-amount,.legend-pct,.stat-num,.net-value{font-variant-numeric:tabular-nums;font-family:JetBrains Mono,ui-monospace,monospace}#app{background:var(--bg);min-height:100vh;display:flex}.sidebar{background:var(--sidebar);border-right:1px solid var(--border);flex-direction:column;flex:none;gap:30px;width:224px;height:100vh;padding:26px 18px;transition:background .3s,border-color .3s;display:flex;position:sticky;top:0;overflow-y:auto}.sidebar-brand{cursor:pointer;align-items:center;gap:11px;padding:0 6px;display:flex}.brand-mark{flex:none;width:26px;height:26px;display:block}.brand-name{letter-spacing:-.02em;color:var(--text);font-size:15px;font-weight:700}.brand-word--accent{color:var(--accent)}.sidebar-nav{flex-direction:column;gap:3px;display:flex}.nav-item{color:var(--muted);cursor:default;border-radius:10px;align-items:center;gap:11px;padding:10px 12px;font-size:14px;font-weight:500;text-decoration:none;display:flex}a.nav-item{cursor:pointer}.nav-item--inert{opacity:.85}.nav-dot{background:var(--muted);opacity:.5;border-radius:2px;flex:none;width:7px;height:7px}.nav-item--active{background:color-mix(in srgb, var(--accent) 14%, transparent);color:var(--accent);font-weight:600}.nav-item--active .nav-dot{background:var(--accent);opacity:1}.nav-badge{background:var(--accent);color:#fff;border-radius:999px;justify-content:center;align-items:center;min-width:18px;height:18px;margin-left:auto;padding:0 5px;font-size:11px;font-weight:600;line-height:1;display:inline-flex}.nav-badge[hidden]{display:none}.sidebar-info{background:var(--surface);border:1px solid var(--border);color:var(--muted);border-radius:12px;margin-top:auto;padding:14px;font-size:12px;line-height:1.5;transition:background .3s,border-color .3s,color .3s}.main-column{flex-direction:column;flex:1;min-width:0;display:flex}.site-header{border-bottom:1px solid var(--border);justify-content:space-between;align-items:flex-start;gap:24px;padding:28px 34px;transition:border-color .3s;animation:.5s cubic-bezier(.2,.7,.2,1) both ftHeadIn;display:flex}.site-header h1{letter-spacing:-.025em;color:var(--text);margin:0;font-size:23px;font-weight:700}.header-subtitle{color:var(--muted);margin:7px 0 0;font-size:14px}.header-controls{flex:none;align-items:center;gap:10px;display:flex}.status-dot{cursor:default;background:#9e9e9e;border-radius:50%;flex-shrink:0;width:10px;height:10px;display:inline-block}.refresh-btn{border:1px solid var(--border);background:var(--surface);color:var(--text);cursor:pointer;border-radius:10px;flex:none;align-items:center;gap:8px;padding:9px 13px;font-size:13px;font-weight:600;transition:background .3s,border-color .3s,color .3s;display:flex}.refresh-btn:hover,.refresh-btn:focus-visible{outline:2px solid var(--accent);outline-offset:2px}@media (width>=721px){#refresh{display:none}}.theme-toggle-wrap{flex:none;align-items:center;gap:8px;display:flex}.theme-toggle-label{color:var(--text);font-size:13px;font-weight:600}.corona-toggle{cursor:pointer;background:linear-gradient(135deg,#ffd98a,#ffb347);border:none;border-radius:999px;flex:none;width:44px;height:24px;padding:0;transition:background .55s;position:relative;overflow:hidden}.corona-toggle:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.corona-toggle[aria-checked=true]{background:linear-gradient(135deg,#1d2338,#0e1220)}.corona-toggle-knob{border-radius:50%;width:18px;height:18px;transition:transform .6s cubic-bezier(.65,0,.35,1),box-shadow .6s;position:absolute;top:3px;left:3px;transform:translate(0);box-shadow:0 0 0 1px #ffdc9680,0 0 10px 2px #f7c24b80}.corona-toggle[aria-checked=true] .corona-toggle-knob{transform:translate(20px);box-shadow:0 0 0 1px #ffffffe6,0 0 12px 4px #becdffbf,0 0 25px 9px #8ca0ff73}.corona-toggle-face{border-radius:50%;transition:opacity .5s;position:absolute;inset:0}.corona-toggle-face--sun{opacity:1;background:radial-gradient(circle at 35% 30%,#fff6d8,#f7c24b)}.corona-toggle-face--moon{opacity:0;background:radial-gradient(circle at 60% 40%,#3a4260,#1a2036)}.corona-toggle[aria-checked=true] .corona-toggle-face--sun{opacity:0}.corona-toggle[aria-checked=true] .corona-toggle-face--moon{opacity:1}.main-content{flex-direction:column;gap:22px;padding:28px 34px;display:flex}.message-banner{background:color-mix(in srgb, #f9a825 14%, var(--surface));border:1px solid color-mix(in srgb, #f9a825 45%, var(--border));color:var(--text);text-align:center;border-radius:10px;padding:.875rem 1rem;font-size:.9375rem;transition:background .3s,border-color .3s,color .3s}.status-line{color:var(--muted);text-align:center;margin:2px 0 10px;font-size:.875rem;transition:color .3s}.overview-grid{grid-template-columns:repeat(auto-fit,minmax(340px,1fr));align-items:stretch;gap:22px;display:grid}.card{background:var(--surface);border:1px solid var(--border);opacity:0;box-shadow:var(--card-shadow,none);border-radius:18px;padding:24px;transition:background .3s,border-color .3s,color .3s,box-shadow .3s;animation:.6s cubic-bezier(.2,.7,.2,1) both ftCardIn}.fuel-card{animation-delay:90ms}.donut-card{flex-wrap:wrap;justify-content:center;align-items:center;gap:22px;display:flex}.donut-wrapper{flex:none;width:200px;height:200px;position:relative}.donut-glow{background:radial-gradient(circle, color-mix(in srgb, var(--accent) 60%, transparent), transparent 70%);filter:blur(20px);pointer-events:none;border-radius:50%;width:150px;height:150px;animation:4.5s ease-in-out infinite ftGlow;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}#donut-canvas,#monthly-canvas,#yearly-canvas{width:200px;height:200px;position:relative}.donut-overlay{pointer-events:none;text-align:center;flex-direction:column;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.donut-overlay-label{color:var(--muted);letter-spacing:.03em;font-size:12px;font-weight:600}.donut-overlay-total{letter-spacing:-.02em;color:var(--text);font-size:21px;font-weight:700}.donut-side{flex-direction:column;flex:190px;gap:14px;min-width:190px;display:flex}.legend{flex-direction:column;gap:11px;display:flex}.legend-row{opacity:0;flex-direction:column;gap:5px;animation:.5s cubic-bezier(.2,.7,.2,1) both ftRowIn;display:flex}.legend-row-top{border-radius:7px;align-items:center;gap:10px;margin:0 -7px;padding:2px 7px;font-size:13.5px;transition:background-color .15s,box-shadow .15s;display:flex}.legend-row.pulse-hi .legend-row-top{animation:.9s ftPulseHi}.legend-row.is-hover .legend-row-top{background-color:var(--hl);box-shadow:inset 3px 0 0 0 var(--hl-ring,var(--accent))}.legend-dot{width:10px;height:10px;box-shadow:0 0 0 3px var(--hl,transparent);border-radius:3px;flex:none;transition:box-shadow .15s,transform .15s}.legend-row.is-hover .legend-dot{box-shadow:0 0 0 5px var(--hl-ring,var(--hl));transform:scale(1.15)}.legend-name{white-space:nowrap;text-overflow:ellipsis;min-width:0;color:var(--text);flex:1;font-weight:500;overflow:hidden}.legend-amount{color:var(--text);font-weight:600}.legend-pct{color:var(--muted);text-align:right;width:38px}.legend-bar{background:color-mix(in srgb, var(--muted) 16%, transparent);border-radius:4px;height:4px;overflow:hidden}.legend-bar-fill{border-radius:4px;height:100%;transition:width .7s cubic-bezier(.2,.7,.2,1)}.net-value{color:var(--muted);margin-top:auto;font-size:13px;font-weight:600}.net-value.net-negative{color:#c62828}.net-value.net-positive{color:#2e7d32}.fuel-card{flex-direction:column;gap:16px;display:flex}.fuel-card-head{justify-content:space-between;align-items:flex-start;gap:16px;display:flex}.fuel-card-title-block{flex:1;min-width:0}.fuel-card-title{letter-spacing:-.01em;color:var(--text);align-items:center;gap:8px;font-size:15px;font-weight:700;display:flex}.swatch{border-radius:3px;flex:none;width:9px;height:9px}.swatch--transport{background:#34a7a3}.swatch--dining{background:#e0913f}.fuel-card-desc{color:var(--muted);margin:9px 0 0;font-size:13px;line-height:1.55}.fuel-card-desc strong{color:var(--text)}.fuel-card-divider{background:var(--border);height:1px}.fuel-card-rows{flex-direction:column;gap:8px;display:flex}.fuel-card-row{color:var(--muted);justify-content:space-between;align-items:center;font-size:13px;display:flex}.fuel-card-row-value{color:var(--text);font-weight:600}.muted-inline{opacity:.8}.toast-region{z-index:50;pointer-events:none;flex-direction:column;gap:10px;display:flex;position:fixed;top:20px;right:20px}.toast{background:var(--surface);border:1px solid var(--border);opacity:0;pointer-events:auto;border-radius:14px;align-items:flex-start;gap:12px;width:340px;max-width:calc(100vw - 40px);padding:14px 16px 17px;transition:opacity .4s,transform .4s cubic-bezier(.22,1,.36,1);display:flex;position:relative;transform:translate(24px);box-shadow:0 18px 44px -18px #000000b3}.toast.show{opacity:1;transform:translate(0)}.toast-accent{background:#e0913f;border-radius:3px;flex:none;align-self:stretch;width:3px}.toast--off .toast-accent{background:#34a7a3}.toast-body{min-width:0}.toast-title{color:var(--text);align-items:center;gap:7px;font-size:13.5px;font-weight:700;display:flex}.toast-title .dot{background:#e0913f;border-radius:50%;flex:none;width:8px;height:8px}.toast--off .toast-title .dot{background:#34a7a3}.toast-text{color:var(--muted);margin-top:4px;font-size:12.5px;line-height:1.5}.toast-text strong{color:var(--text);font-weight:600}.toast-timer{background:#e0913f4d;border-radius:2px;height:2px;position:absolute;bottom:7px;left:14px;right:14px;overflow:hidden}.toast--off .toast-timer{background:#34a7a34d}.toast-timer:after{content:"";transform-origin:0;background:#e0913f;animation:5s linear forwards toastCountdown;position:absolute;inset:0}.toast--off .toast-timer:after{background:#34a7a3}@keyframes toastCountdown{0%{transform:scaleX(1)}to{transform:scaleX(0)}}.toast--success .toast-accent,.toast--success .toast-title .dot,.toast--success .toast-timer:after{background:#4caf50}.toast--success .toast-timer{background:#4caf504d}.toast--error .toast-accent,.toast--error .toast-title .dot,.toast--error .toast-timer:after{background:#ef5350}.toast--error .toast-timer{background:#ef53504d}.toast--info .toast-accent,.toast--info .toast-title .dot,.toast--info .toast-timer:after{background:#4c8bf5}.toast--info .toast-timer{background:#4c8bf54d}@media (prefers-reduced-motion:reduce){.toast{transition:opacity .001ms;transform:none}.toast-timer:after{animation:none;transform:scaleX(0)}}.balances-card{flex-direction:column;gap:14px;animation-delay:.14s;display:flex}.balances-card-title{letter-spacing:-.01em;color:var(--text);margin:0;font-size:15px;font-weight:700}.balances-list{flex-direction:column;gap:10px;display:flex}.balance-row{justify-content:space-between;align-items:center;gap:10px;font-size:13px;display:flex}.balance-row-bank{color:var(--muted);font-weight:500}.balance-row-figures{color:var(--text);font-weight:600}.balances-empty{color:var(--muted);font-size:13px}.fuel-switch{cursor:pointer;flex:none;display:inline-flex;position:relative}.fuel-switch input[type=checkbox]{opacity:0;cursor:pointer;width:50px;height:29px;margin:0;position:absolute;inset:0}.fuel-switch-track{background:color-mix(in srgb, var(--muted) 45%, transparent);border-radius:20px;align-items:center;width:50px;height:29px;padding:3px;transition:background .25s,box-shadow .25s;display:flex;box-shadow:0 0 #0000}.knob{background:#fff;border-radius:50%;width:23px;height:23px;transition:transform .3s cubic-bezier(.34,1.56,.64,1);transform:translate(0);box-shadow:0 1px 3px #00000047}.fuel-switch input:checked+.fuel-switch-track{background:#e0913f;box-shadow:0 0 0 4px #e0913f38}.fuel-switch input:checked+.fuel-switch-track .knob{transform:translate(21px)}.fuel-switch input:focus-visible+.fuel-switch-track{outline:2px solid var(--accent);outline-offset:2px}.upload{flex-direction:column;gap:22px;display:flex}.upload-zones{grid-template-columns:1fr 1fr;gap:18px;display:grid}.zone{border:2px dashed var(--border);background:var(--inputbg);cursor:pointer;-webkit-user-select:none;user-select:none;border-radius:16px;flex-direction:column;gap:14px;min-height:190px;padding:26px 22px;transition:border-color .18s,background .18s,transform .18s;display:flex;position:relative}.zone:hover{border-color:color-mix(in srgb, var(--accent) 55%, var(--border));transform:translateY(-2px)}.zone:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.zone.dragover{border-color:var(--accent);background:color-mix(in srgb, var(--accent) 10%, transparent)}.zone.is-loaded{border-style:solid;border-color:color-mix(in srgb, var(--accent) 50%, var(--border));background:color-mix(in srgb, var(--accent) 7%, var(--surface));cursor:default}.zone.is-loaded:hover{transform:none}.zone-top{align-items:center;gap:12px;display:flex}.zone-badge{background:#fff;border-radius:11px;flex:none;place-items:center;width:40px;height:40px;display:grid;box-shadow:inset 0 0 0 1px #00000014}.zone-badge img{width:27px;height:27px;display:block}.zone-bank{color:var(--text);font-size:15px;font-weight:700}.zone-sub{color:var(--muted);font-size:12.5px}.demo-badge{display:none}body.is-demo .demo-badge{z-index:90;letter-spacing:.04em;background:var(--surface);border:1px solid var(--border);color:var(--muted);pointer-events:none;border-radius:999px;padding:7px 13px;font-family:JetBrains Mono,ui-monospace,monospace;font-size:11.5px;display:block;position:fixed;bottom:14px;right:14px;box-shadow:0 4px 14px #0000001a}.zone-login-link{color:var(--accent);white-space:nowrap;align-self:flex-start;margin-left:auto;font-size:12.5px;font-weight:600;text-decoration:none}.zone-login-link:hover,.zone-login-link:focus-visible{text-decoration:underline}.zone-body{flex-direction:column;flex:1;min-height:0;display:flex}.zone-empty{text-align:center;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:10px;display:flex}.zone-icon{background:color-mix(in srgb, var(--accent) 14%, transparent);width:46px;height:46px;color:var(--accent);border-radius:12px;place-items:center;display:grid}.zone-hint{color:var(--text);font-size:14px;font-weight:600}.zone-formats{color:var(--muted);font-size:12px}.format-pill{letter-spacing:.03em;background:var(--surface2);border:1px solid var(--border);color:var(--muted);border-radius:999px;margin:0 2px;padding:2px 9px;font-size:11px;font-weight:600;display:inline-block}.zone-loaded{flex-direction:column;flex:1;gap:10px;display:flex}.zone-file{background:var(--surface2);border:1px solid var(--border);border-radius:12px;align-items:center;gap:12px;width:100%;padding:12px 14px;display:flex}.zone-file-ico{background:color-mix(in srgb, var(--accent) 16%, transparent);width:34px;height:34px;color:var(--accent);border-radius:9px;flex:none;place-items:center;font-size:11px;font-weight:700;display:grid}.zone-file-meta{flex-direction:column;min-width:0;display:flex}.zone-file-name{color:var(--text);white-space:nowrap;text-overflow:ellipsis;font-size:13px;font-weight:600;overflow:hidden}.zone-file-info{color:var(--muted);font-size:11.5px}.zone-check{color:var(--accent);flex:none;place-items:center;margin-left:auto;display:grid}.zone-loaded .zone-formats{margin-top:auto}.upload-actions{align-items:center;gap:16px;display:flex}.upload-clear-btn{border:1px solid var(--border);color:var(--muted);cursor:pointer;background:0 0;border-radius:11px;padding:11px 18px;font-family:inherit;font-size:14px;font-weight:600;transition:color .15s,border-color .15s}.upload-clear-btn:hover,.upload-clear-btn:focus-visible{color:var(--text);border-color:color-mix(in srgb, var(--accent) 45%, var(--border));outline:none}.preview-card{padding:0;overflow:hidden}.preview-head{border-bottom:1px solid var(--border);align-items:center;gap:14px;padding:20px 26px;display:flex}.preview-title{color:var(--text);font-size:15px;font-weight:700}.preview-tabs{gap:6px;margin-left:8px;display:flex}.ptab{color:var(--muted);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:9px;padding:6px 13px;font-family:inherit;font-size:12.5px;font-weight:600}.ptab.active{background:var(--surface2);border-color:var(--border);color:var(--text)}.preview-meta{color:var(--muted);margin-left:auto;font-size:12.5px}.preview-table{border-collapse:collapse;width:100%}.preview-table thead th{text-align:left;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);background:var(--surface2);border-bottom:1px solid var(--border);padding:12px 26px;font-size:11px;font-weight:700}.preview-table thead th.num,.preview-table td.num{text-align:right}.preview-table tbody td{color:var(--text);border-bottom:1px solid color-mix(in srgb, var(--border) 55%, transparent);padding:12px 26px;font-size:13.5px}.preview-table tbody tr:last-child td{border-bottom:none}.preview-table tbody tr:hover td{background:color-mix(in srgb, var(--accent) 5%, transparent)}.preview-table .desc{color:var(--text)}.preview-table .amt-neg{color:oklch(72% .13 25)}.preview-table .amt-pos{color:var(--accent)}.preview-note{color:var(--muted);padding:20px 26px;font-size:13px}.preview-foot{color:var(--muted);border-top:1px solid var(--border);align-items:center;gap:8px;padding:14px 26px;font-size:12.5px;display:flex}@media (width<=640px){.upload-zones{grid-template-columns:1fr}}.upload-btn{background:var(--accent);color:#fff;cursor:pointer;border:none;border-radius:11px;align-self:flex-start;padding:11px 22px;font-family:inherit;font-size:15px;font-weight:600;transition:filter .15s}.upload-actions .upload-btn{align-self:center}.upload-actions .upload-status{text-align:right;margin-left:auto}.upload-btn:hover,.upload-btn:focus-visible{filter:brightness(.92);outline:2px solid var(--accent);outline-offset:2px}.upload-status{color:var(--muted);min-height:1.25em;font-size:.875rem}.upload-status.upload-status--error{color:#c62828}.upload-status.upload-status--processing{color:var(--accent);align-items:center;gap:.5rem;display:flex}.upload-status.upload-status--processing:before{content:"";border:2px solid color-mix(in srgb, var(--accent) 35%, transparent);border-top-color:var(--accent);border-radius:50%;flex:none;width:.9em;height:.9em;animation:.7s linear infinite upload-spin}@keyframes upload-spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){.upload-status.upload-status--processing:before{animation-duration:2s}}.upload-btn:disabled{opacity:.5;cursor:not-allowed;filter:none}.push-card{flex-direction:column;gap:16px;margin-top:18px;padding-top:26px;display:flex}.push-title{color:var(--text);font-size:15px;font-weight:700}.push-desc{color:var(--muted);font-size:.875rem}.view[hidden]{display:none}.context-layout{grid-template-columns:minmax(0,1fr);align-items:start;gap:26px;display:grid}.context-cards-col{flex-direction:column;gap:16px;min-width:0;display:flex}.context-cards-head{justify-content:flex-end;align-items:center;gap:12px;display:flex}.save-context-btn{background:var(--accent);color:#fff;cursor:pointer;border:none;border-radius:10px;padding:10px 17px;font-size:13px;font-weight:600;box-shadow:0 1px 2px #00000014}.save-context-btn:hover,.save-context-btn:focus-visible{filter:brightness(.95);outline:2px solid var(--accent);outline-offset:2px}.category-cards{flex-direction:column;gap:16px;display:flex}.category-card{background:var(--surface);border:1px solid var(--border);border-radius:16px;flex-direction:column;gap:13px;padding:20px;transition:background .3s,border-color .3s;display:flex}.category-card-head{align-items:center;gap:11px;display:flex}.category-card-dot{border-radius:50%;flex:none;width:13px;height:13px}.category-card-name{min-width:0;color:var(--text);letter-spacing:-.01em;flex:1;font-size:16px;font-weight:600}.category-card-hints{background:var(--inputbg);border:1px solid var(--border);width:100%;min-height:70px;color:var(--text);resize:vertical;border-radius:11px;outline:none;padding:12px 13px;font-size:14px;line-height:1.55;transition:background .3s,border-color .3s,color .3s}.category-card-hints:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.context-status{color:var(--muted);min-height:1.25em;margin-top:4px;font-size:.875rem}.context-status.context-status--error{color:#c62828}.period-toolbar{align-items:center;gap:10px;margin-bottom:18px;display:flex}.period-select-label{color:var(--muted);text-transform:uppercase;letter-spacing:.04em;font-size:.8125rem;font-weight:600}.period-select{border:1px solid var(--border);background:var(--inputbg);color:var(--text);border-radius:10px;padding:.5rem .75rem;font-family:inherit;font-size:.9375rem}.period-select:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.card-title{letter-spacing:-.01em;color:var(--text);margin:0 0 4px;font-size:15px;font-weight:700}.card-title .accent,.accent{color:var(--accent)}.card-sub{color:var(--muted);margin:0 0 18px;font-size:12.5px}.period-hero{grid-template-columns:240px 1fr;align-items:center;gap:30px;display:grid}.period-hero .donut-wrapper{justify-self:center}.period-hero-right{flex-direction:column;gap:18px;min-width:0;display:flex}.period-kpis{flex-wrap:wrap;gap:30px;display:flex}.kpi-label{text-transform:uppercase;letter-spacing:.05em;color:var(--muted);font-size:11px;font-weight:600}.stat-num{color:var(--text);margin-top:2px;font-size:20px;font-weight:700}.stat-num.net-positive{color:var(--down)}.stat-num.net-negative{color:var(--up)}.legend--wrap{grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:10px 20px;display:grid}@media (width<=780px){.period-hero{grid-template-columns:1fr;justify-items:center}.period-hero-right{width:100%}}.totals-table,.compare-table{border-collapse:collapse;width:100%;font-size:.9rem}.totals-table th,.compare-table th{text-align:right;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);border-bottom:1px solid var(--border);white-space:nowrap;padding:0 6px 11px;font-size:.72rem;font-weight:600}.totals-table th:first-child,.compare-table th:first-child{text-align:left}.totals-table td,.compare-table td{border-bottom:1px solid var(--border);color:var(--text);padding:11px 6px}.totals-table tbody tr:last-child td,.compare-table tbody tr:last-child td{border-bottom:none}.totals-table td:not(:first-child),.compare-table td:not(:first-child){text-align:right;font-variant-numeric:tabular-nums}.cat-cell{align-items:center;gap:9px;font-weight:500;display:inline-flex}.cat-dot{border-radius:3px;flex:none;width:9px;height:9px}.delta-up{color:var(--up)}.delta-down{color:var(--down)}.delta-new{color:var(--muted)}.delta-pill{background:color-mix(in srgb, currentColor 16%, transparent);border-radius:999px;align-items:center;gap:5px;padding:2px 9px;font-size:.8rem;font-weight:600;display:inline-flex}.delta-pill .arrow{font-size:.7rem}.compare-table tfoot td{border-top:2px solid var(--border);border-bottom:none;padding:12px 6px;font-weight:700}@media (prefers-reduced-motion:reduce){.period-hero .legend-row{opacity:1;animation:none}.period-hero .legend-bar-fill{transition:none}.period-hero .donut-glow{animation:none}}.trends-layout{grid-template-columns:1fr 244px;align-items:stretch;gap:26px;display:grid}.trends-chart-col{min-width:0}.trends-svg{width:100%;height:auto;display:block}.netpos-card{margin-top:18px}.netpos-title{letter-spacing:-.01em;color:var(--text);margin:0;font-size:15px;font-weight:700}.trends-svg .s-line.netline{stroke-dasharray:6 4}.trends-svg .grid-line{stroke:var(--border);stroke-width:1px;opacity:.7}.trends-svg .axis-label{fill:var(--muted);font-family:JetBrains Mono,ui-monospace,monospace;font-size:11px}.trends-svg .x-label{fill:var(--muted);font-size:12px}.trends-svg .s-group{cursor:pointer;transition:opacity .18s}.trends-svg .s-line{fill:none;stroke-width:2.25px;transition:stroke-width .18s}.trends-svg .s-hit{fill:none;stroke:#0000;stroke-width:20px}.trends-svg .s-pt{stroke:var(--surface);stroke-width:1.5px;transition:r .18s}.trends-svg .s-group.dim{opacity:.12}.trends-svg .s-group.hot .s-line{stroke-width:3.5px}.trends-svg .s-group.hide{display:none}.trends-legend-col{border-left:1px solid var(--border);flex-direction:column;padding-left:22px;display:flex}.trends-legend-head{color:var(--muted);text-transform:uppercase;letter-spacing:.04em;margin-bottom:12px;font-size:12px}.trends-legend-list{flex-direction:column;gap:3px;display:flex}.trends-legend-row{cursor:pointer;text-align:left;width:100%;color:var(--text);font:inherit;background:0 0;border:0;border-radius:10px;align-items:center;gap:10px;padding:8px 10px;transition:background .15s,opacity .18s,box-shadow .15s;display:flex}.trends-legend-dot{border-radius:50%;flex:none;width:11px;height:11px;transition:box-shadow .15s,transform .15s;box-shadow:0 0 0 3px #0000}.trends-legend-name{white-space:nowrap;text-overflow:ellipsis;flex:1;min-width:0;font-size:14px;font-weight:500;overflow:hidden}.trends-legend-val{color:var(--muted);font-variant-numeric:tabular-nums;font-family:JetBrains Mono,ui-monospace,monospace;font-size:13px}.trends-legend-row.dim{opacity:.32}.trends-legend-row.hot{background:var(--hl);box-shadow:inset 3px 0 0 0 var(--hl-ring)}.trends-legend-row.hot .trends-legend-dot{box-shadow:0 0 0 5px var(--hl-ring);transform:scale(1.15)}.trends-legend-row.hot .trends-legend-val{color:var(--text)}.trends-legend-row.off{opacity:.45}.trends-legend-row.off .trends-legend-name{text-decoration:line-through;text-decoration-thickness:1.5px}.trends-legend-row.off .trends-legend-dot{box-shadow:inset 0 0 0 2px var(--muted);background:0 0!important}.trends-legend-foot{color:var(--muted);margin-top:auto;padding-top:14px;font-size:12px;line-height:1.45}@media (width<=720px){.trends-layout{grid-template-columns:1fr;gap:18px}.trends-legend-col{border-left:0;border-top:1px solid var(--border);padding-top:18px;padding-left:0}}@media (prefers-reduced-motion:reduce){.trends-svg .s-group,.trends-svg .s-line,.trends-svg .s-pt,.trends-legend-row,.trends-legend-dot{transition:none}}.overview-trend-card{flex-direction:column;gap:14px;animation-delay:.18s;display:flex}.overview-trend-title{letter-spacing:-.01em;color:var(--text);margin:0;font-size:15px;font-weight:700}.overview-trend-card canvas{max-width:100%}.nav-toggle{border:1px solid var(--border);background:var(--surface);width:40px;height:40px;color:var(--text);cursor:pointer;border-radius:10px;flex:none;justify-content:center;align-items:center;padding:0;display:none}.nav-toggle:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.nav-backdrop{opacity:0;pointer-events:none;z-index:55;background:#0006;transition:opacity .2s;position:fixed;inset:0}.nav-backdrop.is-open{opacity:1;pointer-events:auto}@media (width<=720px){#app{flex-direction:column}.sidebar{flex-direction:row;align-items:center;gap:16px;width:auto;height:auto;padding:14px 18px;position:static}.nav-toggle{display:inline-flex}.sidebar-nav{box-sizing:border-box;background:var(--sidebar);border-right:1px solid var(--border);z-index:60;width:min(80vw,300px);height:100%;padding:18px 14px;transition:transform .25s;position:fixed;top:0;left:0;overflow-y:auto;transform:translate(-100%)}.sidebar-nav.is-open{transform:translate(0)}.sidebar-info{margin-top:0;margin-left:auto}.site-header,.main-content{padding:20px}}@media (prefers-reduced-motion:reduce){.sidebar-nav,.nav-backdrop{transition-duration:.01ms}}.legend-row.is-clickable{cursor:pointer}.cat-drawer-backdrop{opacity:0;pointer-events:none;z-index:40;background:#0006;transition:opacity .2s;position:fixed;inset:0}.cat-drawer-backdrop.is-open{opacity:1;pointer-events:auto}.cat-drawer{background:var(--surface);border-left:1px solid var(--border);z-index:41;flex-direction:column;width:min(420px,92vw);height:100%;transition:transform .24s cubic-bezier(.22,1,.36,1);display:flex;position:fixed;top:0;right:0;overflow:hidden;transform:translate(100%);box-shadow:-8px 0 30px #0000002e}.cat-drawer.is-open{transform:translate(0)}.cat-drawer-header{border-bottom:1px solid var(--border);align-items:center;gap:12px;padding:20px;display:flex}.cat-drawer-dot{border-radius:50%;flex:none;width:13px;height:13px}.cat-drawer-titlewrap{flex:1;min-width:0}.cat-drawer-title{color:var(--text);letter-spacing:-.01em;margin:0;font-size:17px;font-weight:700}.cat-drawer-sub{color:var(--muted);margin:2px 0 0;font-size:.875rem}.cat-drawer-close{border:1px solid var(--border);background:var(--inputbg);width:32px;height:32px;color:var(--text);cursor:pointer;border-radius:8px;flex:none;font-size:18px;line-height:1}.cat-drawer-close:hover,.cat-drawer-close:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.cat-drawer-body{flex:1;min-height:0;padding:8px 0;overflow-y:auto}.cat-drawer-row{border-bottom:1px solid var(--border);flex-direction:column;gap:8px;padding:12px 20px;display:flex}.cat-drawer-row-main{grid-template-columns:auto 1fr auto;align-items:baseline;gap:12px;display:grid}.cat-drawer-picker{max-width:100%;color:var(--text);background:var(--surface,transparent);border:1px solid var(--border);cursor:pointer;border-radius:6px;grid-column:1/-1;justify-self:start;padding:4px 8px;font-size:.8125rem}.cat-drawer-picker:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.cat-drawer-row-error{color:var(--danger,#ef5350);font-size:.8125rem}.cat-drawer-date{color:var(--muted);font-variant-numeric:tabular-nums;white-space:nowrap;font-size:.8125rem}.cat-drawer-desc{min-width:0;color:var(--text);overflow-wrap:anywhere;font-size:.9375rem}.cat-drawer-amount{font-variant-numeric:tabular-nums;white-space:nowrap;color:var(--text);font-weight:600}.cat-drawer-amount.is-positive{color:var(--accent)}.cat-drawer-empty{color:var(--muted);padding:24px 20px;font-size:.9375rem}@media (prefers-reduced-motion:reduce){.cat-drawer,.cat-drawer-backdrop{transition-duration:.01ms}}.search-toolbar{align-items:center;gap:10px;margin-bottom:18px;display:flex}.search-input{border:1px solid var(--border);background:var(--inputbg);min-width:0;color:var(--text);appearance:none;border-radius:10px;flex:1;padding:.5rem .75rem;font-family:inherit;font-size:1rem}.search-input::-webkit-search-cancel-button{appearance:none}.search-input::-webkit-search-decoration{appearance:none}.search-input:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.transfer-pair{border-bottom:1px solid var(--border);flex-direction:column;gap:4px;padding:14px 20px;display:flex}.transfer-pair-caption{color:var(--muted);flex-wrap:wrap;align-items:baseline;gap:8px;font-size:.8125rem;font-weight:600;display:flex}.transfer-pair .cat-drawer-row{border-bottom:none;padding:6px 0}.transfer-leg-label{text-transform:uppercase;letter-spacing:.05em;color:var(--muted);margin-top:4px;font-size:.6875rem;font-weight:600}.transfer-untag{border:1px solid var(--border);background:var(--surface2);color:var(--text);cursor:pointer;border-radius:10px;align-self:flex-start;margin-top:6px;padding:7px 14px;font-size:13px;font-weight:600;transition:filter .15s,border-color .3s}.transfer-untag:hover:not(:disabled),.transfer-untag:focus-visible:not(:disabled){border-color:var(--accent);outline:2px solid var(--accent);outline-offset:2px}.transfer-untag:disabled{opacity:.5;cursor:not-allowed}.settings-grid{grid-template-columns:minmax(0,1fr);align-items:start;gap:20px;display:grid}.settings-card{flex-direction:column;gap:6px;display:flex}.settings-budget-saved{color:#4caf50;font-size:.8125rem;font-weight:600}.settings-status{color:var(--muted);min-height:1.25em;margin-top:2px;font-size:.875rem}.settings-status.settings-status--error{color:#c62828}.settings-hint,.settings-note{color:var(--muted);margin-top:6px;font-size:.8125rem}.settings-link{color:var(--accent);font-weight:600;text-decoration:none}.settings-link:hover,.settings-link:focus-visible{text-decoration:underline}.settings-toggle-list{flex-direction:column;gap:4px;margin-top:6px;display:flex}.settings-toggle-row{border-bottom:1px solid var(--border);cursor:pointer;justify-content:space-between;align-items:center;gap:16px;padding:9px 2px;display:flex}.settings-toggle-list .settings-toggle-row:last-child{border-bottom:none}.settings-toggle-label{color:var(--text);font-size:.9375rem}.settings-corrections-optin{border:1px solid var(--border);background:var(--surface2);border-radius:12px;margin-top:8px;padding:14px}.settings-budget-row{border-bottom:1px solid var(--border);align-items:center;gap:12px;padding:9px 2px;display:flex}.settings-budget-list .settings-budget-row:last-child{border-bottom:none}.settings-budget-label{min-width:0;color:var(--text);flex:1;font-size:.9375rem}.settings-budget-input{text-align:right;border:1px solid var(--border);background:var(--inputbg);width:7em;color:var(--text);border-radius:10px;flex:none;padding:.4rem .6rem;font-family:inherit;font-size:.9375rem}.settings-budget-input:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.settings-budget-clear{border:1px solid var(--border);background:var(--surface2);color:var(--muted);cursor:pointer;border-radius:9px;flex:none;padding:6px 12px;font-size:12.5px;font-weight:600}.settings-budget-clear:hover:not(:disabled),.settings-budget-clear:focus-visible:not(:disabled){color:var(--accent);border-color:var(--accent);outline:2px solid var(--accent);outline-offset:2px}.settings-budget-clear:disabled{opacity:.5;cursor:not-allowed}.settings-subscription-row{border-bottom:1px solid var(--border);flex-wrap:wrap;align-items:center;gap:6px 12px;padding:9px 2px;display:flex}.settings-subscriptions-list .settings-subscription-row:last-child{border-bottom:none}.settings-subscription-name{min-width:0;color:var(--text);flex:1;font-size:.9375rem}.settings-subscription-amount{color:var(--text);font-variant-numeric:tabular-nums;flex:none;font-size:.9375rem}.settings-subscription-seen{color:var(--muted);flex:none;font-size:12.5px}.settings-subscription-tag{border:1px solid var(--border);background:var(--surface2);color:var(--muted);border-radius:9px;flex:none;padding:2px 8px;font-size:11.5px;font-weight:600}.settings-subscriptions-empty{color:var(--muted);margin:0;padding:4px 2px;font-size:.9375rem}.settings-scorecard-row{border-bottom:1px solid var(--border);flex-wrap:wrap;align-items:center;gap:6px 12px;padding:9px 2px;display:flex}.settings-scorecard-list .settings-scorecard-row:last-child{border-bottom:none}.settings-scorecard-month{min-width:0;color:var(--text);flex:1;font-size:.9375rem}.settings-scorecard-pct{color:var(--text);font-variant-numeric:tabular-nums;flex:none;font-size:.9375rem}.settings-scorecard-count{color:var(--muted);font-variant-numeric:tabular-nums;flex:none;font-size:12.5px}.settings-download-btn{align-self:flex-start;margin-top:6px;text-decoration:none}.danger,.settings-danger{border:1px solid var(--up);background:color-mix(in srgb, var(--up) 8%, transparent);border-radius:14px;margin-top:18px;padding:16px}.settings-danger-title{color:var(--up);margin:0 0 4px;font-size:14px;font-weight:700}.settings-danger-desc{color:var(--muted);margin-bottom:12px;font-size:.8125rem}.settings-reset-row{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.settings-reset-label{color:var(--muted);text-transform:uppercase;letter-spacing:.04em;font-size:.8125rem;font-weight:600}.settings-reset-input{border:1px solid var(--border);background:var(--inputbg);min-width:120px;color:var(--text);border-radius:10px;flex:1;padding:.5rem .75rem;font-family:inherit;font-size:.9375rem}.settings-reset-input:focus-visible{outline:2px solid var(--up);outline-offset:2px}.settings-reset-btn{background:var(--up);color:#fff;cursor:pointer;border:none;border-radius:10px;padding:10px 17px;font-size:13px;font-weight:600}.settings-reset-btn:hover:not(:disabled),.settings-reset-btn:focus-visible:not(:disabled){filter:brightness(.95);outline:2px solid var(--up);outline-offset:2px}.settings-reset-btn:disabled{opacity:.5;cursor:not-allowed}.settings-summary{color:var(--text);margin:6px 0 4px;font-size:.9375rem}.settings-btn-row{flex-wrap:wrap;align-items:center;gap:12px;margin-top:8px;display:flex}.settings-secondary-btn{border:1px solid var(--border);background:var(--surface2);color:var(--text);cursor:pointer;border-radius:10px;padding:9px 16px;font-size:13px;font-weight:600;transition:filter .15s,border-color .3s}.settings-secondary-btn:hover,.settings-secondary-btn:focus-visible{border-color:var(--accent);outline:2px solid var(--accent);outline-offset:2px}.settings-corrections-list{flex-direction:column;gap:6px;margin-top:10px;display:flex}.settings-correction-row{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:12px;padding:9px 2px;display:flex}.settings-correction-row:last-child{border-bottom:none}.settings-correction-meta{min-width:0;color:var(--text);overflow-wrap:anywhere;font-size:.9375rem}.settings-correction-cat{color:var(--accent);font-weight:600}.settings-correction-remove{border:1px solid var(--border);background:var(--surface2);color:var(--muted);cursor:pointer;border-radius:9px;flex:none;padding:6px 12px;font-size:12.5px;font-weight:600}.settings-correction-remove:hover:not(:disabled),.settings-correction-remove:focus-visible:not(:disabled){color:var(--up);border-color:var(--up);outline:2px solid var(--up);outline-offset:2px}.settings-correction-remove:disabled{opacity:.5;cursor:not-allowed}.settings-corrections-empty{color:var(--muted);padding:6px 2px;font-size:.9375rem}.settings-about{color:var(--text);margin-top:8px;font-size:.9375rem;line-height:1.55}.settings-version{color:var(--muted);font-variant-numeric:tabular-nums;margin-top:10px;font-size:.8125rem}.contact-icons{flex-wrap:wrap;gap:14px;margin-top:16px;display:flex}.contact-icon{border:1px solid var(--border);background:var(--surface2);width:46px;height:46px;color:var(--muted);border-radius:12px;justify-content:center;align-items:center;transition:color .15s,border-color .15s,transform .12s;display:inline-flex}.contact-icon svg{width:22px;height:22px;display:block}.contact-icon:hover{color:var(--accent);border-color:var(--accent);transform:translateY(-1px)}.contact-icon:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.contact-about{border-top:1px solid var(--border);flex-direction:column;gap:10px;margin-top:26px;padding-top:22px;display:flex}.contact-about-title{color:var(--text);font-size:15px;font-weight:700}.contact-about-text{color:var(--muted);max-width:none;font-size:.9375rem;line-height:1.65}.contact-about-text strong{color:var(--text);font-weight:700}.contact-about-text em{color:var(--accent);font-style:italic;font-weight:500}
