:root {
    --ink-900: #0e1a3c;
    --ink-700: #172c68;
    --ink-600: #1d3fae;
    --ink-100: #dce5ff;
    --stamp: #6b2fa8;
    --paper: #f1f4f9;
    --surface: #ffffff;
    --surface-muted: #f8f9fc;
    --border: #e3e7ef;
    --text: #17213b;
    --text-muted: #667085;
    --paid: #0e7c5a;
    --due: #b7791f;
    --overdue: #c2313a;
    --focus: #2f61e8;
    --theme-accent: var(--ink-600);
    --theme-secondary: var(--stamp);
    --theme-surface: var(--surface-muted);
    --font-display: "Space Grotesk", sans-serif;
    --font-body: "Inter", sans-serif;
    --font-mono: "IBM Plex Mono", monospace;
    --font-urdu: "Noto Nastaliq Urdu", serif;
    --radius-sm: 6px;
    --radius: 10px;
    --radius-lg: 16px;
    --shadow-sm: 0 1px 2px rgb(14 26 60 / 6%);
    --shadow-card: 0 8px 24px rgb(14 26 60 / 8%);
    --sidebar-width: 264px;
    --topbar-height: 72px;
    --transition-fast: 150ms ease;
}

*, *::before, *::after { box-sizing: border-box; }
body { color: var(--text); background: var(--paper); font-family: var(--font-body); }
.public-body { background: linear-gradient(135deg, var(--theme-surface) 0, var(--paper) 34%, #fff 100%); }
h1, h2, h3, h4, h5, h6 { color: var(--ink-900); font-family: var(--font-display); font-weight: 700; }
.money, .numeric, time, .cnic-value { font-family: var(--font-mono); font-variant-numeric: tabular-nums; }
a { color: var(--theme-accent); }
:focus-visible { outline: 3px solid color-mix(in srgb, var(--focus) 42%, transparent); outline-offset: 2px; }
.btn-primary { --bs-btn-bg: var(--theme-accent); --bs-btn-border-color: var(--theme-accent); --bs-btn-hover-bg: var(--ink-700); --bs-btn-hover-border-color: var(--ink-700); }
.form-control, .form-select { border-color: var(--border); border-radius: var(--radius-sm); min-height: 44px; }
.form-control:focus, .form-select:focus { border-color: var(--theme-accent); box-shadow: 0 0 0 .2rem color-mix(in srgb, var(--theme-accent) 18%, transparent); }
.paper-card { background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius); box-shadow: var(--shadow-sm); padding: 1.5rem; transition: transform var(--transition-fast), box-shadow var(--transition-fast); }
.paper-card:hover { box-shadow: var(--shadow-card); transform: translateY(-2px); }
.status-stamp { border: 1px solid currentColor; border-radius: 999px; display: inline-flex; font-size: .72rem; font-weight: 700; letter-spacing: .04em; padding: .28rem .6rem; text-transform: uppercase; }
.status-paid { color: var(--paid); }.status-due { color: var(--due); }.status-overdue { color: var(--overdue); }
.status-badge { align-items: center; background: color-mix(in srgb, var(--status-color) 11%, #fff); border: 1px solid color-mix(in srgb, var(--status-color) 42%, #fff); border-radius: 999px; color: var(--status-color); display: inline-flex; font-size: .72rem; font-weight: 700; gap: .35rem; line-height: 1; padding: .38rem .65rem; white-space: nowrap; }
.status-badge i { font-size: .82rem; }
.status-badge--danger { background: color-mix(in srgb, var(--status-color) 13%, #fff); }
.cnic-grid { display: flex; flex-wrap: wrap; gap: 3px; }
.cnic-grid > span { align-items: center; border: 1px solid var(--ink-600); display: inline-flex; font-family: var(--font-mono); height: 2rem; justify-content: center; width: 1.5rem; }
.empty-state { align-items: center; display: flex; flex-direction: column; justify-content: center; min-height: 260px; text-align: center; }
.empty-state-icon { align-items: center; background: var(--ink-100); border-radius: 50%; color: var(--ink-600); display: flex; font-size: 1.5rem; height: 54px; justify-content: center; margin-bottom: 1rem; width: 54px; }
.skeleton { animation: shimmer 1.4s infinite linear; background: linear-gradient(90deg, var(--surface-muted) 25%, #eef1f7 50%, var(--surface-muted) 75%); background-size: 200% 100%; }
@keyframes shimmer { to { background-position-x: -200%; } }
@media (prefers-reduced-motion: reduce) { *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; scroll-behavior: auto !important; transition-duration: .01ms !important; } }
