@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-cyrillic-ext-wght-normal-BOeWTOD4.woff2) format("woff2-variations");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-cyrillic-wght-normal-DqGufNeO.woff2) format("woff2-variations");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-greek-ext-wght-normal-DlzME5K_.woff2) format("woff2-variations");unicode-range:U+1F00-1FFF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-greek-wght-normal-CkhJZR-_.woff2) format("woff2-variations");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-vietnamese-wght-normal-CBcvBZtf.woff2) format("woff2-variations");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-latin-ext-wght-normal-DO1Apj_S.woff2) format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-latin-wght-normal-Dx4kXJAl.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--color-primary: oklch(.58 .17 35);--color-primary-hover: oklch(.52 .18 35);--color-primary-tint: oklch(.94 .03 35);--color-secondary: oklch(.55 .14 152);--color-secondary-hover: oklch(.49 .15 152);--color-secondary-tint: oklch(.94 .035 152);--color-tertiary: oklch(.48 .18 25);--color-tertiary-hover: oklch(.42 .19 25);--color-tertiary-tint: oklch(.94 .03 25);--color-bg: oklch(1 0 0);--color-surface: oklch(.97 .006 40);--color-nav-bg: oklch(.99 .004 40);--color-border: oklch(.88 .008 40);--color-ink: oklch(.22 .015 40);--color-muted: oklch(.5 .02 40);--space-3xs: .25rem;--space-2xs: .5rem;--space-xs: .75rem;--space-sm: 1rem;--space-md: 1.5rem;--space-lg: 2rem;--space-xl: 3rem;--space-2xl: 4rem;--space-3xl: 6rem;--font-sans: "Inter Variable", "Inter", system-ui, -apple-system, sans-serif;--text-xs: .75rem;--text-sm: .875rem;--text-base: 1rem;--text-md: 1.125rem;--text-lg: 1.375rem;--text-xl: 1.75rem;--text-2xl: 2.25rem;--leading-tight: 1.2;--leading-normal: 1.5;--radius-sm: 6px;--radius-md: 10px;--radius-lg: 16px;--shadow-sm: 0 1px 2px oklch(.22 .015 40 / .06);--shadow-md: 0 4px 12px oklch(.22 .015 40 / .1);--ease-out-expo: cubic-bezier(.16, 1, .3, 1);--duration-fast: .15s;--duration-base: .2s;--z-dropdown: 10;--z-sticky: 20;--z-modal-backdrop: 30;--z-modal: 40;--z-toast: 50;--z-tooltip: 60}*,*:before,*:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{margin:0;background:var(--color-bg);color:var(--color-ink);font-family:var(--font-sans);font-size:var(--text-base);line-height:var(--leading-normal);font-feature-settings:"tnum" 1}h1,h2,h3{text-wrap:balance;line-height:var(--leading-tight);margin:0}:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}.app-shell{display:flex;min-height:100vh}.app-nav{width:220px;flex-shrink:0;background:var(--color-nav-bg);border-right:1px solid var(--color-border);padding:var(--space-md) var(--space-sm);display:flex;flex-direction:column;gap:var(--space-lg);position:sticky;top:0;height:100vh}.app-nav__brand{font-size:var(--text-md);font-weight:700;color:var(--color-ink);padding:0 var(--space-2xs)}.app-nav__links{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--space-3xs)}.app-nav__link{display:flex;align-items:center;gap:var(--space-2xs);padding:var(--space-2xs) var(--space-xs);border-radius:var(--radius-md);color:var(--color-muted);text-decoration:none;font-size:var(--text-sm);font-weight:500;transition:background-color var(--duration-fast) var(--ease-out-expo),color var(--duration-fast) var(--ease-out-expo)}.app-nav__link:hover{background:var(--color-surface);color:var(--color-ink)}.app-nav__link[aria-current=page]{background:var(--color-primary-tint);color:var(--color-primary)}.app-nav__footer{margin-top:auto;font-size:var(--text-xs);color:var(--color-muted);padding:0 var(--space-2xs)}.app-main{flex:1;min-width:0;padding:var(--space-xl) var(--space-2xl)}.app-main__header{display:flex;align-items:baseline;justify-content:space-between;gap:var(--space-md);margin-bottom:var(--space-xl);flex-wrap:wrap}.app-main__title{font-size:var(--text-2xl);font-weight:700;letter-spacing:-.01em}@media (max-width: 860px){.app-shell{flex-direction:column}.app-nav{width:100%;height:auto;position:static;flex-direction:row;align-items:center;justify-content:space-between}.app-nav__links{flex-direction:row}.app-nav__footer{display:none}.app-main{padding:var(--space-lg) var(--space-md)}}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-3xs);min-height:40px;padding:0 var(--space-sm);border-radius:var(--radius-md);border:1px solid transparent;font-family:inherit;font-size:var(--text-sm);font-weight:600;cursor:pointer;transition:background-color var(--duration-fast) var(--ease-out-expo),border-color var(--duration-fast) var(--ease-out-expo),transform var(--duration-fast) var(--ease-out-expo)}.btn:active{transform:scale(.98)}.btn:disabled{opacity:.5;cursor:not-allowed;transform:none}.btn-primary{background:var(--color-primary);color:#fff}.btn-primary:hover:not(:disabled){background:var(--color-primary-hover)}.btn-secondary{background:var(--color-surface);color:var(--color-ink);border-color:var(--color-border)}.btn-secondary:hover:not(:disabled){background:var(--color-bg);border-color:var(--color-muted)}.btn-ghost{background:transparent;color:var(--color-muted)}.btn-ghost:hover:not(:disabled){background:var(--color-surface);color:var(--color-ink)}.btn-sm{min-height:32px;padding:0 var(--space-xs);font-size:var(--text-xs)}.card{background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--space-md)}.card__header{display:flex;align-items:baseline;justify-content:space-between;gap:var(--space-sm);margin-bottom:var(--space-sm)}.card__title{font-size:var(--text-md);font-weight:700}.card__link{font-size:var(--text-sm);font-weight:600;color:var(--color-primary);text-decoration:none}.card__link:hover{text-decoration:underline}.card-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:var(--space-md)}.table-wrap{overflow-x:auto}.table{width:100%;border-collapse:collapse;font-size:var(--text-sm)}.table th{text-align:left;font-size:var(--text-xs);font-weight:600;color:var(--color-muted);text-transform:uppercase;letter-spacing:.02em;padding:var(--space-2xs) var(--space-xs);border-bottom:1px solid var(--color-border)}.table td{padding:var(--space-2xs) var(--space-xs);border-bottom:1px solid var(--color-border);vertical-align:middle}.table tbody tr:last-child td{border-bottom:none}.table tbody tr:hover{background:var(--color-surface)}.table tfoot td{border-bottom:none;border-top:2px solid var(--color-border);padding-top:var(--space-xs)}.table .num{font-variant-numeric:tabular-nums;text-align:right}.table-empty{padding:var(--space-lg);text-align:center;color:var(--color-muted);font-size:var(--text-sm)}.badge{display:inline-flex;align-items:center;gap:var(--space-3xs);padding:var(--space-3xs) var(--space-2xs);border-radius:999px;font-size:var(--text-xs);font-weight:600;line-height:1;white-space:nowrap}.badge-income{background:var(--color-secondary-tint);color:var(--color-secondary-hover)}.badge-overdue{background:var(--color-tertiary-tint);color:var(--color-tertiary-hover)}.badge-neutral{background:var(--color-surface);color:var(--color-muted)}.field{display:flex;flex-direction:column;gap:var(--space-3xs);margin-bottom:var(--space-sm)}.field label{font-size:var(--text-sm);font-weight:600;color:var(--color-ink)}.field input,.field select{font-family:inherit;font-size:var(--text-sm);padding:var(--space-2xs) var(--space-xs);border-radius:var(--radius-sm);border:1px solid var(--color-border);background:var(--color-bg);color:var(--color-ink);min-height:40px}.field input:focus-visible,.field select:focus-visible{outline:2px solid var(--color-primary);outline-offset:1px}.form-error{color:var(--color-tertiary);font-size:var(--text-sm);margin:0 0 var(--space-sm)}.year-switcher{display:inline-flex;align-items:center;gap:var(--space-2xs);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-3xs)}.year-switcher button{border:none;background:transparent;cursor:pointer;color:var(--color-muted);font-size:var(--text-md);line-height:1;padding:var(--space-2xs);border-radius:var(--radius-sm)}.year-switcher button:hover:not(:disabled){background:var(--color-surface);color:var(--color-ink)}.year-switcher button:disabled{opacity:.3;cursor:not-allowed}.year-switcher__label{font-variant-numeric:tabular-nums;font-weight:700;font-size:var(--text-md);min-width:4ch;text-align:center}.receipt-review{display:grid;grid-template-columns:minmax(280px,1fr) minmax(340px,1fr);gap:var(--space-lg);align-items:start}@media (max-width: 860px){.receipt-review{grid-template-columns:1fr}}.receipt-image-wrap{position:relative;border:1px solid var(--color-border);border-radius:var(--radius-lg);overflow:hidden;background:var(--color-surface);line-height:0}.receipt-image-wrap img{display:block;width:100%;height:auto}.receipt-bbox{position:absolute;border:2px solid var(--color-primary);border-radius:2px;pointer-events:none;transition:border-color var(--duration-fast) var(--ease-out-expo)}.receipt-bbox.is-low-confidence{border-color:var(--color-tertiary)}.receipt-bbox.is-reviewed{border-color:var(--color-secondary)}.receipt-bbox__label{position:absolute;bottom:100%;left:0;font-size:10px;font-weight:600;line-height:1.4;background:var(--color-ink);color:#fff;padding:1px 4px;border-radius:var(--radius-sm) var(--radius-sm) 0 0;white-space:nowrap}.field-review-row{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-sm);padding:var(--space-xs) 0;border-bottom:1px solid var(--color-border)}.field-review-row:last-child{border-bottom:none}.field-review-row__meta{min-width:0}.field-review-row__label{font-size:var(--text-sm);font-weight:600;margin-bottom:2px}.field-review-row__raw{font-size:var(--text-xs);color:var(--color-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.field-review-row__confirm{display:flex;align-items:center;gap:var(--space-3xs);font-size:var(--text-xs);color:var(--color-muted);white-space:nowrap;flex-shrink:0}
