@font-face{font-family:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geist-cyrillic-ext-wght-normal-DjL33-gN.woff2)format("woff2-variations");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geist-cyrillic-wght-normal-BEAKL7Jp.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geist-vietnamese-wght-normal-6IgcOCM7.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geist-latin-ext-wght-normal-DC-KSUi6.woff2)format("woff2-variations");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-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geist-latin-wght-normal-BgDaEnEv.woff2)format("woff2-variations");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}.auth-screen.svelte-17gj9pg{justify-content:center;align-items:center;min-height:100dvh;padding:24px;display:flex}.auth-card.svelte-17gj9pg{background:var(--surface,#fff);border-radius:16px;width:100%;max-width:360px;padding:32px 28px;box-shadow:0 1px 3px #00000014}.auth-brand.svelte-17gj9pg{align-items:center;gap:10px;margin-bottom:24px;font-weight:600;display:flex}h1.svelte-17gj9pg{margin:0 0 4px;font-size:1.5rem}.auth-sub.svelte-17gj9pg{color:var(--muted,#666);margin:0 0 24px}.auth-form.svelte-17gj9pg{flex-direction:column;gap:16px;display:flex}.field.svelte-17gj9pg{flex-direction:column;gap:6px;display:flex}.field.svelte-17gj9pg input:where(.svelte-17gj9pg){border:1px solid var(--border,#d9dce1);border-radius:10px;padding:10px 12px;font-size:1rem}.auth-submit.svelte-17gj9pg{justify-content:center;width:100%;margin-top:4px}.form-info.svelte-17gj9pg{color:var(--positive,#1a7f37);margin:0;font-size:.9rem}.paid-toggle.svelte-gp0g6m{border:1px solid var(--border);background:var(--surface);height:26px;color:var(--muted);white-space:nowrap;transition:background-color var(--t-hover) ease, color var(--t-hover) ease, border-color var(--t-hover) ease;border-radius:999px;align-items:center;gap:4px;padding:0 10px;font-size:12px;font-weight:500;display:inline-flex}.paid-toggle.svelte-gp0g6m:hover{background:var(--raised);color:var(--text)}.paid-toggle.is-paid.svelte-gp0g6m{background:var(--positive-soft);color:var(--positive);border-color:#0000}.paid-toggle.is-paid.svelte-gp0g6m:hover{background:color-mix(in srgb, var(--positive-soft) 70%, var(--positive) 10%)}.app-loading.svelte-1n46o8q{min-height:100dvh;color:var(--muted,#666);text-align:center;justify-content:center;align-items:center;padding:24px;font-size:.95rem;display:flex}:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--ground:#f2f4f7;--surface:#fff;--raised:#f7f8fa;--active:#eceef1;--border:#e6e6e6;--rule:#f0f1f3;--control:#d4d4d4;--text:#0a0a0a;--muted:#5f6368;--faint:#6b6b6b;--primary:#3d5dfc;--primary-dark:#2a42c9;--primary-soft:#eef1ff;--primary-ink:#fff;--chart:#3d5dfc;--chart-track:#e8ebf5;--grid:#e5e5e5;--positive:#1a9850;--positive-soft:#e7f7ee;--negative:#d9362b;--negative-soft:#fdecea;--warning:#92400e;--pill-warning-bg:#fffbeb;--pill-warning-ink:#92400e;--avatar-1:#3d5dfc;--avatar-2:#7c5cfc;--avatar-3:#1a9850;--avatar-4:#e08a1e;--avatar-5:#d9362b;--avatar-6:#0f9b9b;--radius-card:20px;--radius-control:12px;--gap:12px;--pad:24px;--card-pad:20px;--control-height:40px;--row-height:44px;--shadow-card:0 1px 2px #1018280a;--shadow-hero:0 16px 32px -12px #2a42c973;--font:"Geist Variable", system-ui, -apple-system, "Segoe UI", sans-serif;--fs-title:24px;--fs-section:16px;--fs-kpi:38px;--fs-body:14px;--fs-small:13px;--ease-out:cubic-bezier(.22, 1, .36, 1);--t-hover:.15s;--t-press:.12s}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%}body{background:var(--ground);color:var(--text);font:400 var(--fs-body) / 20px var(--font);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;margin:0}h1,h2,h3,p,dl,dd,figure,ul,ol{margin:0}ul[class],ol[class]{padding:0;list-style:none}img,svg{max-width:100%;display:block}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer}a{color:inherit;text-decoration:none}:focus-visible{outline:2px solid var(--chart);outline-offset:2px;border-radius:4px}::selection{color:var(--text);background:#dbe7f7}.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}.num{font-variant-numeric:tabular-nums;text-align:right;white-space:nowrap}.muted{color:var(--muted)}.skip-link{z-index:100;border:1px solid var(--control);border-radius:var(--radius-control);background:var(--surface);transition:top var(--t-hover) ease;padding:10px 14px;font-size:14px;position:absolute;top:-48px;left:16px}.skip-link:focus{top:calc(env(safe-area-inset-top) + 8px)}.app{flex-direction:column;min-height:100dvh;display:flex}.topbar{z-index:20;padding-top:env(safe-area-inset-top);border-bottom:1px solid var(--border);background:var(--ground);position:sticky;top:0}.topbar-inner{justify-content:space-between;align-items:center;gap:24px;width:100%;max-width:1200px;height:52px;margin:0 auto;padding:0 24px;display:flex}.brand{min-height:44px;color:var(--text);text-align:left;background:0 0;border:0;align-items:center;gap:8px;padding:0;display:flex}.brand-avatar{flex:none;width:36px;height:36px;font-size:14px}.brand-avatar-photo{object-fit:cover;border-radius:50%}.brand-text{flex-direction:column;line-height:1.2;display:flex}.brand-name{letter-spacing:-.01em;font-size:15px;font-weight:700}.brand-greeting{color:var(--muted);white-space:nowrap;margin-top:2px;font-size:11px;font-weight:400}.topbar-action{background:var(--raised);width:40px;height:40px;color:var(--text);transition:background-color var(--t-hover) ease;border:0;border-radius:50%;flex:none;justify-content:center;align-items:center;display:none}.topbar-action:hover{background:var(--active)}.desktop-nav{align-items:center;gap:2px;display:flex}.desktop-nav button{height:52px;color:var(--muted);transition:color var(--t-hover) ease;background:0 0;border:0;padding:0 12px;font-size:14px;font-weight:500;position:relative}.desktop-nav button:hover{color:var(--text)}.desktop-nav button[aria-current=page]{color:var(--primary)}.desktop-nav button[aria-current=page]:after{content:"";background:var(--primary);height:2px;position:absolute;bottom:-1px;left:12px;right:12px}.page{flex:1;width:100%;max-width:1200px;margin:0 auto;padding:24px 24px 48px}.screen{flex-direction:column;gap:24px;display:flex}.title-row{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:16px;display:flex}.title-row h1{font-size:var(--fs-title);letter-spacing:-.01em;font-weight:500;line-height:1.2}.sub{color:var(--muted);margin-top:4px;font-size:14px;line-height:20px}.btn{height:var(--control-height);border:1px solid var(--control);border-radius:var(--radius-control);background:var(--surface);color:var(--text);transition:background-color var(--t-hover) ease, transform var(--t-press) var(--ease-out);justify-content:center;align-items:center;gap:8px;padding:0 14px;font-size:14px;font-weight:500;display:inline-flex}.btn:hover{background:var(--raised)}.btn:active{transform:translateY(1px)}.btn.primary{background:var(--primary);color:var(--primary-ink);border-color:#0000}.btn.primary:hover{background:var(--primary-dark)}.screen-action{flex:none}.overview-row{gap:var(--gap);grid-template-columns:minmax(0,1.45fr) minmax(0,1fr);align-items:stretch;display:grid}.panel{min-width:0;padding:var(--card-pad);border:1px solid var(--border);border-radius:var(--radius-card);background:var(--surface);box-shadow:var(--shadow-card)}.panel.hero{background:linear-gradient(135deg, var(--primary) 0%, var(--primary-dark) 100%);box-shadow:var(--shadow-hero);color:#fff;border:none}.panel.hero .figure-label,.panel.hero .hero-sub,.panel.hero .late-line,.panel.hero .actual-line,.panel.hero .meta,.panel.hero .muted{color:#ffffffc7}.panel.hero .actual-line strong,.panel.hero .panel-head h2{color:#fff}.panel.hero .status-inline{color:#fff;background:#ffffff29;border-radius:999px;padding:4px 10px}.panel.hero .status-dot{background:#fff}.panel-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:8px 12px;margin-bottom:16px;display:flex}.panel h2{font-size:var(--fs-section);font-weight:500;line-height:1.3}.meta{color:var(--muted);font-size:var(--fs-small);margin-top:2px;line-height:16px}.status-inline{color:var(--text);font-size:var(--fs-small);white-space:nowrap;align-items:center;gap:6px;font-weight:500;line-height:16px;display:inline-flex}.status-dot{background:var(--faint);border-radius:50%;flex:none;width:6px;height:6px}.status-inline[data-tone=positive] .status-dot{background:var(--positive)}.status-inline[data-tone=warning] .status-dot{background:var(--warning)}.status-inline[data-tone=negative] .status-dot{background:var(--negative)}.status-inline[data-tone=neutral] .status-dot{background:var(--faint)}.hero{flex-direction:column;display:flex}.figure-label{color:var(--muted);margin-top:4px;font-size:13px}.hero-figure{font-size:var(--fs-kpi);font-variant-numeric:tabular-nums;letter-spacing:-.02em;margin-top:2px;font-weight:700;line-height:1.1}.hero-sub{color:var(--text);margin-top:4px;font-size:14px;line-height:20px}.balance-panel .panel-head{margin-bottom:4px}.balance-figure{font-size:28px}.late-line{color:var(--muted);margin-top:2px;font-size:13px;line-height:20px}.actual-line{color:var(--muted);margin-top:4px;font-size:13px;line-height:20px}.actual-line strong{color:var(--text);font-variant-numeric:tabular-nums;font-weight:500}.due-panel,.rows{flex-direction:column;display:flex}.row{min-height:var(--row-height);align-items:center;gap:12px;padding:8px 0;display:flex}.row+.row{border-top:1px solid var(--rule)}.due-row{flex-wrap:wrap;justify-content:space-between;gap:8px 12px}.due-row.is-paid{opacity:.55}.due-row-end{flex:none;align-items:center;gap:10px;display:flex}.avatar{color:#fff;border-radius:50%;flex:none;justify-content:center;align-items:center;width:36px;height:36px;font-size:13px;font-weight:600;display:flex}.avatar-upload{align-items:center;gap:16px;margin-bottom:16px;display:flex}.avatar-upload-photo{object-fit:cover;width:64px;height:64px;font-size:22px}.avatar-brand{border:1px solid var(--border);background:#fff;padding:7px}.avatar-brand svg{width:100%;height:100%}.avatar-row{align-items:center;gap:12px;min-width:0;display:flex}.row-tap{width:100%;min-width:0;color:inherit;text-align:left;font:inherit;background:0 0;border:0;align-items:center;gap:12px;padding:0;display:flex}.row-tap-text{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.row-tap-head{justify-content:space-between;align-items:baseline;gap:8px;display:flex}.row-tap-head>span:first-child{text-overflow:ellipsis;white-space:nowrap;font-size:14px;font-weight:500;overflow:hidden}.mobile-amount{flex:none;font-size:15px;font-weight:600;display:none}.quick-actions{gap:var(--gap);grid-template-columns:repeat(4,minmax(0,1fr));display:grid}.quick-action{color:var(--text);font-size:var(--fs-small);transition:transform var(--t-press) var(--ease-out);background:0 0;border:0;flex-direction:column;align-items:center;gap:8px;padding:4px 0;font-weight:500;display:flex}.quick-action:active{transform:translateY(1px)}.quick-action-icon{color:#fff;border-radius:16px;justify-content:center;align-items:center;width:48px;height:48px;display:flex}.due-name{flex-direction:column;gap:2px;min-width:0;display:flex}.due-name span{font-size:14px;font-weight:500}.due-name small{color:var(--muted);font-size:var(--fs-small);text-overflow:ellipsis;white-space:nowrap;line-height:16px;overflow:hidden}.avatar-row .due-name small{white-space:normal;text-overflow:clip;overflow:visible}.due-row .num{margin-left:auto;font-size:14px;font-weight:500}.due-total{border-top:1px solid var(--border);justify-content:space-between;align-items:center;margin-top:auto;padding-top:12px;font-size:14px;display:flex}.due-total strong{font-variant-numeric:tabular-nums;font-size:16px;font-weight:700}.micro{color:var(--muted);font-size:var(--fs-small);margin-top:12px;line-height:16px}.empty-state{border:1px dashed var(--control);border-radius:var(--radius-control);color:var(--muted);margin-bottom:20px;padding:16px;font-size:13px;line-height:20px}.kpi-strip{border:1px solid var(--border);border-radius:var(--radius-card);background:var(--surface);grid-template-columns:repeat(4,minmax(0,1fr));padding:0;display:grid}.kpi{min-width:0;padding:14px 20px}.kpi+.kpi{border-left:1px solid var(--border)}.kpi dt{color:var(--muted);font-size:var(--fs-small);line-height:16px}.kpi dd{font-variant-numeric:tabular-nums;letter-spacing:-.01em;margin-top:4px;font-size:20px;font-weight:500;line-height:1.2}.chart-panel .panel-head{align-items:baseline}.chart-key{color:var(--muted);font-size:var(--fs-small);white-space:nowrap;align-items:center;gap:6px;line-height:16px;display:inline-flex}.chart-key-mark{background:var(--chart);border-radius:1px;flex:none;width:8px;height:8px}.living-chart{grid-template-rows:180px auto;grid-template-columns:44px minmax(0,1fr);column-gap:10px;margin-top:8px;display:grid}.chart-axis{color:var(--muted);flex-direction:column;grid-area:1/1;justify-content:space-between;align-items:flex-end;font-size:11px;line-height:1;display:flex}.chart-plot{border-bottom:1px solid var(--control);grid-area:1/2;min-width:0;position:relative}.chart-grid{pointer-events:none;position:absolute;inset:0}.chart-grid span{background:var(--grid);height:1px;position:absolute;left:0;right:0}.chart-bars{grid-template-columns:repeat(10,minmax(0,1fr));align-items:end;gap:6px;padding:0 2px;display:grid;position:absolute;inset:0}.chart-bar-slot{align-items:flex-end;min-width:0;height:100%;display:flex}.chart-bar-slot.current{background:0 0}.chart-bar{background:color-mix(in srgb, var(--chart) 35%, var(--chart-track));border-radius:6px 6px 0 0;width:100%;min-height:4px}.chart-bar.current{background:var(--chart)}.chart-x{color:var(--muted);text-align:center;grid-area:2/2;grid-template-columns:repeat(10,minmax(0,1fr));gap:6px;padding:8px 2px 0;font-size:11px;line-height:1;display:grid}.chart-x span.current{color:var(--chart);font-weight:500}.table-wrap{overflow-x:auto}table{border-collapse:collapse;width:100%}th{border-bottom:1px solid var(--border);height:36px;color:var(--muted);font-size:var(--fs-small);text-align:left;white-space:nowrap;padding:0 8px;font-weight:400;line-height:16px}th:first-child,td:first-child{padding-left:0}th:last-child,td:last-child{padding-right:0}td{border-bottom:1px solid var(--rule);vertical-align:top;padding:10px 8px;font-size:14px;line-height:20px}tbody tr:last-child td{border-bottom:0}.period-table td{padding-top:10px;padding-bottom:10px}.cell-period .period-name{align-items:center;gap:6px;font-weight:500;display:flex}.cell-period small{color:var(--muted);font-size:var(--fs-small);margin-top:2px;line-height:16px;display:block}.current-dot{background:var(--chart);border-radius:50%;flex:none;width:6px;height:6px}tr.current-row{background:var(--primary-soft)}tr.current-row td:first-child{border-radius:12px 0 0 12px}tr.current-row td:last-child{border-radius:0 12px 12px 0}.cell-pay span{display:block}.cell-pay small{color:var(--muted);font-size:var(--fs-small);margin-top:2px;line-height:16px;display:block}.mobile-net,.mobile-meta{display:none}.cell-net{color:var(--muted)}.cell-living{font-weight:500}.cell-status .status-inline{justify-content:flex-end}.cell-status .actual{color:var(--muted);font-size:var(--fs-small);text-align:right;margin-top:2px;line-height:16px;display:block}.summary-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;margin-top:4px;display:grid}.summary-grid dt{color:var(--muted);font-size:var(--fs-small);line-height:16px}.summary-grid dd{font-variant-numeric:tabular-nums;letter-spacing:-.01em;margin-top:4px;font-size:22px;font-weight:500;line-height:1.2}.summary-grid .summary-date{font-size:16px;font-weight:500}.summary-panel .micro{margin-top:16px}.notice{border-radius:var(--radius-control);background:var(--pill-warning-bg);color:var(--pill-warning-ink);border:1px solid #fde68a;flex-wrap:wrap;align-items:center;gap:8px 12px;padding:10px 12px;font-size:13px;line-height:20px;display:flex}.notice .status-inline{color:var(--pill-warning-ink)}.data-table .cell-name,.data-table .cell-lender{font-weight:500}.bills-table .cell-category,.bills-table .cell-due,.debts-table .cell-finance{color:var(--muted)}.bills-table .cell-amount,.debts-table .cell-remaining{font-weight:500}.bills-table tfoot td{border-top:1px solid var(--border);border-bottom:0;padding-top:12px;padding-bottom:0;font-size:14px;font-weight:500}.bills-table tfoot td:first-child{color:var(--muted);font-weight:400}.bills-table tfoot td:last-child{font-size:16px;font-weight:700}.matrix-wrap{overflow-x:auto}.matrix-table{min-width:760px}.matrix-table th{font-size:var(--fs-small);padding:8px 5px;line-height:18px}.matrix-table td{font-size:var(--fs-small);padding:0;line-height:18px}.matrix-table th:first-child,.matrix-table td:first-child{z-index:1;background:var(--surface);text-align:left;position:sticky;left:0}.matrix-table thead th{border-bottom:1px solid var(--border);color:var(--muted);white-space:nowrap;font-weight:400}.matrix-table .row-head{color:var(--text);white-space:nowrap;font-weight:400}.matrix-table td{border-bottom:1px solid var(--rule);color:var(--muted);font-variant-numeric:tabular-nums;text-align:right;white-space:nowrap}.matrix-table td.has-value{color:var(--text)}.matrix-table th.current-col{border-top:2px solid var(--chart);color:var(--chart)}.matrix-table td.current-col{color:var(--chart);background:#f4f8fd}.matrix-table tfoot th,.matrix-table tfoot td{border-top:1px solid var(--border);border-bottom:0;padding:8px 5px;font-weight:500}.matrix-table tfoot th{color:var(--muted);font-weight:400}.matrix-table tfoot td{color:var(--text)}.matrix-table .row-total{color:var(--text);font-weight:500}.matrix-table .num{text-align:right}.matrix-cell{width:100%;min-height:34px;color:inherit;font:inherit;text-align:right;white-space:nowrap;background:0 0;border:0;justify-content:flex-end;align-items:center;gap:5px;padding:8px 5px;display:flex}.matrix-cell:hover{background:var(--raised)}.matrix-cell:focus-visible{outline-offset:-2px}.matrix-cell-static{width:100%;min-height:34px;color:var(--muted);justify-content:flex-end;align-items:center;padding:8px 5px;display:flex}.override-dot{background:var(--warning);border-radius:50%;flex:none;width:5px;height:5px}.cell-actions{text-align:right;white-space:nowrap}.row-action{min-height:32px;color:var(--muted);font-size:var(--fs-small);text-underline-offset:2px;background:0 0;border:0;padding:4px 0 4px 8px;font-weight:500;text-decoration:underline}.row-action:hover{color:var(--text)}.cell-edit{text-align:right;white-space:nowrap}.cell-paid{white-space:nowrap}.row-paid-mobile{display:none}.schedule-link{border:1px solid var(--border);background:var(--surface);height:26px;color:var(--text);white-space:nowrap;transition:background-color var(--t-hover) ease;border-radius:999px;align-items:center;padding:0 10px;font-size:12px;font-weight:500;display:inline-flex}.schedule-link:hover{background:var(--raised)}.installment-row{justify-content:space-between;gap:12px}.installment-row.is-paid{opacity:.55}.installment-tap{flex:1;min-width:0}.installment-row-end{flex:none;align-items:center;gap:8px;display:flex}.installment-form{border-top:1px solid var(--border);margin-top:16px;padding-top:16px}.icon-action{background:var(--raised);width:28px;height:28px;color:var(--muted);border:0;border-radius:50%;flex:none;justify-content:center;align-items:center;display:inline-flex}.icon-action:hover{background:var(--active);color:var(--text)}.modal{background:var(--surface);width:min(460px,100vw - 32px);max-height:calc(100dvh - 48px);color:var(--text);border:none;border-radius:24px;margin:auto;padding:24px;overflow:auto;box-shadow:0 24px 60px -16px #10184059}.modal::backdrop{-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#0a0e2080}.modal-head{justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:20px;display:flex}.modal-head h2{font-size:19px;font-weight:600;line-height:1.3}.modal-close{background:var(--raised);width:32px;height:32px;color:var(--muted);border:0;border-radius:50%;flex:none;justify-content:center;align-items:center;display:flex}.modal-close:hover{background:var(--active);color:var(--text)}.modal-context{color:var(--muted);font-size:14px;line-height:20px}.modal-form{flex-direction:column;gap:16px;display:flex}.form-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.form-grid .full{grid-column:1/-1}.modal-actions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:8px;margin-top:4px;display:flex}.modal-actions .primary{min-width:120px}@media (width<=640px){.modal-actions{flex-direction:column-reverse}.modal-actions .btn{width:100%}}.delete-row{flex-wrap:wrap;align-items:center;gap:12px;margin-top:4px;display:flex}.danger,.text-action.danger:hover{color:var(--negative)}@media (width<=640px){.modal{width:100%;max-width:100%;max-height:90dvh;padding:16px 16px calc(16px + env(safe-area-inset-bottom));border-radius:var(--radius-card) var(--radius-card) 0 0;margin:0;inset:auto 0 0}.form-grid{grid-template-columns:minmax(0,1fr)}}.debts-table .cell-lender small:not(.mobile-meta){color:var(--muted);font-size:var(--fs-small);margin-top:2px;line-height:16px;display:block}.table-total{border-top:1px solid var(--border);flex-wrap:wrap;gap:16px 48px;margin-top:16px;padding-top:16px;display:flex}.table-total div{flex-direction:column;gap:2px;display:flex}.table-total span{color:var(--muted);font-size:var(--fs-small);line-height:16px}.table-total strong{font-variant-numeric:tabular-nums;font-size:18px;font-weight:500;line-height:1.2}.text-action{min-height:44px;color:var(--muted);font-size:var(--fs-small);text-underline-offset:2px;background:0 0;border:0;padding:8px 0 8px 12px;font-weight:500;text-decoration:underline}.text-action:hover{color:var(--text)}.expense-row{justify-content:space-between}.expense-name{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.expense-name span{text-overflow:ellipsis;white-space:nowrap;font-size:14px;font-weight:500;overflow:hidden}.expense-name small{color:var(--muted);font-size:var(--fs-small);line-height:16px}.expense-row .num{font-size:14px;font-weight:500}.entry-summary{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px 24px;display:flex}.entry-figures{gap:32px;display:flex}.entry-figures dt{color:var(--muted);font-size:var(--fs-small);line-height:16px}.entry-figures dd{font-variant-numeric:tabular-nums;margin-top:2px;font-size:20px;font-weight:500;line-height:1.2}.entry-form{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;display:grid}.field{flex-direction:column;gap:8px;min-width:0;display:flex}.select-field,.date-field{position:relative}.select-trigger,.date-trigger{border:1px solid var(--border);border-radius:var(--radius-control);background:var(--raised);width:100%;height:46px;color:var(--text);text-align:left;transition:border-color var(--t-hover) ease, box-shadow var(--t-hover) ease;justify-content:space-between;align-items:center;gap:8px;padding:0 14px;font-size:16px;display:flex}.date-trigger{color:var(--muted);justify-content:flex-start}.date-trigger span{color:var(--text)}.select-trigger[aria-expanded=true],.select-trigger:focus-visible,.date-trigger:focus-visible{border-color:var(--primary);background:var(--surface);box-shadow:0 0 0 3px var(--primary-soft);outline:none}.dropdown-backdrop{z-index:40;cursor:default;background:0 0;border:0;position:fixed;inset:0}.select-list{z-index:41;border:1px solid var(--border);border-radius:var(--radius-control);background:var(--surface);max-height:240px;padding:6px;position:absolute;top:calc(100% + 6px);left:0;right:0;overflow-y:auto;box-shadow:0 16px 40px -12px #10184040}.select-option{width:100%;color:var(--text);text-align:left;background:0 0;border:0;border-radius:8px;padding:10px 12px;font-size:14px;display:block}.select-option:hover{background:var(--raised)}.select-option.active{background:var(--primary-soft);color:var(--primary);font-weight:500}.date-popover{z-index:41;border:1px solid var(--border);background:var(--surface);border-radius:16px;width:280px;max-width:calc(100vw - 48px);padding:16px;position:absolute;top:calc(100% + 6px);left:0;box-shadow:0 16px 40px -12px #10184040}.date-popover-head{justify-content:space-between;align-items:center;margin-bottom:12px;font-size:14px;display:flex}.date-nav{background:var(--raised);width:28px;height:28px;color:var(--muted);border:0;border-radius:50%;flex:none;justify-content:center;align-items:center;display:flex}.date-nav:hover{background:var(--active)}.date-weekdays{color:var(--muted);text-align:center;grid-template-columns:repeat(7,minmax(0,1fr));margin-bottom:4px;font-size:11px;display:grid}.date-grid{grid-template-columns:repeat(7,minmax(0,1fr));gap:2px;display:grid}.date-cell{height:32px;color:var(--text);font-variant-numeric:tabular-nums;background:0 0;border:0;border-radius:50%;justify-content:center;align-items:center;font-size:13px;display:flex}.date-cell:hover:not(:disabled){background:var(--raised)}.date-cell.selected{background:var(--primary);color:#fff;font-weight:600}.date-cell:disabled{color:var(--control);cursor:not-allowed}.checkbox-row{align-items:center;gap:8px;font-size:14px;font-weight:500;display:flex}.checkbox-row input[type=checkbox]{width:18px;height:18px;accent-color:var(--primary)}.field label{color:var(--muted);font-size:13px;font-weight:500}.field-hint{color:var(--muted);margin-top:-2px;font-size:12px;line-height:16px}.field input,.field select{border:1px solid var(--border);border-radius:var(--radius-control);background:var(--raised);width:100%;height:46px;transition:border-color var(--t-hover) ease, box-shadow var(--t-hover) ease;padding:0 14px;font-size:16px}.field input:focus,.field select:focus{border-color:var(--primary);background:var(--surface);box-shadow:0 0 0 3px var(--primary-soft);outline:none}.amount-field,.description-field{grid-column:1/-1}.amount-wrap{border:1px solid var(--control);border-radius:var(--radius-control);background:var(--surface);align-items:center;gap:8px;height:48px;padding:0 12px;display:flex}.amount-wrap span{color:var(--muted);font-size:16px}.amount-wrap input{font-variant-numeric:tabular-nums;background:0 0;border:0;outline:none;height:46px;padding:0;font-size:20px;font-weight:500}.amount-wrap:focus-within{outline:2px solid var(--chart);outline-offset:1px}.form-error{color:var(--negative);grid-column:1/-1;font-size:13px;line-height:20px}.form-info{color:var(--positive);grid-column:1/-1;font-size:13px;line-height:20px}.form-actions{grid-column:1/-1;justify-content:space-between;align-items:center;gap:16px;margin-top:4px;display:flex}.saved{min-height:16px;color:var(--positive);font-size:var(--fs-small);align-items:center;gap:4px;line-height:16px;display:flex}.settings{flex-direction:column;display:flex}.settings-row{border-bottom:1px solid var(--border);grid-template-columns:minmax(0,380px) minmax(0,1fr);gap:32px;padding:24px 0;display:grid}.settings-row:first-child{padding-top:0}.settings-row:last-child{border-bottom:0;padding-bottom:0}.settings-label h2{font-size:var(--fs-section);margin-bottom:4px;font-weight:500}.settings-label p{max-width:36ch;color:var(--muted);font-size:13px;line-height:20px}.settings-panel{border-radius:var(--radius-card);background:var(--raised);padding:16px 20px}.settings-list div{border-bottom:1px solid var(--rule);justify-content:space-between;align-items:baseline;gap:24px;padding:10px 0;display:flex}.settings-list div:last-child{border-bottom:0}.settings-list dt{color:var(--muted);font-size:14px}.settings-list dd{font-variant-numeric:tabular-nums;text-align:right;font-size:14px;font-weight:500}.holiday-grid{grid-template-columns:repeat(12,minmax(0,1fr));gap:8px;display:grid}.holiday{flex-direction:column;gap:2px;display:flex}.holiday span{color:var(--muted);font-size:11px;line-height:16px}.holiday strong{font-variant-numeric:tabular-nums;font-size:16px;font-weight:500;line-height:1.2}.category-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:4px 24px;font-size:14px;line-height:20px;display:grid}.category-list li{border-bottom:1px solid var(--rule);justify-content:space-between;align-items:center;gap:8px;padding:6px 0;display:flex}.category-form{gap:8px;margin-top:16px;display:flex}.category-form input{border:1px solid var(--border);border-radius:var(--radius-control);background:var(--raised);min-width:0;height:44px;transition:border-color var(--t-hover) ease, box-shadow var(--t-hover) ease;flex:1;padding:0 14px;font-size:14px}.category-form input:focus{border-color:var(--primary);background:var(--surface);box-shadow:0 0 0 3px var(--primary-soft);outline:none}.settings-edit{margin-top:16px}.tabbar,.catat-dock,.catat-fab{display:none}.cycle-head{color:var(--muted);font-size:var(--fs-small);justify-content:space-between;align-items:baseline;gap:12px;margin-top:20px;line-height:16px;display:flex}.cycle-head .muted{font-variant-numeric:tabular-nums;white-space:nowrap}.cycle{height:76px;margin-top:6px;position:relative}.cycle-track{background:var(--border);height:2px;position:absolute;top:39px;left:0;right:0}.cycle-dot{border:1.5px solid var(--text);background:var(--surface);border-radius:50%;width:6px;height:6px;position:absolute;top:50%;transform:translate(-50%,-50%)}.cycle-dot.at-start{left:0;transform:translateY(-50%)}.cycle-dot.at-end{left:auto;right:0;transform:translateY(-50%)}.cycle-pay{border:2px solid var(--surface);background:var(--chart);border-radius:50%;width:10px;height:10px;position:absolute;top:50%;transform:translate(-50%,-50%)}.cycle-today{background:var(--text);width:2px;height:16px;position:absolute;top:50%;transform:translate(-50%,-50%)}.cycle-label{font-size:var(--fs-small);white-space:nowrap;flex-direction:column;gap:1px;line-height:16px;display:flex;position:absolute;transform:translate(-50%)}.cycle-label strong{font-weight:500}.cycle-label small{color:var(--muted);font-size:11px;line-height:14px}.cycle-label.at-start{top:0;left:0;transform:none}.cycle-label.at-end{text-align:right;top:0;left:auto;right:0;transform:none}.cycle-label-pay{color:var(--chart);top:0}.cycle-label-pay small{color:var(--muted)}.cycle-today-label{top:48px}.panel.hero .cycle-head{color:#ffffffc7}.panel.hero .cycle-track{background:#ffffff4d}.panel.hero .cycle-dot{background:0 0;border-color:#fff}.panel.hero .cycle-pay{border-color:var(--primary);background:#fff}.panel.hero .cycle-today{background:#fff}.panel.hero .cycle-label,.panel.hero .cycle-label-pay{color:#fff}.panel.hero .cycle-label small,.panel.hero .cycle-label-pay small{color:#ffffffb8}@media (width<=980px){.overview-row{grid-template-columns:minmax(0,1fr)}.settings-row{grid-template-columns:minmax(0,1fr);gap:12px}.settings-label p{max-width:none}}@media (width<=860px){.topbar-inner{height:48px;padding:0 16px}.desktop-nav,.screen-action{display:none}.topbar-action{display:inline-flex}.page{padding:20px 16px calc(96px + env(safe-area-inset-bottom))}.screen{gap:20px}.bottom-dock{z-index:20;border-top:1px solid var(--border);background:var(--surface);position:fixed;bottom:0;left:0;right:0}.catat-dock{right:20px;bottom:calc(96px + env(safe-area-inset-bottom));z-index:21;display:block;position:fixed}.tabbar{padding:10px 8px calc(env(safe-area-inset-bottom) + 12px);background:var(--surface);grid-template-columns:repeat(4,minmax(0,1fr));display:grid;position:static}.tabbar button{border-radius:var(--radius-control);min-height:52px;color:var(--muted);transition:color var(--t-hover) ease;background:0 0;border:0;flex-direction:column;justify-content:center;align-items:center;gap:4px;padding:4px 2px;font-size:11px;line-height:12px;display:flex}.tabbar button[aria-current=page]{color:var(--primary)}.tabbar button svg{width:20px;height:20px}.catat-fab{background:var(--primary);width:56px;height:56px;color:var(--primary-ink);border:0;border-radius:50%;justify-content:center;align-items:center;padding:0;display:flex;box-shadow:0 12px 24px -8px #2a42c98c}.catat-fab:active{transform:translateY(1px)}.tab-label{font-size:11px;line-height:12px}}@media (width<=700px){.panel{padding:16px}.kpi-strip{grid-template-columns:repeat(2,minmax(0,1fr))}.kpi{padding:12px 16px}.kpi+.kpi{border-left:0}.kpi:nth-child(n+3){border-top:1px solid var(--border)}.kpi:nth-child(2n){border-left:1px solid var(--border)}.living-chart{grid-template-rows:160px auto}.summary-grid{grid-template-columns:minmax(0,1fr);gap:16px}.entry-figures{gap:24px}.entry-form{grid-template-columns:minmax(0,1fr);gap:12px}.field{gap:6px}.entry-panel .panel-head{margin-bottom:12px}.period-table thead,.data-table thead{display:none}.period-table,.period-table tbody,.data-table,.data-table tbody{display:block}.period-table tbody tr{border-bottom:1px solid var(--rule);grid-template-columns:minmax(0,1fr) auto auto;grid-template-areas:"period living living""pay status edit";gap:8px 10px;padding:16px 14px;display:grid}.period-table .cell-edit{grid-area:edit;align-self:center}.period-table tbody tr:last-child{border-bottom:0}.period-table tbody tr.current-row{border-bottom-color:#0000;border-radius:14px}.period-table tbody td{border:0;padding:0;font-size:14px;line-height:20px;display:block}.period-table .cell-period{grid-area:period}.period-table .cell-living{text-align:right;grid-area:living;font-weight:500}.period-table .cell-pay{color:var(--muted);font-size:var(--fs-small);flex-wrap:wrap;grid-area:pay;gap:2px 6px;margin-top:2px;line-height:16px;display:flex}.period-table .cell-pay span{display:inline}.period-table .cell-pay .late-note{display:none}.period-table .mobile-net{margin-top:0;display:inline}.period-table .cell-net{display:none}.period-table .cell-status{text-align:right;grid-area:status;margin-top:2px}.period-table .cell-status .status-inline{justify-content:flex-end}.period-table .cell-status .actual{text-align:right}.bills-table tbody tr{border-bottom:1px solid var(--rule);padding:14px;display:block}.bills-table tbody tr:last-child{border-bottom:0}.bills-table tbody td{border:0;padding:0;font-size:14px;line-height:20px;display:none}.bills-table .cell-name{display:block}.mobile-amount{display:inline}.bills-table .mobile-meta{color:var(--muted);font-size:var(--fs-small);margin-top:2px;font-weight:400;line-height:16px;display:block}.bills-table .row-paid-mobile,.debts-table .row-paid-mobile{margin-top:8px;display:block}.bills-table tfoot{display:block}.bills-table tfoot tr{border-top:1px solid var(--border);border-bottom:0;justify-content:space-between;align-items:baseline;width:100%;padding:12px 14px 0;display:flex}.bills-table tfoot td{border:0;padding:0;display:block}.bills-table tfoot .cell-edit{display:none}.bills-table tfoot td:first-child{font-size:var(--fs-small)}.bills-table tfoot td.num{font-size:16px;font-weight:700}.debts-table tbody tr{border-bottom:1px solid var(--rule);padding:14px;display:block}.debts-table tbody tr:last-child{border-bottom:0}.debts-table tbody td{border:0;padding:0;font-size:14px;line-height:20px;display:none}.debts-table .cell-lender{display:block}.debts-table .mobile-meta{color:var(--muted);font-size:var(--fs-small);margin-top:2px;font-weight:400;line-height:16px;display:block}.entry-form{grid-template-columns:minmax(0,1fr)}.amount-field,.description-field{grid-column:auto}.form-actions{flex-direction:column;align-items:stretch}.form-actions .btn{width:100%;height:44px}.field input,.field select{height:44px}.holiday-grid{grid-template-columns:repeat(6,minmax(0,1fr));gap:8px 4px}.category-list{grid-template-columns:minmax(0,1fr)}.settings-panel{padding:14px 16px}.table-total{gap:12px 32px}}@media (width<=480px){.title-row h1{font-size:22px}.hero-figure{font-size:32px}.cycle-label small{font-size:11px}.summary-grid dd{font-size:20px}.entry-figures dd{font-size:18px}}.skeleton{background:linear-gradient(90deg, var(--raised) 25%, var(--active) 37%, var(--raised) 63%);background-size:400% 100%;animation:1.4s infinite skeleton-shimmer;display:block}.skeleton-row{align-items:center;gap:12px;padding:14px 0;display:flex}.skeleton-row+.skeleton-row{border-top:1px solid var(--rule)}.skeleton-lines{flex-direction:column;flex:1;gap:6px;min-width:0;display:flex}@keyframes skeleton-shimmer{0%{background-position:100%}to{background-position:0}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation:none!important}}
