html {
  font-size: 14px;
}

@media (min-width: 768px) {
  html {
    font-size: 16px;
  }
}

/* Tablet paysage / desktop compact : réduire la navbar (992px–1199px) */
/* En dessous de 992px la navbar est collapsée (burger), ce CSS ne s'applique plus */
@media (min-width: 992px) and (max-width: 1199.98px) {
  .navbar .nav-link,
  .navbar .navbar-brand {
    font-size: 13px;
  }
  .navbar .nav-link {
    padding-left: 0.4rem;
    padding-right: 0.4rem;
  }
  .navbar .dropdown-item {
    font-size: 13px;
    padding-top: 0.25rem;
    padding-bottom: 0.25rem;
  }
}

/* Touch targets tablette (min 44px) */
.navbar-nav .nav-link,
.navbar-nav .dropdown-item {
  min-height: 44px;
  display: flex;
  align-items: center;
}

.btn:focus, .btn:active:focus, .btn-link.nav-link:focus, .form-control:focus, .form-check-input:focus {
  box-shadow: 0 0 0 0.1rem white, 0 0 0 0.25rem #258cfb;
}

html {
  position: relative;
  min-height: 100%;
}

:root {
  --bw-font-size-compact: 12px;
  --bw-line-height-compact: 1.1;
  --bw-line-height-heading: 1.15;
  --bw-heading-weight: 600;
  --bw-table-cell-padding-y: 0.3rem;
  --bw-btn-padding-y: 0.2rem;
  --bw-page-bg-light: #f4f6f8;
}

body {
  margin-bottom: 60px;
}

html:not([data-bs-theme="dark"]) body,
[data-bs-theme="light"] body {
  background-color: var(--bw-page-bg-light);
}

html:not([data-bs-theme="dark"]),
[data-bs-theme="light"] {
  --bs-body-bg: var(--bw-page-bg-light);
}

.form-floating > .form-control-plaintext::placeholder, .form-floating > .form-control::placeholder {
  color: var(--bs-secondary-color);
  text-align: end;
}

.form-floating > .form-control-plaintext:focus::placeholder, .form-floating > .form-control:focus::placeholder {
  text-align: start;
}

.bw-compact-page,
.bw-compact-page .table,
.bw-compact-page .btn,
.bw-compact-page .alert,
.bw-compact-page .badge,
.bw-compact-page .form-control,
.bw-compact-page .form-select,
.bw-compact-page p,
.bw-compact-page label,
.bw-compact-page th,
.bw-compact-page td {
  font-size: var(--bw-font-size-compact);
}

.bw-compact-page h1,
.bw-compact-page h2 {
  font-size: var(--bw-font-size-compact);
  line-height: var(--bw-line-height-heading);
}

.bw-compact-page .btn {
  line-height: var(--bw-line-height-compact);
  padding-top: var(--bw-btn-padding-y);
  padding-bottom: var(--bw-btn-padding-y);
}

.bw-compact-page p,
.bw-compact-page th,
.bw-compact-page td,
.bw-compact-page .alert {
  line-height: var(--bw-line-height-compact);
}

.bw-compact-page .table > :not(caption) > * > * {
  padding-top: var(--bw-table-cell-padding-y);
  padding-bottom: var(--bw-table-cell-padding-y);
}

/* ===========================================
   Dark Mode — BourseWeb (Bootstrap 5.3)
   =========================================== */

/* Navbar : fond bg-white hardcodé */
[data-bs-theme="dark"] .navbar.bg-white {
  background-color: var(--bs-body-bg) !important;
}
[data-bs-theme="dark"] .navbar.border-bottom {
  border-color: var(--bs-border-color) !important;
}
[data-bs-theme="dark"] .navbar.shadow-sm {
  box-shadow: 0 .125rem .25rem rgba(0, 0, 0, .5) !important;
}

/* Liens navbar avec text-dark hardcodé */
[data-bs-theme="dark"] .navbar .text-dark,
[data-bs-theme="dark"] .navbar .nav-link.text-dark,
[data-bs-theme="dark"] .navbar-brand {
  color: var(--bs-body-color) !important;
}
[data-bs-theme="dark"] .navbar .nav-link:hover,
[data-bs-theme="dark"] .navbar .nav-link:focus {
  color: var(--bs-emphasis-color) !important;
}

/* Hamburger toggler en dark mode */
[data-bs-theme="dark"] .navbar-light .navbar-toggler-icon {
  filter: invert(1) grayscale(1);
}
[data-bs-theme="dark"] .navbar-light .navbar-toggler {
  border-color: var(--bs-border-color);
}

/* Utilitaires bg-white / bg-light */
[data-bs-theme="dark"] .bg-white {
  background-color: var(--bs-body-bg) !important;
}
[data-bs-theme="dark"] .bg-light {
  background-color: var(--bs-secondary-bg) !important;
}

/* Tableaux : table-light dans les thead */
[data-bs-theme="dark"] .table-light {
  --bs-table-bg: var(--bs-secondary-bg);
  --bs-table-striped-bg: var(--bs-tertiary-bg);
  --bs-table-active-bg: var(--bs-tertiary-bg);
  --bs-table-hover-bg: var(--bs-tertiary-bg);
  color: var(--bs-body-color);
  border-color: var(--bs-border-color);
}

/* Blocs pre/code (logs FMP) */
[data-bs-theme="dark"] pre.bg-light,
[data-bs-theme="dark"] pre.border {
  background-color: var(--bs-secondary-bg) !important;
  color: var(--bs-body-color);
  border-color: var(--bs-border-color) !important;
}

/* Texte muted */
[data-bs-theme="dark"] .text-muted {
  color: var(--bs-secondary-color) !important;
}

/* text-dark générique (hors navbar traité au-dessus) */
[data-bs-theme="dark"] .text-dark {
  color: var(--bs-body-color) !important;
}