/* --- Base.css --- */

/* ==========================================
   1. Reset et base
   ========================================== */
.stAppHeader {
  visibility: hidden;
}

body,
html {
  font-family:
    -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial,
    sans-serif;
}

body,
.stApp,
.block-container {
  background-color: var(--bg-color) !important;
  color: var(--text-color) !important;
}

/* ==========================================
   2. Layout et containers
   ========================================== */
.block-container {
  max-width: 1024px !important;
  padding: 0 1rem 10rem;
}

.stVerticalBlock {
  gap: 0.5rem !important;
}

/* ==========================================
   3. Composants d'interface
   ========================================== */

/* --- 3.1 Boutons --- */
.stButton > button,
.stDownloadButton > button,
.stFormSubmitButton > button,
.stSlider > div > div {
  background-color: #072c6e !important;
  color: white !important;
  border: 1px solid grey;
}

.st-key-FormSubmitter-auth_form-Se-connecter {
  margin-left: auto;
  margin-right: auto;
}

section:not([data-testid="stSidebar"])
  button[data-testid="stBaseButton-primary"],
section:not([data-testid="stSidebar"])
  button[data-testid="stBaseButton-secondary"] {
  color: white !important;
  background: #072c6e !important;
}

section:not([data-testid="stSidebar"])
  button[data-testid="stBaseButton-primary"]
  p,
section:not([data-testid="stSidebar"])
  button[data-testid="stBaseButton-secondary"]
  p {
  color: white !important;
}

.bouton-fictif {
  display: inline-flex;
  -moz-box-align: center;
  align-items: center;
  -moz-box-pack: center;
  justify-content: center;
  padding: 0.25rem 0.75rem;
  border-radius: 0.5rem;
  min-height: 2.5rem;
  margin-bottom: 20px;
  line-height: 1;
  text-transform: none;
  font-size: x-large;
  font-family: inherit;
  user-select: none;
  border: 1px solid rgba(49, 51, 63, 0.2);
  background-color: darkgrey !important;
  color: #072c6e !important;
  font-weight: bold !important;
  width: 100%;
  letter-spacing: 0.2em;
}

button[data-testid="stBaseButton-headerNoPadding"] svg {
  fill: var(--text-color) !important;
}

/* --- 3.2 Onglets et radiogroup --- */
div[role="radiogroup"] > label {
  padding: 0.5em 1em;
  border-radius: 0.4em;
  margin-right: 0.5em;
  cursor: pointer;
  border: 1px solid #fff;
}

div[role="radiogroup"] > label[data-selected="true"] {
  font-weight: bold;
  border: 2px solid #145a1a;
}

section:not([data-testid="stSidebar"]) div[role="radiogroup"] > label p {
  background-color: var(--radio-bg) !important;
  color: var(--radio-text) !important;
}

section:not([data-testid="stSidebar"])
  div[role="radiogroup"]
  > label[data-selected="true"] {
  background-color: var(--radio-selected-bg) !important;
  color: var(--radio-selected-text) !important;
}

/* --- 3.3 Champs de formulaire --- */
div[data-baseweb="select"],
section:not([data-testid="stSidebar"]) div[data-baseweb="base-input"],
section[data-testid="stFileUploaderDropzone"] {
  border: 1px solid var(--input-border) !important;
  border-radius: 5px;
  padding: 4px;
}

small {
  display: none;
}

section:not([data-testid="stSidebar"]) div[data-testid="stSelectbox"] p,
section:not([data-testid="stSidebar"]) div[data-testid="stMultiSelect"] p,
section:not([data-testid="stSidebar"]) div[data-testid="stRadio"] p,
section:not([data-testid="stSidebar"]) div[data-testid="stCheckbox"] p,
section:not([data-testid="stSidebar"]) div[data-testid="stTextInput"] p,
section:not([data-testid="stSidebar"]) div[data-testid="stTextArea"] p,
section:not([data-testid="stSidebar"]) div[data-testid="stAlertContentInfo"] p {
  color: var(--text-color) !important;
}

/* ==========================================
   4. Header et Footer
   ========================================== */

/* --- 4.1 Header --- */
.wide-header {
  width: 100vw;
  margin-left: calc(-50vw + 50%);
  box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
  border-bottom: 1px solid #ddd;
  text-align: center;
  padding-top: 1rem;
  margin-top: -1.25em;
  background-color: var(--header-bg);
}

