/* Variables globales (pour toute l'app) */

:root {

  /* Palette */
  --white: #ffffff;
  --background-grey: #f7f7f7;
  --background-light-grey: #fafafa;
  --beige: #efe8e1;
  --light-grey: #eaeaea;
  --grey: #8e8e8e;
  --dark-grey: #515151;
  --medium-grey: #d0d0d0;
  --blue-primary: #0d2366;
  --blue-secondary: #294088;
  --blue-tertiary: #425fb8;
  --blue-menu: #6BD8FF;
  --blue-button: #02bcff;
  --blue: #45ace8;
  --red: #ff4d52;
  --pink: #e625b3;
  --orange: #ffa82e;
  --light-green: #7fd948;
  --dark-green: #03cec2;
  --card-bg: #ffffff;
  --card-radius: 18px;
  --bs-card-border-width: 0px;
  --bs-card-border-color: transparent;
  --bs-body-color: var(--blue-primary);
  --bs-heading-color: var(--blue-primary);
}

/* Style global de l'application */
body {
  overflow-x: hidden !important;
  margin: 0;
  background-color: var(--beige);
  color: var(--blue-primary);
  font-size: 18px;
  line-height: 1.4;

  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;

  font-feature-settings: "liga" 1, "kern" 1;
  font-variant-ligatures: common-ligatures;
  font-kerning: normal;

  text-shadow: none !important;
}

/* Carte principale */
.card,
.bslib-card,
.card.bslib-card {
  background: var(--card-bg) !important;
  outline: 0 !important;
  box-shadow: none !important;
  border: none !important;
  border-radius: var(--card-radius) !important;
  overflow: hidden !important;
  background-clip: padding-box !important;
}

/* La sidebar layout est aussi un .card : pas de border sur son wrapper */
.bslib-sidebar-layout {
  border: none !important;
  border-radius: 0 !important;
  background: transparent !important;
}

/* 4) Les sous-parties de card portent parfois un border (header/body/footer) */
.card-header,
.card-body,
.card-footer,
.bslib-card .card-header,
.bslib-card .card-body,
.bslib-card .card-footer {
  outline: 0 !important;
}

/* Titres bslib (card simple + toutes variantes navset_card_*) */
.card-header,
.card-header * {
  font-size: 18px !important;
  font-weight: 700 !important;
  background-color: #f7f7f7 !important;
  color: #0d2366 !important;
  letter-spacing: 0.03em !important;
}

/* Les pills de navigation dans le card-header ne doivent pas être en majuscules */
.card-header .nav-link {
  text-transform: none !important;
  font-weight: 500 !important;
  font-size: 14px !important;
  color: var(--blue-primary) !important;
}

/* Pill active : fond bleu, texte blanc */
.card-header .nav-pills .nav-link.active {
  background-color: var(--blue-primary) !important;
  color: #ffffff !important;
}

/* 5) Cas fréquents : classes bootstrap border-* */
.card.border,
.card.border-0,
.card[class*="border-"] {
  border: 0 !important;
}


/* Module Marteau : navset_card_pill personnalisé (> pour ne pas affecter les navset imbriqués) */
.navset-marteau > .card-header .nav-link {
  font-size: 18px !important;
}

.navset-marteau > .card-header .nav-pills .nav-link.active {
  background-color: var(--blue-button) !important;
  color: #ffffff !important;
}

/* DataTable : texte plus petit */
.dataTables_wrapper,
table.dataTable {
  font-size: 13px !important;
}

/* En-têtes un peu plus lisibles */
table.dataTable thead th {
  font-size: 13px !important;
  font-weight: 700 !important;
}

/* Champ Search / boutons / pagination */
.dataTables_wrapper .dataTables_filter,
.dataTables_wrapper .dataTables_length,
.dataTables_wrapper .dataTables_info,
.dataTables_wrapper .dataTables_paginate,
.dataTables_wrapper .dt-buttons .btn {
  font-size: 13px !important;
}

/* IMPORTANT : neutraliser le style natif DataTables Buttons */
.dataTables_wrapper .dt-buttons .btn {
  background: transparent !important;
  color: var(--blue-secondary) !important;
  border: 1px solid var(--blue-secondary) !important;
  border-radius: 999px !important;
  padding: 6px 14px !important;
  font-weight: 500;
  box-shadow: none !important;
}

/* Titres de niveau h3 */
h3, .h3 {
  font-family: 'Outfit', sans-serif !important;
  font-size: 18px !important;
  font-weight: 700 !important;
  color: #0d2366 !important;
  letter-spacing: 0.03em !important;
}

/* Graphiques carrés */

.square-plot-wrapper {
  width: 100%;
  aspect-ratio: 1 / 1;
}

.square-plot-wrapper .plotly,
.square-plot-wrapper .html-widget,
.square-plot-wrapper .plot-container {
  height: 100% !important;
  width: 100% !important;
}
