:root{--bg: #f0f1f4;--surface: #ffffff;--surface-elevated: #fafbfc;--text: #16181d;--text-muted: #6b7280;--border: #e8eaef;--accent: #3d4f5f;--accent-soft: rgba(61, 79, 95, .12);--income: #1d7a4c;--income-soft: rgba(29, 122, 76, .1);--expense: #b45309;--expense-soft: rgba(180, 83, 9, .1);--net: #2563eb;--net-soft: rgba(37, 99, 235, .1);--radius: 12px;--radius-sm: 8px;--shadow: 0 1px 2px rgba(22, 24, 29, .04), 0 4px 16px rgba(22, 24, 29, .06);--font: "DM Sans", system-ui, sans-serif}*,*:before,*:after{box-sizing:border-box}html{font-size:15px;-webkit-font-smoothing:antialiased}body{margin:0;min-height:100vh;font-family:var(--font);background:var(--bg);color:var(--text);line-height:1.5}#root{min-height:100vh}a{color:var(--accent);text-decoration:none;font-weight:500}a:hover{text-decoration:underline}button{font-family:inherit;cursor:pointer}input,select,textarea{font-family:inherit;font-size:1rem}.app-shell{min-height:100vh;display:flex;flex-direction:column}.app-main{flex:1;width:100%;max-width:1200px;margin:0 auto;padding:1.5rem 1.25rem 3rem}@media (min-width: 768px){.app-main{padding:2rem 2rem 4rem}}.page-title{font-size:1.5rem;font-weight:600;letter-spacing:-.02em;margin:0 0 .25rem}.page-sub{color:var(--text-muted);font-size:.95rem;margin:0 0 1.75rem}.card{background:var(--surface);border-radius:var(--radius);border:1px solid var(--border);box-shadow:var(--shadow);padding:1.25rem 1.35rem}.card-title{font-size:.8125rem;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted);margin:0 0 1rem}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;padding:.65rem 1.1rem;border-radius:var(--radius-sm);font-weight:600;font-size:.9375rem;border:none;transition:background .15s ease,transform .1s ease}.btn:active{transform:scale(.98)}.btn-primary{background:var(--accent);color:#fff}.btn-primary:hover{background:#2f3d4a}.btn-ghost{background:transparent;color:var(--text-muted);border:1px solid var(--border)}.btn-ghost:hover{background:var(--surface-elevated);color:var(--text)}.form-group{margin-bottom:1rem}.form-group label{display:block;font-size:.8125rem;font-weight:500;color:var(--text-muted);margin-bottom:.35rem}.form-group input,.form-group select{width:100%;padding:.65rem .85rem;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);color:var(--text)}.form-group input:focus,.form-group select:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.alert-error{padding:.75rem 1rem;border-radius:var(--radius-sm);background:#fef2f2;color:#991b1b;font-size:.875rem;margin-bottom:1rem}.grid-stats{display:grid;gap:1rem;grid-template-columns:1fr}@media (min-width: 640px){.grid-stats{grid-template-columns:repeat(3,1fr)}}.grid-charts{display:grid;gap:1.25rem;margin-top:1.25rem}@media (min-width: 900px){.grid-charts{grid-template-columns:1.4fr 1fr;align-items:stretch}}.muted-hint{font-size:.875rem;color:var(--text-muted);padding:1.5rem;text-align:center;background:var(--surface-elevated);border-radius:var(--radius-sm);border:1px dashed var(--border)}.table-wrap{overflow-x:auto}table.data{width:100%;border-collapse:collapse;font-size:.875rem}table.data th{text-align:left;font-weight:600;color:var(--text-muted);font-size:.75rem;text-transform:uppercase;letter-spacing:.04em;padding:.6rem .75rem;border-bottom:1px solid var(--border)}table.data td{padding:.75rem;border-bottom:1px solid var(--border)}table.data tr:last-child td{border-bottom:none}.badge{display:inline-block;padding:.2rem .5rem;border-radius:4px;font-size:.75rem;font-weight:600;text-transform:capitalize}.badge-income{background:var(--income-soft);color:var(--income)}.badge-expense{background:var(--expense-soft);color:var(--expense)}@media (max-width: 639px){.hide-sm{display:none!important}}
