:root{--bg:#f7f8fb;--card:#fff;--ink:#151821;--muted:#73798a;--line:#e9ebf1;--accent:#f43f5e;--accent2:#ff6b75;--soft:#fff2f4;--dark:#222631}*{box-sizing:border-box}body,html{margin:0;padding:0;background:var(--bg);color:var(--ink);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}button,input{font:inherit}button{cursor:pointer}.connectPage,.loadingPage{min-height:100vh;display:grid;place-items:center;padding:28px;background:radial-gradient(circle at 20% 10%,rgba(244,63,94,.08),transparent 28%),radial-gradient(circle at 85% 85%,rgba(255,107,117,.07),transparent 30%),#fafbfc}.loadingPage{align-content:center;text-align:center;color:var(--muted)}.spinner{width:34px;height:34px;border:3px solid #eceef2;border-top:3px solid var(--accent);border-radius:50%;animation:spin .8s linear infinite;margin:auto}@keyframes spin{to{transform:rotate(1turn)}}.connectCard{width:min(620px,100%);background:rgba(255,255,255,.94);border:1px solid rgba(229,231,235,.9);border-radius:28px;padding:42px;box-shadow:0 28px 80px rgba(20,24,33,.1);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.connectLogo{width:min(430px,100%);height:auto;margin-bottom:26px}.cardKicker,.eyebrow{font-size:11px;letter-spacing:.16em;font-weight:800;color:var(--accent)}.connectCard h1{font-size:34px;line-height:1.12;margin:10px 0 14px;letter-spacing:-.04em}.connectCard p{color:var(--muted);line-height:1.65;margin:0 0 24px}.connectButton{display:flex;align-items:center;justify-content:space-between;text-decoration:none;background:linear-gradient(135deg,#ee3153,#ff6471);color:#fff;padding:16px 20px;border-radius:14px;font-weight:800;box-shadow:0 14px 26px rgba(244,63,94,.22)}.connectButton .arrow{font-size:22px}.privacy{margin-top:14px;text-align:center;color:#9096a4;font-size:12px}.successBadge{display:inline-flex;background:#ebfaf2;color:#14834f;border-radius:999px;padding:7px 10px;font-size:12px;font-weight:800}.dbCard h1{font-size:28px}.dbList{display:grid;grid-gap:10px;gap:10px}.dbItem{width:100%;display:grid;grid-template-columns:42px 1fr auto;grid-gap:12px;gap:12px;align-items:center;text-align:left;background:#fff;border:1px solid var(--line);border-radius:14px;padding:14px;color:var(--ink)}.dbItem:hover{border-color:#f6b6c1;box-shadow:0 8px 20px rgba(244,63,94,.08)}.dbIcon{display:grid;place-items:center;width:38px;height:38px;border-radius:10px;background:var(--soft);color:var(--accent)}.dbItem small{display:block;color:var(--muted);margin-top:3px}.notice{border:1px solid #eceef2;background:#f8f9fb;border-radius:12px;padding:12px 14px;font-size:13px}.errorNotice{border-color:#ffd0d7;background:#fff7f8;color:#a62a3f}.appShell{min-height:100vh;display:grid;grid-template-columns:278px 1fr}.sidebar{position:-webkit-sticky;position:sticky;top:0;height:100vh;background:#fff;border-right:1px solid var(--line);padding:26px 20px;display:flex;flex-direction:column}.sideLogo{width:230px;height:auto;margin-bottom:32px}.sidebar nav{display:grid;grid-gap:7px;gap:7px}.navItem{display:flex;align-items:center;gap:11px;padding:12px 14px;border-radius:12px;font-weight:700;font-size:14px;color:#555c6c}.navItem.active{background:var(--soft);color:var(--accent)}.navItem.muted{color:#9aa0ad}.navItem em{font-style:normal;margin-left:auto;font-size:10px;border:1px solid #eceef2;padding:2px 6px;border-radius:999px}.sidebarBottom{margin-top:auto;display:grid;grid-gap:10px;gap:10px}.dbPill{display:flex;gap:9px;align-items:center;border:1px solid var(--line);border-radius:13px;padding:11px}.dbDot{width:9px;height:9px;background:#24b47e;border-radius:50%;box-shadow:0 0 0 4px rgba(36,180,126,.11)}.dbPill div{min-width:0}.dbPill b,.dbPill small{display:block}.dbPill small{font-size:10px;color:var(--muted)}.dbPill b{font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:2px}.disconnect{border:0;background:transparent;color:#979daa;font-size:12px;padding:8px}.mainPanel{min-width:0;padding:34px clamp(24px,3vw,48px) 24px}.topbar{display:flex;justify-content:space-between;gap:24px;align-items:center;margin-bottom:26px}.topbar h1{font-size:32px;margin:5px 0 4px;letter-spacing:-.035em}.topbar p{margin:0;color:var(--muted);font-size:14px}.userChip{display:flex;align-items:center;gap:10px;background:#fff;border:1px solid var(--line);border-radius:14px;padding:9px 12px}.avatar{width:36px;height:36px;display:grid;place-items:center;border-radius:11px;background:linear-gradient(135deg,#f43f5e,#fb7185);color:#fff;font-weight:900}.userChip b,.userChip small{display:block}.userChip b{font-size:12px}.userChip small{font-size:10px;color:var(--muted);margin-top:2px}.summaryGrid{display:grid;grid-template-columns:repeat(3,1fr);grid-gap:16px;gap:16px;margin-bottom:16px}.metricCard,.modernCard{background:#fff;border:1px solid var(--line);border-radius:20px;box-shadow:0 8px 28px rgba(26,30,40,.035)}.metricCard{padding:20px 21px;position:relative;overflow:hidden}.metricCard.accent:after{content:"";position:absolute;width:120px;height:120px;border-radius:50%;right:-55px;top:-62px;background:rgba(244,63,94,.08)}.metricTop{display:flex;justify-content:space-between;align-items:center;color:var(--muted);font-size:12px;font-weight:700}.metricIcon{width:28px;height:28px;display:grid;place-items:center;border-radius:9px;background:#f7f8fa;color:var(--accent)}.metricCard strong{display:block;margin-top:10px;font-size:26px;letter-spacing:-.03em}.metricCard small{display:block;margin-top:5px;color:#9ba1ad}.fullCard{margin-bottom:16px}.chartCard{padding:22px}.cardHead{display:flex;justify-content:space-between;gap:18px;align-items:flex-start;margin-bottom:18px}.cardHead h2{font-size:20px;letter-spacing:-.02em;margin:5px 0}.cardHead p{font-size:12px;color:var(--muted);margin:0}.chartFilter{display:flex;align-items:end;gap:8px}.dateField{display:grid;grid-gap:4px;gap:4px}.dateField span{font-size:10px;color:var(--muted);font-weight:700}.dateField input{border:1px solid var(--line);background:#fbfbfc;border-radius:10px;padding:9px 10px;color:#3e4451;font-size:12px}.applyAccount,.miniButton{border:0;background:var(--dark);color:#fff;border-radius:10px;padding:10px 13px;font-weight:800;font-size:12px}.applyAccount:disabled,.miniButton:disabled{opacity:.55}.chartWrap{width:100%;min-height:330px}.dataNotice{display:flex;gap:8px;align-items:center;margin-bottom:16px}.expenseBody{display:grid;grid-template-columns:290px 1fr;grid-gap:20px;gap:20px}.accountPicker{border:1px solid var(--line);border-radius:15px;padding:12px;display:flex;flex-direction:column;height:380px}.pickerHead{display:flex;justify-content:space-between;align-items:center;padding:4px 4px 10px}.pickerHead b{font-size:13px}.pickerHead span{font-size:10px;color:var(--muted);background:#f6f7f9;border-radius:999px;padding:4px 7px}.accountScroll{overflow:auto;display:grid;grid-gap:5px;gap:5px;padding-right:3px}.accountRow{position:relative;display:flex;gap:9px;align-items:center;padding:9px;border:1px solid transparent;border-radius:10px;cursor:pointer}.accountRow:hover{background:#fafbfc}.accountRow.selected{background:#fff5f6;border-color:#ffd7dd}.accountRow input{position:absolute;opacity:0}.checkVisual{width:20px;height:20px;border:1px solid #d9dde5;border-radius:6px;display:grid;place-items:center;color:transparent;font-size:11px}.accountRow.selected .checkVisual{background:var(--accent);border-color:var(--accent);color:#fff}.accountRow b,.accountRow small{display:block}.accountRow b{font-size:11px}.accountRow small{font-size:9px;color:var(--muted);margin-top:2px}.applyAccount{margin-top:10px;background:linear-gradient(135deg,#ee3153,#ff6471)}.expenseChart{position:relative;min-width:0}.emptyChart{position:absolute;inset:0;display:grid;place-items:center;align-content:center;text-align:center;color:var(--muted);pointer-events:none}.emptyChart span{font-size:28px;color:#d7dae2}.emptyChart b{color:#4c5260;margin-top:8px}.emptyChart p{font-size:12px;max-width:330px}.footer{text-align:center;color:#a0a5b0;font-size:11px;padding:14px}.recharts-default-tooltip{border-radius:12px!important;border:1px solid var(--line)!important;box-shadow:0 10px 30px rgba(20,24,32,.08)!important}.recharts-text{font-size:11px;fill:#8b91a0}.recharts-legend-item-text{font-size:11px!important;color:#666d7c!important}@media(max-width:1100px){.appShell{grid-template-columns:1fr}.sidebar{display:none}.summaryGrid{grid-template-columns:1fr 1fr}.expenseBody{grid-template-columns:1fr}.accountPicker{height:260px}.cardHead{flex-direction:column}.chartFilter{width:100%;flex-wrap:wrap}}@media(max-width:720px){.mainPanel{padding:22px 14px}.topbar{align-items:flex-start}.userChip{display:none}.summaryGrid{grid-template-columns:1fr}.chartFilter{display:grid;grid-template-columns:1fr 1fr}.miniButton{grid-column:1/-1}.dateField input{width:100%}.connectCard{padding:28px 22px}.connectCard h1{font-size:28px}.chartCard{padding:16px}}.navItem{width:100%;border:0;background:transparent;text-decoration:none;text-align:left;cursor:pointer;font-family:inherit}.logoutBtn{border:1px solid var(--line);background:#fff;border-radius:11px;padding:10px 12px;color:#6b7280;font-weight:700;cursor:pointer}.dbPill.offline .dbDot{background:#cbd5e1;box-shadow:none}.connectionPageCard{padding:30px;max-width:900px}.connectionHero{display:flex;justify-content:space-between;gap:28px;align-items:center;padding-bottom:24px;border-bottom:1px solid var(--line);margin-bottom:22px}.connectionHero h2{font-size:26px;margin:12px 0 8px}.connectionHero p{color:var(--muted);max-width:640px;line-height:1.65}.oauthMark{width:86px;height:86px;border-radius:24px;display:grid;place-items:center;font-size:46px;font-weight:900;color:#fff;background:linear-gradient(145deg,#f11d5d,#ff6b6b);box-shadow:0 18px 45px rgba(244,63,94,.24)}.statusPill{display:inline-flex;align-items:center;background:#f4f5f7;color:#8b91a0;border-radius:999px;padding:7px 10px;font-size:11px;font-weight:800}.statusPill.online{background:#ecfdf5;color:#11845b}.compactConnect{max-width:310px}.dbChooser{max-width:680px}.dbChooser h3{font-size:13px;color:var(--muted);margin:0 0 10px}.connectedInfo{display:flex;justify-content:space-between;align-items:center;background:#f8fafc;border:1px solid var(--line);border-radius:14px;padding:16px}.connectedInfo small,.connectedInfo strong{display:block}.connectedInfo small{color:var(--muted);font-size:10px}.connectedInfo strong{margin-top:4px}.connectedInfo button{border:0;background:#fff;border:1px solid var(--line);padding:10px 12px;border-radius:10px;color:#b4233c;font-weight:700}.emptyState{padding:64px 28px;text-align:center}.emptyIcon{width:64px;height:64px;border-radius:20px;margin:0 auto 16px;display:grid;place-items:center;background:var(--soft);color:var(--accent);font-size:27px}.emptyState h2{margin:0 0 8px}.emptyState p{color:var(--muted);margin:0 0 18px}.emptyState button{border:0;background:var(--dark);color:#fff;border-radius:11px;padding:11px 15px;font-weight:800}.overviewGrid{display:grid;grid-template-columns:repeat(3,1fr);grid-gap:16px;gap:16px}.overviewTile{display:flex;align-items:center;gap:13px;background:#fff;border:1px solid var(--line);border-radius:18px;padding:20px;text-align:left;cursor:pointer;box-shadow:0 8px 28px rgba(26,30,40,.035)}.overviewTile>span{width:42px;height:42px;border-radius:13px;display:grid;place-items:center;background:#fff3f5;color:var(--accent);font-size:18px}.overviewTile div{flex:1 1}.overviewTile b,.overviewTile small{display:block}.overviewTile b{font-size:14px}.overviewTile small{font-size:11px;color:var(--muted);margin-top:4px}.overviewTile em{font-style:normal;color:#a5abb6}.loginPage{min-height:100vh;display:grid;grid-template-columns:minmax(0,1.15fr) minmax(420px,.85fr);background:#fff}.loginVisual{position:relative;overflow:hidden;background:linear-gradient(145deg,#fff7f9,#fff 52%,#f8fafc);display:flex;align-items:center;padding:70px clamp(44px,7vw,110px)}.loginVisual:after{content:"";position:absolute;inset:auto -20% -35% -10%;height:58%;background:linear-gradient(135deg,rgba(244,63,94,.12),rgba(255,255,255,0));border-radius:50% 50% 0 0;transform:rotate(-4deg)}.loginGlow{position:absolute;border-radius:50%;filter:blur(4px)}.glowOne{width:260px;height:260px;background:rgba(244,63,94,.08);top:-90px;left:-80px}.glowTwo{width:200px;height:200px;background:rgba(251,113,133,.08);right:8%;bottom:8%}.brandStory{position:relative;z-index:2;max-width:670px}.loginLogo{width:min(520px,85%);height:auto;margin-bottom:42px}.loginEyebrow{font-size:11px;font-weight:900;letter-spacing:.16em;color:var(--accent)}.brandStory h1{font-size:clamp(42px,4.4vw,68px);line-height:1.03;letter-spacing:-.055em;margin:14px 0 20px;max-width:680px}.brandStory p{font-size:16px;line-height:1.75;color:#737987;max-width:580px}.featureChips{display:flex;gap:9px;flex-wrap:wrap;margin-top:28px}.featureChips span{border:1px solid #f1d8de;background:rgba(255,255,255,.8);border-radius:999px;padding:8px 11px;font-size:11px;font-weight:750;color:#6e5560}.loginPanel{display:grid;place-items:center;padding:46px;background:#fff}.loginBox{width:min(420px,100%)}.loginMiniBrand{font-size:10px;letter-spacing:.16em;color:var(--accent);font-weight:900}.loginBox h2{font-size:34px;letter-spacing:-.035em;margin:10px 0 7px}.loginSub{color:var(--muted);font-size:13px;line-height:1.6;margin:0 0 25px}.loginForm{display:grid;grid-gap:16px;gap:16px}.createUser label,.loginForm label{display:grid;grid-gap:7px;gap:7px;font-size:11px;font-weight:800;color:#5f6674}.createUser input,.createUser select,.loginForm input{width:100%;border:1px solid #dfe3ea;border-radius:12px;padding:13px 14px;font:inherit;background:#fbfcfd;outline:none}.createUser input:focus,.createUser select:focus,.loginForm input:focus{border-color:#fb7185;box-shadow:0 0 0 4px rgba(244,63,94,.08);background:#fff}.createUser button,.loginForm button{display:flex;justify-content:space-between;align-items:center;border:0;border-radius:12px;background:linear-gradient(135deg,#ef2852,#fb6672);color:#fff;padding:13px 15px;font-weight:850;cursor:pointer;box-shadow:0 12px 25px rgba(239,40,82,.18)}.createUser button:disabled,.loginForm button:disabled{opacity:.6}.adminSuccess,.loginError{border-radius:10px;padding:10px 12px;font-size:12px;margin-bottom:13px}.loginError{background:#fff2f4;color:#a62a3f;border:1px solid #ffd4dc}.adminSuccess{background:#ecfdf5;color:#157254;border:1px solid #c9f3df}.loginHelp{font-size:10px;color:#a0a6b1;margin-top:18px;text-align:center}.adminShell{min-height:100vh;display:grid;grid-template-columns:250px 1fr;background:#f7f8fb}.adminSide{background:#fff;border-right:1px solid var(--line);padding:28px 20px;display:flex;flex-direction:column}.adminSide img{width:210px;height:auto}.adminSide>a{margin-top:36px;color:#5f6674;text-decoration:none;font-size:12px;font-weight:800}.adminIdentity{margin-top:auto;border:1px solid var(--line);border-radius:12px;padding:11px}.adminIdentity b,.adminIdentity small{display:block}.adminIdentity small{font-size:9px;color:var(--muted)}.adminIdentity b{font-size:11px;margin-top:3px;overflow:hidden;text-overflow:ellipsis}.adminMain{padding:46px clamp(28px,5vw,70px)}.adminHeader h1{font-size:36px;letter-spacing:-.04em;margin:7px 0}.adminHeader p{margin:0;color:var(--muted)}.adminGrid{display:grid;grid-template-columns:minmax(320px,420px) minmax(0,1fr);grid-gap:20px;gap:20px;margin-top:28px}.adminCard{background:#fff;border:1px solid var(--line);border-radius:18px;padding:22px;box-shadow:0 8px 28px rgba(26,30,40,.035)}.adminCard h2{font-size:18px;margin:0 0 18px}.createUser{display:grid;grid-gap:15px;gap:15px}.userListHead{display:flex;justify-content:space-between;align-items:center}.userListHead span{font-size:10px;background:#f5f6f8;padding:5px 8px;border-radius:999px;color:var(--muted)}.userTable{display:grid;grid-gap:7px;gap:7px}.userRow{display:flex;align-items:center;gap:11px;border-top:1px solid #f0f2f5;padding:12px 2px}.userAvatar{width:34px;height:34px;border-radius:10px;display:grid;place-items:center;background:#fff1f4;color:var(--accent);font-weight:900}.userRow>div:nth-child(2){flex:1 1}.userRow b,.userRow small{display:block}.userRow b{font-size:12px}.userRow small{font-size:9px;color:var(--muted);margin-top:3px}.roleBadge{font-size:9px;font-weight:900;padding:5px 7px;border-radius:999px;background:#f3f4f6;color:#6b7280}.roleBadge.admin{background:#fff1f4;color:#c52c4b}@media(max-width:900px){.loginPage{grid-template-columns:1fr}.loginVisual{display:none}.loginPanel{min-height:100vh}.adminShell{grid-template-columns:1fr}.adminSide{display:none}.adminGrid,.overviewGrid{grid-template-columns:1fr}}.expenseVisuals{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(280px,.8fr);grid-gap:18px;gap:18px;min-width:0}.expenseChart,.expensePie{border:1px solid var(--line);border-radius:15px;padding:14px;min-width:0;background:#fff}.expenseChart h3,.expensePie h3{margin:0 0 8px;font-size:13px}.pieEmpty{height:310px;display:grid;place-items:center;text-align:center;color:var(--muted);font-size:12px;padding:24px}@media(max-width:1250px){.expenseVisuals{grid-template-columns:1fr}.expensePie{min-height:350px}}