:root{color:#14251f;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;--ink:#14251f;--muted:#5f746c;--mint:#7ee6b2;--mint-strong:#21a66c;--petrol:#0b372e;--glass:#ffffff8f;--glass-strong:#ffffffbd;--glass-dark:#0c342b9e;--line:#ffffff8a;--shadow:0 24px 70px #092f2524;--shadow-soft:0 12px 38px #092f251a;--app-background:#e7f5ef;--pwa-height:100dvh;background:#eef8f2;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}html,body,#root{background-color:var(--app-background);-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%;touch-action:manipulation;width:100%;height:100dvh;min-height:100%;margin:0;padding:0;position:relative}html,body{overflow:hidden}body{overscroll-behavior:none;background-color:var(--app-background);background:radial-gradient(circle at 12% 0,#7ee6b2b8,#0000 18rem),radial-gradient(circle at 90% 12%,#1a5d5161,#0000 19rem),linear-gradient(145deg,#eef8f2 0%,#f7fbf8 45%,#dceee7 100%);min-height:100%}button,input,select{font:inherit;letter-spacing:0}button{cursor:pointer;-webkit-tap-highlight-color:transparent;border:0}.app-shell{background:radial-gradient(circle at 18% 8%,#7ee6b294,#0000 15rem),radial-gradient(circle at 90% 28%,#0b372e2e,#0000 17rem),linear-gradient(160deg,#f2faf6 0%,#e7f5ef 54%,#dceee7 100%);grid-template-rows:minmax(0,1fr) auto;width:100%;height:100dvh;min-height:100dvh;display:grid;position:relative;overflow:hidden}.app-shell.solo{grid-template-rows:minmax(0,1fr)}.app-shell:before{content:"";pointer-events:none;background:linear-gradient(#ffffff42,#0000 42%);position:absolute;inset:0}.app-shell:after{content:"";z-index:0;height:calc(96px + env(safe-area-inset-bottom));pointer-events:none;background:linear-gradient(#e7f5ef00,#dceee7 42% 100%);position:fixed;bottom:0;left:0;right:0}.app-content{z-index:1;overscroll-behavior-y:contain;-webkit-overflow-scrolling:touch;min-height:0;padding:calc(18px + env(safe-area-inset-top)) 16px calc(112px + env(safe-area-inset-bottom));background:radial-gradient(circle at 18% 8%,#7ee6b261,#0000 15rem),linear-gradient(160deg,#f2faf6 0%,#e7f5ef 54%,#dceee7 100%);position:relative;overflow:hidden auto}.page{z-index:1;gap:18px;max-width:520px;margin:0 auto;animation:.26s both rise;display:grid;position:relative}.page-header,.home-top{justify-content:space-between;align-items:flex-end;gap:12px;padding:8px 2px 0;display:flex}.page-header{align-items:initial;display:grid}.page-header span,.home-top span{color:#14251f94;text-transform:uppercase;font-size:.78rem;font-weight:850}.page-header h1,.home-top h1{color:var(--ink);margin:4px 0 0;font-size:2rem;line-height:1.05}.quick-pill{color:#fff;background:linear-gradient(135deg,#0c4337,#25b977);border-radius:999px;min-height:42px;padding:0 16px;font-weight:900;box-shadow:0 16px 32px #0b533f38}.home-actions{align-items:center;gap:8px;display:flex}.sync-button{color:#0b372e;background:#ffffffa8;border:1px solid #ffffffb3;border-radius:50%;flex:0 0 42px;place-items:center;width:42px;height:42px;display:grid;box-shadow:0 10px 24px #092f251f}.sync-button:disabled{opacity:.65}.spinning{animation:.75s linear infinite spin}.welcome-screen,.pin-screen{min-height:100%;padding:calc(28px + env(safe-area-inset-top)) 24px calc(24px + env(safe-area-inset-bottom));color:#fff;background:radial-gradient(circle at 50% 4%,#7ee6b280,#0000 22rem),radial-gradient(circle at 90% 82%,#ffffff21,#0000 16rem),linear-gradient(150deg,#0b372e 0%,#08241f 52%,#0f5945 100%);align-content:space-between;display:grid}.welcome-copy{align-self:center;gap:14px;display:grid}.brand-mark{color:#0b372e;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);background:#ffffffc7;border:1px solid #ffffff9e;border-radius:24px;place-items:center;width:66px;height:66px;font-weight:950;display:grid;box-shadow:0 24px 70px #00000047}.welcome-copy h1{margin:0;font-size:3.35rem;line-height:.96}.welcome-copy p{color:#ffffffc7;margin:0;font-size:1.16rem}.setup-card,.form-card,.hero-card,.focus-card,.edit-card,.settings-list,.mini-stat,.tx-row,.empty,.center-note,.insight,.shortcut,.category-bar{border:1px solid var(--line);background:var(--glass);box-shadow:var(--shadow-soft);-webkit-backdrop-filter:blur(24px)}.setup-card{color:var(--ink);border-radius:30px;gap:14px;padding:20px;display:grid}.setup-card h2,.setup-card p{margin:0}.setup-card p{color:var(--muted);line-height:1.45}input,select{width:100%;min-height:52px;color:var(--ink);background:#ffffff94;border:1px solid #ffffffa3;border-radius:18px;outline:none;padding:0 14px;font-size:16px;box-shadow:inset 0 1px #ffffff85}input:focus,select:focus{border-color:#21a66c85;box-shadow:0 0 0 5px #7ee6b233,inset 0 1px #ffffffb8}.primary,.secondary,.settings-list button,.file-button{white-space:normal;text-align:center;border-radius:999px;justify-content:center;align-items:center;gap:10px;max-width:100%;min-height:54px;padding:0 18px;font-weight:900;line-height:1.2;transition:transform .16s,box-shadow .16s,background .16s;display:inline-flex}.primary{color:#fff;background:linear-gradient(135deg,#0b372e,#23b979);box-shadow:0 18px 36px #0d5c453d}.primary.light{color:#0b372e;background:#ffffffdb}.secondary,.settings-list button,.file-button{color:#0b372e;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);background:#ffffff7a;border:1px solid #fff9}button:active,.file-button:active{transform:scale(.98)}.danger{color:#8e261f!important;background:#ffebe8b8!important;border-color:#ffaaa080!important}.pin-screen{align-content:center;justify-items:center;gap:20px}.pin-screen>svg,.pin-screen h1,.pin-dots,.keypad,.pin-screen .error{z-index:1;position:relative}.pin-screen:before{content:"";-webkit-backdrop-filter:blur(24px);backdrop-filter:blur(24px);background:#ffffff1f;border:1px solid #ffffff3d;border-radius:42px;width:min(86vw,360px);height:min(86vw,360px);position:absolute;box-shadow:0 34px 90px #00000047}.pin-screen h1{margin:0;font-size:2.3rem}.pin-dots{gap:10px;margin:6px 0;display:flex}.pin-dots span{background:#ffffff3d;border-radius:50%;width:13px;height:13px;box-shadow:inset 0 0 0 1px #ffffff38}.pin-dots .filled{background:#fff;box-shadow:0 0 18px #7ee6b280}.keypad{grid-template-columns:repeat(3,1fr);gap:10px;width:min(100%,322px);display:grid}.keypad button{aspect-ratio:1.32;color:#fff;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);background:#ffffff24;border:1px solid #ffffff2e;border-radius:24px;font-size:1.25rem;font-weight:850}.error{color:#ffd7d2;font-weight:850}.success{color:#137349;font-weight:850}.hero-card{color:#fff;box-shadow:var(--shadow);background:linear-gradient(145deg,#093a30e0,#1b865bb8),#ffffff47;border-radius:32px;gap:18px;padding:24px;display:grid;position:relative;overflow:hidden}.hero-card:after{content:"";background:#ffffff29;border-radius:50%;width:160px;height:160px;position:absolute;top:-56px;right:-44px}.hero-card>span{color:#ffffffbd;font-weight:850}.hero-card>strong{letter-spacing:0;font-size:2.85rem;line-height:1}.hero-card p{color:#ffffffc2;margin:0}.hero-grid,.metric-grid{grid-template-columns:repeat(3,1fr);gap:10px;display:grid}.hero-card .mini-stat{color:#fff;box-shadow:none;background:#ffffff29;border-color:#fff3}.hero-card .mini-stat span{color:#ffffffb3}.hero-card .mini-stat strong{color:#fff}.analysis-hero{background:linear-gradient(145deg,#133730e6,#38936bb8)}.mini-stat{border-radius:24px;gap:7px;min-width:0;padding:14px;display:grid}.mini-stat span{min-height:2.15em;color:var(--muted);text-align:center;place-items:center;font-size:.68rem;font-weight:850;line-height:1.15;display:grid}.mini-stat strong{text-overflow:ellipsis;color:var(--ink);text-align:center;font-size:.78rem;line-height:1.12;overflow:hidden}.hero-card .mini-stat span{font-size:.68rem}.hero-card .mini-stat strong{font-size:.78rem}.filters{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:10px;display:grid}.top-controls{grid-template-columns:minmax(0,.82fr) minmax(0,1.18fr)}.filters.dense{grid-template-columns:repeat(2,minmax(0,1fr))}.filters>*{min-width:0}.month-control{width:100%;min-width:0;min-height:52px;color:var(--ink);background:#ffffff94;border:1px solid #ffffffa3;border-radius:18px;place-items:center;padding:0 12px;display:grid;position:relative;overflow:hidden;box-shadow:inset 0 1px #ffffff85}.month-control span{text-overflow:ellipsis;white-space:nowrap;max-width:100%;font-size:.88rem;font-weight:900;line-height:1;overflow:hidden}.month-control input[type=month]{border-radius:inherit;width:100%;height:100%;min-height:100%;box-shadow:none;color:#0000;opacity:0;cursor:pointer;background:0 0;border:0;padding:0;position:absolute;inset:0}.standalone-month{justify-self:center;width:min(100%,220px)!important}.history-heading{justify-content:space-between;align-items:end;gap:12px;display:flex}.history-heading>span{color:#31584b;background:#ffffff94;border-radius:999px;flex:none;padding:8px 11px;font-size:.76rem;font-weight:850}.history-filters{border:1px solid var(--line);box-shadow:var(--shadow-soft);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);background:#ffffff6b;border-radius:26px;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;padding:10px;display:grid}.history-filters>*{min-width:0;min-height:46px}.history-day{gap:9px;display:grid}.history-day>h3{color:#46655a;text-transform:uppercase;justify-content:space-between;align-items:center;margin:5px 4px 0;font-size:.8rem;display:flex}.history-day>h3 span{text-align:center;background:#ffffff8f;border-radius:999px;min-width:26px;padding:4px 8px}.info-card{border:1px solid var(--line);color:#244a3e;box-shadow:var(--shadow-soft);background:#ffffff85;border-radius:25px;gap:7px;padding:17px;display:grid}.info-card p{color:var(--muted);margin:0;line-height:1.5}.top-controls{z-index:12;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);background:#ffffff42;border:1px solid #ffffff6b;border-radius:24px;padding:6px;position:sticky;top:0}.stack{gap:11px;display:grid}.stack h3{color:#14251f9e;text-transform:uppercase;margin:10px 4px 2px;font-size:.82rem}.section-header{justify-content:space-between;align-items:center;gap:12px;padding:0 2px;display:flex}.section-header h2{color:var(--ink);margin:0;font-size:1rem}.section-header span{color:var(--muted);font-size:.78rem;font-weight:820}.category-bar,.tx-row{border-radius:26px;align-items:center;gap:12px;min-height:76px;padding:13px;display:grid}.category-bar{grid-template-columns:46px 1fr auto;background:#ffffff85!important}.category-bar .emoji,.tx-row .emoji{background:#ffffff9e;border:1px solid #ffffff94;border-radius:18px;place-items:center;width:46px;height:46px;font-size:1.3rem;display:grid}.category-bar div{gap:9px;min-width:0;display:grid}.category-bar b{color:var(--ink)}.category-bar i{background:linear-gradient(90deg,#0b372ead,#7ee6b2e0);border-radius:999px;height:8px;box-shadow:0 6px 16px #21a66c2e}.category-bar strong{white-space:nowrap;color:#14352c}.tx-row{background:#ffffff94;grid-template-columns:46px 1fr auto}.tx-row div{gap:4px;min-width:0;display:grid}.tx-row small{color:var(--muted);overflow-wrap:anywhere}.tx-row strong{white-space:nowrap;font-size:1rem}.tx-row strong.expense{color:#b74336}.tx-row strong.income{color:#148452}.tx-actions{grid-column:2/4;justify-self:end;gap:12px;display:flex}.tx-actions button{color:#476257;background:#ffffff61;border-radius:999px;min-height:34px;padding:0 10px;font-weight:850}.tx-actions button:last-child{color:#9f1d17}.form-card,.settings-list,.edit-card{border-radius:30px;gap:13px;padding:16px;display:grid}.form-card{align-self:start;padding:18px}.amount-input{text-align:center;background:#ffffffa8;border-radius:26px;height:84px;font-size:2.45rem;font-weight:950}.segment{background:#ffffff61;border:1px solid #ffffff80;border-radius:999px;grid-template-columns:1fr 1fr;gap:8px;padding:6px;display:grid}.segment button{color:#496158;background:0 0;border-radius:999px;min-height:44px;font-weight:900}.segment .active{color:#0b372e;background:#ffffffc7;box-shadow:0 10px 24px #103c321f}.focus-card{background:#ffffff9e;border-radius:34px;gap:12px;padding:26px;display:grid}.focus-card span,.focus-card small{color:var(--muted)}.focus-card strong{color:var(--ink);font-size:3.05rem;line-height:1}.focus-card p{color:var(--ink);margin:0;font-size:1.1rem;font-weight:800}.category-grid{grid-template-columns:repeat(3,1fr);gap:10px;display:grid}.category-grid button{color:#18231f;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border:1px solid #ffffff8f;border-radius:26px;place-items:center;gap:5px;min-height:94px;font-weight:850;display:grid;box-shadow:0 10px 26px #092f2517}.category-grid span{font-size:1.6rem}.settings-section{gap:12px}.settings-list label{color:#526960;gap:8px;font-weight:820;display:grid}.settings-list svg{width:18px}.file-button input{display:none}.inline-form{gap:8px;display:grid}.shortcut{color:var(--ink);border-radius:22px;padding:14px}.shortcut summary{color:#0b372e;font-weight:900}.shortcut ol{color:#50645c;padding-left:22px;line-height:1.48}.shortcut code{overflow-wrap:anywhere;color:#0b372e;margin-top:6px;display:block}.edit-card{border-radius:26px}.edit-card input,.edit-card select{min-height:46px}.crud-heading{justify-content:space-between;align-items:end;gap:12px;display:flex}.compact-add{color:#0b372e;min-height:38px;box-shadow:var(--shadow-soft);background:#ffffff94;border:1px solid #ffffff9e;border-radius:999px;padding:0 14px;font-size:.82rem;font-weight:900}.crud-list{gap:8px;display:grid}.crud-item{border:1px solid var(--line);-webkit-backdrop-filter:blur(18px);background:#ffffff85;border-radius:20px;overflow:hidden;box-shadow:0 8px 24px #092f2512}.crud-item summary{cursor:pointer;grid-template-columns:34px minmax(0,1fr) auto;align-items:center;gap:10px;min-height:54px;padding:9px 12px;list-style:none;display:grid}.crud-item summary::-webkit-details-marker{display:none}.crud-emoji{background:#ffffffa8;border-radius:13px;place-items:center;width:34px;height:34px;font-size:1.05rem;display:grid}.crud-title{text-overflow:ellipsis;white-space:nowrap;color:var(--ink);font-size:.95rem;font-weight:900;overflow:hidden}.crud-meta{text-overflow:ellipsis;white-space:nowrap;max-width:112px;color:var(--muted);font-size:.72rem;font-weight:850;overflow:hidden}.crud-fields{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;padding:0 12px 12px;display:grid}.crud-fields input,.crud-fields select{border-radius:14px;min-height:42px;font-size:16px}.crud-fields input[type=color]{padding:5px}.crud-fields .danger{border-radius:16px;grid-column:1/-1;min-height:42px}.credit-card-panel,.subscription-summary{box-shadow:var(--shadow-soft);background:#ffffffa8;border-radius:24px;gap:12px;padding:16px;display:grid}.credit-card-head{grid-template-columns:auto 1fr auto;align-items:center;gap:11px;display:grid}.credit-card-head>span{font-size:1.6rem}.credit-card-head div{gap:2px;display:grid}.credit-card-head small,.card-dates,.subscription-summary small{color:var(--muted)}.credit-card-head strong{font-size:1rem}.credit-progress{background:#0b372e1a;border-radius:999px;height:9px;overflow:hidden}.credit-progress i{border-radius:inherit;background:linear-gradient(90deg,#21a66c,#f1b84b);height:100%;display:block}.credit-stats{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}.card-config,.subscription-fields{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;display:grid}.card-config label,.subscription-fields label{color:var(--muted);gap:5px;font-size:.76rem;font-weight:850;display:grid}.card-config input,.subscription-fields input,.subscription-fields select{background:#ffffffb8;border:0;border-radius:14px;width:100%;min-height:42px;padding:9px 11px;font-size:16px}.card-dates{font-size:.76rem;font-weight:800}.subscription-summary strong{font-size:1.8rem}.subscription-summary span{color:var(--muted);font-size:.78rem;font-weight:850}.subscription-fields{padding:0 12px 12px}.subscription-fields .toggle-row{align-items:center;gap:8px;min-height:42px;display:flex}.subscription-fields .toggle-row input{width:20px;min-height:20px}.subscription-fields .danger{border-radius:14px;min-height:42px}.empty,.center-note,.insight{color:#526960;border-radius:26px;padding:18px}.center-note{text-align:center;color:var(--ink);font-weight:850}.insight{color:#0b372e;background:#ffffff94;font-weight:850}.bottom-nav{z-index:40;left:50%;right:auto;bottom:calc(10px + env(safe-area-inset-bottom));-webkit-backdrop-filter:blur(22px);background:#fffffff5;border:1px solid #ffffffb8;border-radius:22px;grid-template-columns:repeat(5,1fr);align-items:center;gap:0;width:min(100vw - 28px,346px);height:64px;padding:7px 16px;display:grid;position:fixed;transform:translate(-50%);box-shadow:0 18px 42px #092f252e}.bottom-nav button{z-index:1;color:#10231d;background:0 0;border-radius:17px;place-items:center;width:100%;min-width:0;height:50px;display:grid;position:relative}.bottom-nav svg{stroke-width:1.9px;width:22px;height:22px}.bottom-nav span{display:none}.bottom-nav .active{color:#0b372e;box-shadow:none;background:0 0}.bottom-nav .active:after{content:"";background:#21a66c;border-radius:999px;width:44px;height:3px;position:absolute;bottom:3px;left:50%;transform:translate(-50%)}.fab{z-index:25;right:max(20px,50vw - 240px);bottom:calc(92px + env(safe-area-inset-bottom));color:#fff;background:linear-gradient(145deg,#0b372e,#28c684);border:1px solid #ffffff42;border-radius:24px;place-items:center;width:62px;height:62px;display:grid;position:fixed;box-shadow:0 20px 42px #0d5c454d}.toast{z-index:50;left:50%;top:calc(12px + env(safe-area-inset-top));color:#fff;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);background:#0b372edb;border:1px solid #fff3;border-radius:14px;width:max-content;max-width:min(90vw,420px);padding:13px 18px;font-weight:850;position:absolute;bottom:auto;transform:translate(-50%);box-shadow:0 18px 42px #092f253d}@keyframes rise{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes spin{to{transform:rotate(360deg)}}@media (hover:hover){.primary:hover,.secondary:hover,.settings-list button:hover,.file-button:hover,.quick-pill:hover{transform:translateY(-1px)}}@media (width<=380px){.app-content{padding-left:12px;padding-right:12px}.page-header h1,.home-top h1{font-size:1.72rem}.hero-card>strong,.focus-card strong{font-size:2.3rem}.hero-grid,.metric-grid{grid-template-columns:1fr}.category-grid{grid-template-columns:repeat(2,1fr)}.filters:not(.top-controls),.filters.dense{grid-template-columns:1fr}.top-controls{grid-template-columns:minmax(0,.78fr) minmax(0,1.22fr)}.history-filters{grid-template-columns:repeat(2,minmax(0,1fr))}.home-top{align-items:flex-start}.home-actions{flex-wrap:wrap;justify-content:flex-end}.quick-pill{min-height:42px;padding-inline:12px}}@media (width<=430px){.bottom-nav{width:min(100vw - 24px,324px);height:62px;bottom:calc(9px + env(safe-area-inset-bottom));border-radius:21px}.bottom-nav button{height:48px}}@media (display-mode:standalone){html,body,#root{background:#dceee7;height:100dvh;min-height:100dvh}.app-shell{height:100dvh;min-height:100dvh}.bottom-nav{width:100%;height:calc(64px + env(safe-area-inset-bottom));padding:7px max(22px, env(safe-area-inset-left)) env(safe-area-inset-bottom) max(22px, env(safe-area-inset-right));background:#effaf5fa;border-width:1px 0 0;border-radius:24px 24px 0 0;bottom:0;left:0;right:0;transform:none}.fab{bottom:calc(80px + env(safe-area-inset-bottom))}.app-content{padding-bottom:calc(94px + env(safe-area-inset-bottom))}}html.pwa-standalone,html.pwa-standalone body,html.pwa-standalone #root{background:#dceee7;height:100dvh;min-height:100dvh}.pwa-standalone .app-shell{height:100dvh;min-height:100dvh}.pwa-standalone .bottom-nav{width:100%;height:calc(64px + env(safe-area-inset-bottom));padding:7px max(22px, env(safe-area-inset-left)) env(safe-area-inset-bottom) max(22px, env(safe-area-inset-right));background:#effaf5fa;border-width:1px 0 0;border-radius:24px 24px 0 0;bottom:0;left:0;right:0;transform:none}.pwa-standalone .fab{bottom:calc(80px + env(safe-area-inset-bottom))}.pwa-standalone .app-content{padding-bottom:calc(94px + env(safe-area-inset-bottom))}html,body,#root,#app{height:100dvh;margin:0;padding:0;overflow:hidden}.bottom-nav{z-index:9999;width:100%;padding-bottom:env(safe-area-inset-bottom);background-color:#e7f5ef;border-radius:24px 24px 0 0;position:absolute;left:0;right:0;transform:none;bottom:0!important}@media (display-mode:standalone){html,body,#root,.app-shell{height:var(--pwa-height,100dvh);min-height:var(--pwa-height,100dvh);padding-bottom:0}.bottom-nav{position:absolute;bottom:0!important}}html.pwa-standalone,html.pwa-standalone body,html.pwa-standalone #root,.pwa-standalone .app-shell{height:var(--pwa-height,100dvh);min-height:var(--pwa-height,100dvh)}.pwa-resuming .bottom-nav{transform:translateZ(0);bottom:0!important}
