:root{--bg: #0b0c10;--text: rgba(232, 234, 240, .92);--text-strong: rgba(232, 234, 240, .95);--text-weak: rgba(232, 234, 240, .75);--text-muted: rgba(232, 234, 240, .65);--glass-1: rgba(255, 255, 255, .04);--glass-2: rgba(255, 255, 255, .06);--glass-3: rgba(255, 255, 255, .08);--border-1: rgba(255, 255, 255, .08);--border-2: rgba(255, 255, 255, .14);--radius-sm: 10px;--radius-md: 16px;--radius-lg: 22px;--shadow-1: 0 10px 30px rgba(0, 0, 0, .35);--shadow-sheet: 0 -16px 40px rgba(0, 0, 0, .45);--overlay-0: rgba(2, 5, 10, 0);--overlay-1: rgba(2, 5, 10, .5);--sheet-grad-start: rgba(18, 21, 28, .96);--sheet-grad-end: rgba(9, 11, 16, .98);--ok-rgb: 125, 255, 196;--warn-rgb: 255, 210, 90;--bad-rgb: 255, 120, 120;--accent: #079DA2;--accent-rgb: 7, 157, 162}.theme-spudget{--accent: #079DA2;--accent-rgb: 7, 157, 162}.theme-spudworth{--accent: #D57F00;--accent-rgb: 213, 127, 0;--overlay-0: rgba(8, 5, 2, 0);--overlay-1: rgba(8, 5, 2, .52);--sheet-grad-start: rgba(32, 21, 10, .96);--sheet-grad-end: rgba(18, 11, 6, .98)}:root[data-app=spudget]{--accent: #079DA2;--accent-rgb: 7, 157, 162}:root[data-app=spudworth]{--accent: #D57F00;--accent-rgb: 213, 127, 0;--overlay-0: rgba(8, 5, 2, 0);--overlay-1: rgba(8, 5, 2, .52);--sheet-grad-start: rgba(32, 21, 10, .96);--sheet-grad-end: rgba(18, 11, 6, .98)}:root{font-family:system-ui,-apple-system,Segoe UI,sans-serif;line-height:1.5;font-weight:400;color:var(--text);background-color:var(--bg);font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*,*:before,*:after{box-sizing:border-box}html,body,#root{width:100%;min-height:100%}body{margin:0;min-width:320px;background-color:var(--bg)}button{font-family:inherit;color:inherit}.dashboardPage{color:var(--text)}.header{display:flex;flex-direction:column;gap:12px;margin-bottom:14px}.monthRow{display:flex;align-items:center;justify-content:space-between;gap:10px}.monthLabel{font-size:18px;font-weight:650;text-transform:capitalize;opacity:.95}.iconBtn{width:44px;height:36px;border-radius:12px;border:1px solid var(--border-1);background:var(--glass-1);color:var(--text-strong);cursor:pointer}.toggle{display:grid;grid-template-columns:1fr 1fr 1fr;background:var(--glass-1);border:1px solid var(--border-1);border-radius:var(--radius-md);padding:4px;gap:4px}.toggleBtn{border:0;background:transparent;color:var(--text-weak);padding:10px;border-radius:12px;cursor:pointer;font-weight:600;font-size:13px}.toggleBtn.active{background:rgba(var(--accent-rgb),.18);color:var(--text-strong)}.gridTop{margin-top:10px}.sectionTitle{margin:18px 2px 10px;font-size:16px;letter-spacing:.2px;color:var(--text-strong)}.card{background:var(--glass-1);border:1px solid var(--border-1);border-radius:var(--radius-lg);box-shadow:var(--shadow-1)}.hero{display:grid;grid-template-columns:1.1fr .9fr;gap:12px;padding:14px}@media(max-width:380px){.hero{grid-template-columns:1fr}}.heroLeft{min-height:240px}.heroRight{display:flex;align-items:stretch}.donutWrap{position:relative;height:250px;width:100%}.donutChart{position:absolute;inset:0 0 44px}.donutCenter{position:absolute;top:0;left:50%;bottom:44px;width:56%;transform:translate(-50%);display:flex;flex-direction:column;align-items:center;justify-content:center;pointer-events:none;text-align:center;gap:4px;padding:0 6px}.muted{color:var(--text-muted);font-size:12px}.bigNumber{font-size:clamp(1.25rem,3.2vw,1.8rem);font-weight:800;letter-spacing:-.2px;line-height:1.05;white-space:nowrap;font-variant-numeric:tabular-nums;text-shadow:0 1px 0 rgba(0,0,0,.75),0 0 10px rgba(0,0,0,.55)}.bigNumber.tight{font-size:clamp(1.12rem,2.9vw,1.55rem)}.bigNumber.compact{font-size:clamp(.98rem,2.6vw,1.34rem)}.bigNumber.micro{font-size:clamp(.9rem,2.35vw,1.15rem)}.badge{display:inline-flex;align-items:center;gap:8px;padding:6px 10px;border-radius:999px;font-weight:700;font-size:12px;border:1px solid var(--border-1);background:var(--glass-1)}.badge.ok{color:rgba(var(--ok-rgb),.95)}.badge.bad{color:rgba(var(--bad-rgb),.95)}.donutBadge{position:absolute;left:50%;bottom:4px;transform:translate(-50%);white-space:nowrap}.statCard{width:100%;padding:14px;border-radius:18px;background:var(--glass-2);border:1px solid var(--border-1)}.statNumber{font-size:clamp(1.35rem,3.3vw,1.9rem);font-weight:800;margin-top:6px;white-space:nowrap;line-height:1.1}.statNumber.tight{font-size:clamp(1.2rem,3vw,1.6rem)}.statNumber.compact{font-size:clamp(1.05rem,2.7vw,1.35rem)}.divider{height:1px;margin:12px 0;background:var(--border-1)}.rowBetween{display:flex;align-items:baseline;justify-content:space-between;gap:10px}.pct{font-weight:800;color:rgba(var(--ok-rgb),.95)}.small{margin-top:6px}.progressTrack{height:10px;border-radius:999px;background:var(--glass-2);overflow:hidden;margin-top:10px}.progressFill{height:100%;border-radius:999px;background:rgba(var(--ok-rgb),.85)}.categoryList{display:flex;flex-direction:column;gap:12px}.categoryRow{width:100%;padding:12px;display:flex;gap:12px;text-align:left;cursor:pointer}.catIcon{width:44px;height:44px;border-radius:14px;background:var(--glass-1);border:1px solid var(--border-1);display:grid;place-items:center;font-size:20px;flex:0 0 auto}.catMain{flex:1}.catName{font-size:16px;font-weight:800;letter-spacing:-.2px;color:var(--text-strong)}.catRight{font-weight:800;font-size:14px;color:var(--text-strong)}.pctSmall{font-weight:800;font-size:12px;color:var(--text-muted)}.catFill{height:100%;border-radius:999px}.catFill.ok{background:rgba(var(--ok-rgb),.85)}.catFill.warn{background:rgba(var(--warn-rgb),.85)}.catFill.bad{background:rgba(var(--bad-rgb),.85)}.catRight.ok{color:rgba(var(--ok-rgb),.95)}.catRight.warn{color:rgba(var(--warn-rgb),.95)}.catRight.bad{color:rgba(var(--bad-rgb),.95)}.pctSmall.ok{color:rgba(var(--ok-rgb),.95)}.pctSmall.warn{color:rgba(var(--warn-rgb),.95)}.pctSmall.bad{color:rgba(var(--bad-rgb),.95)}.hint{margin-top:8px;display:inline-block;padding:6px 10px;border-radius:999px;font-size:12px;font-weight:800;border:1px solid var(--border-1);background:var(--glass-1)}.hint.warn{color:rgba(var(--warn-rgb),.95)}.hint.bad{color:rgba(var(--bad-rgb),.95)}.fab{position:fixed;right:max(18px,calc((100vw - 430px)/2 + 18px));bottom:24px;width:58px;height:58px;border-radius:20px;border:1px solid rgba(var(--accent-rgb),.32);background:rgba(var(--accent-rgb),.22);color:var(--text-strong);font-size:30px;font-weight:900;cursor:pointer;box-shadow:var(--shadow-1)}@media(min-width:1024px){.fab{right:auto;left:calc((100vw - min(1200px,calc(100vw - 48px)))/2 + 354px)}}.authScreen{min-height:100vh;display:grid;place-items:center;padding:20px}.authCard{width:min(420px,100%);border:1px solid var(--border-1);border-radius:18px;background:var(--glass-1);box-shadow:var(--shadow-1);padding:20px}.authTitle{margin:0 0 14px;color:var(--text-strong)}.authForm{display:flex;flex-direction:column;gap:12px}.authLabel{display:flex;flex-direction:column;gap:6px;color:var(--text-weak);font-size:13px}.authInput{border:1px solid var(--border-1);border-radius:12px;background:var(--glass-1);color:var(--text-strong);padding:10px 12px}.authActions{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:12px}.authBtn{border:1px solid var(--border-1);border-radius:12px;background:var(--glass-1);color:var(--text-strong);padding:10px 12px;font-weight:650}.authBtn.active{background:rgba(var(--accent-rgb),.24);border-color:rgba(var(--accent-rgb),.4)}.authBtn:disabled{opacity:.7;cursor:not-allowed}.authError{color:rgba(var(--bad-rgb),.95);margin:12px 0 0}.authInfo{color:var(--text-weak);margin:12px 0 0}.authLoading{text-align:center;color:var(--text-strong)}.appRoot{width:100%;min-height:100vh;padding:24px}.appTopBar{width:min(1200px,100%);margin:0 auto 12px;display:flex;align-items:center;justify-content:space-between;gap:12px}.authUser{color:var(--text-weak);font-size:13px;max-width:70%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.authLogout{border:1px solid var(--border-2);border-radius:12px;background:var(--glass-2);color:var(--text-strong);padding:8px 12px;font-weight:650}.shell{width:min(1200px,100%);margin:0 auto;display:grid;grid-template-columns:minmax(360px,430px) minmax(0,1fr);gap:28px;align-items:start}.desktopPane{min-height:calc(100vh - 48px);border:1px solid var(--border-1);border-radius:24px;background:var(--glass-1);box-shadow:var(--shadow-1);padding:18px}.container{width:100%;max-width:430px;padding:18px 14px 110px;margin:0 auto}body{background:radial-gradient(1200px 800px at 30% 10%,var(--glass-2),transparent 60%),var(--bg)}.detailTitleRow{display:flex;align-items:baseline;justify-content:space-between;gap:12px}.detailTitle{margin:0}.detailBalance{opacity:.85;font-weight:700}.detailMeta{margin-top:10px;opacity:.75}.detailSection{margin-top:16px;border-top:1px solid var(--border-1);padding-top:14px}.detailSectionTitle{margin:0 0 10px}.detailEmpty{opacity:.7;margin:0}.expenseList{display:flex;flex-direction:column;gap:10px}.expenseRow{display:flex;justify-content:space-between;gap:12px;padding:10px 12px;border-radius:14px;border:1px solid var(--border-1);background:var(--glass-1)}.expenseMain{display:flex;flex-direction:column}.expenseNote{font-weight:750}.expenseDate{opacity:.7;font-size:12px}.expenseAmount{font-weight:800}.addCard{display:flex;flex-direction:column;gap:12px}.addBackBtn{align-self:flex-start;border:1px solid var(--border-2);border-radius:12px;background:var(--glass-2);color:var(--text-strong);padding:8px 12px}.mobileSheetBackdrop{position:fixed;inset:0;display:none}@media(max-width:1023px){.appRoot{padding:12px}.appTopBar{max-width:430px;margin-bottom:8px}.shell{grid-template-columns:1fr;max-width:430px;gap:0}.desktopPane{display:none}.mobileSheetBackdrop{display:block;pointer-events:none;background:var(--overlay-0);transition:background .22s ease;z-index:80}.mobileSheetBackdrop.open{pointer-events:auto;background:var(--overlay-1)}.mobileSheet{position:absolute;left:0;right:0;bottom:0;transform:translateY(calc(100% + 16px));transition:transform .26s ease;background:linear-gradient(180deg,var(--sheet-grad-start),var(--sheet-grad-end));border-top-left-radius:24px;border-top-right-radius:24px;border:1px solid var(--border-1);box-shadow:var(--shadow-sheet);padding:10px 16px 20px;max-height:84vh;overflow-y:auto}.mobileSheet.open{transform:translateY(0)}.mobileSheetHandle{width:54px;height:5px;border-radius:999px;margin:4px auto 10px;background:var(--border-2)}.mobileSheetHeader{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin-bottom:10px}.mobileSheetHeader h3{margin:0}.mobileCloseBtn{border:1px solid var(--border-2);border-radius:10px;background:var(--glass-2);color:var(--text-strong);padding:7px 10px;font-size:13px;font-weight:650}}
