@import "https://fonts.googleapis.com/css2?family=Outfit:wght@400;600;700&family=Inter:wght@400;500;600&display=swap";
:root{--color-canvas:#f8fafc;--color-surface:#fff;--color-surface-raised:#f1f5f9;--color-border:#e2e8f0;--color-border-strong:#cbd5e1;--color-text-heading:#0f172a;--color-text-body:#334155;--color-text-muted:#64748b;--color-text-placeholder:#94a3b8;--color-primary:#4f46e5;--color-primary-hover:#4338ca;--color-primary-light:#eef2ff;--color-success:#16a34a;--color-success-light:#dcfce7;--color-warning:#d97706;--color-warning-light:#fef3c7;--color-danger:#dc2626;--color-danger-light:#fee2e2;--color-info:#0ea5e9;--color-info-light:#e0f2fe;--sidebar-width:240px;--sidebar-bg:#fff;--sidebar-border:#e2e8f0;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:20px;--space-6:24px;--space-8:32px;--space-10:40px;--space-12:48px;--font-display:"Outfit", sans-serif;--font-body:"Inter", sans-serif;--radius-sm:4px;--radius-md:8px;--radius-lg:12px;--radius-xl:16px;--radius-full:9999px;--shadow-sm:0 1px 2px 0 #0000000d;--shadow-md:0 1px 3px 0 #0000001a, 0 1px 2px -1px #0000001a;--shadow-lg:0 4px 6px -1px #0000001a, 0 2px 4px -2px #0000001a;--transition-fast:.1s ease;--transition-base:.15s ease;--transition-slow:.25s ease}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{-webkit-text-size-adjust:100%;height:100%;font-size:16px}body{font-family:var(--font-body);color:var(--color-text-body);background-color:var(--color-canvas);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;min-height:100%;font-size:.875rem;line-height:1.5}a{color:inherit;text-decoration:none}button{cursor:pointer;font-family:inherit}input,select,textarea{font-family:inherit}.text-display{font-family:var(--font-display);letter-spacing:-.02em;color:var(--color-text-heading);font-size:1.75rem;font-weight:700;line-height:1.2}.text-heading-lg{font-family:var(--font-display);color:var(--color-text-heading);font-size:1.25rem;font-weight:600;line-height:1.4}.text-heading-md{font-family:var(--font-display);color:var(--color-text-heading);font-size:1rem;font-weight:600}.text-label{letter-spacing:.05em;text-transform:uppercase;color:var(--color-text-muted);font-size:.75rem;font-weight:600}.text-body{color:var(--color-text-body);font-size:.875rem}.text-muted{color:var(--color-text-muted);font-size:.8125rem}.btn{align-items:center;gap:var(--space-2);border-radius:var(--radius-md);transition:background-color var(--transition-base), border-color var(--transition-base), box-shadow var(--transition-base), opacity var(--transition-base);white-space:nowrap;-webkit-user-select:none;user-select:none;border:1px solid #0000;padding:.5rem 1rem;font-size:.875rem;font-weight:500;line-height:1;display:inline-flex}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background-color:var(--color-primary);color:#fff;border-color:var(--color-primary)}.btn-primary:hover:not(:disabled){background-color:var(--color-primary-hover);border-color:var(--color-primary-hover)}.btn-secondary{background-color:var(--color-surface);color:var(--color-text-body);border-color:var(--color-border)}.btn-secondary:hover:not(:disabled){background-color:var(--color-surface-raised);border-color:var(--color-border-strong)}.btn-danger{background-color:var(--color-danger);color:#fff;border-color:var(--color-danger)}.btn-danger:hover:not(:disabled){background-color:#b91c1c}.btn-success{background-color:var(--color-success);color:#fff;border-color:var(--color-success)}.btn-success:hover:not(:disabled){background-color:#15803d}.btn-ghost{color:var(--color-text-muted);background-color:#0000;border-color:#0000}.btn-ghost:hover:not(:disabled){background-color:var(--color-surface-raised);color:var(--color-text-body)}.btn-sm{padding:.375rem .75rem;font-size:.8125rem}.btn-lg{padding:.75rem 1.5rem;font-size:1rem}.card{background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--space-6);box-shadow:var(--shadow-sm)}.card-title{font-family:var(--font-display);color:var(--color-text-heading);margin-bottom:var(--space-4);font-size:1rem;font-weight:600}.form-group{gap:var(--space-2);flex-direction:column;display:flex}.form-label{color:var(--color-text-heading);font-size:.875rem;font-weight:500}.form-input{border:1px solid var(--color-border);border-radius:var(--radius-md);width:100%;color:var(--color-text-body);background-color:var(--color-surface);transition:border-color var(--transition-base), box-shadow var(--transition-base);outline:none;padding:.625rem .875rem;font-size:.875rem}.form-input:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px #4f46e51f}.form-input::placeholder{color:var(--color-text-placeholder)}.badge{align-items:center;gap:var(--space-1);border-radius:var(--radius-full);letter-spacing:.02em;padding:.2rem .6rem;font-size:.75rem;font-weight:600;display:inline-flex}.badge-active{background:var(--color-success-light);color:var(--color-success)}.badge-inactive{background:var(--color-surface-raised);color:var(--color-text-muted)}.badge-deceased{color:#475569;background:#f1f5f9}.badge-pending{background:var(--color-warning-light);color:var(--color-warning)}.badge-approved{background:var(--color-success-light);color:var(--color-success)}.badge-rejected{background:var(--color-danger-light);color:var(--color-danger)}.badge-info{background:var(--color-info-light);color:var(--color-info)}.data-table{border-collapse:collapse;width:100%;font-size:.875rem}.data-table thead th{text-align:left;letter-spacing:.04em;text-transform:uppercase;color:var(--color-text-muted);background-color:var(--color-canvas);border-bottom:1px solid var(--color-border);white-space:nowrap;padding:.75rem 1rem;font-size:.75rem;font-weight:600}.data-table tbody tr{border-bottom:1px solid var(--color-border);transition:background-color var(--transition-fast)}.data-table tbody tr:last-child{border-bottom:none}.data-table tbody tr:hover{background-color:var(--color-canvas)}.data-table tbody td{color:var(--color-text-body);vertical-align:middle;padding:.875rem 1rem}.divider{background-color:var(--color-border);height:1px;margin:var(--space-4) 0}.stat-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--space-6);box-shadow:var(--shadow-sm);transition:box-shadow var(--transition-base), transform var(--transition-base)}.stat-card:hover{box-shadow:var(--shadow-md);transform:translateY(-1px)}.stat-card__label{text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-muted);margin-bottom:var(--space-2);font-size:.75rem;font-weight:600}.stat-card__value{font-family:var(--font-display);color:var(--color-text-heading);margin-bottom:var(--space-2);font-size:2rem;font-weight:700;line-height:1}.stat-card__icon{border-radius:var(--radius-md);width:40px;height:40px;margin-bottom:var(--space-4);justify-content:center;align-items:center;font-size:1.25rem;display:flex}.stat-card__icon--primary{background:var(--color-primary-light);color:var(--color-primary)}.stat-card__icon--success{background:var(--color-success-light);color:var(--color-success)}.stat-card__icon--warning{background:var(--color-warning-light);color:var(--color-warning)}.stat-card__icon--danger{background:var(--color-danger-light);color:var(--color-danger)}.page-header{justify-content:space-between;align-items:flex-start;gap:var(--space-4);margin-bottom:var(--space-8);flex-wrap:wrap;display:flex}.page-header__title{font-family:var(--font-display);color:var(--color-text-heading);font-size:1.5rem;font-weight:700;line-height:1.2}.page-header__subtitle{color:var(--color-text-muted);margin-top:var(--space-1);font-size:.875rem}.empty-state{padding:var(--space-12);text-align:center;color:var(--color-text-muted);justify-content:center;align-items:center;gap:var(--space-3);flex-direction:column;display:flex}.empty-state__icon{opacity:.4;font-size:2.5rem}.spinner{border:2px solid var(--color-border);border-top-color:var(--color-primary);border-radius:50%;width:20px;height:20px;animation:.6s linear infinite spin;display:inline-block}@keyframes spin{to{transform:rotate(360deg)}}.loading-screen{justify-content:center;align-items:center;gap:var(--space-3);height:200px;color:var(--color-text-muted);display:flex}.filters-bar{align-items:center;gap:var(--space-3);margin-bottom:var(--space-6);flex-wrap:wrap;display:flex}.modal-overlay{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:1000;padding:var(--space-6);background:#0f172a66;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal-panel{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-xl);box-shadow:var(--shadow-lg);width:100%;max-width:520px;animation:.2s modal-in;overflow:hidden}@keyframes modal-in{0%{opacity:0;transform:scale(.96)translateY(8px)}to{opacity:1;transform:scale(1)translateY(0)}}.modal-header{padding:var(--space-6);border-bottom:1px solid var(--color-border);justify-content:space-between;align-items:center;display:flex}.modal-body{padding:var(--space-6)}.modal-footer{padding:var(--space-4) var(--space-6);border-top:1px solid var(--color-border);justify-content:flex-end;align-items:center;gap:var(--space-3);background:var(--color-canvas);display:flex}.error-banner{padding:var(--space-3) var(--space-4);background-color:var(--color-danger-light);color:var(--color-danger);border-radius:var(--radius-md);border:1px solid #dc262633;font-size:.875rem}.toast{bottom:var(--space-6);right:var(--space-6);background:var(--color-text-heading);color:#fff;padding:var(--space-3) var(--space-5);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);z-index:9999;font-size:.875rem;animation:.3s toast-in;position:fixed}@keyframes toast-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@media (max-width:768px){.page-header{flex-direction:column}.data-table thead{display:none}.data-table tbody tr{border:1px solid var(--color-border);border-radius:var(--radius-md);margin-bottom:var(--space-3);display:block}.data-table tbody td{padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--color-border);justify-content:space-between;align-items:center;display:flex}.data-table tbody td:last-child{border-bottom:none}}
