:root {
  --bs-blue: #206bc4;
  --bs-indigo: #4263eb;
  --bs-purple: #7048e8;
  --bs-pink: #d63384;
  --bs-red: #d63939;
  --bs-orange: #f76707;
  --bs-yellow: #f59f00;
  --bs-green: #2fb344;
  --bs-teal: #12b886;
  --bs-cyan: #17a2b8;
  --bs-white: #fff;
  --bs-gray-100: #f8f9fa;
  --bs-gray-200: #e9ecef;
  --bs-gray-300: #dee2e6;
  --bs-gray-400: #ced4da;
  --bs-gray-500: #adb5bd;
  --bs-gray-600: #6c757d;
  --bs-gray-700: #495057;
  --bs-gray-800: #343a40;
  --bs-gray-900: #212529;
  --bs-primary: #206bc4;
  --bs-secondary: #6c757d;
  --bs-success: #2fb344;
  --bs-info: #17a2b8;
  --bs-warning: #f59f00;
  --bs-danger: #d63939;
  --bs-light: #f8f9fa;
  --bs-dark: #212529;
  --bs-body-font-family: Inter, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --bs-body-font-size: 1rem;
  --bs-body-line-height: 1.5;
  --bs-body-color: #1f2937;
  --bs-body-bg: #f5f7fb;
  --bs-border-color: #e6eaf2;
  --bs-border-radius: 0.5rem;
  --bs-border-radius-sm: 0.375rem;
  --bs-border-radius-lg: 0.75rem;
  --bs-box-shadow-sm: 0 .125rem .25rem rgba(32,43,64,.06);
  --bs-box-shadow: 0 .5rem 1.25rem rgba(32,43,64,.08);
}
*,*::before,*::after{box-sizing:border-box}
html,body{margin:0;padding:0}
body{font-family:var(--bs-body-font-family);font-size:var(--bs-body-font-size);line-height:var(--bs-body-line-height);color:var(--bs-body-color);background:var(--bs-body-bg)}
a{color:var(--bs-primary);text-decoration:none}
a:hover{text-decoration:underline}
img{max-width:100%;height:auto;display:block}
.container,.container-wide{width:100%;margin-inline:auto;padding-inline:1rem}
@media(min-width:768px){.container,.container-wide{padding-inline:1.5rem}}
@media(min-width:1200px){.container,.container-wide{padding-inline:2rem}}
.card{background:#fff;border:1px solid var(--bs-border-color);border-radius:var(--bs-border-radius-lg);box-shadow:var(--bs-box-shadow-sm)}
.alert{padding:.875rem 1rem;border-radius:var(--bs-border-radius);border:1px solid transparent}
.alert-success{background:#e8f8eb;border-color:#c6efcd;color:#1f7a2f}
.alert-error,.alert-danger{background:#fdecec;border-color:#f8c9c9;color:#9f2a2a}
.alert-warning{background:#fff4db;border-color:#ffe2a8;color:#8a5a00}
.alert-info{background:#eaf4ff;border-color:#cde3ff;color:#0b4f9f}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.4rem;border:1px solid transparent;border-radius:.5rem;padding:.55rem .9rem;font-weight:600;cursor:pointer;transition:.2s}
.btn-primary{background:var(--bs-primary);color:#fff}
.btn-primary:hover{filter:brightness(.96)}
.btn-outline{background:#fff;border-color:var(--bs-border-color);color:#111827}
.btn-ghost{background:transparent;border-color:transparent;color:#4b5563}
.form-control,.form-select,textarea,input[type=text],input[type=email],input[type=password],input[type=number],input[type=search],input[type=file],select{width:100%;padding:.6rem .75rem;border:1px solid #d9dfeb;border-radius:.5rem;background:#fff;color:#111827}
.form-control:focus,.form-select:focus,textarea:focus,input:focus,select:focus{outline:0;border-color:#8db8ec;box-shadow:0 0 0 .2rem rgba(32,107,196,.12)}
.table{width:100%;border-collapse:collapse}
.table th,.table td{padding:.7rem .75rem;border-bottom:1px solid #edf1f7;text-align:left}
.badge{display:inline-flex;align-items:center;padding:.25rem .55rem;border-radius:999px;font-size:.75rem;font-weight:700;background:#eef2ff;color:#2b4fab}
.row{display:flex;flex-wrap:wrap;gap:1rem}
.col{flex:1 1 0}
.d-flex{display:flex}.align-items-center{align-items:center}.justify-content-between{justify-content:space-between}
.gap-2{gap:.5rem}.gap-3{gap:1rem}.mt-3{margin-top:1rem}.mb-3{margin-bottom:1rem}
.text-muted{color:#6b7280}
