@import"https://fonts.googleapis.com/css2?family=Sora:wght@400;500;600;700;800&family=Space+Mono:wght@400;700&display=swap";:root{--blue: #3b82f6;--indigo: #6366f1;--violet: #8b5cf6;--magenta: #d946ef;--pink: #ec4899;--bg: #070a18;--bg-2: #0b1024;--surface: rgba(22, 28, 54, .55);--surface-2: rgba(30, 38, 72, .6);--glass-brd: rgba(139, 122, 255, .16);--glass-hi: rgba(255, 255, 255, .06);--income: #34e2c0;--expense: #fb7185;--text: #eef1ff;--muted: #9aa3cf;--faint: #6b73a3;--aurora: linear-gradient(110deg, var(--blue) 0%, var(--violet) 48%, var(--pink) 100%);--aurora-soft: linear-gradient(110deg, rgba(59,130,246,.9), rgba(217,70,239,.9));--theme: var(--aurora);--theme-glow: rgba(139,92,246,.55);--theme-solid: var(--violet);--r-lg: 22px;--r-md: 16px;--r-sm: 12px;--font-display: "Sora", system-ui, sans-serif;--font-mono: "Space Mono", ui-monospace, monospace;--shadow-glass: 0 12px 40px -12px rgba(0,0,0,.7), inset 0 1px 0 var(--glass-hi);--glow-blue: 0 0 0 1px rgba(99,102,241,.4), 0 8px 30px -6px rgba(99,102,241,.55)}[data-owner=Dylan]{--theme: linear-gradient(135deg, #2563eb 0%, #38bdf8 100%);--theme-glow: rgba(56,189,248,.55);--theme-solid: #3b82f6}[data-owner=Lelo]{--theme: linear-gradient(135deg, #db2777 0%, #f472b6 100%);--theme-glow: rgba(244,114,182,.55);--theme-solid: #ec4899}[data-owner=Household]{--theme: var(--aurora);--theme-glow: rgba(139,92,246,.55);--theme-solid: var(--violet)}*{box-sizing:border-box}html,body{margin:0}body{min-height:100dvh;background:var(--bg);color:var(--text);font-family:var(--font-display);-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent;overflow-x:hidden}body:before{content:"";position:fixed;top:-20%;right:-20%;bottom:-20%;left:-20%;z-index:-2;background:radial-gradient(40% 35% at 18% 12%,rgba(59,130,246,.4),transparent 70%),radial-gradient(45% 40% at 85% 18%,rgba(217,70,239,.32),transparent 70%),radial-gradient(50% 45% at 60% 95%,rgba(139,92,246,.3),transparent 72%);filter:blur(18px);animation:drift 22s ease-in-out infinite alternate}body:after{content:"";position:fixed;top:0;right:0;bottom:0;left:0;z-index:-1;opacity:.035;pointer-events:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}@keyframes drift{0%{transform:translateZ(0) scale(1)}to{transform:translate3d(0,-3%,0) scale(1.08)}}.accent{background:var(--theme);-webkit-background-clip:text;background-clip:text;color:transparent}.muted{color:var(--muted)}.small{font-size:12px}.error{color:var(--expense);font-size:13px}.num{font-family:var(--font-mono);font-variant-numeric:tabular-nums}.card{background:var(--surface);border:1px solid var(--glass-brd);border-radius:var(--r-lg);backdrop-filter:blur(20px) saturate(140%);-webkit-backdrop-filter:blur(20px) saturate(140%);box-shadow:var(--shadow-glass);padding:24px}button{font-family:var(--font-display);cursor:pointer;border:none}.btn-primary,.save{width:100%;padding:15px;border-radius:var(--r-md);background:var(--theme);color:#fff;font-weight:700;font-size:15px;letter-spacing:.2px;box-shadow:0 8px 26px -8px var(--theme-glow);transition:transform .18s ease,box-shadow .18s ease,filter .18s ease}.btn-primary:hover,.save:hover{transform:translateY(-1px);filter:brightness(1.06)}.btn-primary:active,.save:active{transform:translateY(0) scale(.99)}.btn-primary:disabled,.save:disabled{opacity:.55;cursor:default;box-shadow:none}.ghost-btn{display:inline-flex;align-items:center;gap:8px;padding:10px 14px;background:var(--glass-hi);border:1px solid var(--glass-brd);border-radius:var(--r-sm);color:var(--text);font-size:14px;font-weight:500;transition:background .18s ease,border-color .18s ease}.ghost-btn:hover{background:#ffffff1a;border-color:#8b7aff66}input,select{width:100%;padding:13px 14px;margin:6px 0;background:#0a0e2099;border:1px solid var(--glass-brd);border-radius:var(--r-md);color:var(--text);font-family:var(--font-display);font-size:16px;transition:border-color .18s ease,box-shadow .18s ease}input::placeholder{color:var(--faint)}input:focus,select:focus{outline:none;border-color:var(--violet);box-shadow:0 0 0 3px #8b5cf640}.center-screen{min-height:100dvh;display:grid;place-items:center;padding:24px}.login{max-width:400px;width:100%;text-align:center;animation:rise .7s cubic-bezier(.2,.8,.2,1) both}.login .crest{width:56px;height:56px;margin:0 auto 18px;display:grid;place-items:center;border-radius:18px;background:var(--aurora);box-shadow:var(--glow-blue)}.login h1{font-size:26px;font-weight:800;margin:0 0 6px;line-height:1.15;letter-spacing:-.5px}.login .sub{color:var(--muted);margin:0 0 22px;font-size:14px}.login form{display:flex;flex-direction:column;gap:4px}.sent-msg{display:flex;flex-direction:column;align-items:center;gap:10px;color:var(--income);font-weight:600}@keyframes rise{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:none}}.app{max-width:540px;margin:0 auto;padding:22px 18px 120px;animation:rise .6s ease both}.topbar{display:flex;justify-content:space-between;align-items:center;margin-bottom:22px}.brand{display:flex;align-items:center;gap:10px}.brand .mark{width:34px;height:34px;border-radius:11px;display:grid;place-items:center;background:var(--theme);box-shadow:0 6px 18px -6px var(--theme-glow);transition:background .4s ease}.brand h1{font-size:18px;font-weight:700;margin:0;letter-spacing:-.3px}.tabs{display:flex;gap:4px;padding:5px;background:var(--surface);border:1px solid var(--glass-brd);border-radius:999px;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);margin-bottom:20px}.tabs button{flex:1;padding:11px;border-radius:999px;background:transparent;color:var(--muted);font-weight:600;font-size:14px;transition:color .2s ease}.tabs button.on{color:#fff;background:var(--theme);box-shadow:0 6px 18px -6px var(--theme-glow)}.totals{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:22px}.stat{position:relative;overflow:hidden;background:var(--surface);border:1px solid var(--glass-brd);border-radius:var(--r-lg);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);padding:16px 18px;box-shadow:var(--shadow-glass)}.stat .label{display:block;color:var(--muted);font-size:12px;font-weight:600;letter-spacing:.4px;text-transform:uppercase}.stat .val{display:block;margin-top:6px;font-size:19px;font-weight:700}.stat.net{grid-column:1 / -1;text-align:center;padding:22px}.stat.net:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;opacity:.18;background:var(--theme);filter:blur(30px);transition:background .4s ease}.stat.net .val{position:relative;font-size:38px;margin-top:8px;letter-spacing:-1px;background:var(--theme);-webkit-background-clip:text;background-clip:text;color:transparent}.val.pos{color:var(--income)}.val.neg{color:var(--expense)}.entries{display:flex;flex-direction:column;gap:10px}.entry{display:flex;align-items:center;gap:14px;background:var(--surface);border:1px solid var(--glass-brd);border-radius:var(--r-md);padding:13px 15px;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);transition:transform .16s ease,border-color .16s ease}.entry:hover{transform:translate(2px);border-color:#8b7aff59}.entry .ic{width:38px;height:38px;flex:none;border-radius:11px;display:grid;place-items:center;background:var(--glass-hi);border:1px solid var(--glass-brd)}.entry .ic.income{color:var(--income)}.entry .ic.expense{color:var(--expense)}.entry .body{flex:1;min-width:0}.entry-cat{font-weight:600;font-size:15px}.entry-amt{font-family:var(--font-mono);font-variant-numeric:tabular-nums;font-weight:700;font-size:15px}.entry-amt.expense{color:var(--expense)}.entry-amt.income{color:var(--income)}.empty{text-align:center;padding:48px 16px;color:var(--muted)}.empty svg{opacity:.5;margin-bottom:12px}.entry-del{flex:none;width:34px;height:34px;border-radius:10px;display:grid;place-items:center;background:transparent;border:1px solid transparent;color:var(--faint);transition:color .16s ease,background .16s ease,border-color .16s ease}.entry-del:hover{color:var(--expense);background:#fb71851a;border-color:#fb71854d}.btn-danger{flex:1;padding:13px;border-radius:var(--r-md);background:var(--expense);color:#1a0508;font-weight:700;font-size:14px;transition:filter .16s ease,transform .12s ease}.btn-danger:hover{filter:brightness(1.05)}.btn-danger:active{transform:scale(.98)}.btn-danger:disabled{opacity:.6;cursor:default}.confirm{max-width:360px;width:100%;text-align:center;animation:rise .25s ease both}.confirm-icon{width:52px;height:52px;margin:0 auto 14px;border-radius:16px;display:grid;place-items:center;color:var(--expense);background:#fb71851f;border:1px solid rgba(251,113,133,.3)}.confirm h2{font-size:18px;font-weight:700;margin:0 0 8px}.confirm p{margin:0 0 20px;font-size:14px;line-height:1.5}.confirm-actions{display:flex;gap:10px}.confirm-cancel{flex:1;justify-content:center}.topbar-title{font-size:17px;font-weight:700;margin:0;letter-spacing:-.3px}.icon-btn{width:42px;height:42px;border-radius:13px;display:grid;place-items:center;background:var(--glass-hi);border:1px solid var(--glass-brd);color:var(--text);transition:background .16s ease,transform .12s ease,border-color .16s ease}.icon-btn:hover{background:#ffffff1f}.icon-btn:active{transform:scale(.94)}.icon-btn.add{background:var(--theme);color:#fff;border-color:transparent;box-shadow:0 8px 22px -8px var(--theme-glow);transition:background .4s ease,transform .12s ease,filter .16s ease}.icon-btn.add:hover{filter:brightness(1.07)}.drawer-scrim{position:fixed;top:0;right:0;bottom:0;left:0;z-index:60;background:#04061080;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);opacity:0;pointer-events:none;transition:opacity .25s ease}.drawer-scrim.show{opacity:1;pointer-events:auto}.drawer{position:fixed;top:0;left:0;bottom:0;z-index:61;width:min(82vw,300px);background:#0b1024eb;-webkit-backdrop-filter:blur(24px) saturate(150%);backdrop-filter:blur(24px) saturate(150%);border-right:1px solid var(--glass-brd);padding:calc(20px + env(safe-area-inset-top)) 16px calc(20px + env(safe-area-inset-bottom));display:flex;flex-direction:column;transform:translate(-100%);transition:transform .3s cubic-bezier(.2,.85,.2,1)}.drawer.open{transform:none}.drawer-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:22px}.drawer-items{display:flex;flex-direction:column;gap:4px;flex:1}.drawer-item{display:flex;align-items:center;gap:14px;padding:14px;border-radius:var(--r-md);background:transparent;color:var(--muted);font-size:15px;font-weight:600;text-align:left;transition:background .16s ease,color .16s ease}.drawer-item:hover{background:var(--glass-hi);color:var(--text)}.drawer-item.on{color:#fff;background:var(--theme);box-shadow:0 6px 16px -8px var(--theme-glow)}.drawer-logout{display:flex;align-items:center;justify-content:center;gap:10px;margin-top:16px;padding:14px;border-radius:var(--r-md);background:#fb71851a;border:1px solid rgba(251,113,133,.3);color:var(--expense);font-weight:700;font-size:14px}.drawer-logout:hover{background:#fb71852e}.month-picker{display:flex;align-items:center;justify-content:space-between;background:var(--surface);border:1px solid var(--glass-brd);border-radius:999px;padding:6px 8px;margin-top:20px;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.month-picker button{width:40px;height:40px;border-radius:999px;display:grid;place-items:center;background:var(--glass-hi);border:1px solid var(--glass-brd);color:var(--text);transition:background .16s ease}.month-picker button:hover{background:#ffffff1f}.month-picker button:disabled{opacity:.3;cursor:default}.month-label{font-weight:700;font-size:15px;letter-spacing:.3px}.months-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.month-card{text-align:left;padding:16px;background:var(--surface);border:1px solid var(--glass-brd);border-radius:var(--r-lg);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);transition:transform .16s ease,border-color .16s ease}.month-card:hover{transform:translateY(-2px);border-color:#8b7aff66}.month-card-head{color:var(--muted);font-size:13px;font-weight:600}.month-card-net{font-size:22px;font-weight:700;margin:6px 0;letter-spacing:-.5px}.month-card-net.pos{color:var(--income)}.month-card-net.neg{color:var(--expense)}.month-card-row{display:flex;justify-content:space-between;font-size:12px}.goals{display:flex;flex-direction:column;gap:14px}.goal-card{padding:18px}.goal-row{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px;gap:12px}.goal-input{width:120px;margin:0;text-align:right;padding:8px 10px;font-size:15px}.progress-track{height:12px;border-radius:99px;background:#ffffff14;overflow:hidden}.progress-fill{height:100%;background:var(--theme);border-radius:99px;transition:width .5s cubic-bezier(.2,.8,.2,1)}.goal-sub{margin-top:10px;font-size:13px}.bars{display:flex;align-items:flex-end;gap:5px;height:130px;margin:4px 0 6px}.bar-col{flex:1;display:flex;flex-direction:column;align-items:center;gap:6px;height:100%}.bar-wrap{flex:1;width:100%;display:flex;align-items:flex-end}.bar{width:100%;border-radius:6px 6px 3px 3px;background:#ffffff2e;transition:height .4s ease}.bar.hit{background:var(--income)}.bar.neg{background:var(--expense)}.bar-label{font-size:10px;color:var(--faint);font-family:var(--font-mono)}.recurring-hint{display:flex;align-items:center;gap:6px;margin:0 0 14px}.recur-add{display:flex;align-items:center;justify-content:center;gap:8px;margin-top:16px}.recur-form{margin-top:16px}.recur-form input,.recur-form select{margin:6px 0}.recur-cancel{width:100%;justify-content:center;margin-top:10px}.settings-view{display:flex;flex-direction:column;gap:14px}.settings-logout{display:flex;align-items:center;justify-content:center;gap:10px}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:50;background:#0406108c;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);display:grid;place-items:start center;animation:fade .2s ease both}.modal-backdrop.centered{place-items:center;padding:24px}.modal{width:100%;max-width:460px;border-radius:0 0 26px 26px;padding:calc(18px + env(safe-area-inset-top)) 22px 24px;max-height:92dvh;overflow-y:auto;margin-bottom:auto;animation:drop .32s cubic-bezier(.2,.85,.2,1) both}@media (min-width: 480px){.modal{border-radius:26px;margin-top:24px;animation:rise .3s ease both}}.grip{width:42px;height:4px;border-radius:99px;background:var(--glass-brd);margin:-6px auto 14px}.modal-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px}.modal-head h2{font-size:17px;font-weight:700;margin:0}.x{background:var(--glass-hi);border:1px solid var(--glass-brd);color:var(--muted);width:34px;height:34px;border-radius:10px;display:grid;place-items:center}.x:hover{color:var(--text)}.seg{display:flex;gap:8px;margin-bottom:16px}.seg button{flex:1;padding:12px;border-radius:var(--r-md);background:var(--glass-hi);color:var(--muted);border:1px solid var(--glass-brd);font-weight:600;display:inline-flex;align-items:center;justify-content:center;gap:7px;transition:all .18s ease}.seg button.on{color:#06140f;background:var(--income);border-color:transparent}.seg button.on.expense{color:#1a0508;background:var(--expense)}.amount-display{text-align:center;font-family:var(--font-mono);font-variant-numeric:tabular-nums;font-size:46px;font-weight:700;padding:10px 0 18px;letter-spacing:-1px}.amount-display.expense{color:var(--expense)}.amount-display.income{color:var(--income)}.keypad{display:grid;grid-template-columns:repeat(3,1fr);gap:9px}.keypad button{padding:17px;border-radius:var(--r-md);background:var(--glass-hi);border:1px solid var(--glass-brd);color:var(--text);font-family:var(--font-mono);font-size:21px;font-weight:700;transition:background .14s ease,transform .08s ease}.keypad button:hover{background:#ffffff1f}.keypad button:active{transform:scale(.95)}.row{display:flex;gap:10px;margin-top:14px}.row>*{flex:1}.note{width:100%}.ocr-block{margin:14px 0 4px;display:flex;flex-direction:column;gap:8px}.ocr-block .ghost-btn{justify-content:center;cursor:pointer}.save{margin-top:16px;width:100%}@keyframes fade{0%{opacity:0}to{opacity:1}}@keyframes sheet{0%{opacity:0;transform:translateY(40px)}to{opacity:1;transform:none}}@keyframes drop{0%{opacity:0;transform:translateY(-40px)}to{opacity:1;transform:none}}.toasts{position:fixed;top:calc(env(safe-area-inset-top,0px) + 10px);left:12px;right:12px;z-index:200;display:flex;flex-direction:column;gap:8px;pointer-events:none}.toast{background:#501423eb;border:1px solid rgba(251,113,133,.45);color:var(--text);font-size:13px;padding:10px 14px;border-radius:var(--r-sm);box-shadow:var(--shadow-glass);animation:drop .25s ease}.offline-banner{position:fixed;top:0;left:0;right:0;z-index:190;text-align:center;font-size:12px;padding:calc(env(safe-area-inset-top,0px) + 5px) 12px 5px;color:#fde68a;background:#78350feb;border-bottom:1px solid rgba(245,158,11,.4);animation:drop .25s ease}.auth-links{display:flex;flex-direction:column;gap:6px;margin-top:14px;text-align:center}.link-btn{background:none;border:none;cursor:pointer;color:var(--muted);font-size:13px;font-family:var(--font-display);text-decoration:underline;text-underline-offset:3px;padding:2px 4px}.link-btn:hover{color:var(--text)}.code-input{text-transform:uppercase;letter-spacing:3px}.code-big{font-family:var(--font-mono);font-size:32px;letter-spacing:8px;text-align:center;padding:14px 6px 14px 14px;margin:10px 0;color:var(--text);background:var(--glass-hi);border:1px dashed var(--glass-brd);border-radius:var(--r-sm);-webkit-user-select:all;user-select:all}.swatches{display:flex;gap:10px;margin:8px 0 12px}.swatch{width:34px;height:34px;border-radius:50%;border:2px solid transparent;cursor:pointer;transition:transform .15s ease,border-color .15s ease}.swatch:hover{transform:scale(1.1)}.swatch.on{border-color:#fff;box-shadow:0 0 0 3px var(--theme-glow)}.member-list{display:flex;flex-direction:column;gap:8px;margin:10px 0 4px}.member-row{display:flex;align-items:center;gap:10px;font-size:14px}.member-dot{width:10px;height:10px;border-radius:50%;flex:none}.invite-actions{margin-left:auto;display:flex;gap:8px}.invite-fresh{margin-bottom:10px}@media (prefers-reduced-motion: reduce){*,body:before{animation:none!important;transition:none!important}}.landing{max-width:640px;margin:0 auto;padding:56px 20px 60px;animation:rise .7s cubic-bezier(.2,.8,.2,1) both}.landing-hero{text-align:center;margin-bottom:36px}.landing-hero .crest{width:64px;height:64px;margin:0 auto 18px;display:grid;place-items:center;border-radius:20px;background:var(--aurora);box-shadow:var(--glow-blue)}.landing-hero h1{font-size:34px;font-weight:800;letter-spacing:-.5px;margin-bottom:12px}.landing-tagline{font-size:24px;font-weight:700;line-height:1.25;background:var(--aurora);-webkit-background-clip:text;background-clip:text;color:transparent;margin-bottom:14px}.landing-sub{color:var(--muted);font-size:15px;max-width:460px;margin:0 auto 24px;line-height:1.65}.landing-cta{display:flex;gap:12px;justify-content:center;flex-wrap:wrap}.landing-cta .btn-primary{width:auto;padding:13px 26px}.landing-cta .ghost-btn{padding:13px 26px}.landing-features{display:grid;gap:14px;margin-bottom:22px}@media (min-width: 560px){.landing-features{grid-template-columns:1fr 1fr 1fr}}.landing-feature svg{color:var(--theme-solid);margin-bottom:10px}.landing-feature h3{font-size:15px;margin-bottom:6px}.landing-feature p{color:var(--muted);font-size:13px;line-height:1.6}.landing-steps{margin-bottom:14px}.landing-steps h2,.landing-install h2{font-size:17px;margin-bottom:10px}.landing-steps ol{padding-left:20px;display:flex;flex-direction:column;gap:8px;margin-bottom:12px}.landing-steps li{color:var(--muted);font-size:14px;line-height:1.6}.landing-steps li strong{color:var(--text)}.landing-steps a{color:#38bdf8;text-decoration:none}.landing-install{margin-bottom:30px}.landing-install p{font-size:14px;line-height:1.65}.landing-footer{display:flex;gap:10px;justify-content:center;color:var(--faint);font-size:13px}.landing-footer a{color:var(--muted);text-decoration:none}.landing-footer a:hover{color:var(--text)}.ghost-btn.danger{color:var(--expense);border-color:#fb718559}.ghost-btn.danger:hover{background:#fb71851a;border-color:#fb71858c}.settings-legal{text-align:center;margin-top:4px}.settings-legal a{color:var(--muted)}
