/* === Layout général de la doc === */
.swagger-layout {
    display: flex;
    flex-direction: row;
    gap: 24px;
    padding: 20px;
}

.swagger-sidebar {
    flex: 0 0 280px;
    background: #f7f9fc;
    border-right: 1px solid #e0e0e0;
    padding: 20px;
    max-height: calc(100vh - 60px);
    overflow-y: auto;
    position: sticky;
    top: 60px;
    border-radius: 8px;
}

.swagger-main {
    flex: 1;
    padding: 20px;
    background: #ffffff;
    border-radius: 8px;
    box-shadow: 0 1px 4px rgba(0,0,0,0.05);
}


/* === Boutons d'endpoints === */
.swagger-endpoint {
    border: 1px solid #e0e0e0;
    border-radius: 12px;
    background: #fff;
    margin: 16px 0;
    box-shadow: 0 1px 4px rgba(0,0,0,0.06);
    overflow: hidden;
}

.swagger-toggle {
    position: relative;
    background: #fbfbfb;
    border: none;
    padding: 14px 20px 14px 60px;
    font-weight: 600;
    font-size: 15px;
    border-left: 6px solid transparent;
    cursor: pointer;
    width: 100%;
    text-align: left;
    transition: background 0.3s ease, border-color 0.3s ease;
}

[data-gx-mode="dark"] .swagger-toggle {
	background: #1e2531;
}

.swagger-toggle:hover {
    background: #eaeaea;
}

