
/*!
 * Offline UI kit (Bootstrap-like subset)
 * Provides: container, row/col, cards, buttons, forms, table, badges, alerts, utilities.
 * Not full Bootstrap. Replace with official bootstrap dist if desired.
 */
:root{
  --bs-body-bg:#f8fafc;
  --bs-body-color:#0f172a;
  --bs-primary:#1f3a8a;
  --bs-success:#22c55e;
  --bs-warning:#f59e0b;
  --bs-danger:#ef4444;
  --bs-secondary:#64748b;
  --bs-border-color:#e2e8f0;
  --bs-card-bg:#fff;
  --bs-font-sans-serif: ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, Inter, Arial, sans-serif;
  --bs-border-radius: 1rem;
}
*{box-sizing:border-box}
body{margin:0;font-family:var(--bs-font-sans-serif);background:var(--bs-body-bg);color:var(--bs-body-color)}
a{color:inherit;text-decoration:none}
.container{max-width:1140px;margin:0 auto;padding:0 16px}
.container-fluid{width:100%;padding:0 16px}
.row{display:flex;flex-wrap:wrap;margin:-8px}
.row.g-3{margin:-12px}
.col-12{flex:0 0 100%;padding:8px}
.row.g-3 > [class^="col"]{padding:12px}
.col-md-6{flex:0 0 50%;padding:8px}
.col-lg-4{flex:0 0 33.333%;padding:8px}
.col-lg-5{flex:0 0 41.666%;padding:8px}
.col-lg-6{flex:0 0 50%;padding:8px}
.col-lg-7{flex:0 0 58.333%;padding:8px}
.col-lg-8{flex:0 0 66.666%;padding:8px}
.col-lg-12{flex:0 0 100%;padding:8px}
@media(max-width:992px){
  .col-md-6,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8{flex:0 0 100%}
}
.card{background:var(--bs-card-bg);border:1px solid var(--bs-border-color);border-radius:var(--bs-border-radius);overflow:hidden}
.card-header{padding:16px 18px;border-bottom:1px solid var(--bs-border-color);background:transparent}
.card-body{padding:18px}
.p-0{padding:0!important}
.p-3{padding:16px!important}
.p-4{padding:22px!important}
.mt-1{margin-top:6px!important}
.mt-2{margin-top:10px!important}
.mt-3{margin-top:16px!important}
.mt-4{margin-top:22px!important}
.mb-0{margin-bottom:0!important}
.mb-2{margin-bottom:10px!important}
.mb-3{margin-bottom:16px!important}
.gap-2{gap:10px}
.gap-3{gap:14px}
.d-flex{display:flex}
.d-grid{display:grid}
.flex-wrap{flex-wrap:wrap}
.align-items-center{align-items:center}
.justify-content-between{justify-content:space-between}
.text-center{text-align:center}
.text-end{text-align:right}
.w-100{width:100%}
.fw-bold{font-weight:800}
.fw-black{font-weight:1000}
.small{font-size:12px;color:var(--bs-secondary)}
.form-label{display:block;margin-bottom:6px}
.form-control,.form-select,textarea{
  width:100%;padding:12px 12px;border:1px solid var(--bs-border-color);
  border-radius:14px;background:#fff;font-size:14px;outline:none;
}
.form-control:focus,.form-select:focus,textarea:focus{border-color:rgba(31,58,138,.35);box-shadow:0 0 0 .2rem rgba(31,58,138,.12)}
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:10px;
  padding:11px 14px;border-radius:14px;border:1px solid transparent;
  font-weight:900;cursor:pointer;user-select:none
}
.btn-sm{padding:8px 10px;border-radius:12px;font-weight:900;font-size:13px}
.btn-primary{background:var(--bs-primary);color:#fff;border-color:var(--bs-primary)}
.btn-success{background:var(--bs-success);color:#fff;border-color:var(--bs-success)}
.btn-outline-secondary{background:transparent;border-color:rgba(15,23,42,.18);color:#0f172a}
.btn-outline-secondary:hover{background:rgba(15,23,42,.05)}
.btn-outline-light{background:transparent;border-color:rgba(255,255,255,.22);color:rgba(255,255,255,.86)}
.btn-outline-light:hover{background:rgba(255,255,255,.08)}
.badge{display:inline-flex;align-items:center;padding:8px 10px;border-radius:999px;font-weight:900;font-size:12px}
.text-bg-primary{background:rgba(31,58,138,.12);color:var(--bs-primary)}
.text-bg-success{background:rgba(34,197,94,.14);color:#166534}
.text-bg-warning{background:rgba(245,158,11,.16);color:#92400e}
.text-bg-secondary{background:rgba(100,116,139,.16);color:#334155}
.alert{padding:12px 14px;border-radius:14px;border:1px solid rgba(15,23,42,.12);background:rgba(15,23,42,.05)}
.alert-danger{border-color:rgba(239,68,68,.22);background:rgba(239,68,68,.10)}
.table-responsive{overflow:auto}
.table{width:100%;border-collapse:collapse}
.table th,.table td{padding:12px 14px;border-bottom:1px solid #eef2f7;text-align:left}
.table thead th{font-size:12px;text-transform:uppercase;letter-spacing:.04em;color:#475569}
.progress{background:rgba(15,23,42,.08);border-radius:999px;overflow:hidden}
.progress-bar{height:100%;background:var(--bs-primary)}
.border{border:1px solid var(--bs-border-color)!important}
.rounded-4{border-radius:18px!important}
