/* 
 * Airbnb Theme pour ReadTheDocs
 * Palette de couleurs Airbnb : #FF5A5F (Rausch) + gris clairs
 */

/* Variables de couleurs Airbnb */
:root {
  --airbnb-red: #FF5A5F;
  --airbnb-red-dark: #E04E53;
  --airbnb-red-light: #FF7A7F;
  --airbnb-gray-light: #F7F7F7;
  --airbnb-gray-medium: #E4E4E4;
  --airbnb-gray-dark: #484848;
  --airbnb-white: #FFFFFF;
  --airbnb-blue: #00A699;
}

/* ===== EN-TÊTE ET NAVIGATION ===== */

/* En-tête mobile (top bar) */
.wy-nav-top {
  background-color: var(--airbnb-red) !important;
  color: var(--airbnb-white) !important;
}

.wy-nav-top a {
  color: var(--airbnb-white) !important;
}

.wy-nav-top a:hover {
  background-color: var(--airbnb-red-dark) !important;
}

/* Barre de recherche latérale */
.wy-side-nav-search {
  background-color: var(--airbnb-red) !important;
}

.wy-side-nav-search input[type="text"] {
  border-color: var(--airbnb-red-dark) !important;
  border-radius: 4px !important;
}

.wy-side-nav-search input[type="text"]:focus {
  border-color: var(--airbnb-white) !important;
  box-shadow: 0 0 0 2px rgba(255, 90, 95, 0.2) !important;
}

/* Menu latéral */
.wy-menu-vertical {
  background-color: var(--airbnb-gray-light) !important;
}

.wy-menu-vertical header,
.wy-menu-vertical p.caption {
  color: var(--airbnb-red) !important;
  font-weight: 600 !important;
}

.wy-menu-vertical a {
  color: var(--airbnb-gray-dark) !important;
  border-left: 3px solid transparent !important;
}

.wy-menu-vertical a:hover {
  background-color: var(--airbnb-gray-medium) !important;
  color: var(--airbnb-red) !important;
  border-left-color: var(--airbnb-red) !important;
}

.wy-menu-vertical li.current > a,
.wy-menu-vertical li.on a {
  background-color: var(--airbnb-white) !important;
  color: var(--airbnb-red) !important;
  border-left-color: var(--airbnb-red) !important;
  font-weight: 600 !important;
}

.wy-menu-vertical li.current > a:hover,
.wy-menu-vertical li.on a:hover {
  background-color: var(--airbnb-gray-light) !important;
}

/* ===== LIENS ET BOUTONS ===== */

/* Liens */
a {
  color: var(--airbnb-red) !important;
  text-decoration: none !important;
}

a:hover {
  color: var(--airbnb-red-dark) !important;
  text-decoration: underline !important;
}

a:visited {
  color: var(--airbnb-red-light) !important;
}

/* Boutons */
.btn {
  background-color: var(--airbnb-red) !important;
  border-color: var(--airbnb-red-dark) !important;
  color: var(--airbnb-white) !important;
  border-radius: 4px !important;
  font-weight: 500 !important;
  transition: all 0.2s ease !important;
}

.btn:hover {
  background-color: var(--airbnb-red-dark) !important;
  border-color: var(--airbnb-red) !important;
  transform: translateY(-1px) !important;
  box-shadow: 0 2px 4px rgba(255, 90, 95, 0.2) !important;
}

.btn:active {
  transform: translateY(0) !important;
  box-shadow: none !important;
}

/* Boutons secondaires */
.btn-neutral {
  background-color: var(--airbnb-gray-medium) !important;
  color: var(--airbnb-gray-dark) !important;
  border-color: var(--airbnb-gray-medium) !important;
}

.btn-neutral:hover {
  background-color: var(--airbnb-gray-dark) !important;
  color: var(--airbnb-white) !important;
}

/* ===== CONTENU PRINCIPAL ===== */

/* Arrière-plan général */
.wy-nav-content-wrap {
  background-color: var(--airbnb-gray-light) !important;
}

.wy-nav-content {
  background-color: var(--airbnb-white) !important;
  border-radius: 8px !important;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.05) !important;
  padding: 2em 3em !important;
  margin: 1.618em auto !important;
}

/* Titres */
.rst-content h1,
.rst-content h2,
.rst-content h3,
.rst-content h4,
.rst-content h5,
.rst-content h6 {
  color: var(--airbnb-gray-dark) !important;
  border-bottom: 1px solid var(--airbnb-gray-medium) !important;
  padding-bottom: 0.5em !important;
  margin-top: 1.5em !important;
}

.rst-content h1 {
  border-bottom-width: 3px !important;
  border-bottom-color: var(--airbnb-red) !important;
}

/* Code et blocs de code */
.rst-content code,
.rst-content tt {
  color: var(--airbnb-red) !important;
  background-color: var(--airbnb-gray-light) !important;
  border: 1px solid var(--airbnb-gray-medium) !important;
  border-radius: 3px !important;
  padding: 0.2em 0.4em !important;
}

