/* Art direction: finance dashboard → calm, modern, trustworthy
Palette: neutral with teal accent
Typography: Satoshi + sans fallback
Density: balanced */
:root,[data-theme="light"]{--text-xs:.78rem;--text-sm:.95rem;--text-base:1rem;--text-lg:1.3rem;--text-xl:1.8rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-5:1.25rem;--space-6:1.5rem;--space-8:2rem;--color-bg:#f7f6f2;--color-surface:#f9f8f5;--color-surface-2:#fbfbf9;--color-surface-offset:#f3f0ec;--color-text:#28251d;--color-text-muted:#6f6b63;--color-border:rgba(40,37,29,.12);--color-primary:#01696f;--color-primary-2:#006494;--color-success:#437a22;--color-error:#a12c7b;--radius-md:.75rem;--radius-lg:1rem;--radius-xl:1.25rem;--shadow-sm:0 1px 2px rgba(0,0,0,.06);--shadow-md:0 8px 24px rgba(0,0,0,.08);--font-body:'Satoshi','Inter',sans-serif}
[data-theme="dark"]{--color-bg:#171614;--color-surface:#1c1b19;--color-surface-2:#201f1d;--color-surface-offset:#22211f;--color-text:#ece8e2;--color-text-muted:#a79f95;--color-border:rgba(255,255,255,.1);--color-primary:#4f98a3;--color-primary-2:#5591c7;--color-success:#6daa45;--color-error:#d163a7;--shadow-sm:0 1px 2px rgba(0,0,0,.2);--shadow-md:0 8px 24px rgba(0,0,0,.28)}
*{box-sizing:border-box}html,body{margin:0;padding:0}body{font-family:var(--font-body);font-size:var(--text-base);background:var(--color-bg);color:var(--color-text)}a{color:var(--color-primary);text-decoration:none}img,svg{max-width:100%;display:block}button,input,textarea,select{font:inherit}.skip-link{position:absolute;left:-999px}.skip-link:focus{left:1rem;top:1rem;background:#fff;padding:.5rem}.app-shell{display:grid;grid-template-columns:1fr;min-height:100vh}.sidebar{display:none}.main-content{padding:1rem 1rem 5rem}.topbar{display:flex;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1rem}.topbar h1{margin:0;font-size:var(--text-xl)}.topbar p{margin:.2rem 0 0;color:var(--color-text-muted)}.theme-toggle,.btn{min-height:44px;border:none;border-radius:var(--radius-md);padding:.75rem 1rem;cursor:pointer}.theme-toggle{background:var(--color-surface-2);color:var(--color-text)}.btn{display:inline-flex;align-items:center;justify-content:center;background:var(--color-surface-2);color:var(--color-text)}.btn-primary{background:var(--color-primary);color:#fff}.card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-xl);padding:1rem;box-shadow:var(--shadow-sm)}.auth-card{max-width:460px;margin:4rem auto}.form-grid{display:grid;gap:.9rem}.form-grid input,.form-grid textarea,.form-grid select{width:100%;padding:.8rem 1rem;border-radius:var(--radius-md);border:1px solid var(--color-border);background:var(--color-surface-2);color:var(--color-text)}.grid{display:grid;gap:1rem}.cards-4{grid-template-columns:1fr}.charts-2{grid-template-columns:1fr}.metric span{display:block;color:var(--color-text-muted);font-size:var(--text-sm)}.metric strong{font-size:1.8rem}.list{display:grid;gap:.8rem}.list-item{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.8rem;border-radius:var(--radius-md);background:var(--color-surface-2)}.list-item p{margin:.2rem 0 0;color:var(--color-text-muted);font-size:var(--text-sm)}.goal-block{display:grid;gap:.6rem}.progress{height:.7rem;background:var(--color-surface-offset);border-radius:999px;overflow:hidden}.progress span{display:block;height:100%;background:linear-gradient(90deg,var(--color-primary),var(--color-primary-2))}.alert{padding:.9rem 1rem;border-radius:var(--radius-md);margin-bottom:1rem}.alert.error{background:rgba(161,44,123,.12);color:var(--color-error)}.alert.success{background:rgba(67,122,34,.12);color:var(--color-success)}.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse}th,td{text-align:left;padding:.85rem;border-bottom:1px solid var(--color-border);white-space:nowrap}.brand{display:flex;align-items:center;gap:.8rem;margin-bottom:1rem}.brand-mark{width:2.5rem;height:2.5rem;border-radius:.9rem;background:linear-gradient(135deg,var(--color-primary),var(--color-primary-2));color:#fff;padding:.55rem}.nav-links{display:grid;gap:.5rem}.nav-links a{padding:.8rem 1rem;border-radius:var(--radius-md);background:var(--color-surface-2);color:var(--color-text)}.top-actions{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:1rem}.muted{color:var(--color-text-muted)}
@media (min-width: 980px){.app-shell{grid-template-columns:260px 1fr}.sidebar{display:block;padding:1rem;border-right:1px solid var(--color-border);background:var(--color-surface)}.main-content{padding:1.5rem}.cards-4{grid-template-columns:repeat(4,1fr)}.charts-2{grid-template-columns:repeat(2,1fr)}}

.mobile-nav{position:fixed;left:0;right:0;bottom:0;display:grid;grid-template-columns:repeat(5,1fr);gap:.35rem;padding:.6rem .75rem calc(.6rem + env(safe-area-inset-bottom));background:rgba(249,248,245,.96);backdrop-filter:blur(14px);border-top:1px solid var(--color-border);z-index:50}.mobile-nav a{min-height:44px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-md);background:var(--color-surface-2);color:var(--color-text);font-size:var(--text-sm);font-weight:700}.mobile-nav a:hover,.mobile-nav a:focus-visible{background:var(--color-primary);color:#fff}.alert{margin-bottom:1rem;padding:.85rem 1rem;border-radius:var(--radius-md)}.alert.error{background:rgba(161,44,123,.12);color:var(--color-error)}.alert.success{background:rgba(67,122,34,.12);color:var(--color-success)}@media (min-width:980px){.mobile-nav{display:none}}
