:root{color-scheme:dark;--bg: #232327;--surface: #303034;--surface-2: #3B3B40;--press: rgb(237 234 239 / .08);--text: #EDEAEF;--text-2: #CFCED8;--text-3: #A4A3AC;--text-4: #595962;--divider: #4C4C53;--outline: #44444C;--outline-strong: #9898A2;--scrim: rgb(0 0 0 / .45);--expense: #55A7E0;--income: #00B298;--danger: #F44336;--expense-soft: #1E3A52;--income-soft: #1F3534;--danger-soft: #45231F;--on-danger-soft: #FFB4AB;--on-income-soft: #7FE0C9;--on-color: #FFFFFF;--inverse: #E6E1E5;--on-inverse: #313033;--accent: #009688;--on-accent: #FFFFFF;--accent-text: #9BDBD0;--accent-deep: #004B43;--accent-soft: #455E5A;--on-accent-soft: #D9F0EA;--reserve-bg: #1F2623;--reserve-surface: #2B3430;--reserve-surface-2: #39453F;--reserve-accent: #2E8B6A;--reserve-on-accent: #FFFFFF;--reserve-accent-text: #8FE3C0;--reserve-accent-deep: #0A2E20;--reserve-accent-soft: #2F4A3E;--reserve-on-accent-soft: #D8F4E8;--r-sm: 8px;--r-md: 12px;--r-lg: 16px;--r-xl: 28px;--r-full: 999px;--font: Roboto, "Segoe UI", system-ui, -apple-system, Arial, sans-serif;--fs-12: 12px;--fs-14: 14px;--fs-16: 16px;--fs-22: 22px;--fs-28: 28px;--fs-34: 34px;--fw-light: 300;--fw-regular: 400;--fw-medium: 500;--fw-bold: 700;--s-1: 4px;--s-2: 8px;--s-3: 12px;--s-4: 16px;--s-5: 24px;--s-6: 32px;--h-control: 44px;--h-chip: 32px;--h-row: 56px;--h-nav: 72px;--icon-row: 40px;--ease: cubic-bezier(.2, 0, 0, 1);--t-fast: .15s;--t-base: .22s}*,:before,:after{box-sizing:border-box;border:0 solid currentColor}html{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;background:var(--bg)}body{margin:0;line-height:inherit}h1,h2,h3,h4,h5,h6{margin:0;font-size:inherit;font-weight:inherit}p,blockquote,figure,dl,dd,pre{margin:0}ol,ul,menu{margin:0;padding:0;list-style:none}b,strong{font-weight:bolder}small{font-size:80%}img,svg,video,canvas{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}button,input,optgroup,select,textarea{margin:0;padding:0;font-family:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit}button,select{text-transform:none}button,[type=button],[type=reset],[type=submit]{-webkit-appearance:button;background-color:transparent;background-image:none}input::placeholder,textarea::placeholder{opacity:1;color:var(--text-3)}textarea{resize:vertical}button,[role=button]{cursor:pointer}:disabled{cursor:default}[hidden]{display:none}body{min-width:320px;min-height:100dvh;color:var(--text);background:var(--bg);font-family:var(--font);font-size:var(--fs-16);line-height:1.5;-webkit-font-smoothing:antialiased}html,body{touch-action:pan-x pan-y}button:disabled{cursor:not-allowed;opacity:.5}button,a,input,select{-webkit-tap-highlight-color:transparent}:focus-visible{outline:2px solid var(--accent-text);outline-offset:2px}input[type=date],input[type=datetime-local],input[type=month]{color-scheme:dark}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--s-2);min-height:var(--h-control);padding:0 var(--s-5);border:0;border-radius:var(--r-full);background:transparent;color:var(--accent-text);font-family:var(--font);font-size:var(--fs-14);font-weight:var(--fw-medium);line-height:1;letter-spacing:.01em;white-space:nowrap;transition:background-color var(--t-fast) var(--ease),transform var(--t-fast) var(--ease),filter var(--t-fast) var(--ease)}.btn:active:not(:disabled){transform:scale(.97)}.btn-filled{background:var(--accent-text);color:var(--accent-deep)}.btn-filled:hover:not(:disabled){filter:brightness(1.06)}.btn-tonal{background:var(--accent-soft);color:var(--on-accent-soft)}.btn-tonal:hover:not(:disabled){filter:brightness(1.1)}.btn-outline{box-shadow:inset 0 0 0 1px var(--text-4)}.btn-outline:hover:not(:disabled),.btn-text:hover:not(:disabled){background:var(--press)}.btn-text{padding:0 var(--s-3)}.btn-danger{color:var(--danger)}.btn-danger:hover:not(:disabled){background:var(--danger-soft)}.btn-danger-filled{background:var(--danger);color:var(--on-color)}.btn-block{width:100%}.btn-compact{min-height:36px;padding:0 var(--s-4)}.btn-back{padding:0 var(--s-3) 0 var(--s-1);color:var(--text-2);font-size:var(--fs-16);font-weight:var(--fw-regular)}.btn-icon{display:inline-flex;align-items:center;justify-content:center;flex:0 0 var(--h-control);width:var(--h-control);height:var(--h-control);padding:0;border:0;border-radius:var(--r-full);background:transparent;color:var(--text-2);transition:background-color var(--t-fast) var(--ease),color var(--t-fast) var(--ease)}.btn-icon:hover:not(:disabled){background:var(--press)}.btn-icon.is-active{background:var(--accent-soft);color:var(--on-accent-soft)}.action{display:flex;flex-direction:column;align-items:center;gap:var(--s-2);padding:var(--s-1) var(--s-3);border:0;background:transparent;color:var(--text-2);font-size:var(--fs-12)}.action-circle{display:grid;place-items:center;width:56px;height:56px;border-radius:var(--r-full);background:var(--surface-2);color:var(--text);transition:filter var(--t-fast) var(--ease)}.action:hover .action-circle{filter:brightness(1.15)}.action:active .action-circle{transform:scale(.95)}.action.is-danger{color:var(--danger)}.action.is-danger .action-circle{background:var(--danger-soft);color:var(--danger)}.seg{display:grid;grid-auto-columns:1fr;grid-auto-flow:column;gap:var(--s-1);padding:var(--s-1);border-radius:var(--r-md);background:var(--surface)}.seg>button{min-height:40px;padding:0 var(--s-2);border:0;border-radius:var(--r-sm);background:transparent;color:var(--text-3);font-size:var(--fs-14);font-weight:var(--fw-medium);line-height:1;transition:background-color var(--t-fast) var(--ease),color var(--t-fast) var(--ease)}.seg>button:hover{color:var(--text)}.sheet .seg,.card .seg,.dialog .seg{background:var(--bg)}.seg>button.is-active{background:var(--accent-soft);color:var(--on-accent-soft)}.seg>button.is-active[data-type=expense]{background:var(--expense);color:var(--on-color)}.seg>button.is-active[data-type=income]{background:var(--income);color:var(--on-color)}.seg>button.is-active[data-type=transfer]{background:var(--accent);color:var(--on-accent)}.seg>button:disabled{color:var(--text-4);cursor:default}.seg>button:disabled:hover{color:var(--text-4);background:transparent}.chips{display:flex;gap:var(--s-2);overflow-x:auto;scrollbar-width:none}.chips::-webkit-scrollbar{display:none}.chips.is-wrap{flex-wrap:wrap;justify-content:center;overflow:visible}.chip{flex:0 0 auto;display:inline-flex;align-items:center;gap:6px;min-height:var(--h-chip);padding:0 var(--s-3);border:0;border-radius:var(--r-sm);box-shadow:inset 0 0 0 1px var(--text-4);background:transparent;color:var(--text-2);font-size:var(--fs-14);font-weight:var(--fw-medium);line-height:1;white-space:nowrap;transition:background-color var(--t-fast) var(--ease)}.chip.is-active{box-shadow:none;background:var(--accent-soft);color:var(--on-accent-soft)}.chip.is-colored{box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--chip-color) 55%,transparent);color:var(--chip-color)}.chip.is-colored.is-active{background:color-mix(in srgb,var(--chip-color) 22%,var(--surface));color:var(--on-color);--glyph-color: var(--on-color)}.field{display:flex;flex-direction:column;gap:6px;min-width:0}.field>span{color:var(--text-3);font-size:var(--fs-12)}.input{width:100%;min-width:0;min-height:var(--h-control);padding:0 var(--s-3);border:0;border-radius:var(--r-sm);outline:0;box-shadow:inset 0 0 0 1px var(--text-4);background:transparent;color:var(--text);font-size:var(--fs-16);line-height:1.2;transition:box-shadow var(--t-fast) var(--ease)}.input:focus{box-shadow:inset 0 0 0 2px var(--accent-text)}.input.is-large{min-height:60px;font-size:var(--fs-34);font-weight:var(--fw-regular)}select.input{appearance:none;padding-right:36px}.select-wrap{position:relative;display:block;min-width:0}.select-wrap>svg{position:absolute;top:50%;right:10px;transform:translateY(-50%);color:var(--text-2);pointer-events:none}option,optgroup{background:var(--surface);color:var(--text)}.input-affix{display:flex;align-items:center;gap:var(--s-2);min-height:var(--h-control);padding:0 var(--s-3);border-radius:var(--r-sm);box-shadow:inset 0 0 0 1px var(--text-4);transition:box-shadow var(--t-fast) var(--ease)}.input-affix:focus-within{box-shadow:inset 0 0 0 2px var(--accent-text)}.input-affix>input{flex:1;min-width:0;height:100%;min-height:40px;padding:0;border:0;outline:0;background:transparent;color:var(--text);font-size:var(--fs-16)}.input-affix>span{flex:0 0 auto;color:var(--text-3);font-size:var(--fs-14)}.input-affix.is-large{min-height:60px}.input-affix.is-large>input{font-size:var(--fs-34)}.input-affix.is-large>span{font-size:var(--fs-22)}.search{display:flex;align-items:center;gap:var(--s-3);min-height:48px;padding:0 var(--s-4);border-radius:var(--r-full);background:var(--surface);color:var(--text-2)}.search input{flex:1;min-width:0;height:46px;padding:0;border:0;outline:0;background:transparent;color:var(--text);font-size:var(--fs-16)}.switch{position:relative;flex:0 0 auto;width:52px;height:32px}.switch input{position:absolute;inset:0;z-index:1;width:100%;height:100%;margin:0;opacity:0;cursor:pointer}.switch i{position:absolute;inset:0;border-radius:var(--r-full);background:var(--surface-2);box-shadow:inset 0 0 0 2px var(--outline-strong);transition:background-color var(--t-fast) var(--ease)}.switch i:after{content:"";position:absolute;top:8px;left:8px;width:16px;height:16px;border-radius:var(--r-full);background:var(--outline-strong);transition:all var(--t-fast) var(--ease)}.switch input:checked+i{background:var(--accent-text);box-shadow:none}.switch input:checked+i:after{top:4px;left:24px;width:24px;height:24px;background:var(--accent-deep)}.switch input:focus-visible+i{outline:2px solid var(--accent-text);outline-offset:2px}.card{padding:var(--s-4);border-radius:var(--r-md);background:var(--surface)}.card-label{display:block;color:var(--text-3);font-size:var(--fs-12)}.card-value{display:block;margin-top:var(--s-1);overflow-wrap:anywhere;font-size:var(--fs-22);font-weight:var(--fw-regular);line-height:1.25}.section-title{display:flex;align-items:center;justify-content:space-between;gap:var(--s-3);min-height:44px;padding:var(--s-2) var(--s-4) var(--s-1);color:var(--accent-text);font-size:var(--fs-16);font-weight:var(--fw-medium)}.section-title>small,.section-title>span{color:var(--text-3);font-size:var(--fs-12);font-weight:var(--fw-regular)}.section-title>strong{color:var(--text);font-size:var(--fs-14);font-weight:var(--fw-regular)}.section-title>.btn{margin-right:calc(var(--s-3) * -1);min-height:36px}.list{display:flex;flex-direction:column}.row{display:flex;align-items:center;gap:var(--s-4);width:100%;min-height:var(--h-row);padding:var(--s-2) var(--s-4);border:0;background:transparent;color:var(--text);text-align:left;transition:background-color var(--t-fast) var(--ease)}button.row:hover,[role=button].row:hover,label.row:hover{background:var(--press)}.row-icon{display:inline-flex;flex:0 0 auto;color:var(--text-2)}.row-main{flex:1;min-width:0}.row-main>strong,.row-main>small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.row-main>strong{font-size:var(--fs-16);font-weight:var(--fw-regular);line-height:1.35}.row-main>small{margin-top:2px;color:var(--text-3);font-size:var(--fs-14);line-height:1.3}.row-main>small.is-accent{color:var(--accent-text)}.row-trail{flex:0 0 auto;max-width:48%;text-align:right;font-size:var(--fs-16);line-height:1.35}.row-trail>strong{display:block;overflow-wrap:anywhere;font-weight:var(--fw-regular)}.row-trail>small{display:block;margin-top:2px;color:var(--text-3);font-size:var(--fs-12)}.row-chevron{flex:0 0 auto;color:var(--text-3)}.row.is-danger,.row.is-danger .row-icon{color:var(--danger)}.row.is-accent,.row.is-accent .row-icon{color:var(--accent-text)}.row.is-archived{opacity:.55}.divider{height:1px;margin:var(--s-2) 0;background:var(--divider)}.progress{overflow:hidden;width:100%;height:4px;border-radius:var(--r-full);background:var(--surface-2)}.progress>i{display:block;height:100%;border-radius:inherit;background:var(--accent);transition:width var(--t-base) var(--ease)}.scrim{position:fixed;inset:0;z-index:80;display:flex;align-items:flex-end;justify-content:center;background:var(--scrim);animation:fade-in var(--t-base) var(--ease)}.scrim.is-center{align-items:center;padding:var(--s-4)}.sheet{display:flex;flex-direction:column;width:100%;max-width:100%;max-height:90dvh;overflow-y:auto;overscroll-behavior:contain;padding:0 var(--s-4) calc(var(--s-4) + env(safe-area-inset-bottom));border-radius:var(--r-xl) var(--r-xl) 0 0;background:var(--surface);color:var(--text);animation:sheet-up var(--t-base) var(--ease)}.sheet-handle{display:block;flex:0 0 auto;width:32px;height:4px;margin:var(--s-3) auto var(--s-2);padding:0;border:0;border-radius:var(--r-full);background:var(--text-4)}.sheet-header{display:flex;align-items:center;justify-content:space-between;gap:var(--s-2);margin-right:calc(var(--s-2) * -1)}.sheet-title{padding:var(--s-2) var(--s-2) var(--s-3);font-size:var(--fs-22);font-weight:var(--fw-regular);line-height:1.25}.sheet-header .sheet-title{padding-bottom:var(--s-2)}.sheet-body{padding:var(--s-2) 0 0}.sheet-actions{display:flex;justify-content:space-around;padding-top:var(--s-4)}.dialog{width:min(380px,100%);padding:var(--s-5);border-radius:var(--r-xl);background:var(--surface);color:var(--text);animation:dialog-in var(--t-base) var(--ease)}.dialog h2{font-size:var(--fs-22);font-weight:var(--fw-regular);line-height:1.25}.dialog p{margin-top:var(--s-3);color:var(--text-3);font-size:var(--fs-14)}.dialog-actions{display:flex;justify-content:flex-end;gap:var(--s-2);margin-top:var(--s-5)}@keyframes fade-in{0%{opacity:0}}@keyframes sheet-up{0%{transform:translateY(40px);opacity:.5}}@keyframes dialog-in{0%{transform:scale(.94);opacity:0}}@media(min-width:560px){.scrim>.sheet{max-width:430px}.scrim.is-modal{align-items:center;padding:var(--s-5)}.scrim.is-modal>.sheet{max-width:520px;border-radius:var(--r-xl)}.scrim.is-modal>.sheet.is-wide{max-width:640px}}.menu{position:absolute;top:44px;right:0;z-index:10;min-width:200px;overflow:hidden;padding:var(--s-2) 0;border-radius:var(--r-sm);background:var(--surface-2);box-shadow:0 6px 20px var(--scrim)}.menu>button{display:block;width:100%;min-height:48px;padding:0 var(--s-4);border:0;background:transparent;color:var(--text);font-size:var(--fs-16);text-align:left}.menu>button:hover{background:var(--press)}.menu>button.is-danger{color:var(--danger)}.tabs{display:grid;grid-auto-columns:1fr;grid-auto-flow:column;border-bottom:1px solid var(--divider)}.tabs>button,.tabs>span{min-height:48px;padding:0 var(--s-3);border:0;border-bottom:3px solid transparent;background:transparent;color:var(--text-3);font-size:var(--fs-14);font-weight:var(--fw-medium);display:grid;place-items:center}.tabs>.is-active{border-bottom-color:var(--accent-text);color:var(--accent-text)}.option{display:flex;align-items:center;justify-content:space-between;width:100%;min-height:52px;padding:0 var(--s-2);border:0;border-radius:var(--r-sm);background:transparent;color:var(--text);font-size:var(--fs-16);text-align:left}.option:hover{background:var(--press)}.option.is-active{color:var(--accent-text)}.banner{padding:var(--s-3) var(--s-4);border-radius:var(--r-md);background:var(--accent-soft);color:var(--on-accent-soft);font-size:var(--fs-14);line-height:1.4}.banner.is-error{background:var(--danger-soft);color:var(--on-danger-soft)}.banner.is-success{background:var(--income-soft);color:var(--on-income-soft)}.error-text{display:block;color:var(--danger);font-size:var(--fs-12)}.confirm{padding:var(--s-4);border-radius:var(--r-md);background:var(--danger-soft);text-align:center}.confirm p{color:var(--text);font-size:var(--fs-14)}.confirm-actions{display:flex;justify-content:center;gap:var(--s-2);margin-top:var(--s-3)}.toast{position:fixed;left:50%;bottom:calc(var(--h-nav) + var(--s-4) + env(safe-area-inset-bottom));z-index:90;padding:var(--s-3) var(--s-5);border-radius:var(--r-sm);background:var(--inverse);color:var(--on-inverse);font-size:var(--fs-14);white-space:nowrap;pointer-events:none;animation:toast-life 2.2s var(--ease) forwards}@keyframes toast-life{0%{opacity:0;transform:translate(-50%,12px)}12%,80%{opacity:1;transform:translate(-50%)}to{opacity:0;transform:translate(-50%)}}.empty{display:flex;flex-direction:column;align-items:center;padding:var(--s-6) var(--s-5);text-align:center}.empty-icon{margin-bottom:var(--s-3);color:var(--text-4)}.empty h3{font-size:var(--fs-16);font-weight:var(--fw-medium)}.empty p{max-width:340px;margin:6px 0 var(--s-4);color:var(--text-3);font-size:var(--fs-14)}.spinner{width:36px;height:36px;border:3px solid var(--surface-2);border-top-color:var(--accent-text);border-radius:var(--r-full);animation:spin .75s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.drag-handle{display:grid;place-items:center;z-index:2;width:var(--h-control);height:var(--h-control);color:var(--text-3);cursor:grab;touch-action:none;user-select:none;-webkit-user-select:none}.drag-handle:active{cursor:grabbing}.drop-label{z-index:3;padding:var(--s-1) var(--s-2);border-radius:var(--r-full);background:var(--accent-text);color:var(--accent-deep);font-size:var(--fs-12);font-weight:var(--fw-medium);line-height:1.2;white-space:nowrap;pointer-events:none}.drag-ghost{position:fixed;z-index:80;margin:0;pointer-events:none;will-change:transform}.drag-ghost.is-dropping{transition:transform var(--t-fast) var(--ease)}.drag-ghost .drag-handle{display:none}@media(prefers-reduced-motion:reduce){.drag-ghost.is-dropping{transition:none}}.quick-category-grid{position:relative}.move-arrows{position:absolute;inset:0;z-index:30;pointer-events:none}.move-arrow{position:absolute;display:grid;place-items:center;width:var(--h-chip);height:var(--h-chip);padding:0;border:0;border-radius:var(--r-full);background:var(--accent-text);color:var(--accent-deep);box-shadow:0 0 0 1px var(--outline);transform:translate(-50%,-50%);pointer-events:auto;cursor:pointer;touch-action:manipulation;-webkit-tap-highlight-color:transparent}.move-arrow:active:not(:disabled){filter:brightness(1.06)}.move-arrow.is-disabled,.move-arrow:disabled{background:var(--surface-2);color:var(--text-4);box-shadow:0 0 0 1px var(--divider);cursor:default}.move-ok{position:fixed;right:var(--s-4);bottom:calc(var(--h-nav) + var(--s-4));z-index:40}.save-bar{position:fixed;left:max(var(--s-3),calc(50% - 215px + var(--s-3)));right:max(var(--s-3),calc(50% - 215px + var(--s-3)));bottom:calc(var(--s-3) + env(safe-area-inset-bottom));z-index:40;display:flex}.trash-select-bar{position:fixed;left:max(var(--s-3),calc(50% - 215px + var(--s-3)));right:max(var(--s-3),calc(50% - 215px + var(--s-3)));bottom:calc(var(--h-nav) + var(--s-3) + env(safe-area-inset-bottom));z-index:40;display:flex;gap:var(--s-2);padding:var(--s-2);border:1px solid var(--divider);border-radius:var(--r-lg);background:var(--surface)}.trash-select-bar>.btn{flex:1;padding:0 var(--s-3)}.list.flat.has-select-bar{padding-bottom:calc(72px + var(--s-3) + env(safe-area-inset-bottom))}.trash-check{width:var(--icon-row);height:var(--icon-row);flex:0 0 var(--icon-row);display:grid;place-items:center;border:2px solid var(--outline-strong);border-radius:var(--r-full);color:transparent}.row.is-selected .trash-check{background:var(--accent-text);border-color:var(--accent-text);color:var(--accent-deep)}.fab{position:fixed;right:max(var(--s-4),calc(50% - 215px + var(--s-4)));bottom:calc(var(--h-nav) + var(--s-4) + env(safe-area-inset-bottom));z-index:30;width:calc(var(--h-control) + var(--s-4));height:calc(var(--h-control) + var(--s-4));border:0;border-radius:var(--r-full);background:var(--accent-text);color:var(--accent-deep);display:grid;place-items:center;box-shadow:0 var(--s-2) var(--s-4) var(--scrim);transition:transform var(--t-fast) var(--ease),filter var(--t-fast) var(--ease)}.fab:active{transform:scale(.95);filter:brightness(1.06)}.finance-shell{min-height:100dvh;max-width:430px;margin:0 auto;background:var(--bg)}.app-column{min-width:0;min-height:100dvh}.desktop-sidebar,.desktop-title{display:none}.app-header{position:sticky;top:0;z-index:20;padding:calc(var(--s-2) + env(safe-area-inset-top)) var(--s-2) var(--s-2);background:var(--surface);color:var(--text)}.app-header-top{display:flex;align-items:center;gap:var(--s-1)}.mobile-title{display:flex;flex:1;align-items:center;justify-content:space-between;gap:var(--s-2);min-width:0;min-height:var(--h-control);padding-left:var(--s-1)}.mobile-title>span{overflow:hidden;font-size:var(--fs-22);font-weight:var(--fw-regular);text-overflow:ellipsis;white-space:nowrap}.mobile-title>small{flex-shrink:0;padding-right:var(--s-2);color:var(--text-3);font-size:var(--fs-12)}.month-navigation{display:flex;align-items:center;justify-content:center;gap:var(--s-1);margin-top:var(--s-1)}.month-navigation .btn-icon{flex:0 0 36px;width:36px;height:36px}.period-pill{justify-self:center;display:inline-flex;align-items:center;gap:var(--s-2);max-width:100%;min-height:40px;padding:0 var(--s-4) 0 var(--s-3);border:0;border-radius:var(--r-full);background:var(--accent-soft);color:var(--on-accent-soft);font-size:var(--fs-14);font-weight:var(--fw-bold);letter-spacing:.03em;text-transform:uppercase;white-space:nowrap}.period-pill>span{overflow:hidden;text-overflow:ellipsis}button.period-pill:hover{filter:brightness(1.1)}.app-content{width:100%;margin:0 auto;padding:var(--s-3) 0 calc(var(--h-nav) + var(--s-6) + env(safe-area-inset-bottom))}.app-content.full-height{display:flex;flex-direction:column;min-height:100dvh;padding-top:0;padding-bottom:calc(var(--s-2) + env(safe-area-inset-bottom))}.section-stack{display:flex;flex-direction:column;gap:var(--s-3)}.section-stack>*{margin-inline:var(--s-3)}.section-stack>.flat{margin-inline:0}.section-stack>.scrim{margin-inline:0}.section-note{display:flex;align-items:center;justify-content:center;gap:6px;padding:0 var(--s-4);color:var(--text-3);font-size:var(--fs-12);text-align:center}.income-text{color:var(--income)}.expense-text{color:var(--expense)}.transfer-text{color:var(--text)}.card-row{display:flex;align-items:center;justify-content:space-between;gap:var(--s-3)}.card-row small{display:block;margin-top:2px;color:var(--text-3);font-size:var(--fs-12)}.card-row>strong{flex-shrink:0;overflow-wrap:anywhere;font-size:var(--fs-16);font-weight:var(--fw-regular);text-align:right}.bottom-navigation{position:fixed;bottom:0;left:50%;z-index:30;transform:translate(-50%);display:grid;grid-template-columns:repeat(auto-fit,minmax(0,1fr));width:100%;max-width:430px;min-height:calc(var(--h-nav) + env(safe-area-inset-bottom));padding-bottom:env(safe-area-inset-bottom);background:var(--surface)}.nav-button.holding{opacity:.6}.nav-button.dragging{position:relative;z-index:5;opacity:.55;transform:scale(1.04)}.bottom-navigation.reordering .nav-button{touch-action:none}.nav-button{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--s-1);min-width:0;padding:var(--s-2) 2px;border:0;background:transparent;color:var(--text-2);touch-action:none;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}.nav-button>span:last-child{overflow:hidden;max-width:100%;font-size:var(--fs-12);font-weight:var(--fw-medium);text-overflow:ellipsis;white-space:nowrap}.nav-button-icon{display:grid;place-items:center;width:60px;height:30px;border-radius:var(--r-full);transition:background-color var(--t-fast) var(--ease)}.nav-button:hover .nav-button-icon{background:var(--press)}.nav-button.active{color:var(--text)}.nav-button.active>span:last-child{font-weight:var(--fw-bold)}.nav-button.active .nav-button-icon{background:var(--accent-soft);color:var(--on-accent-soft)}.quick-add-section{min-height:calc(100dvh - 140px);padding:var(--s-1) var(--s-3) var(--s-5);color:var(--text);background:var(--bg)}.quick-type-toggle{max-width:420px;margin:0 auto var(--s-4)}.seg.quick-type-toggle.is-editing{background:var(--accent-soft)}.category-separator{grid-column:1 / -1;display:flex;align-items:center;gap:var(--s-3);margin:var(--s-1) 0;color:var(--text-3);font-size:var(--fs-12)}.category-separator:before,.category-separator:after{content:"";flex:1 1 0;border-top:1px solid var(--divider)}.category-separator.is-editing{cursor:pointer;color:var(--text-2)}.category-separator.is-editing:active{transform:scale(.98)}.category-separator.is-dragging{opacity:.55}.category-separator.is-editing{position:relative;user-select:none;-webkit-user-select:none}.separator-drag-handle{position:absolute;top:50%;right:var(--s-2);transform:translateY(-50%)}.separator-drag-ghost>.category-separator{width:100%;height:100%;margin:0;background:var(--surface)}.separator-drop-target{grid-column:1 / -1;display:flex;align-items:center;justify-content:center;min-height:var(--h-control);border:1px solid var(--accent-text);border-radius:var(--r-md);background:var(--accent-soft);color:var(--on-accent-soft);font-size:var(--fs-14);font-weight:var(--fw-medium);pointer-events:none}.quick-stage-section{display:flex;flex-direction:column;gap:var(--s-3)}.quick-stage-header{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:var(--s-2)}.quick-stage-header>span{width:88px}.quick-stage-header h2{font-size:var(--fs-16);font-weight:var(--fw-medium);text-align:center}.quick-account-list{display:flex;flex-direction:column;gap:var(--s-2);width:100%;max-width:460px;margin:var(--s-2) auto 0}.quick-account-list>button,.quick-account-list>.quick-account-row{display:grid;grid-template-columns:48px minmax(0,1fr) auto;align-items:center;gap:var(--s-4);min-height:64px;padding:var(--s-2) var(--s-3) var(--s-2) var(--s-2);border:0;border-radius:var(--r-md);background:var(--surface);color:var(--text);text-align:left;cursor:pointer;transition:background-color var(--t-fast) var(--ease),transform var(--t-fast) var(--ease);touch-action:pan-y}.quick-account-list>button:hover,.quick-account-list>.quick-account-row:hover{background:var(--surface-2)}.quick-account-list>button:active,.quick-account-list>.quick-account-row:active{transform:scale(.98)}.quick-account-list strong{display:block;overflow:hidden;font-size:var(--fs-16);font-weight:var(--fw-regular);text-overflow:ellipsis;white-space:nowrap}.quick-account-list small{display:block;color:var(--text-3);font-size:var(--fs-14)}.quick-account-arrow{color:var(--text-3)}.quick-account-row.dragging,.account-row.dragging{position:relative;z-index:5;opacity:.55}.quick-account-row.is-disabled{opacity:.45}.account-list .account-row{touch-action:pan-y}.transfer-new-button{gap:var(--s-2)}.quick-hidden-toggle,.add-circle{border:1.5px dashed var(--text-4)}.quick-hidden-toggle{display:flex;align-items:center;justify-content:center;gap:var(--s-2);min-height:48px;padding:var(--s-2) var(--s-4);border-radius:var(--r-md);background:transparent;color:var(--text-3);font-size:var(--fs-14);transition:color var(--t-fast) var(--ease),border-color var(--t-fast) var(--ease)}.quick-hidden-toggle:hover{border-color:var(--accent-text);color:var(--accent-text)}.add-circle{display:grid;flex:0 0 auto;place-items:center;width:var(--icon-row);height:var(--icon-row);border-radius:var(--r-full);color:inherit}.account-row-add{color:var(--text-3)}.account-row-add:hover{color:var(--accent-text)}.account-row-add:hover .add-circle{border-color:var(--accent-text)}.account-row-add .row-main>strong{color:var(--text)}.quick-selection-panels,.tx-sheet-panels{display:grid;grid-template-columns:1fr 1fr;gap:var(--s-2);width:100%;max-width:460px;margin:0 auto}.quick-selection-panels.single{grid-template-columns:1fr}.color-selection-panel{display:flex;flex-direction:row;align-items:center;gap:var(--s-3);min-width:0;min-height:60px;padding:var(--s-2) var(--s-4);border:0;border-radius:var(--r-md);text-align:left;box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--selection-color) 45%,transparent);background:color-mix(in srgb,var(--selection-color) 22%,var(--surface))}.color-selection-panel .category-icon{flex-shrink:0}.color-selection-panel-text{display:flex;flex-direction:column;gap:2px;min-width:0}button.color-selection-panel:hover{background:color-mix(in srgb,var(--selection-color) 30%,var(--surface))}.color-selection-panel small{color:color-mix(in srgb,var(--selection-color) 70%,var(--text));font-size:var(--fs-12)}.color-selection-panel strong{overflow:hidden;color:var(--text);font-size:var(--fs-14);font-weight:var(--fw-medium);text-overflow:ellipsis;white-space:nowrap}.quick-subcategory-list{width:100%;max-width:460px;margin:0 auto}.subcategory-glyph{width:18px;height:18px;flex-shrink:0;-webkit-mask:no-repeat center / contain;mask:no-repeat center / contain}.sheet.quick-account-sheet,.sheet.quick-amount-sheet{gap:var(--s-3)}.quick-stage-account-list{margin:0}.quick-amount-sheet .quick-bottom-block{display:flex;flex-direction:column;gap:var(--s-3)}.quick-amount-display{display:flex;justify-content:center;width:100%;max-width:460px;margin:0 auto;padding:var(--s-3) var(--s-1) 0;text-align:center}.quick-amount-display strong{overflow:hidden;color:var(--text);font-size:var(--fs-34);font-weight:var(--fw-regular);text-overflow:ellipsis;white-space:nowrap}.quick-note-field{display:flex;flex-direction:column;width:100%;max-width:460px;margin:0 auto}.quick-note-field .input:focus[data-type=expense]{box-shadow:inset 0 0 0 2px var(--expense)}.quick-note-field .input:focus[data-type=income]{box-shadow:inset 0 0 0 2px var(--income)}.quick-note-field .input:focus[data-type=transfer]{box-shadow:inset 0 0 0 2px var(--accent)}.quick-calculator{display:grid;grid-template-columns:repeat(5,1fr);grid-auto-rows:60px;gap:var(--s-2);width:100%;max-width:460px;margin:0 auto}.quick-calc-button{position:relative;display:flex;align-items:center;justify-content:center;overflow:hidden;border:0;border-radius:var(--r-md);box-shadow:inset 0 0 0 1px var(--outline);background:transparent;color:var(--text);font-size:var(--fs-28);font-weight:var(--fw-light);transition:background-color var(--t-fast) var(--ease),transform var(--t-fast) var(--ease)}.quick-calc-button:hover{background:var(--press)}.quick-calc-button:active{transform:scale(.95)}.quick-calc-button.operator,.quick-calc-button.utility{color:var(--text-2)}.quick-calc-button.save{grid-row:3 / 5;grid-column:5;box-shadow:none;background:var(--accent);color:var(--on-accent)}.quick-calc-button.save:hover{filter:brightness(1.08)}.quick-calc-button.save[data-type=expense]{background:var(--expense);color:var(--on-color)}.quick-calc-button.save[data-type=income]{background:var(--income);color:var(--on-color)}.quick-calc-button.save[data-type=transfer]{background:var(--accent);color:var(--on-accent)}.quick-calc-button.date-button input{position:absolute;inset:0;opacity:0;cursor:pointer}.quick-error{width:100%;max-width:460px;margin:0 auto}.tx-edit-screen{position:fixed;inset:0;z-index:75;display:flex;flex-direction:column;overflow-y:auto;background:var(--bg)}.tx-edit-screen .quick-add-section{flex:1;min-height:100%;padding-top:calc(var(--s-3) + env(safe-area-inset-top))}.tx-edit-screen .quick-calculator{margin-top:auto}.transfer-confirm{text-align:center}.transfer-confirm-icon{display:flex;align-items:center;justify-content:center;gap:var(--s-4);margin-bottom:var(--s-4)}.transfer-confirm-arrow{transform:rotate(180deg);color:var(--text-3)}.transfer-confirm>p{margin-top:var(--s-2)}.transfer-confirm>strong{display:block;margin-top:var(--s-4);font-size:var(--fs-28);font-weight:var(--fw-regular)}.transfer-confirm .banner{margin-top:var(--s-3);text-align:left}.tx-sheet-subs{margin-top:var(--s-3)}.tx-sheet-amount{margin-top:var(--s-5);text-align:center}.tx-sheet-amount span{display:block;color:var(--text-3);font-size:var(--fs-14)}.tx-sheet-amount strong{display:block;margin-top:var(--s-1);font-size:var(--fs-34);font-weight:var(--fw-regular)}.tx-sheet-note{margin-top:var(--s-4);padding:var(--s-3) var(--s-4);border-radius:var(--r-md);background:var(--bg);font-size:var(--fs-14);overflow-wrap:anywhere}.tx-sheet-note em{color:var(--text-3);font-style:normal}.tx-sheet-date{margin-top:var(--s-3);color:var(--text-3);font-size:var(--fs-14);text-align:center}.tx-sheet-error,.tx-sheet-confirm{margin-top:var(--s-4)}.sheet.cat-sheet{max-width:560px;padding-inline:var(--s-5);color:var(--on-color)}.cat-sheet .sheet-handle{background:color-mix(in srgb,var(--on-color) 55%,transparent)}.cat-sheet-head{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--s-3);margin-top:var(--s-2)}.cat-sheet-head h2{font-size:var(--fs-28);font-weight:var(--fw-medium);line-height:1.2}.cat-sheet-head p{margin-top:2px;opacity:.85;font-size:var(--fs-14)}.cat-sheet-head strong{font-size:var(--fs-28);font-weight:var(--fw-medium);white-space:nowrap}.cat-sheet-progress{display:flex;align-items:center;gap:var(--s-3);margin-top:var(--s-4)}.cat-sheet-bar{flex:1;height:6px;overflow:hidden;border-radius:var(--r-full);background:color-mix(in srgb,var(--on-color) 35%,transparent)}.cat-sheet-bar i{display:block;height:100%;border-radius:inherit;background:var(--on-color)}.cat-sheet-bar.small{height:4px}.cat-sheet-percent{min-width:44px;font-weight:var(--fw-bold);text-align:right}.cat-sheet-percent.small{min-width:40px;font-size:var(--fs-14)}.cat-sheet-month{display:flex;justify-content:space-between;gap:var(--s-3);margin-top:var(--s-4);padding-top:var(--s-3);border-top:1px solid color-mix(in srgb,var(--on-color) 35%,transparent);font-weight:var(--fw-medium)}.cat-sheet-list{display:flex;flex-direction:column;gap:var(--s-3);margin-top:var(--s-3)}.cat-sheet-row{display:flex;align-items:center;gap:var(--s-3)}.cat-sheet-row-main{flex:1;min-width:0}.cat-sheet-row-top{display:flex;justify-content:space-between;gap:var(--s-3);margin-bottom:6px;font-weight:var(--fw-medium)}.cat-sheet-actions{display:flex;justify-content:space-evenly;margin-top:var(--s-5);padding-top:var(--s-4);border-top:1px solid color-mix(in srgb,var(--on-color) 35%,transparent)}.cat-sheet-actions button{display:flex;flex-direction:column;align-items:center;gap:6px;min-width:96px;padding:var(--s-2) var(--s-3);border:0;border-radius:var(--r-md);background:transparent;color:var(--on-color);font-size:var(--fs-14);font-weight:var(--fw-medium)}.cat-sheet-actions button:hover,.cat-sheet-actions button:active{background:color-mix(in srgb,var(--on-color) 18%,transparent)}.transaction-tools{display:flex;flex-direction:column;gap:var(--s-3)}.day-heading{display:flex;align-items:center;gap:var(--s-3);padding:var(--s-3) var(--s-4) var(--s-1)}.day-heading>b{color:var(--text-3);font-size:var(--fs-28);font-weight:var(--fw-light);line-height:1}.day-heading>h2{flex:1;min-width:0;color:var(--text-3);font-size:var(--fs-12);line-height:1.25;letter-spacing:.02em;text-transform:uppercase}.day-heading>h2>span{display:block;color:var(--text-2);font-weight:var(--fw-medium)}.day-totals{display:flex;flex-direction:column;align-items:flex-end;font-size:var(--fs-16)}.day-totals>b{font-weight:var(--fw-regular)}.transaction-row .row-trail.transfer-text>strong{color:var(--text)}.category-icon.transfer-icon{width:var(--icon-row);height:var(--icon-row);flex:0 0 var(--icon-row);background:var(--accent);color:var(--on-accent)}.overview-total-cards{display:grid;grid-template-columns:1fr 1fr;gap:var(--s-2)}.overview-total-cards .card-value{font-size:clamp(16px,4.6vw,var(--fs-22))}.overview-breakdown{padding-bottom:var(--s-2)}.overview-breakdown-row{display:grid;grid-template-columns:var(--icon-row) minmax(0,1fr);align-items:center;gap:var(--s-4);padding:var(--s-2) var(--s-4)}.overview-breakdown-row>div{min-width:0}.overview-row-label{display:flex;align-items:baseline;justify-content:space-between;gap:var(--s-3);margin-bottom:6px}.overview-row-label strong{overflow:hidden;font-size:var(--fs-16);font-weight:var(--fw-regular);text-overflow:ellipsis;white-space:nowrap}.overview-row-label span{flex-shrink:0;font-size:var(--fs-14)}.overview-breakdown-row small{display:block;margin-top:var(--s-1);color:var(--text-3);font-size:var(--fs-12)}.muted-centered{padding:var(--s-4);color:var(--text-3);font-size:var(--fs-14);text-align:center}.donut-wrap{position:relative;width:228px;height:228px;margin:var(--s-1) auto var(--s-3)}.donut{width:100%;height:100%}.donut-center{position:absolute;inset:50px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center}.donut-center small{color:var(--text-3);font-size:var(--fs-12)}.donut-center strong{margin-top:var(--s-1);font-size:var(--fs-16);font-weight:var(--fw-regular);overflow-wrap:anywhere}.balance-card{text-align:center}.balance-card .card-value{font-size:var(--fs-28)}.balance-card small{display:block;margin-top:2px;color:var(--text-3);font-size:var(--fs-12)}.category-group+.category-group{border-top:1px solid var(--divider)}.category-row.is-child{min-height:48px;padding-left:calc(var(--s-4) + var(--s-2))}.category-row.is-child .category-icon{margin-inline:4px}.budget-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--s-2);text-align:center}.budget-summary span{display:block;color:var(--text-3);font-size:var(--fs-12)}.budget-summary strong{display:block;margin-top:var(--s-1);overflow-wrap:anywhere;font-size:clamp(13px,3.6vw,var(--fs-16));font-weight:var(--fw-regular)}.budget-summary .progress{grid-column:1 / -1;margin-top:var(--s-2)}.budget-row{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:var(--s-4);min-height:var(--h-row);padding:var(--s-2) var(--s-4)}.budget-row:not(.root){min-height:60px;padding-left:calc(var(--s-4) + var(--s-2))}.budget-row:not(.root) .category-icon{margin-inline:4px}.budget-main{min-width:0}.budget-main>strong{display:block;overflow:hidden;font-size:var(--fs-16);font-weight:var(--fw-regular);line-height:1.35;text-overflow:ellipsis;white-space:nowrap}.budget-main>small{display:block;margin-top:6px;color:var(--text-3);font-size:var(--fs-12)}.budget-main>small.expense-text{color:var(--expense)}.budget-input{min-height:40px}.budget-input>input{text-align:right;font-size:var(--fs-14)}.budget-input.is-saved{box-shadow:inset 0 0 0 1px var(--accent-text)}.budget-saved{flex:0 0 auto;color:var(--accent-text)}.budget-readonly{display:block;width:104px}.budget-amount{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--s-1);min-height:var(--h-control);padding:var(--s-1) var(--s-4);border:0;border-radius:var(--r-full);background:transparent;box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--expense) 55%,transparent);text-align:right;cursor:pointer;transition:background-color var(--t-fast) var(--ease)}.budget-amount:hover{background:var(--press)}.budget-section-title h2{color:var(--text)}.budget-amount strong{font-size:var(--fs-16);font-weight:var(--fw-regular);white-space:nowrap}.tx-filters{border-radius:var(--r-md);background:var(--surface)}.tx-filters-head{display:flex;align-items:center;justify-content:space-between;width:100%;min-height:var(--h-control);padding:0 var(--s-4);border:0;background:transparent;color:var(--text)}.tx-filters-title{display:inline-flex;align-items:center;gap:var(--s-2);font-size:var(--fs-16);font-weight:var(--fw-medium)}.tx-filters-title svg{color:var(--accent-text)}.tx-filters-head>svg{color:var(--text-3);transition:transform var(--t-fast) var(--ease)}.tx-filters-head>svg.is-open{transform:rotate(180deg)}.tx-filters-body{display:flex;flex-direction:column;padding:0 var(--s-2) var(--s-2)}.tx-filter-row{display:flex;align-items:center;justify-content:space-between;gap:var(--s-3);min-height:48px;padding:0 var(--s-2);border:0;border-radius:var(--r-sm);background:transparent;color:var(--text);font-size:var(--fs-16);text-align:left}.tx-filter-row:hover{background:var(--press)}.tx-filter-row>span:first-child{flex-shrink:0}.tx-filter-value{display:inline-flex;align-items:center;gap:var(--s-1);overflow:hidden;color:var(--text-3);font-size:var(--fs-14);text-overflow:ellipsis;white-space:nowrap}.tx-filter-row.is-reset{justify-content:center;color:var(--accent-text)}.profile-block{display:flex;align-items:center;gap:var(--s-4);padding:var(--s-2) var(--s-1)}.profile-avatar{display:grid;place-items:center;width:56px;height:56px;border-radius:var(--r-full);background:var(--accent-soft);color:var(--on-accent-soft);font-size:var(--fs-22);font-weight:var(--fw-medium)}.profile-block h2{font-size:var(--fs-22);font-weight:var(--fw-regular)}.profile-block p{color:var(--text-3);font-size:var(--fs-14)}.settings-group{display:flex;flex-direction:column;gap:var(--s-3);padding-bottom:var(--s-2)}.settings-group>:not(.section-title){width:auto;margin-inline:var(--s-4)}.settings-copy p{color:var(--text-2);font-size:var(--fs-14)}.settings-copy small{display:block;margin-top:var(--s-2);color:var(--text-3);font-size:var(--fs-12)}.settings-group+.settings-group{padding-top:var(--s-2);border-top:1px solid var(--divider)}.accent-grid{display:grid;grid-template-columns:repeat(5,48px);justify-content:space-between;gap:var(--s-4) var(--s-2);padding:var(--s-1) 0}.accent-grid>button{display:grid;place-items:center;width:48px;height:48px;padding:0;border:0;border-radius:var(--r-full);transition:transform var(--t-fast) var(--ease)}.accent-grid>button:active{transform:scale(.92)}.accent-grid>button.is-active{box-shadow:0 0 0 3px var(--bg),0 0 0 5px var(--text)}.more-list .row{min-height:72px}.more-list .row-icon{color:var(--accent-text)}.cat-edit-screen{position:fixed;inset:0;z-index:75;overflow-y:auto;background:var(--bg);color:var(--text)}.cat-edit-top{position:relative;padding:calc(var(--s-2) + env(safe-area-inset-top)) var(--s-2) var(--s-6);background:var(--surface)}.cat-edit-header{display:grid;grid-template-columns:var(--h-control) 1fr auto;align-items:center;gap:var(--s-1)}.cat-edit-header h2{padding-left:var(--s-2);font-size:var(--fs-22);font-weight:var(--fw-regular)}.cat-edit-name{display:flex;flex-direction:column;gap:2px;margin:var(--s-4) 88px 0 56px}.cat-edit-name>span{color:var(--text-2);font-size:var(--fs-12)}.cat-edit-name input{padding:0 0 var(--s-1);border:0;border-bottom:1px solid var(--divider);outline:0;background:transparent;color:var(--text);font-size:var(--fs-28)}.cat-edit-name input:focus{border-bottom:2px solid var(--accent-text)}.cat-edit-name textarea{min-height:64px;padding:var(--s-1) 0;border:0;border-bottom:1px solid var(--divider);outline:0;background:transparent;color:var(--text);font-family:var(--font);font-size:var(--fs-16);line-height:1.4;resize:none}.cat-edit-name textarea:focus{border-bottom:2px solid var(--accent-text)}.cat-edit-body .cat-edit-name{margin:var(--s-3) var(--s-4) 0}.cat-edit-screen.subcategory-screen{display:flex;flex-direction:column;overflow:hidden}.cat-edit-screen.subcategory-screen .cat-edit-top{position:relative;flex:0 0 auto;z-index:3}.cat-edit-screen.subcategory-screen .cat-edit-body{flex:1 1 auto;overflow-y:auto}.cat-edit-icon-button{position:absolute;right:var(--s-4);bottom:-28px;display:grid;place-items:center;width:64px;height:64px;padding:0;border:0;border-radius:var(--r-lg);box-shadow:0 4px 12px var(--scrim)}.cat-edit-icon-button img{width:34px;height:34px}.cat-edit-body{padding:var(--s-6) 0 calc(var(--s-6) + env(safe-area-inset-bottom))}.cat-edit-body>.banner,.cat-edit-body>.confirm{margin:var(--s-3) var(--s-4)}.cat-edit-menu-wrap{position:relative}.menu.subcategory-menu{width:min(290px,calc(100vw - 32px))}.cat-edit-sub-row{padding-right:var(--s-2)}.cat-edit-sub-open{display:flex;flex:1;align-items:center;gap:var(--s-4);min-width:0;min-height:40px;padding:0;border:0;background:transparent;color:var(--text);text-align:left}.cat-edit-sub-open span{overflow:hidden;font-size:var(--fs-16);text-overflow:ellipsis;white-space:nowrap}.cat-edit-line-icon{width:24px;height:24px;flex-shrink:0;opacity:.85}.icon-color-screen{position:fixed;inset:0;z-index:95;display:flex;flex-direction:column;overflow:hidden;background:var(--bg);color:var(--text)}.icon-color-top{flex-shrink:0;background:var(--surface)}.icon-color-header{display:grid;grid-template-columns:var(--h-control) 1fr auto;align-items:center;gap:var(--s-2);min-height:calc(60px + env(safe-area-inset-top));padding:env(safe-area-inset-top) var(--s-3) 0 var(--s-2);background:var(--surface)}.icon-color-header h2{font-size:var(--fs-22);font-weight:var(--fw-regular)}.icon-color-preview{display:grid;place-items:center;width:104px;height:104px;margin:var(--s-4) auto var(--s-5);border-radius:var(--r-full)}.icon-color-preview img{width:60px;height:60px}.icon-color-tabs{max-width:430px;margin:0 auto;border-bottom:0}.icon-color-content{flex:1;width:100%;max-width:560px;margin:0 auto;overflow-y:auto;padding:var(--s-4) var(--s-4) calc(var(--s-6) + env(safe-area-inset-bottom))}.icon-color-content h3,.subcategory-icon-body h3{margin:var(--s-5) var(--s-1) var(--s-3);color:var(--accent-text);font-size:var(--fs-16);font-weight:var(--fw-medium)}.icon-color-content>h3:first-child{margin-top:0}.full-icon-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:var(--s-3)}.full-icon-grid button{display:grid;place-items:center;aspect-ratio:1;padding:var(--s-2);border:0;border-radius:var(--r-full);background:var(--surface);transition:background-color var(--t-fast) var(--ease)}.full-icon-grid button:hover{background:var(--surface-2)}.full-icon-grid button.selected{background:var(--accent-text)}.full-icon-grid button.selected img{filter:brightness(0);opacity:.75}.full-icon-grid img{width:60%;height:60%}.full-color-grid{display:grid;grid-template-columns:repeat(8,1fr);gap:var(--s-3) var(--s-2)}.full-color-grid button{aspect-ratio:1;padding:0;border:0;border-radius:var(--r-full)}.full-color-grid button.selected{box-shadow:0 0 0 3px var(--bg),0 0 0 5px var(--text)}.subcategory-icon-body{padding:var(--s-6) var(--s-4) calc(var(--s-6) + env(safe-area-inset-bottom))}.subcategory-icon-body>.banner{margin:0 0 var(--s-3)}.subcategory-tabs{margin-bottom:var(--s-4)}@media(max-width:360px){.full-color-grid{grid-template-columns:repeat(7,1fr)}.full-icon-grid{gap:var(--s-2)}}.form-stack{display:flex;flex-direction:column;gap:var(--s-4)}.form-grid-two{display:grid;grid-template-columns:1fr;gap:var(--s-4)}.select-with-icon{display:flex;align-items:center;gap:var(--s-2)}.select-with-icon>.select-wrap{flex:1}.modal-actions{display:flex;align-items:center;justify-content:flex-end;gap:var(--s-2);padding-top:var(--s-1)}.modal-actions>.btn-danger{margin-right:auto;padding-inline:var(--s-3)}.merge-hint{color:var(--text-3);font-size:var(--fs-14)}.editor-preview{display:flex;align-items:center;justify-content:center;gap:var(--s-4);min-height:72px}.editor-preview strong,.editor-preview small{display:block}.editor-preview small{color:var(--text-3);font-size:var(--fs-12)}.picker-group{display:flex;flex-direction:column;gap:var(--s-2)}.field-caption{color:var(--text-3);font-size:var(--fs-12)}.icon-picker{display:grid;grid-template-columns:repeat(5,44px);justify-content:space-between;gap:var(--s-2)}.icon-picker button{display:grid;place-items:center;width:44px;height:44px;padding:0;border:0;border-radius:var(--r-full)}.icon-picker button.selected{box-shadow:0 0 0 2px var(--surface),0 0 0 4px var(--text)}.icon-picker img{width:24px;height:24px}.color-picker{display:flex;flex-wrap:wrap;gap:var(--s-3);padding:var(--s-1)}.color-picker button{width:36px;height:36px;padding:0;border:0;border-radius:var(--r-full)}.color-picker button.selected{box-shadow:0 0 0 2px var(--surface),0 0 0 4px var(--text)}.row.row-inline{padding-inline:0}@media(min-width:560px){.form-grid-two{grid-template-columns:repeat(2,minmax(0,1fr))}.icon-picker{grid-template-columns:repeat(8,44px);justify-content:start}}.auth-screen{min-height:100dvh;background:var(--bg)}.auth-panel{display:flex;flex-direction:column;min-height:100dvh;padding:calc(var(--s-6) + env(safe-area-inset-top)) var(--s-5) calc(var(--s-5) + env(safe-area-inset-bottom))}.auth-brand{display:flex;align-items:center;gap:var(--s-4);margin:var(--s-5) 0 48px}.auth-logo{display:grid;place-items:center;width:64px;height:64px;border-radius:var(--r-lg);background:var(--accent-soft);color:var(--on-accent-soft)}.auth-brand h1{font-size:var(--fs-22);font-weight:var(--fw-regular)}.auth-brand p{margin-top:2px;color:var(--text-3);font-size:var(--fs-14)}.auth-form-wrap{width:100%;max-width:400px;margin:0 auto}.auth-form-wrap h2{font-size:var(--fs-22);font-weight:var(--fw-regular)}.auth-hint{margin:6px 0 var(--s-5);color:var(--text-3);font-size:var(--fs-14)}.auth-footnote{margin-top:auto;padding-top:40px;color:var(--text-3);font-size:var(--fs-12);text-align:center}@media(min-width:560px){.auth-screen{display:grid;place-items:center;padding:var(--s-6)}.auth-panel{width:min(480px,100%);min-height:auto;border-radius:var(--r-xl);background:var(--surface)}.auth-brand{margin-top:var(--s-1)}}.loading-screen,.fatal-state{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--s-4);min-height:100dvh;padding:var(--s-5);background:var(--bg);color:var(--text-3);text-align:center}.fatal-state h1{color:var(--text);font-size:var(--fs-22);font-weight:var(--fw-regular)}.fatal-state p{max-width:480px}.notes-wrap{position:relative;display:flex;flex-direction:column;gap:var(--s-3)}.notes-head{display:flex;align-items:center;gap:var(--s-2);padding:0 var(--s-3)}.notes-search{flex:1;min-width:0}.notes-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--s-3);align-items:start;padding:0 var(--s-3)}.ncard{border:0;min-height:calc(var(--h-row) * 2);border-radius:var(--r-md);background:var(--surface);padding:var(--s-3);display:flex;flex-direction:column;justify-content:space-between;gap:var(--s-3);text-align:left;font-family:var(--font);color:var(--text);touch-action:pan-y;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none;transition:transform var(--t-fast) var(--ease)}.ncard:active{transform:scale(.985)}.notes-grid.dragging{touch-action:none}.ncard.drag-source{position:relative;z-index:8;opacity:.97;box-shadow:0 var(--s-3) var(--s-6) var(--scrim);transition:none;cursor:grabbing}.ncard.drop-target{box-shadow:0 0 0 2px var(--accent-text)}.ncard.colored{color:var(--bg)}.ncard-main{display:flex;flex-direction:column;gap:var(--s-1);min-width:0}.ncard-main b{font-size:var(--fs-16);line-height:1.25;font-weight:var(--fw-medium);overflow:hidden;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow-wrap:break-word}.ncard-main small{font-size:var(--fs-12);line-height:1.35;color:var(--text-3);overflow:hidden;display:-webkit-box;-webkit-line-clamp:5;-webkit-box-orient:vertical;overflow-wrap:break-word}.ncard.colored .ncard-main small{color:color-mix(in srgb,var(--bg) 68%,transparent)}.ncard-foot{display:flex;align-items:center;justify-content:space-between;gap:var(--s-2);font-size:var(--fs-12);color:var(--text-3)}.ncard.colored .ncard-foot{color:color-mix(in srgb,var(--bg) 62%,transparent)}.pin-ic{flex:none}.empty-note{font-style:italic}.note-editor{position:fixed;inset:0;z-index:75;background:var(--bg);color:var(--text);display:flex;flex-direction:column;gap:var(--s-2);padding:var(--s-2) var(--s-4) 0;overflow:hidden;animation:sheet-up var(--t-base) var(--ease)}.note-editor.colored{color:var(--bg)}.note-editor-top{display:flex;align-items:center;gap:var(--s-1);margin:0 calc(-1 * var(--s-2));padding-top:env(safe-area-inset-top)}.note-status{flex:1;min-width:0;text-align:center;font-size:var(--fs-12);color:var(--text-3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.note-editor.colored .note-status{color:color-mix(in srgb,var(--bg) 68%,transparent)}.note-editor.colored .note-editor-top .btn-icon{color:var(--bg)}.note-editor.colored .note-editor-top .btn-icon.is-active{background:color-mix(in srgb,var(--bg) 14%,transparent);color:var(--bg)}.note-delete{color:var(--danger)}.note-title{border:0;outline:none;background:transparent;color:var(--text);font-family:var(--font);font-size:var(--fs-22);font-weight:var(--fw-medium);padding:var(--s-1)}.note-editor.colored .note-title{color:var(--bg)}.note-title::placeholder{color:var(--text-4)}.note-editor.colored .note-title::placeholder{color:color-mix(in srgb,var(--bg) 45%,transparent)}.note-body{flex:1;min-height:0;overflow-y:auto;outline:none;background:transparent;color:var(--text);font-size:var(--fs-16);line-height:1.55;padding:var(--s-1);overflow-wrap:break-word}.note-body:empty:before{content:"Заметка";color:var(--text-4);pointer-events:none}.note-editor.colored .note-body{color:var(--bg)}.note-editor.colored .note-body:empty:before{color:color-mix(in srgb,var(--bg) 45%,transparent)}.note-body h1{font-size:var(--fs-22);line-height:1.2;margin:var(--s-3) 0 var(--s-2);font-weight:var(--fw-bold)}.note-body h2{font-size:var(--fs-16);line-height:1.25;margin:var(--s-3) 0 var(--s-2);font-weight:var(--fw-bold)}.note-body ul,.note-body ol{margin:var(--s-2) 0;padding-left:calc(var(--s-5) + var(--s-1));list-style-position:outside}.note-body ul{list-style-type:disc}.note-body ol{list-style-type:decimal}.note-body li{margin:var(--s-1) 0}.note-body p,.note-body div{margin:0 0 var(--s-2)}.note-dock{position:absolute;left:0;right:0;bottom:var(--kbh, 0px);display:flex;flex-direction:column;gap:var(--s-2);padding:var(--s-2) var(--s-3) calc(var(--s-3) + env(safe-area-inset-bottom));background:linear-gradient(transparent,var(--bg) 40%)}.note-tools{width:100%;display:flex;align-items:center;justify-content:space-between;gap:var(--s-2)}.note-bar{display:flex;align-items:center;gap:var(--s-1);background:var(--surface);border-radius:var(--r-full);padding:var(--s-1);color:var(--text)}.note-bar button{flex:none;width:var(--h-control);height:var(--h-control);border:0;border-radius:var(--r-full);background:transparent;color:inherit;display:flex;align-items:center;justify-content:center;font-size:var(--fs-16);font-weight:var(--fw-medium);font-family:var(--font)}.note-bar button:active{background:var(--press)}.note-fmt{width:100%;box-sizing:border-box;display:flex;align-items:center;gap:0;background:var(--surface);border-radius:var(--r-md);padding:var(--s-1) var(--s-2);overflow-x:auto;scrollbar-width:none;color:var(--text)}.note-fmt button{flex:none;border:0;background:transparent;border-radius:var(--r-sm);min-width:calc(var(--h-chip) + var(--s-1));height:var(--h-control);padding:0 var(--s-1);color:inherit;font-size:var(--fs-14);font-weight:var(--fw-medium);font-family:var(--font);display:grid;place-items:center}.note-fmt button:active{background:var(--press)}.note-fmt i{width:1px;height:calc(var(--h-chip) - var(--s-1));background:var(--divider);flex:none;margin:0 var(--s-1)}.note-fmt .x-close{margin-left:auto}.note-sheet{position:absolute;left:0;right:0;bottom:0;box-sizing:border-box;background:var(--surface);border-radius:var(--r-xl) var(--r-xl) 0 0;padding:var(--s-3) var(--s-4) calc(var(--s-6) + env(safe-area-inset-bottom));display:flex;flex-direction:column;gap:var(--s-4);box-shadow:0 calc(-1 * var(--s-2)) var(--s-5) var(--scrim);animation:sheet-up var(--t-base) var(--ease)}.note-sheet-title{font-size:var(--fs-16);font-weight:var(--fw-medium);color:var(--text)}.note-swrow{display:flex;align-items:center;gap:var(--s-3);overflow-x:auto;scrollbar-width:none;padding:var(--s-1)}.sw-pick{width:var(--h-control);height:var(--h-control);flex:none;border:0;border-radius:var(--r-full);transition:transform var(--t-fast) var(--ease)}.sw-pick:active{transform:scale(.94)}.sw-pick.none{box-shadow:inset 0 0 0 1px var(--text-4)}.sw-pick.is-active{box-shadow:0 0 0 2px var(--accent-text)}.note-editor.colors-open .note-body{margin-bottom:calc(var(--h-control) * 4 + var(--s-3))}.reserve-total-lines{display:grid;gap:var(--s-2);margin-top:var(--s-2)}.reserve-total-card{text-align:center}.reserve-total-line{display:flex;align-items:baseline;justify-content:center;gap:var(--s-3)}.reserve-total-line>strong{overflow-wrap:anywhere;font-size:var(--fs-22);font-weight:var(--fw-regular);line-height:1.25;text-align:center}.reserve-add-tile{align-self:stretch;justify-content:center}.reserve-rate-glyph{font-size:var(--fs-22);font-weight:var(--fw-medium)}.reserve-rates .section-note{margin-inline:var(--s-3)}.reserve-rate-editor{display:grid;gap:var(--s-3)}.reserve-op-choice{display:inline-flex;align-items:center;gap:var(--s-3)}.reserve-detail-header .reserve-detail-title{font-size:var(--fs-22);font-weight:var(--fw-medium);color:var(--accent-text)}.reserve-actual-lines{display:flex;flex-direction:column;gap:var(--s-1);margin-top:var(--s-2);color:var(--text-3)}.reserve-actual-lines small{font-size:var(--fs-12)}.reserve-op-type{display:block;text-align:center;font-size:var(--fs-22);font-weight:var(--fw-bold);padding-block:var(--s-2)}.reserve-op-type.is-deposit{color:var(--income)}.reserve-op-type.is-withdrawal{color:var(--expense)}.reserve-detail-header{display:flex;align-items:center;gap:var(--s-1);min-height:var(--h-row);padding:var(--s-1) var(--s-2);background:var(--surface)}.reserve-section-row .row-main>small{white-space:normal}.reserve-month-list{display:flex;flex-direction:column;gap:var(--s-3)}.reserve-month-lines{display:grid;gap:var(--s-2);margin-top:var(--s-3)}.reserve-month-lines>div{display:flex;align-items:baseline;justify-content:space-between;gap:var(--s-3)}.reserve-month-lines span{color:var(--text-3);font-size:var(--fs-14)}.reserve-month-lines strong{overflow-wrap:anywhere;font-size:var(--fs-14);font-weight:var(--fw-regular);text-align:right}.reserve-account-editor{display:flex;flex-direction:column;gap:var(--s-3)}.reserve-operation-row .row-main>small{white-space:normal}.finance-shell.is-reserve{--bg: var(--reserve-bg);--surface: var(--reserve-surface);--surface-2: var(--reserve-surface-2);--accent: var(--reserve-accent);--on-accent: var(--reserve-on-accent);--accent-text: var(--reserve-accent-text);--accent-deep: var(--reserve-accent-deep);--accent-soft: var(--reserve-accent-soft);--on-accent-soft: var(--reserve-on-accent-soft)}.is-reserve .reserve-total-card.is-debt .expense-text,.is-reserve .reserve-section-row .expense-text{color:var(--accent-text)}.app-header-title{display:flex;flex:1;align-items:center;gap:var(--s-1);font-size:var(--fs-22);font-weight:var(--fw-regular)}.manager-subtitle{margin:var(--s-1) 0 0;font-size:var(--fs-13, 13px);color:var(--text-3)}.manager-row{cursor:default}.manager-author{color:var(--accent-text)}.tx-author{color:var(--text-3)}.category-icon{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;overflow:hidden;border-radius:50%;color:#fcfeff}.category-icon img{width:58%;height:58%;object-fit:contain}.quick-category-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px 10px;max-width:560px;margin:10px auto 0}.quick-category-tile{display:flex;flex-direction:column;align-items:center;gap:7px;min-width:0;padding:8px 2px 10px;border:0;border-radius:12px;background:transparent;color:#cfd5db;text-align:center;transition:background .15s ease,transform .1s ease}.quick-category-tile:hover{background:#21272e}.quick-category-tile:active{transform:scale(.95)}.quick-category-tile .tile-name{display:block;width:100%;overflow:hidden;font-size:13px;font-weight:500;line-height:1.25;text-overflow:ellipsis;white-space:nowrap}.quick-category-tile .tile-remaining{display:block;width:100%;overflow:hidden;margin-top:2px;color:#9299a1;font-size:12px;font-weight:600;text-overflow:ellipsis;white-space:nowrap}.quick-category-tile .tile-pill{display:inline-block;max-width:100%;margin-top:2px;padding:2px 9px;border-radius:999px;color:#fcfeff;font-size:12px;font-weight:700;line-height:1.3;white-space:nowrap}.quick-category-tile .tile-spent{display:block;width:100%;overflow:hidden;margin-top:6px;color:#b2b8bf;font-size:12px;font-weight:600;text-overflow:ellipsis;white-space:nowrap}.tile-icon-wrap{position:relative;display:grid;place-items:center;width:80px;height:80px;margin-top:8px}.quick-expense-grid{gap:22px 10px}.quick-expense-grid .quick-category-tile{gap:0;padding:2px 2px 6px}.quick-expense-grid .tile-name{font-size:14px;line-height:1.2}.quick-expense-grid .tile-remaining{margin-top:4px;font-size:12.5px;line-height:1.2}.quick-expense-grid .tile-icon-wrap{width:50px;height:50px;margin-top:6px;border-radius:50%}.quick-expense-grid .tile-cap{inset:0;background:#1419238c}.quick-expense-grid .tile-spent{margin-top:6px;font-size:12.5px;line-height:1.2}.tile-cap{position:absolute;inset:12px;border-radius:50%;background:#080c186b;pointer-events:none}.quick-category-tile{position:relative;touch-action:pan-y}.quick-category-tile.dragging{opacity:.35}.quick-category-tile.is-drop-target{outline:var(--s-1) solid var(--accent-text);outline-offset:calc(-1 * var(--s-1))}.tile-drag-handle{position:absolute;top:auto;bottom:0;right:0;width:var(--s-6);height:var(--s-6);border-radius:var(--r-full);background:var(--surface-2);color:var(--text)}.tile-drop-label{position:absolute;bottom:var(--s-2);left:50%;transform:translate(-50%)}.category-drag-ghost>.quick-category-tile{width:100%;height:100%;margin:0;background:var(--surface)}.quick-category-grid.is-editing .category-separator{touch-action:pan-y}.tile-add{cursor:pointer}.tile-add-circle{display:grid;place-items:center;width:50px;height:50px;margin-top:6px;border:1.6px dashed oklch(.55 .02 250);border-radius:50%;color:#9299a1;background:transparent;transition:border-color .15s ease-out,color .15s ease-out}.quick-category-tile.tile-add:hover .tile-add-circle{border-color:#bee9c9;color:#bee9c9}.quick-category-tile.tile-add:active .tile-add-circle{transform:scale(.94)}.quick-expense-grid .tile-add .tile-name{line-height:1.2;min-height:1.2em}.quick-expense-grid .tile-add .tile-remaining{min-height:1.2em}.quick-expense-grid .tile-add .tile-spent{min-height:15px}