/* Couleurs par méthode */
.swagger-toggle.method-get    { border-left-color: #28a745; } /* vert */
.swagger-toggle.method-post   { border-left-color: #007bff; } /* bleu */
.swagger-toggle.method-put    { border-left-color: #fd7e14; } /* orange */
.swagger-toggle.method-delete { border-left-color: #dc3545; } /* rouge */
.swagger-toggle.method-patch  { border-left-color: #6f42c1; } /* violet */

/* Deprecated color */
.swagger-endpoint.swagger-endpoint-deprecated .swagger-toggle:not(:hover) { border-left-color: #d3d3d3;}
[data-gx-mode="dark"] .swagger-endpoint.swagger-endpoint-deprecated .swagger-toggle:not(:hover) { border-left-color: gray; }

.swagger-toggle .verb-method {
    background-color: green;
    padding: 3px 10px;
    border-radius: 5px;
    min-width: 64px;
    display: inline-block;
    text-align: center;
    margin-right: 5px;
    color: white;
    text-decoration:none;
	font-size: 0.85em;
}
[data-gx-mode="dark"] .swagger-toggle .verb-method {color: #ffffffd1}
.swagger-toggle .verb-method-get    { background-color: #28a745; } /* vert */
.swagger-toggle .verb-method-post   { background-color: #007bff; } /* bleu */
.swagger-toggle .verb-method-put    { background-color: #fd7e14; } /* orange */
.swagger-toggle .verb-method-delete { background-color: #dc3545; } /* rouge */
.swagger-toggle .verb-method-patch  { background-color: #6f42c1; } /* violet */

/* Deprecated color */
.swagger-endpoint.swagger-endpoint-deprecated .swagger-toggle .verb-method { background-color: #d3d3d3;}
[data-gx-mode="dark"] .swagger-endpoint.swagger-endpoint-deprecated .swagger-toggle .verb-method { background-color: gray; color: darkgray;}

.swagger-endpoint.swagger-endpoint-deprecated .swagger-toggle:not(:hover) { border-left-color: #d3d3d3;}
[data-gx-mode="dark"] .swagger-endpoint.swagger-endpoint-deprecated .swagger-toggle:not(:hover) { border-left-color: gray; }

/* === Contenu dépliable === */
.swagger-details {
    padding: 16px 20px;
    font-size: 15px;
    line-height: 1.6;
}

.swagger-details h4 {
    margin-top: 24px;
    margin-bottom: 8px;
    font-size: 16px;
}

.swagger-details table {
    width: 100%;
    border-collapse: collapse;
    font-size: 14px;
}

.swagger-details th,
.swagger-details td {
    padding: 12px;
    text-align: left;
}

.swagger-details th {
    background-color: #f0f0f0;
    font-weight: 600;
}

/* Bloc contenant l'exemple JSON */
.swagger-schema-block {
    background: #282c34;
    border-radius: 5px;
    font-family: monospace;
	width: 100%;
    overflow-x: auto;
	margin-top: 12px;
}

.swagger-json-scroll {
    background: #2d2d2d;
    border-radius: 5px;
    font-family: monospace;
	width: 100%;
    overflow-x: auto;
	margin-top: 12px;
	color: #ccc;
}

.swagger-json-scroll pre, .swagger-schema-block pre {
    white-space: pre-wrap;     /* permet les retours à la ligne si besoin */
    word-wrap: break-word;     /* permet de couper les longs mots (ex : URL) */
    margin: 0;
    width: 100%;
	padding: 12px;
    tab-size: 2;
}

.swagger-json-scroll pre, .swagger-json-scroll code{
	background-color: #2d2d2d;
}

.swagger-schema-block pre, .swagger-schema-block code{
	background-color: #282c34;
}

[data-gx-mode="dark"] .swagger-json-scroll pre, [data-gx-mode="dark"] .swagger-json-scroll code, [data-gx-mode="dark"] .swagger-json-scroll{
	background-color: #1e2531;
}

[data-gx-mode="dark"] .swagger-schema-block pre, [data-gx-mode="dark"] .swagger-schema-block code, [data-gx-mode="dark"] .swagger-schema-block{
	background-color: #1e2531;
}

/* Style de base pour les blocs de code */
.swagger-json-scroll code, .swagger-schema-block code {
  font-family: monospace;
  font-size: 14px;
  line-height: 1.5;
  display: block;
  width: 100%;
}

/* === Sommaire (tags + endpoints) === */
.swagger-summary details {
    margin-bottom: 12px;
    background: #f4f4f4;
    padding: 8px 12px;
    border-radius: 6px;
}

.swagger-summary summary {
    cursor: pointer;
    font-weight: 600;
    padding: 8px 0;
    font-size: 15px;
}

.swagger-summary ul {
    list-style: none;
    padding-left: 12px;
    margin: 0;
}

.swagger-summary li {
    margin-bottom: 6px;
    font-size: 14px;
}

.swagger-summary a {
    text-decoration: none;
    color: #0073aa;
}

.swagger-summary a:hover {
    text-decoration: underline;
}


.swagger-summary summary {
    list-style: none;
}

.swagger-summary summary::-webkit-details-marker {
    display: none;
}

.swagger-summary summary::marker {
    display: none;
}

.swagger-response {
    background: #1e1e1e;
    color: #f8f8f2;
    font-family: monospace;
    padding: 12px;
    border-radius: 4px;
    white-space: pre-wrap;
    word-break: break-word;
    overflow-x: auto;
}

.swagger-try-block {
    display: none;
}

.swagger-tabs { margin-top: 12px; }


.response-codes h5 {
    padding-left: 0px;
	margin: 0px;
}

.tab-button { background: #f0f0f0; border: 1px solid #ddd; padding: 10px 12px; cursor: pointer}
.tab-button.active { background: #e0e0e0; border-bottom: 1px solid #e0e0e0; font-weight: bold; }

.json-key     { color: #af5dd6; font-weight: bold; }
.json-string  { color: #2ea44f; }
.json-number  { color: #d73a49; }
.json-boolean { color: #ff9800; }


/* --- Style pour la coloration syntaxique du JSON et des Schémas --- */

/* Clés JSON et Propriétés de Schéma */
.json-key {
    color: #61afef; /* Bleu */
}
.json-key.required {
    font-weight: bold;
    /*text-decoration: underline;*/
    text-decoration-color: #e06c75;
    text-decoration-thickness: 1px;
}


/* Types de données dans les Schémas */
.json-type {
    color: #e5c07b; /* Jaune/Or */
}

.request-parameters .json-request-parameters code,
.response-headers .json-request-parameters code {
    background: transparent !important;
	background-color: unset !important; /* Particularité pour retirer le background dans la liste des paramètres */
}
.request-parameters .json-request-parameters span,
.response-headers .json-request-parameters span
 {
    font-weight: bold;
}

.json-type.json-format span {
    font-style: italic;
}

/* Chaînes de caractères */
.json-string {
    color: #98c379; /* Vert */
}

/* Nombres */
.json-number, .json-integer {
    color: #d19a66; /* Orange */
}

/* Booléens et null */
.json-boolean, .json-enum, .json-null {
    color: #c678dd; /* Violet */
}

/* Ponctuation dans les Schémas */
.json-punctuation {
    color: #abb2bf; /* Gris clair (comme le texte de base) */
}

/* Commentaires dans les Schémas */
.json-comment {
    color: #5c6370; /* Gris foncé (commentaire) */
    font-style: italic;
}

/* Références ($ref) dans les Schémas */
.json-ref {
    color: #56b6c2; /* Cyan */
    text-decoration: none;
    border-bottom: 1px dotted #56b6c2;
}
.json-ref:hover {
    color: #4aa5b0;
}


/* Astérisque pour les champs requis */
.json-required {
    color: #e06c75; /* Rouge clair */
    font-weight: bold;
    /*margin-left: 4px;*/
    cursor: help;
}

.deprecated { color: lightgray; }
[data-gx-mode="dark"] .deprecated { color: gray; }
.deprecated > span {
    text-decoration: line-through;
}

.method-summary,
.tag-summary {
    font-size: 0.85em;
    padding-left: 10px;
    font-weight: normal;
	font-family: Nunito, sans-serif;
	letter-spacing: normal;
}

.json-enum-list { 
    font-size: 0.95em;
}

table.json-schema-table td {
    border: none !important;
    padding: 0px !important;
    vertical-align: text-top;
}

table.json-schema-table tr > td:first-child {
    text-wrap-mode: nowrap;
}

.request-payloads-link {
    cursor: pointer;
}

/* -------------------------------------------
         CSS CHAT GPT GENERATED - LOT 1
   ------------------------------------------- */

.swagger-toggle > .deprecated{
  display: contents;
}

/* ===== Desktop / tablette ===== */
.swagger-toggle{
  display: flex;
  flex-wrap: nowrap;
  gap: 12px;
  width: 100%;

  align-items: center; /* le summary reste calé en haut */
}

.swagger-toggle .verb-method,
.swagger-toggle .method-path{
  align-self: center;      /* centrés verticalement dans la "case" */
}

.swagger-toggle .verb-method{
  flex: 0 0 auto;
  white-space: nowrap;
}

.swagger-toggle .method-path{
  flex: 0 0 auto;          /* route complète sur 1 ligne */
  white-space: nowrap;
  overflow: visible !important;
  text-overflow: clip !important;
}

.swagger-toggle .method-summary{
  flex: 1 1 auto;          /* prend le reste + wrap */
  min-width: 0;
  white-space: normal;
  overflow-wrap: anywhere;
  word-break: break-word;
}

/* ===== Mobile ===== */
@media (max-width: 640px){
  /* on passe en grid pour empiler path + summary dans la colonne de droite */
  .swagger-toggle{
    display: grid;
    grid-template-columns: min-content minmax(0, 1fr);
    column-gap: 10px;
    row-gap: 4px;
    align-items: start;
  }

  .swagger-toggle .verb-method{
    grid-column: 1;
    grid-row: 1;
  }

  /* Route: toujours 1 ligne, mais scroll horizontal au lieu de casser la mise en page */
  .swagger-toggle .method-path{
    grid-column: 2;
    grid-row: 1;
    white-space: nowrap;
    overflow-x: auto !important;
    overflow-y: hidden;
    -webkit-overflow-scrolling: touch;
  }

  /* Summary: sous la route, wrap normal */
  .swagger-toggle .method-summary{
    grid-column: 2;
    grid-row: 2;
    min-width: 0;
    white-space: normal;
  }

  /* optionnel: masquer la scrollbar (si tu veux) */
  .swagger-toggle .method-path{
    scrollbar-width: none; /* Firefox */
  }
  .swagger-toggle .method-path:: -webkit-scrollbar{
    display: none; /* Chrome/Safari */
  }
}

table.json-schema-table tr:hover {
    background-color: rgba(255, 255, 255, 0.02);
}
