@import "https://fonts.googleapis.com/css2?family=Archivo+Black&family=Space+Grotesk:wght@400;500;600;700&display=swap";:root{--bg:#0b0f13;--bg-soft:#121920;--surface:#151f29;--surface-2:#1a2633;--text:#f4f8fb;--muted:#9cb0c2;--accent:#2de1c2;--accent-2:#ffb400;--danger:#ff6f7d;--success:#38db91;--border:#c7e1ff2e;--radius-lg:22px;--radius-md:14px;--shadow:0 22px 44px #00000059;--transition:.26s cubic-bezier(.2, .8, .2, 1)}*{box-sizing:border-box}body{min-height:100vh;color:var(--text);background:radial-gradient(circle at 12% 14%, #2de1c224, transparent 46%), radial-gradient(circle at 87% 12%, #ffb4001f, transparent 38%), repeating-linear-gradient(120deg, #ffffff04, #ffffff04 2px, transparent 2px, transparent 8px), var(--bg);margin:0;font-family:Space Grotesk,Segoe UI,sans-serif}h1,h2,h3,h4{letter-spacing:.02em;margin:0;font-family:Archivo Black,Arial Black,sans-serif}button,input,select{font:inherit}a{color:var(--accent)}label{color:var(--muted);gap:.4rem;min-width:0;font-size:.92rem;display:grid}input,select{border:1px solid var(--border);background:var(--surface-2);width:100%;min-width:0;max-width:100%;color:var(--text);transition:border-color var(--transition), transform var(--transition);border-radius:12px;padding:.65rem .75rem}input[type=date]{appearance:none}input[type=date]::-webkit-date-and-time-value{text-align:left;min-width:0}input[type=date]::-webkit-calendar-picker-indicator{opacity:.85;margin:0}input:focus,select:focus,button:focus-visible,a:focus-visible{outline-offset:2px;outline:2px solid #2de1c273}input:focus,select:focus{border-color:var(--accent);transform:translateY(-1px)}.primary-btn,.ghost-btn,.link-btn,.ghost-icon{cursor:pointer;transition:transform var(--transition), background var(--transition), border-color var(--transition);border:1px solid #0000;border-radius:12px}.primary-btn{color:#d7fffa;background:linear-gradient(120deg,#2de1c247,#2de1c214);border-color:#2de1c273;justify-content:center;align-items:center;gap:.5rem;padding:.72rem 1rem;font-weight:700;display:inline-flex}.primary-btn:hover:not(:disabled){transform:translateY(-2px)}.primary-btn:disabled{opacity:.6;cursor:not-allowed}.ghost-btn{border-color:var(--border);color:var(--text);background:0 0;padding:.65rem .9rem}.ghost-btn:hover,.link-btn:hover{border-color:var(--accent)}.ghost-icon{color:var(--muted);background:0 0;padding:.3rem}.ghost-icon:hover{color:var(--danger)}.ghost-icon:disabled{opacity:.45;cursor:not-allowed}.link-btn{color:var(--accent);text-align:left;background:0 0;border-color:#0000;margin-top:.7rem;padding:0}.stack-form{gap:.8rem;display:grid}.stack-form>*,.inline-grid>*{min-width:0}.checkbox-inline{color:var(--text);align-items:center;gap:.55rem;display:inline-flex}.checkbox-inline input[type=checkbox]{width:18px;height:18px;accent-color:var(--accent)}.inline-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:.8rem;display:grid}.placeholder{color:var(--muted);margin:0}.error-text{color:var(--danger);margin:0;font-size:.9rem}.success-text{color:var(--success);margin:0;font-size:.9rem}.loading-screen{min-height:100vh;color:var(--muted);place-items:center;padding:2rem;display:grid}.empty-state{border-radius:var(--radius-lg);border:1px solid var(--border);max-width:520px;box-shadow:var(--shadow);background:linear-gradient(145deg,#121920f5,#121920a6);gap:.8rem;padding:2rem;display:grid}.auth-page{grid-template-columns:minmax(280px,1fr) minmax(300px,500px);align-items:stretch;gap:1.2rem;min-height:100vh;padding:clamp(1.2rem,4vw,3rem);display:grid}.brand-pane,.auth-card{border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow);background:linear-gradient(160deg,#151f29fa,#151f2994)}.brand-pane{align-content:center;gap:1rem;padding:clamp(1.4rem,4vw,2.4rem);display:grid}.brand-chip{color:#d3fff7;letter-spacing:.08em;text-transform:uppercase;background:#2de1c21a;border:1px solid #2de1c280;border-radius:999px;width:fit-content;padding:.25rem .7rem;font-size:.78rem}.brand-pane h1{font-size:clamp(2rem,5vw,3.4rem);line-height:1.02}.brand-pane p,.subtitle,.sidebar small,.sidebar p,small{color:var(--muted)}.brand-stats{flex-wrap:wrap;gap:.8rem;display:flex}.brand-stats article{border:1px solid var(--border);background:#ffffff05;border-radius:10px;align-items:center;gap:.5rem;padding:.56rem .7rem;display:inline-flex}.auth-card{align-content:center;gap:.8rem;padding:clamp(1.2rem,4vw,2rem);display:grid}.dashboard-shell{grid-template-columns:minmax(260px,320px) 1fr;gap:1rem;min-height:100vh;padding:1rem;animation:.4s fadeIn;display:grid}.sidebar,.workspace{border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow);background:linear-gradient(160deg,#151f29f0,#151f299e)}.sidebar{flex-direction:column;align-self:start;gap:1rem;max-height:calc(100vh - 2rem);padding:1rem;display:flex;position:sticky;top:1rem}.sidebar-head{gap:.4rem;display:grid}.sidebar-user{margin:0;font-weight:700}.sidebar-section{flex:1;gap:.55rem;min-height:0;display:grid}.sidebar-section h3{font-size:1rem}.budget-list{gap:.45rem;min-height:0;max-height:none;margin:0;padding:0 .2rem 0 0;list-style:none;display:grid;overflow:auto}.budget-list-item{grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:.4rem;display:grid}.budget-pill{border:1px solid var(--border);width:100%;color:var(--text);text-align:left;cursor:pointer;background:#ffffff05;border-radius:12px;justify-content:space-between;align-items:center;gap:.8rem;padding:.6rem .7rem;display:flex}.budget-pill.active{background:linear-gradient(120deg,#2de1c240,#2de1c20d);border-color:#2de1c299}.budget-pill small{color:#cff9f2;font-weight:700}.budget-delete-btn{border:1px solid var(--border);border-radius:10px;justify-content:center;align-items:center;min-width:34px;height:34px;display:inline-flex}.sidebar-actions{border-top:1px dashed var(--border);gap:.75rem;margin-top:auto;padding-top:.75rem;display:grid}.mini-form{border-top:0;padding-top:0}.primary-btn.compact{width:fit-content}.sidebar-logout,.sidebar-toggle{justify-content:center;align-items:center;width:100%;display:inline-flex}.workspace{grid-template-rows:auto auto auto 1fr;gap:.9rem;padding:1rem;display:grid}.workspace-head{border-bottom:1px dashed var(--border);justify-content:space-between;align-items:flex-start;gap:1rem;padding-bottom:.9rem;display:flex}.workspace-head h1{font-size:clamp(1.2rem,3vw,2.2rem)}.workspace-head p{color:var(--muted);margin:.35rem 0 0}.head-badges{gap:.45rem;display:grid}.head-badges span{border:1px solid var(--border);color:var(--muted);border-radius:999px;align-items:center;gap:.35rem;padding:.35rem .65rem;font-size:.83rem;display:inline-flex}.head-actions{gap:.55rem;display:grid}.export-actions{flex-wrap:wrap;justify-content:flex-end;gap:.45rem;display:flex}.export-btn{align-items:center;gap:.4rem;font-size:.85rem;display:inline-flex}.tab-row{flex-wrap:wrap;gap:.4rem;display:flex}.tab-row button{border:1px solid var(--border);color:var(--muted);cursor:pointer;background:0 0;border-radius:999px;padding:.5rem .85rem}.tab-row button.active{color:#051012;background:var(--accent);border-color:#0000}.error-banner,.busy-banner{border-radius:10px;margin:0;padding:.7rem .8rem;font-size:.92rem}.error-banner{color:#ffd2d8;background:#ff6f7d17;border:1px solid #ff6f7d73}.busy-banner{color:#c3fff5;background:#2de1c217;border:1px solid #2de1c273}.panel-grid{gap:.9rem;display:grid}.stats-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:.8rem;display:grid}.metric-card,.surface-card{border:1px solid var(--border);border-radius:var(--radius-md);background:linear-gradient(160deg,#151f29f5,#151f29b3)}.metric-card{gap:.35rem;padding:1rem;display:grid;position:relative}.metric-card svg{color:var(--accent);position:absolute;top:.9rem;right:.9rem}.metric-label{color:var(--muted);text-transform:uppercase;letter-spacing:.08em;font-size:.8rem}.metric-card strong{font-size:1.5rem}.metric-card small{font-size:.83rem}.content-grid{gap:.9rem;display:grid}.content-grid.two-columns{grid-template-columns:repeat(2,minmax(0,1fr))}.content-grid.three-columns{grid-template-columns:repeat(3,minmax(0,1fr))}.surface-card{gap:.8rem;padding:.95rem;display:grid}.overview-list-card{align-content:start}.chart-card{min-height:320px}.chart-wrap{width:100%;height:100%}.surface-card header{justify-content:space-between;align-items:center;gap:.8rem;display:flex}.surface-card h3{font-size:1rem}.spaced-header{align-items:flex-start}.simple-list{gap:.55rem;margin:0;padding:0;list-style:none;display:grid}.simple-list li{background:#ffffff05;border:1px solid #c7e1ff1c;border-radius:11px;justify-content:space-between;align-items:center;gap:.75rem;padding:.55rem .65rem;display:flex}.simple-list p{margin:0}.simple-list small{font-size:.78rem}.simple-list.compact li{padding:.45rem .55rem}.is-income{color:var(--success)}.is-expense{color:var(--danger)}.pill-filter{border:1px solid var(--border);border-radius:999px;gap:.35rem;padding:.2rem;display:inline-flex}.pill-filter button{color:var(--muted);cursor:pointer;background:0 0;border:none;border-radius:999px;padding:.28rem .6rem}.pill-filter button.active{color:#e2fff9;background:#2de1c238}.transaction-tail,.plan-tail{align-items:center;gap:.5rem;display:inline-flex}.plan-tail select{width:auto}.category-columns{grid-template-columns:repeat(3,minmax(0,1fr));gap:.8rem;display:grid}.category-block{background:#ffffff05;border:1px solid #c7e1ff1a;border-radius:12px;gap:.5rem;padding:.7rem;display:grid}.category-block h4{font-size:.9rem}.default-pill,.role-pill,.goal-state{text-transform:uppercase;letter-spacing:.06em;border-radius:999px;padding:.15rem .5rem;font-size:.73rem}.default-pill{color:#ffd68c;border:1px solid #ffb40073;margin-left:.45rem}.role-pill{color:#befff4;border:1px solid #2de1c275}.role-pill.admin{color:#ffe1a8;border-color:#ffb40080}.admin-user-grid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));align-items:start;gap:.7rem;display:grid}.admin-user-card{background:#ffffff05;border:1px solid #c7e1ff1f;border-radius:12px;align-content:start;gap:.4rem;padding:.7rem;display:grid}.admin-user-card .ghost-btn{width:fit-content}.admin-user-head{justify-content:space-between;align-items:center;gap:.6rem;display:flex}.admin-user-head h4{font-size:1rem}.admin-user-email{color:var(--muted);word-break:break-word;margin:0;font-size:.9rem}.admin-user-edit-form{border-top:1px dashed #c7e1ff2e;margin-top:.35rem;padding-top:.6rem}.goal-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:.8rem;display:grid}.goal-card{background:#ffffff05;border:1px solid #c7e1ff1f;border-radius:12px;gap:.55rem;padding:.75rem;display:grid}.goal-top{justify-content:space-between;align-items:center;gap:.5rem;display:flex}.goal-top-actions{align-items:center;gap:.35rem;display:inline-flex}.goal-state.active{color:#cefff7;border:1px solid #2de1c273}.goal-state.paused{color:#ffdca0;border:1px solid #ffb40073}.goal-state.completed{color:#cafddf;border:1px solid #38db9173}.progress-track{background:#ffffff17;border-radius:999px;height:10px;overflow:hidden}.progress-track span{background:linear-gradient(120deg, var(--accent), #6ff7df);height:100%;display:block}.goal-contribution{grid-template-columns:1fr auto;gap:.5rem;display:grid}@keyframes fadeIn{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}@media (width<=1150px){.stats-grid,.content-grid.three-columns,.content-grid.two-columns,.goal-grid{grid-template-columns:1fr}.category-columns{grid-template-columns:1fr 1fr}}@media (width<=920px){.auth-page,.dashboard-shell{grid-template-columns:1fr;gap:.75rem;padding:.8rem}.sidebar{align-self:stretch;max-height:none;padding:.85rem;position:static;top:auto}.sidebar-section{flex:initial}.budget-list{max-height:220px}.sidebar-actions{margin-top:0}.sidebar.is-mobile-compact{gap:.7rem}.sidebar.is-mobile-compact .sidebar-section{flex:initial}.sidebar.is-mobile-compact .budget-list{max-height:none;padding-right:0;overflow:visible}.workspace-head{flex-direction:column;align-items:flex-start}.export-actions{justify-content:flex-start}}@media (width<=700px){.inline-grid,.goal-contribution,.category-columns{grid-template-columns:1fr}.auth-page{padding:.8rem}.brand-pane,.auth-card,.sidebar,.workspace{border-radius:16px}.budget-list{max-height:180px}.brand-pane{padding:1rem}.tab-row{flex-wrap:nowrap;padding-bottom:.25rem;overflow:auto}.tab-row button{white-space:nowrap}.head-badges{grid-template-columns:1fr;width:100%}.head-actions,.export-actions{width:100%}.export-btn{justify-content:center;width:100%}.simple-list li{flex-direction:column;align-items:flex-start}.transaction-tail,.plan-tail{justify-content:space-between;width:100%}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition:none!important;animation:none!important}}
