:root{--bg-deep:#0b0614;--bg-mid:#160b28;--bg-glow:#4c1d95;--glass:#ffffff12;--glass-strong:#ffffff1c;--glass-border:#ffffff24;--text:#f8f5ff;--text-muted:#a89bb8;--primary:#a855f7;--primary-strong:#9333ea;--primary-soft:#a855f747;--income:#4ade80;--income-soft:#4ade8029;--expense:#fb7185;--expense-soft:#fb718529;--radius:22px;--radius-sm:14px;--nav-h:76px;--safe-bottom:env(safe-area-inset-bottom,0px);color:var(--text);background:var(--bg-deep);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;font-family:Manrope,sans-serif;line-height:1.4}*,:before,:after{box-sizing:border-box}html,body,#root{min-height:100%;margin:0}body{background-color:#0000;background-image:radial-gradient(80% 50% at 20% -10%,#7c3aed73,#0000 55%),radial-gradient(70% 40% at 90% 10%,#4f46e559,#0000 50%),radial-gradient(60% 40% at 50% 100%,#9333ea33,#0000 55%),linear-gradient(165deg,#12081f 0%,#0b0614 45%,#150a24 100%);background-position:0 0,0 0,0 0,0 0;background-repeat:repeat,repeat,repeat,repeat;background-size:auto,auto,auto,auto;background-attachment:fixed;background-origin:padding-box,padding-box,padding-box,padding-box;background-clip:border-box,border-box,border-box,border-box;min-height:100dvh}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer;background:0 0;border:none}a{color:inherit;text-decoration:none}.app-shell{width:min(430px,100%);min-height:100dvh;padding-bottom:calc(var(--nav-h) + var(--safe-bottom) + 12px);margin:0 auto;position:relative}.page{padding:20px 18px 8px;animation:.35s both page-fade}@keyframes page-fade{0%{opacity:0}to{opacity:1}}.spin{animation:1s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}@keyframes fade-up{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.glass{background:var(--glass);border:1px solid var(--glass-border);border-radius:var(--radius);-webkit-backdrop-filter:blur(18px);box-shadow:0 8px 32px #00000040}.glass-strong{background:var(--glass-strong)}.page-header{justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:18px;display:flex}.page-header h1{letter-spacing:-.02em;margin:0;font-size:1.45rem;font-weight:800}.page-header .sub{color:var(--text-muted);margin:4px 0 0;font-size:.9rem;font-weight:500}.avatar-stack{color:inherit;align-items:center;text-decoration:none;display:flex}.avatar{background:linear-gradient(145deg,#7c3aed,#4f46e5);border:2px solid #ffffff59;border-radius:50%;place-items:center;width:34px;height:34px;margin-left:-8px;font-size:.72rem;font-weight:700;display:grid}.avatar:first-child{margin-left:0}img.avatar{object-fit:cover;padding:0}.auth-yandex-btn{gap:10px;margin-top:0}.auth-gate{place-items:center;min-height:100dvh;padding:24px 18px;display:grid}.auth-gate-card{text-align:center;width:min(390px,100%);padding:30px 24px;animation:.45s both fade-up}.auth-gate-icon{color:#fff;background:linear-gradient(145deg, var(--primary), #6d28d9);border-radius:20px;place-items:center;width:62px;height:62px;margin:0 auto 18px;display:grid;box-shadow:0 14px 40px #9333ea59}.auth-gate-card h1{letter-spacing:-.035em;margin:0;font-size:clamp(1.7rem,8vw,2.15rem);line-height:1.08}.auth-gate-card .sub{max-width:310px;color:var(--text-muted);margin:12px auto 22px}.auth-gate-card .btn-primary{justify-content:center;width:100%}.auth-gate-error{color:var(--expense);margin:0 0 14px;font-size:.88rem}.auth-gate-loader{border:3px solid #ffffff29;border-top-color:var(--primary);border-radius:50%;width:26px;height:26px;margin:8px auto 0;animation:.8s linear infinite spin}.balance-card{padding:20px;position:relative;overflow:hidden}.balance-card:before{content:"";pointer-events:none;background:radial-gradient(circle,#a855f759,#0000 70%);width:180px;height:180px;position:absolute;inset:-40% auto auto 40%}.balance-label{color:var(--text-muted);margin:0 0 6px;font-size:.85rem;font-weight:500}.balance-value{letter-spacing:-.03em;margin:0;font-size:2.1rem;font-weight:800}.balance-hint{color:var(--text-muted);max-width:16rem;margin:8px 0 0;font-size:.78rem;font-weight:500;line-height:1.35}.balance-row{justify-content:space-between;align-items:flex-end;gap:12px;margin-top:8px;display:flex}.delta{border-radius:999px;align-items:center;gap:4px;padding:4px 10px;font-size:.8rem;font-weight:600;display:inline-flex}.delta.up{background:var(--income-soft);color:var(--income)}.delta.down{background:var(--expense-soft);color:var(--expense)}.spark{flex-shrink:0;width:110px;height:44px}.stats-row{grid-template-columns:1fr 1fr;gap:12px;margin-top:12px;display:grid}.stat-card{padding:14px 16px}.stat-card .label{color:var(--text-muted);align-items:center;gap:6px;margin-bottom:6px;font-size:.82rem;display:flex}.stat-card .value{margin:0;font-size:1.15rem;font-weight:700}.stat-card.income .value{color:var(--income)}.stat-card.expense .value{color:var(--expense)}.section{margin-top:22px}.section-head{justify-content:space-between;align-items:center;margin-bottom:12px;display:flex}.section-head h2{margin:0;font-size:1.05rem;font-weight:700}.section-head a,.section-head button.link{color:var(--primary);font-size:.85rem;font-weight:600}.donut-wrap{grid-template-columns:140px 1fr;align-items:center;gap:14px;padding:16px;display:grid}.legend{flex-direction:column;gap:8px;display:flex}.legend-item{align-items:center;gap:8px;font-size:.82rem;display:flex}.legend-dot{border-radius:50%;flex-shrink:0;width:8px;height:8px}.legend-item span:last-child{color:var(--text-muted);margin-left:auto;font-weight:600}.tx-list{flex-direction:column;gap:8px;display:flex}.tx-item{align-items:center;gap:12px;padding:12px 14px;display:flex}a.tx-item--link{color:inherit;text-decoration:none;transition:background .15s,transform .15s}a.tx-item--link:active{background:var(--glass-strong);transform:scale(.99)}.tx-icon{border-radius:14px;flex-shrink:0;place-items:center;width:42px;height:42px;display:grid}.tx-icon--pending{color:#fbbf24;background:#fbbf2429}.tx-meta .title.pending{color:#fde68a}.tx-meta{flex:1;min-width:0}.tx-meta .title{white-space:nowrap;text-overflow:ellipsis;margin:0;font-size:.95rem;font-weight:650;overflow:hidden}.tx-meta .sub{color:var(--text-muted);margin:2px 0 0;font-size:.78rem}.tx-amount{white-space:nowrap;font-size:.95rem;font-weight:700}.tx-amount.expense{color:var(--expense)}.tx-amount.income{color:var(--income)}.bottom-nav{left:50%;bottom:calc(12px + var(--safe-bottom));width:min(400px,100% - 24px);height:var(--nav-h);z-index:50;border-radius:28px;grid-template-columns:1fr 1fr auto 1fr 1fr;align-items:center;padding:0 10px;display:grid;position:fixed;transform:translate(-50%)}.nav-item{color:var(--text-muted);flex-direction:column;align-items:center;gap:3px;padding:8px 4px;font-size:.68rem;font-weight:600;transition:color .2s;display:flex}.nav-item.active{color:var(--text)}.nav-item.active svg{color:var(--primary)}.nav-fab-wrap{justify-content:center;margin-top:-28px;display:flex}.nav-fab{color:#fff;background:linear-gradient(145deg,#c084fc,#7c3aed);border-radius:50%;place-items:center;width:58px;height:58px;transition:transform .2s;display:grid;box-shadow:0 8px 24px #7c3aed8c,0 0 0 6px #7c3aed2e}.nav-fab:active{transform:scale(.94)}.tabs{border-radius:16px;grid-template-columns:1fr 1fr;gap:4px;margin-bottom:18px;padding:4px;display:grid}.tab{color:var(--text-muted);border-radius:12px;padding:10px 12px;font-size:.9rem;font-weight:600;transition:background .2s,color .2s}.tab.active{background:var(--primary-soft);color:var(--text);box-shadow:inset 0 0 0 1px #a855f759}.amount-display{text-align:center;padding:12px 0 20px;position:relative}.amount-display input{text-align:center;letter-spacing:-.03em;background:0 0;border:none;outline:none;width:100%;font-size:2.6rem;font-weight:800}.amount-display .cam{background:var(--glass-strong);border:1px solid var(--glass-border);width:42px;height:42px;color:var(--text-muted);border-radius:14px;place-items:center;display:grid;position:absolute;top:50%;right:8px;transform:translateY(-50%)}.category-grid{grid-template-columns:repeat(5,1fr);gap:10px;margin-bottom:18px;display:grid}.cat-btn{flex-direction:column;align-items:center;gap:6px;padding:0;display:flex}.cat-btn .icon{background:var(--glass);border:1px solid var(--glass-border);border-radius:16px;place-items:center;width:52px;height:52px;transition:background .2s,border-color .2s,transform .15s;display:grid}.cat-btn span{color:var(--text-muted);text-align:center;text-overflow:ellipsis;white-space:nowrap;max-width:100%;font-size:.65rem;line-height:1.15;overflow:hidden}.cat-btn.selected .icon{background:var(--primary);color:#fff;border-color:#0000;transform:scale(1.04)}.cat-btn.selected span{color:var(--text);font-weight:600}.title-suggest{flex-wrap:wrap;gap:8px;margin:-2px 0 12px;display:flex}.title-suggest-chip{border:1px solid var(--glass-border);background:var(--glass);max-width:100%;color:var(--text);text-align:left;text-overflow:ellipsis;white-space:nowrap;border-radius:999px;padding:8px 12px;font-size:.82rem;font-weight:600;line-height:1.2;overflow:hidden}.title-suggest-chip.selected,.title-suggest-chip:active{background:#a855f72e;border-color:#a855f78c}.field{align-items:center;gap:12px;margin-bottom:10px;padding:14px 16px;display:flex}.field label{color:var(--text-muted);min-width:72px;font-size:.85rem}.field input,.field select,.field textarea{text-align:right;background:0 0;border:none;outline:none;flex:1;font-weight:600}.field textarea{text-align:left;resize:none;min-height:40px}.btn-primary{color:#fff;background:linear-gradient(145deg,#c084fc,#7c3aed);border-radius:18px;justify-content:center;align-items:center;width:100%;margin-top:16px;padding:16px;font-size:1rem;font-weight:700;transition:transform .15s,filter .15s;display:inline-flex;box-shadow:0 10px 28px #7c3aed66}.btn-primary:active{transform:scale(.98)}.btn-primary:disabled{opacity:.45;cursor:not-allowed}.icon-btn{background:var(--glass);border:1px solid var(--glass-border);width:40px;height:40px;color:var(--text);border-radius:14px;place-items:center;display:grid}.summary-bar{text-align:center;grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:14px;padding:12px;display:grid}.summary-bar .label{color:var(--text-muted);margin-bottom:2px;font-size:.72rem}.summary-bar .value{font-size:.88rem;font-weight:700}.date-group{margin-bottom:16px}.date-group h3{color:var(--text-muted);text-transform:capitalize;margin:0 0 8px;font-size:.8rem;font-weight:600}.search-box{align-items:center;gap:10px;margin-bottom:12px;padding:12px 14px;display:flex}.search-box input{background:0 0;border:none;outline:none;flex:1;min-width:0}.search-clear{width:28px;height:28px;color:var(--text-muted);background:0 0;border-radius:8px;flex-shrink:0;place-items:center;display:grid}.search-clear:hover{color:var(--text);background:#ffffff0f}.search-hint{color:var(--text-muted);margin:-4px 2px 12px;font-size:.82rem}.search-hint strong{color:var(--text);font-weight:650}.filter-pills{scrollbar-width:none;gap:8px;margin-bottom:12px;padding-bottom:4px;display:flex;overflow-x:auto}.filter-pills::-webkit-scrollbar{display:none}.pill{background:var(--glass);border:1px solid var(--glass-border);color:var(--text-muted);border-radius:999px;flex-shrink:0;padding:8px 14px;font-size:.8rem;font-weight:600}.pill.active{background:var(--primary-soft);color:var(--text);border-color:#a855f766}.chart-card{padding:16px 12px 8px}.progress-list{flex-direction:column;gap:14px;padding:16px;display:flex}.progress-row .top{justify-content:space-between;margin-bottom:6px;font-size:.88rem;font-weight:600;display:flex}.progress-row .top span:last-child{color:var(--text-muted)}.bar-track{background:#ffffff14;border-radius:999px;height:8px;overflow:hidden}.bar-fill{border-radius:999px;height:100%;transition:width .5s}.cat-manage-item{align-items:center;gap:10px;margin-bottom:8px;padding:12px 14px;display:flex}.cat-manage-main{min-width:0;color:inherit;flex:1;align-items:center;gap:10px;text-decoration:none;display:flex}.drag-handle{color:var(--text-muted);cursor:grab;place-items:center;display:grid}.cat-manage-item .name,.cat-manage-main .name{flex:1;min-width:0;font-weight:600}.cat-store-count{color:var(--text-muted);flex-shrink:0;font-size:.78rem;font-weight:650}.cat-actions{gap:4px;display:flex}.cat-actions button{width:34px;height:34px;color:var(--text-muted);border-radius:10px;place-items:center;display:grid}.cat-actions button:hover{color:var(--text);background:#ffffff0f}.modal-overlay{-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);z-index:100;background:#05020ca6;justify-content:center;align-items:flex-end;animation:.2s fade-up;display:flex;position:fixed;inset:0}.app-shell:has(.modal-overlay) .bottom-nav{visibility:hidden;pointer-events:none}.modal-overlay--center{align-items:center;padding:24px 18px}.modal-sheet{width:min(430px,100%);padding:20px 18px calc(24px + var(--safe-bottom));border:1px solid var(--glass-border);background:linear-gradient(#1e1233 0%,#12081f 100%);border-bottom:none;border-radius:28px 28px 0 0}.modal-overlay--center .modal-sheet{border-bottom:1px solid var(--glass-border);border-radius:22px;width:min(360px,100%);padding:22px 18px 18px;box-shadow:0 18px 48px #00000073}.modal-sheet h3{margin:0 0 14px}.empty{text-align:center;color:var(--text-muted);padding:32px 16px;font-size:.9rem}.month-nav{align-items:center;gap:6px;display:flex}.month-nav button{width:32px;height:32px;color:var(--text-muted);border-radius:10px;place-items:center;display:grid}.month-nav button:hover{background:var(--glass);color:var(--text)}.sub-card{flex-direction:column;gap:12px;padding:14px;display:flex}.sub-card.inactive{opacity:.55}.sub-card-top{align-items:center;gap:12px;display:flex}.sub-card-bottom{justify-content:space-between;align-items:center;gap:8px;display:flex}.status-chip{color:var(--text-muted);background:#ffffff14;border-radius:999px;align-items:center;padding:5px 10px;font-size:.75rem;font-weight:650;display:inline-flex}.status-chip.inline{background:0 0;padding:0;font-size:.78rem}.status-chip.overdue,.status-chip.today{background:var(--expense-soft);color:var(--expense)}.status-chip.soon{color:#fbbf24;background:#fbbf2429}.status-chip.later{color:#c4b5fd;background:#a855f729}.sub-badge{background:var(--primary-soft);min-width:22px;height:22px;color:var(--text);border-radius:999px;place-items:center;margin-left:auto;margin-right:6px;padding:0 7px;font-size:.75rem;font-weight:700;display:grid}.color-row{gap:10px;padding:4px 2px 12px;display:flex}.color-dot{border:2px solid #0000;border-radius:50%;width:28px;height:28px}.color-dot.selected{border-color:#fff;box-shadow:0 0 0 2px #a855f773}.toggle-row{justify-content:space-between;align-items:center;padding:12px 4px 4px;font-weight:600;display:flex}.toggle-row input{width:18px;height:18px;accent-color:var(--primary)}.form-hint{color:var(--text-muted);margin:4px 0 0;font-size:.8rem}.modal-sheet-tall{flex-direction:column;max-height:min(90dvh,720px);padding-bottom:0;display:flex;overflow:hidden}.modal-sheet-scroll{overscroll-behavior:contain;flex:1;min-height:0;margin:0 -18px;padding:0 18px 8px;overflow-y:auto}.modal-sheet-footer{padding:12px 0 calc(16px + var(--safe-bottom));border-top:1px solid #ffffff14;flex-shrink:0;margin-top:4px}.modal-sheet-footer .btn-primary{margin-top:0}.modal-sheet-footer .btn-ghost{margin-top:10px}.cat-preview{align-items:center;gap:12px;margin-bottom:14px;font-size:1.05rem;font-weight:700;display:flex}.picker-label{color:var(--text-muted);margin:4px 0 8px;font-size:.82rem;font-weight:600}.icon-group-pills{margin-bottom:10px}.icon-picker-grid{grid-template-columns:repeat(6,1fr);gap:8px;max-height:220px;margin-bottom:14px;padding:2px;display:grid;overflow-y:auto}.icon-pick{aspect-ratio:1;background:var(--glass);border:1px solid var(--glass-border);color:var(--text-muted);border-radius:14px;place-items:center;transition:background .15s,color .15s,border-color .15s;display:grid}.icon-pick.selected{background:var(--primary-soft);color:var(--text);border-color:var(--primary)}@media (width>=480px){.app-shell{border-left:1px solid #ffffff0a;border-right:1px solid #ffffff0a}}.btn-ghost{background:var(--glass);border:1px solid var(--glass-border);width:100%;color:var(--text);border-radius:16px;justify-content:center;align-items:center;gap:8px;margin-top:14px;padding:14px 16px;font-size:.95rem;font-weight:650;display:inline-flex}.btn-ghost:active{transform:scale(.98)}.qr-scanner{flex-direction:column;gap:14px;width:100%;min-width:0;display:flex}.qr-stage{border-radius:calc(var(--radius) + 4px);border:1px solid var(--glass-border);aspect-ratio:auto;box-sizing:border-box;background:#05030a;align-self:stretch;width:100%;min-width:0;max-width:100%;height:min(52dvh,420px);position:relative;overflow:hidden;box-shadow:0 18px 40px #00000059}.qr-stage--pulse{animation:.45s qr-reject-pulse}.qr-stage--locked .qr-video{filter:brightness(.72)saturate(1.1)}.qr-video{object-fit:cover;background:#0a0612;width:100%;height:100%;display:block}.qr-overlay{pointer-events:none;background:radial-gradient(55% 45% at 50% 46%,#0000 40%,#05020c8c 100%);align-content:center;place-items:center;gap:18px;display:grid;position:absolute;inset:0}.qr-frame{aspect-ratio:1;width:min(72%,260px);position:relative}.qr-corner{filter:drop-shadow(0 0 10px #a855f78c);border:3px solid #f8f5ffeb;border-radius:6px;width:34px;height:34px;animation:2.2s ease-in-out infinite qr-corner-breathe;position:absolute}.qr-corner--tl{border-bottom:none;border-right:none;top:0;left:0}.qr-corner--tr{border-bottom:none;border-left:none;top:0;right:0}.qr-corner--bl{border-top:none;border-right:none;bottom:0;left:0}.qr-corner--br{border-top:none;border-left:none;bottom:0;right:0}.qr-laser{background:linear-gradient(90deg,#0000,#4ade8026,#4ade80,#4ade8026,#0000);border-radius:999px;height:2px;animation:2.1s ease-in-out infinite qr-laser-scan;position:absolute;left:8%;right:8%;box-shadow:0 0 12px #4ade80d9,0 0 28px #4ade8059}.qr-lock-flash{background:radial-gradient(circle,#4ade8059,#0000 65%);border-radius:12px;animation:.42s ease-out both qr-lock-flash;position:absolute;inset:0}.qr-hint{border:1px solid var(--glass-border);color:var(--text);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#0a0612b8;border-radius:999px;margin:0;padding:8px 14px;font-size:.86rem;font-weight:600}.qr-hint--warn{color:#fbbf24;border-color:#fbbf2459}.qr-success{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);text-align:center;background:#080410b8;align-content:center;place-items:center;gap:10px;padding:24px;animation:.35s both fade-up;display:grid;position:absolute;inset:0}.qr-success h2{margin:8px 0 0;font-size:1.35rem}.qr-success-sub{color:var(--text-muted);margin:0;font-size:.88rem}.qr-check-burst{place-items:center;width:88px;height:88px;display:grid;position:relative}.qr-check-ring{border:2px solid #4ade808c;border-radius:50%;animation:.9s ease-out both qr-ring-expand;position:absolute;inset:0}.qr-check-ring--delay{animation-delay:.12s}.qr-check-mark{color:#052e16;background:linear-gradient(145deg,#86efac,#22c55e);border-radius:50%;place-items:center;width:72px;height:72px;animation:.55s cubic-bezier(.2,.9,.2,1.25) both qr-check-pop;display:grid;box-shadow:0 0 0 6px #4ade802e,0 12px 28px #22c55e73}.qr-error{text-align:center;color:var(--text-muted);background:#080410d1;align-content:center;place-items:center;gap:12px;padding:24px;display:grid;position:absolute;inset:0}.qr-error p{max-width:28ch;color:var(--text);margin:0}.qr-error-raw{word-break:break-all;color:var(--text-muted)!important;max-width:90%!important;font-size:.75rem!important}.qr-stage--photo{background:radial-gradient(70% 55% at 50% 42%,#7c3aed47,#0000 60%),#05030a;width:100%;min-width:0;height:min(52dvh,400px);min-height:280px}.qr-photo-fallback{box-sizing:border-box;position:absolute;inset:0}.qr-frame--static{aspect-ratio:1;width:min(58%,220px);position:absolute;top:42%;left:50%;transform:translate(-50%,-50%)}.qr-photo-fallback .qr-hint,.qr-photo-fallback .qr-photo-note{text-align:center;margin:0 auto;position:absolute;left:16px;right:16px}.qr-photo-fallback .qr-hint{width:fit-content;max-width:calc(100% - 32px);bottom:52px}.qr-photo-fallback .qr-photo-note{max-width:34ch;color:var(--text-muted);font-size:.82rem;line-height:1.45;bottom:16px}.qr-upload{cursor:pointer;gap:8px}.qr-result{padding:16px;animation:.35s both fade-up}.qr-result-head{color:var(--income);align-items:center;gap:8px;margin-bottom:12px;font-weight:700;display:flex}.qr-dl{gap:10px;margin:0;display:grid}.qr-dl>div{border-bottom:1px solid #ffffff0f;justify-content:space-between;gap:12px;padding-bottom:8px;display:flex}.qr-dl dt{color:var(--text-muted);font-size:.86rem}.qr-dl dd{text-align:right;word-break:break-all;margin:0;font-weight:700}.qr-dl .mono{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.82rem;font-weight:600}.qr-raw{color:var(--text-muted);margin-top:12px;font-size:.84rem}.qr-raw summary{cursor:pointer;-webkit-user-select:none;user-select:none}.qr-raw code{border:1px solid var(--glass-border);color:var(--text);word-break:break-all;white-space:pre-wrap;background:#00000047;border-radius:12px;margin-top:8px;padding:10px 12px;font-size:.75rem;display:block}.qr-rescan{margin-top:12px}@keyframes qr-laser-scan{0%,to{opacity:.35;top:10%}50%{opacity:1;top:88%}}@keyframes qr-corner-breathe{0%,to{opacity:.75;transform:scale(1)}50%{opacity:1;transform:scale(1.03)}}@keyframes qr-lock-flash{0%{opacity:0;transform:scale(.9)}40%{opacity:1}to{opacity:0;transform:scale(1.08)}}@keyframes qr-check-pop{0%{opacity:0;transform:scale(.4)}to{opacity:1;transform:scale(1)}}@keyframes qr-ring-expand{0%{opacity:.9;transform:scale(.7)}to{opacity:0;transform:scale(1.55)}}@keyframes qr-reject-pulse{0%,to{box-shadow:0 18px 40px #00000059}40%{box-shadow:0 0 0 2px #fbbf248c,0 18px 40px #00000059}}.receipt-review{flex-direction:column;gap:12px;animation:.35s both fade-up;display:flex}.receipt-review>.btn-ghost{margin-top:0}.receipt-hero{text-align:left;width:100%;color:inherit;grid-template-columns:auto 1fr auto;align-items:center;gap:12px;padding:16px;display:grid}.receipt-hero--tappable{cursor:pointer}.receipt-hero--tappable:active{transform:scale(.99)}.receipt-hero-icon{background:var(--primary-soft);color:#e9d5ff;border-radius:14px;place-items:center;width:44px;height:44px;display:grid}.receipt-hero-text h2{margin:0;font-size:1.15rem;line-height:1.25}.receipt-hero-text p{color:var(--text-muted);margin:4px 0 0;font-size:.84rem}.receipt-hero-sum{color:var(--expense);white-space:nowrap;font-size:1.2rem;font-weight:800}.receipt-items{padding:14px 16px 12px}.receipt-items-head{color:var(--text-muted);align-items:center;gap:8px;margin-bottom:10px;font-size:.86rem;font-weight:650;display:flex}.receipt-items-actions{gap:10px;margin-left:auto;display:flex}.receipt-items-actions .linkish,button.linkish{color:#c4b5fd;background:0 0;padding:0;font-size:.78rem;font-weight:650}.receipt-items-hint{color:var(--text-muted);margin:-2px 0 10px;font-size:.78rem;line-height:1.35}.receipt-item-list{flex-direction:column;gap:6px;max-height:min(42dvh,340px);margin:0;padding:0;list-style:none;display:flex;overflow:auto}.receipt-item-row{border-bottom:1px solid #ffffff0f;align-items:stretch;gap:6px;padding:6px 0 8px;display:flex}.receipt-item-row.selected{background:#a78bfa14;border-bottom-color:#0000;border-radius:10px;margin:0 -8px;padding-left:8px;padding-right:8px}.receipt-check{color:#fff;background:0 0;border:1.5px solid #ffffff38;border-radius:7px;flex-shrink:0;place-items:center;width:22px;height:22px;margin-top:2px;padding:0;display:grid}.receipt-check.on{background:var(--primary,#8b5cf6);border-color:#0000}.receipt-item-body{text-align:left;min-width:0;color:inherit;background:0 0;flex-direction:column;flex:1;align-items:stretch;gap:2px;padding:0;display:flex}.receipt-item-row.tappable .receipt-item-body:active{opacity:.75}.receipt-item-top{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.receipt-item-name{min-width:0;font-size:.92rem;font-weight:600;line-height:1.3}.receipt-item-qty{color:var(--text-muted);font-size:.78rem;font-weight:650;line-height:1.3}.receipt-item-sum{flex-shrink:0;font-size:.92rem;font-weight:700}.receipt-total-row{border-top:1px solid #ffffff1a;justify-content:space-between;align-items:center;margin-top:12px;padding-top:10px;font-size:1rem;display:flex}.receipt-meta-block{padding:2px 4px 0}.receipt-details-toggle{width:100%;color:var(--text-muted);background:0 0;justify-content:flex-start;align-items:center;gap:6px;padding:4px 0;font-size:.78rem;font-weight:650;display:flex}.receipt-details-toggle svg{opacity:.85;flex-shrink:0;transition:transform .2s}.receipt-details-toggle svg.open{transform:rotate(180deg)}.receipt-details{gap:6px;margin:4px 0 2px;display:grid}.receipt-details>div{flex-wrap:wrap;align-items:baseline;gap:6px 10px;display:flex}.receipt-details dt{color:var(--text-muted);opacity:.75;min-width:5.5rem;font-size:.78rem;font-weight:650}.receipt-details dd{min-width:0;color:var(--text-muted);word-break:break-word;flex:1;margin:0;font-size:.78rem;font-weight:650;line-height:1.35}.receipt-address-link{color:inherit;text-underline-offset:2px;-webkit-text-decoration:underline #94a3b873;text-decoration:underline #94a3b873}.receipt-address-link:active{opacity:.75}.receipt-details .mono{letter-spacing:-.01em;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.72rem;font-weight:550}.receipt-assign-label{color:var(--text-muted);margin:4px 0 8px;font-size:.86rem;font-weight:650}.receipt-assign-hint{opacity:.85;font-weight:550}.receipt-cats{margin-bottom:8px}.receipt-hero-sum.expense{color:var(--expense)}.receipt-hero-sum.income{color:var(--income)}.receipt-view-meta{grid-template-columns:1fr 1fr;gap:12px;padding:10px 12px;display:grid}.receipt-view-meta .muted{color:var(--text-muted);margin-bottom:4px;font-size:.78rem;display:block}.receipt-view-meta strong{font-size:.95rem}.receipt-meta-find{text-align:left;color:inherit;background:0 0;border:1px solid #0000;border-radius:12px;width:100%;padding:8px}.receipt-meta-find:hover{border-color:var(--glass-border);background:#ffffff0a}.receipt-meta-find:active{transform:scale(.99)}.page-header .icon-btn{flex-shrink:0;margin-top:2px}.page-header:has(.icon-btn){justify-content:flex-start}.page-header:has(.icon-btn)>div{flex:1;min-width:0}
