:root{--lefty-primary:#10B981;--lefty-primary-dark:#0F766E;--lefty-mint:#A7F3D0;--lefty-light-mint:#E8FDF4;--lefty-navy:#0F172A;--lefty-background:#F8FAFC;--lefty-surface:#FFFFFF;--lefty-text:#0F172A;--lefty-text-secondary:#64748B;--lefty-border:#E2E8F0;--lefty-success:#10B981;--lefty-warning:#F59E0B;--lefty-danger:#EF4444;--lefty-blue:#3B82F6;--radius:18px;--shadow:0 8px 28px rgba(15,23,42,.07)}*{box-sizing:border-box}body{margin:0;background:var(--lefty-background);color:var(--lefty-text);font-family:Inter,-apple-system,BlinkMacSystemFont,"SF Pro Display","Segoe UI",sans-serif}.app-shell{min-height:100vh}.sidebar{display:none}.content{max-width:860px;margin:0 auto;padding:0 18px 110px}.topbar{height:76px;display:flex;align-items:center;justify-content:space-between}.topbar h1{font-size:20px}.brand-mobile img{width:98px;height:52px;object-fit:cover;object-position:left center}.avatar{width:36px;height:36px;border-radius:50%;background:linear-gradient(135deg,var(--lefty-primary-dark),var(--lefty-mint));color:#fff;display:grid;place-items:center;font-weight:800}.greeting h2{font-size:24px;margin:6px 0 2px}.greeting p,.page-head p{margin:0;color:var(--lefty-text-secondary)}.hero-card{margin-top:18px;padding:22px;border-radius:20px;background:linear-gradient(125deg,#08A981,#72E6B5);color:#fff;box-shadow:var(--shadow);display:flex;justify-content:space-between;align-items:center;overflow:hidden}.hero-card p{margin:0 0 6px}.hero-card strong{display:block;font-size:44px;letter-spacing:-1.8px}.hero-card small{display:block;opacity:.86;margin-top:6px}.hero-mark{font-size:74px;font-weight:900;opacity:.18}.metric-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:14px}.metric,.panel,.feature{background:var(--lefty-surface);border:1px solid rgba(226,232,240,.75);border-radius:var(--radius);box-shadow:0 5px 18px rgba(15,23,42,.045)}.metric{display:flex;align-items:center;gap:12px;padding:14px}.metric small,.panel small{color:var(--lefty-text-secondary)}.metric strong{display:block;font-size:18px;margin-top:2px}.circle-icon{width:38px;height:38px;border-radius:50%;display:grid;place-items:center;color:#fff;flex:0 0 auto}.circle-icon svg,.feature-icon svg,.bottom-nav svg,.sidebar svg,.fab svg{width:21px;height:21px}.circle-icon.green{background:var(--lefty-primary)}.circle-icon.red{background:linear-gradient(135deg,#ff6b6b,#ef4444)}.circle-icon.orange{background:#f59e0b}.circle-icon.blue{background:#3b82f6}.rotate svg{transform:rotate(180deg)}.panel{padding:16px;margin-top:14px}.panel-row{display:flex;align-items:center;gap:12px}.panel-row>div{flex:1}.panel h3,.panel-row h3{margin:2px 0;font-size:20px}.progress{height:9px;border-radius:999px;background:#E2E8F0;overflow:hidden;margin-top:12px}.progress span{display:block;height:100%;border-radius:999px}.progress .success{background:linear-gradient(90deg,var(--lefty-primary-dark),var(--lefty-primary))}.progress .warning{background:var(--lefty-warning)}.progress .danger{background:var(--lefty-danger)}.muted{color:var(--lefty-text-secondary);font-size:13px}.data-note{margin:18px 2px 0;color:var(--lefty-text-secondary);font-size:13px;display:flex;justify-content:space-between;gap:12px}.page-head{display:flex;align-items:end;justify-content:space-between;margin:12px 0 18px}.page-head h2{font-size:28px;margin:0 0 4px}.amount-pill{padding:8px 12px;border-radius:999px;background:var(--lefty-light-mint);color:var(--lefty-primary-dark);font-size:13px;font-weight:700}.search{height:48px;border-radius:16px;background:#fff;border:1px solid var(--lefty-border);display:flex;align-items:center;padding:0 14px;gap:10px;position:sticky;top:8px;z-index:3}.search input{border:0;outline:0;width:100%;font-size:16px;background:transparent;color:var(--lefty-text)}.transaction-list{margin-top:12px}.transaction{display:flex;align-items:center;gap:12px;padding:13px 2px;border-bottom:1px solid var(--lefty-border)}.tx-icon,.category-bubble{width:40px;height:40px;border-radius:50%;display:grid;place-items:center;background:var(--lefty-light-mint);color:var(--lefty-primary-dark);font-weight:800}.tx-main{flex:1;min-width:0}.tx-main strong,.tx-main span,.tx-money strong,.tx-money span{display:block}.tx-main strong{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tx-main span,.tx-money span{font-size:12px;color:var(--lefty-text-secondary);margin-top:3px}.tx-money{text-align:right}.month-switch{height:46px;border:1px solid var(--lefty-border);border-radius:15px;background:#fff;display:flex;align-items:center;justify-content:space-between;padding:0 10px}.month-switch button{border:0;background:transparent;font-size:26px;color:var(--lefty-navy)}.chips{display:flex;gap:8px;overflow:auto;padding:12px 0}.chips button{border:0;background:#EEF2F7;border-radius:999px;padding:9px 14px;white-space:nowrap;color:var(--lefty-navy)}.chips button.active{background:var(--lefty-navy);color:#fff}.budget-list{background:#fff;border-radius:var(--radius);padding:4px 14px}.budget-row{display:flex;gap:12px;padding:13px 0;border-bottom:1px solid var(--lefty-border)}.budget-row:last-child{border-bottom:0}.category-bubble.success{background:#D7F8E8;color:#079669}.category-bubble.warning{background:#FFF0CE;color:#D97706}.category-bubble.danger{background:#FFE3E3;color:#DC2626}.budget-main{flex:1}.budget-title{display:flex;justify-content:space-between;gap:12px}.budget-title span{font-size:13px;font-weight:800}.budget-title .success{color:var(--lefty-success)}.budget-title .warning{color:#D97706}.budget-title .danger{color:var(--lefty-danger)}.budget-main small{color:var(--lefty-text-secondary)}.budget-main .progress{margin-top:7px;height:6px}.chart-card{padding-bottom:20px}.bars{height:260px;display:grid;grid-template-columns:repeat(4,1fr);gap:14px;align-items:end;margin-top:18px}.bar-col{height:100%;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;gap:8px}.bar-col strong{font-size:11px}.bar-track{width:42px;height:185px;background:#EEF2F7;border-radius:12px;display:flex;align-items:end;overflow:hidden}.bar-track span{display:block;width:100%;background:linear-gradient(var(--lefty-mint),var(--lefty-primary));border-radius:12px 12px 0 0}.two-col{display:grid;grid-template-columns:1fr 1fr;gap:12px}.two-col .panel{margin-top:12px}.big-number{font-size:24px}.rank-row{display:flex;justify-content:space-between;padding:10px 0;border-bottom:1px solid var(--lefty-border)}.rank-row:last-child{border-bottom:0}.feature-grid{display:grid;grid-template-columns:1fr;gap:10px}.feature{padding:15px;display:flex;align-items:center;gap:12px}.feature-icon{width:42px;height:42px;border-radius:50%;display:grid;place-items:center;background:var(--lefty-light-mint);color:var(--lefty-primary-dark)}.feature>div{flex:1}.feature strong,.feature span{display:block}.feature>div span{font-size:13px;color:var(--lefty-text-secondary);margin-top:3px}.implementation a{color:var(--lefty-primary-dark);font-weight:800;text-decoration:none}.bottom-nav{position:fixed;left:0;right:0;bottom:0;height:78px;background:rgba(255,255,255,.95);backdrop-filter:blur(18px);border-top:1px solid var(--lefty-border);display:grid;grid-template-columns:repeat(5,1fr);z-index:8;padding-bottom:env(safe-area-inset-bottom)}.bottom-nav button{border:0;background:transparent;color:#64748B;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;font-size:10px}.bottom-nav button.active{color:var(--lefty-primary-dark);font-weight:800}.fab{position:fixed;right:20px;bottom:92px;width:56px;height:56px;border-radius:50%;border:0;background:var(--lefty-primary);color:#fff;display:grid;place-items:center;box-shadow:0 10px 30px rgba(16,185,129,.35);z-index:7}.modal-backdrop{position:fixed;inset:0;background:rgba(15,23,42,.46);z-index:20;display:flex;align-items:end}.modal{width:100%;background:#fff;border-radius:26px 26px 0 0;padding:22px 20px 30px;box-shadow:0 -20px 60px rgba(15,23,42,.16)}.modal-head{display:flex;justify-content:space-between}.modal-head h2{margin:0}.modal-head button{border:0;background:#EEF2F7;border-radius:50%;width:34px;height:34px;font-size:22px}.modal label,.auth-card label{display:block;font-size:13px;font-weight:700;margin-top:14px}.modal input,.modal select,.auth-card input{width:100%;height:48px;margin-top:6px;border:1px solid var(--lefty-border);border-radius:13px;padding:0 13px;font-size:16px;background:#fff}.primary,.secondary{width:100%;height:48px;border-radius:13px;border:0;font-weight:800;margin-top:18px}.primary{background:var(--lefty-primary);color:#fff}.secondary{background:#EEF2F7;color:var(--lefty-navy);margin-top:8px}.auth-shell{min-height:100vh;display:grid;place-items:center;padding:20px;background:radial-gradient(circle at 75% 0,#D8F8EB,transparent 35%),var(--lefty-background)}.auth-card{width:min(440px,100%);background:#fff;border-radius:24px;padding:30px;box-shadow:var(--shadow)}.auth-logo{width:140px;height:70px;object-fit:cover;object-position:left center}.auth-card h1{margin:12px 0 6px}.auth-card p{color:var(--lefty-text-secondary)}.auth-message{padding:10px;background:#F8FAFC;border-radius:10px}.side-footer{font-size:12px;color:var(--lefty-text-secondary);display:flex;gap:7px;align-items:center}.sync-dot{width:8px;height:8px;border-radius:50%;background:#94A3B8}.sync-dot.supabase{background:var(--lefty-primary)}
@media(min-width:960px){.app-shell{display:grid;grid-template-columns:260px 1fr}.sidebar{display:flex;position:sticky;top:0;height:100vh;background:#fff;border-right:1px solid var(--lefty-border);padding:28px 20px;flex-direction:column}.side-logo{width:150px;height:80px;object-fit:cover;object-position:left center;margin:0 8px 24px}.sidebar nav{display:flex;flex-direction:column;gap:6px}.sidebar nav button{height:48px;border:0;background:transparent;border-radius:14px;display:flex;align-items:center;gap:12px;padding:0 14px;color:#475569;font-size:15px}.sidebar nav button.active{background:var(--lefty-light-mint);color:var(--lefty-primary-dark);font-weight:800}.sidebar nav svg{width:20px}.side-footer{margin-top:auto;padding:10px}.content{max-width:1040px;padding:24px 42px 70px}.brand-mobile{display:none}.topbar{height:36px}.metric-grid{grid-template-columns:repeat(4,1fr)}.feature-grid{grid-template-columns:1fr 1fr}.bottom-nav,.fab{display:none}.hero-card{padding:28px}.hero-card strong{font-size:54px}.modal-backdrop{align-items:center;justify-content:center}.modal{width:440px;border-radius:24px}}
@media(prefers-color-scheme:dark){body{--lefty-background:#08111E;--lefty-surface:#0E1A2B;--lefty-text:#F8FAFC;--lefty-text-secondary:#94A3B8;--lefty-border:#223047;--lefty-navy:#F8FAFC;background:var(--lefty-background)}.metric,.panel,.feature,.budget-list,.month-switch,.search,.bottom-nav,.sidebar,.modal,.auth-card{background:#0E1A2B}.chips button{background:#18263A;color:#E2E8F0}.chips button.active{background:#E8FDF4;color:#0F172A}.bar-track{background:#1B2A3E}.modal input,.modal select,.auth-card input{background:#0A1422;color:#F8FAFC}.topbar img,.side-logo,.auth-logo{filter:none}}
.text-button{width:100%;border:0;background:transparent;color:var(--lefty-primary-dark);font-weight:750;margin-top:14px;padding:10px;cursor:pointer}.primary:disabled,.secondary:disabled,.text-button:disabled{opacity:.55;cursor:not-allowed}.primary-link{display:flex;align-items:center;justify-content:center;height:48px;border-radius:13px;background:var(--lefty-primary);color:#fff;text-decoration:none;font-weight:800;margin-top:18px}.loading-card{text-align:center}.loading-card .auth-logo{margin:0 auto}.loader{width:34px;height:34px;border-radius:50%;border:3px solid var(--lefty-border);border-top-color:var(--lefty-primary);margin:20px auto 8px;animation:lefty-spin .8s linear infinite}.inline-error{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:8px 0 14px;padding:12px 14px;border-radius:14px;background:#fff1f2;color:#be123c;border:1px solid #fecdd3;font-size:13px}.inline-error button{border:0;background:transparent;color:inherit;font-size:20px;cursor:pointer}@keyframes lefty-spin{to{transform:rotate(360deg)}}
@media(prefers-color-scheme:dark){.inline-error{background:#31131a;color:#fecdd3;border-color:#5e1d2d}.text-button{color:var(--lefty-mint)}}
