/* ===========================================================
   bootstrap-mini.css — Remplacement allégé de Bootstrap 5.3
   Classes extraites de l'audit des templates EnjoyStation
   Poids : ~3KB au lieu de 158KB
   =========================================================== */

/* ── Layout : container / row / col ─────────────────────── */
.container { margin-left:auto; margin-right:auto; padding-left:.75rem; padding-right:.75rem; }
@media (min-width:576px) { .container { max-width:540px; } }
@media (min-width:768px) { .container { max-width:720px; } }
@media (min-width:992px) { .container { max-width:960px; } }
@media (min-width:1200px){ .container { max-width:1140px; } }
@media (min-width:1400px){ .container { max-width:1320px; } }

.row { display:flex; flex-wrap:wrap; margin-left:-.75rem; margin-right:-.75rem; }
.col-md-5  { flex:0 0 auto; width:41.66667%; padding-left:.75rem; padding-right:.75rem; }
.col-lg-5  { flex:0 0 auto; width:41.66667%; padding-left:.75rem; padding-right:.75rem; }
.col-lg-7  { flex:0 0 auto; width:58.33333%; padding-left:.75rem; padding-right:.75rem; }
.col-lg-8  { flex:0 0 auto; width:66.66667%; padding-left:.75rem; padding-right:.75rem; }
.g-3 { margin-left:-1rem; margin-right:-1rem; }
.g-3 > .col-lg-5, .g-3 > .col-lg-7 { padding-left:1rem; padding-right:1rem; }

/* ── Flexbox utilitaires ────────────────────────────────── */
.d-flex { display:flex !important; }
.d-grid { display:grid !important; }
.flex-wrap { flex-wrap:wrap !important; }
.align-items-center { align-items:center !important; }
.justify-content-center { justify-content:center !important; }
.justify-content-between { justify-content:space-between !important; }
.gap-1 { gap:.25rem !important; }
.gap-2 { gap:.5rem !important; }
.gap-3 { gap:1rem !important; }
.flex-column { flex-direction:column !important; }

/* ── Spacing ────────────────────────────────────────────── */
.mt-2 { margin-top:.5rem !important; }
.mt-3 { margin-top:1rem !important; }
.mt-5 { margin-top:3rem !important; }
.mb-3 { margin-bottom:1rem !important; }
.mb-4 { margin-bottom:1.5rem !important; }
.me-1 { margin-right:.25rem !important; }
.me-2 { margin-right:.5rem !important; }
.py-4 { padding-top:1.5rem !important; padding-bottom:1.5rem !important; }
.pb-5 { padding-bottom:3rem !important; }

/* ── Text / Width ───────────────────────────────────────── */
.text-center { text-align:center !important; }
.w-100 { width:100% !important; }
.shadow { box-shadow:0 .5rem 1rem rgba(0,0,0,.15) !important; }
.align-middle { vertical-align:middle !important; }

