:root{--ion-color-primary: #0054e9;--ion-color-primary-rgb: 0, 84, 233;--ion-color-primary-contrast: #fff;--ion-color-primary-contrast-rgb: 255, 255, 255;--ion-color-primary-shade: #004acd;--ion-color-primary-tint: #1a65eb;--ion-color-secondary: #0163aa;--ion-color-secondary-rgb: 1, 99, 170;--ion-color-secondary-contrast: #fff;--ion-color-secondary-contrast-rgb: 255, 255, 255;--ion-color-secondary-shade: #015796;--ion-color-secondary-tint: #1a73b3;--ion-color-tertiary: #6030ff;--ion-color-tertiary-rgb: 96, 48, 255;--ion-color-tertiary-contrast: #fff;--ion-color-tertiary-contrast-rgb: 255, 255, 255;--ion-color-tertiary-shade: #542ae0;--ion-color-tertiary-tint: #7045ff;--ion-color-success: #2dd55b;--ion-color-success-rgb: 45, 213, 91;--ion-color-success-contrast: #000;--ion-color-success-contrast-rgb: 0, 0, 0;--ion-color-success-shade: #28bb50;--ion-color-success-tint: #42d96b;--ion-color-warning: #ffc409;--ion-color-warning-rgb: 255, 196, 9;--ion-color-warning-contrast: #000;--ion-color-warning-contrast-rgb: 0, 0, 0;--ion-color-warning-shade: #e0ac08;--ion-color-warning-tint: #ffca22;--ion-color-danger: #c5000f;--ion-color-danger-rgb: 197, 0, 15;--ion-color-danger-contrast: #fff;--ion-color-danger-contrast-rgb: 255, 255, 255;--ion-color-danger-shade: #ad000d;--ion-color-danger-tint: #cb1a27;--ion-color-light: #f4f5f8;--ion-color-light-rgb: 244, 245, 248;--ion-color-light-contrast: #000;--ion-color-light-contrast-rgb: 0, 0, 0;--ion-color-light-shade: #d7d8da;--ion-color-light-tint: #f5f6f9;--ion-color-medium: #636469;--ion-color-medium-rgb: 99, 100, 105;--ion-color-medium-contrast: #fff;--ion-color-medium-contrast-rgb: 255, 255, 255;--ion-color-medium-shade: #57585c;--ion-color-medium-tint: #737478;--ion-color-dark: #222428;--ion-color-dark-rgb: 34, 36, 40;--ion-color-dark-contrast: #fff;--ion-color-dark-contrast-rgb: 255, 255, 255;--ion-color-dark-shade: #1e2023;--ion-color-dark-tint: #383a3e}html.ios{--ion-default-font: -apple-system, BlinkMacSystemFont, "Helvetica Neue", "Roboto", sans-serif}html.md{--ion-default-font: "Roboto", "Helvetica Neue", sans-serif}html{--ion-dynamic-font: -apple-system-body;--ion-font-family: var(--ion-default-font)}body{background:var(--ion-background-color);color:var(--ion-text-color)}body.backdrop-no-scroll{overflow:hidden}html.ios ion-modal.modal-card ion-header ion-toolbar:first-of-type,html.ios ion-modal.modal-sheet ion-header ion-toolbar:first-of-type,html.ios ion-modal ion-footer ion-toolbar:first-of-type,html.ios ion-footer.modal-footer-moving ion-toolbar:first-of-type{padding-top:6px}html.ios ion-modal.modal-card ion-header ion-toolbar:last-of-type,html.ios ion-modal.modal-sheet ion-header ion-toolbar:last-of-type{padding-bottom:6px}html.ios ion-modal ion-toolbar,html.ios .modal-footer-moving ion-toolbar{padding-right:calc(var(--ion-safe-area-right) + 8px);padding-left:calc(var(--ion-safe-area-left) + 8px)}@media screen and (min-width:768px){html.ios ion-modal.modal-card:first-of-type{--backdrop-opacity: .18}}ion-modal.modal-default.show-modal~ion-modal.modal-default{--backdrop-opacity: 0;--box-shadow: none}html.ios ion-modal.modal-card .ion-page{border-top-left-radius:var(--border-radius)}.ion-color-primary{--ion-color-base: var(--ion-color-primary, #0054e9) !important;--ion-color-base-rgb: var(--ion-color-primary-rgb, 0, 84, 233) !important;--ion-color-contrast: var(--ion-color-primary-contrast, #fff) !important;--ion-color-contrast-rgb: var(--ion-color-primary-contrast-rgb, 255, 255, 255) !important;--ion-color-shade: var(--ion-color-primary-shade, #004acd) !important;--ion-color-tint: var(--ion-color-primary-tint, #1a65eb) !important}.ion-color-secondary{--ion-color-base: var(--ion-color-secondary, #0163aa) !important;--ion-color-base-rgb: var(--ion-color-secondary-rgb, 1, 99, 170) !important;--ion-color-contrast: var(--ion-color-secondary-contrast, #fff) !important;--ion-color-contrast-rgb: var(--ion-color-secondary-contrast-rgb, 255, 255, 255) !important;--ion-color-shade: var(--ion-color-secondary-shade, #015796) !important;--ion-color-tint: var(--ion-color-secondary-tint, #1a73b3) !important}.ion-color-tertiary{--ion-color-base: var(--ion-color-tertiary, #6030ff) !important;--ion-color-base-rgb: var(--ion-color-tertiary-rgb, 96, 48, 255) !important;--ion-color-contrast: var(--ion-color-tertiary-contrast, #fff) !important;--ion-color-contrast-rgb: var(--ion-color-tertiary-contrast-rgb, 255, 255, 255) !important;--ion-color-shade: var(--ion-color-tertiary-shade, #542ae0) !important;--ion-color-tint: var(--ion-color-tertiary-tint, #7045ff) !important}.ion-color-success{--ion-color-base: var(--ion-color-success, #2dd55b) !important;--ion-color-base-rgb: var(--ion-color-success-rgb, 45, 213, 91) !important;--ion-color-contrast: var(--ion-color-success-contrast, #000) !important;--ion-color-contrast-rgb: var(--ion-color-success-contrast-rgb, 0, 0, 0) !important;--ion-color-shade: var(--ion-color-success-shade, #28bb50) !important;--ion-color-tint: var(--ion-color-success-tint, #42d96b) !important}.ion-color-warning{--ion-color-base: var(--ion-color-warning, #ffc409) !important;--ion-color-base-rgb: var(--ion-color-warning-rgb, 255, 196, 9) !important;--ion-color-contrast: var(--ion-color-warning-contrast, #000) !important;--ion-color-contrast-rgb: var(--ion-color-warning-contrast-rgb, 0, 0, 0) !important;--ion-color-shade: var(--ion-color-warning-shade, #e0ac08) !important;--ion-color-tint: var(--ion-color-warning-tint, #ffca22) !important}.ion-color-danger{--ion-color-base: var(--ion-color-danger, #c5000f) !important;--ion-color-base-rgb: var(--ion-color-danger-rgb, 197, 0, 15) !important;--ion-color-contrast: var(--ion-color-danger-contrast, #fff) !important;--ion-color-contrast-rgb: var(--ion-color-danger-contrast-rgb, 255, 255, 255) !important;--ion-color-shade: var(--ion-color-danger-shade, #ad000d) !important;--ion-color-tint: var(--ion-color-danger-tint, #cb1a27) !important}.ion-color-light{--ion-color-base: var(--ion-color-light, #f4f5f8) !important;--ion-color-base-rgb: var(--ion-color-light-rgb, 244, 245, 248) !important;--ion-color-contrast: var(--ion-color-light-contrast, #000) !important;--ion-color-contrast-rgb: var(--ion-color-light-contrast-rgb, 0, 0, 0) !important;--ion-color-shade: var(--ion-color-light-shade, #d7d8da) !important;--ion-color-tint: var(--ion-color-light-tint, #f5f6f9) !important}.ion-color-medium{--ion-color-base: var(--ion-color-medium, #636469) !important;--ion-color-base-rgb: var(--ion-color-medium-rgb, 99, 100, 105) !important;--ion-color-contrast: var(--ion-color-medium-contrast, #fff) !important;--ion-color-contrast-rgb: var(--ion-color-medium-contrast-rgb, 255, 255, 255) !important;--ion-color-shade: var(--ion-color-medium-shade, #57585c) !important;--ion-color-tint: var(--ion-color-medium-tint, #737478) !important}.ion-color-dark{--ion-color-base: var(--ion-color-dark, #222428) !important;--ion-color-base-rgb: var(--ion-color-dark-rgb, 34, 36, 40) !important;--ion-color-contrast: var(--ion-color-dark-contrast, #fff) !important;--ion-color-contrast-rgb: var(--ion-color-dark-contrast-rgb, 255, 255, 255) !important;--ion-color-shade: var(--ion-color-dark-shade, #1e2023) !important;--ion-color-tint: var(--ion-color-dark-tint, #383a3e) !important}.ion-page{inset:0;display:flex;position:absolute;flex-direction:column;justify-content:space-between;contain:layout size style;z-index:0}ion-modal>.ion-page{position:relative;contain:layout style;height:100%}.split-pane-visible>.ion-page.split-pane-main{position:relative}ion-route,ion-route-redirect,ion-router,ion-select-option,ion-nav-controller,ion-menu-controller,ion-action-sheet-controller,ion-alert-controller,ion-loading-controller,ion-modal-controller,ion-picker-controller,ion-popover-controller,ion-toast-controller,.ion-page-hidden{display:none!important}.ion-page-invisible{opacity:0}.can-go-back>ion-header ion-back-button{display:block}html.plt-ios.plt-hybrid,html.plt-ios.plt-pwa{--ion-statusbar-padding: 20px}@supports (padding-top: 20px){html{--ion-safe-area-top: var(--ion-statusbar-padding)}}@supports (padding-top: env(safe-area-inset-top)){html{--ion-safe-area-top: env(safe-area-inset-top);--ion-safe-area-bottom: env(safe-area-inset-bottom);--ion-safe-area-left: env(safe-area-inset-left);--ion-safe-area-right: env(safe-area-inset-right)}}ion-card.ion-color .ion-inherit-color,ion-card-header.ion-color .ion-inherit-color{color:inherit}.menu-content{transform:translateZ(0)}.menu-content-open{cursor:pointer;touch-action:manipulation;pointer-events:none;overflow-y:hidden}.menu-content-open ion-content{--overflow: hidden}.menu-content-open .ion-content-scroll-host{overflow:hidden}.ios .menu-content-reveal{box-shadow:-8px 0 42px #00000014}[dir=rtl].ios .menu-content-reveal{box-shadow:8px 0 42px #00000014}.md .menu-content-reveal,.md .menu-content-push{box-shadow:4px 0 16px #0000002e}ion-accordion-group.accordion-group-expand-inset>ion-accordion:first-of-type{border-top-left-radius:8px;border-top-right-radius:8px}ion-accordion-group.accordion-group-expand-inset>ion-accordion:last-of-type{border-bottom-left-radius:8px;border-bottom-right-radius:8px}ion-accordion-group>ion-accordion:last-of-type ion-item[slot=header]{--border-width: 0px}ion-accordion.accordion-animated>[slot=header] .ion-accordion-toggle-icon{transition:.3s transform cubic-bezier(.25,.8,.5,1)}@media(prefers-reduced-motion:reduce){ion-accordion .ion-accordion-toggle-icon{transition:none!important}}ion-accordion.accordion-expanding>[slot=header] .ion-accordion-toggle-icon,ion-accordion.accordion-expanded>[slot=header] .ion-accordion-toggle-icon{transform:rotate(180deg)}ion-accordion-group.accordion-group-expand-inset.md>ion-accordion.accordion-previous ion-item[slot=header]{--border-width: 0px;--inner-border-width: 0px}ion-accordion-group.accordion-group-expand-inset.md>ion-accordion.accordion-expanding:first-of-type,ion-accordion-group.accordion-group-expand-inset.md>ion-accordion.accordion-expanded:first-of-type{margin-top:0}ion-input input::-webkit-date-and-time-value{text-align:start}.ion-datetime-button-overlay{--width: fit-content;--height: fit-content}.ion-datetime-button-overlay ion-datetime.datetime-grid{width:320px;min-height:320px}[ion-last-focus],header[tabindex="-1"]:focus,[role=banner][tabindex="-1"]:focus,main[tabindex="-1"]:focus,[role=main][tabindex="-1"]:focus,h1[tabindex="-1"]:focus,[role=heading][aria-level="1"][tabindex="-1"]:focus{outline:none}.popover-viewport:has(>ion-content){overflow:hidden}@supports not selector(:has(> ion-content)){.popover-viewport{overflow:hidden}}audio,canvas,progress,video{vertical-align:baseline}audio:not([controls]){display:none;height:0}b,strong{font-weight:700}img{max-width:100%}hr{height:1px;border-width:0;box-sizing:content-box}pre{overflow:auto}code,kbd,pre,samp{font-family:monospace,monospace;font-size:1em}label,input,select,textarea{font-family:inherit;line-height:normal}textarea{overflow:auto;height:auto;font:inherit;color:inherit}textarea::placeholder{padding-left:2px}form,input,optgroup,select{margin:0;font:inherit;color:inherit}html input[type=button],input[type=reset],input[type=submit]{cursor:pointer;-webkit-appearance:button}a,a div,a span,a ion-icon,a ion-label,button,button div,button span,button ion-icon,button ion-label,.ion-tappable,[tappable],[tappable] div,[tappable] span,[tappable] ion-icon,[tappable] ion-label,input,textarea{touch-action:manipulation}a ion-label,button ion-label{pointer-events:none}button{padding:0;border:0;border-radius:0;font-family:inherit;font-style:inherit;font-variant:inherit;line-height:1;text-transform:none;cursor:pointer;-webkit-appearance:button}[tappable]{cursor:pointer}a[disabled],button[disabled],html input[disabled]{cursor:default}button::-moz-focus-inner,input::-moz-focus-inner{padding:0;border:0}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{height:auto}input[type=search]::-webkit-search-cancel-button,input[type=search]::-webkit-search-decoration{-webkit-appearance:none}table{border-collapse:collapse;border-spacing:0}td,th{padding:0}*{box-sizing:border-box;-webkit-tap-highlight-color:rgba(0,0,0,0);-webkit-tap-highlight-color:transparent;-webkit-touch-callout:none}html{width:100%;height:100%;-webkit-text-size-adjust:100%;text-size-adjust:100%}html.ion-ce body{display:block}html.plt-pwa{height:100vh}body{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;margin:0;padding:0;position:fixed;width:100%;max-width:100%;height:100%;max-height:100%;transform:translateZ(0);text-rendering:optimizeLegibility;overflow:hidden;touch-action:manipulation;-webkit-user-drag:none;-ms-content-zooming:none;word-wrap:break-word;overscroll-behavior-y:none;-webkit-text-size-adjust:none;text-size-adjust:none}html{font-family:var(--ion-font-family)}@supports (-webkit-touch-callout: none){html{font:var(--ion-dynamic-font, 16px var(--ion-font-family))}}a{background-color:transparent;color:var(--ion-color-primary, #0054e9)}h1,h2,h3,h4,h5,h6{margin-top:16px;margin-bottom:10px;font-weight:500;line-height:1.2}h1{margin-top:20px;font-size:1.625rem}h2{margin-top:18px;font-size:1.5rem}h3{font-size:1.375rem}h4{font-size:1.25rem}h5{font-size:1.125rem}h6{font-size:1rem}small{font-size:75%}sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline}sup{top:-.5em}sub{bottom:-.25em}:root{font-family:Inter,ui-sans-serif,system-ui,sans-serif;color:#17342a;background:#f4f6f1;--ink:#17342a;--muted:#687a72;--accent:#0b6b4d;--surface:#fff;--line:#dfe6df}*{box-sizing:border-box}body{margin:0;background:#f4f6f1}button,input,select{font:inherit}button{min-height:44px;border:0;border-radius:12px;padding:.7rem 1rem;background:var(--accent);color:#fff;font-weight:700;cursor:pointer}button:disabled{opacity:.6;cursor:wait}button.secondary{color:var(--ink);background:#e9eee9}.text-button{background:transparent;color:var(--accent);padding:.25rem}a{color:var(--accent)}.eyebrow{color:var(--muted);font-size:.75rem;font-weight:750;letter-spacing:.09em;text-transform:uppercase}.center-state{display:grid;min-height:100dvh;place-items:center;color:var(--muted)}.auth-page,.setup-page{min-height:100dvh;display:grid;place-items:center;padding:2rem 1rem}.auth-card,.setup-card{width:min(100%,34rem);padding:clamp(1.25rem,4vw,2.5rem);border:1px solid var(--line);border-radius:24px;background:var(--surface);box-shadow:0 24px 70px #17342a14}.auth-card form,.setup-card{display:grid;gap:1rem}label{display:grid;gap:.4rem;color:var(--muted);font-size:.9rem;font-weight:650}input,select{min-height:46px;width:100%;border:1px solid #cbd7cf;border-radius:10px;background:#fff;color:var(--ink);padding:.65rem .75rem}[role=alert]{color:#9a3428}.setup-page,.settings-page{height:100dvh;min-height:0;overflow-y:auto;overscroll-behavior-y:contain;touch-action:pan-y}.setup-page{align-content:start;gap:1rem}.setup-page>header{width:min(100%,34rem)}.setup-defaults{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:.75rem;padding-bottom:1rem;border-bottom:1px solid var(--line)}.setup-defaults p{flex:1 1 16rem;margin:0}.wizard-actions{display:flex;justify-content:space-between;gap:1rem}.settings-page{width:100%;scrollbar-gutter:stable}.settings-content{width:min(100%,72rem);min-height:100%;margin:auto;padding:clamp(1.5rem,4vw,3.5rem)}.settings-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:2rem;margin-bottom:2rem}.settings-heading h1{margin:.2rem 0;font-size:clamp(2rem,5vw,3.5rem)}.settings-heading p:last-child{color:var(--muted)}.settings-form{display:grid;gap:1.25rem}.settings-tabs{width:max-content;max-width:100%;display:flex;gap:.35rem;padding:.35rem;border-radius:14px;background:#e5ebe5;overflow-x:auto}.settings-tabs button{min-height:40px;background:transparent;color:var(--muted)}.settings-tabs button[aria-selected=true]{background:#fff;color:var(--accent);box-shadow:0 2px 8px #17342a14}.settings-panel{display:grid;gap:1.25rem}.settings-section{padding:clamp(1.25rem,3vw,2rem);border:1px solid var(--line);border-radius:20px;background:#fff}.settings-section>header{margin-bottom:1.5rem}.settings-section h2,.settings-section h3{margin:0 0 .35rem}.settings-section>header p{margin:0;color:var(--muted)}.settings-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}.settings-grid .wide-field{grid-column:1 / -1}.settings-field-pair{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-items:end;gap:1rem}.settings-section select[multiple]{min-height:9rem}.repeat-list{display:grid;gap:1rem;margin-top:1.5rem}.repeat-row{display:grid;grid-template-columns:1fr 1fr auto;align-items:end;gap:1rem;padding:1rem;border:1px solid var(--line);border-radius:14px}.portfolio-allocation-list{display:grid;gap:1rem}.portfolio-account-reference{display:flex;align-items:center;flex-wrap:wrap;gap:.2rem .45rem;margin:-.75rem 0 1rem;color:var(--muted);font-size:.9rem}.portfolio-account-reference .text-button{min-height:auto;padding:.15rem;font-size:inherit}.portfolio-treemap{width:100%;height:clamp(16rem,30vw,21rem);margin-bottom:1rem;border-radius:14px;overflow:hidden;background:#f7f9f7}.portfolio-category{overflow:hidden;border:1px solid var(--line);border-radius:16px}.portfolio-category>header{display:flex;justify-content:space-between;align-items:center;gap:1rem;padding:1rem 1.15rem;border-bottom:1px solid rgb(23 52 42 / .1)}.portfolio-category h3,.portfolio-category header p{margin:0}.portfolio-category header p{margin-top:.25rem;color:var(--muted);font-size:.82rem;font-weight:650}.portfolio-allocation-summary.invalid{color:#a2382b;font-weight:750}.portfolio-category-airbag{border-color:#e6d8b8;background:#fff9ec}.portfolio-category-savings{border-color:#c6ddcd;background:#f0f8f2}.portfolio-category-capital{border-color:#d8cfe5;background:#f7f3fb}.portfolio-account-targets{display:grid;gap:.65rem;padding:1rem}.portfolio-account-target-row{grid-template-columns:minmax(0,1fr) minmax(8rem,11rem);align-items:center;gap:1rem;padding:.8rem .9rem;border:1px solid rgb(23 52 42 / .1);border-radius:12px;background:#ffffffb8}.portfolio-account-target-row strong,.portfolio-account-target-row small{display:block}.portfolio-account-target-row small{margin-top:.2rem;color:var(--muted)}.portfolio-target-input{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:.5rem;color:var(--muted);font-variant-numeric:tabular-nums}.portfolio-target-input input{text-align:right}.portfolio-category-empty{margin:0;padding:.3rem;color:var(--muted);font-size:.9rem}.add-row{justify-self:start}.entity-list{display:grid;gap:.75rem}.entity-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(10rem,16rem);align-items:center;gap:1rem;padding:1rem;border:1px solid var(--line);border-radius:14px}.classification-row{width:100%;min-height:74px;color:var(--ink);font-weight:400;text-align:left;transition:border-color .15s ease,box-shadow .15s ease,background-color .15s ease}.classification-row:hover{border-color:#9fb5aa;box-shadow:0 5px 16px #17342a12}.classification-row:focus-visible{outline:3px solid rgb(11 107 77 / .22);outline-offset:2px}.classification-current{border-color:#c9d8e0;background:#f2f7f9;--classification-color:#416779;--classification-fill:#e1edf2}.classification-savings,.classification-savings_funded{border-color:#c6ddcd;background:#f0f8f2;--classification-color:#3f6c4c;--classification-fill:#dfeee3}.classification-airbag,.classification-predictable{border-color:#e6d8b8;background:#fff9ec;--classification-color:#796127;--classification-fill:#f5e9c8}.classification-capital{border-color:#d8cfe5;background:#f7f3fb;--classification-color:#66517c;--classification-fill:#eae1f3}.classification-random{border-color:#c9d9e8;background:#f2f7fc;--classification-color:#446886;--classification-fill:#e0ecf6}.classification-ignored{border-color:#d8dcda;background:#f5f6f5;--classification-color:#66716c;--classification-fill:#e7e9e8}.entity-row.archived-account{border-style:dashed;filter:saturate(.65);opacity:.78}.entity-row strong,.entity-row small{display:block}.entity-row small,.settings-note{margin-top:.3rem;color:var(--muted)}.archived-badge{display:inline-block;margin-top:.55rem;padding:.2rem .5rem;border:1px solid #aab6ad;border-radius:999px;color:#526159;background:#dde3dd;font-size:.72rem;font-weight:750;letter-spacing:.04em;text-transform:uppercase}.classification-badge{justify-self:end;padding:.45rem .7rem;border:1px solid color-mix(in srgb,var(--classification-color) 24%,transparent);border-radius:999px;color:var(--classification-color);background:var(--classification-fill);font-size:.8rem;font-weight:750;white-space:nowrap}.category-identity{display:flex;align-items:center;gap:.75rem;min-width:0}.category-color-swatch{width:.9rem;height:2.4rem;flex:none;border:1px solid rgb(23 52 42 / .14);border-radius:999px;box-shadow:inset 0 0 0 1px #ffffff47}.category-direction-icons{display:flex;align-items:center;gap:.3rem;flex:none}.category-direction-icons:empty{display:none}.category-direction-icon{width:2rem;height:2rem;display:grid;place-items:center;border:1px solid;border-radius:10px;background:#fff}.category-direction-icon ion-icon{font-size:1.15rem}.category-direction-icon.income{border-color:#bedcc9;color:#32724b;background:#eaf6ee}.category-direction-icon.expense{border-color:#e4cbc1;color:#8a5744;background:#fbf0ec}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.settings-save-note{position:sticky;bottom:1rem;min-height:52px;display:flex;align-items:center;justify-content:flex-end;padding:.8rem 1rem;border:1px solid var(--line);border-radius:16px;background:#fffffff0;color:var(--muted);font-weight:700;box-shadow:0 12px 30px #17342a1a;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.settings-save-note.saved{color:var(--accent)}.settings-save-note.invalid,.settings-save-note.error{border-color:#d9aaa4;color:#9a3428}.app-frame{min-height:100dvh;display:grid;grid-template-columns:15rem 1fr}.sidebar{position:sticky;top:0;height:100dvh;display:flex;flex-direction:column;justify-content:space-between;padding:1.5rem;border-right:1px solid var(--line);background:#edf2ed}.brand-mark{display:inline-grid;place-items:center;width:2rem;height:2rem;margin:0 .5rem 0 0;border-radius:9px;background:var(--accent);color:#fff}.primary-nav{display:grid;gap:.45rem}.primary-nav a,.profile-actions a{min-height:44px;display:flex;align-items:center;border-radius:10px;padding:.7rem .8rem;color:#49645a;font-weight:700;text-decoration:none}.primary-nav a.active{background:#fff;color:var(--accent);box-shadow:0 3px 12px #17342a0f}.profile-actions{display:grid;gap:.5rem}.app-column{min-width:0;height:100dvh;overflow-y:auto}.screen-content{max-width:78rem;margin:auto;padding:clamp(1.5rem,4vw,3.5rem)}.screen-content h1{margin:.15rem 0 2rem;font-size:clamp(2rem,5vw,3.5rem)}.empty-card{max-width:40rem;padding:2rem;border:1px solid var(--line);border-radius:20px;background:#fff}.screen-heading,.panel-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem}.screen-heading-actions{width:min(25rem,100%);min-width:0;flex:0 1 25rem;display:flex;justify-content:flex-end;margin-left:auto}.screen-heading-actions .period-control{margin-bottom:0}.period-control{width:100%;max-width:25rem;display:flex;align-items:center;flex-wrap:wrap;gap:.25rem;margin-bottom:1.5rem;padding:.4rem;border-radius:14px;background:#e5ebe5}.period-fast-toggles{display:flex;gap:.25rem}.period-fast-toggle,.period-custom-toggle,.period-shift-button{position:relative;min-height:42px;border-radius:10px;background:transparent;color:var(--muted)}.period-fast-toggle{min-width:3.6rem;display:flex;align-items:center;justify-content:center;gap:.12rem;padding:.55rem .65rem;font-variant-numeric:tabular-nums}.period-fast-toggle ion-icon{margin-right:.25rem;font-size:1.15rem}.period-fast-toggle span:last-child{font-weight:800}.period-prefix{color:inherit;font-size:inherit;font-weight:750}.period-custom-toggle{padding:.55rem .7rem}.period-shift-buttons{display:flex;gap:.1rem}.period-shift-button{flex:0 0 2.1rem;width:2.1rem;display:grid;place-items:center;padding:0}.period-shift-button ion-icon{font-size:1.15rem}.period-shift-button:disabled{opacity:.35;cursor:not-allowed}.period-fast-toggle[aria-pressed=true],.period-custom-toggle[aria-pressed=true]{background:#fff;color:var(--accent);box-shadow:0 2px 8px #17342a14}.period-fast-toggle[data-tooltip]:after,.period-shift-button[data-tooltip]:after{content:attr(data-tooltip);position:absolute;z-index:6;left:50%;bottom:calc(100% + .45rem);translate:-50% .2rem;width:max-content;max-width:16rem;padding:.4rem .55rem;border:1px solid var(--line);border-radius:8px;background:var(--ink);color:#fff;font-size:.75rem;font-weight:650;line-height:1.2;opacity:0;pointer-events:none;transition:opacity .12s ease,translate .12s ease}.period-fast-toggle[data-tooltip]:hover:after,.period-fast-toggle[data-tooltip]:focus-visible:after,.period-shift-button[data-tooltip]:not(:disabled):hover:after,.period-shift-button[data-tooltip]:not(:disabled):focus-visible:after{translate:-50% 0;opacity:1}.period-control label{min-width:min(15rem,100%);gap:.25rem}.period-control input{min-height:40px}.period-control .custom-period-range{flex-basis:100%}.custom-period-range{display:grid;grid-template-columns:repeat(2,minmax(0,9.25rem));justify-content:end;align-items:end;gap:.5rem}.custom-period-range label{min-width:0}.custom-period-range input{width:100%;min-width:0}.metric-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1rem;margin-bottom:1rem}.budget-category-filters{display:flex;flex-wrap:wrap;gap:.45rem;margin:-.25rem 0 1rem}.budget-category-chip{--category-color:var(--accent);min-height:30px;display:inline-flex;align-items:center;gap:.4rem;padding:.3rem .65rem;border:1px solid color-mix(in srgb,var(--category-color) 55%,var(--line));border-radius:999px;background:color-mix(in srgb,var(--category-color) 9%,white);color:var(--ink);font-size:.78rem;font-weight:700;line-height:1;transition:opacity .12s ease,background-color .12s ease,border-color .12s ease}.budget-category-chip:hover{background:color-mix(in srgb,var(--category-color) 16%,white)}.budget-category-chip:focus-visible{outline:3px solid rgb(11 107 77 / .2);outline-offset:2px}.budget-category-chip[aria-pressed=true]{border-color:var(--line);background:#f2f5f2;color:var(--muted);opacity:.68}.budget-category-chip[aria-pressed=true]>span:last-child{text-decoration:line-through}.budget-category-chip-color{width:.65rem;height:.65rem;flex:0 0 .65rem;border:1px solid rgb(23 52 42 / .12);border-radius:50%;background:var(--category-color)}.budget-total-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.budget-total-grid .metric-card{min-width:0;container-type:inline-size}.budget-total-grid .metric-card>strong{max-width:100%;white-space:nowrap;overflow-wrap:normal;font-size:clamp(1rem,8cqi,2.2rem);line-height:1.1;letter-spacing:-.035em}.savings-total-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.savings-bucket-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.savings-metric{--bucket-color:transparent;min-width:0;container-type:inline-size;border-top-color:var(--bucket-color);border-top-width:3px}.metric-card.savings-metric>strong{display:block;max-width:100%;white-space:nowrap;overflow:hidden;overflow-wrap:normal;text-overflow:clip;font-size:clamp(.68rem,7cqi,2.2rem);line-height:1.1;letter-spacing:-.035em}.savings-metric-detail{display:block;margin-top:auto;padding-top:.75rem;color:var(--muted);font-size:.78rem;font-weight:700;line-height:1.25}.savings-metric-detail.positive{color:#267255}.savings-metric-detail.negative{color:#a23f32}.savings-analysis-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-rows:1fr;align-items:stretch;gap:1rem}.savings-coverage-panel,.savings-income-panel{min-width:0;min-height:26rem}.savings-coverage-panel{display:flex;flex-direction:column}.savings-coverage-body{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.8rem;text-align:center}.savings-coverage-body>strong{font-size:clamp(2.5rem,7vw,5rem);line-height:1;letter-spacing:-.055em}.savings-coverage-body>span{color:var(--muted);font-weight:700;font-variant-numeric:tabular-nums}.savings-coverage-body progress{width:min(100%,24rem);height:.75rem}.savings-coverage-body p{max-width:28rem;margin:0;color:var(--muted)}.savings-income-treemap{min-height:18.75rem}.spending-budget-card{display:flex;flex-direction:column}.spending-budget-horizons{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.4rem;margin-top:auto;padding-top:.65rem}.spending-budget-horizons>div{min-width:0;padding:.45rem .4rem;border-radius:10px;background:#f3f6f4;text-align:center}.spending-budget-horizons span{display:block;margin-bottom:.15rem;color:var(--muted);font-size:.65rem;font-weight:700;line-height:1;text-transform:uppercase}.spending-budget-horizons b{display:block;max-width:100%;color:var(--ink);font-size:clamp(.68rem,4cqi,.9rem);font-variant-numeric:tabular-nums;line-height:1.2;letter-spacing:-.03em;white-space:nowrap}.budget-timeline-panel{min-width:0;margin-bottom:1rem}.metric-card,.panel,.state-card{border:1px solid var(--line);border-radius:20px;background:#fff;padding:1.25rem}.metric-card p,.metric-card small{color:var(--muted)}.metric-card strong{display:block;margin:.5rem 0;font-size:clamp(1.45rem,3vw,2.2rem);font-variant-numeric:tabular-nums;overflow-wrap:anywhere}.metric-card.featured{grid-column:span 2;background:#173f32;color:#fff}.metric-card.featured p,.metric-card.featured small{color:#c6dbd0}.metric-card.negative strong,.negative{color:#a2382b}.panel{margin-top:1rem}.panel h2{margin:.2rem 0 1rem}.panel dl{display:flex;gap:1.5rem;margin:0}.panel dl div{display:grid;gap:.2rem}.panel dt{color:var(--muted);font-size:.75rem;text-transform:uppercase}.panel dd{margin:0;font-variant-numeric:tabular-nums}.chart{width:100%;height:280px}.budget-analysis-grid{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);grid-auto-rows:1fr;align-items:stretch;gap:1rem}.budget-visual-panel{display:flex;flex-direction:column}.budget-panel-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem}.budget-panel-heading h2{margin:.2rem 0 .35rem}.budget-panel-heading p{max-width:48rem;margin:0;color:var(--muted);font-size:.9rem;line-height:1.45}.budget-chart{width:100%;min-height:13rem;margin-top:.75rem}.budget-category-treemap{display:flex;flex:1;min-height:17.5rem;margin-top:.75rem;border-radius:14px;overflow:hidden;background:#f7f9f7}.budget-category-treemap .budget-chart{flex:1;height:auto!important;margin-top:0}.budget-empty{margin:1.5rem 0 .25rem;color:var(--muted)}.data-table.budget-transactions-table{min-width:0;table-layout:fixed}.budget-transactions-table th,.budget-transactions-table td{padding:.75rem .55rem;overflow:hidden;text-overflow:ellipsis}.budget-transactions-table th:first-child,.budget-transactions-table td:first-child{width:16%}.budget-transactions-table th:nth-child(2){width:35%}.budget-transactions-table th:nth-child(3){width:22%}.budget-transactions-table th:last-child,.budget-transactions-table td:last-child{width:27%}.budget-transactions-panel{overflow:visible}.budget-trends-section{margin-top:1.5rem}.budget-trend-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-rows:1fr;align-items:stretch;gap:1rem}.budget-trend-card{min-width:0}.budget-trend-card h3{margin:.2rem 0 .35rem;font-size:1.15rem}.budget-trend-card>p{margin:0;color:var(--muted);font-size:.9rem}.budget-trend-key{display:flex;flex-wrap:wrap;gap:.45rem 1rem;margin:.9rem 0 0;color:var(--muted);font-size:.8rem}.budget-trend-key span{display:flex;align-items:center;gap:.35rem}.exact-table{width:100%;border-collapse:collapse;margin-top:1rem;font-variant-numeric:tabular-nums}.exact-table caption{text-align:left;font-weight:700;margin-bottom:.5rem}.exact-table th,.exact-table td{padding:.65rem;border-bottom:1px solid var(--line);text-align:right}.exact-table th:first-child{text-align:left}.table-panel{overflow-x:auto}.data-table{width:100%;min-width:42rem;border-collapse:collapse;font-variant-numeric:tabular-nums}.data-table th,.data-table td{padding:.8rem;border-bottom:1px solid var(--line);text-align:right;white-space:nowrap}.data-table th:first-child{text-align:left}.progress-row{display:grid;gap:.5rem;margin:1rem 0}.progress-row>div{display:flex;justify-content:space-between;gap:1rem}.progress-row span{color:var(--muted)}progress{width:100%;accent-color:var(--accent)}.routing-list{display:grid!important;gap:.7rem!important}.routing-list div{display:flex!important;justify-content:space-between}.allocation-bars{display:grid;gap:1rem}.allocation-bars>div{display:grid;grid-template-columns:8rem 1fr auto;align-items:center;gap:1rem}.allocation-bars>div>div{height:1.25rem;border-radius:6px;background:var(--accent)}.drilldown-actions{display:flex;flex-wrap:wrap;gap:.6rem;margin-top:1rem}.drawer-backdrop{position:fixed;z-index:20;inset:0;display:flex;justify-content:flex-end;background:#0a18136b}.drawer{width:min(100%,34rem);height:100%;overflow:auto;padding:1.5rem;background:#fff;box-shadow:-20px 0 60px #0a18132e}.drawer>header{display:flex;align-items:center;justify-content:space-between;gap:1rem}.split-grid{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.fetched-at{color:var(--muted);font-size:.8rem;text-align:right}.skeleton{min-height:9rem;background:linear-gradient(100deg,#fff 20%,#eef2ee,#fff 70%);background-size:300% 100%;animation:pulse 1.4s infinite}@keyframes pulse{0%{background-position:100% 0}to{background-position:0 0}}.mobile-header,.bottom-tabs{display:none}.transactions-screen{min-width:0}.month-calendar{padding:clamp(.65rem,1.25vw,1rem);border:1px solid var(--line);border-radius:20px;background:#ffffffb8;box-shadow:0 12px 40px #17342a0a}.month-calendar-toolbar{display:flex;align-items:center;justify-content:center;gap:.55rem;margin-bottom:.6rem}.month-calendar-toolbar h2{min-width:9.5rem;margin:0;text-align:center;font-size:1.05rem}.calendar-arrow{width:36px;min-height:36px;display:grid;place-items:center;padding:0;border:1px solid var(--line);border-radius:999px;background:#fff;color:var(--ink)}.calendar-arrow:hover{border-color:#bdcbc1;background:#f7faf7}.month-carousel{display:grid;grid-template-columns:minmax(7rem,9rem) auto minmax(7rem,9rem);justify-content:center;gap:.55rem;align-items:stretch;touch-action:pan-y}.calendar-panel{min-width:0;border:1px solid var(--line);border-radius:14px}.calendar-panel-active{width:max-content;padding:.65rem;background:#fff}.calendar-side-month{min-height:100%;display:flex;flex-direction:column;gap:.45rem;padding:.6rem .5rem;overflow:hidden;background:#eef2ed;color:#557066;opacity:.58;text-align:left}.calendar-side-month:hover{opacity:.78;border-color:#c5d1c8}.calendar-side-next{text-align:right}.side-month-mobile-icon{display:none}.side-month-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:.1rem;font-size:.5rem;text-align:center}.side-month-grid i{min-height:.72rem;display:grid;place-items:center;font-style:normal}.calendar-weekdays,.calendar-days{display:grid;grid-template-columns:repeat(7,32px);gap:.22rem}.calendar-weekdays{margin-bottom:.2rem;color:var(--muted);font-size:.6rem;font-weight:750;text-align:center;text-transform:uppercase}.calendar-weekdays span{padding:.1rem 0}.calendar-day,.calendar-day-spacer{width:32px;height:32px;min-width:0;min-height:0;aspect-ratio:1}.calendar-day{position:relative;display:grid;place-items:center;align-content:center;gap:.04rem;padding:.12rem;border:1px solid transparent;border-radius:8px;background:transparent;color:var(--ink);font-size:.78rem;font-weight:760}.calendar-day small{color:currentColor;font-size:.5rem;font-weight:700;opacity:.72}.calendar-day:disabled{cursor:default;opacity:1}.calendar-day-classified{background:#e2f1e8;color:#175f43}.calendar-day-needs_category{background:#f9e5e2;color:#973d36}.calendar-day-future{background:#eef1ed;color:#8b9891;opacity:.58}.calendar-day:not(:disabled):hover{border-color:currentColor}.calendar-day[aria-pressed=true]{border-color:var(--ink);box-shadow:0 0 0 2px #fff,0 0 0 4px var(--ink)}.calendar-day-today:after{content:"";position:absolute;bottom:.12rem;width:3px;height:3px;border-radius:50%;background:currentColor}.transaction-search-toolbar{position:relative;z-index:3;display:grid;grid-template-columns:minmax(15rem,1fr) auto auto auto auto;align-items:center;gap:.55rem;margin-top:.85rem;padding:.6rem;border:1px solid var(--line);border-radius:17px;background:#ffffffd1;box-shadow:0 8px 28px #17342a09}.transaction-search-field{min-width:0;min-height:42px;display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:.45rem;padding:0 .55rem;border:1px solid #cfd8d1;border-radius:12px;background:#fff;color:var(--muted)}.transaction-search-field:focus-within{border-color:var(--accent);box-shadow:0 0 0 2px color-mix(in srgb,var(--accent) 14%,transparent)}.transaction-search-field>ion-icon{font-size:1.05rem}.transaction-search-field input{width:100%;min-width:0;min-height:40px;padding:0;border:0;outline:0;background:transparent;color:var(--ink);font:inherit;font-size:.82rem}.transaction-search-field input::-webkit-search-cancel-button{display:none}.transaction-search-field button{width:28px;min-height:28px;display:grid;place-items:center;padding:0;border:0;border-radius:999px;background:transparent;color:var(--muted)}.transaction-search-field button:hover{background:#eef3ef;color:var(--ink)}.transaction-filter-menu{position:relative}.transaction-filter-menu summary{min-height:42px;display:flex;align-items:center;gap:.4rem;padding:.45rem .7rem;border:1px solid #cfd8d1;border-radius:12px;background:#fff;color:var(--ink);cursor:pointer;font-size:.78rem;font-weight:720;list-style:none;-webkit-user-select:none;user-select:none;white-space:nowrap}.transaction-filter-menu summary::-webkit-details-marker{display:none}.transaction-filter-menu summary:hover,.transaction-filter-menu[open] summary{border-color:#aec0b4;background:#f7faf7}.transaction-filter-menu summary:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.transaction-filter-menu summary ion-icon{color:var(--muted);font-size:1rem}.transaction-filter-menu summary strong{min-width:20px;min-height:20px;display:grid;place-items:center;padding:0 .3rem;border-radius:999px;background:var(--accent);color:#fff;font-size:.66rem;font-variant-numeric:tabular-nums}.transaction-filter-popover{position:absolute;z-index:8;top:calc(100% + .45rem);width:min(18rem,calc(100vw - 2rem));max-height:min(22rem,55dvh);display:grid;gap:.45rem;padding:.65rem;overflow:auto;border:1px solid #d3ddd5;border-radius:14px;background:#fbfcf9;box-shadow:0 16px 40px #0e211a2e;overscroll-behavior:contain}.transaction-filter-menu-categories .transaction-filter-popover{left:0}.transaction-filter-menu-accounts .transaction-filter-popover{right:0}.transaction-filter-popover>p{margin:0;padding:.05rem .2rem .25rem;color:var(--muted);font-size:.66rem;font-weight:760;letter-spacing:.07em;text-transform:uppercase}.transaction-filter-options{display:grid;gap:.2rem}.transaction-filter-option{min-width:0;display:grid;grid-template-columns:auto auto minmax(0,1fr) auto auto;align-items:center;gap:.48rem;padding:.45rem .5rem;border-radius:9px;color:var(--ink);cursor:pointer;font-size:.76rem}.transaction-filter-option:hover{background:#eef3ef}.transaction-filter-option input{width:16px;height:16px;margin:0;accent-color:var(--accent)}.transaction-filter-color{--filter-color:#64748B;width:10px;height:10px;border-radius:999px;background:var(--filter-color);box-shadow:0 0 0 2px color-mix(in srgb,var(--filter-color) 17%,white)}.transaction-filter-color.empty{visibility:hidden}.transaction-filter-option>span:nth-last-of-type(1){overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.transaction-filter-option em{color:var(--muted);font-size:.62rem;font-style:normal;text-transform:uppercase}.transaction-filter-option small{color:var(--muted);font-size:.68rem;font-variant-numeric:tabular-nums}.transaction-filter-option.archived{opacity:.64}.transaction-filter-results{color:var(--muted);font-size:.72rem;font-variant-numeric:tabular-nums;white-space:nowrap}.transaction-filter-clear-all{min-height:36px;padding:.35rem .55rem;border:0;border-radius:9px;background:transparent;color:var(--accent);font-size:.72rem;font-weight:740;white-space:nowrap}.transaction-filter-clear-all:hover{background:color-mix(in srgb,var(--accent) 9%,white)}.transaction-ledger{max-height:clamp(45rem,87dvh,81rem);margin-top:.85rem;overflow-y:auto;overscroll-behavior:contain;border:1px solid var(--line);border-radius:22px;background:#ffffffc2;scrollbar-gutter:stable}.transaction-date-group{scroll-margin-top:.5rem}.transaction-date-divider{position:sticky;z-index:2;top:0;display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.85rem 1.2rem;border-bottom:1px solid var(--line);background:#f4f6f1f0;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);outline:none}.transaction-date-divider:focus-visible{box-shadow:inset 0 0 0 2px var(--accent)}.transaction-date-divider h2{margin:0;font-size:.95rem}.transaction-date-divider span{color:var(--muted);font-size:.75rem}.transaction-date-actions{display:flex;align-items:center;gap:.55rem}.transaction-add,.transaction-card-action{width:32px;min-height:32px;display:grid;place-items:center;flex:none;padding:0;border:1px solid var(--line);border-radius:999px;background:#fff;color:var(--ink)}.transaction-add:hover,.transaction-card-action:hover{border-color:#b8c8bd;background:#f4f8f4}.transaction-add:focus-visible,.transaction-card-action:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.transaction-add ion-icon,.transaction-card-action ion-icon{font-size:1.05rem}.transaction-list{background:#fff}.transaction-card{position:relative;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:.7rem 1.25rem;padding:1.05rem 3.7rem 1.05rem 1.2rem;border-bottom:1px solid var(--line)}.transaction-card:last-child{border-bottom:0}.transaction-edit{position:absolute;top:.85rem;right:1.1rem}.transaction-card-action:disabled{cursor:wait;opacity:.55}.transaction-card-main{min-width:0}.transaction-categories{display:flex;align-items:center;flex-wrap:wrap;gap:.35rem;margin-bottom:.48rem}.transaction-category{--category-color:#64748B;min-height:28px;display:inline-flex;align-items:center;gap:.4rem;max-width:100%;padding:.15rem .55rem .15rem .2rem;border:1px solid color-mix(in srgb,var(--category-color) 25%,white);border-radius:999px;background:color-mix(in srgb,var(--category-color) 9%,white);color:var(--ink);cursor:pointer;font:inherit;font-size:.72rem;font-weight:720;text-align:left}.transaction-category:hover{border-color:color-mix(in srgb,var(--category-color) 58%,white);background:color-mix(in srgb,var(--category-color) 14%,white)}.transaction-category:focus-visible{outline:2px solid var(--category-color);outline-offset:2px}.transaction-category:disabled{cursor:progress;opacity:.68}.transaction-category>span:last-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.transaction-category-missing{padding:.3rem .6rem;border-color:#efb9b2;background:#fff0ee;color:#973d36}.zenmoney-category-icon{--category-color:#64748B;width:22px;height:22px;flex:none;display:grid;place-items:center;border-radius:999px;background:var(--category-color);color:#fff;font-size:.8rem}.transaction-hold{padding:.26rem .5rem;border-radius:999px;background:#fff3cf;color:#775b00;font-size:.68rem;font-weight:760;text-transform:uppercase}.transaction-syncing{color:var(--muted);font-size:.68rem;font-weight:720}.transaction-card h3{margin:0;overflow-wrap:anywhere;font-size:1rem;line-height:1.35}.transaction-comment{margin:.35rem 0 0;color:#425d53;font-size:.88rem;line-height:1.45;white-space:pre-wrap;overflow-wrap:anywhere}.transaction-provider-details{display:flex;flex-wrap:wrap;gap:.25rem .45rem;margin:.55rem 0 0;color:var(--muted);font-size:.73rem}.transaction-provider-details dt{font-weight:760}.transaction-provider-details dd{margin:0 .45rem 0 0;overflow-wrap:anywhere}.transaction-value{min-width:max-content;display:flex;flex-direction:column;align-items:flex-end;justify-content:center;gap:.15rem;font-variant-numeric:tabular-nums;font-weight:790;white-space:nowrap}.transaction-leg-income{color:#147453}.transaction-leg-outcome{color:#a3443c}.transaction-transfer .transaction-value{font-size:.86rem}.transaction-card-footer{grid-column:1 / -1;min-width:0;display:flex;align-items:center;flex-wrap:wrap;gap:.25rem .4rem;color:var(--muted);font-size:.75rem}.transaction-accounts{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.transaction-editor{display:block;padding:1rem 1.2rem 1.15rem;background:#fbfcf9;box-shadow:inset 3px 0 color-mix(in srgb,var(--accent) 70%,white)}.transaction-editor form{display:grid;gap:.9rem}.transaction-editor-header{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem}.transaction-editor-header .eyebrow{margin:0 0 .4rem}.transaction-editor-actions{display:flex;flex:none;gap:.4rem}.transaction-save{border-color:color-mix(in srgb,var(--accent) 45%,white);background:color-mix(in srgb,var(--accent) 10%,white);color:var(--accent)}.transaction-delete{border-color:#efb9b2;background:#fff7f5;color:#a3443c}.transaction-delete-confirmation{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.75rem .85rem;border:1px solid #efb9b2;border-radius:12px;background:#fff0ee;color:#71332f}.transaction-delete-confirmation p{margin:.2rem 0 0;font-size:.76rem;line-height:1.4}.transaction-delete-confirmation>div:last-child{display:flex;flex:none;flex-wrap:wrap;justify-content:flex-end;gap:.45rem}.transaction-delete-confirmation button{min-height:36px;padding:.45rem .7rem;border:1px solid #dbb6b1;border-radius:9px;background:#fff;color:#71332f;font:inherit;font-size:.75rem;font-weight:720}.transaction-delete-confirmation .transaction-delete-confirm{border-color:#a3443c;background:#a3443c;color:#fff}.transaction-kind-selector{display:flex;flex-wrap:wrap;gap:.3rem}.transaction-kind-selector button{min-height:30px;padding:.3rem .62rem;border:1px solid var(--line);border-radius:999px;background:#fff;color:var(--muted);font-size:.72rem;font-weight:730}.transaction-kind-selector button:hover{border-color:#b8c8bd;color:var(--ink)}.transaction-kind-selector button.selected{border-color:color-mix(in srgb,var(--accent) 46%,white);background:color-mix(in srgb,var(--accent) 10%,white);color:var(--accent)}.transaction-editor-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem}.transaction-editor-fields label,.transaction-editor-category-field{min-width:0;display:grid;align-content:start;gap:.32rem;color:var(--muted);font-size:.7rem;font-weight:720}.transaction-editor-fields input,.transaction-editor-fields select,.transaction-editor-fields textarea{width:100%;min-height:40px;padding:.55rem .65rem;border:1px solid #cfd8d1;border-radius:10px;background:#fff;color:var(--ink);font:inherit;font-size:.82rem}.transaction-editor-fields textarea{min-height:64px;resize:vertical;line-height:1.4}.transaction-editor-fields input:focus,.transaction-editor-fields select:focus,.transaction-editor-fields textarea:focus{border-color:var(--accent);outline:2px solid color-mix(in srgb,var(--accent) 18%,transparent)}.transaction-editor-date{max-width:13rem}.transaction-editor-leg{grid-column:1 / -1;display:grid;grid-template-columns:minmax(12rem,1.45fr) minmax(8rem,.55fr);gap:.75rem}.transaction-amount-input{position:relative}.transaction-amount-input input{padding-right:2.2rem;font-variant-numeric:tabular-nums}.transaction-amount-input>span{position:absolute;top:50%;right:.7rem;color:var(--muted);font-size:.76rem;transform:translateY(-50%);pointer-events:none}.transaction-editor-category-field{grid-column:1 / -1}.transaction-editor-category{min-height:42px;width:100%;display:flex;align-items:center;gap:.45rem;padding:.35rem .55rem;border:1px solid #cfd8d1;border-radius:10px;background:#fff;color:var(--ink);text-align:left}.transaction-editor-category:hover{border-color:#aebeb3}.transaction-editor-category.missing{border-style:dashed;color:#8d3933}.transaction-editor-comment{grid-column:1 / -1}.transaction-editor-error{margin:0;padding:.55rem .7rem;border:1px solid #efb9b2;border-radius:10px;background:#fff0ee;color:#8d3933;font-size:.76rem;font-weight:680}.transaction-editor-saving{margin:0;color:var(--muted);font-size:.74rem;font-weight:680}.transactions-empty,.transactions-state{margin-top:1.25rem;padding:clamp(1.5rem,4vw,2.5rem);border:1px solid var(--line);border-radius:22px;background:#fff;text-align:center}.transactions-empty h2,.transactions-state h2{margin:.2rem 0 .5rem}.transactions-empty p,.transactions-state p{margin:.4rem auto 1rem;color:var(--muted)}.transactions-loading{display:grid;gap:1.25rem}.calendar-skeleton{min-height:17.5rem}.transactions-loading .transaction-ledger{display:grid;gap:1px;padding:1px}.transactions-loading .transaction-card{min-height:7rem;background:#fff}.transaction-mutation-error{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:1rem;padding:.75rem .9rem;border:1px solid #efb9b2;border-radius:14px;background:#fff0ee;color:#8d3933;font-size:.82rem;font-weight:680}.transaction-mutation-error button{width:30px;min-height:30px;display:grid;place-items:center;flex:none;padding:0;border:0;border-radius:999px;background:transparent;color:inherit;font-size:1.25rem}.category-picker-cloud{position:fixed;z-index:50;width:min(22rem,calc(100vw - 1.5rem));border:1px solid #d4ddd6;border-radius:20px;background:#fbfcf9;box-shadow:0 18px 48px #0e211a33,0 4px 14px #0e211a1a}.category-picker-cloud:before{content:"";position:absolute;z-index:0;left:var(--category-picker-arrow-x);width:14px;height:14px;border:1px solid #d4ddd6;background:#fbfcf9;transform:translate(-50%) rotate(45deg)}.category-picker-cloud[data-placement=below]:before{top:-8px;border-right:0;border-bottom:0}.category-picker-cloud[data-placement=above]:before{bottom:-8px;border-top:0;border-left:0}.category-picker-cloud:focus{outline:none}.category-picker-cloud:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.category-picker{position:relative;z-index:1;max-height:inherit;overflow:auto;padding:1rem;border-radius:inherit;background:#fbfcf9;overscroll-behavior:contain}.category-picker>header{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem}.category-picker h2{margin:.12rem 0 0;font-size:1.15rem}.category-picker-close{width:32px;min-height:32px;display:grid;place-items:center;flex:none;padding:0;border:1px solid var(--line);border-radius:999px;background:#fff;color:var(--ink);font-size:1.15rem}.category-picker-close:focus-visible{outline:2px solid var(--ink);outline-offset:2px}.category-picker-transaction{margin:.4rem 0 .75rem;overflow:hidden;color:var(--muted);font-size:.78rem;text-overflow:ellipsis;white-space:nowrap}.category-picker-groups{display:grid;gap:.75rem}.category-picker-group{min-width:0}.category-picker-group+.category-picker-group{padding-top:.7rem;border-top:1px solid var(--line)}.category-picker-group-label{margin:0 0 .45rem;color:var(--muted);font-size:.68rem;font-weight:760;letter-spacing:.08em;text-transform:uppercase}.category-picker-options{display:grid;grid-template-columns:repeat(auto-fill,minmax(46px,1fr));gap:.5rem}.category-picker-option{--category-color:#64748B;width:46px;min-height:46px;display:grid;place-items:center;justify-self:center;padding:0;border:2px solid color-mix(in srgb,var(--category-color) 22%,white);border-radius:999px;background:color-mix(in srgb,var(--category-color) 8%,white);color:var(--ink)}.category-picker-option:hover{border-color:var(--category-color);transform:translateY(-1px)}.category-picker-option:focus-visible{outline:3px solid color-mix(in srgb,var(--category-color) 55%,white);outline-offset:3px}.category-picker-option.selected{border-color:var(--category-color);box-shadow:inset 0 0 0 3px #fff,0 0 0 2px var(--category-color)}.category-picker-option .zenmoney-category-icon{width:32px;height:32px;font-size:1rem}.category-picker-tooltip{position:fixed;z-index:52;max-width:min(14rem,calc(100vw - 1rem));padding:.35rem .55rem;border-radius:8px;background:#18382d;box-shadow:0 6px 18px #0e211a33;color:#fff;font-size:.72rem;font-weight:720;line-height:1.25;pointer-events:none;text-align:center}.category-picker-tooltip:after{content:"";position:absolute;left:50%;width:7px;height:7px;background:#18382d;transform:translate(-50%) rotate(45deg)}.category-picker-tooltip[data-placement=above]:after{bottom:-3px}.category-picker-tooltip[data-placement=below]:after{top:-3px}.category-picker-empty{margin:1rem 0 0;color:var(--muted);text-align:center}@media(max-width:760px){.app-frame{display:block;padding-bottom:calc(4.5rem + env(safe-area-inset-bottom))}.app-column{height:100dvh;padding-bottom:calc(4.5rem + env(safe-area-inset-bottom))}.sidebar{display:none}.mobile-header{position:sticky;top:0;z-index:4;min-height:56px;display:flex;align-items:center;justify-content:space-between;padding:.5rem 1rem;border-bottom:1px solid var(--line);background:#f4f6f1f0;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.screen-content{padding:1.5rem 1rem}.screen-heading{display:grid;grid-template-columns:minmax(0,1fr)}.screen-heading-actions{justify-content:flex-end;margin-bottom:1.5rem}.period-control{gap:.25rem}.period-fast-toggles{gap:.1rem}.period-fast-toggle{min-width:2.65rem;padding:.55rem .15rem}.period-fast-toggle ion-icon{margin-right:.1rem}.period-custom-toggle{padding:.55rem .4rem}.period-shift-button{flex-basis:2rem;width:2rem}.settings-content{padding:1.5rem 1rem 5rem}.settings-heading{display:block}.settings-grid,.repeat-row{grid-template-columns:1fr}.settings-tabs{width:100%}.settings-tabs button{flex:1}.entity-row{grid-template-columns:1fr}.classification-row{grid-template-columns:minmax(0,1fr) auto}.settings-grid .wide-field{grid-column:auto}.portfolio-account-target-row{grid-template-columns:minmax(0,1fr) minmax(7rem,9rem)}.settings-save-note{bottom:.5rem}.metric-grid,.split-grid,.budget-analysis-grid,.budget-trend-grid,.savings-analysis-grid{grid-template-columns:1fr}.budget-transactions-table thead{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.budget-transactions-table tbody,.budget-transactions-table tr{display:block}.budget-transactions-table tr{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:.2rem 1rem;padding:.8rem 0;border-bottom:1px solid var(--line)}.budget-transactions-table th,.budget-transactions-table td{width:auto!important;max-width:none;padding:0;border:0;text-align:left;white-space:normal;overflow:visible;text-overflow:clip}.budget-transactions-table td:first-child{grid-column:1;grid-row:1;color:var(--muted);font-size:.8rem}.budget-transactions-table th:nth-child(2){grid-column:1;grid-row:2}.budget-transactions-table td:nth-child(3){grid-column:1;grid-row:3;color:var(--muted);font-size:.85rem}.budget-transactions-table td:last-child{grid-column:2;grid-row:1 / span 3;align-self:center;text-align:right;white-space:nowrap}.metric-card.featured{grid-column:auto}.panel-heading{display:block}.panel dl{margin-bottom:1rem}.allocation-bars>div{grid-template-columns:1fr;gap:.35rem}.drawer{margin-top:12vh;height:88vh;border-radius:20px 20px 0 0}.bottom-tabs{position:fixed;z-index:5;bottom:0;left:0;right:0;display:block;padding:.35rem .35rem calc(.35rem + env(safe-area-inset-bottom));border-top:1px solid var(--line);background:#fff}.bottom-tabs .primary-nav{grid-template-columns:repeat(5,1fr);gap:.1rem}.bottom-tabs .primary-nav a{justify-content:center;padding:.65rem .08rem;font-size:.68rem;letter-spacing:-.015em}.transactions-screen .screen-heading-actions{justify-content:flex-start;margin-bottom:1rem}.month-calendar{margin-inline:-.35rem;padding:.7rem .45rem;border-radius:16px;overflow:hidden}.month-calendar-toolbar{margin-bottom:.5rem}.month-carousel{position:relative;display:block}.calendar-panel-active{margin-inline:auto;padding:.45rem .3rem;border-radius:12px}.calendar-side-month{position:absolute;z-index:1;top:0;bottom:0;width:1.85rem;min-height:0;display:grid;place-items:center;padding:0;border-radius:12px;opacity:.62}.calendar-side-previous{left:0}.calendar-side-next{right:0}.calendar-side-month strong,.side-month-grid{display:none}.side-month-mobile-icon{display:grid;place-items:center}.calendar-weekdays,.calendar-days{grid-template-columns:repeat(7,30px);gap:.12rem}.calendar-weekdays{font-size:.53rem}.calendar-day,.calendar-day-spacer{width:30px;height:30px}.calendar-day{border-radius:7px;font-size:.7rem}.calendar-day small{font-size:.46rem}.transaction-search-toolbar{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:.45rem;padding:.5rem;border-radius:15px}.transaction-search-field{grid-column:1 / -1}.transaction-filter-menu summary{justify-content:center}.transaction-filter-results{padding-left:.25rem}.transaction-filter-clear-all{justify-self:end}.transaction-filter-menu-categories .transaction-filter-popover{left:0}.transaction-filter-menu-accounts .transaction-filter-popover{right:0}.transaction-ledger{max-height:none;overflow:visible;border-radius:18px;scrollbar-gutter:auto}.transaction-date-divider{top:56px;padding:.75rem .9rem}.transaction-card{grid-template-columns:minmax(0,1fr);gap:.65rem;padding:1rem 3.2rem 1rem .9rem}.transaction-edit{top:.8rem;right:.75rem}.transaction-value{align-items:flex-start;flex-direction:row;flex-wrap:wrap;justify-content:flex-start}.transaction-card-footer{grid-column:1}.transaction-accounts{max-width:100%}.transaction-editor{padding:1rem .9rem}.transaction-editor-header{display:grid;grid-template-columns:minmax(0,1fr) auto}.transaction-editor-fields{grid-template-columns:minmax(0,1fr)}.transaction-editor-date{max-width:none}.transaction-editor-leg{grid-column:1;grid-template-columns:minmax(0,1fr)}.transaction-editor-category-field,.transaction-editor-comment{grid-column:1}.category-picker-cloud{width:min(22rem,calc(100vw - 1rem));border-radius:18px}.category-picker{padding:.85rem}.category-picker-options{grid-template-columns:repeat(auto-fill,minmax(44px,1fr));gap:.45rem}.category-picker-option{width:44px;min-height:44px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}
