:root {
  --main-background: #2e2f30;
  --icon-background: #af8300;
  --icon-foreground: #eef5f7;
  --text-foreground: #eef5f7;
  --text-over-background: #eef5f7;
  --button-foreground: #eef5f7;
  --button-background: #51b8f1;
  --menubar-background: #a3bfce;
  --airport-background-start: #acd3f3;
  --airport-background-end: #32465f;
  --vertical-menu-width: 60px;
  --header-height: 60px;
  --dark-green: green;
  --footer-height: 200px;
  --charts-chart-min-width: 1200px;
  --charts-grill-min-width: 275px;  /* réglé automatiquement */
}

html, body {
  width: 100%;
  height: 100%;
  margin: 0;
  padding: 0;
  background-color: var(--main-background);
  font-family: 'Open Sans', sans-serif;
  font-size: 1em;
  /* overflow: hidden; /* no scroll bars */
}

.page {
  min-height: 100vh;
}

.vbox {
  display: flex;
  flex-direction: column;
}

.hbox {
  display: flex;
  flex-direction: row;
}

.flex-container {
  display: flex;
  flex-direction: row;
}

.vcenter {
  align-items: center;
  justify-content: center;
}

.vcenter > * {
  margin: 1em 0;
}

.hcenter {
  margin-left: auto;
  margin-right: auto
}

.header {
  background-color: var(--menubar-background);
  height: var(--header-height);
  width: 100%;
  justify-content: space-evenly;
}

.ag-header-cell-label {
  justify-content: center !important;
}

.main {
  flex: auto;
}
 
.central-area {
  width: calc(100% - var(--vertical-menu-width));
  background-color:var(--main-background);
  overflow-y: auto;
}

.vertical-scroll-area {
  position: absolute;
  top: var(--header-height);
  left: 0;
  right: var(--vertical-menu-width);
  bottom: 0;
  overflow-y: auto;
  overflow-x: hidden;
}

.right-menu {
  width: var(--vertical-menu-width);
  background-color: var(--menubar-background);
  justify-content: flex-start;
  position: fixed; /* Fixe le menu */
  /*top: 0;*/ /* Commence sur la User bar*/
  right: 0;
  height: calc(100vh - var(--footer-height)); /* Hauteur dynamique en excluant le footer */
  overflow-y: auto; /* Active le défilement si nécessaire */
  scrollbar-width: thin;
  scrollbar-color: var(--text-foreground) var(--menubar-background);
  -webkit-overflow-scrolling: touch;
  padding-bottom: 70px; /* Ajoute un espace en bas pour ne pas cacher le dernier bouton */
}

.right-menu::-webkit-scrollbar {
  width: 0;
  display: none;
}

.scrollable-menu {
  max-height: 100vh;
  overflow-y: auto;
  scrollbar-width: thin;
  scrollbar-color: var(--text-foreground) var(--menubar-background);
  -webkit-overflow-scrolling: touch;
}

.scrollable-menu::-webkit-scrollbar {
  width: 0;
  display: none;
}

.button-container {
  position: fixed;
  bottom: calc(var(--footer-height) + 20px); /* 20px au-dessus du footer */
  right: 90px; /* Aligné à droite */
  display: flex;
  flex-direction: row; /* Empile les boutons horizontalement */
  gap: 10px; /* Espacement entre les boutons */
  z-index: 200; /* S'assure que les boutons sont au-dessus du SVG */
}

/**********************************************************************************************************************/
/* MACHINS RESPONSIVES RELOUS */

.text-flex-container {
  font-size: 1.5em;
}

/* écrans petits ou affichage vertical */
.hide-sm {
  display:block;
}

/* écran vraiment trop petits */
.hide-xm {
  display:block;
}

/* écran vraiment trop petits */
.show-xm {
  display:none;
}

/* Responsive layout - makes a one column layout instead of a two-column layout */
@media (max-width: 728px) {
  .flex-container {
    flex-direction: column;
  }

  .text-flex-container { 
    font-size: 1.2em; 
  }

  .hide-sm {
    display: none;
  }

  .hidden { 
    display: none !important; 
  }

  /* Cache le nom de l’aéroport uniquement si la barre de progression est affichée */
  .progress:has(.bar) + .text-flex-container {
      display: none;
  }
  
  .response-label {
    display: none; /* Cache uniquement "Response:" */
  } 

  .right-menu {
    padding-bottom: 180px; /* Ajoute un espace en bas pour ne pas cacher le dernier bouton */
  }
}

@media (max-width: 400px) {
  .text-flex-container { 
    font-size: 1.0em; 
  }
  .form-container  {
    padding: 5px
  }

  .hide-xm {
    display: none;
  }

  .show-xm {
    display:block;
  }
}


/**********************************************************************************************************************/
/* TABS */
/* Style the tab */
.tab {
  overflow: hidden;

}

/* Style the buttons inside the tab */
.tab button {
  background-color: #ccc;
  border: none;
  border-top-left-radius: 10px;
  border-top-right-radius: 10px;
  outline: none;
  cursor: pointer;
  padding: 10px 14px;
  transition: 0.3s;
  font-size: 17px;
}

/* Change background color of buttons on hover */
.tab button:hover {
  background-color: #ddd;
}

/* Create an active/current tablink class */
.tab button.active {
  background-color: #51b8f1;
}

/* Style the tab content */
.tabcontent {
  display: none;
  border:  2px solid #ccc;
}

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

.footer {
  position: fixed; /* Fixe le footer en bas */
  bottom: 0; /* Colle-le au bas de l’écran */
  left: 0;
  width: 100%; /* Prend toute la largeur */
  height: var(--footer-height);
  padding-top: 5px;
  padding-bottom: 0px;
  display: flex;
  overflow-x: auto;
  overflow-y: hidden;
  flex-direction: row;
  background-color: var(--menubar-background);
  z-index: 1000; /* S'assure qu'il est au-dessus d'autres éléments */
}

/**********************************************************************************************************************/

.text-svg {
  margin-right: 20px;
  display: inline-block;
}
.text-svg svg {
  display: inline-block;
  vertical-align: middle;
}
/**********************************************************************************************************************/
/* CARD BLOCK */

.card {
  /* Add shadows to create the "card" effect */
  box-shadow: 0 4px 8px 0 rgb(0, 0, 0);
  transition: 0.3s;
}

/**********************************************************************************************************************/
/* SMPLE TABLE FLAT STYLE */

.flat-table {
  font-family: sans-serif;
  -webkit-font-smoothing: antialiased;
  font-size: 115%;
  width: auto;
  overflow: auto;
  display: block;
}
.flat-table th {
  background-color: var(--button-background);
  font-weight: normal;
  color: white;
  padding: 10px 20px;
  text-align: center;
}
.flat-table td {
  background-color: rgb(238, 238, 238);
  padding: 10px 20px;
  color: rgb(111, 111, 111);
}
