:root{--bg:#f7f6f2;--card:#fff;--ink:#1d2925;--muted:#75807b;--green:#1f4b3f;--green2:#2e6a58;--cream:#f3c969;--red:#de6049;--line:#e7e5de}*{box-sizing:border-box}html{background:#e8e6df}body{margin:0;background:var(--bg);color:var(--ink);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,PingFang SC,Microsoft YaHei,sans-serif;-webkit-font-smoothing:antialiased}button,input,select,textarea{font:inherit}button{cursor:pointer}.app-shell{width:100%;max-width:640px;min-height:100dvh;margin:auto;background:var(--bg);position:relative}.content{padding:calc(22px + env(safe-area-inset-top)) 20px calc(104px + env(safe-area-inset-bottom));min-height:100dvh}.simple-header,.top-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:22px}.simple-header h1,.top-header h1{font-size:25px;line-height:1.2;margin:4px 0}.eyebrow,.simple-header p{margin:0;color:var(--muted);font-size:14px}.simple-header{display:block}.avatar{width:44px;height:44px;border-radius:16px;background:#dce9e2;color:var(--green);display:grid;place-items:center;font-size:18px;font-weight:800}.avatar.large{width:64px;height:64px;border-radius:22px;font-size:25px}.balance-card{background:linear-gradient(145deg,#1b493c,#2d6755);color:#fff;border-radius:28px;padding:24px;box-shadow:0 12px 30px #1f4b3f25}.balance-card p{margin:0;color:#d9e6e1;font-size:14px}.balance-card h2{font-size:34px;letter-spacing:-1px;margin:8px 0 24px}.balance-split{display:grid;grid-template-columns:1fr 1fr;border-top:1px solid #ffffff25;padding-top:18px;grid-gap:16px;gap:16px}.balance-split span{font-size:13px;color:#d9e6e1;display:grid;grid-template-columns:auto 1fr;align-items:center;grid-gap:7px;gap:7px}.balance-split b{grid-column:2;color:#fff;font-size:16px}.expense-dot,.income-dot{width:8px;height:8px;border-radius:50%;display:inline-block;background:#8fd3af}.expense-dot{background:#f3a48f}.today-row{display:flex;align-items:center;justify-content:space-between;background:#fff;border-radius:20px;padding:18px;margin:16px 0 26px;border:1px solid var(--line)}.today-row p{margin:0 0 5px;color:var(--muted);font-size:13px}.today-row strong{font-size:21px}.parse-button{border:0;border-radius:14px;padding:11px 13px;background:#fff4d5;color:#775c13;font-weight:700;display:flex;gap:7px;align-items:center}.parse-button svg{width:17px}.section-heading{display:flex;align-items:center;justify-content:space-between}.chart-card h2,.section-heading h2{font-size:19px;margin:0 0 13px}.section-heading button{background:none;border:0;color:var(--green2);font-weight:700;display:flex;align-items:center;gap:2px}.section-heading svg{width:18px}.entry-list{display:flex;flex-direction:column;gap:9px}.entry-row{width:100%;display:flex;align-items:center;gap:12px;border:0;background:#fff;padding:13px;border-radius:18px;text-align:left;min-width:0}.entry-icon{width:42px;height:42px;border-radius:14px;display:grid;place-items:center;background:#fee8e3;color:var(--red);flex:0 0 auto}.entry-icon.income{background:#e2f0e9;color:#32815d}.entry-icon svg{width:20px}.entry-main{display:flex;flex-direction:column;gap:4px;min-width:0;flex:1 1}.entry-main strong{font-size:15px}.entry-main small{font-size:12px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.entry-amount{font-weight:800;color:var(--ink);font-size:15px;white-space:nowrap}.entry-amount.income{color:#32815d}.entry-actions{display:grid;grid-template-columns:1fr auto auto;align-items:center;background:#fff;border-radius:18px}.entry-actions .entry-row{background:transparent}.entry-actions>button:not(.entry-row){border:0;background:transparent;color:#71807a;padding:8px}.entry-actions svg{width:17px}.entry-actions .danger-icon{color:var(--red)!important;margin-right:7px}.bottom-nav{position:fixed;z-index:10;bottom:0;left:50%;transform:translateX(-50%);width:100%;max-width:640px;height:calc(76px + env(safe-area-inset-bottom));padding:8px 12px env(safe-area-inset-bottom);background:#fffc;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border-top:1px solid #deddd7;display:grid;grid-template-columns:repeat(5,1fr);align-items:center}.bottom-nav button{border:0;background:transparent;color:#84908b;display:flex;flex-direction:column;align-items:center;gap:3px;font-size:11px}.bottom-nav svg{width:22px}.bottom-nav .active{color:var(--green);font-weight:700}.bottom-nav .nav-add{width:52px;height:52px;border-radius:18px;background:var(--green);color:#fff;justify-self:center;transform:translateY(-12px);box-shadow:0 8px 18px #1f4b3f44}.nav-add svg{width:26px}.search-box{display:flex;align-items:center;gap:9px;background:#fff;border:1px solid var(--line);border-radius:16px;padding:0 14px;height:50px}.search-box svg{width:19px;color:var(--muted)}.search-box input{border:0;outline:0;background:transparent;width:100%;font-size:16px}.filter-chips{display:flex;overflow:auto;gap:8px;margin:14px -20px 18px;padding:0 20px;scrollbar-width:none}.filter-chips button{white-space:nowrap;border:1px solid var(--line);background:#fff;color:#58645f;border-radius:99px;padding:8px 14px}.filter-chips .active{background:var(--green);color:#fff;border-color:var(--green)}.segmented{display:grid;grid-template-columns:1fr 1fr;background:#e9e8e2;border-radius:14px;padding:4px;margin-bottom:14px}.segmented button{border:0;background:transparent;padding:9px;border-radius:11px;color:var(--muted)}.segmented .active{background:#fff;color:var(--ink);font-weight:700;box-shadow:0 2px 8px #2221}.stat-summary{display:grid;grid-template-columns:repeat(3,1fr);background:#fff;border:1px solid var(--line);border-radius:19px;margin-bottom:14px}.stat-summary div{padding:15px 8px;text-align:center;border-right:1px solid var(--line)}.stat-summary div:last-child{border:0}.stat-summary span{display:block;color:var(--muted);font-size:12px;margin-bottom:5px}.stat-summary strong{font-size:14px}.income-text{color:#32815d}.chart-card,.info-card,.profile-card{background:#fff;border:1px solid var(--line);border-radius:20px;padding:18px;margin-bottom:14px}.donut-wrap{display:flex;align-items:center;gap:22px}.donut{width:135px;height:135px;border-radius:50%;display:grid;place-items:center;position:relative;flex:0 0 auto}.donut:after{content:"";position:absolute;width:78px;height:78px;background:#fff;border-radius:50%}.donut span{z-index:1;font-size:19px;font-weight:800;text-align:center}.donut small{display:block;font-size:10px;color:var(--muted);font-weight:500}.legend{flex:1 1;display:flex;flex-direction:column;gap:8px}.legend div{display:grid;grid-template-columns:auto 1fr auto;align-items:center;grid-gap:7px;gap:7px;font-size:12px}.legend i{width:8px;height:8px;border-radius:50%}.legend b{font-size:12px}.bars{display:flex;flex-direction:column;gap:13px}.bar-row{display:grid;grid-template-columns:62px 1fr 75px;align-items:center;grid-gap:8px;gap:8px;font-size:12px}.bar-row>div{height:8px;background:#eef0ed;border-radius:99px;overflow:hidden}.bar-row i{display:block;height:100%;background:var(--green2);border-radius:99px}.bar-row b{text-align:right;font-size:11px}.profile-card{display:flex;align-items:center;gap:14px}.info-card h3,.profile-card h2{margin:0 0 4px}.info-card p,.profile-card p{margin:0;color:var(--muted);font-size:14px;line-height:1.6}.logout-button{width:100%;height:52px;border:1px solid #f2c6bc;background:#fff;color:var(--red);border-radius:17px;display:flex;justify-content:center;align-items:center;gap:9px;font-weight:700}.logout-button svg{width:19px}.empty-state{text-align:center;padding:40px 20px}.brand-mark,.empty-state>div{width:64px;height:64px;border-radius:22px;background:var(--green);color:var(--cream);font-size:29px;font-weight:800;display:grid;place-items:center;margin:0 auto}.empty-state h3{margin:15px 0 6px}.empty-inline,.empty-state p{color:var(--muted);font-size:14px}.primary{border:0;border-radius:16px;background:var(--green);color:#fff;padding:13px 18px;font-weight:800;display:inline-flex;align-items:center;justify-content:center;gap:6px}.primary svg{width:18px}.wide{width:100%;height:52px}.primary:disabled{opacity:.4}.modal-backdrop{position:fixed;z-index:20;inset:0;background:#17221d70;display:flex;justify-content:center;align-items:flex-end}.sheet{width:100%;max-width:640px;max-height:94dvh;overflow:auto;background:var(--bg);border-radius:28px 28px 0 0;padding:12px 20px calc(20px + env(safe-area-inset-bottom));box-shadow:0 -20px 40px #0002}.sheet-header{height:54px;display:grid;grid-template-columns:45px 1fr 45px;align-items:center}.sheet-header h2{text-align:center;font-size:19px;margin:0}.sheet-header button{border:0;background:transparent;padding:8px;color:var(--ink)}.sheet-header svg{width:22px}.sheet-header .save-link{color:var(--green2);font-weight:800;padding:0}.type-switch{display:grid;grid-template-columns:1fr 1fr;background:#e9e8e2;border-radius:15px;padding:4px;margin-top:8px}.type-switch button{border:0;background:transparent;padding:10px;border-radius:12px;font-weight:700;color:var(--muted)}.type-switch .active{background:#fff;box-shadow:0 2px 8px #2221}.type-switch .expense{color:var(--red)}.type-switch .income{color:#32815d}.amount-field{display:flex;justify-content:center;align-items:center;padding:23px 0 18px}.amount-field span{font-size:31px;font-weight:800}.amount-field input{width:210px;border:0;outline:0;background:transparent;font-size:46px;font-weight:800;color:var(--ink)}.form-grid{display:grid;grid-template-columns:1fr 1fr;grid-gap:12px;gap:12px}.form-grid label,.login-card label{color:var(--muted);font-size:13px;display:flex;flex-direction:column;gap:7px}.form-grid input,.form-grid select,.form-grid textarea,.login-card input{width:100%;border:1px solid var(--line);border-radius:14px;background:#fff;color:var(--ink);padding:12px;outline:0;font-size:16px}.form-grid textarea{resize:none}.form-grid .full{grid-column:1/-1}.bottom-save{margin-top:16px}.parser-hint{color:var(--muted);line-height:1.6}.parser-input{width:100%;border:2px solid #dcdad1;border-radius:18px;padding:15px;font-size:18px;line-height:1.6;resize:none;outline:0}.parser-input:focus{border-color:var(--green2)}.parse-preview{background:#fff;border:1px solid var(--line);border-radius:18px;padding:15px;margin:14px 0}.parse-preview h3{margin:0 0 10px}.parse-preview div{display:flex;justify-content:space-between;border-bottom:1px solid #efeee9;padding:8px 0;font-size:14px}.parse-preview p{font-size:12px;color:var(--muted);margin:10px 0 0}.login-page{min-height:100dvh;background:radial-gradient(circle at top,#fff9e8,var(--bg) 48%);display:grid;place-items:center;padding:24px}.login-card{width:100%;max-width:400px}.login-card h1{text-align:center;margin:17px 0 4px;font-size:30px}.login-card .muted{text-align:center;color:var(--muted);margin:0 0 30px}.login-card form{display:flex;flex-direction:column;gap:17px;background:#fff;border:1px solid var(--line);border-radius:24px;padding:22px}.login-card input{height:50px}.form-error{color:var(--red);font-size:13px;margin:0}.privacy-note{text-align:center;color:var(--muted);font-size:12px;margin-top:18px}.splash{min-height:100dvh;display:grid;place-content:center;text-align:center;color:var(--muted);grid-gap:8px;gap:8px}.splash p{margin:0}@media(min-width:641px){body{padding:24px 0}.app-shell{border-radius:30px;overflow:hidden;box-shadow:0 20px 70px #1c2d2520}.app-shell,.content{min-height:calc(100dvh - 48px)}.bottom-nav{bottom:24px;border-radius:0 0 30px 30px}.modal-backdrop{align-items:center}.sheet{border-radius:28px;max-height:90dvh}.parser-sheet{max-width:520px}}@media(max-width:380px){.content{padding-left:15px;padding-right:15px}.balance-card{padding:20px}.balance-card h2{font-size:30px}.donut{width:115px;height:115px}.donut-wrap{gap:13px}.entry-amount{font-size:13px}}.remembered-account{display:flex;align-items:center;gap:12px;background:#f7f6f2;border:1px solid var(--line);border-radius:18px;padding:13px}.remembered-account span{width:40px;height:40px;border-radius:14px;background:#e2f0e9;color:var(--green);display:grid;place-items:center}.remembered-account svg{width:19px}.remembered-account small{display:block;color:var(--muted);font-size:12px;margin-bottom:3px}.remembered-account strong{font-size:16px}.sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}.account-settings h3{display:flex;align-items:center;gap:8px}.account-settings h3 svg{width:18px;color:var(--green2)}.account-settings form{display:flex;flex-direction:column;gap:10px;margin-top:12px}.account-settings input{width:100%;height:48px;border:1px solid var(--line);border-radius:14px;background:#fff;color:var(--ink);padding:12px;outline:0;font-size:16px}.settings-message{margin:10px 0 0!important;color:var(--green2)!important}.smart-input-row{display:grid;grid-template-columns:1fr 72px;grid-gap:10px;gap:10px;align-items:stretch}.smart-input-row .parser-input{height:132px}.voice-button{border:1px solid var(--line);border-radius:18px;background:#fff;color:var(--green);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:7px;font-weight:800}.voice-button svg{width:24px}.voice-button span{font-size:12px}.voice-button.active{background:#fff4d5;color:#775c13;border-color:#f3d98c}.quick-confirm-card{background:#fff;border:1px solid var(--line);border-radius:22px;padding:18px;margin:14px 0 0}.quick-confirm-card>strong{display:block;font-size:32px;letter-spacing:-.5px;margin-bottom:10px}.quick-confirm-card>div:first-of-type{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:8px}.quick-confirm-card>div:first-of-type span{background:#f1f3ef;color:var(--green);border-radius:99px;padding:7px 11px;font-size:13px;font-weight:800}.quick-confirm-card p{margin:0 0 14px;color:var(--muted);font-size:13px;line-height:1.5}.quick-actions{display:grid!important;grid-template-columns:1fr 1fr;grid-gap:10px!important;gap:10px!important}.quick-actions button{height:50px;border-radius:16px;font-weight:800}.quick-actions button:first-child{border:1px solid var(--line);background:#fff;color:var(--ink)}.voice-debug-card{margin-top:14px;padding:12px}.voice-debug-card h3{margin:0 0 8px;font-size:15px}.voice-debug-card p{margin:4px 0;font-size:12px;line-height:1.45;color:var(--muted)}.voice-debug-log{display:flex;flex-direction:column;gap:6px;margin-top:10px;max-height:160px;overflow:auto;border-top:1px solid var(--line);padding-top:10px}.voice-debug-log div{display:grid;grid-template-columns:auto auto 1fr;grid-gap:8px;gap:8px;align-items:start;font-size:11px}.voice-debug-log strong{color:var(--green)}.voice-debug-log span{color:var(--ink);font-weight:700}.voice-debug-log small{color:var(--muted);grid-column:3}body{font-size:14px}.content{padding:calc(14px + env(safe-area-inset-top)) 14px calc(86px + env(safe-area-inset-bottom))}.simple-header,.top-header{margin-bottom:12px}.simple-header h1,.top-header h1{font-size:21px;margin:2px 0}.eyebrow,.simple-header p{font-size:12px}.avatar{width:36px;height:36px;border-radius:13px;font-size:15px}.balance-card{border-radius:20px!important;padding:13px 15px!important;box-shadow:0 8px 20px #1f4b3f1f!important}.balance-card p{font-size:12px!important}.balance-card h2{font-size:25px!important;margin:4px 0 10px!important}.balance-split{padding-top:9px!important;gap:8px!important}.balance-split span{font-size:11px!important;gap:5px!important}.balance-split b{font-size:13px!important}.today-row{border-radius:16px!important;padding:11px 13px!important;margin:10px 0 13px!important}.today-row p{font-size:11px!important;margin-bottom:2px!important}.today-row strong{font-size:17px!important}.parse-button{border-radius:12px!important;padding:8px 10px!important;font-size:12px!important;gap:5px!important}.parse-button svg{width:15px!important}.chart-card h2,.section-heading h2{font-size:16px!important;margin-bottom:8px!important}.section-heading button{font-size:12px!important}.entry-list{gap:6px!important}.compact-list{gap:5px!important}.entry-row{min-height:52px!important;border-radius:14px!important;padding:8px 10px!important;gap:9px!important}.entry-icon{width:34px!important;height:34px!important;border-radius:11px!important}.entry-icon svg{width:17px!important}.entry-main strong{font-size:13px!important}.entry-main small{font-size:10.5px!important}.entry-amount{font-size:15px!important;font-weight:900!important;letter-spacing:-.2px}.search-box{height:43px!important;border-radius:13px!important;padding:0 11px!important}.filter-chips{margin:10px -14px 12px!important;padding:0 14px!important;gap:6px!important}.filter-chips button{padding:6px 11px!important;font-size:12px!important}.chart-card,.info-card,.profile-card{border-radius:16px!important;padding:13px!important;margin-bottom:9px!important}.stat-summary div{padding:11px 6px!important}.stat-summary span{font-size:10.5px!important}.stat-summary strong{font-size:12px!important}.bottom-nav{height:calc(66px + env(safe-area-inset-bottom))!important;padding-top:6px!important}.bottom-nav .nav-add{width:46px!important;height:46px!important;border-radius:16px!important;transform:translateY(-9px)!important}.swipe-row{overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;border-radius:14px}.swipe-row::-webkit-scrollbar{display:none}.swipe-track{display:grid;grid-template-columns:minmax(100%,1fr) 96px;align-items:stretch;width:calc(100% + 96px)}.swipe-row .entry-row,.swipe-track{scroll-snap-align:start}.swipe-actions{display:grid;grid-template-columns:48px 48px;overflow:hidden;border-radius:0 14px 14px 0}.swipe-actions button{border:0;color:#fff;display:grid;place-items:center}.swipe-actions button:first-child{background:#6d83b6}.swipe-actions .danger-icon{background:var(--red)}.swipe-actions svg{width:18px}.empty-state{padding:24px 14px!important}.brand-mark,.empty-state>div{width:54px!important;height:54px!important;border-radius:18px!important;font-size:24px!important}.dense-entry .entry-main{gap:2px}.dense-entry .entry-note{color:#a2aaa6!important}.dense-entry .entry-amount{font-size:16px!important;min-width:96px;text-align:right}.quick-sheet .amount-field{padding:14px 0 10px!important}.quick-sheet .amount-field input{font-size:42px!important}.field-button{width:100%;height:46px;border:1px solid var(--line);background:#fff;border-radius:14px;display:flex;align-items:center;justify-content:space-between;padding:0 12px;color:var(--muted)}.field-button b{color:var(--ink);font-size:14px}.field-button svg{width:16px}.field-button.in-grid{height:auto;min-height:46px;align-self:stretch}.quick-note{display:flex;flex-direction:column;gap:6px;color:var(--muted);font-size:12px;margin-top:9px}.quick-note input{height:44px;border:1px solid var(--line);border-radius:14px;background:#fff;padding:0 12px;outline:0}.advanced-toggle{width:100%;border:0;background:transparent;color:var(--green2);display:flex;align-items:center;justify-content:center;gap:6px;padding:10px 0;font-size:12px;font-weight:800}.advanced-toggle svg{width:15px}.compact-form{gap:9px!important}.compact-form label{font-size:12px!important}.compact-form input,.compact-form select,.compact-form textarea{padding:9px 10px!important;border-radius:12px!important;min-height:42px}.inner-sheet-backdrop{position:fixed;inset:0;z-index:40;background:#17221d30;display:flex;align-items:flex-end;justify-content:center}.category-sheet{width:100%;max-width:640px;max-height:58dvh;overflow:auto;background:#fff;border-radius:24px 24px 0 0;padding:8px 14px calc(18px + env(safe-area-inset-bottom));box-shadow:0 -20px 40px #0002;animation:slideUp .18s ease-out}.sheet-grabber{width:38px;height:4px;border-radius:99px;background:#d8d8d2;margin:0 auto 10px}.category-sheet h3{margin:0 0 10px;text-align:center;font-size:15px}.category-grid{display:grid;grid-template-columns:repeat(3,1fr);grid-gap:8px;gap:8px}.category-grid button{height:42px;border:1px solid var(--line);background:#fdfdfb;border-radius:14px;display:flex;align-items:center;justify-content:center;gap:6px;font-size:12px;color:var(--ink)}.category-grid button.active{border-color:var(--green);background:#eef7f2;font-weight:900}.category-grid i{width:8px;height:8px;border-radius:50%}.period-tabs{display:grid;grid-template-columns:repeat(5,1fr);background:#e9e8e2;border-radius:13px;padding:3px;margin-bottom:9px;grid-gap:2px;gap:2px}.period-tabs button{border:0;background:transparent;border-radius:10px;padding:8px 2px;font-size:11px;color:var(--muted)}.period-tabs button.active{background:#fff;color:var(--ink);font-weight:900;box-shadow:0 2px 8px #2221}.date-range{display:grid;grid-template-columns:1fr 1fr;grid-gap:8px;gap:8px;margin:0 0 10px}.date-range label{display:flex;flex-direction:column;gap:5px;color:var(--muted);font-size:11px}.date-range input{height:40px;border:1px solid var(--line);border-radius:12px;background:#fff;padding:0 9px}.parse-mini{margin-top:10px;background:#fff;border:1px solid var(--line);border-radius:14px;padding:10px;font-size:12px;color:var(--green);font-weight:800}.sheet{transition:transform .2s ease,opacity .2s ease}.entry-row,.field-button,.filter-chips button,.parse-button,.primary{transition:transform .16s ease,background .16s ease,opacity .16s ease}.entry-row:active,.field-button:active,.primary:active{transform:scale(.99)}@keyframes slideUp{0%{transform:translateY(16px);opacity:.7}to{transform:translateY(0);opacity:1}}.today-row{display:grid!important;grid-template-columns:1fr!important;align-items:stretch!important;grid-gap:8px!important;gap:8px!important}.today-row .parse-button{order:-1;width:100%!important;min-height:42px!important;justify-content:flex-start!important;padding-left:14px!important;border-radius:15px!important;font-size:13px!important}.today-row>div{display:flex;align-items:center;justify-content:space-between}.smart-input-row{display:flex!important;flex-direction:column!important;gap:9px!important}.smart-input-row .parser-input{width:100%!important}.voice-button{width:min(58%,220px)!important;min-height:46px!important;align-self:flex-start!important;flex-direction:row!important;border-radius:15px!important}.voice-button svg{width:20px!important}.parser-sheet .primary,.quick-sheet .primary,.sheet-header .save-link{margin-left:0}.entry-amount small{display:block;margin-top:2px;color:var(--muted);font-size:10.5px;font-weight:700;letter-spacing:0}.quick-categories{display:grid;grid-template-columns:repeat(3,1fr);grid-gap:8px;gap:8px;margin:4px 0 8px}.quick-categories button{height:42px;border:1px solid var(--line);border-radius:14px;background:#fff;color:var(--ink);display:flex;align-items:center;justify-content:center;gap:6px;font-size:12px;font-weight:800}.quick-categories button.active{border-color:var(--green);background:#eef7f2}.quick-categories i{width:8px;height:8px;border-radius:50%}.voice-error{margin:8px 0 0;color:var(--red);font-size:12px}.swipe-row{position:relative!important;overflow:hidden!important;border-radius:14px!important;scroll-snap-type:none!important}.swipe-row>.swipe-actions{position:absolute;right:0;top:0;bottom:0;width:112px;display:grid!important;grid-template-columns:56px 56px;border-radius:0 14px 14px 0;z-index:0}.swipe-row>.swipe-actions button{gap:2px;font-size:10px;line-height:1;display:flex!important;flex-direction:column;align-items:center;justify-content:center}.swipe-row>.swipe-track{display:block!important;width:100%!important;transform:translateX(0);transition:transform .18s ease;position:relative;z-index:1}.swipe-row.open>.swipe-track{transform:translateX(-112px)}.swipe-row.open{box-shadow:inset -112px 0 0 #de6049}.amount-stack{display:inline-flex;flex-direction:column;align-items:flex-end;line-height:1.05}.amount-stack strong{font:inherit;font-weight:900}.amount-reference,.amount-stack small{color:#a3aaa6!important;font-size:.72em!important;font-weight:700!important;letter-spacing:0!important;margin-top:3px}.balance-card .amount-stack small{color:#d8e2de!important}.balance-split .amount-stack small,.today-row .amount-stack small{font-size:10px!important}.stat-summary .amount-stack{align-items:center}.bar-row .amount-stack,.legend .amount-stack{align-items:flex-end}.amount-reference{text-align:center;margin:-6px 0 10px}.rate-hint{display:block;color:var(--muted);font-size:12px;margin-top:-2px}.quick-amount-field{gap:10px}.currency-trigger{border:0;background:#edf4f0;color:var(--green);border-radius:14px;padding:9px 10px;font-weight:900;display:flex;align-items:center;gap:3px;font-size:14px}.currency-trigger svg{width:14px}.quick-amount-field input{width:180px!important}.currency-list{display:flex;flex-direction:column;gap:8px}.currency-list button{height:48px;border:1px solid var(--line);background:#fff;border-radius:15px;display:flex;align-items:center;justify-content:space-between;padding:0 15px;color:var(--ink)}.currency-list button.active{border-color:var(--green);background:#eef7f2}.currency-list b{font-size:15px}.currency-list span{color:var(--muted);font-size:13px}.currency-sheet{max-height:34dvh}.image-avatar{overflow:hidden;border-radius:50%!important;background:#e2f0e9!important;color:var(--green)!important;border:1px solid #cfe3d9}.image-avatar img{width:100%;height:100%;object-fit:cover;object-position:center;display:block}.image-avatar svg{width:54%;height:54%}.avatar-profile-card{align-items:center}.avatar-upload-label{cursor:pointer;display:block;flex:0 0 auto}.avatar-change-button input,.avatar-upload-label input{display:none}.avatar-change-button{display:inline-flex;margin-top:6px;border:1px solid var(--line);background:#f7f6f2;color:var(--green);border-radius:999px;padding:6px 10px;font-size:12px;font-weight:800;cursor:pointer}.add-category-inline{grid-column:1/-1!important;color:var(--green)!important;font-weight:900!important;background:#eef7f2!important}.category-manager-list{display:flex;flex-direction:column;gap:8px}.category-manager-row{display:grid;grid-template-columns:22px 34px 1fr 58px 48px;align-items:center;grid-gap:6px;gap:6px;background:#fff;border:1px solid var(--line);border-radius:15px;padding:8px}.category-manager-row.dragging{opacity:.72;transform:scale(.99);background:#eef7f2}.category-manager-row .drag-handle{color:var(--muted);font-size:17px;text-align:center;touch-action:none;-webkit-user-select:none;-moz-user-select:none;user-select:none;cursor:-webkit-grab;cursor:grab}.category-manager-row input[type=color]{width:32px;height:32px;border:0;background:transparent;padding:0}.category-manager-row input:not([type]),.category-manager-row input[type=text]{height:38px;border:1px solid var(--line);border-radius:12px;padding:0 9px;min-width:0}.category-manager-row button{height:32px;border:1px solid var(--line);background:#fff;border-radius:10px;color:var(--red);font-size:11px}.category-manager-row button.preferred{color:var(--green);background:#eef7f2;border-color:#cfe5da}.restore-default-button{width:100%;height:46px;margin:10px 0 12px;border:1px solid var(--line);border-radius:15px;background:#fff;color:var(--green);font-weight:900}.inline-category-block{margin:8px 0 12px}.inline-category-block>p{margin:0 0 8px;color:var(--muted);font-size:12px}.inline-category-pills{display:grid;grid-template-columns:repeat(5,1fr);grid-gap:6px;gap:6px}.inline-category-pills button{width:100%;border:1px solid var(--line);background:#fff;color:var(--ink);border-radius:999px;min-height:32px;padding:5px 2px;font-size:11px;font-weight:800;display:flex;align-items:center;justify-content:center;text-align:center;gap:3px;white-space:nowrap}.inline-category-pills button.active{border-color:var(--green);background:#e8f4ee;color:var(--green)}.inline-category-pills i{width:7px;height:7px;border-radius:50%;flex:0 0 auto}.inline-category-pills .add-category-pill{color:var(--green);background:#f2faf6;font-size:10.5px}.inline-add-category{display:grid;grid-template-columns:1fr auto auto;grid-gap:7px;gap:7px;margin-top:9px}.inline-add-category input{height:40px;border:1px solid var(--line);border-radius:13px;padding:0 11px;min-width:0}.inline-add-category button{height:40px;border-radius:13px;padding:0 12px}.inline-add-category button[type=button]{border:1px solid var(--line);background:#fff;color:var(--muted)}@media(max-width:380px){.inline-category-pills{grid-template-columns:repeat(4,1fr)}}.stats-tabs{grid-template-columns:repeat(4,1fr)!important}.time-rail{display:flex;gap:8px;overflow-x:auto;scrollbar-width:none;margin:0 -14px 10px;padding:0 14px 2px;scroll-snap-type:x proximity}.line-chart-scroll::-webkit-scrollbar,.time-rail::-webkit-scrollbar{display:none}.time-rail button{flex:0 0 auto;border:1px solid var(--line);background:#fff;color:var(--muted);border-radius:999px;padding:8px 14px;font-weight:800;font-size:12px;scroll-snap-align:center}.time-rail button.active{background:var(--green);color:#fff;border-color:var(--green)}.line-chart-card{padding-right:0!important}.chart-title-row{display:flex;align-items:center;justify-content:space-between;padding-right:13px}.chart-title-row span{font-size:11px;color:var(--muted);font-weight:800}.line-chart-scroll{overflow-x:auto;scrollbar-width:none;padding:4px 12px 0 0}.line-chart{display:block}.line-grid{stroke:var(--line);stroke-width:1}.line-path{fill:none;stroke:var(--green2);stroke-width:3;stroke-linecap:round;stroke-linejoin:round}.line-chart circle{fill:var(--card);stroke:var(--green2);stroke-width:3;cursor:pointer}.line-chart g.active circle{fill:var(--green);stroke:var(--green)}.line-chart text{fill:var(--muted);font-size:10px;font-weight:800;cursor:pointer}.line-chart g.active text{fill:var(--green);font-weight:900}.ranking-list{display:flex;flex-direction:column;gap:9px}.ranking-row{display:grid;grid-template-columns:auto 1fr auto auto;align-items:center;grid-gap:8px;gap:8px;font-size:12px}.ranking-row i{width:9px;height:9px;border-radius:50%}.ranking-row em{font-style:normal;color:var(--muted);font-weight:800}.ranking-row b{text-align:right;font-size:12px}.home-top-actions{display:flex;align-items:center;gap:8px}.theme-toggle-button{width:36px;height:36px;border:1px solid var(--line);border-radius:13px;background:var(--card);display:grid;place-items:center;font-size:17px;box-shadow:0 4px 14px #0000000d}.app-shell,.app-shell *{transition:background-color .24s ease,border-color .24s ease,color .24s ease,box-shadow .24s ease}.app-shell[data-theme=dark]{--bg:#1f2321;--card:#2a2f2c;--ink:#f4f5f2;--muted:#a8b0ab;--line:#3b413d;--green:#2f7a63;--green2:#66b696;background:var(--bg);color:var(--ink)}.app-shell[data-theme=dark] .content,.app-shell[data-theme=dark] .sheet{background:var(--bg)}.app-shell[data-theme=dark] .category-manager-row,.app-shell[data-theme=dark] .category-sheet,.app-shell[data-theme=dark] .chart-card,.app-shell[data-theme=dark] .currency-list button,.app-shell[data-theme=dark] .entry-actions,.app-shell[data-theme=dark] .entry-row,.app-shell[data-theme=dark] .field-button,.app-shell[data-theme=dark] .info-card,.app-shell[data-theme=dark] .parse-preview,.app-shell[data-theme=dark] .profile-card,.app-shell[data-theme=dark] .search-box,.app-shell[data-theme=dark] .stat-summary,.app-shell[data-theme=dark] .today-row{background:var(--card)!important;border-color:var(--line)!important;color:var(--ink)!important}.app-shell[data-theme=dark] input,.app-shell[data-theme=dark] select,.app-shell[data-theme=dark] textarea{background:#222724!important;border-color:var(--line)!important;color:var(--ink)!important}.app-shell[data-theme=dark] .bottom-nav{background:#202421e6;border-color:var(--line)}.app-shell[data-theme=dark] .period-tabs,.app-shell[data-theme=dark] .segmented,.app-shell[data-theme=dark] .type-switch{background:#171b19}.app-shell[data-theme=dark] .period-tabs .active,.app-shell[data-theme=dark] .segmented .active,.app-shell[data-theme=dark] .type-switch .active{background:var(--card);color:var(--ink)}.app-shell[data-theme=dark] .donut:after{background:var(--card)}.app-shell[data-theme=dark] .avatar-change-button,.app-shell[data-theme=dark] .category-manager-row button,.app-shell[data-theme=dark] .currency-trigger,.app-shell[data-theme=dark] .filter-chips button,.app-shell[data-theme=dark] .inline-category-pills button,.app-shell[data-theme=dark] .restore-default-button,.app-shell[data-theme=dark] .theme-toggle-button,.app-shell[data-theme=dark] .time-rail button{background:#262b28!important;border-color:var(--line)!important;color:var(--ink)!important}.app-shell[data-theme=dark] .filter-chips .active,.app-shell[data-theme=dark] .inline-category-pills button.active,.app-shell[data-theme=dark] .time-rail button.active{background:var(--green)!important;color:#fff!important;border-color:var(--green)!important}.app-shell[data-theme=dark] .amount-reference,.app-shell[data-theme=dark] .amount-stack small{color:#98a19c!important}.app-shell[data-theme=dark] .line-chart circle{fill:var(--card)}.app-shell[data-theme=dark] .balance-card{background:linear-gradient(145deg,#163c33,#275f4d)!important}