.rst-content pre {
  background-color: var(--airbnb-gray-light) !important;
  border: 1px solid var(--airbnb-gray-medium) !important;
  border-radius: 4px !important;
  border-left: 4px solid var(--airbnb-red) !important;
}

.rst-content .highlight {
  background-color: var(--airbnb-gray-light) !important;
  border: 1px solid var(--airbnb-gray-medium) !important;
  border-radius: 4px !important;
}

/* Tables */
.rst-content table.docutils,
.wy-table {
  border: 1px solid var(--airbnb-gray-medium) !important;
  border-radius: 4px !important;
  overflow: hidden !important;
}

.rst-content table.docutils th,
.wy-table th {
  background-color: var(--airbnb-red) !important;
  color: var(--airbnb-white) !important;
  font-weight: 600 !important;
  border-bottom: 2px solid var(--airbnb-red-dark) !important;
}

.rst-content table.docutils tr:nth-child(2n-1) td,
.wy-table-striped tr:nth-child(2n-1) td {
  background-color: var(--airbnb-gray-light) !important;
}

.rst-content table.docutils td,
.wy-table td {
  border-color: var(--airbnb-gray-medium) !important;
}

/* ===== ÉLÉMENTS DE MISE EN VALEUR ===== */

/* Notes et avertissements */
.rst-content .admonition,
.wy-alert {
  border: 1px solid var(--airbnb-gray-medium) !important;
  border-radius: 4px !important;
  background-color: var(--airbnb-gray-light) !important;
}

.rst-content .admonition-title,
.wy-alert-title {
  background-color: var(--airbnb-red) !important;
  color: var(--airbnb-white) !important;
  font-weight: 600 !important;
  border-radius: 4px 4px 0 0 !important;
}

.rst-content .note .admonition-title {
  background-color: var(--airbnb-blue) !important;
}

.rst-content .warning .admonition-title {
  background-color: #FFB400 !important;
}

.rst-content .danger .admonition-title {
  background-color: #FF385C !important;
}

/* Blocs de citation */
.rst-content blockquote {
  border-left: 4px solid var(--airbnb-red) !important;
  background-color: var(--airbnb-gray-light) !important;
  color: var(--airbnb-gray-dark) !important;
  padding: 1em 1.5em !important;
  margin: 1.5em 0 !important;
  border-radius: 0 4px 4px 0 !important;
}

/* ===== ÉLÉMENTS DE NAVIGATION ===== */

/* Breadcrumbs */
.wy-breadcrumbs {
  border-bottom: 1px solid var(--airbnb-gray-medium) !important;
  padding-bottom: 0.5em !important;
  margin-bottom: 1.5em !important;
}

.wy-breadcrumbs li {
  color: var(--airbnb-gray-dark) !important;
}

.wy-breadcrumbs li a {
  color: var(--airbnb-red) !important;
}

.breadcrumb-item:before {
  color: var(--airbnb-gray-medium) !important;
}

/* Pied de page */
footer {
  color: var(--airbnb-gray-dark) !important;
  border-top: 1px solid var(--airbnb-gray-medium) !important;
  padding-top: 1em !important;
  margin-top: 2em !important;
}

/* ===== RESPONSIVE ===== */

@media screen and (max-width: 768px) {
  .wy-nav-content {
    padding: 1.5em !important;
    margin: 1em !important;
  }
  
  .wy-nav-top {
    padding: 0.5em 1em !important;
  }
}

@media screen and (max-width: 480px) {
  .wy-nav-content {
    padding: 1em !important;
  }
  
  .rst-content h1,
  .rst-content h2,
  .rst-content h3 {
    font-size: 90% !important;
  }
}

/* ===== AMÉLIORATIONS SPÉCIFIQUES ===== */

/* Amélioration de la lisibilité */
.rst-content {
  line-height: 1.6 !important;
  color: var(--airbnb-gray-dark) !important;
}

.rst-content p {
  margin-bottom: 1.2em !important;
}

/* Liens dans les titres */
.rst-content h1 .headerlink,
.rst-content h2 .headerlink,
.rst-content h3 .headerlink,
.rst-content h4 .headerlink,
.rst-content h5 .headerlink,
.rst-content h6 .headerlink {
  color: var(--airbnb-red) !important;
  opacity: 0.5 !important;
}

.rst-content h1:hover .headerlink,
.rst-content h2:hover .headerlink,
.rst-content h3:hover .headerlink,
.rst-content h4:hover .headerlink,
.rst-content h5:hover .headerlink,
.rst-content h6:hover .headerlink {
  opacity: 1 !important;
}

/* Amélioration des listes */
.rst-content ul,
.rst-content ol {
  padding-left: 1.5em !important;
}

.rst-content li {
  margin-bottom: 0.5em !important;
}

.rst-content li > p {
  margin-bottom: 0.5em !important;
}

/* Séparateurs */
hr {
  border-color: var(--airbnb-gray-medium) !important;
  margin: 2em 0 !important;
}