/************************************************************
 * STRUCTURE PRINCIPALE
 ************************************************************/

* {
  scroll-behavior: smooth;
}

body {
  min-height: 100vh;
  position: relative;
  padding-top: 90px; /* ajusté en JS selon la hauteur du header */
  background-color: var(--bs-gray-100);
  transition: padding-top 250ms ease-out;
}

.main-footer {
  z-index: 500;
}

/************************************************************
 * CLASSES UTILES
 ************************************************************/

/**
 * Boutons
 */

.btn-group-actions {
  display: flex;
  justify-content: center;
  align-items: center;
}
.page-actions {
  margin: 1rem auto;
  justify-content: space-between;
}
.btn-group-actions .btn {
  margin-left: 1rem;
}
.btn-group-actions .btn:first-child {
  margin-left: 0;
}

.btn {
  text-transform: uppercase;
  display: inline-flex;
  justify-content: center;
  align-items: center;
}

.no-btn {
  background-color: #fff;
  border-color: #fff;
}

/**
 * Bouton : icône
 */

.btn-icon {
  border-radius: 50% !important;
  font-size: 14px;
  width: 28px;
  height: 28px;
  padding: 0;
}

/**
 * Curseur
 */

.cursor-help {
  cursor: help;
}

.cursor-move,
.handle {
  cursor: move;
}

.cursor-pointer,
[data-bs-toggle="popover"] {
  cursor: pointer;
}

/**
 * Formulaire
 */

.form-group.required .control-label:after {
  content: "*";
  color: var(--bs-red);
  font-weight: bold;
}

.form-hint {
  text-align: right;
  font-size: 0.8em;
  color: var(--bs-gray);
  margin-bottom: 0;
}

/**
 * Lien
 */

a .fa,
a:hover .fa,
a:active .fa,
a:visited .fa,
a:link .fa {
  color: initial;
  text-decoration: none;
}

/**
 * Liste
 */

.list-style-folder {
  list-style-image: url("../img/icons/folder-solid.svg");
}
.list-style-tree {
  list-style: none;
}
.list-style-tree li::before {
  content: "\02514";
  margin-right: 0.5rem;
  color: var(--bs-gray);
}

/**
 * Table
 */

table.align-middle th,
table.align-middle td {
  vertical-align: middle;
}

/**
 * Typographie
 */

.page-title {
  color: var(--bs-gray-dark);
  margin: 1.5rem 0;
  font-size: 1.75rem;
  text-transform: uppercase;
}

/************************************************************
 * HEADER
 ************************************************************/

/**
 * Titre
 */

.navbar-brand {
  font-weight: 700;
}
.navbar-nav a.nav-link {
  font-weight: 500;
}

/**
 * Recherche
 */

.nav-search #search {
  color: var(--bs-white);
  background-color: var(--bs-dark);
  border-color: var(--bs-gray-700);
  border-right-width: 0;
}
.nav-search #search:focus {
  color: var(--bs-dark);
  background-color: var(--bs-light);
  border-color: var(--bs-grey);
}
.nav-search [type="submit"] {
  border-color: var(--bs-gray-700);
  border-left-color: transparent;
  background-color: var(--bs-dark);
  color: var(--bs-gray-400);
  border-left-width: 0;
}
.nav-search [type="submit"]:active,
.nav-search [type="submit"]:focus,
.nav-search [type="submit"]:hover {
  color: var(--bs-light);
}
.nav-search #search::placeholder {
  color: var(--bs-gray-500);
}
.navbar .form-control:focus {
  box-shadow: 0 0 0 0.2rem rgba(var(--bs-secondary-rgb), 0.5);
}

/************************************************************
 * FOOTER
 ************************************************************/

.back-to-top {
  display: none;
  position: fixed;
  bottom: 25px;
  right: 25px;
  z-index: 10000;
}

.main-footer {
  color: rgba(255, 255, 255, 0.55);
}

.main-footer .btn-help {
  color: var(--bs-gray-500);
  flex-direction: column;
  padding: 0.1rem 0.75rem;
}
.main-footer .btn-help:active,
.main-footer .btn-help:focus,
.main-footer .btn-help:hover {
  color: var(--bs-light);
}
.main-footer .btn-help:active,
.main-footer .btn-help:focus {
  box-shadow: 0 0 0 0.25rem rgba(var(--bs-secondary-rgb), 0.5);
}

/************************************************************
 * PAGES
 ************************************************************/
