@import "https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=JetBrains+Mono:wght@400;500&display=swap";:root,[data-theme=dark]{--color-bg:#0e0b09;--color-surface:#1c1612;--color-surface-2:#261e18;--color-elevated:#312620;--color-border:#3d2e24;--color-border-light:#4a3828;--color-accent:#c8914a;--color-accent-hover:#d9a45a;--color-accent-dim:#c8914a26;--color-text:#f0e6d8;--color-text-muted:#9a8472;--color-text-faint:#5a4a3a;--color-positive:#4caf76;--color-positive-dim:#4caf7626;--color-negative:#e05252;--color-negative-dim:#e0525226;--color-warning:#e09a3c;--color-warning-dim:#e09a3c26;--color-scrollbar:#3d2e24;--color-scrollbar-thumb:#5a4238}[data-theme=light]{--color-bg:#f0e8dc;--color-surface:#eae0d2;--color-surface-2:#e0d3c0;--color-elevated:#d8c9b0;--color-border:#c8b89a;--color-border-light:#b8a88a;--color-accent:#8b5e3c;--color-accent-hover:#7a4f2e;--color-accent-dim:#8b5e3c1f;--color-text:#1c1208;--color-text-muted:#6b5040;--color-text-faint:#a8907a;--color-positive:#2e7d52;--color-positive-dim:#2e7d521f;--color-negative:#c62828;--color-negative-dim:#c628281a;--color-warning:#b85c00;--color-warning-dim:#b85c001a;--color-scrollbar:#d8c9b0;--color-scrollbar-thumb:#c0a888}:root{--font-sans:"Inter", system-ui, -apple-system, sans-serif;--font-mono:"JetBrains Mono", "Fira Code", "Cascadia Code", "Consolas", monospace;--font-size-xs:.75rem;--font-size-sm:.875rem;--font-size-base:1rem;--font-size-lg:1.125rem;--font-size-xl:1.25rem;--font-size-2xl:1.5rem;--font-size-3xl:1.875rem;--font-size-4xl:2.25rem;--font-weight-normal:400;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--line-height-tight:1.25;--line-height-normal:1.5;--line-height-relaxed:1.75;--space-0:0;--space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-5:1.25rem;--space-6:1.5rem;--space-8:2rem;--space-10:2.5rem;--space-12:3rem;--space-16:4rem;--radius-sm:4px;--radius-md:8px;--radius-lg:12px;--radius-xl:16px;--radius-full:9999px;--shadow-sm:0 1px 2px #0000004d;--shadow-md:0 4px 12px #00000059;--shadow-lg:0 8px 24px #0006;--shadow-xl:0 16px 48px #00000080;--sidebar-width:240px;--sidebar-width-mobile:0px;--topbar-height:60px;--mobile-nav-height:64px;--transition-fast:.15s ease;--transition-normal:.25s ease;--transition-slow:.4s ease}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;font-size:16px}body{font-family:var(--font-sans);font-size:var(--font-size-base);font-weight:var(--font-weight-normal);line-height:var(--line-height-normal);color:var(--color-text);background-color:var(--color-bg);transition:background-color var(--transition-normal), color var(--transition-normal);min-height:100vh;overflow-x:hidden}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:var(--color-scrollbar)}::-webkit-scrollbar-thumb{background:var(--color-scrollbar-thumb);border-radius:var(--radius-full)}::-webkit-scrollbar-thumb:hover{background:var(--color-text-faint)}h1,h2,h3,h4,h5,h6{font-weight:var(--font-weight-semibold);line-height:var(--line-height-tight);color:var(--color-text)}h1{font-size:var(--font-size-3xl)}h2{font-size:var(--font-size-2xl)}h3{font-size:var(--font-size-xl)}h4{font-size:var(--font-size-lg)}h5{font-size:var(--font-size-base)}h6{font-size:var(--font-size-sm)}p{line-height:var(--line-height-relaxed)}a{color:var(--color-accent);transition:color var(--transition-fast);text-decoration:none}a:hover{color:var(--color-accent-hover)}:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px;border-radius:var(--radius-sm)}.mono{font-family:var(--font-mono);letter-spacing:-.01em;font-size:.95em}.text-positive{color:var(--color-positive)}.text-negative{color:var(--color-negative)}.text-warning{color:var(--color-warning)}.text-muted{color:var(--color-text-muted)}.text-accent{color:var(--color-accent)}.flex{display:flex}.flex-col{flex-direction:column}.items-center{align-items:center}.justify-between{justify-content:space-between}.gap-1{gap:var(--space-1)}.gap-2{gap:var(--space-2)}.gap-3{gap:var(--space-3)}.gap-4{gap:var(--space-4)}.gap-6{gap:var(--space-6)}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}#root{min-height:100vh;display:flex}.app-shell{width:100%;min-height:100vh;display:flex}.app-sidebar{width:var(--sidebar-width);z-index:100;flex-shrink:0;position:fixed;top:0;bottom:0;left:0;overflow-y:auto}.app-main{margin-left:var(--sidebar-width);flex-direction:column;flex:1;min-height:100vh;display:flex}.app-topbar{z-index:90;height:var(--topbar-height);position:sticky;top:0}.app-content{padding:var(--space-6);flex:1}@media (width<=768px){.app-sidebar{display:none}.app-main{padding-bottom:var(--mobile-nav-height);margin-left:0}.app-content{padding:var(--space-4)}}table{border-collapse:collapse;width:100%}th,td{text-align:left;padding:var(--space-3) var(--space-4)}th{font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);text-transform:uppercase;letter-spacing:.06em;color:var(--color-text-muted);border-bottom:1px solid var(--color-border)}@keyframes fadeIn{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes spin{to{transform:rotate(360deg)}}.fade-in{animation:fadeIn var(--transition-normal) ease both}.slide-up{animation:slideUp var(--transition-normal) ease both}@keyframes fadeInUp{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@keyframes scaleIn{0%{opacity:0;transform:scale(.96)}to{opacity:1;transform:scale(1)}}@keyframes pulseSubtle{0%,to{opacity:1;transform:scale(1)}50%{opacity:.85;transform:scale(1.05)}}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}.fade-in-up{animation:.4s cubic-bezier(.16,1,.3,1) forwards fadeInUp}.scale-in{animation:.3s cubic-bezier(.16,1,.3,1) forwards scaleIn}.stagger-1{animation-delay:50ms}.stagger-2{animation-delay:.1s}.stagger-3{animation-delay:.15s}.stagger-4{animation-delay:.2s}.card{transition:transform .25s cubic-bezier(.16,1,.3,1),box-shadow .25s cubic-bezier(.16,1,.3,1),border-color .25s!important}.card:hover{border-color:var(--color-border-light);box-shadow:var(--shadow-lg), 0 0 20px #c8914a0a;transform:translateY(-2px)}.btn{transition:transform .15s cubic-bezier(.16, 1, .3, 1), background-color var(--transition-fast), border-color var(--transition-fast), box-shadow var(--transition-fast)!important}.btn:active{transform:scale(.97)translateY(1px)}.input,.select{transition:border-color var(--transition-fast), box-shadow .2s cubic-bezier(.16, 1, .3, 1)!important}.input:focus,.select:focus{box-shadow:0 0 0 3px var(--color-accent-dim), 0 2px 8px #0000001a}.auth-screen{background:var(--color-bg);min-height:100vh;padding:var(--space-4);justify-content:center;align-items:center;display:flex;position:relative;overflow:hidden}.auth-bg-text{color:var(--color-surface);letter-spacing:-.05em;-webkit-user-select:none;user-select:none;pointer-events:none;opacity:.6;font-size:clamp(80px,18vw,200px);font-weight:800;line-height:1;position:absolute;bottom:-40px;right:-20px}.auth-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-xl);width:100%;max-width:420px;padding:var(--space-8);box-shadow:var(--shadow-xl);gap:var(--space-6);z-index:1;flex-direction:column;display:flex;position:relative}.auth-card:before{content:"";top:0;left:var(--space-8);right:var(--space-8);background:linear-gradient(90deg, transparent, var(--color-accent), transparent);border-radius:0 0 2px 2px;height:2px;position:absolute}.auth-logo{align-items:center;gap:var(--space-2);flex-direction:column;display:flex}.auth-logo-mark{background:var(--color-accent);border-radius:var(--radius-lg);color:#0e0b09;justify-content:center;align-items:center;width:56px;height:56px;display:flex;box-shadow:0 4px 16px #c8914a59}.auth-logo-name{font-size:var(--font-size-xl);font-weight:var(--font-weight-bold);color:var(--color-text)}.auth-logo-sub{font-size:var(--font-size-xs);color:var(--color-text-muted);letter-spacing:.06em;text-transform:uppercase}.auth-heading{text-align:center}.auth-title{font-size:var(--font-size-2xl);font-weight:var(--font-weight-bold);margin-bottom:var(--space-1)}.auth-subtitle{font-size:var(--font-size-sm);color:var(--color-text-muted)}.auth-error{align-items:flex-start;gap:var(--space-2);padding:var(--space-3) var(--space-4);background:var(--color-negative-dim);border-radius:var(--radius-md);font-size:var(--font-size-sm);color:var(--color-negative);line-height:var(--line-height-normal);border:1px solid #e052524d;display:flex}.auth-fields{gap:var(--space-4);margin-bottom:var(--space-4);flex-direction:column;display:flex}.auth-input-wrapper{position:relative}.auth-input-icon{left:var(--space-3);color:var(--color-text-muted);pointer-events:none;position:absolute;top:50%;transform:translateY(-50%)}.auth-input{padding-left:calc(var(--space-3) + 15px + var(--space-2))}.auth-submit{width:100%;padding:var(--space-3) var(--space-4);font-size:var(--font-size-base);font-weight:var(--font-weight-semibold);letter-spacing:.01em;justify-content:center}.auth-divider{align-items:center;gap:var(--space-3);margin:var(--space-2) 0;color:var(--color-text-muted);font-size:var(--font-size-xs);text-transform:uppercase;letter-spacing:.06em;display:flex}.auth-divider:before,.auth-divider:after{content:"";background:var(--color-border);flex:1;height:1px}.auth-google-btn{width:100%;padding:var(--space-3) var(--space-4);background:var(--color-surface-2);border:1px solid var(--color-border);color:var(--color-text);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);transition:all var(--transition-fast);justify-content:center}.auth-google-btn:hover{background:var(--color-elevated);border-color:var(--color-border-light)}.auth-switch{text-align:center;font-size:var(--font-size-sm);color:var(--color-text-muted)}.auth-link{color:var(--color-accent);font-weight:var(--font-weight-medium);text-decoration:none}.auth-link:hover{color:var(--color-accent-hover);text-decoration:underline}.auth-loading{justify-content:center;align-items:center;gap:var(--space-4);background:var(--color-bg);min-height:100vh;color:var(--color-text-muted);font-size:var(--font-size-sm);flex-direction:column;display:flex}.card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--space-6);transition:border-color var(--transition-fast)}.card-sm{padding:var(--space-4)}.card-hover:hover{border-color:var(--color-border-light);box-shadow:var(--shadow-sm)}.btn{align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-4);border-radius:var(--radius-md);font-family:var(--font-sans);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);cursor:pointer;transition:all var(--transition-fast);white-space:nowrap;-webkit-user-select:none;user-select:none;border:1px solid #0000;line-height:1;display:inline-flex}.btn:disabled{opacity:.45;cursor:not-allowed;pointer-events:none}.btn-sm{padding:var(--space-1) var(--space-3);font-size:var(--font-size-xs)}.btn-lg{padding:var(--space-3) var(--space-6);font-size:var(--font-size-base)}.btn-icon{padding:var(--space-2)}.btn-primary{background:var(--color-accent);color:#0e0b09;border-color:var(--color-accent)}.btn-primary:hover{background:var(--color-accent-hover);border-color:var(--color-accent-hover)}.btn-secondary{background:var(--color-surface-2);color:var(--color-text);border-color:var(--color-border)}.btn-secondary:hover{background:var(--color-elevated);border-color:var(--color-border-light)}.btn-ghost{color:var(--color-text-muted);background:0 0;border-color:#0000}.btn-ghost:hover{background:var(--color-surface-2);color:var(--color-text)}.btn-danger{background:var(--color-negative-dim);color:var(--color-negative);border-color:#e052524d}.btn-danger:hover{background:var(--color-negative);color:#fff}.form-group{gap:var(--space-1);flex-direction:column;display:flex}.form-label{font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-text-muted)}.form-label .required{color:var(--color-negative);margin-left:2px}.input,.select{width:100%;padding:var(--space-2) var(--space-3);background:var(--color-surface-2);border:1px solid var(--color-border);border-radius:var(--radius-md);font-family:var(--font-sans);font-size:var(--font-size-sm);color:var(--color-text);transition:border-color var(--transition-fast), box-shadow var(--transition-fast);appearance:none}.input:focus,.select:focus{border-color:var(--color-accent);box-shadow:0 0 0 3px var(--color-accent-dim);outline:none}.input::placeholder{color:var(--color-text-faint)}.input.error{border-color:var(--color-negative)}.input.error:focus{box-shadow:0 0 0 3px var(--color-negative-dim)}.form-error{font-size:var(--font-size-xs);color:var(--color-negative)}.form-hint{font-size:var(--font-size-xs);color:var(--color-text-muted)}.select-wrapper{position:relative}.select-wrapper:after{content:"";right:var(--space-3);border-left:4px solid #0000;border-right:4px solid #0000;border-top:5px solid var(--color-text-muted);pointer-events:none;width:0;height:0;position:absolute;top:50%;transform:translateY(-50%)}.select{padding-right:var(--space-8);cursor:pointer}.select option{background:var(--color-elevated)}.badge{align-items:center;gap:var(--space-1);padding:2px var(--space-2);border-radius:var(--radius-full);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);white-space:nowrap;display:inline-flex}.badge-positive{background:var(--color-positive-dim);color:var(--color-positive)}.badge-negative{background:var(--color-negative-dim);color:var(--color-negative)}.badge-warning{background:var(--color-warning-dim);color:var(--color-warning)}.badge-neutral{background:var(--color-surface-2);color:var(--color-text-muted);border:1px solid var(--color-border)}.badge-accent{background:var(--color-accent-dim);color:var(--color-accent)}.modal-overlay{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:1000;padding:var(--space-4);animation:fadeIn var(--transition-fast) ease;background:#000000b3;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal{background:var(--color-elevated);border:1px solid var(--color-border-light);border-radius:var(--radius-xl);box-shadow:var(--shadow-xl);width:100%;max-width:520px;max-height:90vh;animation:slideUp var(--transition-normal) ease;overflow-y:auto}.modal-header{padding:var(--space-5) var(--space-6);border-bottom:1px solid var(--color-border);justify-content:space-between;align-items:center;display:flex}.modal-title{font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold)}.modal-body{padding:var(--space-6);gap:var(--space-4);flex-direction:column;display:flex}.modal-footer{justify-content:flex-end;gap:var(--space-3);padding:var(--space-4) var(--space-6);border-top:1px solid var(--color-border);display:flex}.toast-container{bottom:var(--space-6);right:var(--space-6);z-index:2000;gap:var(--space-2);flex-direction:column;max-width:360px;display:flex;position:fixed}.toast{align-items:flex-start;gap:var(--space-3);padding:var(--space-3) var(--space-4);background:var(--color-elevated);border:1px solid var(--color-border-light);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);animation:slideUp var(--transition-normal) ease;font-size:var(--font-size-sm);display:flex}.toast-success{border-left:3px solid var(--color-positive)}.toast-error{border-left:3px solid var(--color-negative)}.toast-info{border-left:3px solid var(--color-accent)}.toast-warning{border-left:3px solid var(--color-warning)}.empty-state{justify-content:center;align-items:center;gap:var(--space-4);padding:var(--space-12) var(--space-8);text-align:center;color:var(--color-text-muted);flex-direction:column;display:flex}.empty-state-icon{opacity:.4;width:56px;height:56px}.empty-state-title{font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);color:var(--color-text)}.empty-state-desc{font-size:var(--font-size-sm);max-width:320px}.sidebar{background:var(--color-surface);border-right:1px solid var(--color-border);flex-direction:column;height:100%;display:flex}.sidebar-logo{padding:var(--space-5) var(--space-5);border-bottom:1px solid var(--color-border);align-items:center;gap:var(--space-3);display:flex}.sidebar-logo-mark{background:var(--color-accent);border-radius:var(--radius-md);width:36px;height:36px;font-size:var(--font-size-lg);color:#0e0b09;font-weight:var(--font-weight-bold);flex-shrink:0;justify-content:center;align-items:center;display:flex}.sidebar-logo-text{font-size:var(--font-size-base);font-weight:var(--font-weight-semibold);color:var(--color-text)}.sidebar-logo-sub{font-size:var(--font-size-xs);color:var(--color-text-muted)}.sidebar-nav{padding:var(--space-4) var(--space-3);gap:var(--space-1);flex-direction:column;flex:1;display:flex}.nav-section-label{font-size:10px;font-weight:var(--font-weight-semibold);letter-spacing:.08em;text-transform:uppercase;color:var(--color-text-faint);padding:var(--space-3) var(--space-3) var(--space-1)}.nav-item{align-items:center;gap:var(--space-3);padding:var(--space-2) var(--space-3);border-radius:var(--radius-md);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-text-muted);cursor:pointer;transition:all var(--transition-fast);border:1px solid #0000;text-decoration:none;display:flex}.nav-item:hover{background:var(--color-surface-2);color:var(--color-text)}.nav-item.active{background:var(--color-accent-dim);color:var(--color-accent);border-color:#c8914a33}.nav-item svg{flex-shrink:0;width:18px;height:18px}.sidebar-footer{padding:var(--space-4);border-top:1px solid var(--color-border)}.topbar{height:var(--topbar-height);background:var(--color-surface);border-bottom:1px solid var(--color-border);padding:0 var(--space-6);justify-content:space-between;align-items:center;gap:var(--space-4);display:flex}.topbar-title{font-size:var(--font-size-xl);font-weight:var(--font-weight-semibold)}.topbar-actions{align-items:center;gap:var(--space-2);display:flex}.mobile-nav{height:var(--mobile-nav-height);background:var(--color-surface);border-top:1px solid var(--color-border);z-index:100;padding:0 var(--space-2);display:none;position:fixed;bottom:0;left:0;right:0}@media (width<=768px){.mobile-nav{display:flex}}.mobile-nav-item{padding:var(--space-2);cursor:pointer;color:var(--color-text-muted);font-size:10px;font-weight:var(--font-weight-medium);border-radius:var(--radius-md);transition:all var(--transition-fast);flex-direction:column;flex:1;justify-content:center;align-items:center;gap:3px;text-decoration:none;display:flex}.mobile-nav-item.active{color:var(--color-accent)}.mobile-nav-item svg{width:22px;height:22px}.summary-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--space-5);gap:var(--space-3);transition:border-color var(--transition-fast), transform .25s cubic-bezier(.16, 1, .3, 1), box-shadow .25s cubic-bezier(.16, 1, .3, 1);flex-direction:column;display:flex}.summary-card:hover{border-color:var(--color-border-light);box-shadow:var(--shadow-lg), 0 0 24px #c8914a0f;transform:translateY(-3px)}.summary-card:hover .summary-card-icon{transition:transform .3s cubic-bezier(.175,.885,.32,1.275);transform:scale(1.12)rotate(4deg)}.summary-card-label{font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);text-transform:uppercase;letter-spacing:.06em;color:var(--color-text-muted);align-items:center;gap:var(--space-2);display:flex}.summary-card-value{font-family:var(--font-mono);font-size:var(--font-size-3xl);font-weight:var(--font-weight-bold);color:var(--color-text);line-height:1}.summary-card-trend{font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);align-items:center;gap:var(--space-1);display:flex}.budget-bar{gap:var(--space-2);flex-direction:column;display:flex}.budget-bar-header{justify-content:space-between;align-items:baseline;display:flex}.budget-bar-name{font-size:var(--font-size-sm);font-weight:var(--font-weight-medium)}.budget-bar-amounts{font-family:var(--font-mono);font-size:var(--font-size-xs);color:var(--color-text-muted)}.budget-bar-track{background:var(--color-surface-2);border-radius:var(--radius-full);height:8px;overflow:hidden}.budget-bar-fill{border-radius:var(--radius-full);height:100%;transition:width .8s cubic-bezier(.16,1,.3,1),background-color .3s}.goal-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--space-5);gap:var(--space-3);flex-direction:column;transition:transform .25s cubic-bezier(.16,1,.3,1),border-color .25s,box-shadow .25s;display:flex}.goal-card:hover{border-color:var(--color-border-light);box-shadow:var(--shadow-lg), 0 0 20px #4caf760f;transform:translateY(-3px)}.goal-card-header{justify-content:space-between;align-items:flex-start;display:flex}.goal-card-name{font-size:var(--font-size-base);font-weight:var(--font-weight-semibold)}.goal-card-amounts{font-family:var(--font-mono);font-size:var(--font-size-sm);justify-content:space-between;display:flex}.goal-card-current{color:var(--color-text);font-weight:var(--font-weight-semibold)}.goal-card-target{color:var(--color-text-muted)}.tx-row{align-items:center;gap:var(--space-4);padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);cursor:default;grid-template-columns:auto 1fr auto auto;transition:background .2s,transform .2s cubic-bezier(.16,1,.3,1);display:grid}.tx-row:hover{background:var(--color-surface-2);transform:translate(4px)}.tx-icon{border-radius:var(--radius-md);background:var(--color-surface-2);flex-shrink:0;justify-content:center;align-items:center;width:36px;height:36px;transition:transform .2s;display:flex}.tx-row:hover .tx-icon{transform:scale(1.08)}.tx-info{min-width:0}.tx-desc{font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);truncate:ellipsis;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.tx-meta{font-size:var(--font-size-xs);color:var(--color-text-muted);gap:var(--space-2);align-items:center;display:flex}.tx-amount{font-family:var(--font-mono);font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);text-align:right;white-space:nowrap}.tx-actions{gap:var(--space-1);opacity:0;transition:opacity var(--transition-fast);display:flex}.tx-row:hover .tx-actions{opacity:1}.theme-toggle{background:var(--color-surface-2);border:1px solid var(--color-border);border-radius:var(--radius-full);cursor:pointer;width:44px;height:24px;transition:background var(--transition-fast), border-color var(--transition-fast);align-items:center;padding:2px;display:flex}.theme-toggle-thumb{border-radius:var(--radius-full);background:var(--color-accent);width:18px;height:18px;transition:transform var(--transition-fast);flex-shrink:0}[data-theme=light] .theme-toggle-thumb{transform:translate(20px)}.page-header{justify-content:space-between;align-items:flex-start;gap:var(--space-4);margin-bottom:var(--space-6);flex-wrap:wrap;display:flex}.page-title{font-size:var(--font-size-2xl);font-weight:var(--font-weight-bold)}.page-subtitle{font-size:var(--font-size-sm);color:var(--color-text-muted);margin-top:var(--space-1)}.page-actions{align-items:center;gap:var(--space-3);flex-wrap:wrap;display:flex}.grid-4{gap:var(--space-4);grid-template-columns:repeat(4,1fr);display:grid}.grid-3{gap:var(--space-4);grid-template-columns:repeat(3,1fr);display:grid}.grid-2{gap:var(--space-4);grid-template-columns:repeat(2,1fr);display:grid}.grid-2-1{gap:var(--space-4);grid-template-columns:2fr 1fr;display:grid}@media (width<=1200px){.grid-4{grid-template-columns:repeat(2,1fr)}}@media (width<=900px){.grid-3{grid-template-columns:repeat(2,1fr)}.grid-2-1{grid-template-columns:1fr}}@media (width<=640px){.grid-4,.grid-3,.grid-2{grid-template-columns:1fr}}.divider{background:var(--color-border);height:1px;margin:var(--space-4) 0}.spinner{border:2px solid var(--color-border);border-top-color:var(--color-accent);border-radius:50%;width:24px;height:24px;animation:.8s linear infinite spin}.filter-bar{align-items:center;gap:var(--space-3);margin-bottom:var(--space-4);flex-wrap:wrap;display:flex}.filter-bar .input,.filter-bar .select{width:auto;min-width:140px}.progress-track{background:var(--color-surface-2);border-radius:var(--radius-full);height:6px;overflow:hidden}.progress-fill{border-radius:var(--radius-full);background:var(--color-accent);height:100%;transition:width .5s}.segmented{background:var(--color-surface-2);border:1px solid var(--color-border);border-radius:var(--radius-md);gap:2px;padding:2px;display:inline-flex}.segmented-btn{padding:var(--space-1) var(--space-3);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-text-muted);cursor:pointer;transition:all var(--transition-fast);font-family:var(--font-sans);background:0 0;border:none;border-radius:5px}.segmented-btn.active{background:var(--color-elevated);color:var(--color-text);box-shadow:var(--shadow-sm)}.segmented-btn:hover:not(.active){color:var(--color-text)}.data-table-wrapper{border:1px solid var(--color-border);border-radius:var(--radius-lg);overflow-x:auto}.data-table{border-collapse:collapse;width:100%}.data-table th{background:var(--color-surface-2);z-index:1;position:sticky;top:0}.data-table td{border-bottom:1px solid var(--color-border);font-size:var(--font-size-sm)}.data-table tr:last-child td{border-bottom:none}.data-table tbody tr:hover{background:var(--color-surface-2)}.data-table .numeric{font-family:var(--font-mono);text-align:right}.color-dot{border-radius:50%;flex-shrink:0;width:10px;height:10px}.account-icon{border-radius:var(--radius-md);width:40px;height:40px;font-size:var(--font-size-lg);flex-shrink:0;justify-content:center;align-items:center;display:flex}[title]{cursor:help}