.titre-header {
  font-size: 2rem !important;
  font-weight: bolder !important;
  color: var(--header-title);
}

/* --- 4.2 Footer --- */
.wide-footer {
  width: 100vw;
  margin-left: calc(-50vw + 50%);
  margin-top: 3rem;
  box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
  border-top: 1px solid #ddd;
  text-align: center;
  padding-top: 1rem;
  background-color: var(--footer-bg);
}

.info-footer {
  font-size: 1rem !important;
  font-weight: 800;
  color: var(--footer-text);
}

/* ==========================================
   5. Sidebar
   ========================================== */
section[data-testid="stSidebar"] {
  background-color: #ccc !important;
  color: #111 !important;
}

section[data-testid="stSidebar"] .stButton > button {
  background-color: #072c6e !important;
  color: white !important;
  font-weight: bold !important;
  border: 1px solid #ccc !important;
  width: 100%;
}

section[data-testid="stSidebar"] .decorative-heading {
  font-size: 1.25rem;
  font-weight: bold;
  margin-bottom: 0.5rem;
  text-align: center;
  color: #072c6e;
}

section[data-testid="stSidebar"] div[role="radiogroup"] {
  justify-content: center !important;
  display: flex !important;
  gap: 1rem;
}

/* ==========================================
   6. Tables
   ========================================== */
table {
  border: 1px solid var(--table-border) !important;
  border-collapse: collapse;
  width: 100%;
  margin-bottom: 1.5em;
}

th,
td {
  border: 1px solid var(--table-border) !important;
  padding: 8px;
  text-align: left;
}

caption {
  caption-side: top;
  font-weight: bold;
  padding: 0.5em;
  text-align: left;
  caption-side: bottom;
  text-align: center;
}

table[role="table"] th[scope="col"] {
  background-color: var(--background-color);
}

/* ==========================================
   7. Composants spécifiques
   ========================================== */

/* --- 7.1 File Uploader --- */
/* File uploader styles intentionally left empty */

/* --- 7.2 Graphiques --- */
.stPlotlyChart text {
  fill: var(--plot-text) !important;
}

.stPlotlyChart text {
  fill: black !important;
  text-shadow: none !important;
  font-weight: bold !important;
  font-size: 14px !important;
  font-family: Verdana, sans-serif !important;
}

/* Cache complètement la section d'actions Vega */
.vega-actions {
  display: none !important;
}

/* Et aussi le <details> parent, s'il faut tout masquer */
details[title="Click to view actions"] {
  display: none !important;
}

/* --- 7.3 Détails et paragraphes --- */
details {
  border: 1px solid #ccc;
  border-radius: 6px;
  padding: 0.5em;
  margin-bottom: 0.5em;
  background-color: var(--background-color);
  border-color: var(--details-border) !important;
}

section:not([data-testid="stSidebar"])
  div:not[data-testid="stElementContainer"]
  p:not(#Authentification):not(#Theme) {
  color: var(--paragraph-color) !important;
}

section:not([data-testid="stSidebar"]) hr {
  background-color: var(--hr-color) !important;
}

/* --- 7.4 Conteneurs de commentaires et tickets --- */
.conteneur_commentaire,
.conteneur_ticket {
  background: var(--background-color);
  padding: 1em;
  border-radius: 8px;
  margin-bottom: 1em;
  border: 1px solid #ccc;
}

.commentaire_auteur,
.ticket_auteur {
  color: var(--text-color) !important;
  margin: 0;
}

.commentaire_contenu,
.ticket_contenu {
  color: var(--text-color) !important;
  margin: 0.5rem 0 0;
}

/* --- 7.5 Blocs mathématiques --- */
.math-block {
  display: block;
  text-align: center;
  margin: 1em 0;
  border: 1px solid var(--math-block-border);
  border-radius: 10px;
  background: var(--math-block-bg);
  font-size: x-large;
  color: var(--text-color);
}

.math-block math {
  display: inline-block;
}

/* ==========================================
   8. Éléments spécifiques
   ========================================== */
div.stElementContainer.element-container.st-key-nom_utilisateur {
  display: none !important;
}

.st-key-telecharger_fiche_pdf {
  margin-left: auto;
  margin-right: auto;
  margin-top: 1rem;
}

.details_introduction {
  margin-top: 0.5rem;
  margin-bottom: 0.5rem;
}
