body,html{width:100%;height:100%}input::-ms-clear,input::-ms-reveal{display:none}*,:after,:before{box-sizing:border-box}html{font-family:sans-serif;line-height:1.15;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%;-ms-overflow-style:scrollbar;-webkit-tap-highlight-color:rgba(0,0,0,0)}body{margin:0}[tabindex="-1"]:focus{outline:none}hr{box-sizing:content-box;height:0;overflow:visible}h1,h2,h3,h4,h5,h6{margin-top:0;margin-bottom:.5em;font-weight:500}p{margin-top:0;margin-bottom:1em}abbr[data-original-title],abbr[title]{-webkit-text-decoration:underline dotted;text-decoration:underline dotted;border-bottom:0;cursor:help}address{margin-bottom:1em;font-style:normal;line-height:inherit}input[type=number],input[type=password],input[type=text],textarea{-webkit-appearance:none}dl,ol,ul{margin-top:0;margin-bottom:1em}ol ol,ol ul,ul ol,ul ul{margin-bottom:0}dt{font-weight:500}dd{margin-bottom:.5em;margin-left:0}blockquote{margin:0 0 1em}dfn{font-style:italic}b,strong{font-weight:bolder}small{font-size:80%}sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}code,kbd,pre,samp{font-size:1em;font-family:SFMono-Regular,Consolas,Liberation Mono,Menlo,Courier,monospace}pre{margin-top:0;margin-bottom:1em;overflow:auto}figure{margin:0 0 1em}img{vertical-align:middle;border-style:none}[role=button],a,area,button,input:not([type=range]),label,select,summary,textarea{touch-action:manipulation}caption{padding-top:.75em;padding-bottom:.3em;text-align:left;caption-side:bottom}button,input,optgroup,select,textarea{margin:0;color:inherit;font-size:inherit;font-family:inherit;line-height:inherit}button,input{overflow:visible}button,select{text-transform:none}[type=reset],[type=submit],button,html [type=button]{-webkit-appearance:button}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{padding:0;border-style:none}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0}input[type=date],input[type=datetime-local],input[type=month],input[type=time]{-webkit-appearance:listbox}textarea{overflow:auto;resize:vertical}fieldset{min-width:0;margin:0;padding:0;border:0}legend{display:block;width:100%;max-width:100%;margin-bottom:.5em;padding:0;color:inherit;font-size:1.5em;line-height:inherit;white-space:normal}progress{vertical-align:baseline}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{outline-offset:-2px;-webkit-appearance:none}[type=search]::-webkit-search-cancel-button,[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}output{display:inline-block}summary{display:list-item}template{display:none}[hidden]{display:none!important}:root{--bg:#090d0a;--panel:#131813;--panel-soft:#1a201a;--surface-3:#232a23;--ink:#f2f5ef;--muted:#8d978a;--line:rgba(255,255,255,.08);--accent:#34d399;--accent-ink:#052014;--accent-dark:#16352a;--gold:#f7c948;--warn:#ff6b5e;--income:#34d399;--expense:#ff6b5e;--transfer:#5b9dff;--purple:#a78bfa;--shadow:0 14px 34px rgba(0,0,0,.32);--radius-lg:20px;--radius-md:12px;--radius-pill:999px;--sp-1:4px;--sp-2:8px;--sp-3:12px;--sp-4:16px;--sp-5:20px;--sp-6:24px;--sp-8:32px;--font-sans:-apple-system,BlinkMacSystemFont,"SF Pro Display","SF Pro Text","Inter",ui-sans-serif,system-ui,sans-serif}*{box-sizing:border-box}body,html{margin:0;min-height:100%;background:var(--bg);color:var(--ink);font-family:var(--font-sans);-webkit-font-smoothing:antialiased}button,input,select,textarea{font:inherit}button{border:0;cursor:pointer}a{color:inherit;text-decoration:none}.ant-input,.ant-input-number-input,.ant-picker-input>input,.ant-select-selection-search-input,input,select,textarea{font-size:16px!important}.hero-balance,.metric,.money,.tabular-nums{font-variant-numeric:tabular-nums;font-feature-settings:"tnum" 1,"tnum"}@media (prefers-reduced-motion:reduce){*,:after,:before{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;scroll-behavior:auto!important}}.shell{min-height:100vh;min-height:100dvh;display:grid;grid-template-columns:260px 1fr}.sidebar{background:var(--accent-dark);color:#f4faf6;padding:24px 18px;display:flex;flex-direction:column;gap:20px}.brand{font-size:21px;font-weight:800;display:flex;align-items:center;gap:10px}.app-mark,.brand-icon{width:34px;height:34px;border-radius:50%;background:var(--accent);color:var(--accent-ink);display:inline-grid;place-items:center;font-weight:900}.nav{display:grid;grid-gap:8px;gap:8px}.nav a,.nav button{color:#e5f2ed;background:transparent;border-radius:var(--radius-md);padding:11px 12px;display:flex;align-items:center;gap:10px;text-align:left;transition:background .15s ease}.nav a.active,.nav a:hover,.nav button:hover{background:rgba(255,255,255,.12)}.main{padding:calc(28px + env(safe-area-inset-top, 0px)) 28px 28px;overflow:auto}.mobile-header{display:none}.topbar{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:22px}.topbar h1{margin:0;font-size:28px}.muted{color:var(--muted)}.dashboard-loading{min-height:60vh;min-height:60dvh;display:grid;place-items:center;grid-gap:12px;gap:12px;text-align:center}.grid{display:grid;grid-gap:16px;gap:16px}.grid-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-3{grid-template-columns:repeat(3,minmax(0,1fr))}.card,.panel{display:block;background:var(--panel);border:1px solid var(--line);border-radius:var(--radius-lg);padding:18px;box-shadow:var(--shadow)}.metric{font-size:28px;font-weight:800;margin-top:8px}.toolbar{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin-bottom:16px}.form{display:grid;grid-gap:10px;gap:10px}.row{display:flex;gap:10px;align-items:center}.field{display:grid;grid-gap:5px;gap:5px}.field label{font-size:14px;color:var(--muted)}.field input,.field select,.field textarea{border:1px solid var(--line);border-radius:var(--radius-md);padding:10px 11px;background:var(--panel-soft);color:var(--ink);min-width:0}.button{background:var(--accent);color:var(--accent-ink);border-radius:var(--radius-md);padding:10px 13px;display:inline-flex;align-items:center;gap:8px;justify-content:center;font-weight:700;transition:filter .15s ease,transform .1s ease}.button:active{transform:scale(.97)}.button.wide{width:100%}.button.secondary{background:var(--surface-3);color:var(--ink)}.button.danger{background:var(--warn);color:#1a0704}.table-wrap{overflow-x:auto;border:1px solid var(--line);border-radius:8px;background:var(--panel)}table{width:100%;border-collapse:collapse;min-width:780px}td,th{padding:12px 14px;border-bottom:1px solid var(--line);text-align:left;font-size:14px}th{color:var(--muted);font-weight:700;background:#182015}tr:last-child td{border-bottom:0}.income{color:var(--income);font-weight:700}.expense{color:var(--expense);font-weight:700}.error{color:var(--warn)}.login-screen{min-height:100vh;min-height:100dvh;display:grid;place-items:center;padding:22px}.login-card{width:min(460px,100%);background:var(--panel);border:1px solid var(--line);border-radius:8px;padding:24px;box-shadow:var(--shadow)}.login-card h1{margin:14px 0 8px}.balance-hero{position:relative;display:grid;grid-gap:8px;gap:8px;background:linear-gradient(180deg,var(--accent) 0,var(--accent-dark) 100%);border-radius:0 0 28px 28px;margin:calc(-28px - env(safe-area-inset-top, 0px)) -28px 16px;padding:calc(34px + env(safe-area-inset-top, 0px)) 84px 28px;text-align:center;box-shadow:var(--shadow)}.hero-balance{font-size:clamp(30px,6vw,46px);font-weight:900;line-height:1.05}.hero-period-title{color:#fff7e8;font-size:16px;text-transform:capitalize}.hero-period-arrow{position:absolute;top:50%;transform:translateY(-50%);width:54px;height:54px;border-radius:50%;display:inline-grid;place-items:center;color:#fff7e8;background:rgba(255,255,255,.08)}.hero-period-arrow:hover{background:rgba(255,255,255,.14)}.hero-period-arrow.left{left:28px}.hero-period-arrow.right{right:28px}.hero-tap-target{display:grid;grid-gap:6px;gap:6px;justify-items:center;color:inherit}.hero-safe-breakdown{display:flex;flex-wrap:wrap;justify-content:center;gap:4px 10px;font-size:13px;color:#fff7e8;opacity:.85}.hero-safe-breakdown .reserve-note{color:var(--gold);opacity:1;font-weight:700}.horizon-widget{display:block}.horizon-months{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-gap:8px;gap:8px;margin-bottom:4px}.horizon-month{display:grid;grid-gap:3px;gap:3px;text-align:center;padding:10px 4px;background:var(--panel-soft);border-radius:8px}.horizon-month strong{font-size:13px}.hero-title-row{display:flex;gap:6px}.hero-info-btn,.hero-title-row{align-items:center;justify-content:center}.hero-info-btn{display:inline-flex;width:20px;height:20px;border-radius:50%;background:rgba(255,255,255,.16);color:#fff7e8;flex:0 0 auto;transition:background .15s ease}.hero-info-btn:active,.hero-info-btn:hover{background:rgba(255,255,255,.26)}.hero-footer-row{display:flex;align-items:center;justify-content:space-between;gap:8px;width:100%;margin-top:6px;padding-top:10px;border-top:1px solid rgba(255,255,255,.14);font-size:12.5px;color:#fff7e8;opacity:.85}.hero-footer-link{display:inline-flex;align-items:center;gap:3px;color:inherit;font-weight:700;opacity:1}.forecast-warning-card{display:flex;align-items:center;gap:12px;width:100%;margin-top:4px;padding:12px 14px;background:rgba(247,201,72,.12);border:1px solid rgba(247,201,72,.45);border-radius:var(--radius-md);color:inherit;text-align:left;transition:background .15s ease}.forecast-warning-card:active,.forecast-warning-card:hover{background:rgba(247,201,72,.2)}.forecast-warning-icon{flex:0 0 auto;width:34px;height:34px;border-radius:50%;background:rgba(247,201,72,.22);color:var(--gold);display:grid;place-items:center}.forecast-warning-body{flex:1 1;min-width:0;display:grid;grid-gap:2px;gap:2px}.forecast-warning-title{font-size:14px;font-weight:800;color:var(--gold)}.forecast-warning-desc{font-size:12.5px;color:#fff7e8;opacity:.92;line-height:1.4}.forecast-warning-desc .warning-negative-amount{color:var(--warn);font-weight:700;opacity:1}.forecast-warning-chevron{flex:0 0 auto;color:var(--gold);opacity:.8}.month-flow-card{display:block}.month-flow-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-gap:8px;gap:8px;margin-bottom:12px}.month-flow-stat{display:grid;grid-gap:5px;gap:5px;min-width:0}.month-flow-stat .muted{font-size:12px;white-space:nowrap}.month-flow-stat strong{font-size:15px;overflow-wrap:anywhere}.month-flow-bar{display:flex;height:8px;border-radius:var(--radius-pill);background:var(--surface-3);overflow:hidden;margin-bottom:6px}.month-flow-bar-income{height:100%;background:var(--income)}.month-flow-bar-expense{height:100%;background:var(--expense)}.month-flow-insight{display:flex;align-items:center;gap:6px;margin-top:12px;font-size:13px;font-weight:600;color:var(--muted)}.month-flow-insight.income{color:var(--income)}.month-flow-insight.expense{color:var(--expense)}.months-toggle{grid-template-columns:repeat(3,minmax(0,1fr))}.forecast-chart-scroll{overflow-x:auto;padding-bottom:2px}.forecast-chart{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(48px,1fr);grid-gap:10px;gap:10px;align-items:end;min-height:150px;padding:8px 2px 0}.forecast-chart-col{display:grid;grid-template-rows:96px auto auto;justify-items:center;grid-gap:4px;gap:4px;text-align:center}.forecast-chart-bars{display:flex;align-items:flex-end;gap:3px;height:100%;width:100%;justify-content:center}.forecast-bar{width:10px;border-radius:3px 3px 0 0}.forecast-bar.income{background:var(--income)}.forecast-bar.expense{background:var(--expense)}.forecast-chart-balance{font-size:12px;font-weight:700;white-space:nowrap}.forecast-chart-label{font-size:11px;text-transform:capitalize}.forecast-legend{display:flex;flex-wrap:wrap;gap:4px 14px;margin-top:10px;font-size:12px;color:var(--muted)}.forecast-dot{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:5px}.forecast-dot.income{background:var(--income)}.forecast-dot.expense{background:var(--expense)}.hero-balance.hero-balance-negative{color:var(--warn)}.forecast-month-card{display:block;padding:14px;margin-bottom:10px}.forecast-month-card .planning-row:last-child{border-bottom:0;padding-bottom:0}.forecast-source-row{display:grid;grid-template-columns:minmax(0,1fr) auto;grid-gap:10px;gap:10px;align-items:center;padding:9px 0;border-bottom:1px solid rgba(221,232,205,.08)}.forecast-source-row:last-child{border-bottom:0}.purchase-warn{border-color:rgba(255,107,94,.35);background:linear-gradient(180deg,rgba(255,107,94,.08),transparent)}.forecast-source-row small{display:block;color:var(--muted);margin-top:2px}.summary-strip{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:12px;gap:12px}.mini-card{background:var(--panel);border:1px solid var(--line);border-radius:8px;padding:14px;display:grid;grid-gap:6px;gap:6px;box-shadow:var(--shadow)}.planning-hero{background:radial-gradient(130% 160% at 50% -30%,rgba(52,211,153,.3) 0,rgba(52,211,153,0) 62%),var(--panel)}.planning-hero .hero-balance{color:var(--accent)}.planning-breakdown h2,.planning-section h2{margin:0;font-size:22px}.planning-row{display:grid;grid-template-columns:minmax(0,1fr) auto;grid-gap:12px;gap:12px;align-items:center;padding:9px 0;border-bottom:1px solid rgba(221,232,205,.08)}.planning-row:last-child{border-bottom:0}.planning-row span{min-width:0;overflow-wrap:anywhere}.planning-row small{display:block;color:var(--muted);margin-top:3px}.planning-row strong{white-space:nowrap}.planning-row.total{color:var(--income);font-weight:900;border-top:1px solid var(--line);margin-top:4px;padding-top:12px}.planning-row.total.negative{color:var(--warn)}.planning-money-card strong{color:var(--ink);font-size:24px}.planning-section{margin-bottom:16px}.section-head{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:14px}.fund-strip{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(150px,210px);grid-gap:12px;gap:12px;overflow-x:auto;padding-bottom:4px}.fund-card{min-height:150px;display:grid;align-content:start;grid-gap:7px;gap:7px;padding:14px;background:linear-gradient(160deg,rgba(255,255,255,.08),rgba(114,199,255,.06));border:1px solid var(--line);border-radius:8px;cursor:pointer}.fund-card:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.fund-card svg{color:var(--income)}.fund-card span,.fund-card strong{overflow-wrap:anywhere}.fund-card span{font-size:20px;font-weight:900}.fund-card small{color:var(--muted)}.fund-edit-summary{display:grid;grid-gap:6px;gap:6px;padding:12px;background:var(--panel-soft);border:1px solid var(--line);border-radius:8px}.fund-edit-summary svg{color:var(--income)}.fund-edit-summary strong{font-size:18px;overflow-wrap:anywhere}.fund-edit-summary span{font-size:24px;font-weight:900}.fund-edit-summary small{color:var(--muted)}.planning-list{display:grid;grid-gap:4px;gap:4px}.dashboard-filter{margin-top:16px}.dashboard-category-filter .ant-select{width:100%}.dashboard-category-filter .ant-select-selector{min-height:48px;align-items:center}.period-tabs{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-gap:6px;gap:6px;margin-bottom:12px}.period-tabs a,.period-tabs button{min-height:38px;border-radius:8px;background:#30382c;color:var(--ink);border:1px solid var(--line);display:inline-flex;align-items:center;justify-content:center;text-decoration:none}.period-tabs a.active,.period-tabs button.active{background:var(--gold);border-color:var(--gold);color:#211c06;font-weight:900}.stat-kind-tabs{grid-template-columns:repeat(2,minmax(0,1fr))}.expense-accordion{display:grid;grid-gap:8px;gap:8px}.expense-group{background:var(--panel-soft);border:1px solid var(--line);border-radius:8px;overflow:hidden}.expense-summary{width:100%;display:grid;grid-template-columns:auto minmax(0,1fr) auto auto;grid-gap:10px;gap:10px;align-items:center;padding:12px;cursor:pointer;background:transparent;color:var(--ink);text-align:left}.expense-summary span{min-width:0}.expense-summary span strong{overflow-wrap:anywhere}.expense-summary>strong{white-space:nowrap}.expense-summary small{display:block;color:var(--muted);margin-top:2px}.expense-group.open .expense-summary svg{transform:rotate(180deg)}.comment-table{border-top:1px solid var(--line);padding:8px 12px 12px;display:grid;grid-gap:4px;gap:4px}.comment-head,.comment-row{display:grid;grid-template-columns:minmax(0,1fr) 64px 112px;grid-gap:8px;gap:8px;align-items:start}.comment-head{color:var(--muted);font-size:12px;font-weight:800}.comment-row{padding:7px 0;border-top:1px solid rgba(221,232,205,.08);font-size:13px}.comment-row span:first-child{overflow-wrap:anywhere}.comment-row span:nth-child(2),.comment-row strong{text-align:right}.comment-button{width:100%;border:0;color:var(--ink);background:transparent;text-align:left}.comment-button.selected,.comment-button:hover{background:rgba(255,255,255,.06)}.summary-transactions{border-top:1px solid var(--line);border-bottom:1px solid rgba(221,232,205,.08);padding:10px 0 12px}.comment-table .summary-transactions{margin:0 0 4px}.account-list,.mobile-list{display:grid;grid-gap:8px;gap:8px}.account-row,.list-row{background:var(--panel-soft);border:1px solid var(--line);border-radius:8px;padding:10px;display:grid;grid-template-columns:auto minmax(0,1fr) auto;grid-gap:10px;gap:10px;align-items:center}.account-row div strong,.list-row div strong{overflow-wrap:anywhere}.account-row>strong,.list-row>strong{white-space:nowrap}.account-link span,.list-row div{min-width:0}.account-link .muted,.list-row .muted{display:block;font-size:12px;line-height:1.25;margin-top:2px}.payment-month-panel{display:grid;grid-template-columns:auto 1fr auto;align-items:center;text-align:center}.payment-month-panel h2{margin:0;text-transform:capitalize}.payment-load{display:flex;flex-wrap:wrap;gap:8px}.payment-row{grid-template-columns:auto minmax(0,1fr) auto}.payment-candidate-row{grid-template-columns:minmax(0,1fr) minmax(112px,auto);text-align:left}.payment-candidate-row>strong:last-child{justify-self:end;white-space:nowrap;text-align:right}.payment-status{font-size:24px}.payment-status.paid{color:#39d66f}.payment-status.pending{color:#f6c431}.payment-status.overdue{color:#ff5b52}.payment-status.skipped{color:#a8b4a0}.load-more-sentinel{min-height:42px;display:grid;place-items:center;color:var(--muted);font-size:13px;text-align:center}.coin{width:34px;height:34px;border-radius:50%;display:inline-grid;place-items:center;color:white;font-weight:900;flex:0 0 auto}.coin.income{background:#2cb75a;color:white}.coin.expense{background:#d53b32;color:white}.coin.transfer{background:#3178a8;color:white}.coin.account{background:#31b85c;color:white}.account-link{min-width:0;display:grid;grid-template-columns:auto minmax(0,1fr) auto;grid-gap:10px;gap:10px;align-items:center}.row-actions{display:flex;align-items:center;gap:8px}.icon-button,.icon-danger{width:34px;height:34px;border-radius:50%;display:inline-grid;place-items:center;background:rgba(255,255,255,.08);color:var(--ink)}.icon-danger{color:#ffb5ae}.category-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(92px,1fr));grid-gap:12px;gap:12px}.category-tile{position:relative;display:grid;justify-items:center;grid-gap:5px;gap:5px;text-align:center;min-width:0}.category-tile strong{font-size:13px;max-width:100%;overflow-wrap:anywhere}.category-icon{width:46px;height:46px;border-radius:50%;display:grid;place-items:center;color:white}.category-icon-badge{display:grid;place-items:center;flex:0 0 auto;border-radius:10px}.category-icon-badge--sm{width:30px;height:30px;border-radius:9px}.category-icon-badge--md{width:36px;height:36px;border-radius:10px}.category-icon-badge--lg{width:48px;height:48px;border-radius:13px}.category-tree-list{display:flex;flex-direction:column;gap:10px}.category-group-card,.category-leaf-card{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius-lg);overflow:hidden}.category-group-card.archived,.category-leaf-card.archived{opacity:.6}.category-group-head,.category-group-head-row{display:flex;align-items:center}.category-group-head{flex:1 1;min-width:0;gap:12px;padding:14px;min-height:60px;background:transparent;color:var(--ink);text-align:left}.category-group-body{flex:1 1;min-width:0;display:grid;grid-gap:2px;gap:2px}.category-group-name{font-size:15.5px;font-weight:650;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.category-row-menu{flex:0 0 auto;margin-right:10px}.category-child-list{border-top:1px solid var(--line);padding:6px 10px calc(8px + env(safe-area-inset-bottom, 0px));display:flex;flex-direction:column;gap:2px}.category-child-row{display:flex;align-items:center;gap:10px;min-height:50px;padding:8px 10px;border-radius:var(--radius-md);color:var(--ink)}.category-child-row:active,.category-child-row:hover{background:var(--panel-soft)}.category-child-name{flex:1 1;min-width:0;font-size:14.5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.category-add-child-row{display:flex;align-items:center;gap:8px;min-height:46px;padding:8px 10px;border-radius:var(--radius-md);color:var(--accent);font-weight:650;font-size:14px}.category-add-child-row:active,.category-add-child-row:hover{background:var(--panel-soft)}.category-leaf-card,.category-leaf-link{display:flex;align-items:center}.category-leaf-link{flex:1 1;min-width:0;gap:12px;padding:14px;min-height:60px;color:var(--ink)}.category-leaf-name{flex:1 1;min-width:0;font-size:15.5px;font-weight:650;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@media (min-width:861px){.category-page{max-width:640px}}.add-category-label-short{display:none}.category-picker,.search-select{min-width:min(420px,100%);position:relative}.category-suggestions,.select-suggestions{position:absolute;left:0;right:0;top:calc(100% + 6px);z-index:8;display:grid;grid-gap:4px;gap:4px;max-height:260px;overflow-y:auto;padding:6px;background:#11190d;border:1px solid var(--line);border-radius:8px;box-shadow:var(--shadow)}.category-suggestions button,.select-suggestions button{min-height:36px;border-radius:7px;padding:8px 10px;background:transparent;color:var(--ink);border:1px solid transparent;font-size:14px;text-align:left}.category-suggestions button:hover,.select-suggestions button:hover{background:#30382c}.category-suggestions button.selected,.select-suggestions button.selected{background:var(--gold);border-color:var(--gold);color:#211c06;font-weight:800}.select-suggestions button{display:grid;grid-gap:2px;gap:2px}.select-suggestions small{color:var(--muted)}.select-suggestions button.selected small{color:#51440d}.inline-edit{display:grid;grid-template-columns:repeat(5,minmax(120px,1fr)) auto;grid-gap:10px;gap:10px;align-items:end;padding:10px;background:#182015;border:1px solid var(--line);border-radius:8px}.inline-edit .wide-field{grid-column:span 2}.balance-adjust-form{margin-top:14px;align-items:end}.edit-backdrop{position:fixed;inset:0;z-index:20;display:grid;align-items:end;background:rgba(0,0,0,.48)}.edit-frame{width:min(720px,100%);justify-self:center;max-height:min(760px,calc(100vh - 24px));overflow-y:auto;background:var(--panel);border:1px solid var(--line);border-radius:18px 18px 0 0;padding:14px;box-shadow:var(--shadow)}.entity-page{width:min(760px,100%);margin:0 auto}.entity-page .ant-entity-frame{background:var(--panel);border-color:var(--line)}.entity-page,.entity-page *{min-width:0}.entity-page .ant-form,.entity-page .ant-form-item,.entity-page .ant-form-item-control,.entity-page .ant-form-item-control-input,.entity-page .ant-form-item-control-input-content{max-width:100%}.entity-page .ant-btn,.entity-page .ant-input,.entity-page .ant-input-number,.entity-page .ant-picker,.entity-page .ant-select{width:100%;max-width:100%}.entity-page .ant-select-selector{max-width:100%;overflow:hidden}input[type=date]{width:auto!important;justify-self:start}.ant-input-group input[type=date]{width:100%!important;justify-self:stretch}.entity-page .ant-select-selection-item,.entity-page .ant-select-selection-placeholder{overflow:hidden;text-overflow:ellipsis}.edit-frame-header{display:grid;grid-template-columns:auto 1fr;grid-gap:12px;gap:12px;align-items:center;margin-bottom:12px}.edit-frame-header h2{margin:0;font-size:18px}.edit-frame-body{display:grid;grid-gap:10px;gap:10px}.entity-footer{position:-webkit-sticky;position:sticky;bottom:0;z-index:5;display:grid;grid-gap:8px;gap:8px;margin-top:16px;padding:14px 18px calc(14px + env(safe-area-inset-bottom));background:linear-gradient(180deg,rgba(9,13,10,0) 0,var(--bg) 35%)}.entity-footer .ant-btn{width:100%}.check-field{align-self:end;min-height:42px;display:inline-flex;align-items:center;gap:8px;color:var(--ink)}.check-field input{width:18px;height:18px;accent-color:var(--gold)}.receipt-items{display:grid;grid-gap:8px;gap:8px}.receipt-item-card{width:100%;min-height:70px;display:grid;grid-template-columns:minmax(0,1fr) auto 18px;grid-gap:10px;gap:10px;align-items:center;padding:10px 12px;background:var(--panel-soft);border:1px solid var(--line);border-radius:8px;color:var(--ink);text-align:left}.receipt-item-card strong{display:block;line-height:1.25;overflow-wrap:anywhere}.receipt-item-card small{display:block;margin-top:5px;color:var(--muted);line-height:1.2}.receipt-item-card b{white-space:nowrap;color:var(--ink)}.receipt-edit-summary{display:grid;grid-gap:5px;gap:5px;padding:12px;background:var(--panel-soft);border:1px solid var(--line);border-radius:8px}.receipt-edit-summary strong{overflow-wrap:anywhere}.receipt-edit-summary span{color:var(--ink);font-weight:800}.receipt-edit-summary small{color:var(--muted)}.receipt-item-edit{display:grid;grid-template-columns:minmax(0,1fr) minmax(220px,360px);grid-gap:12px;gap:12px;align-items:end;padding:12px;background:var(--panel-soft);border:1px solid var(--line);border-radius:8px}.receipt-item-edit strong{display:block;overflow-wrap:anywhere}.receipt-item-edit small{display:block;color:var(--muted);margin-top:4px}.receipt-stat-list{display:grid;grid-gap:12px;gap:12px}.receipt-stat-group{display:grid;grid-gap:8px;gap:8px;padding:10px;background:rgba(255,255,255,.03);border:1px solid var(--line);border-radius:8px}.receipt-stat-head{display:grid;grid-template-columns:minmax(0,1fr) auto;grid-gap:10px;gap:10px;align-items:center;color:var(--ink);text-decoration:none}.receipt-stat-head span,.receipt-stat-head span strong{overflow-wrap:anywhere}.receipt-stat-head>strong{white-space:nowrap}.receipt-stat-head small{display:block;color:var(--muted);margin-top:3px}.pending-receipt-item{opacity:.82}.stat-check{justify-self:start;margin-bottom:4px}.category-choice-list{display:grid;grid-gap:6px;gap:6px;max-height:min(460px,55vh);overflow-y:auto}.category-choice-list button{min-height:42px;padding:10px 12px;border-radius:8px;background:var(--panel-soft);border:1px solid var(--line);color:var(--ink);text-align:left}.category-choice-list button.selected{background:var(--gold);border-color:var(--gold);color:#211c06;font-weight:900}.tone-0{background:#6d7480}.tone-1{background:#ffbd25;color:#26200a}.tone-2{background:#4467e8}.tone-3{background:#7f50e8}.tone-4{background:#e53d32}.tone-5{background:#42bc5c}.tone-6{background:#69b8ef;color:#092033}.tone-7{background:#e6812a}.only-mobile{display:none}.breadcrumbs{display:inline-flex;flex-wrap:wrap;gap:6px;align-items:center;margin:-4px 0 12px;color:var(--muted)}.breadcrumbs a{color:var(--gold);font-weight:800;text-decoration:none}.stat-filter{margin-bottom:12px}.stat-filter .field{max-width:460px}.stat-hero{display:grid;grid-gap:8px;gap:8px;margin-bottom:16px;padding:18px;background:radial-gradient(130% 160% at 50% -30%,rgba(52,211,153,.28) 0,rgba(52,211,153,0) 62%),var(--panel);border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:var(--shadow)}.stat-hero>div:not(.stat-switcher){color:var(--accent);font-size:34px;font-weight:900;letter-spacing:0;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.stat-hero small{color:var(--muted)}.stat-hero-category{display:flex;align-items:center;gap:8px}.stat-add-button{justify-self:start;margin-bottom:4px}.stat-switcher{display:grid;grid-template-columns:minmax(90px,auto) 1fr minmax(90px,auto);grid-gap:10px;gap:10px;align-items:center}.stat-switcher>strong{text-align:center;font-size:18px}.stat-panel h2{display:flex;gap:8px;align-items:center;margin-top:0}.stat-collapse-summary,.stat-collapsible summary{display:flex;align-items:center;justify-content:space-between;gap:12px;cursor:pointer;list-style:none}.stat-collapse-summary{width:100%;padding:0;border:0;background:transparent;color:var(--ink);text-align:left}.stat-collapsible summary::-webkit-details-marker{display:none}.stat-collapse-summary h2,.stat-collapsible summary h2{margin-bottom:0;min-width:0}.collapse-chevron{flex:0 0 auto;color:var(--muted);transition:transform .16s ease}.stat-collapsible.open .collapse-chevron,.stat-collapsible[open] .collapse-chevron{transform:rotate(180deg)}.stat-collapsible.open .stat-collapse-summary,.stat-collapsible[open] summary{margin-bottom:14px}.stat-list{display:grid;grid-gap:8px;gap:8px}.stat-row{display:grid;grid-template-columns:auto minmax(0,1fr) auto;grid-gap:10px;gap:10px;align-items:center;padding:11px 12px;background:var(--panel-soft);border:1px solid var(--line);border-radius:8px}.stat-row-link{color:var(--ink);text-decoration:none}.stat-row-link:hover{border-color:rgba(255,201,47,.55);background:#30382c}.period-card strong,.stat-row strong{overflow-wrap:anywhere}.stat-row small{display:block;margin-top:3px;color:var(--muted)}.period-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-gap:8px;gap:8px}.period-grid.day-grid{grid-template-columns:repeat(7,minmax(0,1fr))}.period-card{min-height:86px;display:grid;grid-gap:5px;gap:5px;align-content:center;padding:10px;color:var(--ink);text-decoration:none;background:var(--panel-soft);border:1px solid var(--line);border-radius:8px}.period-card span{font-weight:800}.period-card small,.period-card span{color:var(--muted)}.period-card.empty{opacity:.55}.stat-operations{display:grid;grid-gap:8px;gap:8px}.ant-panel{background:var(--panel)!important;box-shadow:var(--shadow)}.ant-panel,.ant-panel .ant-card-head{border-color:var(--line)!important}.tap-row{display:block;color:inherit;text-decoration:none;border-radius:8px}.tap-row:hover{background:rgba(255,255,255,.04)}.tap-row .ant-list-item{padding:12px 8px!important;gap:10px}.tap-row .ant-list-item-meta-title{color:var(--ink)!important;margin-bottom:3px!important;overflow-wrap:anywhere}.tap-row .ant-list-item-meta-description{color:var(--muted)!important;overflow-wrap:anywhere}.ant-filter-grid{display:grid;grid-template-columns:repeat(4,minmax(160px,1fr));grid-gap:10px;gap:10px}.ant-filter-grid.compact{grid-template-columns:repeat(2,minmax(160px,240px))}.ant-entity-frame .ant-card-body{padding:0}.inline-route-frame{background:rgba(0,0,0,.28)}.nested-less{margin-top:14px}.history-list{display:grid;grid-gap:8px;gap:8px;margin-top:12px}.history-row{display:grid;grid-gap:3px;gap:3px;padding:8px 0;border-top:1px solid var(--line)}.bottom-nav{display:none}@supports ((-webkit-backdrop-filter:blur(1px)) or (backdrop-filter:blur(1px))) or (-webkit-backdrop-filter:blur(1px)){.bottom-nav{-webkit-backdrop-filter:saturate(160%) blur(18px);backdrop-filter:saturate(160%) blur(18px)}}.bottom-nav-item{display:grid;justify-items:center;grid-gap:2px;gap:2px;color:var(--muted);background:transparent;padding:6px 4px;border-radius:var(--radius-md);min-width:44px;min-height:44px;transition:color .15s ease}.bottom-nav-item.active{color:var(--accent)}.bottom-nav-item span{font-size:11px;font-weight:600}.bottom-nav-fab{width:52px;height:52px;border-radius:50%;background:var(--accent);color:var(--accent-ink);display:grid;place-items:center;box-shadow:0 8px 20px rgba(52,211,153,.38);transform:translateY(-14px);transition:transform .15s ease}.bottom-nav-fab:active{transform:translateY(-14px) scale(.94)}.pwa-install-hint{position:fixed;left:12px;right:12px;bottom:calc(84px + env(safe-area-inset-bottom, 0px));z-index:35;display:flex;align-items:center;gap:10px;background:var(--panel);border:1px solid var(--line);border-radius:var(--radius-md);box-shadow:var(--shadow);padding:12px 14px;font-size:13px;line-height:1.35;color:var(--ink)}.pwa-install-hint button{flex:0 0 auto;width:26px;height:26px;border-radius:50%;background:var(--surface-3);color:var(--ink);font-size:16px;line-height:1;display:grid;place-items:center}.segmented{display:grid;grid-auto-flow:column;grid-gap:4px;gap:4px;background:var(--panel-soft);border:1px solid var(--line);padding:4px;overflow-x:auto}.segmented,.segmented button{border-radius:var(--radius-pill)}.segmented button{min-height:38px;padding:0 14px;color:var(--muted);background:transparent;font-weight:700;font-size:13px;white-space:nowrap;transition:background .15s ease,color .15s ease}.segmented button.active{background:var(--accent);color:var(--accent-ink)}.segmented a{display:flex;align-items:center;justify-content:center;min-height:38px;padding:0 14px;border-radius:var(--radius-pill);color:var(--muted);font-weight:700;font-size:13px;white-space:nowrap}.segmented a[aria-current=page]{background:var(--accent);color:var(--accent-ink)}.chip-row{display:flex;flex-wrap:wrap;gap:8px}.chip{display:inline-flex;align-items:center;gap:6px;min-height:38px;padding:0 14px;border-radius:var(--radius-pill);background:var(--panel-soft);border:1px solid var(--line);color:var(--ink);font-weight:600;font-size:13px;transition:background .15s ease,border-color .15s ease}.chip.active{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}.progress-track{height:8px;background:var(--surface-3);overflow:hidden}.progress-fill,.progress-track{border-radius:var(--radius-pill)}.progress-fill{height:100%;background:var(--accent);transition:width .3s ease}.progress-fill.warn{background:var(--gold)}.progress-fill.danger{background:var(--warn)}.disclosure-row{width:100%;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:12px 14px;background:var(--panel-soft);border:1px solid var(--line);border-radius:var(--radius-md);color:var(--muted);font-weight:600;font-size:13px}.disclosure-row svg:last-child{transition:transform .18s ease;color:var(--muted)}.disclosure-row[aria-expanded=true] svg:last-child{transform:rotate(90deg)}.stack{grid-gap:10px}.stack,.stepper{display:grid;gap:10px}.stepper{grid-template-columns:auto 1fr auto;align-items:center;grid-gap:10px;padding:4px;background:var(--panel-soft);border:1px solid var(--line);border-radius:var(--radius-md)}.stepper button{width:40px;height:40px;border-radius:8px;background:var(--surface-3);color:var(--ink);font-size:18px;font-weight:800;display:grid;place-items:center}.stepper button:disabled{opacity:.4;cursor:default}.stepper-value{display:grid;text-align:center}.stepper-value strong{font-size:16px}.stepper-value small{color:var(--muted);font-weight:600}.picker-row{width:100%;min-height:48px;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:0 12px;background:var(--panel-soft);border:1px solid var(--line);border-radius:var(--radius-md);color:var(--ink);font-size:16px;text-align:left}.picker-row svg{color:var(--muted);flex:0 0 auto}.hint-box{padding:10px 12px;background:var(--panel-soft);border:1px solid var(--line);border-radius:8px;color:var(--muted);font-size:13px}.recur-icon{color:var(--muted);flex:0 0 auto}.schedule-row-head{display:flex;align-items:center;gap:6px;min-width:0}.schedule-row-head strong{overflow-wrap:anywhere}.sheet-backdrop{position:fixed;inset:0;z-index:40;display:flex;align-items:flex-end;justify-content:center;background:rgba(0,0,0,.5);animation:sheet-fade .18s ease}.sheet{width:min(480px,100%);background:var(--panel);border:1px solid var(--line);border-radius:18px 18px 0 0;box-shadow:var(--shadow);padding-bottom:env(safe-area-inset-bottom,0);animation:sheet-up .22s cubic-bezier(.32,.72,0,1)}.sheet-header{display:grid;grid-template-columns:auto 1fr auto;align-items:center;grid-gap:8px;gap:8px;padding:6px 4px;border-bottom:1px solid var(--line);flex:0 0 auto}.sheet-header strong{text-align:center;font-size:15px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sheet-header-btn{color:var(--muted);font-weight:700;padding:12px 14px;background:transparent;font-size:15px}.sheet-header-btn-primary{color:var(--accent);font-weight:800}.sheet-info-body{padding:14px 16px calc(18px + env(safe-area-inset-bottom, 0px));color:var(--ink);font-size:14px;line-height:1.55;display:grid;grid-gap:10px;gap:10px;overflow-y:auto}.sheet-info-body p{margin:0}.wheel-picker{position:relative;overflow:hidden;touch-action:pan-y}.wheel-picker-highlight{position:absolute;left:14px;right:14px;border-radius:10px;background:var(--panel-soft);border:1px solid var(--line);pointer-events:none}.wheel-picker-scroll{position:relative;height:100%;overflow-y:scroll;scroll-snap-type:y mandatory;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;scrollbar-width:none}.wheel-picker-scroll::-webkit-scrollbar{display:none}.wheel-picker-item{display:block;width:100%;scroll-snap-align:center;scroll-snap-stop:always;background:transparent;color:var(--muted);font-size:17px;font-weight:600;text-align:center;transition:color .12s ease}.wheel-picker-item.active{color:var(--ink);font-size:20px;font-weight:800}@keyframes sheet-up{0%{transform:translateY(100%)}to{transform:translateY(0)}}@keyframes sheet-fade{0%{opacity:0}to{opacity:1}}@media (prefers-reduced-motion:reduce){.sheet,.sheet-backdrop{animation:none}}.form-group{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius-lg);overflow:hidden}.form-group+.form-group{margin-top:12px}.form-row{width:100%;min-height:52px;display:flex;align-items:center;gap:12px;padding:11px 14px;background:transparent;color:var(--ink);text-align:left;border-bottom:1px solid var(--line)}.form-row:last-child{border-bottom:0}.form-row:disabled{opacity:.55}.form-row-icon{width:30px;height:30px;border-radius:9px;background:var(--panel-soft);display:grid;place-items:center;color:var(--muted);flex:0 0 auto}.form-row-body{flex:1 1;min-width:0;display:grid;grid-gap:2px;gap:2px}.form-row-label{font-size:12.5px;color:var(--muted)}.form-row-value{font-size:15px;color:var(--ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.form-row-chevron,.form-row-value.placeholder{color:var(--muted)}.form-row-chevron{flex:0 0 auto}.form-row-static{cursor:default}.setting-row{width:100%;padding:11px 14px;border-bottom:1px solid var(--line)}.setting-row:last-child{border-bottom:0}.setting-row-main{display:flex;align-items:center;gap:12px;min-height:30px}.setting-row-icon{width:30px;height:30px;border-radius:9px;background:var(--panel-soft);display:grid;place-items:center;color:var(--muted);flex:0 0 auto}.setting-row-body{flex:1 1;min-width:0}.setting-row-title{font-size:15px;color:var(--ink)}.setting-row-switch{flex:0 0 auto}.setting-row-desc{margin:6px 0 0;padding-left:42px;font-size:12.5px;line-height:1.4;color:var(--muted)}.amount-block{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius-lg);padding:14px 16px;transition:border-color .15s ease}.amount-block:focus-within{border-color:var(--accent)}.amount-block-label{font-size:12.5px;color:var(--muted);display:block;margin-bottom:6px}.amount-input-row{display:flex;align-items:baseline;gap:8px}.amount-input{flex:1 1;min-width:0;background:transparent;border:0;outline:none;color:var(--ink);font-size:34px;font-weight:800;padding:0;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.amount-input::placeholder{color:var(--muted);font-weight:700}.amount-currency{font-size:18px;font-weight:700;color:var(--muted);flex:0 0 auto}.occurrence-stepper{display:grid;grid-template-columns:auto 1fr auto;align-items:center;grid-gap:8px;gap:8px;padding:8px 14px 12px}.occurrence-stepper button{width:34px;height:34px;border-radius:8px;background:var(--panel-soft);color:var(--ink);font-size:16px;font-weight:800;display:grid;place-items:center;flex:0 0 auto}.occurrence-stepper button:disabled{opacity:.35}.occurrence-stepper-value{text-align:center;min-width:0}.occurrence-stepper-value strong{display:block;font-size:14px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.occurrence-stepper-value small{color:var(--muted)}.date-row{position:relative}.date-row input[type=date]{position:absolute;inset:0;width:100%!important;height:100%;opacity:0;cursor:pointer;padding:0;border:0}.expand-field{padding:10px 14px 12px}.expand-field input{width:100%;color:var(--ink)}.expand-field input,.money-field-row{border:1px solid var(--line);border-radius:var(--radius-md);padding:10px 11px;background:var(--panel-soft)}.money-field-row{margin-top:6px;display:flex;align-items:center;gap:8px}.money-field-row input{flex:1 1;min-width:0;border:0;background:transparent;color:var(--ink);font-size:16px;padding:0}.money-field-suffix{color:var(--muted);font-weight:600;flex:0 0 auto}.picker-sheet{display:flex;flex-direction:column;height:min(640px,82vh)}.picker-sheet-search-wrap{flex:0 0 auto;padding:10px 12px;border-bottom:1px solid var(--line)}.picker-sheet-search{display:flex;align-items:center;gap:8px;background:var(--panel-soft);border:1px solid var(--line);border-radius:var(--radius-md);padding:9px 12px}.picker-sheet-search svg{color:var(--muted);flex:0 0 auto}.picker-sheet-search input{flex:1 1;min-width:0;background:transparent;border:0;outline:none;color:var(--ink);font-size:16px}.picker-sheet-list{flex:1 1 auto;min-height:0;overflow-y:auto;padding:6px 8px calc(10px + env(safe-area-inset-bottom, 0px));-webkit-overflow-scrolling:touch}.picker-sheet-section-label{padding:12px 8px 6px;font-size:12px;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.02em}.picker-sheet-item{width:100%;min-height:52px;display:flex;align-items:center;gap:10px;padding:9px 10px;border-radius:var(--radius-md);background:transparent;color:var(--ink);text-align:left}.picker-sheet-item:active,.picker-sheet-item:hover{background:var(--panel-soft)}.picker-sheet-item.selected{background:var(--accent-dark)}.picker-sheet-item-body{flex:1 1;min-width:0;display:grid;grid-gap:1px;gap:1px}.picker-sheet-item-primary{font-size:15px}.picker-sheet-item-primary,.picker-sheet-item-secondary{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.picker-sheet-item-secondary{font-size:12.5px;color:var(--muted)}.picker-sheet-item-icon{width:32px;height:32px;border-radius:9px;display:grid;place-items:center;color:white;flex:0 0 auto}.picker-sheet-item svg.picker-sheet-check{color:var(--accent);flex:0 0 auto}.picker-sheet-empty{padding:32px 16px;text-align:center;color:var(--muted);font-size:14px}.icon-picker-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(44px,1fr));grid-gap:8px;gap:8px;padding:2px 4px 16px}.icon-picker-cell{position:relative;aspect-ratio:1;border-radius:var(--radius-md);background:var(--panel-soft);border:1px solid var(--line);display:grid;place-items:center;color:var(--ink)}.icon-picker-cell:active,.icon-picker-cell:hover{background:var(--surface-3)}.icon-picker-cell.selected{background:var(--accent-dark);border-color:var(--accent);color:var(--accent)}.icon-picker-check{position:absolute;bottom:2px;right:2px;color:var(--accent-ink);background:var(--accent);border-radius:50%;padding:1px}.color-swatch-row{display:flex;flex-wrap:wrap;gap:12px;padding:6px 2px 4px}.color-swatch{position:relative;width:38px;height:38px;border-radius:50%;flex:0 0 auto;display:grid;place-items:center}.color-swatch.selected{box-shadow:0 0 0 2px var(--panel),0 0 0 4px var(--ink)}.color-swatch svg{color:#fff;filter:drop-shadow(0 1px 1px rgba(0,0,0,.35))}.group-preview-row{display:flex;align-items:center;gap:12px;padding:12px 14px}@media (max-width:860px){.shell{display:block;min-height:100vh;min-height:100dvh;padding-bottom:0}.add-category-label-full{display:none}.add-category-label-short{display:inline}.mobile-header,.sidebar{display:none}.bottom-nav{position:fixed;left:12px;right:12px;bottom:calc(10px + env(safe-area-inset-bottom));z-index:30;display:grid;grid-template-columns:repeat(5,1fr);align-items:center;grid-gap:2px;gap:2px;background:rgba(19,24,19,.82);border:1px solid var(--line);border-radius:26px;padding:6px 8px;box-shadow:var(--shadow)}.main{padding:calc(14px + env(safe-area-inset-top, 0px)) 10px calc(96px + env(safe-area-inset-bottom))}.entity-page{width:100%;margin:0}.entity-page .ant-entity-frame{border-radius:8px;overflow:hidden}.entity-page .ant-card-body{overflow:hidden}.entity-page .edit-frame-header{grid-template-columns:minmax(0,auto) minmax(0,1fr)}.entity-page .edit-frame-header h2{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.entity-page .ant-form-item{margin-bottom:14px}.entity-page .ant-input,.entity-page .ant-input-number,.entity-page .ant-picker,.entity-page .ant-select-selector{min-height:48px}.entity-page .ant-select-selector{align-items:center}.entity-footer{bottom:calc(78px + env(safe-area-inset-bottom));padding:10px 4px calc(10px + env(safe-area-inset-bottom))}.main--no-nav{padding-bottom:calc(14px + env(safe-area-inset-bottom))}.main--no-nav .entity-footer{bottom:0}.main{overflow:visible}.topbar{margin:10px 2px 14px}.topbar h1{font-size:22px}.grid-2,.grid-3{grid-template-columns:1fr}.card,.panel{padding:12px;border-radius:8px;box-shadow:none}.toolbar{display:grid;grid-template-columns:minmax(0,1fr)}.toolbar input[type=file]{min-width:0;max-width:100%}.button,.field input,.field select,.field textarea{min-height:44px}.balance-hero{margin:calc(-14px - env(safe-area-inset-top, 0px)) -10px 14px;padding:calc(24px + env(safe-area-inset-top, 0px)) 58px 22px}.hero-period-arrow{width:42px;height:42px}.hero-period-arrow.left{left:10px}.hero-period-arrow.right{right:10px}.hero-period-title{font-size:14px}.summary-strip{gap:8px}.planning-breakdown h2,.planning-section h2{font-size:19px}.planning-row{grid-template-columns:minmax(0,1fr);gap:4px}.planning-row strong{white-space:normal}.section-head{align-items:flex-start}.section-head .ant-space{justify-content:flex-end}.fund-strip{grid-auto-columns:minmax(136px,72vw)}.fund-card{min-height:136px}.period-tabs{grid-template-columns:repeat(4,minmax(0,1fr))}.period-tabs button{min-height:42px;font-size:13px}.comment-head,.comment-row{grid-template-columns:minmax(0,1fr) 44px 92px;gap:6px}.comment-table{padding:8px}.expense-summary{padding:10px;grid-template-columns:auto minmax(0,1fr) auto 18px}.expense-summary>strong{font-size:14px}.metric{font-size:22px}.only-mobile{display:grid}.only-mobile+.table-wrap{display:none}.category-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:14px 8px}.category-tile .muted{display:none}.category-tile .icon-danger{position:absolute;right:0;top:0;width:24px;height:24px}.category-picker,.search-select{min-width:0}.category-suggestions,.select-suggestions{max-height:240px}.category-suggestions button,.select-suggestions button{min-height:42px}.inline-edit{grid-template-columns:1fr;padding:8px;margin-top:8px}.inline-edit .wide-field{grid-column:auto}.edit-backdrop{align-items:stretch;padding-top:env(safe-area-inset-top)}.edit-frame{max-height:none;border-radius:0;padding:12px 10px calc(92px + env(safe-area-inset-bottom))}.check-field{align-self:stretch;min-height:44px}.receipt-item-card{grid-template-columns:minmax(0,1fr) auto 18px;min-height:76px;padding:11px 10px}.receipt-item-card b{font-size:14px}.receipt-item-edit{gap:8px}.receipt-item-edit,.receipt-stat-head{grid-template-columns:1fr}.category-choice-list{max-height:none}.stat-hero{margin:0 0 12px;padding:14px}.stat-hero>div:not(.stat-switcher){font-size:28px}.stat-switcher{grid-template-columns:84px 1fr 84px;gap:6px}.stat-switcher .button{padding:8px;font-size:12px}.period-grid,.period-grid.day-grid{grid-template-columns:1fr}.period-card{min-height:68px}.stat-row{padding:10px}.ant-filter-grid,.ant-filter-grid.compact{grid-template-columns:1fr}.tap-row .ant-list-item{align-items:flex-start!important}.tap-row .ant-list-item-extra,.tap-row .ant-typography{max-width:38%;text-align:right}.payment-candidate-row{grid-template-columns:1fr;align-items:start}.payment-candidate-row>strong:last-child{justify-self:end;font-size:18px;line-height:1.2}}.stat-account-row{display:flex;align-items:center;gap:8px;margin:10px 0}.stat-account-chip{display:inline-flex;align-items:center;gap:4px}.stat-filters-btn{width:42px;height:42px;flex:0 0 auto}.stat-view-tabs{margin-bottom:14px}.stat-kind-tabs{margin-bottom:4px}.stat-card{position:relative;display:grid;grid-gap:6px;gap:6px;margin-bottom:14px;padding:16px;background:var(--panel);border:1px solid var(--line);border-radius:var(--radius-lg)}.stat-card-value{font-size:27px;font-weight:800;color:var(--ink);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.stat-card-add{position:absolute;top:14px;right:14px}.stat-budget-card{display:grid;grid-gap:6px;gap:6px;margin-bottom:14px;padding:14px 16px;background:var(--panel);border:1px solid var(--line);border-radius:var(--radius-lg);color:inherit}.stat-budget-card-top{display:flex;justify-content:space-between;align-items:center;font-size:13px;font-weight:700}.stat-chip-nav{margin-bottom:18px}.stat-section-head{display:flex;justify-content:space-between;align-items:baseline;margin:4px 2px 10px}.stat-section-title{font-size:12.5px;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.02em}.stat-section-link{font-size:13px;font-weight:700;color:var(--accent)}.stat-donut-section{margin-top:6px}.stat-donut-wrap{display:flex;justify-content:center;padding:10px 0 16px}.stat-donut{position:relative;display:inline-grid;place-items:center}.stat-donut-center{position:absolute;inset:0;display:grid;place-items:center;text-align:center;grid-gap:2px;gap:2px;padding:0 10px}.stat-donut-center strong{font-size:17px;font-weight:800;overflow-wrap:anywhere;line-height:1.15}.stat-donut-center span{font-size:11.5px;color:var(--muted)}.stat-analytics-mode,.stat-day-mode{margin-bottom:12px}.stat-line-list{display:grid}.stat-line-group{border-bottom:1px solid var(--line)}.stat-line-group:last-child{border-bottom:0}.stat-line-row{width:100%;display:grid;grid-template-columns:auto minmax(0,1fr) auto;grid-gap:10px;gap:10px;align-items:center;padding:11px 2px;background:transparent;color:var(--ink);text-align:left}.stat-line-row-tap:active{opacity:.8}.stat-line-row-body{min-width:0;display:grid;grid-template-columns:minmax(0,1fr);grid-gap:5px;gap:5px}.stat-line-row-top{display:flex;justify-content:space-between;align-items:baseline;gap:10px}.stat-line-row-top strong:first-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:14.5px;font-weight:600}.stat-line-row-top strong:last-child{flex:0 0 auto;font-size:14.5px}.stat-line-progress{height:5px}.stat-line-row-bottom{font-size:12px}.stat-account-dot{width:12px;height:12px;border-radius:50%;flex:0 0 auto}.collapse-chevron.open{transform:rotate(180deg)}.stat-expand-body{padding:4px 2px 12px 44px;animation:stat-expand-fade .16s ease}.stat-expand-loading{padding:4px 2px 12px 44px;font-size:13px}.stat-see-all{display:block;margin-top:6px;font-size:13px;font-weight:700;color:var(--accent)}@keyframes stat-expand-fade{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.stat-period-nav{display:grid;grid-template-columns:auto 1fr auto;align-items:center;grid-gap:8px;gap:8px;margin-bottom:14px}.stat-period-nav-arrow{width:42px;height:42px;border-radius:50%;background:var(--panel-soft);border:1px solid var(--line);color:var(--ink);display:inline-grid;place-items:center;flex:0 0 auto}.stat-period-nav-label{min-height:42px;padding:0 12px;border-radius:var(--radius-pill);background:transparent;color:var(--ink);font-size:16px;font-weight:700;text-align:center;text-transform:capitalize}.stat-day-compare{display:inline-flex;align-items:center;gap:6px;margin-top:4px;padding:5px 10px;border-radius:var(--radius-pill);background:var(--panel-soft);font-size:12.5px;font-weight:600;color:var(--muted);width:-moz-fit-content;width:fit-content}.stat-day-compare.down{color:var(--income)}.stat-day-compare.up{color:var(--expense)}.filters-sheet-body{padding:16px;display:grid;grid-gap:8px;gap:8px}.filters-sheet-hint{font-size:12.5px;line-height:1.4;margin:0}.period-picker-body{padding:14px 16px calc(16px + env(safe-area-inset-bottom, 0px));display:grid;grid-gap:14px;gap:14px}.period-picker-year-row{margin-bottom:0}.gran-tabs{width:100%}.month-pick-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-gap:8px;gap:8px}.month-pick-cell{min-height:44px;border-radius:var(--radius-md);background:var(--panel-soft);border:1px solid var(--line);color:var(--ink);font-weight:600;font-size:13.5px}.month-pick-cell.active{background:var(--accent);border-color:var(--accent);color:var(--accent-ink);font-weight:800}.day-pick-wrap{display:grid;grid-gap:6px;gap:6px}.day-pick-weekdays{text-align:center;font-size:11.5px;color:var(--muted)}.day-pick-grid,.day-pick-weekdays{display:grid;grid-template-columns:repeat(7,minmax(0,1fr))}.day-pick-grid{grid-gap:4px;gap:4px}.day-pick-cell{min-height:40px;border-radius:9px;background:var(--panel-soft);color:var(--ink);font-size:13px;font-weight:600}.day-pick-cell.active{background:var(--accent);color:var(--accent-ink);font-weight:800}@media (max-width:860px){.stat-card{padding:14px}.stat-card-value{font-size:24px}.stat-donut-center strong{font-size:15px}.month-pick-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}.forecast-balance-chart-wrap{position:relative}.fbc-row{display:flex;align-items:flex-start;gap:2px}.fbc-yaxis{position:relative;flex:0 0 44px;width:44px}.fbc-yaxis-tick{position:absolute;left:0;right:4px;transform:translateY(-50%);font-size:10.5px;color:var(--muted);text-align:right;white-space:nowrap}.fbc-yaxis-tick.zero{color:var(--ink);font-weight:700}.fbc-plot-col{flex:1 1 auto;min-width:0}.fbc-svg-wrap{position:relative}.forecast-balance-chart{display:block;width:100%;height:190px}.forecast-balance-chart .fbc-gridline{stroke:var(--line);stroke-width:1}.forecast-balance-chart .fbc-gridline.zero{stroke:var(--muted);stroke-width:1.5}.forecast-balance-chart .fbc-dot{stroke:var(--panel);stroke-width:1.5}.forecast-balance-chart .fbc-dot.selected{stroke:var(--ink);stroke-width:2}.fbc-xaxis{position:relative;height:18px;margin-top:4px}.fbc-xaxis-label{position:absolute;top:0;transform:translateX(-50%);font-size:11px;color:var(--muted);text-transform:capitalize;white-space:nowrap}.fbc-xaxis-label.align-start{transform:translateX(0)}.fbc-xaxis-label.align-end{transform:translateX(-100%)}.forecast-balance-tooltip{position:absolute;padding:7px 10px;background:#0d130c;border:1px solid var(--line);border-radius:8px;box-shadow:var(--shadow);font-size:12.5px;line-height:1.35;white-space:nowrap;pointer-events:none;z-index:3}.forecast-balance-tooltip strong{display:block;font-size:14px;margin:1px 0}.forecast-balance-tooltip small{color:var(--muted)}.forecast-summary-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:8px;gap:8px;margin-top:14px}@media (max-width:860px){.forecast-balance-chart{height:170px}.fbc-yaxis{flex-basis:40px;width:40px}.fbc-yaxis-tick{font-size:10px}.forecast-balance-tooltip{font-size:12px;padding:6px 9px;white-space:normal;max-width:190px}}.filters-card{margin-bottom:16px}.filters-card>.disclosure-row{padding:14px 16px}.filters-card-title{display:flex;align-items:center;gap:10px;min-width:0;color:var(--ink);font-weight:700}.filters-card-badge{display:inline-flex;align-items:center;justify-content:center;min-width:20px;height:20px;padding:0 6px;border-radius:var(--radius-pill);background:var(--accent);color:var(--accent-ink);font-size:11.5px;font-weight:800;flex:0 0 auto}.filters-card-actions{display:flex;align-items:center;gap:14px;flex:0 0 auto}.filters-card-reset{color:var(--accent);font-weight:700;font-size:13px;background:transparent;padding:4px 2px}.filters-card-body{display:grid;grid-gap:10px;gap:10px;margin-top:14px}.filters-grid-2{grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:10px}.filters-grid-2,.filters-grid-3{display:grid;gap:10px;align-items:start}.filters-grid-3{grid-template-columns:repeat(3,minmax(0,1fr));grid-gap:10px}.filters-search-field{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius-lg);display:flex;align-items:center;gap:10px;padding:0 14px;min-height:52px}.filters-search-field svg{color:var(--muted);flex:0 0 auto}.filters-search-field input{flex:1 1;min-width:0;background:transparent;border:0;outline:none;color:var(--ink);font-size:15px}.filters-dropzone{display:grid;justify-items:center;grid-gap:6px;gap:6px;text-align:center;padding:26px 16px;border:1.5px dashed var(--line);border-radius:var(--radius-lg);background:var(--panel-soft);cursor:pointer;transition:border-color .15s ease,background .15s ease}.filters-dropzone,.filters-dropzone svg{color:var(--muted)}.filters-dropzone strong{color:var(--ink);font-size:14px}.filters-dropzone small{font-size:12.5px}.filters-dropzone.drag-over{border-color:var(--accent);background:rgba(52,211,153,.08);color:var(--ink)}.filters-dropzone-file{color:var(--accent);font-weight:700}.filters-dropzone input[type=file]{display:none}@media (max-width:860px){.filters-grid-2,.filters-grid-3{grid-template-columns:1fr}.filters-card>.disclosure-row{padding:12px 14px}}.summary-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-gap:10px;gap:10px}.summary-grid.cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.summary-card{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius-lg);padding:12px 14px;display:grid;grid-gap:4px;gap:4px;min-width:0}.summary-card .muted{font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.summary-card strong{font-size:19px;font-weight:800;overflow-wrap:anywhere}.upcoming-row{display:flex;gap:10px;overflow-x:auto;padding-bottom:2px}.upcoming-card{flex:1 1;min-width:128px;background:var(--panel-soft);border:1px solid var(--line);border-radius:var(--radius-lg);padding:12px;display:grid;grid-gap:4px;gap:4px;color:inherit;text-decoration:none}.upcoming-card .muted{font-size:12px}.upcoming-amount{font-size:16px;font-weight:800}.upcoming-title{font-size:12.5px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.month-item-row{width:100%;display:flex;align-items:center;gap:12px;padding:11px 12px;background:var(--panel-soft);border:1px solid var(--line);border-radius:var(--radius-lg);text-align:left;color:inherit;min-height:64px}.month-item-date{flex:0 0 auto;width:44px;height:44px;border-radius:12px;background:var(--panel);border:1px solid var(--line);display:grid;place-items:center;text-align:center;line-height:1.15}.month-item-date strong{display:block;font-size:16px;font-weight:800}.month-item-date span{display:block;font-size:10px;color:var(--muted);text-transform:uppercase;letter-spacing:.02em}.month-item-body{flex:1 1;min-width:0;display:grid;grid-gap:2px;gap:2px}.month-item-title{font-size:14.5px;font-weight:600}.month-item-subtitle,.month-item-title{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.month-item-subtitle{font-size:12.5px;color:var(--muted)}.month-item-trailing{flex:0 0 auto;text-align:right;display:grid;grid-gap:3px;gap:3px;justify-items:end}.month-item-amount{font-size:15px;font-weight:800;white-space:nowrap}.month-item-status{font-size:12px;font-weight:700;white-space:nowrap;display:inline-flex;align-items:center;gap:4px;color:var(--muted)}.month-item-status.paid{color:var(--income)}.month-item-status.overdue{color:var(--warn)}.offline-badge{display:inline-flex;align-items:center;gap:4px;margin-top:4px;padding:1px 7px;border-radius:var(--radius-pill);font-size:11px;font-weight:700;line-height:1.6;background:var(--panel-soft);border:1px solid var(--line);color:var(--muted);width:-moz-fit-content;width:fit-content}.offline-badge.error{color:var(--warn);border-color:var(--warn)}.rule-info-card{display:flex;gap:12px;align-items:flex-start;padding:14px;background:var(--panel-soft);border:1px solid var(--line);border-radius:var(--radius-lg);margin-bottom:14px}.rule-info-icon{flex:0 0 auto;width:40px;height:40px;border-radius:50%;background:var(--accent-dark);color:var(--accent);display:grid;place-items:center}.rule-info-card strong{display:block;margin-bottom:3px}.rule-info-card p{margin:0;color:var(--muted);font-size:13px;line-height:1.4}.rule-row-trailing{display:flex;align-items:center;gap:10px;flex:0 0 auto}.rule-row-trailing strong{white-space:nowrap}.rule-list-item .schedule-row-head strong{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;overflow-wrap:normal}.rule-list-item.inactive{opacity:.55}@media (max-width:860px){.summary-card{padding:10px 12px}.summary-card strong{font-size:16px}.summary-card .muted{white-space:normal;overflow:visible;text-overflow:clip;line-height:1.2}.upcoming-card{min-width:118px;padding:10px}}