/* Minimal Bootstrap-lite grid and utilities to avoid CDN slowness.
   Covers container, row/col, spacing, flex utilities, and basic buttons. */
:root{--bs-gap:.75rem}
.container{max-width:1200px;margin-left:auto;margin-right:auto;padding-left:1rem;padding-right:1rem}
.row{display:flex;flex-wrap:wrap;margin-left:calc(-1*var(--bs-gap));margin-right:calc(-1*var(--bs-gap))}
.row>*{padding-left:var(--bs-gap);padding-right:var(--bs-gap)}
.col-12{flex:0 0 100%;max-width:100%}
@media (min-width:768px){.col-md-6{flex:0 0 50%;max-width:50%}}
.mb-3{margin-bottom:1rem}

/* Flex and alignment */
.d-flex{display:flex}
.flex-wrap{flex-wrap:wrap}
.flex-nowrap{flex-wrap:nowrap}
.justify-content-between{justify-content:space-between}
.justify-content-center{justify-content:center}
.align-items-center{align-items:center}
.gap-2{gap:.5rem}
.gap-3{gap:1rem}

/* Display helpers */
.d-none{display:none!important}
.d-block{display:block!important}

/* Basic buttons (lightweight) */
.btn{display:inline-block;font-size:.875rem;line-height:1.4;padding:.375rem .75rem;border:1px solid #d1d5db;border-radius:.5rem;background:#fff;color:#111827;text-decoration:none;cursor:pointer;transition:background .15s ease,border-color .15s ease}
.btn:hover{background:#f3f4f6}
.btn-sm{padding:.25rem .5rem;font-size:.8125rem}
.btn-primary{background:#2563eb;border-color:#2563eb;color:#fff}
.btn-primary:hover{background:#1e40af;border-color:#1e40af}
.btn-outline-secondary{background:transparent;border-color:#9ca3af;color:#374151}
.btn-outline-secondary:hover{background:#f3f4f6}
.btn-outline-success{background:transparent;border-color:#10b981;color:#065f46}
.btn-outline-success:hover{background:#ecfdf5}

/* Badge */
.badge{display:inline-block;padding:.25rem .5rem;border-radius:999px;font-size:.75rem;line-height:1}
.bg-secondary{background:#e5e7eb;color:#374151}

/* Forms */
.form-control,.form-select{display:block;width:100%;padding:.375rem .75rem;font-size:.875rem;line-height:1.4;color:#111827;background-color:#fff;border:1px solid #d1d5db;border-radius:.5rem}
.form-select{appearance:none}

/* Table helpers (light touch) */
.table{width:100%;border-collapse:collapse}
.table-hover tbody tr:hover{background:#f9fafb}
.table-sm th,.table-sm td{padding:.25rem .5rem}
.align-middle td,.align-middle th{vertical-align:middle}
.text-start{text-align:left}
.text-end{text-align:right}

/* Navbar toggler (icon-less, minimal) */
.navbar{position:sticky;top:0;z-index:1000}
.navbar-toggler{padding:.25rem .5rem;border:1px solid #d1d5db;border-radius:.5rem;background:#fff}
.navbar-brand{font-weight:600}

/* Toast basics (no JS dependency) */
.toast{border-radius:.5rem;box-shadow:0 8px 24px rgba(0,0,0,.12);padding:.5rem 0}
.btn-close{border:0;background:transparent;opacity:.8;width:.75rem;height:.75rem}
.btn-close:hover{opacity:1}