/* "Fiscal Precision" design system — matches the Stitch-generated screens
   (executive_dashboard, collect_payment, member_profile_details, etc.) */

.material-symbols-outlined {
  font-variation-settings: 'FILL' 0, 'wght' 400, 'GRAD' 0, 'opsz' 24;
  font-size: 22px; vertical-align: middle;
}
.material-symbols-outlined.fill-icon { font-variation-settings: 'FILL' 1, 'wght' 500, 'GRAD' 0, 'opsz' 24; }

.font-mono-data, .money { font-variant-numeric: tabular-nums; font-family: 'Geist', sans-serif; }

.kpi-card { transition: transform .15s ease, box-shadow .15s ease; }
.kpi-card:hover { transform: translateY(-2px); box-shadow: 0 8px 20px rgba(0,0,0,.06); }

.badge { display:inline-flex; align-items:center; padding:3px 12px; border-radius:9999px; font-size:11px; font-weight:700; letter-spacing:.02em; text-transform:uppercase; }
.badge-active   { background:#d1fae5; color:#047857; }
.badge-upcoming { background:#dbeafe; color:#1d4ed8; }
.badge-completed{ background:#e2e1f0; color:#444657; }
.badge-cancelled{ background:#ffdad6; color:#93000a; }
.badge-paid     { background:#d1fae5; color:#047857; }
.badge-partial  { background:#fef3c7; color:#b45309; }
.badge-pending  { background:#e2e1f0; color:#444657; }
.badge-overdue  { background:#ffdad6; color:#93000a; }

table.data-table { border-collapse: collapse; }
table.data-table th {
  text-align:left; font-family:'Geist',sans-serif; font-size:12px; font-weight:600;
  text-transform:uppercase; letter-spacing:.05em; color:#444657; padding:12px 16px;
  border-bottom:1px solid #c4c5da; background:#f4f2ff;
}
table.data-table td { padding:0 16px; height:48px; border-bottom:1px solid #edecfb; font-size:14px; color:#1a1b25; }
table.data-table tr:hover td { background:#f4f2ff; }

/* Card container used across list/dashboard pages */
.card { background:#ffffff; border:1px solid #c4c5da; border-radius:0.75rem; box-shadow:0 1px 3px rgba(0,0,0,.06); }

input, select, textarea {
  font-family: 'Inter', sans-serif;
}
input:focus, select:focus, textarea:focus {
  outline: none;
  border-color: #0028c2 !important;
  box-shadow: 0 0 0 2px rgba(0,40,194,0.15);
}
