@font-face{font-family:Schibsted Grotesk;font-style:normal;font-weight:400 900;font-display:swap;src:url(../media/481eac7be1c268b7-s.9491d1be.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Schibsted Grotesk;font-style:normal;font-weight:400 900;font-display:swap;src:url(../media/31a9145ccb84606d-s.p.fa7e779d.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Schibsted Grotesk Fallback;src:local(Arial);ascent-override:93.46%;descent-override:24.67%;line-gap-override:0.0%;size-adjust:104.49%}.schibsted_grotesk_9d66e192-module__2i3WOW__className{font-family:Schibsted Grotesk,Schibsted Grotesk Fallback;font-style:normal}.schibsted_grotesk_9d66e192-module__2i3WOW__variable{--font-schibsted:"Schibsted Grotesk","Schibsted Grotesk Fallback"}
:root{--font-sans:var(--font-schibsted),"Inter","SF Pro Display",system-ui,-apple-system,sans-serif;--font-mono:"SF Mono","Fira Code",ui-monospace,monospace;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--bg-base:#fafaf9;--bg-alt:#f5f5f4;--ink:#1c1917;--muted:#78716c;--accent:#d97706;--accent-strong:#b45309;--accent-soft:#fef3c7;--accent-contrast:#fff;--income:#059669;--expense:#dc2626;--surface:#ffffffd1;--surface-popover:#fffffff5;--surface-solid:#fff;--card:var(--surface);--border:#00000014;--border-soft:#0000000d;--shadow-soft:0 1px 3px #0000000f,0 8px 24px #0000000a;--shadow-tight:0 1px 2px #0000000d;--shadow-inset:inset 0 1px 0 #ffffff80;--radius-card:16px;--radius-soft:12px;--ok-bg:#d1fae5;--ok-ink:#065f46;--warn-bg:#fef3c7;--warn-ink:#92400e;--bad-bg:#fee2e2;--bad-ink:#991b1b;--income-row-bg:#f0fdf4;--income-row-border:#05966926;--save-bg:#ecfdf5;--save-bg-hover:#d1fae5;--save-border:#05966933;--cancel-bg:#fef2f2;--cancel-bg-hover:#fee2e2;--cancel-border:#dc262626;--editing-bg:#fffbeb;--track-bg:#0000000a;--track-under:#0596690f;--track-over:#dc26260f;--budget-mark:#0003;--ring-bg:#0000000f;--focus-ring:#d977061f;--placeholder:#a8a29e;--cat-1:#2a78d6;--cat-2:#eb6834;--cat-3:#1baf7a;--cat-4:#eda100;--cat-5:#e87ba4;--cat-6:#008300;--cat-7:#4a3aa7;--cat-8:#e34948;--ambient-a:#d9770612;--ambient-b:#0596690d}html[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg-base:#141211;--bg-alt:#1e1b19;--ink:#ece9e6;--muted:#a8a29c;--accent:#f59e0b;--accent-strong:#fbbf24;--accent-soft:#3b2d10;--accent-contrast:#1c1410;--income:#34d399;--expense:#f87171;--surface:#1e1b19d1;--surface-popover:#24201ef7;--surface-solid:#211e1c;--border:#ffffff1a;--border-soft:#ffffff0f;--shadow-soft:0 1px 3px #0006,0 8px 24px #00000052;--shadow-tight:0 1px 2px #0006;--shadow-inset:inset 0 1px 0 #ffffff0a;--ok-bg:#34d39926;--ok-ink:#6ee7b7;--warn-bg:#f59e0b29;--warn-ink:#fcd34d;--bad-bg:#f8717129;--bad-ink:#fca5a5;--income-row-bg:#34d39912;--income-row-border:#34d3992e;--save-bg:#34d3991f;--save-bg-hover:#34d39938;--save-border:#34d3994d;--cancel-bg:#f871711a;--cancel-bg-hover:#f8717133;--cancel-border:#f8717140;--editing-bg:#2b220c;--track-bg:#ffffff12;--track-under:#34d39914;--track-over:#f8717114;--budget-mark:#ffffff59;--ring-bg:#ffffff14;--focus-ring:#f59e0b38;--placeholder:#6f6862;--cat-1:#3987e5;--cat-2:#d95926;--cat-3:#199e70;--cat-4:#c98500;--cat-5:#d55181;--cat-6:#008300;--cat-7:#9085e9;--cat-8:#e66767;--ambient-a:#f59e0b0f;--ambient-b:#34d3990a}*,:before,:after{box-sizing:border-box}html,body{height:100%}html{scroll-behavior:smooth}html.theme-fade,html.theme-fade *,html.theme-fade :before,html.theme-fade :after{transition:background-color .35s,background .35s,color .35s,border-color .35s,fill .35s,stroke .35s,box-shadow .35s!important}body{font-family:var(--font-sans);color:var(--ink);background:var(--bg-base);margin:0;line-height:1.5;overflow-x:hidden}.bg-ambient{z-index:0;pointer-events:none;background:radial-gradient(1100px 500px at 85% -10%,var(--ambient-a),transparent 60%),radial-gradient(900px 600px at -10% 30%,var(--ambient-b),transparent 55%);position:fixed;inset:0}main{z-index:1;position:relative}a{color:inherit;text-decoration:none}.shell{z-index:1;max-width:1180px;margin:0 auto;padding:24px 20px 72px;position:relative}.section-gap{margin-top:20px}@keyframes card-rise{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.shell>section{animation:.48s cubic-bezier(.22,.61,.36,1) both card-rise}.shell>section:nth-of-type(2){animation-delay:40ms}.shell>section:nth-of-type(3){animation-delay:80ms}.shell>section:nth-of-type(4){animation-delay:.12s}.shell>section:nth-of-type(5){animation-delay:.16s}.shell>section:nth-of-type(6){animation-delay:.2s}.shell>section:nth-of-type(7){animation-delay:.24s}.shell>section:nth-of-type(8){animation-delay:.28s}.nav{border:1px solid var(--border);background:var(--surface);box-shadow:var(--shadow-tight);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);z-index:30;border-radius:14px;justify-content:space-between;align-items:center;gap:16px;margin-bottom:20px;padding:12px 16px;display:flex;position:sticky;top:12px}.brand-stack{gap:1px;display:grid}.brand-kicker{color:var(--muted);letter-spacing:.14em;text-transform:uppercase;font-size:10px;font-weight:600}.brand{letter-spacing:-.02em;color:var(--ink);font-size:22px;font-weight:700;line-height:1}.nav-links{align-items:center;gap:10px;display:flex}.nav-meta{align-items:center;gap:8px;min-width:0;display:flex}.user-chip{text-overflow:ellipsis;white-space:nowrap;border:1px solid var(--border);background:var(--surface-solid);max-width:260px;height:36px;color:var(--muted);border-radius:10px;justify-content:center;align-items:center;gap:8px;padding:0 12px 0 6px;font-size:13px;display:inline-flex;overflow:hidden}.icon-btn{border:1px solid var(--border);background:var(--surface-solid);width:30px;height:30px;color:var(--muted);cursor:pointer;border-radius:8px;flex-shrink:0;place-items:center;padding:0;transition:background .15s,color .15s,transform .12s;display:grid}.icon-btn:hover:not(:disabled){background:var(--bg-alt);color:var(--ink)}.icon-btn:active:not(:disabled){transform:scale(.94)}.icon-btn:disabled{opacity:.4;cursor:not-allowed}.icon-btn .icon{width:14px;height:14px}.icon-btn-sm{border-radius:6px;width:22px;height:22px}.icon-btn-sm .icon{width:12px;height:12px}.icon-btn-lg{border-radius:10px;width:36px;height:36px}.icon-btn-lg .icon{width:16px;height:16px}.icon-btn-confirm{border-color:var(--save-border);background:var(--save-bg);color:var(--income)}.icon-btn-confirm:hover:not(:disabled){background:var(--save-bg-hover);color:var(--income)}.icon-btn-dismiss{border-color:var(--cancel-border);background:var(--cancel-bg);color:var(--expense)}.icon-btn-dismiss:hover:not(:disabled){background:var(--cancel-bg-hover);color:var(--expense)}.icon-btn.is-on{border-color:var(--accent);background:var(--accent-soft);color:var(--ink)}.icon-btn-danger:hover:not(:disabled){background:var(--cancel-bg);border-color:var(--cancel-border);color:var(--expense)}.card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius-card);box-shadow:var(--shadow-soft);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);padding:20px;transition:box-shadow .2s,border-color .2s;position:relative}.card>*{z-index:1;position:relative}.section-title{letter-spacing:-.01em;margin:0 0 14px;font-size:clamp(20px,2.2vw,24px);font-weight:700;line-height:1.2}.form-grid{gap:12px;display:grid}.field{gap:6px;display:grid}.field-label-row{justify-content:space-between;align-items:center;gap:8px;display:flex}.field-move{gap:2px;display:inline-flex}label{letter-spacing:.04em;text-transform:uppercase;color:var(--muted);font-size:12px;font-weight:600}:where(input:not([type=checkbox],[type=radio],[type=file]),select){height:36px}input,select{border:1px solid var(--border);background:var(--surface-solid);width:100%;color:var(--ink);border-radius:10px;padding:0 12px;font-family:inherit;font-size:15px;transition:border-color .15s,box-shadow .15s}select{appearance:none;text-overflow:ellipsis;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2378716c' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-position:right 12px center;background-repeat:no-repeat;background-size:14px;padding-right:36px}input::placeholder{color:var(--placeholder)}input:focus,select:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--focus-ring);outline:none}.form-actions{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.btn{white-space:nowrap;cursor:pointer;border:1px solid #0000;border-radius:10px;justify-content:center;align-items:center;gap:6px;height:36px;padding:0 16px;font-size:13px;font-weight:600;line-height:1;text-decoration:none;transition:background .15s,box-shadow .15s,color .15s,transform .12s;display:inline-flex}.btn:active:not(:disabled){transform:scale(.97)}.btn-small{border-radius:8px;height:30px;padding:0 12px;font-size:12px}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{color:var(--accent-contrast);background:var(--accent);box-shadow:var(--shadow-tight)}.btn-primary:hover:not(:disabled){background:var(--accent-strong)}.btn-ghost{background:var(--surface-solid);border-color:var(--border);color:var(--ink)}.btn-ghost:hover:not(:disabled){background:var(--bg-alt)}.helper{color:var(--muted);font-size:13px}.status{border-radius:var(--radius-soft);border:1px solid var(--cancel-border);background:var(--cancel-bg);color:var(--expense);gap:8px;margin-bottom:12px;padding:10px 12px;font-size:13px;font-weight:600;display:flex}.status:before{content:"!";background:var(--expense);width:18px;height:18px;color:var(--surface-solid);text-align:center;border-radius:50%;flex-shrink:0;font-size:12px;line-height:18px}.badge{border:1px solid var(--border);background:var(--bg-alt);letter-spacing:.06em;text-transform:uppercase;border-radius:8px;align-items:center;gap:6px;width:fit-content;padding:4px 10px;font-size:11px;font-weight:700;display:inline-flex}.card-head-meta{align-items:center;gap:8px;display:inline-flex}.badge-warn{background:var(--warn-bg);color:var(--warn-ink);border-color:#0000}.breakdown-dot{border-radius:50%;flex-shrink:0;width:8px;height:8px}.btn.is-on{background:var(--accent-soft);color:var(--ink);border-color:var(--accent)}.card-head{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:12px;margin-bottom:14px;display:flex}.card-head .section-title{margin-bottom:0}.card>.card-head{z-index:3}.card-head:last-child{margin-bottom:0}.card-head:has(button){align-items:center}.stat-row{flex-wrap:wrap;gap:12px 28px;display:flex}.stat{justify-items:start;gap:3px;min-width:0;display:grid}.stat-label{letter-spacing:.06em;text-transform:uppercase;color:var(--muted);font-size:11px;font-weight:600}.stat-value{letter-spacing:-.01em;font-variant-numeric:tabular-nums;font-size:20px;font-weight:700;line-height:1.1}.stat-value.is-good{color:var(--income)}.stat-value.is-bad{color:var(--expense)}.stat-small .stat-value{font-size:15px}.stat-delta{font-variant-numeric:tabular-nums;border-radius:6px;width:fit-content;padding:2px 8px;font-size:12px;font-weight:600}.stat-delta.good{background:var(--ok-bg);color:var(--ok-ink)}.stat-delta.bad{background:var(--bad-bg);color:var(--bad-ink)}.stat-delta.neutral{background:var(--bg-alt);color:var(--muted)}.num{font-variant-numeric:tabular-nums;text-align:right}.toolbar{flex-wrap:wrap;align-items:flex-end;gap:8px;margin:4px 0 16px;display:flex}.toolbar .field{flex:150px;min-width:0}.toolbar .field-wide{flex:2 220px}.toolbar-actions{align-items:center;gap:8px;margin-left:auto;display:flex}.import{border-top:1px solid var(--border-soft);gap:12px;margin-top:4px;padding-top:16px;display:grid}.import-head{gap:4px;display:grid}.import-file{cursor:pointer;padding:8px;font-size:13px}.import-file::file-selector-button{border:1px solid var(--border);background:var(--surface-solid);color:var(--ink);cursor:pointer;border-radius:8px;margin-right:12px;padding:6px 12px;font-family:inherit;font-size:12px;font-weight:600}.import-file::file-selector-button:hover{background:var(--bg-alt)}.import-preview{border-radius:var(--radius-soft);border:1px solid var(--border);background:var(--surface-solid);gap:12px;padding:14px;display:grid}.import-errors summary{color:var(--warn-ink);cursor:pointer;font-size:13px;font-weight:600}.import-errors ul{color:var(--muted);gap:2px;max-height:200px;margin:8px 0 0;padding-left:20px;font-size:12px;display:grid;overflow-y:auto}.text-income{color:var(--income)}.text-expense{color:var(--expense)}.auth-shell{place-items:center;min-height:100vh;padding:34px 20px 64px;display:grid}.auth-card{gap:14px;width:min(440px,100%);display:grid}.auth-card h1{margin:0;font-size:32px;font-weight:700;line-height:1.1}.auth-card p{color:var(--muted);margin:0}.empty{text-align:center;border:1px dashed var(--border);color:var(--muted);background:var(--bg-alt);border-radius:12px;padding:20px 14px}.icon{vertical-align:-.125em;fill:none;stroke:currentColor;stroke-width:2px;stroke-linecap:round;stroke-linejoin:round;width:1em;height:1em;display:inline-block}@media (max-width:1024px){.shell{padding:20px 16px 64px}}@media (max-width:860px){.nav{flex-direction:column;align-items:flex-start;position:relative;top:0}.nav-links{grid-template-columns:1fr;gap:8px;width:100%;display:grid}.nav-meta{width:100%}.nav-meta .user-chip{flex:1;max-width:none}.shell{flex-direction:column;display:flex}.shell>.nav,.shell>.status{order:-2}.user-chip{justify-content:center;width:100%}.card-head{align-items:flex-start}.form-actions{flex-direction:column;align-items:stretch}.toolbar-actions{width:100%;margin-left:0}.card-head .toolbar-actions{width:auto;margin-left:auto}}@media (max-width:640px){.shell{padding:16px 12px calc(84px + env(safe-area-inset-bottom))}.nav{-webkit-backdrop-filter:none;backdrop-filter:none;background:var(--surface-solid);flex-direction:row;align-items:center}.nav-links,.nav-meta{width:auto}.nav-meta .user-chip,.user-chip{flex:none;width:auto;padding:0 6px}.card{border-radius:14px;padding:16px}.section-title{font-size:20px}}@media (max-width:480px){label{font-size:11px}input,select{font-size:15px}.brand{font-size:20px}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-delay:0s!important}}
