@charset "UTF-8";@font-face{font-family:Plus Jakarta Sans Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url("./media/plus-jakarta-sans-cyrillic-ext-wght-normal-JQUONSEA.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:Plus Jakarta Sans Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url("./media/plus-jakarta-sans-vietnamese-wght-normal-TOS5SH3L.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:Plus Jakarta Sans Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url("./media/plus-jakarta-sans-latin-ext-wght-normal-UBEBQO7H.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:Plus Jakarta Sans Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url("./media/plus-jakarta-sans-latin-wght-normal-XZSBT77D.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-bg: #f6f7fb;--color-surface: #ffffff;--color-surface-2: #f1f3f9;--color-border: #e5e8f0;--color-text: #1a1d29;--color-text-soft: #5b6478;--color-text-faint: #949cb0;--color-accent: #4f46e5;--color-accent-soft: #eef0fe;--color-income: #16a34a;--color-expense: #e11d48;--color-warn: #d97706;--radius-sm: 8px;--radius: 14px;--radius-lg: 20px;--shadow-sm: 0 1px 2px rgba(20, 25, 45, .06);--shadow: 0 6px 20px rgba(20, 25, 45, .08);--shadow-lg: 0 18px 50px rgba(20, 25, 45, .14);--space: 16px;--sidebar-w: 248px;--bottom-nav-h: 60px;--tap: 44px;--font: "Inter", "Segoe UI", system-ui, -apple-system, sans-serif;--font-display: "Plus Jakarta Sans Variable", var(--font);--duration: .2s;--ease: cubic-bezier(.16, 1, .3, 1)}.dark{--color-bg: #0e1017;--color-surface: #171a24;--color-surface-2: #1f2330;--color-border: #2a2f3d;--color-text: #eef1f8;--color-text-soft: #a3abbf;--color-text-faint: #6b7488;--color-accent: #7c78ff;--color-accent-soft: #23233a;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .4);--shadow: 0 6px 20px rgba(0, 0, 0, .45);--shadow-lg: 0 18px 50px rgba(0, 0, 0, .6)}*{box-sizing:border-box}html,body{margin:0;padding:0;min-height:100vh;font-family:var(--font);background:var(--color-bg);color:var(--color-text);-webkit-font-smoothing:antialiased}h1,h2,h3,h4{margin:0;font-weight:650;letter-spacing:-.02em}a{color:inherit;text-decoration:none}button{font-family:inherit;cursor:pointer}.card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);box-shadow:var(--shadow-sm)}.btn{display:inline-flex;align-items:center;gap:8px;padding:10px 16px;border:1px solid transparent;border-radius:var(--radius-sm);font-weight:600;font-size:.9rem;background:var(--color-surface-2);color:var(--color-text);transition:transform var(--duration) var(--ease),background var(--duration) var(--ease),box-shadow var(--duration) var(--ease)}.btn:hover{transform:translateY(-1px)}.btn:active{transform:translateY(0)}.btn-primary{background:var(--color-accent);color:#fff;box-shadow:var(--shadow-sm)}.btn-primary:hover{box-shadow:var(--shadow)}.btn-ghost{background:transparent}.btn-danger{background:transparent;color:var(--color-expense)}.btn:disabled{opacity:.5;cursor:not-allowed;transform:none}.input,.select{width:100%;padding:10px 12px;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);color:var(--color-text);font-size:.9rem;transition:border-color var(--duration) var(--ease),box-shadow var(--duration) var(--ease)}.range{width:100%;accent-color:var(--color-accent)}@supports (-webkit-touch-callout: none){input[type=date],input[type=month],input[type=time]{-webkit-appearance:none;appearance:none;min-width:0;max-width:100%;min-height:2.5em}::-webkit-date-and-time-value{text-align:left}}.input:focus,.select:focus{outline:none;border-color:var(--color-accent);box-shadow:0 0 0 3px var(--color-accent-soft)}.field{display:flex;flex-direction:column;gap:6px}.field label{font-size:.8rem;color:var(--color-text-soft);font-weight:600}.badge{display:inline-flex;align-items:center;gap:5px;padding:3px 10px;border-radius:999px;font-size:.75rem;font-weight:600;background:var(--color-surface-2);color:var(--color-text-soft)}.badge.badge-ok{background:#16a34a22;color:#16a34a}.badge.badge-warn{background:#d9770622;color:#d97706}.pill-dot{width:9px;height:9px;border-radius:50%;display:inline-block}.income{color:var(--color-income)}.expense{color:var(--color-expense)}.page-title{font-size:1.6rem;margin-bottom:4px}.page-sub{color:var(--color-text-soft);font-size:.9rem}.grid{display:grid;gap:var(--space)}.table{width:100%;border-collapse:collapse}.table th{text-align:left;font-size:.75rem;text-transform:uppercase;letter-spacing:.04em;color:var(--color-text-faint);padding:10px 12px;border-bottom:1px solid var(--color-border)}.table td{padding:12px;border-bottom:1px solid var(--color-border);font-size:.9rem}.table tr:last-child td{border-bottom:none}.table tbody tr{transition:background var(--duration) var(--ease)}.table tbody tr:hover{background:var(--color-surface-2)}.table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch}.empty{text-align:center;padding:48px 24px;color:var(--color-text-faint)}.spinner{width:22px;height:22px;border:3px solid var(--color-border);border-top-color:var(--color-accent);border-radius:50%;animation:spin .7s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-bottom:24px}.head-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}dialog.modal{border:0;padding:0;background:var(--color-surface);color:var(--color-text);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);width:calc(100% - 32px);max-width:440px;max-height:calc(100vh - 32px);max-height:calc(100dvh - 32px);animation:pop var(--duration) var(--ease)}dialog.modal.modal-sm{max-width:380px}dialog.modal.modal-lg{max-width:640px}dialog.modal.modal-xl{max-width:1040px}dialog.modal::backdrop{background:#0f121e80;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}.modal-body{padding:24px}.modal-title{margin:0 0 4px;font-size:1.15rem}.modal-sub{margin:0 0 16px;color:var(--color-text-soft);font-size:.85rem}.modal-form{display:flex;flex-direction:column;gap:14px;margin-top:16px}.modal-form .two{display:grid;grid-template-columns:1fr 1fr;gap:12px}.modal-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:20px}.form-error{color:var(--color-expense);font-size:.85rem;margin:12px 0 0}.btn-danger-solid{background:var(--color-expense);color:#fff}@keyframes pop{0%{opacity:0;transform:scale(.96) translateY(6px)}}@media(hover:none){.hover-actions{opacity:1!important}}@media(max-width:600px){.page-title{font-size:1.35rem}.head{margin-bottom:16px}.btn{min-height:var(--tap)}.btn.sm{min-height:40px;min-width:40px;justify-content:center}.input,.select{min-height:var(--tap);font-size:16px}input[type=checkbox],input[type=radio]{width:20px;height:20px}.table th{padding:8px}.table td{padding:10px 8px;font-size:.85rem}.modal-form .two{grid-template-columns:1fr}.modal-actions{flex-wrap:wrap}.modal-actions>.btn{flex:1 1 auto;justify-content:center}dialog.modal,dialog.modal.modal-sm,dialog.modal.modal-lg,dialog.modal.modal-xl{width:100%;max-width:100%;margin:auto 0 0;border-radius:var(--radius-lg) var(--radius-lg) 0 0;max-height:92dvh;animation:sheet-up .26s var(--ease)}dialog.modal.modal-xl{height:100dvh;max-height:100dvh;border-radius:0}dialog.modal:before{content:"";display:block;width:40px;height:4px;margin:8px auto 0;border-radius:2px;background:var(--color-border)}.modal-body{padding:14px 16px calc(18px + env(safe-area-inset-bottom))}.table.cards,.table.cards tbody{display:block}.table.cards thead{display:none}.table.cards tr{display:grid;grid-template-columns:auto minmax(0,1fr) auto;column-gap:10px;align-items:center;padding:12px 4px;border-bottom:1px solid var(--color-border)}.table.cards tbody tr:last-child{border-bottom:0}.table.cards td{grid-column:2/3;display:block;padding:0;border:0;font-size:.8rem;color:var(--color-text-soft);line-height:1.45}.table.cards td[data-label]:before{content:attr(data-label) " ";color:var(--color-text-faint)}.table.cards td:empty{display:none}.table.cards td.c-lead{grid-column:1;grid-row:1/span 2;align-self:start}.table.cards td.c-title{grid-row:1;font-size:.92rem;font-weight:600;color:var(--color-text)}.table.cards td.c-amount{grid-column:3;grid-row:1;text-align:right;font-size:.95rem;font-weight:700;color:var(--color-text);white-space:nowrap}.table.cards td.c-amount.income{color:var(--color-income)}.table.cards td.c-amount.expense{color:var(--color-expense)}.table.cards td.c-status{grid-column:3;grid-row:2;text-align:right}.table.cards td.c-actions{grid-column:2/-1;display:flex;justify-content:flex-end;flex-wrap:wrap;gap:4px;margin-top:6px}.table.cards td.c-hide{display:none}.table.cards td:not(.c-amount):not(.c-status):not(.c-actions){text-align:left}.table.cards td.c-sub{grid-row:2}.table.cards td.income{color:var(--color-income)}.table.cards td.expense{color:var(--color-expense)}.table.cards td[colspan]{grid-column:1/-1}.table.cards tfoot{display:block}.table.cards tfoot tr{grid-template-columns:minmax(0,1fr) auto;border-bottom:0}.table.cards tfoot td{grid-column:auto;font-weight:700;color:var(--color-text);font-size:.88rem}.table.cards tbody tr:hover{background:none}.chips-scroll{display:flex;flex-wrap:nowrap;overflow-x:auto;gap:6px;scrollbar-width:none;-webkit-overflow-scrolling:touch;margin-inline:-4px;padding-inline:4px}.chips-scroll::-webkit-scrollbar{display:none}.chips-scroll>*{flex:0 0 auto}.hide-phone{display:none!important}body .topbar{padding-top:max(10px,env(safe-area-inset-top))}body .topbar .hamburger{display:none}body:has(.demo-pill) main.content{padding-bottom:calc(var(--bottom-nav-h) + env(safe-area-inset-bottom) + 96px)}body .sidebar nav a,body .sidebar .nav-group-header{min-height:var(--tap)}body .toasts,body .demo,body .demo-pill,body .consent,body .update{bottom:calc(var(--bottom-nav-h) + env(safe-area-inset-bottom) + 12px)!important}body:has(dialog[open]) app-bottom-nav{display:none}body .month-nav{display:flex;width:100%}body .month-nav .nav-arrow{min-width:var(--tap);min-height:var(--tap);padding:0;justify-content:center}body .month-nav .month-label{flex:1;min-width:0;min-height:var(--tap)}}.show-phone{display:none!important}@media(max-width:600px){.show-phone{display:revert!important}.btn.show-phone{display:inline-flex!important}}@keyframes sheet-up{0%{transform:translateY(100%)}}@media(prefers-reduced-motion:reduce){.btn:hover,.btn:active{transform:none}dialog.modal,dialog.modal.modal-sm,dialog.modal.modal-lg,dialog.modal.modal-xl{animation:none}}body.nav-lock{overflow:hidden}.sr-only{position:absolute;left:0;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
