*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--sidebar-width: 240px;--header-height: 60px}body{font-family:var(--font-body);background:var(--color-background);color:var(--color-textDark);line-height:1.5;-webkit-font-smoothing:antialiased}h1,h2,h3,h4,h5,h6{font-family:var(--font-headings);color:var(--color-headerBg)}a{color:var(--color-primary);text-decoration:none}a:hover{text-decoration:underline}button{font-family:var(--font-body);cursor:pointer}input,select{font-family:var(--font-body)}.card{background:var(--color-surface);border-radius:8px;padding:20px;box-shadow:0 1px 3px #00000014}.btn{display:inline-flex;align-items:center;gap:8px;padding:8px 16px;border:none;border-radius:6px;font-size:14px;font-weight:600;transition:opacity .2s}.btn:hover{opacity:.9}.btn-primary{background:var(--color-primary);color:#fff}.btn-secondary{background:var(--color-secondary);color:#fff}.btn-outline{background:transparent;border:1px solid var(--color-text);color:var(--color-textDark)}.btn-sm{padding:4px 10px;font-size:12px}.btn-danger{background:var(--color-error);color:#fff}table{width:100%;border-collapse:collapse}table th{font-family:var(--font-headings);font-size:12px;text-transform:uppercase;letter-spacing:.5px;color:var(--color-text);padding:10px 12px;text-align:left;border-bottom:2px solid #eee}table td{padding:8px 12px;border-bottom:1px solid #f0f0f0;font-size:13px}table tr:hover{background:#fafafa}.text-right{text-align:right}.text-center{text-align:center}.amount{font-variant-numeric:tabular-nums}.positive{color:var(--color-success)}.negative{color:var(--color-error)}
