@import "https://fonts.googleapis.com/css2?family=Fraunces:opsz,wght@9..144,400;9..144,500;9..144,600;9..144,700&family=Hanken+Grotesk:wght@400;500;600;700&family=JetBrains+Mono:wght@500;600&display=swap";:root{--composer-textarea-max:160px;--app-height:100dvh;--app-offset-top:0px;--bg:#080a11;--bg-2:#0c0f18;--surface:#141926;--surface-2:#1a2030;--luna:#aeb9ff;--luna-soft:#8a97e8;--glow:#96a5ff73;--positive:#74e0b0;--negative:#ff9e8c;--gold:#ecc56c;--text:#eceef6;--text-dim:#99a1b5;--text-faint:#5e667c;--border:#ffffff12;--border-2:#ffffff1f;--c-food:#f2a07b;--c-transp:#8fb4ff;--c-health:#74e0b0;--c-subs:#aeb9ff;--c-fun:#ecc56c;--c-income:#74e0b0;--c-shop:#e89bd0;--c-other:#99a1b5}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body{height:var(--app-height,100dvh);margin:0;padding:0;overflow:hidden}.luna-root{height:var(--app-height,100dvh);background:radial-gradient(120% 80% at 50% -10%, #161b33 0%, transparent 55%), radial-gradient(80% 60% at 85% 110%, #11261f 0%, transparent 50%), var(--bg);width:100%;color:var(--text);top:var(--app-offset-top,0px);justify-content:center;align-items:stretch;padding:0;font-family:Hanken Grotesk,system-ui,sans-serif;display:flex;position:fixed;left:0;right:0;overflow:hidden}.luna-root:after{content:"";pointer-events:none;opacity:.025;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.85' numOctaves='3'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");position:fixed;inset:0}.phone{background:linear-gradient(180deg, var(--bg-2) 0%, var(--bg) 100%);border-left:1px solid var(--border);border-right:1px solid var(--border);flex-direction:column;width:100%;max-width:432px;height:100%;max-height:100%;display:flex;position:relative;overflow:hidden}.phone.chat-phone{grid-template-rows:auto minmax(0,1fr) auto;display:grid}.phone.chat-phone:has(.composer-pending){grid-template-rows:auto minmax(0,1fr) auto auto}.phone>.header,.phone>.composer,.phone>.composer-pending{flex-shrink:0}.phone.chat-phone>.scroll{min-height:0;overflow-y:auto}@media (width>=460px){.luna-root{align-items:center;padding:24px;position:relative;top:auto}.phone{border:1px solid var(--border-2);height:min(900px, var(--app-height,94vh));max-height:min(900px, var(--app-height,94vh));border-radius:30px;box-shadow:0 40px 120px -20px #000c,inset 0 0 0 1px #ffffff05}}.splash{z-index:40;background:radial-gradient(120% 90% at 50% 35%, #1a2142 0%, transparent 60%), linear-gradient(180deg, var(--bg-2), var(--bg));flex-direction:column;justify-content:center;align-items:center;gap:22px;animation:.7s 1.9s forwards splashOut;display:flex;position:absolute;inset:0}@keyframes splashOut{to{opacity:0;visibility:hidden;transform:scale(1.04)}}.splash-orb{width:96px;height:96px;box-shadow:0 0 0 1px var(--border-2), 0 0 64px -6px var(--glow);background:radial-gradient(circle at 36% 30%,#3a4575,#131830 70%);border-radius:50%;place-items:center;animation:1s cubic-bezier(.2,.8,.2,1) both orbRise,3.2s ease-in-out 1s infinite orbGlow;display:grid;position:relative}@keyframes orbRise{0%{opacity:0;transform:translateY(22px)scale(.7)}to{opacity:1;transform:none}}@keyframes orbGlow{0%,to{box-shadow:0 0 0 1px var(--border-2), 0 0 64px -6px var(--glow)}50%{box-shadow:0 0 0 1px var(--border-2), 0 0 96px 2px var(--glow)}}.splash-orb svg{filter:drop-shadow(0 0 10px var(--glow))}.splash-word{letter-spacing:1px;font-family:Fraunces,serif;font-size:40px;font-weight:600;animation:.8s .35s both fadeUp}.splash-tag{color:var(--text-dim);letter-spacing:.4px;margin-top:-10px;font-size:13px;animation:.8s .55s both fadeUp}@keyframes fadeUp{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}.login{flex-direction:column;flex:1;animation:.5s viewIn;display:flex;position:relative;overflow:hidden}@keyframes viewIn{0%{transform:translateY(8px)}to{transform:none}}.login-aura{pointer-events:none;opacity:.9;filter:blur(6px);background:radial-gradient(closest-side,#96a5ff4d,#0000 70%);width:460px;height:360px;position:absolute;top:-120px;left:50%;transform:translate(-50%)}.login-stars{pointer-events:none;opacity:.5;position:absolute;inset:0}.login-scroll{z-index:2;scrollbar-width:none;flex-direction:column;flex:1;padding:0 28px;display:flex;position:relative;overflow-y:auto}.login-scroll::-webkit-scrollbar{display:none}.login-top{text-align:center;flex-direction:column;align-items:center;gap:16px;padding-top:64px;display:flex}.login-mark{width:72px;height:72px;box-shadow:0 0 0 1px var(--border-2), 0 0 40px -6px var(--glow);background:radial-gradient(circle at 36% 30%,#283057,#11152a 72%);border-radius:50%;place-items:center;display:grid}.login-mark svg{filter:drop-shadow(0 0 8px var(--glow))}.login-h1{letter-spacing:.2px;font-family:Fraunces,serif;font-size:30px;font-weight:600;line-height:1.12}.login-h1 .em{color:var(--luna);font-style:italic}.login-sub{color:var(--text-dim);max-width:280px;font-size:14px;line-height:1.5}.login-form{flex-direction:column;gap:13px;margin-top:30px;display:flex}.field{background:var(--surface);border:1px solid var(--border-2);border-radius:15px;align-items:center;gap:11px;height:56px;padding:0 14px;transition:border-color .2s,box-shadow .2s,background .2s;display:flex;position:relative}.field:focus-within{border-color:var(--luna-soft);background:var(--surface-2);box-shadow:0 0 0 3px #96a5ff1a}.field .fi{color:var(--text-faint);flex-shrink:0;place-items:center;transition:color .2s;display:grid}.field:focus-within .fi{color:var(--luna)}.field input{color:var(--text);background:0 0;border:none;outline:none;flex:1;height:100%;font-family:inherit;font-size:15.5px}.field input::placeholder{color:var(--text-faint)}.field input:-webkit-autofill{caret-color:#eceef6;transition:background-color 5000s ease-in-out;-webkit-text-fill-color:#eceef6!important;background-color:#1a2030!important;border-color:#ffffff1f!important;box-shadow:inset 0 0 0 1000px #1a2030!important}.field input:-webkit-autofill:hover{caret-color:#eceef6;transition:background-color 5000s ease-in-out;-webkit-text-fill-color:#eceef6!important;background-color:#1a2030!important;border-color:#ffffff1f!important;box-shadow:inset 0 0 0 1000px #1a2030!important}.field input:-webkit-autofill:focus{caret-color:#eceef6;transition:background-color 5000s ease-in-out;-webkit-text-fill-color:#eceef6!important;background-color:#1a2030!important;border-color:#ffffff1f!important;box-shadow:inset 0 0 0 1000px #1a2030!important}.field input:-webkit-autofill:active{caret-color:#eceef6;transition:background-color 5000s ease-in-out;-webkit-text-fill-color:#eceef6!important;background-color:#1a2030!important;border-color:#ffffff1f!important;box-shadow:inset 0 0 0 1000px #1a2030!important}.field .eye{color:var(--text-faint);cursor:pointer;background:0 0;border:none;border-radius:8px;place-items:center;padding:6px;display:grid}.field .eye:hover{color:var(--text-dim)}.field-label{color:var(--text-dim);letter-spacing:.2px;margin:0 0 -4px 4px;font-size:12px;font-weight:500}.login-row{justify-content:space-between;align-items:center;margin-top:2px;display:flex}.remember{color:var(--text-dim);cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:8px;font-size:13px;display:flex}.check{border:1.5px solid var(--border-2);border-radius:6px;flex-shrink:0;place-items:center;width:18px;height:18px;transition:all .18s;display:grid}.check.on{background:var(--luna);border-color:var(--luna)}.link{color:var(--luna-soft);cursor:pointer;background:0 0;border:none;font-family:inherit;font-size:13px;font-weight:500}.link:hover{color:var(--luna)}.btn-primary{cursor:pointer;background:var(--luna);color:#0c1024;letter-spacing:.2px;height:54px;box-shadow:0 10px 30px -10px var(--glow);border:none;border-radius:15px;justify-content:center;align-items:center;gap:9px;margin-top:6px;font-family:inherit;font-size:16px;font-weight:700;transition:transform .16s,box-shadow .2s;display:flex}.btn-primary:hover{box-shadow:0 14px 38px -8px var(--glow)}.btn-primary:active{transform:scale(.985)}.btn-primary:disabled{opacity:.55;cursor:default;box-shadow:none}.btn-ghost{border:1px solid var(--border);cursor:pointer;height:44px;color:var(--text-dim);background:0 0;border-radius:12px;width:100%;margin-top:8px;font-size:14px}.btn-ghost:hover{color:var(--text);border-color:var(--border-2)}.settings-page{min-height:0;padding:16px 16px calc(24px + env(safe-area-inset-bottom));flex-direction:column;flex:1;display:flex;overflow-y:auto}.settings-header{align-items:center;gap:12px;margin-bottom:20px;display:flex}.settings-title{align-items:center;gap:8px;font-family:Fraunces,serif;font-size:20px;display:flex}.settings-section{border:1px solid var(--border);background:var(--surface);border-radius:16px;margin-bottom:24px;padding:16px}.settings-section h2{margin:0 0 12px;font-size:15px;font-weight:600}.settings-label{color:var(--text-dim);margin:10px 0 6px;font-size:12px;display:block}.settings-input{border:1px solid var(--border);background:var(--bg-2);width:100%;color:var(--text);border-radius:10px;padding:10px 12px;font-size:14px}.settings-range{width:100%;margin:8px 0}.settings-save{height:44px;margin-top:12px;font-size:14px}.settings-muted{color:var(--text-dim);font-size:13px}.settings-quota-list{flex-direction:column;gap:16px;margin:0;padding:0;list-style:none;display:flex}.settings-quota-item{margin:0}.settings-quota-label{margin:0 0 4px;font-size:13px;font-weight:600}.settings-quota-usage{color:var(--text-dim);margin:0 0 6px;font-size:12px}.settings-quota-bar{background:var(--bg-2);border-radius:999px;height:6px;margin-bottom:6px;overflow:hidden}.settings-quota-bar-fill{background:var(--luna);border-radius:999px;height:100%;transition:width .2s}.settings-quota-bar-fill.is-warn{background:var(--gold)}.settings-quota-bar-fill.is-exceeded{background:var(--negative)}.settings-quota-reset{color:var(--text-dim);margin:0;font-size:12px}.quota-banner{border-top:1px solid var(--border);background:var(--surface);flex-shrink:0;padding:10px 14px}.quota-banner.is-warn{border-left:3px solid var(--gold)}.quota-banner.is-blocked{border-left:3px solid var(--negative);background:#ff9e8c0f}.quota-banner-title{color:var(--text);margin:0 0 4px;font-size:12px;font-weight:600}.quota-banner-usage{color:var(--text-dim);margin:0 0 6px;font-size:11px}.quota-banner-reset{color:var(--text-dim);margin:0;font-size:11px}.icon-btn{background:var(--surface);width:38px;height:38px;color:var(--text-dim);cursor:pointer;border:none;border-radius:50%;place-items:center;display:grid}.bio{flex-direction:column;align-items:center;gap:12px;display:flex}.bio-btn{cursor:pointer;background:radial-gradient(circle at 38% 30%, var(--surface-2), var(--surface));border:1px solid var(--border-2);width:76px;height:76px;color:var(--luna);box-shadow:0 0 0 0 var(--glow);border-radius:50%;place-items:center;transition:transform .16s,box-shadow .25s,border-color .2s;display:grid;position:relative}.bio-btn:hover{border-color:var(--luna-soft);box-shadow:0 0 36px -6px var(--glow)}.bio-btn:active{transform:scale(.94)}.bio-btn.scanning{color:var(--positive);border-color:#74e0b066;animation:1.2s infinite bioScan}@keyframes bioScan{0%,to{box-shadow:0 0 #74e0b059}50%{box-shadow:0 0 38px 2px #74e0b073}}.bio-ring{border:1.5px solid var(--border);border-radius:50%;position:absolute;inset:-7px}.bio-btn.scanning .bio-ring{border-color:#74e0b080;animation:1.2s infinite bioRing}@keyframes bioRing{0%{opacity:.8;transform:scale(.92)}to{opacity:0;transform:scale(1.18)}}.bio-label{color:var(--text-dim);font-size:13.5px;font-weight:500}.bio-label b{color:var(--luna);font-weight:600}.divider{color:var(--text-faint);letter-spacing:.4px;align-items:center;gap:14px;font-size:12px;display:flex}.divider:before,.divider:after{content:"";background:var(--border);flex:1;height:1px}.login-foot{padding:18px 28px calc(22px + env(safe-area-inset-bottom));text-align:center;color:var(--text-dim);z-index:2;font-size:13px;position:relative}.login-foot .link{font-size:13px}.login-secure{color:var(--text-faint);justify-content:center;align-items:center;gap:7px;margin-top:14px;font-size:11.5px;display:flex}.platform-foot{text-align:center;z-index:2;padding:8px 16px calc(12px + env(safe-area-inset-bottom));flex-shrink:0;position:relative}.platform-foot-version{color:var(--text-faint);margin-bottom:4px;font-size:11px}.platform-foot-brand{color:var(--text-faint);font-size:10.5px;line-height:1.45}.platform-foot-link{color:var(--text-dim);text-decoration:none;transition:color .18s}.platform-foot-link:hover{color:var(--luna-soft);text-decoration:underline}.login-form--centered{align-items:center}.login-form--centered .field-label{text-align:center;width:100%;margin-left:0}.login-form--centered .field{justify-content:center;width:100%}.login-form--centered .field input{text-align:center;letter-spacing:.35em;font-family:JetBrains Mono,monospace;font-size:22px}.login-form--centered .btn-primary,.login-form--centered .btn-ghost{width:100%}.login-form--centered .link{text-align:center;width:100%;margin-top:2px;display:block}.shake{animation:.4s shake}@keyframes shake{0%,to{transform:translate(0)}20%{transform:translate(-7px)}40%{transform:translate(6px)}60%{transform:translate(-4px)}80%{transform:translate(3px)}}.login-err{color:var(--negative);text-align:center;margin-top:-4px;font-size:12.5px}.header{border-bottom:1px solid var(--border);z-index:3;background:var(--bg-2);align-items:center;gap:12px;padding:16px 16px 13px;display:flex;position:relative}.avatar{width:42px;height:42px;box-shadow:0 0 0 1px var(--border-2), 0 0 22px -4px var(--glow);background:radial-gradient(circle at 35% 30%,#20263a,#0e1220);border-radius:50%;flex-shrink:0;place-items:center;animation:4s ease-in-out infinite avatarBreathe;display:grid;position:relative}@keyframes avatarBreathe{0%,to{box-shadow:0 0 0 1px var(--border-2), 0 0 22px -4px var(--glow)}50%{box-shadow:0 0 0 1px var(--border-2), 0 0 30px -2px var(--glow)}}.avatar svg{filter:drop-shadow(0 0 6px var(--glow))}.brand-name{letter-spacing:.2px;font-family:Fraunces,serif;font-size:21px;font-weight:600;line-height:1}.brand-sub{color:var(--text-dim);align-items:center;gap:5px;margin-top:3px;font-size:11.5px;display:flex}.dot-live{background:var(--positive);width:6px;height:6px;box-shadow:0 0 8px var(--positive);border-radius:50%;animation:2.4s infinite pulse}@keyframes pulse{0%,to{opacity:1}50%{opacity:.4}}.header-spacer{flex:1}.header-btn{width:38px;height:38px;color:var(--text-dim);cursor:pointer;background:0 0;border:none;border-radius:50%;place-items:center;transition:all .18s;display:grid}.header-btn:hover{color:var(--luna);background:var(--surface)}.snapshot{z-index:3;padding:0 16px 12px;position:relative}.snapshot-card{background:linear-gradient(135deg, var(--surface-2), var(--surface));border:1px solid var(--border);border-radius:16px;justify-content:space-between;align-items:center;padding:13px 16px;animation:.5s msgIn;display:flex}.snapshot .lbl{color:var(--text-dim);letter-spacing:.4px;text-transform:uppercase;font-size:11px}.snapshot .val{letter-spacing:-.5px;margin-top:2px;font-family:JetBrains Mono,monospace;font-size:22px;font-weight:600}.snapshot .val.flash{animation:.9s valFlash}@keyframes valFlash{0%{color:var(--positive)}to{color:var(--text)}}.snapshot .chip-mini{color:var(--text-dim);background:var(--bg-2);border:1px solid var(--border);border-radius:999px;padding:6px 11px;font-size:11.5px}.scroll{z-index:2;scrollbar-width:thin;scrollbar-color:var(--surface-2) transparent;flex-direction:column;flex:1;gap:14px;min-height:0;padding:18px 16px 8px;display:flex;position:relative;overflow-y:auto}.scroll::-webkit-scrollbar{width:5px}.scroll::-webkit-scrollbar-thumb{background:var(--surface-2);border-radius:4px}.row{gap:9px;max-width:100%;animation:.42s cubic-bezier(.2,.7,.2,1) msgIn;display:flex}@keyframes msgIn{0%{transform:translateY(12px)}to{transform:none}}.row.user{justify-content:flex-end}.mini-moon{width:26px;height:26px;box-shadow:0 0 0 1px var(--border-2);background:radial-gradient(circle at 35% 30%,#1c2236,#0c0f1b);border-radius:50%;flex-shrink:0;place-items:center;margin-top:2px;display:grid}.bubble{word-wrap:break-word;white-space:pre-wrap;border-radius:18px;max-width:82%;padding:11px 14px;font-size:14.5px;line-height:1.5}.bubble.luna{background:var(--surface);border:1px solid var(--border);color:var(--text);border-top-left-radius:6px}.bubble.user{color:#eef0fa;background:linear-gradient(135deg,#2a3158,#222a4a);border:1px solid #aeb9ff2e;border-top-right-radius:6px}.bubble.user.receipt{align-items:center;gap:9px;font-size:13.5px;display:flex}.receipt-ico{background:#ecc56c24;border-radius:9px;flex-shrink:0;place-items:center;width:30px;height:30px;display:grid}.source{color:var(--luna-soft);border-top:1px solid var(--border);opacity:.85;align-items:center;gap:5px;margin-top:7px;padding-top:7px;font-size:11px;display:inline-flex}.draft{background:linear-gradient(180deg, var(--surface-2), var(--surface));border:1px solid var(--border-2);border-radius:20px;width:92%;max-width:92%;padding:16px;animation:.5s cubic-bezier(.2,.8,.2,1) both draftIn;box-shadow:0 18px 40px -22px #000000e6}@keyframes draftIn{0%{transform:translateY(14px)scale(.97)}to{transform:none}}.draft-head{letter-spacing:.6px;text-transform:uppercase;color:var(--luna-soft);align-items:center;gap:7px;margin-bottom:4px;font-size:12px;font-weight:600;display:flex}.draft-head .edit-hint{color:var(--text-faint);text-transform:none;letter-spacing:0;margin-left:auto;font-size:10.5px;font-weight:500}.amount-edit{cursor:text;border-radius:12px;align-items:baseline;gap:6px;margin:10px 0 14px -6px;padding:4px 6px;transition:background .18s;display:flex}.amount-edit:hover{background:#ffffff08}.amount-edit .cur{color:var(--text-dim);font-family:JetBrains Mono,monospace;font-size:18px;font-weight:600}.amount-edit input,.amount-edit .amount-val{color:var(--text);letter-spacing:-.5px;background:0 0;border:none;outline:none;width:100%;padding:0;font-family:JetBrains Mono,monospace;font-size:30px;font-weight:600}.amount-edit input{border-bottom:2px solid var(--luna-soft)}.draft-grid{gap:7px;margin-bottom:15px;display:grid}.draft-field{background:var(--bg-2);cursor:pointer;border:1px solid #0000;border-radius:12px;justify-content:space-between;align-items:center;padding:10px 12px;font-size:13.5px;transition:border-color .18s,background .18s;display:flex}.draft-field:hover{border-color:var(--border-2)}.draft-field.editing{border-color:var(--luna-soft);background:var(--surface-2)}.draft-field .k{color:var(--text-dim);align-items:center;gap:9px;display:flex}.draft-field .v{color:var(--text);text-align:right;align-items:center;gap:8px;font-weight:600;display:flex}.draft-field .v .pencil{color:var(--text-faint);opacity:0;transition:opacity .18s}.draft-field:hover .v .pencil{opacity:1}.draft-field input.inline{color:var(--text);text-align:right;border:none;border-bottom:1.5px solid var(--luna-soft);background:0 0;outline:none;width:130px;padding-bottom:2px;font-family:inherit;font-size:13.5px;font-weight:600}.cat-dot{border-radius:8px;flex-shrink:0;place-items:center;width:26px;height:26px;display:grid}.picker{flex-wrap:wrap;gap:7px;padding:4px 2px 2px;animation:.25s both msgIn;display:flex}.pick{cursor:pointer;background:var(--bg-2);border:1px solid var(--border-2);color:var(--text);border-radius:999px;align-items:center;gap:7px;padding:7px 11px;font-family:inherit;font-size:12.5px;font-weight:500;transition:all .16s;display:flex}.pick:hover{border-color:var(--luna-soft)}.pick.sel{border-color:var(--luna-soft);color:var(--luna);background:#aeb9ff1f}.pick .pd{border-radius:3px;flex-shrink:0;width:9px;height:9px}.selection-card{background:linear-gradient(180deg, var(--surface-2), var(--surface));border:1px solid var(--border-2);border-radius:20px;max-width:92%;padding:14px 16px;animation:.5s cubic-bezier(.2,.8,.2,1) both draftIn}.selection-head{letter-spacing:.6px;text-transform:uppercase;color:var(--luna-soft);margin-bottom:10px;font-size:12px;font-weight:600}.selection-list{gap:8px;margin:0;padding:0;list-style:none;display:grid}.selection-item{text-align:left;background:var(--bg-2);border:1px solid var(--border-2);width:100%;color:var(--text);cursor:pointer;border-radius:14px;align-items:center;gap:12px;padding:11px 13px;font-family:inherit;transition:all .16s;display:flex}.selection-item:hover:not(:disabled){border-color:var(--luna-soft);background:#aeb9ff0f}.selection-item:disabled{opacity:.5;cursor:default}.selection-num{width:28px;height:28px;color:var(--luna);background:#aeb9ff24;border-radius:50%;flex-shrink:0;place-items:center;font-size:13px;font-weight:700;display:grid}.selection-label{font-size:13.5px;font-weight:500;line-height:1.35}.draft-actions{grid-template-columns:1fr 1fr;gap:10px;margin-top:4px;display:grid}.btn{cursor:pointer;border:none;border-radius:13px;justify-content:center;align-items:center;gap:7px;padding:13px;font-family:inherit;font-size:14px;font-weight:600;transition:all .18s;display:flex}.btn:disabled{opacity:.4;cursor:default}.btn-confirm{background:var(--luna);color:#0c1024;box-shadow:0 0 24px -6px var(--glow)}.btn-confirm:not(:disabled):active{transform:scale(.97)}.btn-cancel{color:var(--text-dim);border:1px solid var(--border-2);background:0 0}.btn-cancel:not(:disabled):active{transform:scale(.97)}.phone.chat-phone .selection-card{border-radius:16px;width:100%;max-width:100%;padding:11px 12px}.phone.chat-phone .selection-head{margin-bottom:8px;font-size:11px}.phone.chat-phone .selection-list{gap:6px}.phone.chat-phone .selection-item{border-radius:12px;gap:10px;padding:8px 10px}.phone.chat-phone .selection-num{width:24px;height:24px;font-size:11px}.phone.chat-phone .selection-label{font-size:12px;line-height:1.3}.dash-card{background:linear-gradient(180deg, var(--surface-2), var(--surface));border:1px solid var(--border-2);border-radius:18px;width:100%;min-width:0;max-width:100%;padding:14px;animation:.5s cubic-bezier(.2,.8,.2,1) both draftIn;box-shadow:0 18px 40px -22px #000000e6}.dash-head{letter-spacing:.6px;text-transform:uppercase;color:var(--luna-soft);margin-bottom:8px;font-size:11px;font-weight:600}.dash-total-row{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.dash-total{letter-spacing:-.5px;color:var(--text);font-family:JetBrains Mono,monospace;font-size:26px;font-weight:600;line-height:1.1}.dash-badge{white-space:nowrap;border-radius:999px;padding:4px 9px;font-size:11px;font-weight:600}.dash-badge.up{color:var(--negative);background:#ff9e8c1f;border:1px solid #ff9e8c40}.dash-badge.down{color:var(--positive);background:#74e0b01a;border:1px solid #74e0b040}.dash-badge.flat{color:var(--text-dim);background:var(--bg-2);border:1px solid var(--border-2)}.dash-rhythm{color:var(--text-dim);margin-top:6px;font-size:12px}.dash-section{border-top:1px solid var(--border);margin-top:14px;padding-top:12px}.dash-section-title{letter-spacing:.5px;text-transform:uppercase;color:var(--text-dim);margin-bottom:8px;font-size:11px;font-weight:600}.dash-cat{margin-bottom:8px}.dash-cat:last-child{margin-bottom:0}.dash-cat-row{justify-content:space-between;align-items:baseline;gap:10px;min-width:0;margin-bottom:4px;font-size:12.5px;display:flex}.dash-cat-name{color:var(--text);text-overflow:ellipsis;white-space:nowrap;font-weight:500;overflow:hidden}.dash-cat-val{color:var(--text);white-space:nowrap;flex-shrink:0;font-family:JetBrains Mono,monospace;font-size:12px}.dash-cat-val em,.dash-pay-val em{color:var(--text-faint);margin-left:3px;font-size:11px;font-style:normal}.dash-bar{background:var(--bg-2);border-radius:999px;height:4px;overflow:hidden}.dash-bar-fill{background:linear-gradient(90deg, var(--luna-soft), var(--luna));border-radius:999px;min-width:2px;height:100%}.dash-pay-row{justify-content:space-between;align-items:baseline;gap:10px;min-width:0;padding:4px 0;font-size:12.5px;display:flex}.dash-pay-label{color:var(--text-dim);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.dash-pay-val{color:var(--text);white-space:nowrap;flex-shrink:0;font-family:JetBrains Mono,monospace;font-size:12px}.dash-top-row{justify-content:space-between;align-items:center;gap:10px;min-width:0;padding:6px 0;display:flex}.dash-top-row+.dash-top-row{border-top:1px solid var(--border)}.dash-top-info{flex-direction:column;gap:1px;min-width:0;display:flex}.dash-top-desc{color:var(--text);text-overflow:ellipsis;white-space:nowrap;font-size:13px;font-weight:500;overflow:hidden}.dash-top-meta{color:var(--text-faint);text-overflow:ellipsis;white-space:nowrap;font-size:11px;overflow:hidden}.dash-top-val{color:var(--text);white-space:nowrap;flex-shrink:0;font-family:JetBrains Mono,monospace;font-size:12.5px;font-weight:600}.dash-footer{margin-top:14px}.dash-cta{background:var(--bg-2);border:1px solid var(--border-2);width:100%;color:var(--luna);cursor:pointer;border-radius:12px;padding:10px 14px;font-family:inherit;font-size:13px;font-weight:600;transition:all .18s}.dash-cta:hover:not(:disabled){border-color:var(--luna-soft);background:#aeb9ff0f}.dash-cta:active:not(:disabled){transform:scale(.98)}.dash-cta:disabled{opacity:.5;cursor:default}.committed{background:#74e0b014;border:1px solid #74e0b040;border-radius:16px;align-items:center;gap:12px;max-width:92%;padding:13px 15px;animation:.5s cubic-bezier(.2,.8,.2,1) commitIn;display:flex}@keyframes commitIn{0%{transform:translateY(10px)scale(.96)}to{transform:none}}.committed-ico{background:#74e0b02e;border-radius:50%;flex-shrink:0;place-items:center;width:38px;height:38px;display:grid}.committed-ico svg path{stroke-dasharray:24;stroke-dashoffset:24px;animation:.5s .15s forwards drawCheck}@keyframes drawCheck{to{stroke-dashoffset:0}}.committed .t1{color:var(--positive);font-size:13.5px;font-weight:600}.committed .t2{color:var(--text-dim);margin-top:1px;font-size:12px}.note{text-align:center;color:var(--text-faint);padding:2px 0;font-size:12px;animation:.3s msgIn}.errbubble{background:#ff9e8c14;border:1px solid #ff9e8c47}.retry{border:1px solid var(--border-2);color:var(--negative);cursor:pointer;background:0 0;border-radius:10px;align-items:center;gap:6px;margin-top:9px;padding:7px 12px;font-family:inherit;font-size:12.5px;font-weight:600;display:inline-flex}.typing{gap:4px;padding:14px 16px;display:flex}.typing span{background:var(--luna-soft);border-radius:50%;width:7px;height:7px;animation:1.3s infinite blink}.typing span:nth-child(2){animation-delay:.18s}.typing span:nth-child(3){animation-delay:.36s}@keyframes blink{0%,60%,to{opacity:.25;transform:translateY(0)}30%{opacity:1;transform:translateY(-3px)}}.chips{flex-wrap:wrap;gap:8px;padding:4px 2px 10px;display:flex}.chip{background:var(--surface);border:1px solid var(--border-2);color:var(--text);cursor:pointer;border-radius:999px;padding:9px 14px;font-family:inherit;font-size:13px;font-weight:500;transition:all .18s;animation:.5s both chipIn}.chip:hover{border-color:var(--luna-soft);color:var(--luna)}.chip:active{transform:scale(.96)}@keyframes chipIn{0%{transform:translateY(8px)}to{transform:none}}.composer{padding:12px 14px env(safe-area-inset-bottom);border-top:1px solid var(--border);background:var(--bg-2);z-index:3;position:relative}.composer-inner{background:var(--surface);border:1px solid var(--border-2);border-radius:20px;flex-direction:column;gap:6px;padding:10px 12px 8px;transition:border-color .2s;display:flex}.composer-inner:focus-within{border-color:var(--luna-soft);box-shadow:0 0 0 3px #96a5ff14}.composer-toolbar{justify-content:space-between;align-items:center;display:flex}.composer-toolbar-left{gap:4px;display:flex}.icon-btn{width:38px;height:38px;color:var(--text-dim);cursor:pointer;background:0 0;border:none;border-radius:50%;flex-shrink:0;place-items:center;transition:all .18s;display:grid}.icon-btn-sm{width:32px;height:32px}.icon-btn:hover{color:var(--luna);background:var(--surface-2)}.icon-btn.rec{color:var(--negative);background:#ff9e8c1f;animation:1s infinite pulse}.composer-inner textarea{resize:none;width:100%;color:var(--text);box-sizing:border-box;min-height:calc(1.4em + 8px);max-height:var(--composer-textarea-max);field-sizing:content;background:0 0;border:none;outline:none;flex:none;padding:0 2px 8px;font-family:inherit;font-size:15px;line-height:1.4;overflow-y:auto}.composer-inner textarea::placeholder{color:var(--text-faint)}.send{background:var(--luna);color:#0c1024;box-shadow:0 0 18px -5px var(--glow)}.send:disabled{background:var(--surface-2);color:var(--text-faint);box-shadow:none;cursor:default}.receipt-confirm{width:100%;max-width:100%;margin:0 2px}.receipt-confirm-body{align-items:flex-start;gap:12px;margin:10px 0 14px;display:flex}.receipt-preview{border:1px solid var(--border-2);background:var(--bg-2);border-radius:12px;flex-shrink:0;width:72px;height:72px;overflow:hidden}.receipt-preview img{object-fit:cover;width:100%;height:100%;display:block}.receipt-ocr-input{background:var(--bg-2);border:1px solid var(--border-2);width:100%;color:var(--text);resize:vertical;border-radius:12px;outline:none;flex:1;min-height:88px;padding:10px 12px;font-family:inherit;font-size:13.5px;line-height:1.45}.receipt-ocr-input:focus{border-color:var(--luna-soft)}.receipt-ocr-input:disabled{opacity:.6}.composer-pending{padding:0 14px 8px}.toast-viewport{z-index:9999;pointer-events:none;flex-direction:column-reverse;gap:10px;width:min(360px,100vw - 32px);display:flex;position:fixed;bottom:16px;right:16px}.toast{pointer-events:auto;background:linear-gradient(145deg, var(--surface) 0%, var(--surface-2) 100%);border:1px solid var(--border-2);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-radius:16px;align-items:flex-start;gap:12px;padding:14px 14px 14px 16px;animation:.32s cubic-bezier(.2,.9,.2,1) both toastIn;display:flex;position:relative;overflow:hidden;box-shadow:0 16px 48px -12px #000000a6,inset 0 0 0 1px #ffffff08}@keyframes toastIn{0%{opacity:0;transform:translateY(12px)scale(.96)}to{opacity:1;transform:translateY(0)scale(1)}}.toast__icon{color:var(--luna);flex-shrink:0;margin-top:1px}.toast--success .toast__icon{color:var(--positive)}.toast--error .toast__icon{color:var(--negative)}.toast--warning .toast__icon{color:var(--gold)}.toast__body{flex:1;min-width:0}.toast__title{color:var(--text);margin-bottom:2px;font-size:14px;font-weight:600;line-height:1.35}.toast__message{color:var(--text-dim);font-size:13px;line-height:1.45}.toast__title:only-child,.toast__message:first-child:last-child{margin:0}.toast__close{width:28px;height:28px;color:var(--text-faint);cursor:pointer;background:0 0;border:none;border-radius:8px;flex-shrink:0;place-items:center;margin:-4px -4px 0 0;transition:background .15s,color .15s;display:grid}.toast__close:hover{color:var(--text);background:#ffffff0f}.toast__progress{background:var(--luna-soft);transform-origin:0;opacity:.7;width:100%;height:2px;animation:linear forwards toastProgress;position:absolute;bottom:0;left:0}@keyframes toastProgress{0%{transform:scaleX(1)}to{transform:scaleX(0)}}.toast--confirm{padding-bottom:12px}.toast__actions{justify-content:flex-end;gap:8px;margin-top:12px;display:flex}.toast__btn{cursor:pointer;border:none;border-radius:10px;padding:8px 14px;font-family:inherit;font-size:13px;font-weight:600;transition:background .15s,transform .1s}.toast__btn:active{transform:scale(.98)}.toast__btn--ghost{color:var(--text-dim);background:#ffffff0f}.toast__btn--ghost:hover{color:var(--text);background:#ffffff1a}.toast__btn--primary{background:var(--luna);color:#0c1024;box-shadow:0 0 16px -4px var(--glow)}.toast__btn--primary:hover{filter:brightness(1.05)}@media (width<=460px){.toast-viewport{width:auto;bottom:12px;left:12px;right:12px}}
