
:root {
  --bs-blue: #0d6efd;
  --bs-primary: #7b181b;
  --bs-primary-rgb: 123, 24, 27;
  --bs-secondary: #6c757d;
  --bs-success: #198754;
  --bs-info: #0dcaf0;
  --bs-warning: #d4a017;
  --bs-danger: #dc3545;
  --bs-light: #f8f9fa;
  --bs-dark: #132238;
  --bs-body-font-family: Inter, Arial, sans-serif;
  --bs-body-color: #212529;
  --bs-body-bg: #f8fafc;
  --bs-border-color: #e2e8f0;
}
*, ::after, ::before { box-sizing: border-box; }
body { margin: 0; font-family: var(--bs-body-font-family); font-size: 0.95rem; color: var(--bs-body-color); background-color: var(--bs-body-bg); line-height: 1.5; }
a { color: #7b181b; text-decoration: none; }
a:hover { color: #a32226; text-decoration: underline; }
img { vertical-align: middle; max-width: 100%; }
.container-fluid { width: 100%; padding: 0 1.5rem; margin: 0 auto; }
.row { display: flex; flex-wrap: wrap; margin-right: -0.75rem; margin-left: -0.75rem; }
.row > * { flex-shrink: 0; width: 100%; max-width: 100%; padding-right: 0.75rem; padding-left: 0.75rem; }
.col-12 { flex: 0 0 auto; width: 100%; }
.col-6 { flex: 0 0 auto; width: 50%; }
.col-md-6 { flex: 0 0 auto; width: 100%; }
@media (min-width: 768px) { .col-md-6 { width: 50%; } }
.col-xl-3 { flex: 0 0 auto; width: 50%; }
@media (min-width: 1200px) { .col-xl-3 { width: 25%; } }
.g-3 { --bs-gutter-x: 1rem; --bs-gutter-y: 1rem; }
.mb-3 { margin-bottom: 1rem !important; }
.mb-4 { margin-bottom: 1.5rem !important; }
.mt-3 { margin-top: 1rem !important; }
.mt-4 { margin-top: 1.5rem !important; }
.ms-2 { margin-left: 0.5rem !important; }
.ms-auto { margin-left: auto !important; }
.d-flex { display: flex !important; }
.justify-content-between { justify-content: space-between !important; }
.align-items-center { align-items: center !important; }
.gap-3 { gap: 1rem !important; }
.table-responsive { overflow-x: auto; -webkit-overflow-scrolling: touch; }
.table { width: 100%; margin-bottom: 1rem; vertical-align: top; border-color: var(--bs-border-color); border-collapse: collapse; }
.table th, .table td { padding: 0.75rem; border-bottom: 1px solid var(--bs-border-color); }
.table thead th { vertical-align: bottom; border-bottom: 2px solid var(--bs-border-color); font-size: 0.82rem; text-transform: uppercase; letter-spacing: 0.5px; color: #64748b; font-weight: 700; }
.table-hover tbody tr:hover { background-color: rgba(0,0,0,0.02); }
.form-control, .form-select { display: block; width: 100%; padding: 0.55rem 0.85rem; font-size: 0.95rem; font-weight: 400; line-height: 1.5; color: #212529; background-color: #fff; border: 1px solid #cbd5e1; border-radius: 0.5rem; transition: border-color .15s ease-in-out, box-shadow .15s ease-in-out; }
.form-control:focus, .form-select:focus { border-color: #7b181b; outline: 0; box-shadow: 0 0 0 0.25rem rgba(123, 24, 27, 0.15); }
.form-check { display: block; min-height: 1.5rem; padding-left: 1.75em; margin-bottom: 0.125rem; }
.form-check-input { float: left; margin-left: -1.75em; width: 1.2em; height: 1.2em; margin-top: 0.15em; border: 1px solid #cbd5e1; border-radius: 0.25em; cursor: pointer; }
.form-check-label { cursor: pointer; font-size: 0.95rem; }
.btn { display: inline-flex; align-items: center; justify-content: center; font-weight: 600; line-height: 1.5; color: #212529; text-align: center; text-decoration: none; vertical-align: middle; cursor: pointer; user-select: none; background-color: transparent; border: 1px solid transparent; padding: 0.5rem 1rem; font-size: 0.9rem; border-radius: 0.5rem; transition: all .15s ease-in-out; }
.btn-primary { color: #fff; background-color: #7b181b; border-color: #7b181b; }
.btn-primary:hover { color: #fff; background-color: #922023; border-color: #922023; text-decoration: none; }
.btn-sm { padding: 0.25rem 0.6rem; font-size: 0.8rem; border-radius: 0.375rem; }
.btn-outline-primary { color: #7b181b; border-color: #7b181b; }
.btn-outline-primary:hover { color: #fff; background-color: #7b181b; border-color: #7b181b; text-decoration: none; }
.btn-outline-secondary { color: #64748b; border-color: #cbd5e1; }
.btn-outline-secondary:hover { color: #1e293b; background-color: #f1f5f9; border-color: #94a3b8; text-decoration: none; }
.btn-outline-danger { color: #dc2626; border-color: #fca5a5; }
.btn-outline-danger:hover { color: #fff; background-color: #dc2626; border-color: #dc2626; text-decoration: none; }
.alert { position: relative; padding: 1rem 1.25rem; margin-bottom: 1rem; border: 1px solid transparent; border-radius: 0.5rem; font-size: 0.95rem; }
.alert-danger { color: #842029; background-color: #f8d7da; border-color: #f5c2c7; }
.alert-info { color: #055160; background-color: #cff4fc; border-color: #b6effb; }
.alert-warning { color: #664d03; background-color: #fff3cd; border-color: #ffecb5; }
.card { position: relative; display: flex; flex-direction: column; min-width: 0; word-wrap: break-word; background-color: #fff; background-clip: border-box; border: 1px solid #e2e8f0; border-radius: 0.75rem; box-shadow: 0 4px 12px rgba(0,0,0,0.03); }
.card-body { flex: 1 1 auto; padding: 1.25rem; }
.card-header { padding: 1rem 1.25rem; margin-bottom: 0; background-color: transparent; border-bottom: 1px solid #e2e8f0; }
.card-title { margin-bottom: 0; font-size: 1.15rem; font-weight: 700; color: #1e293b; }
.navbar { position: relative; display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; padding: 0.6rem 1rem; }
.shadow { box-shadow: 0 4px 20px rgba(0, 0, 0, 0.08) !important; }
.w-100 { width: 100% !important; }
.text-end { text-align: right !important; }
.text-muted { color: #64748b !important; }