/* ── Buttons ────────────────────────────────────────────── */
.btn {
  display:inline-block; font-weight:400; line-height:1.5;
  text-align:center; vertical-align:middle; cursor:pointer;
  padding:.375rem .75rem; font-size:1rem; border-radius:.25rem;
  border:1px solid transparent; transition:all .15s;
  user-select:none; text-decoration:none;
}
.btn-sm { padding:.25rem .5rem; font-size:.875rem; border-radius:.2rem; }
.btn-lg { padding:.5rem 1rem; font-size:1.25rem; border-radius:.3rem; }
.btn-primary  { color:#fff; background:#0d6efd; border-color:#0d6efd; }
.btn-primary:hover { background:#0b5ed7; border-color:#0a58ca; }
.btn-secondary { color:#fff; background:#6c757d; border-color:#6c757d; }
.btn-secondary:hover { background:#5c636a; border-color:#565e64; }
.btn-danger   { color:#fff; background:#dc3545; border-color:#dc3545; }
.btn-danger:hover  { background:#bb2d3b; border-color:#b02a37; }
.btn-success  { color:#fff; background:#198754; border-color:#198754; }
.btn-success:hover { background:#157347; border-color:#146c43; }
.btn-warning  { color:#000; background:#ffc107; border-color:#ffc107; }
.btn-warning:hover { background:#ffca2c; border-color:#ffc720; }
.btn-outline-secondary { color:#6c757d; border-color:#6c757d; background:transparent; }
.btn-outline-secondary:hover { color:#fff; background:#6c757d; }
.btn-outline-success { color:#198754; border-color:#198754; background:transparent; }
.btn-outline-success:hover { color:#fff; background:#198754; }
.btn-outline-danger  { color:#dc3545; border-color:#dc3545; background:transparent; }
.btn-outline-danger:hover  { color:#fff; background:#dc3545; }
.btn-outline-info    { color:#0dcaf0; border-color:#0dcaf0; background:transparent; }
.btn-outline-info:hover    { color:#000; background:#0dcaf0; }

/* ── Cards ──────────────────────────────────────────────── */
.card { position:relative; display:flex; flex-direction:column; border:1px solid rgba(0,0,0,.125); border-radius:.375rem; background:#fff; }
.card-body { flex:1 1 auto; padding:1rem; }

/* ── Alerts ─────────────────────────────────────────────── */
.alert { position:relative; padding:1rem; margin-bottom:1rem; border:1px solid transparent; border-radius:.375rem; }
.alert-primary { color:#084298; background:#cfe2ff; border-color:#b6d4fe; }
.alert-secondary { color:#41464b; background:#e2e3e5; border-color:#d3d6d8; }
.alert-success { color:#0f5132; background:#d1e7dd; border-color:#badbcc; }
.alert-danger  { color:#842029; background:#f8d7da; border-color:#f5c2c7; }
.alert-warning { color:#664d03; background:#fff3cd; border-color:#ffecb5; }
.alert-info    { color:#055160; background:#cff4fc; border-color:#b6effb; }
.alert-dismissible { padding-right:3rem; }
.fade:not(.show) { opacity:0; }
.fade.show { opacity:1; transition:opacity .15s linear; }

/* ── Form ───────────────────────────────────────────────── */
.form-label { margin-bottom:.5rem; font-weight:500; }
.form-control {
  display:block; width:100%; padding:.375rem .75rem;
  font-size:1rem; line-height:1.5; color:#212529;
  background:#fff; border:1px solid #ced4da; border-radius:.25rem;
  transition:border-color .15s;
}
.form-control:focus { color:#212529; background:#fff; border-color:#86b7fe; outline:0; box-shadow:0 0 0 .25rem rgba(13,110,253,.25); }

/* ── Badges ─────────────────────────────────────────────── */
.badge { display:inline-block; padding:.35em .65em; font-size:.75em; font-weight:700; line-height:1; text-align:center; white-space:nowrap; border-radius:.375rem; vertical-align:baseline; }
.bg-danger { background:#dc3545 !important; }
.bg-warning { background:#ffc107 !important; }
.text-dark { color:#212529 !important; }
.bg-primary { background:#0d6efd !important; }
.bg-success { background:#198754 !important; }
.bg-info    { background:#0dcaf0 !important; }

/* ── Table ──────────────────────────────────────────────── */
.table { width:100%; margin-bottom:1rem; vertical-align:top; border-collapse:collapse; }
.table-dark { color:#fff; background:#212529; --bs-table-color:#fff; }
.table-dark td, .table-dark th { border-color:#373b3e; padding:.5rem; }
.table-hover tbody tr:hover { background:rgba(255,255,255,.075); }
.table-responsive { overflow-x:auto; }

/* ── Button group ───────────────────────────────────────── */
.btn-group { position:relative; display:inline-flex; vertical-align:middle; }
.btn-group > .btn:not(:last-child) { border-top-right-radius:0; border-bottom-right-radius:0; }
.btn-group > .btn:not(:first-child) { border-top-left-radius:0; border-bottom-left-radius:0; margin-left:-1px; }
.btn-group > .btn.active { z-index:1; }