@font-face{font-family:TSSign;font-style:normal;font-weight:400;font-display:block;src:url(/assets/TSSign-B-R394Co.woff2)format("woff2")}:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:oklch(11.5% .006 274);--bg-elevated:oklch(14.5% .008 274);--panel:oklch(17.8% .008 274/.84);--panel-2:oklch(22.5% .01 274/.78);--panel-3:oklch(29% .012 274/.88);--ink:oklch(95.5% .004 274);--ink-2:oklch(76.5% .014 274);--ink-3:oklch(61% .018 274);--line:oklch(38% .018 274/.52);--line-soft:oklch(48% .03 274/.2);--line-strong:oklch(67% .042 274/.62);--accent:oklch(86% .006 274);--accent-dark:oklch(96% .004 274);--accent-soft:oklch(34% .006 274/.62);--aura-slate:oklch(78% .004 274);--aura-silver:oklch(95% .003 274);--aura-smoke:oklch(68% .003 274);--warn:oklch(78% .13 78);--warn-soft:oklch(31% .035 78);--danger:oklch(72% .16 28);--danger-soft:oklch(31% .045 28);--success:oklch(75% .11 155);--success-soft:oklch(30% .035 155);--shadow:0 14px 48px oklch(0% 0 0/.28);--glow:0 0 0 1px oklch(96% .004 274/.2), 0 16px 54px oklch(90% .004 274/.14);--ease-out:cubic-bezier(.16, 1, .3, 1);--r-sm:8px;--r-md:12px;--tap:42px;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:14px}*{box-sizing:border-box}html,body,#app{min-height:100%}body{background:radial-gradient(circle at 15% -10%, oklch(78% .006 274/.2), transparent 330px), radial-gradient(circle at 82% 8%, oklch(66% .004 274/.16), transparent 360px), radial-gradient(circle at 55% 110%, oklch(52% .004 274/.14), transparent 420px), var(--bg);color:var(--ink);margin:0;overflow-x:hidden}body:before,body:after{pointer-events:none;content:"";position:fixed;inset:0}body:before{z-index:-2;animation:ambient-flow 18s var(--ease-out) infinite alternate;background:linear-gradient(115deg,#0000 0 16%,oklch(95% .003 274/.08) 28%,#0000 42% 100%) 0 0/160% 160%,linear-gradient(245deg,#0000 0 50%,oklch(72% .004 274/.07) 62%,#0000 76% 100%) 0 0/140% 140%}body:after{z-index:-1;opacity:.15;mix-blend-mode:screen;background-image:radial-gradient(circle at 20% 30%,oklch(100% 0 0/.15) 0 .5px,#0000 .8px),radial-gradient(circle at 80% 70%,oklch(100% 0 0/.12) 0 .45px,#0000 .75px);background-size:3px 3px,5px 5px}@keyframes ambient-flow{0%{filter:brightness();background-position:0 45%,100% 35%}to{filter:brightness(1.08);background-position:100% 55%,0 65%}}button,input,select,textarea{font:inherit}button{border:0}button,select{cursor:pointer}button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.app-shell{min-height:100vh;padding:14px 10px 82px}.app-splash{z-index:30;background:radial-gradient(circle at 50% 42%, oklch(95% .004 274/.12), transparent 230px), var(--bg);pointer-events:none;animation:splash-dismiss .86s .72s var(--ease-out) forwards;place-items:center;padding:28px;display:grid;position:fixed;inset:0}.splash-lockup{place-items:center;gap:14px;display:grid;transform:translateY(-2vh)}.splash-logo{object-fit:contain;filter:drop-shadow(0 18px 44px oklch(0% 0 0/.38));width:min(28vmin,142px);height:min(28vmin,142px)}.splash-wordmark{color:var(--ink);letter-spacing:0;text-shadow:0 0 22px oklch(95% .003 274/.2);font-family:TSSign,Segoe Script,cursive;font-size:min(12vmin,62px);font-weight:400;line-height:1}@keyframes splash-dismiss{0%,68%{opacity:1;visibility:visible}to{opacity:0;visibility:hidden}}.workspace{width:min(1180px,100%);margin:0 auto}.topbar{border:1px solid var(--line);border-radius:var(--r-md);box-shadow:var(--shadow);-webkit-backdrop-filter:blur(18px)saturate(1.12);backdrop-filter:blur(18px)saturate(1.12);background:linear-gradient(oklch(22% .012 274/.82),oklch(15% .008 274/.76));justify-content:space-between;align-items:center;gap:12px;margin-bottom:14px;padding:10px;display:flex;position:relative;overflow:hidden}.topbar:before,.ledger-hero:before,.panel:before{border-radius:inherit;pointer-events:none;content:"";position:absolute;inset:0}.topbar:before,.ledger-hero:before{animation:line-sheen 8s var(--ease-out) infinite;background:linear-gradient(105deg,#0000 0 18%,oklch(96% .004 274/.16) 32%,#0000 48% 100%);transform:translate(-38%)}@keyframes line-sheen{0%,32%{opacity:0;transform:translate(-42%)}48%{opacity:1}76%,to{opacity:0;transform:translate(42%)}}.topbar-actions{flex-wrap:wrap;flex:none;justify-content:flex-end;align-items:center;gap:8px;display:inline-flex}.brand{align-items:center;gap:10px;min-width:0;display:flex}.brand-mark{background:radial-gradient(circle at 28% 18%, oklch(96% .004 274/.22), transparent 44%), var(--panel-2);border:1px solid var(--line);width:44px;height:44px;color:var(--ink);border-radius:12px;flex:none;place-items:center;font-weight:760;display:inline-grid;position:relative;overflow:hidden}.brand-logo{object-fit:contain;width:100%;height:100%;display:block}.brand h1{letter-spacing:0;margin:0;font-size:24px;line-height:1}.brand p{max-width:60ch;color:var(--ink-2);white-space:nowrap;text-overflow:ellipsis;margin:0;line-height:1.35;overflow:hidden}.sync-pill{border:1px solid var(--line);min-height:34px;color:var(--ink-2);white-space:nowrap;background:oklch(18% .008 274/.66);border-radius:999px;align-items:center;gap:8px;padding:8px 10px;display:inline-flex}.sync-dot{background:var(--success);border-radius:999px;width:8px;height:8px;box-shadow:0 0 12px oklch(75% .11 155/.58)}.icon-btn{border-radius:var(--r-sm);border:1px solid var(--line);width:34px;height:34px;color:var(--ink-2);transition:background .18s var(--ease-out), color .18s var(--ease-out), border-color .18s var(--ease-out), transform .18s var(--ease-out), box-shadow .18s var(--ease-out);background:oklch(18% .008 274/.7);place-items:center;display:inline-grid}.icon-btn:hover{border-color:var(--line-strong);color:var(--ink);background:var(--panel-2);box-shadow:var(--glow)}.icon-btn:active{transform:translateY(1px)}.icon-btn svg{width:18px;height:18px}.view{display:none}.view.active{display:block}.grid{gap:12px;display:grid}.grid.two{grid-template-columns:1fr}.panel{background:var(--panel);border:1px solid var(--line);border-radius:var(--r-md);-webkit-backdrop-filter:blur(14px)saturate(1.08);backdrop-filter:blur(14px)saturate(1.08);padding:14px;position:relative;overflow:hidden;box-shadow:inset 0 1px oklch(100% 0 0/.04)}.panel:before{border:1px solid oklch(96% .004 274/.05)}.panel>*{z-index:1;position:relative}.panel.tight{padding:10px}.section-head{justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px;display:flex}.section-head h2,.section-head h3{margin:0;font-size:15px;line-height:1.2}.section-head p{color:var(--ink-2);margin:3px 0 0;line-height:1.35}.stats-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}.stat{background:var(--panel);border:1px solid var(--line);border-radius:var(--r-sm);flex-direction:column;justify-content:space-between;min-height:76px;padding:10px;display:flex}.stat strong{letter-spacing:0;font-size:20px;line-height:1.1}.stat span{color:var(--ink-2);font-size:12px;font-weight:650}.ledger-hero{border:1px solid var(--line);border-radius:var(--r-md);box-shadow:var(--shadow);-webkit-backdrop-filter:blur(18px)saturate(1.15);backdrop-filter:blur(18px)saturate(1.15);background:radial-gradient(circle at 8% 12%,oklch(96% .004 274/.12),#0000 34%),radial-gradient(circle at 88% 0,oklch(74% .004 274/.1),#0000 38%),linear-gradient(oklch(21% .012 274/.86),oklch(15% .008 274/.8));gap:12px;margin-bottom:12px;padding:14px;display:grid;position:relative;overflow:hidden}.ledger-hero>*{z-index:1;position:relative}.ledger-hero h2{margin:2px 0 0;font-size:22px;line-height:1.1}.ledger-hero p{color:var(--ink-2);margin:4px 0 0;line-height:1.4}.eyebrow{color:var(--ink-3);margin:0;font-size:12px;font-weight:760}.ledger-metrics{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}.ledger-metrics div{border-radius:var(--r-sm);border:1px solid var(--line);background:oklch(17% .01 274/.7);align-content:space-between;gap:8px;min-height:70px;padding:10px;display:grid;box-shadow:inset 0 1px oklch(100% 0 0/.04)}.ledger-metrics span{color:var(--ink-2);font-size:12px;font-weight:700}.ledger-metrics strong{text-overflow:ellipsis;letter-spacing:0;font-size:18px;line-height:1.15;overflow:hidden}.ledger-grid{grid-template-columns:1fr;align-items:start}.capture-panel{padding:12px}.transaction-capture{gap:12px;display:grid}.type-switch{border:1px solid var(--line);border-radius:var(--r-sm);background:oklch(12% .006 274/.74);grid-template-columns:repeat(3,1fr);gap:6px;padding:3px;display:grid}.type-switch label{display:block}.type-switch input{opacity:0;pointer-events:none;position:absolute}.type-switch span{min-height:36px;color:var(--ink-2);transition:background .18s var(--ease-out), color .18s var(--ease-out), box-shadow .18s var(--ease-out);border-radius:7px;place-items:center;font-weight:760;display:grid}.type-switch input:checked+span{color:var(--ink);background:linear-gradient(oklch(34% .02 274/.94),oklch(25% .014 274/.9));box-shadow:inset 0 0 0 1px oklch(96% .004 274/.12),0 8px 26px oklch(0% 0 0/.2)}.amount-field{gap:6px;display:grid}.amount-field label{color:var(--ink-2);font-size:12px;font-weight:700}.money-input{border:1px solid var(--line);border-radius:var(--r-md);width:100%;min-height:62px;color:var(--ink);letter-spacing:0;transition:border-color .18s var(--ease-out), box-shadow .18s var(--ease-out), background .18s var(--ease-out);background:radial-gradient(circle at 8% 8%,oklch(96% .004 274/.1),#0000 32%),oklch(12% .006 274/.84);padding:10px 12px;font-size:28px;font-weight:760;line-height:1;box-shadow:inset 0 1px oklch(100% 0 0/.05)}.money-input:focus{border-color:var(--line-strong);box-shadow:var(--glow)}.money-input::placeholder{color:var(--ink-3)}.quick-template-row{gap:6px;padding-bottom:2px;display:flex;overflow-x:auto}.template-chip{border:1px solid var(--line);min-height:34px;color:var(--ink);transition:border-color .18s var(--ease-out), background .18s var(--ease-out), color .18s var(--ease-out), transform .18s var(--ease-out), box-shadow .18s var(--ease-out);background:oklch(18% .008 274/.7);border-radius:999px;flex:none;padding:7px 10px;font-weight:700}.template-chip:hover{background:var(--panel-2);border-color:var(--line-strong);transform:translateY(-1px);box-shadow:0 8px 28px oklch(86% .004 274/.1)}.capture-fields{gap:10px;display:grid}.receipt-strip{border:1px solid var(--line);border-radius:var(--r-sm);background:oklch(12% .006 274/.72);flex-wrap:wrap;align-items:center;gap:8px;padding:10px;display:flex}.receipt-button,.check-field{border-radius:var(--r-sm);min-height:34px;color:var(--ink);align-items:center;gap:7px;font-weight:700;display:inline-flex}.receipt-button{border:1px solid var(--line);cursor:pointer;transition:border-color .18s var(--ease-out), background .18s var(--ease-out), transform .18s var(--ease-out);background:oklch(18% .008 274/.7);padding:7px 9px}.receipt-button:hover{border-color:var(--line-strong);background:var(--panel-2);transform:translateY(-1px)}.receipt-button svg{width:16px;height:16px}.check-field input{accent-color:var(--ink)}.receipt-thumb{border-radius:var(--r-sm);border:1px solid var(--line);object-fit:cover;width:42px;height:42px}.summary-block+.summary-block{margin-top:14px}.summary-block h3{margin:0 0 8px;font-size:13px;line-height:1.2}.compact-list{gap:6px}.mini-row{border:1px solid var(--line);border-radius:var(--r-sm);background:oklch(12% .006 274/.72);justify-content:space-between;align-items:center;gap:10px;min-height:36px;padding:8px 9px;display:flex}.mini-row span{color:var(--ink-2)}.mini-row strong{white-space:nowrap}.ledger-list-panel{margin-top:12px}.quick-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}.quick-action,.product-link{border-radius:var(--r-sm);border:1px solid var(--line);min-height:58px;color:var(--ink);transition:transform .18s var(--ease-out), border-color .18s var(--ease-out), background .18s var(--ease-out), box-shadow .18s var(--ease-out);background:oklch(18% .008 274/.72);align-items:center;gap:10px;padding:10px;text-decoration:none;display:flex;box-shadow:inset 0 1px oklch(100% 0 0/.04)}.quick-action:hover,.product-link:hover{border-color:var(--line-strong);background:var(--panel-2);box-shadow:var(--glow);transform:translateY(-1px)}.icon-box{background:radial-gradient(circle at 30% 20%, oklch(98% .003 274/.2), transparent 42%), var(--accent-soft);width:34px;height:34px;color:var(--ink);border:1px solid oklch(96% .004 274/.16);border-radius:10px;flex:none;place-items:center;display:inline-grid}.quick-action strong,.product-link strong{font-size:13px;line-height:1.15;display:block}.quick-action span,.product-link span{color:var(--ink-2);margin-top:2px;font-size:12px;line-height:1.25;display:block}.form-grid{gap:10px;display:grid}.field{gap:5px;display:grid}.field label{color:var(--ink-2);font-size:12px;font-weight:700}.input,.select,.textarea{width:100%;min-height:var(--tap);border-radius:var(--r-sm);border:1px solid var(--line);color:var(--ink);transition:border-color .18s var(--ease-out), background .18s var(--ease-out), box-shadow .18s var(--ease-out);background:oklch(12% .006 274/.72);padding:9px 10px}.input:hover,.select:hover,.textarea:hover{border-color:var(--line-strong)}.input:focus,.select:focus,.textarea:focus{border-color:var(--line-strong);background:oklch(13% .008 274/.86);box-shadow:0 0 0 3px oklch(96% .004 274/.12)}.textarea{resize:vertical;min-height:72px}.input::placeholder,.textarea::placeholder{color:var(--ink-3)}.btn-row{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.btn{min-height:var(--tap);border-radius:var(--r-sm);transition:background .18s var(--ease-out), color .18s var(--ease-out), transform .18s var(--ease-out), border-color .18s var(--ease-out), box-shadow .18s var(--ease-out);justify-content:center;align-items:center;gap:8px;padding:9px 12px;font-weight:720;display:inline-flex}.btn:active{transform:translateY(1px)}.btn.primary{color:oklch(11% .012 274);background:linear-gradient(oklch(98% .004 274),oklch(78% .006 274));box-shadow:inset 0 0 0 1px oklch(100% 0 0/.2),0 10px 32px oklch(88% .004 274/.16)}.btn.primary:hover{box-shadow:var(--glow);background:linear-gradient(oklch(100% 0 0),oklch(86% .004 274))}.btn.secondary{border:1px solid var(--line);color:var(--ink);background:oklch(18% .008 274/.72)}.btn.secondary:hover{border-color:var(--line-strong);background:var(--panel-2);box-shadow:0 8px 24px oklch(0% 0 0/.16)}.btn.ghost{color:var(--ink);background:0 0}.btn.ghost:hover{background:var(--panel-2)}.btn.danger{background:var(--danger-soft);color:var(--danger)}.btn:disabled{opacity:.55;cursor:not-allowed}.segmented{border:1px solid var(--line);border-radius:var(--r-sm);background:oklch(12% .006 274/.7);padding:3px;display:inline-flex}.segmented button{min-height:32px;color:var(--ink-2);transition:background .18s var(--ease-out), color .18s var(--ease-out), box-shadow .18s var(--ease-out);background:0 0;border-radius:7px;padding:5px 10px;font-weight:700}.segmented button.active{background:var(--panel-3);color:var(--ink);box-shadow:inset 0 1px oklch(100% 0 0/.05)}.filters{grid-template-columns:1fr;gap:8px;margin-bottom:10px;display:grid}.list{gap:8px;display:grid}.empty{border-radius:var(--r-sm);color:var(--ink-2);background:oklch(18% .008 274/.62);padding:18px;line-height:1.45}.txn-row,.event-row,.budget-row,.note-row{border:1px solid var(--line);border-radius:var(--r-sm);transition:border-color .18s var(--ease-out), background .18s var(--ease-out), transform .18s var(--ease-out), box-shadow .18s var(--ease-out);background:oklch(17% .008 274/.72);padding:10px}.txn-row:hover,.event-row:hover,.budget-row:hover,.note-row:hover{border-color:var(--line-strong);background:var(--panel-2);transform:translateY(-1px);box-shadow:0 10px 34px oklch(0% 0 0/.16)}.txn-main,.event-main,.budget-main,.note-main{justify-content:space-between;align-items:flex-start;gap:10px;display:flex}.txn-title,.event-title,.budget-title,.note-title{margin:0;font-weight:760;line-height:1.25}.meta{color:var(--ink-2);margin-top:3px;font-size:12px;line-height:1.35}.marker-row{flex-wrap:wrap;gap:5px;margin-top:8px;display:flex}.marker-row span{border:1px solid var(--line);min-height:22px;color:var(--ink-2);background:oklch(12% .006 274/.38);border-radius:999px;align-items:center;padding:3px 7px;font-size:11px;font-weight:700;display:inline-flex}.amount{white-space:nowrap;font-weight:800}.amount.expense{color:var(--danger)}.amount.income{color:var(--success)}.tags{flex-wrap:wrap;gap:5px;margin-top:8px;display:flex}.tag{border:1px solid var(--line);min-height:24px;color:var(--ink-2);background:oklch(20% .012 274/.66);border-radius:999px;align-items:center;padding:3px 8px;font-size:12px;font-weight:650;display:inline-flex}.event-row.pending{background:var(--warn-soft)}.event-row.approved{background:var(--success-soft)}.event-row.dismissed,.event-row.revoked{opacity:.78}.row-actions{flex-wrap:wrap;gap:6px;margin-top:10px;display:flex}.row-actions .btn{min-height:34px;padding:6px 10px;font-size:12px}.budget-bar{background:oklch(12% .006 274/.78);border-radius:999px;height:8px;margin-top:9px;overflow:hidden}.budget-fill{height:100%;width:var(--pct);background:linear-gradient(90deg, var(--aura-slate), var(--aura-silver));border-radius:inherit;max-width:100%;box-shadow:0 0 16px oklch(90% .004 274/.3)}.budget-fill.over{background:var(--danger)}.bottom-nav{z-index:20;border-top:1px solid var(--line);-webkit-backdrop-filter:blur(18px)saturate(1.12);backdrop-filter:blur(18px)saturate(1.12);padding:7px max(10px, env(safe-area-inset-left)) max(7px, env(safe-area-inset-bottom));background:oklch(13.5% .008 274/.84);position:fixed;bottom:0;left:0;right:0;box-shadow:0 -18px 52px oklch(0% 0 0/.24)}.nav-inner{grid-template-columns:repeat(4,1fr);gap:4px;width:min(680px,100%);margin:0 auto;display:grid}.nav-btn{border-radius:var(--r-sm);min-height:48px;color:var(--ink-2);transition:background .18s var(--ease-out), color .18s var(--ease-out), transform .18s var(--ease-out), box-shadow .18s var(--ease-out);background:0 0;place-items:center;gap:2px;font-size:11px;font-weight:720;display:grid}.nav-btn svg{width:18px;height:18px}.nav-btn.active{background:radial-gradient(circle at 50% 0%, oklch(96% .004 274/.14), transparent 58%), var(--panel-3);color:var(--ink);box-shadow:inset 0 0 0 1px oklch(96% .004 274/.14)}.nav-btn:hover{color:var(--ink);background:var(--panel-2)}.toast{z-index:30;border-radius:var(--r-sm);color:oklch(13% .008 274);min-height:42px;box-shadow:var(--shadow);background:linear-gradient(oklch(95% .008 274),oklch(84% .012 274));padding:11px 12px;display:none;position:fixed;bottom:76px;left:12px;right:12px}.toast.show{display:block}.language-toggle{flex:none}.language-toggle button{min-width:38px}.hidden-file{display:none}@media (width<=520px){.topbar{flex-direction:column;align-items:stretch}.topbar-actions{justify-content:flex-start}.brand p{max-width:100%}}@media (width>=760px){.app-shell{padding:26px 22px 96px}.grid.two{grid-template-columns:minmax(0,1.1fr) minmax(320px,.9fr)}.ledger-hero{grid-template-columns:minmax(0,.9fr) minmax(420px,1.1fr);align-items:stretch}.ledger-metrics{grid-template-columns:repeat(4,minmax(0,1fr))}.ledger-grid{grid-template-columns:minmax(0,1.25fr) minmax(320px,.75fr)}.grid.three{grid-template-columns:1fr 1fr 1fr}.stats-grid,.quick-grid,.form-grid.transaction{grid-template-columns:repeat(4,minmax(0,1fr))}.form-grid.transaction .wide{grid-column:span 2}.form-grid.transaction .full{grid-column:1/-1}.capture-fields{grid-template-columns:repeat(4,minmax(0,1fr))}.capture-fields .wide{grid-column:span 2}.filters{grid-template-columns:1.5fr repeat(4,minmax(120px,1fr))}.filters.ledger-filters{grid-template-columns:minmax(180px,1.5fr) repeat(5,minmax(110px,1fr))}.toast{width:min(380px,100vw - 44px);left:auto;right:22px}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important}body:before,.app-splash,.topbar:before,.ledger-hero:before{animation:none!important}.app-splash{opacity:0;visibility:hidden}}
