:root{--bg:#07090b;--surface:#111418;--surface2:#191d22;--elevated:#20252b;--text:#f2f4f5;--muted:#9ca4ad;--line:#2c3239;--silver:#c9ced4;--success:#7fc69e;--warning:#d9a968;--danger:#e97974;--radius-sm:12px;--radius-field:14px;--radius-card:18px;--radius-hero:24px;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:20px;--space-6:24px;--space-8:32px;--card-shadow:0 18px 44px rgba(0,0,0,.28);--transition:180ms cubic-bezier(.2,.8,.2,1);font-family:-apple-system,BlinkMacSystemFont,"SF Pro Display","SF Pro Text","Segoe UI",sans-serif}
html{background:var(--bg);scroll-behavior:smooth}body{background:radial-gradient(circle at 50% -10%,#20252a 0,transparent 31rem),var(--bg);letter-spacing:-.005em}.app-shell{max-width:780px}.topbar{height:82px;padding:max(14px,env(safe-area-inset-top)) max(18px,env(safe-area-inset-right)) 10px max(18px,env(safe-area-inset-left));align-items:center;border-bottom:1px solid color-mix(in srgb,var(--line) 72%,transparent);background:color-mix(in srgb,var(--bg) 82%,transparent);box-shadow:0 8px 26px rgba(0,0,0,.12)}.topbar h1{font-size:clamp(20px,5vw,24px);letter-spacing:-.04em}.topbar .eyebrow{margin-bottom:2px;display:block}#headerMeta{display:flex;gap:7px;align-items:center;color:var(--muted);font-size:10px;margin-top:3px}#headerMeta i{width:3px;height:3px;border-radius:50%;background:var(--silver)}.icon-btn{background:linear-gradient(145deg,var(--elevated),var(--surface));box-shadow:inset 0 1px 0 #ffffff12,0 8px 24px #0004}.page{padding:20px max(18px,env(safe-area-inset-right)) calc(116px + env(safe-area-inset-bottom)) max(18px,env(safe-area-inset-left))}.page-title{margin-top:8px}.page-title h2,.section-head h2{letter-spacing:-.035em}.panel,.stat{background:linear-gradient(150deg,color-mix(in srgb,var(--surface) 96%,white 4%),var(--surface));border:1px solid color-mix(in srgb,var(--line) 82%,transparent);box-shadow:inset 0 1px 0 rgba(255,255,255,.035)}.hero{position:relative;overflow:hidden;min-height:220px;padding:24px;border-color:#3a4149;background:radial-gradient(circle at 85% 0,#363d45 0,transparent 42%),linear-gradient(145deg,#1e2329,#0d1013 70%);box-shadow:var(--card-shadow),inset 0 1px 0 rgba(255,255,255,.11)}.hero:after{content:"";position:absolute;inset:auto -20% -55% 30%;height:130px;background:linear-gradient(90deg,transparent,#fff1,transparent);transform:rotate(-8deg);pointer-events:none}.hero>div{width:min(100%,420px);z-index:1}.hero h2{font-size:clamp(32px,9vw,45px);font-variant-numeric:tabular-nums;letter-spacing:-.055em;margin:6px 0 3px}.hero .add-round{z-index:2;align-self:flex-start;width:52px;height:52px;box-shadow:0 10px 26px #0007,0 0 0 1px #fff3;transition:transform var(--transition),box-shadow var(--transition)}.hero .add-round:active{transform:scale(.94)}.hero-budget{margin-top:18px;display:grid;gap:7px}.hero-budget>div:first-child,.hero-budget-foot{display:flex;justify-content:space-between;align-items:center;color:var(--muted);font-size:11px}.hero-budget strong{color:var(--text);font-variant-numeric:tabular-nums}.budget-track{height:6px;border-radius:99px;background:#ffffff13;overflow:hidden}.budget-track span{display:block;width:0;height:100%;border-radius:inherit;background:linear-gradient(90deg,#8e959c,#eef1f3);transition:width 420ms ease}.section-head{margin-top:30px}.stat-grid{gap:12px}.stat{min-height:104px;padding:15px}.stat span{font-size:11px;letter-spacing:.01em}.stat strong{font-variant-numeric:tabular-nums;letter-spacing:-.025em}.quick-actions{gap:10px;margin:16px 0}.quick-tile{min-height:76px!important;padding:13px!important;display:flex;align-items:center;gap:12px;text-align:left;border-radius:var(--radius-card)!important;background:linear-gradient(145deg,var(--elevated),var(--surface))!important;box-shadow:inset 0 1px 0 #fff08;transition:transform var(--transition),border-color var(--transition),background var(--transition)}.quick-tile:hover{border-color:#555d66}.quick-tile:active{transform:translateY(1px) scale(.985)}.tile-mark{width:34px;height:34px;border-radius:11px;display:grid;place-items:center;background:#ffffff09;border:1px solid #ffffff0f;color:var(--silver);font-size:17px;flex:0 0 auto}.quick-tile b{margin-left:auto;min-width:22px;height:22px;border-radius:99px;display:grid;place-items:center;background:var(--silver);color:#0a0c0e;font-size:10px}.dashboard-collapsible,.analysis-section,.settings-accordion{border:1px solid var(--line);border-radius:var(--radius-card);background:color-mix(in srgb,var(--surface) 90%,transparent);margin-top:12px;overflow:hidden}.dashboard-collapsible>summary,.analysis-section>summary,.settings-accordion>summary{list-style:none;cursor:pointer;padding:16px 18px;font-size:13px;font-weight:800;display:flex;align-items:center;justify-content:space-between;min-height:52px}.dashboard-collapsible>summary::-webkit-details-marker,.analysis-section>summary::-webkit-details-marker,.settings-accordion>summary::-webkit-details-marker{display:none}.dashboard-collapsible>summary:after,.analysis-section>summary:after,.settings-accordion>summary:after{content:"＋";font-size:16px;color:var(--muted);transition:transform var(--transition)}.dashboard-collapsible[open]>summary:after,.analysis-section[open]>summary:after,.settings-accordion[open]>summary:after{content:"−"}.dashboard-collapsible .stats-section{padding:0 12px 12px;margin:0}.dashboard-collapsible .section-head{display:none}.form-section-title{margin:10px -2px -2px;padding-top:12px;border-top:1px solid var(--line)}.form-section-title:first-of-type{border:0;margin-top:0;padding-top:0}.form-section-title span{display:flex;align-items:center;gap:9px;color:var(--silver);font-size:11px;font-weight:800;letter-spacing:.12em;text-transform:uppercase}.form-section-title span:before{content:"";width:18px;height:1px;background:var(--silver)}#transactionForm{padding:18px;box-shadow:var(--card-shadow)}.amount-field{grid-column:1/-1}.amount-field div{min-height:74px;background:linear-gradient(145deg,var(--elevated),var(--surface2));box-shadow:inset 0 1px 0 #fff08}.amount-field input{font-variant-numeric:tabular-nums;font-size:clamp(26px,9vw,36px)}.segmented{display:grid;grid-template-columns:repeat(4,1fr);padding:4px;background:var(--surface2);border:1px solid var(--line);border-radius:var(--radius-field);gap:3px}.segmented button{min-height:42px;border:0;border-radius:10px;background:transparent;color:var(--muted);font-size:11px;font-weight:700;padding:5px;transition:all var(--transition)}.segmented button.active{background:linear-gradient(145deg,#dce0e4,#aeb5bd);color:#0b0d0f;box-shadow:0 5px 12px #0004}.select-fallback{position:absolute!important;width:1px;height:1px;clip:rect(0 0 0 0);overflow:hidden}.detail-section{background:color-mix(in srgb,var(--elevated) 66%,transparent);border-color:#343b43}.detail-section legend{font-size:12px;letter-spacing:.05em}.sticky-save{position:sticky;bottom:calc(82px + env(safe-area-inset-bottom));z-index:8;box-shadow:0 12px 30px #0009;min-height:54px}.filters{padding:10px;border-radius:var(--radius-card);background:var(--surface);border:1px solid var(--line);position:sticky;top:86px;z-index:5}.transaction{position:relative;padding:15px;border-radius:var(--radius-card);box-shadow:inset 0 1px 0 #fff06;transition:transform var(--transition),border-color var(--transition)}.transaction:hover{border-color:#444c54;transform:translateY(-1px)}.transaction-icon{background:linear-gradient(145deg,var(--elevated),var(--surface2));border:1px solid #ffffff0d}.transaction h3{font-size:14px}.transaction-amount{font-variant-numeric:tabular-nums}.actions button{background:var(--surface2);border:1px solid var(--line);border-radius:9px;min-height:34px}.analysis-section{margin-top:12px}.analysis-section>.analysis-block{padding:0 12px 14px;margin:0}.analysis-section .section-head{display:none}.bars{padding-top:8px}.bar-track{height:8px}.bar-fill{background:linear-gradient(90deg,#737b84,#d9dde1)}.account-card{padding:18px;background:radial-gradient(circle at 100% 0,#2c3239 0,transparent 44%),var(--surface)}.account-status,.receipt-status{display:inline-flex;align-items:center;min-height:24px;border:1px solid #446351;border-radius:99px;color:var(--success);padding:3px 8px;font-size:10px;font-weight:800;margin-bottom:9px}.account-status.warning{color:var(--warning);border-color:#6d5638}.account-head strong{font-variant-numeric:tabular-nums}.account-card .mini-grid{border-top:1px solid var(--line);padding-top:12px}.receipt-card{border-radius:var(--radius-card);padding:13px}.receipt-card img{border:1px solid var(--line);box-shadow:0 8px 20px #0005}.receipt-status{color:var(--silver);border-color:var(--line)}.settings-accordion{padding:0!important}.settings-accordion>.accordion-body{padding:0 16px 16px}.settings-accordion[open]>.accordion-body{animation:accordionIn var(--transition)}@keyframes accordionIn{from{opacity:0;transform:translateY(-4px)}}.settings-accordion .panel{box-shadow:none}.privacy{border:0;margin:0;padding:0}.bottom-nav{width:min(780px,100%);padding:8px max(10px,env(safe-area-inset-right)) max(8px,env(safe-area-inset-bottom)) max(10px,env(safe-area-inset-left));background:color-mix(in srgb,var(--bg) 80%,transparent);border-color:#353b42;box-shadow:0 -14px 34px #0005}.bottom-nav button{position:relative;min-height:52px;border-radius:14px;transition:color var(--transition),transform var(--transition),background var(--transition)}.bottom-nav button.active{background:#ffffff08;transform:translateY(-3px)}.bottom-nav button.active:before{content:"";position:absolute;left:34%;right:34%;top:2px;height:2px;background:var(--silver);border-radius:99px}.bottom-nav span{font-size:20px}.toast{border:1px solid #ffffff18;box-shadow:0 14px 34px #0008}.toast[data-type="success"]{background:#d9eee1}.toast[data-type="error"]{background:#f4d7d5;color:#431815}.ocr-image{border:1px solid var(--line)}#ocrProgress{accent-color:var(--silver)}dialog{border-radius:24px 24px 0 0;width:min(100%,520px);max-height:min(82dvh,700px);position:fixed;inset:auto 0 0 0;margin:0 auto;padding:22px 22px max(22px,env(safe-area-inset-bottom));box-shadow:0 -24px 60px #000b}dialog:before{content:"";display:block;width:42px;height:4px;border-radius:99px;background:var(--line);margin:-10px auto 18px}
[data-theme="light"]{--bg:#f3f4f5;--surface:#fff;--surface2:#eceef0;--elevated:#f8f9fa;--line:#d8dce0;--text:#16191c;--muted:#626a72;--silver:#353b41;--card-shadow:0 14px 34px rgba(32,38,44,.09);background:#f3f4f5}[data-theme="light"] body{background:radial-gradient(circle at 50% -10%,#dfe2e5 0,transparent 32rem),var(--bg)}[data-theme="light"] .topbar,[data-theme="light"] .bottom-nav{background:color-mix(in srgb,#f5f6f7 86%,transparent)}[data-theme="light"] .hero{background:radial-gradient(circle at 85% 0,#3c444c,transparent 44%),linear-gradient(145deg,#252b31,#111519);color:#f4f5f6}[data-theme="light"] .hero .eyebrow,[data-theme="light"] .hero p{color:#aeb5bd}[data-theme="light"] .quick-tile{background:linear-gradient(145deg,#fff,#f2f3f4)!important}.data-warning{box-shadow:0 9px 24px #0002}
@media(min-width:760px){.app-shell{max-width:1080px}.bottom-nav{max-width:780px}.page{max-width:920px;margin:auto}.quick-actions{grid-template-columns:repeat(3,1fr)}#dashboardPrimary{grid-template-columns:repeat(4,1fr)}.hero{min-height:240px}.account-card:hover,.receipt-card:hover{transform:translateY(-2px)}}
@media(max-width:430px){.page{padding-left:max(14px,env(safe-area-inset-left));padding-right:max(14px,env(safe-area-inset-right))}.hero{padding:20px;min-height:216px}.hero .add-round{width:48px;height:48px}.quick-actions{grid-template-columns:1fr 1fr}.quick-tile{min-height:70px!important}.segmented{grid-template-columns:1fr 1fr}.stat{min-height:94px}.settings-accordion>summary{padding:15px}.filters{top:82px}.receipt-card{grid-template-columns:auto 64px minmax(0,1fr)}}
@media(max-width:340px){.quick-actions,.stat-grid{grid-template-columns:1fr}.hero{min-height:228px}.hero h2{font-size:30px}.topbar{padding-left:max(12px,env(safe-area-inset-left));padding-right:max(12px,env(safe-area-inset-right))}#headerAccounts{display:none}.segmented button{font-size:10px}.sticky-save{bottom:calc(78px + env(safe-area-inset-bottom))}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.budget-track span,.quick-tile,.transaction,.bottom-nav button,.segmented button{transition:none!important}.settings-accordion[open]>.accordion-body{animation:none!important}}
.quick-tile{position:relative}.quick-tile>span:last-of-type{min-width:0;line-height:1.2;overflow-wrap:normal;word-break:normal}.quick-tile b{position:absolute;right:9px;top:9px}.amount-field b{white-space:nowrap;word-break:normal;flex:0 0 auto}button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible{outline:2px solid var(--silver);outline-offset:2px}
