:root{--bg: #F5F3EE;--surface: #FFFFFF;--border: #E6E2DA;--track: #EEEAE3;--text: #17181B;--muted: #66655F;--hero: #17181B;--hero-text: #FFFFFF;--hero-track: rgba(255, 255, 255, .14);--hero-income: #7AB4FF;--expense: #C2410C;--income: #1D4ED8;--link: #1D4ED8;--warn-bg: #FDEBD9;--warn-text: #9A3412;--nav: rgba(255, 255, 255, .92);--primary: #17181B;--primary-text: #FFFFFF;--seg-on: #FFFFFF;--key: #FFFFFF;--key-op: #ECE8E0;--bar-dim: #E2DDD4;--danger: #C92A2A;--tint-alpha: .12;--shadow: 0 1px 3px rgba(0, 0, 0, .12);color-scheme:light}:root[data-theme=dark]{--bg: #111214;--surface: #1B1C1F;--border: #2C2D31;--track: #2A2B2F;--text: #F2F1EE;--muted: #A3A29E;--hero: #F2F1EE;--hero-text: #111214;--hero-track: rgba(17, 18, 20, .12);--hero-income: #1D4ED8;--expense: #FB923C;--income: #7AB4FF;--link: #7AB4FF;--warn-bg: #3A2614;--warn-text: #FDBA74;--nav: rgba(23, 24, 27, .92);--primary: #F2F1EE;--primary-text: #111214;--seg-on: #33353A;--key: #1F2023;--key-op: #2A2B2F;--bar-dim: #3A3B40;--danger: #FF8787;--tint-alpha: .2;color-scheme:dark}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body{margin:0;background:var(--bg);color:var(--text);font-family:Manrope,system-ui,-apple-system,sans-serif;font-variant-numeric:tabular-nums;-webkit-font-smoothing:antialiased;overscroll-behavior-y:none}body{min-height:100dvh}button{font:inherit;color:inherit;cursor:pointer;touch-action:manipulation;-webkit-user-select:none;user-select:none}input,select,textarea{font:inherit;color:inherit;font-size:16px}h1,h2,h3,p{margin:0}.app{max-width:520px;margin:0 auto;min-height:100dvh;position:relative}.screen{padding:calc(env(safe-area-inset-top) + 16px) 20px calc(env(safe-area-inset-bottom) + 110px);display:flex;flex-direction:column;gap:14px}.header{display:flex;align-items:center;justify-content:space-between;min-height:44px;gap:8px}.title{font-size:24px;font-weight:800;letter-spacing:-.5px}.h2{font-size:18px;font-weight:800}.muted{color:var(--muted)}.small{font-size:12px;font-weight:600}.row{display:flex;align-items:center;gap:8px}.between{display:flex;align-items:center;justify-content:space-between;gap:8px}.grow{flex-grow:1;min-width:0}.nowrap{white-space:nowrap}.ellipsis{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.icon-btn{width:44px;height:44px;border-radius:22px;border:1px solid var(--border);background:var(--surface);display:flex;align-items:center;justify-content:center;flex-shrink:0}.icon-btn.plain{border:none;background:none;width:36px;height:36px}.link-btn{background:none;border:none;padding:4px 0;color:var(--link);font-size:13px;font-weight:700}.card{background:var(--surface);border:1px solid var(--border);border-radius:22px}.card.pad{padding:16px}.hero{background:var(--hero);color:var(--hero-text);border-radius:28px;padding:22px;display:flex;flex-direction:column;gap:14px}.hero-label{font-size:13px;font-weight:600;opacity:.75}.big-amount{font-size:40px;font-weight:800;letter-spacing:-1.5px;line-height:1.05;white-space:nowrap}.bar{height:8px;border-radius:4px;overflow:hidden}.bar>div{height:100%;border-radius:4px;transition:width .4s cubic-bezier(.2,.8,.2,1)}.grid2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.tile{padding:14px;display:flex;flex-direction:column;gap:4px;text-align:left}.tile-value{font-size:18px;font-weight:800;white-space:nowrap}.alert{background:var(--warn-bg);color:var(--warn-text);border-radius:20px;padding:14px 16px;display:flex;align-items:center;gap:12px;border:none;text-align:left;width:100%}.alert-icon{width:40px;height:40px;border-radius:12px;background:var(--surface);display:flex;align-items:center;justify-content:center;flex-shrink:0}.badge{width:40px;height:40px;border-radius:13px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.list{padding:2px 14px}.list-row{display:flex;align-items:center;gap:12px;padding:11px 0;width:100%;background:none;border:none;border-bottom:1px solid var(--border);text-align:left}.list-row:last-child{border-bottom:none}.row-title{font-size:15px;font-weight:700}.row-sub{font-size:12px;font-weight:600;color:var(--muted)}.row-amount{font-size:15px;font-weight:800;white-space:nowrap}.income{color:var(--income)}.expense{color:var(--expense)}.day-head{display:flex;justify-content:space-between;font-size:12px;font-weight:700;color:var(--muted);padding:0 4px;margin-bottom:-6px}.seg{display:grid;gap:4px;padding:4px;border-radius:16px;background:var(--track)}.seg button{height:36px;border-radius:12px;border:none;background:transparent;font-size:14px;font-weight:800;color:var(--muted);transition:background .15s,color .15s}.seg button.on{background:var(--seg-on);color:var(--text);box-shadow:var(--shadow)}.chips{display:flex;gap:8px;overflow-x:auto;margin:0 -20px;padding:0 20px;scrollbar-width:none}.chips::-webkit-scrollbar{display:none}.chip{height:36px;padding:0 12px;border-radius:18px;white-space:nowrap;display:flex;align-items:center;gap:6px;font-size:13px;font-weight:700;background:var(--surface);border:1px solid var(--border);flex-shrink:0}.chip.on{background:var(--primary);color:var(--primary-text);border-color:var(--primary)}.chip .dot{width:10px;height:10px;border-radius:3px}.nav{position:fixed;left:0;right:0;bottom:0;z-index:10;padding:8px 12px calc(env(safe-area-inset-bottom) + 8px);background:var(--nav);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border-top:1px solid var(--border)}.nav-inner{max-width:520px;margin:0 auto;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));align-items:center}.nav-tab{background:none;border:none;display:flex;flex-direction:column;align-items:center;gap:4px;font-size:11px;font-weight:700;color:var(--muted);padding:4px 0;min-height:48px;justify-content:center}.nav-tab.on{color:var(--text)}.fab{justify-self:center;width:58px;height:58px;margin-top:-30px;border-radius:29px;border:none;background:var(--primary);color:var(--primary-text);display:flex;align-items:center;justify-content:center;box-shadow:0 8px 20px #00000038;transition:transform .15s}.fab:active,.key:active,.chip:active,.cat:active{transform:scale(.96)}.overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:20;background:var(--bg);overflow-y:auto;animation:slide-up .28s cubic-bezier(.2,.8,.2,1)}.overlay-inner{max-width:520px;margin:0 auto;min-height:100%}@keyframes slide-up{0%{transform:translateY(24px);opacity:0}to{transform:none;opacity:1}}@media (prefers-reduced-motion: reduce){.overlay{animation:none}}.editor{min-height:100dvh;display:flex;flex-direction:column;gap:12px;padding:calc(env(safe-area-inset-top) + 12px) 16px calc(env(safe-area-inset-bottom) + 16px)}.editor .chips{margin:0 -16px;padding:0 16px}.amount{display:flex;flex-direction:column;align-items:center;gap:6px;padding:4px 0}.amount-value{display:flex;align-items:baseline;gap:6px;white-space:nowrap;max-width:100%;overflow:hidden}.amount-sym{font-size:26px;font-weight:800}.amount-num{font-size:46px;font-weight:800;letter-spacing:-1.5px;line-height:1}.mini-seg{display:flex;padding:3px;border-radius:12px;background:var(--track)}.mini-seg button{height:28px;padding:0 12px;border-radius:9px;border:none;background:transparent;font-size:12px;font-weight:800;color:var(--muted)}.mini-seg button.on{background:var(--primary);color:var(--primary-text)}.cats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.cat{min-height:72px;border-radius:16px;padding:8px 2px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;background:var(--surface);border:1px solid var(--border);transition:transform .1s}.cat.on{border:2px solid var(--accent, var(--expense));padding:7px 1px}.cat-icon{width:30px;height:30px;border-radius:10px;display:flex;align-items:center;justify-content:center}.cat-label{font-size:11px;font-weight:700;line-height:1.15;text-align:center;hyphens:auto;-webkit-hyphens:auto;letter-spacing:-.2px}.field{display:flex;align-items:center;gap:10px;min-height:46px;padding:0 14px;border-radius:14px;background:var(--surface);border:1px solid var(--border);color:var(--muted)}.field input,.field select{flex-grow:1;min-width:0;border:none;outline:none;background:transparent;font-weight:600;color:var(--text);padding:10px 0}.field-label{font-size:12px;font-weight:700;color:var(--muted);margin:0 4px -4px}.keypad{margin-top:auto;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.key{height:54px;border-radius:16px;border:none;display:flex;align-items:center;justify-content:center;font-size:22px;font-weight:800;background:var(--key);transition:transform .08s}.key.op{background:var(--key-op)}.key.save{background:var(--primary);color:var(--primary-text);font-size:16px}.key.save:disabled{opacity:.4}.btn{height:50px;border-radius:16px;border:none;padding:0 18px;font-size:15px;font-weight:800;background:var(--primary);color:var(--primary-text);display:flex;align-items:center;justify-content:center;gap:8px}.btn.secondary{background:var(--surface);color:var(--text);border:1px solid var(--border)}.btn.danger{background:transparent;color:var(--danger);border:1px solid var(--border)}.btn.dashed{background:transparent;color:var(--link);border:1px dashed var(--border);height:40px;font-size:13px}.pill{padding:5px 9px;border-radius:9px;background:var(--track);font-size:12px;font-weight:700;white-space:nowrap}.pill.warn{background:var(--warn-bg);color:var(--warn-text);font-weight:800}.toast{position:fixed;left:50%;top:calc(env(safe-area-inset-top) + 16px);transform:translate(-50%);z-index:50;padding:11px 16px;border-radius:14px;background:var(--primary);color:var(--primary-text);font-size:14px;font-weight:800;white-space:nowrap;box-shadow:0 10px 30px #00000040;animation:slide-up .2s ease-out}.empty{padding:28px 16px;text-align:center;color:var(--muted);font-size:14px;font-weight:600;display:flex;flex-direction:column;align-items:center;gap:10px}.months{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:10px;align-items:end;height:96px}.month-col{display:flex;flex-direction:column;align-items:center;justify-content:flex-end;gap:6px;height:100%;background:none;border:none;padding:0}.month-bar{width:100%;border-radius:6px 6px 3px 3px;transition:height .4s cubic-bezier(.2,.8,.2,1);min-height:3px}.mini-card{width:54px;height:36px;border-radius:7px;position:relative;flex-shrink:0;overflow:hidden}.mini-card:before{content:"";position:absolute;left:7px;top:9px;width:11px;height:8px;border-radius:2px;background:#ffffffa6}.mini-card:after{content:"";position:absolute;right:-8px;bottom:-12px;width:30px;height:30px;border-radius:15px;background:#ffffff2e}.swatches{display:flex;flex-wrap:wrap;gap:10px}.swatch{width:34px;height:34px;border-radius:17px;border:3px solid transparent}.swatch.on{border-color:var(--text)}.icon-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:8px}.icon-pick{height:46px;border-radius:12px;border:1px solid var(--border);background:var(--surface);display:flex;align-items:center;justify-content:center}.icon-pick.on{background:var(--primary);color:var(--primary-text);border-color:var(--primary)}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.list>div:not(.list-row)+div:not(.list-row){border-top:1px solid var(--border)}.list>div:not(.list-row) .list-row{border-bottom:none}
