:root {
  /* Couleurs */
  /*--md-primary-color: #1a5276; /* A Rendre Configurable */
  /*--md-secondary-color: #d35400; /* A Rendre Configurable */
  /*--md-secondary-color-lighter: #e67e22; /* A Rendre Configurable */ /* Version plus claire de la couleur secondaire */
  --md-light-color: #ecf0f1; /* A Rendre Configurable */
  --md-dark-color: #2c3e50; /* A Rendre Configurable */
  /*--md-text-color: #333333; /* A Rendre Configurable */
  --md-success-color: #27ae60; /* A Rendre Configurable */
  --md-warning-color: #f39c12; /* A Rendre Configurable */
  --md-danger-color: #e53935; /* A Rendre Configurable */
  --md-white-color: #ffffff; /* A Rendre Configurable */
  --md-accent-color: #2a9d8f; /* A Rendre Configurable */
  /*--md-info-color: #3498db;*/

  /* Buttons et Links */
  /*--md-link-primary-color: #47C3E7; /* A Rendre Configurable */
  /*--md-link-primary-colorover: #419bbd; /* A Rendre Configurable */
  /*--md-link-secondary-color: #fbb217; /* A Rendre Configurable */
  /*--md-link-secondary-colorover: #b97a17; /* A Rendre Configurable */

  /* Typographie */
  --md-font-size-base: 1rem;
  --md-font-size-small: 0.85rem;
  --md-font-size-medium: 1.2rem;
  --md-font-size-large: 1.5rem;
  --md-font-size-xlarge: 2rem;
  --md-font-size-xxlarge: 2.5rem;
  --md-line-height: 1.6;

  /* Mise en page */
  --md-container-width: 1200px;
  --md-grid-columns-lg: 4;  /* Nombre de colonnes grand écran */
  --md-grid-columns-md: 3;  /* Nombre de colonnes moyen écran */
  --md-grid-columns-sm: 2;  /* Nombre de colonnes petit écran */
  --md-grid-columns-xs: 1;  /* Nombre de colonnes très petit écran */

  /* Espacement */
  --md-spacing-xx: 0.25rem;
  --md-spacing-xs: 0.5rem;
  --md-spacing-sm: 1rem;
  --md-spacing-md: 1.5rem;
  --md-spacing-lg: 2rem;
  --md-spacing-xl: 3rem;

  /* Bordures et ombres */
  --md-border-radius: 8px;
  --md-box-shadow: 0 4px 8px rgba(0,0,0,0.1);
  --md-box-shadow-hover: 0 6px 15px rgba(0,0,0,0.15);
  --md-transition: all 0.3s ease;

  /* Transitions */
  --md-transition-speed: 0.3s;

  /**************************************** Font Awesome Surcharge ******************************/
  --fa-secondary-color: var(--md-primary-color-lighter-extended);
  --fa-secondary-opacity: 1;
}

* {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}

body {
  color: var(--md-text-color);
  background-color: #f8f9fa;
  line-height: var(--md-line-height);
  font-size: var(--md-font-size-base);
}

/**************************************** Balises Standard ************************/
h2 {
  font-size: var(--md-font-size-xlarge);
  color: var(--md-dark-color);
  margin-bottom: var(--md-spacing-xs);
}

a {
  color: var(--md-link-primary-color);
  text-decoration: none;
}

a[href] {
  cursor: pointer;
}

a:hover {
  /*color: var(--md-link-primary-colorover);*/
  text-decoration: none;
}

a:active {
  color: var(--md-link-primary-colorover);
}
a.md-btn:hover {
  color: var(--md-link-primary-text-color);
}
/**************************************** Utility Classes - Espacement ***************/
.md-full-height {
  height: 100%;
}

.md-mt-auto {
  margin-top: auto;
}

.md-mt-md {
  margin-top: var(--md-spacing-md);
}

.md-mb-md {
  margin-bottom: var(--md-spacing-md);
}

.md-mr-sm {
  margin-right: var(--md-spacing-sm);
}

.md-p-md {
  padding: var(--md-spacing-md);
}

.md-p-lg {
  padding: var(--md-spacing-lg);
}

.md-text-center {
  text-align: center;
}

/**************************************** Global style : Sections ***************/

.md-section {
  padding: var(--md-spacing-xl) 0;
  background-color: var(--md-light-color);
}

.md-section-title {
  text-align: center;
  margin-bottom: var(--md-spacing-xl);
}

.md-container>.md-section-title {
  margin-bottom: var(--md-spacing-xl);
}

.md-section-title h2 {
  font-size: var(--md-font-size-xlarge);
  color: var(--md-dark-color);
  margin-bottom: var(--md-spacing-xs);
}

.md-section-title p {
  color: var(--md-dark-color);
  max-width: 700px;
  margin: 0 auto;
}

/**************************************** Global style ***************************/
.md-primary-colors {
  background-color: var(--md-primary-color);
  color: var(--md-primary-text-color);
}

.md-secondary-colors {
  background-color: var(--md-secondary-color);
  color: var(--md-secondary-text-color);
}

.md-link-primary-colors {
  color: var(--md-link-primary-color);
}

.md-link-secondary-colors {
  color: var(--md-link-secondary-color);
}

.md-container {
  max-width: var(--md-container-width);
  margin: 0 auto;
  padding: 0 var(--md-spacing-md);
}

/* Buttons */
.md-btn {
  padding: var(--md-spacing-xs) var(--md-spacing-md);
  border-radius: calc(var(--md-border-radius) / 2);
  font-weight: 500;
  text-decoration: none;
  display: inline-flex;
  justify-content: center;
  align-items: center;
  gap: var(--md-spacing-xs);
  transition: all var(--md-transition-speed);
  border: none;
  cursor: pointer;
  font-size: var(--md-font-size-base);
}

.md-btn-primary {
  border: 2px solid var(--md-button-primary-color);
  background-color: var(--md-button-primary-color);
  color: var(--md-button-primary-text-color);
}

.md-btn-primary:hover {
  background-color: var(--md-button-primary-darker);
}

.md-btn-primary-reverse {
  background-color: transparent;
  color: var(--md-button-primary-color);
  border: 2px solid var(--md-button-primary-color);
}

.md-btn-primary-reverse:hover {
  color: var(--md-primary-color-darker)!important;
  border: 2px solid var(--md-button-primary-darker);
}

.md-btn-secondary {
  background-color: var(--md-link-secondary-color);
  color: var(--md-link-secondary-text-color);
}

.md-btn-secondary:hover {
  background-color: var(--md-link-secondary-colorover);
}

.md-btn-secondary-reverse {
  background-color: transparent;
  color: var(--md-secondary-color);
  border: 2px solid var(--md-secondary-color);
}

.md-btn-secondary-reverse:hover {
  color: var(--md-link-secondary-colorover);
  border: 2px solid var(--md-link-secondary-colorover);
}

/* Links */
.md-link-secondary {
  color: var(--md-link-secondary-color);
}

.md-link-secondary:hover {
  color: var(--md-link-secondary-colorover);
}

.md-link-secondary:active {
  color: var(--md-link-secondary-colorover);
}

/* Utility Classes */
.md-small {
  font-size: var(--md-font-size-small) !important;
}

.md-ok {
  color: var(--md-success-color);
}

.md-danger {
  color: var(--md-danger-color);
}

.md-warning {
  color: var(--md-warning-color);
}

.md-tag {
  display: inline-flex;
  justify-content: center;
  align-items: center;
  background-color: var(--md-secondary-color);
  color: var(--md-secondary-text-color);
  padding: calc(var(--md-spacing-xs) / 2) var(--md-spacing-xs);
  border-radius: calc(var(--md-border-radius) / 2);
  font-size: calc(var(--md-font-size-small) * 0.9);
  font-weight: 600;
  gap:var(--md-spacing-xx);
}

.md-tag-public {
  background-color: #f0f0f0;
  color: #555;
}

.md-tag-typdoc {
  background-color: var(--md-light-color);
  color: var(--md-primary-color);
}


.md-status-pending {
  background-color: #fff8eb;
  color: var(--md-warning-color);
}

.md-status-validated {
  padding: var(--md-spacing-xs) var(--md-spacing-md);
  border-radius: var(--md-border-radius);
  background-color: #e8f5e9;
  color: var(--md-success-color);
}

.md-status-rejected {
  padding: var(--md-spacing-xs) var(--md-spacing-md);
  border-radius: var(--md-border-radius);
  background-color: #ffebee;
  color: var(--md-danger-color);
}

/**************************************** GENERALIZED BLOCK SYSTEM ***************************/
/* Ces classes remplacent les variantes spécifiques (news, favorites, etc.) */

/* Section Container générique pour tous les blocs */
.md-block-section {
  /*max-width: 1200px;*/
  margin: 0 auto;
  padding: var(--md-spacing-xl) 0;
  background-color: #f8f9fa;
}

/* Version étendue pour les sélections/recommandations */
/*
.md-block-section-wide {
  max-width: 1400px;
}
*/

/* Header de section générique */
.md-block-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: var(--md-spacing-lg);
  max-width: 900px;
  margin-left: auto;
  margin-right: auto;
  padding: 0 var(--md-spacing-md);
}

/* Version sans max-width pour certains blocs */
.md-block-header-full {
  max-width: none;
}

.md-block-section-title {
  display: flex;
  flex-direction: column;
  flex: 1;
  text-align: center;
}

.md-block-section-title h2 {
  font-size: var(--md-font-size-xlarge);
  color: var(--md-dark-color);
  margin-bottom: var(--md-spacing-xs);
}

.md-block-section-title p {
  color: #666;
  font-size: var(--md-font-size-base);
}

/* Card générique pour tous les types de contenu */
.md-content-card {
  min-width: 100%;
  background-color: var(--md-white-color);
  border-radius: var(--md-border-radius);
  box-shadow: var(--md-box-shadow);
  overflow: hidden;
  transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.md-content-card:hover {
  transform: translateY(-8px);
  box-shadow: var(--md-box-shadow-hover);
}

/* Image de couverture générique */
.md-content-image {
  width: 100%;
  height: 300px;
  object-fit: cover;
  display: block;
}

/* Contenu de la card */
.md-content-body {
  padding: var(--md-spacing-lg);
}

.md-content-header {
  display: flex;
  align-items: center;
  gap: var(--md-spacing-sm);
  margin-bottom: var(--md-spacing-md);
}

.md-content-title {
  font-size: var(--md-font-size-large);
  color: var(--md-primary-color);
  font-weight: 600;
  flex: 1;
}

.md-content-text {
  color: var(--md-text-color);
  line-height: 1.7;
  margin-bottom: var(--md-spacing-md);
}

.md-content-footer {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding-top: var(--md-spacing-md);
  border-top: 1px solid var(--md-light-color);
}

.md-content-date {
  font-size: var(--md-font-size-small);
  color: #666;
  display: flex;
  align-items: center;
  gap: var(--md-spacing-xs);
}

.md-content-read-more {
  color: var(--md-secondary-color);
  text-decoration: none;
  font-weight: 600;
  display: flex;
  align-items: center;
  gap: var(--md-spacing-xs);
  transition: gap 0.3s ease;
}

.md-content-read-more:hover {
  gap: var(--md-spacing-sm);
}

/**************************************** CAROUSEL SYSTEM - Générique ***************************/

.md-carousel-wrapper {
  max-width: 900px;
  margin: 0 auto;
  padding: 0 var(--md-spacing-md);
}

.md-carousel-controls {
  display: flex;
  gap: var(--md-spacing-xs);
}

.md-carousel-nav-button {
  background-color: var(--md-primary-color);
  color: var(--md-white-color);
  border: none;
  width: 40px;
  height: 40px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  transition: all var(--md-transition-speed);
}

.md-carousel-nav-button:hover:not(:disabled) {
  background-color: var(--md-dark-color);
  transform: scale(1.1);
}

.md-carousel-nav-button:disabled {
  background-color: #ccc;
  cursor: not-allowed;
  opacity: 0.5;
}

.md-carousel-container {
  position: relative;
  overflow: hidden;
  padding: var(--md-spacing-md) 0;
}

.md-carousel-track {
  display: flex;
  transition: transform 0.5s ease-in-out;
}

.md-carousel-indicators {
  display: flex;
  justify-content: center;
  gap: var(--md-spacing-xs);
  margin-top: var(--md-spacing-md);
}

.md-indicator {
  width: 10px;
  height: 10px;
  border-radius: 50%;
  background-color: #ccc;
  border: none;
  cursor: pointer;
  transition: all var(--md-transition-speed);
}

.md-indicator.active {
  background-color: var(--md-primary-color);
  width: 30px;
  border-radius: 5px;
}

/* Tabs pour carrousel */
.md-tabs {
  display: flex;
  gap: var(--md-spacing-sm);
  overflow-x: auto;
  overflow-y: hidden;
  padding: var(--md-spacing-sm) 0;
  margin-bottom: var(--md-spacing-lg);
  scrollbar-width: thin;
  scrollbar-color: var(--md-primary-color) var(--md-light-color);
  -webkit-overflow-scrolling: touch;
}

.md-tabs::-webkit-scrollbar {
  height: 6px;
}

.md-tabs::-webkit-scrollbar-track {
  background: var(--md-light-color);
  border-radius: 3px;
}

.md-tabs::-webkit-scrollbar-thumb {
  background: var(--md-primary-color);
  border-radius: 3px;
}

.md-tabs::-webkit-scrollbar-thumb:hover {
  background: var(--md-dark-color);
}

.md-tab {
  padding: var(--md-spacing-xs) var(--md-spacing-md);
  background-color: transparent;
  border: 2px solid var(--md-primary-color);
  color: var(--md-primary-color);
  border-radius: calc(var(--md-border-radius) / 2);
  cursor: pointer;
  transition: all var(--md-transition-speed);
  white-space: nowrap;
  flex-shrink: 0;
}

.md-tab.active,
.md-tab:hover {
  background-color: var(--md-primary-color);
  color: var(--md-white-color);
}

/**************************************** BOOK DISPLAY - Générique ***************************/

/* Couverture de livre générique (avec ou sans image) */
.md-book-cover {
  height: 250px;
  background-color: #ddd;
  background-size: cover;
  background-position: center;
  position: relative;
}

/* Variante grande taille */
.md-book-cover-large {
  height: 350px;
}

/* Variante avec image de fond inline */
.md-book-cover-bg {
  background-repeat: no-repeat;
}

/* Overlay pour effet hover */
.md-book-overlay {
  position: absolute;
  inset: 0;
  background-color: rgba(26, 82, 118, 0.95);
  color: var(--md-white-color);
  padding: var(--md-spacing-md);
  opacity: 0;
  transition: opacity var(--md-transition-speed);
  display: flex;
  flex-direction: column;
  gap: var(--md-spacing-xs);
}

.md-book-card:hover .md-book-overlay,
.md-content-card:hover .md-book-overlay {
  opacity: 1;
}

/* Info de livre */
.md-book-info {
  padding: var(--md-spacing-sm);
}

.md-book-info h3 {
  font-size: var(--md-font-size-base);
  margin-bottom: calc(var(--md-spacing-xs) / 2);
  line-height: 1.4;
}

.md-book-info p {
  font-size: var(--md-font-size-small);
  color: #666;
  margin-bottom: var(--md-spacing-xs);
}

.md-book-title {
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  font-weight: bold;
  cursor: default;
}

.md-book-title:hover {
  text-decoration: underline;
}

/* Status badges */
.md-book-status {
  display: inline-block;
  padding: calc(var(--md-spacing-xs) / 2) var(--md-spacing-xs);
  border-radius: calc(var(--md-border-radius) / 2);
  font-size: calc(var(--md-font-size-small) * 0.95);
  font-weight: 500;
}

.md-status-available {
  background-color: #e8f5e9;
  color: var(--md-success-color);
}

.md-status-not-available {
  background-color: #ffebee;
  color: var(--md-danger-color);
}

.md-status-tempo-out {
  background-color: #fff8eb;
  color: var(--md-warning-color);
}

/**************************************** SPECIFIC BLOCKS ***************************/
/* Styles spécifiques qui ne peuvent pas être complètement généralisés */

/* Front page blocks - Legacy (à conserver pour compatibilité) */
.md-front-block-section {
  margin: 0 auto;
  padding: var(--md-spacing-xl) 0;
  background-color: #f8f9fa;
}

.md-front-block-section-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: var(--md-spacing-lg);
  max-width: 900px;
  margin-left: auto;
  margin-right: auto;
  padding: 0 var(--md-spacing-md);
}

.md-front-block-section-header-title {
  display: flex;
  flex-direction: column;
  flex: 1;
  text-align: center;
}

.md-front-block-section-header-title h2 {
  font-size: var(--md-font-size-xlarge);
  color: var(--md-dark-color);
  margin-bottom: var(--md-spacing-xs);
}

.md-front-block-section-header-title p {
  color: #666;
  font-size: var(--md-font-size-base);
}

.md-front-block-card {
  min-width: 100%;
  background-color: var(--md-white-color);
  border-radius: var(--md-border-radius);
  box-shadow: var(--md-box-shadow);
  overflow: hidden;
}

.md-front-block-image {
  width: 100%;
  height: 300px;
  object-fit: cover;
  display: block;
}

.md-front-block-content {
  padding: var(--md-spacing-lg);
}

.md-front-block-content-header {
  display: flex;
  align-items: center;
  gap: var(--md-spacing-sm);
  margin-bottom: var(--md-spacing-md);
}

.md-front-block-content-title {
  font-size: var(--md-font-size-large);
  color: var(--md-primary-color);
  font-weight: 600;
  flex: 1;
}

.md-front-block-content-text {
  color: var(--md-text-color);
  line-height: 1.7;
  margin-bottom: var(--md-spacing-md);
}

.md-front-block-content-footer {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding-top: var(--md-spacing-md);
  border-top: 1px solid var(--md-light-color);
}

.md-front-block-content-date {
  font-size: var(--md-font-size-small);
  color: #666;
  display: flex;
  align-items: center;
  gap: var(--md-spacing-xs);
}

.md-front-block-content-read-more {
  color: var(--md-secondary-color);
  text-decoration: none;
  font-weight: 600;
  display: flex;
  align-items: center;
  gap: var(--md-spacing-xs);
  transition: gap 0.3s ease;
}

.md-front-block-content-read-more:hover {
  gap: var(--md-spacing-sm);
}

/**************************************** Header ***************************/
.md-header {
  background-color: var(--md-primary-color);
  color: var(--md-white-color);
  padding: var(--md-spacing-xs) 0;
  position: sticky;
  top: 0;
  z-index: 100;
  box-shadow: var(--md-box-shadow);
}

.md-header-container {
  display: flex;
  justify-content: space-between;
  align-items: center;
}

.md-logo {
  display: flex;
  align-items: center;
  gap: var(--md-spacing-xs);
}

.md-logo h1 {
  font-size: var(--md-font-size-medium);
  font-weight: 600;
}

.md-logo img {
  height: 40px;
  width: auto;
}

/**************************************** Navigation ***************************/
.md-nav ul {
  display: flex;
  gap: var(--md-spacing-md);
  list-style: none;
}

.md-nav a {
  color: var(--md-white-color);
  text-decoration: none;
  font-weight: 500;
  padding: var(--md-spacing-xs) var(--md-spacing-sm);
  border-radius: calc(var(--md-border-radius) / 2);
  transition: background-color var(--md-transition-speed);
}

.md-nav a:hover, .md-nav a.md-active {
  background-color: rgba(255,255,255,0.2);
}

.md-nav-actions {
  display: flex;
  gap: var(--md-spacing-sm);
  align-items: center;
}

/**************************************** Help Banner ***************************/
.md-info-banner {
  display: flex;
  align-items: center;
  padding: var(--md-spacing-sm) var(--md-spacing-md);
  background-color: #f8f9fa;
  border-left: 4px solid var(--md-accent-color);
  margin-bottom: var(--md-spacing-md);
  border-radius: 0 var(--md-border-radius) var(--md-border-radius) 0;
}

.md-info-banner-icon {
  margin-right: var(--md-spacing-sm);
  color: var(--md-primary-color);
  font-size: var(--md-font-size-large);
}

.md-info-banner-text {
  flex: 1;
}

/**************************************** Bloc Cartes liens rapides ***************************/
.md-quick-links {
  padding: var(--md-spacing-xl) 0;
  margin-top: calc(-1 * var(--md-spacing-xl));
}

.md-quick-links-container {
  display: grid;
  grid-template-columns: repeat(var(--md-grid-columns-lg), 1fr);
  gap: var(--md-spacing-md);
}

.md-quick-link-card {
  background-color: var(--md-white-color);
  border-radius: var(--md-border-radius);
  overflow: hidden;
  box-shadow: var(--md-box-shadow);
  transition: transform var(--md-transition-speed), box-shadow var(--md-transition-speed);
  text-align: center;
  padding: var(--md-spacing-lg) var(--md-spacing-md);
}

.md-quick-link-card:hover {
  transform: translateY(-5px);
  box-shadow: var(--md-box-shadow-hover);
}

.md-quick-link-card h3 {
  margin: var(--md-spacing-sm) 0 var(--md-spacing-xs);
  color: var(--md-primary-color);
  font-size: var(--md-font-size-medium);
}

.md-icon-circle {
  width: 70px;
  height: 70px;
  background-color: var(--md-light-color);
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  margin: 0 auto;
  color: var(--md-primary-color);
  font-size: calc(var(--md-font-size-xlarge) * 1.2);
}

/**************************************** Bloc Nouveautes ***************************/
.md-new-arrivals {
  padding: var(--md-spacing-xl) 0;
  background-color: #f8f9fa;
}

.md-book-slider {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: var(--md-spacing-sm);
}

.md-book-card {
  background-color: var(--md-white-color);
  border-radius: var(--md-border-radius);
  overflow: hidden;
  box-shadow: var(--md-box-shadow);
  transition: transform var(--md-transition-speed);
  width: 200px;
}

.md-book-card:hover {
  transform: translateY(-8px);
}

/**************************************** Bloc Evenements ***************************/
.md-events {
  padding: var(--md-spacing-xl) 0;
  background-color: #f8f9fa;
}

.md-events-container {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: var(--md-spacing-lg);
  height: 100%;
}

.md-events-left {
  background-color: var(--md-primary-color);
  color: var(--md-white-color);
  padding: var(--md-spacing-lg);
  border-radius: var(--md-border-radius);
  display: flex;
  flex-direction: column;
  height: 100%;
}

.md-events-left h2 {
  font-size: var(--md-font-size-large);
  margin-bottom: var(--md-spacing-sm);
}

.md-events-left p {
  overflow: hidden;
}

.md-events-left .md-btn {
  margin-top: auto;
  align-self: flex-start;
}

.md-btn-light {
  background-color: var(--md-white-color);
  color: var(--md-primary-color);
  border: 2px solid var(--md-white-color);
}

.md-btn-light:hover {
  background-color: transparent;
  color: var(--md-white-color);
}

.md-events-calendar {
  background-color: var(--md-white-color);
  border-radius: var(--md-border-radius);
  overflow: hidden;
  box-shadow: var(--md-box-shadow);
  display: flex;
  flex-direction: column;
  height: 100%;
}

.md-calendar-header {
  background-color: var(--md-primary-color);
  color: var(--md-white-color);
  padding: var(--md-spacing-sm) var(--md-spacing-md);
  display: flex;
  justify-content: space-between;
  align-items: center;
  flex-shrink: 0;
}

.md-event-list {
  flex-grow: 1;
  overflow-y: auto;
  padding: var(--md-spacing-sm);
}

.md-event-item {
  padding: var(--md-spacing-xs) var(--md-spacing-sm);
  border-bottom: 1px solid #eee;
  display: flex;
  gap: var(--md-spacing-sm);
}

.md-event-date {
  min-width: 50px;
  height: 50px;
  background-color: var(--md-light-color);
  border-radius: var(--md-border-radius);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}

.md-event-date .md-day {
  font-size: calc(var(--md-font-size-medium) * 1.1);
  font-weight: 700;
  color: var(--md-primary-color);
  line-height: 1;
}

.md-event-date .md-month {
  font-size: calc(var(--md-font-size-small) * 0.9);
  color: #666;
}

.md-event-details {
  flex-grow: 1;
  min-width: 0;
}

.md-event-details h4 {
  margin-bottom: 2px;
  color: var(--md-primary-color);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.md-event-details p {
  font-size: var(--md-font-size-small);
  color: #666;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

/**************************************** SELECTION / RECOMMENDATIONS BLOCK ***************************/

.md-recommendations-container {
  display: grid;
  grid-template-columns: 350px 1fr;
  gap: var(--md-spacing-lg);
  background-color: var(--md-white-color);
  border-radius: var(--md-border-radius);
  box-shadow: var(--md-box-shadow);
  overflow: hidden;
  margin: 0 var(--md-spacing-md) var(--md-spacing-lg) var(--md-spacing-md);
}

.md-recommendations-info {
  background: var(--md-primary-color-lighter-extended);
  color: var(--md-primary-lighter-extended-text-color);
  padding: var(--md-spacing-lg);
  display: flex;
  flex-direction: column;
  gap: var(--md-spacing-md);
}

.md-recommendations-dates {
  display: flex;
  align-items: center;
  gap: var(--md-spacing-xs);
  font-size: var(--md-font-size-small);
  opacity: 0.95;
  padding: var(--md-spacing-xs) var(--md-spacing-sm);
  background-color: rgba(255, 255, 255, 0.2);
  border-radius: calc(var(--md-border-radius) / 2);
  width: fit-content;
}

.md-recommendations-title {
  font-size: var(--md-font-size-xlarge);
  font-weight: 700;
  line-height: 1.2;
  margin-bottom: var(--md-spacing-sm);
}

.md-recommendations-description {
  font-size: var(--md-font-size-base);
  line-height: 1.6;
  opacity: 0.95;
  flex: 1;
}

.md-recommendations-icon {
  width: 60px;
  height: 60px;
  background-color: rgba(255, 255, 255, 0.2);
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  margin-top: auto;
}

.md-recommendations-books {
  padding: var(--md-spacing-lg);
  display: flex;
  flex-direction: column;
  gap: var(--md-spacing-md);
}

.md-selection-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
}

.md-selection-count {
  font-size: var(--md-font-size-small);
  color: #666;
  font-weight: 500;
}

.md-carousel-nav {
  display: flex;
  gap: var(--md-spacing-xs);
  align-items: center;
}

.md-carousel-nav.hidden {
  display: none;
}

.md-carousel-pagination {
  font-size: var(--md-font-size-small);
  color: #666;
  font-weight: 500;
  padding: 0 var(--md-spacing-sm);
}

.md-nav-button {
  background-color: var(--md-primary-color);
  color: var(--md-white-color);
  border: none;
  width: 36px;
  height: 36px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  transition: all 0.3s ease;
}

.md-nav-button:hover:not(:disabled) {
  background-color: var(--md-dark-color);
  transform: scale(1.1);
}

.md-nav-button:disabled {
  background-color: #ccc;
  cursor: not-allowed;
  opacity: 0.5;
}

.md-selection-carousel {
  position: relative;
  overflow: hidden;
}

.md-selection-track {
  display: flex;
  gap: var(--md-spacing-md);
  transition: transform 0.5s ease-in-out;
  flex-wrap: nowrap;
}

.md-selection-track[data-config="1"]:not(.has-carousel),
.md-selection-track[data-config="2"]:not(.has-carousel),
.md-selection-track[data-config="3"]:not(.has-carousel) {
  justify-content: center;
}

.md-selection-track.has-carousel {
  display: flex;
  flex-wrap: nowrap;
}

.md-selection-item {
  flex: 0 0 280px;
  background-color: var(--md-white-color);
  border-radius: var(--md-border-radius);
  box-shadow: var(--md-box-shadow);
  overflow: hidden;
  transition: all 0.3s ease;
}

.md-selection-item:hover {
  transform: translateY(-8px);
  box-shadow: var(--md-box-shadow-hover);
}

.md-selection-cover-wrapper {
  position: relative;
  height: 380px;
  background-color: #f8f9fa;
}

.md-selection-cover {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.md-selection-tags {
  position: absolute;
  top: var(--md-spacing-xs);
  right: var(--md-spacing-xs);
  display: flex;
  flex-direction: column;
  gap: var(--md-spacing-xs);
}

.md-selection-tag {
  background-color: var(--md-secondary-color);
  color: var(--md-white-color);
  padding: calc(var(--md-spacing-xs) / 2) var(--md-spacing-xs);
  border-radius: calc(var(--md-border-radius) / 2);
  font-size: calc(var(--md-font-size-small) * 0.9);
  font-weight: 600;
  text-align: center;
}

.md-selection-status {
  position: absolute;
  top: var(--md-spacing-xs);
  left: var(--md-spacing-xs);
  width: 16px;
  height: 16px;
  background-color: var(--md-success-color);
  border-radius: 50%;
  border: 3px solid var(--md-white-color);
  box-shadow: 0 2px 4px rgba(0,0,0,0.2);
}

.md-selection-status.unavailable {
  background-color: #e74c3c;
}

.md-selection-info {
  padding: var(--md-spacing-md);
}

.md-selection-title {
  font-size: var(--md-font-size-base);
  font-weight: 700;
  color: var(--md-dark-color);
  margin-bottom: var(--md-spacing-xs);
  overflow: hidden;
  text-overflow: ellipsis;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
}

.md-selection-author {
  font-size: var(--md-font-size-small);
  color: #666;
}

/**************************************** LIBRARY CARD (BIBLIOS) ***************************/

.md-library-puce {
  width: 50px;
  height: 50px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: help;
  margin-right: var(--md-spacing-sm);
}

.md-library-puce h3 {
  font-size: 1.5rem;
}

/**************************************** Grille des réservations tb admin ***************************/

.md-admin-resa-grid {
  display: grid;
  grid-template-columns: repeat(var(--md-grid-columns-md),1fr);
  gap: var(--md-spacing-lg);
  margin-top: var(--md-spacing-lg);
}

.md-admin-book-reservation {
  border-radius: var(--md-border-radius);
  overflow: hidden;
  background-color: var(--md-white-color);
  transition: all var(--md-transition-speed);
}

.md-admin-reservation-header {
  background-color: var(--md-primary-color);
  color: var(--md-white-color);
  padding: var(--md-spacing-sm) var(--md-spacing-md);
}

.md-admin-reservation-info {
  display: flex;
  justify-content: space-between;
  width: 100%;
}

.md-admin-reservation-info div {
  display: flex;
  flex-direction: column;
}

.md-admin-reservation-content {
  padding: var(--md-spacing-md);
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--md-spacing-md);
  flex-wrap: wrap;
  justify-content: center;
}

.md-admin-resa-book-cover {
  max-width: 172px;
  overflow: hidden;
  border-radius: calc(var(--md-border-radius) / 2);
  box-shadow: 0 2px 4px rgba(0,0,0,0.1);
}

.md-admin-resa-book-cover img {
  display: block;
  width: 100%;
  height: auto;
}

.md-admin-reservation-actions {
  width: 100%;
  text-align: center;
}

.md-status-icon-available {
  color: var(--md-success-color);
  font-size: 0.8em;
}

.md-status-icon-not-available {
  font-size: 0.8em;
  color: var(--md-danger-color);
}

/* Admin Content Grid */
.md-admin-content-grid {
  display: grid;
  grid-template-columns: repeat(var(--md-grid-columns-md),1fr);
  gap: var(--md-spacing-lg);
  margin-top: var(--md-spacing-lg);
}

/* Admin Suggestions Grid */
.md-admin-sugge-grid {
  display: grid;
  grid-template-columns: repeat(var(--md-grid-columns-md),1fr);
  gap: var(--md-spacing-lg);
  margin-top: var(--md-spacing-lg);
}

.md-admin-sugge-card {
  border-radius: var(--md-border-radius);
  background-color: var(--md-white-color);
  box-shadow: var(--md-box-shadow);
  overflow: hidden;
  transition: all var(--md-transition-speed);
}

.md-admin-sugge-card:hover {
  box-shadow: var(--md-box-shadow-hover);
}

.md-admin-sugge-content {
  padding: var(--md-spacing-md);
  display: flex;
  gap: var(--md-spacing-md);
}

.md-admin-sugge-book-cover {
  flex: 0 0 auto;
  margin-right: var(--md-spacing-md);
  box-shadow: var(--md-box-shadow);
  border-radius: calc(var(--md-border-radius) / 2);
}

.md-admin-sugge-book-cover img {
  width: 100%;
  height: auto;
  display: block;
}

.md-admin-sugge-book-info {
  flex: 1;
  min-width: 0;
}

.md-admin-sugge-book-title {
  display: flex;
  align-items: flex-start;
  gap: var(--md-spacing-sm);
  margin-bottom: var(--md-spacing-sm);
}

.md-admin-sugge-actions {
  display: flex;
  gap: var(--md-spacing-sm);
  align-items: center;
}

.md-admin-sugge-ratings {
  display: flex;
  gap: var(--md-spacing-xs);
}

/**************************************** Libraries List (BIBLIOS) ***************************/
.md-libraries-section,.md-library-content{
  background-color: #f8f9fa;
}

.md-libraries {
  padding: var(--md-spacing-xl) 0;
}

.md-libraries-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: var(--md-spacing-lg);
}

.md-libraries-title {
  font-size: var(--md-font-size-xlarge);
  color: var(--md-dark-color);
}

.md-libraries-grid {
  display: grid;
  grid-template-columns: repeat(var(--md-grid-columns-md), 1fr);
  gap: var(--md-spacing-lg);
}

#library-tabs{
  flex-wrap: wrap;
}

.md-library-card {
  background-color: var(--md-white-color);
  border-radius: var(--md-border-radius);
  overflow: hidden;
  box-shadow: var(--md-box-shadow);
  transition: transform var(--md-transition-speed), box-shadow var(--md-transition-speed);
  min-width: 100%;
  flex-shrink: 0;
}

.md-library-card:hover {
  transform: translateY(-5px);
  box-shadow: var(--md-box-shadow-hover);
}

.md-library-header {
  display: flex;
  align-items: center;
  gap: var(--md-spacing-md);
  padding: var(--md-spacing-md);
  background-color: var(--md-light-color);
}

.md-library-title {
  flex: 1;
}

.md-library-title h3 {
  color: var(--md-primary-color);
  font-size: var(--md-font-size-medium);
  margin-bottom: calc(var(--md-spacing-xs) / 2);
}

.md-status-badge {
  padding: var(--md-spacing-xs) var(--md-spacing-md);
  font-weight: 600;
  color: white;
  text-align: center;
}

.md-status-banner{
  padding: var(--md-spacing-xs);
}

.md-status-open {
  background-color: var(--md-success-color);
}

.md-status-closed {
  background-color: var(--md-danger-color);
}

.md-library-sections {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--md-spacing-lg);
  /*margin-top: var(--md-spacing-md);*/
}

.md-info-group {
  background-color: var(--md-light-color);
  border-radius: var(--md-border-radius);
  padding: var(--md-spacing-md);
  box-shadow: 0 1px 3px rgba(0,0,0,0.05);
}

.md-info-group h4 {
  margin-bottom: var(--md-spacing-sm);
  color: var(--md-dark-color);
  display: flex;
  align-items: center;
  gap: var(--md-spacing-xs);
  font-size: var(--md-font-size-medium);
  border-bottom: 1px solid rgba(0,0,0,0.1);
  padding-bottom: var(--md-spacing-xs);
}

.md-hours {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: var(--md-spacing-xs) var(--md-spacing-md);
  align-items: center;
}

.md-hours .md-day {
  font-weight: 500;
}

.md-hours .md-time {
  text-align: right;
}

.md-contact-info p {
  display: flex;
  align-items: center;
  gap: var(--md-spacing-xs);
  margin-bottom: var(--md-spacing-sm);
  padding: var(--md-spacing-xs);
  background-color: white;
  border-radius: var(--md-border-radius);
}

.md-contact-info p:last-child {
  margin-bottom: 0;
}

/* Featured Section */
.md-featured {
  padding: var(--md-spacing-xl) 0;
  background-color: var(--md-light-color);
}

.md-featured-container {
  display: grid;
  grid-template-columns: repeat(var(--md-grid-columns-md), 1fr);
  gap: var(--md-spacing-lg);
}

.md-info-card {
  background-color: var(--md-white-color);
  border-radius: var(--md-border-radius);
  overflow: hidden;
  box-shadow: var(--md-box-shadow);
}

.md-info-card-header {
  padding: var(--md-spacing-sm) var(--md-spacing-md);
  background-color: var(--md-primary-color);
  color: var(--md-white-color);
}

.md-info-card-body {
  padding: var(--md-spacing-md);
}

.md-opening-hours {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: var(--md-spacing-xs);
}

.md-day {
  font-weight: 500;
}

/**************************************** Footer ***************************/
.md-footer-section h3 {
  margin-bottom: var(--md-spacing-md);
  font-size: var(--md-font-size-medium);
  position: relative;
  padding-bottom: var(--md-spacing-xs);
}

.md-footer-section {
  padding-right: 20px;
}

.md-footer-section h3::after {
  content: '';
  position: absolute;
  left: 0;
  bottom: 0;
  height: 2px;
  width: 50px;
  background-color: var(--md-secondary-color);
}

.md-footer-section ul {
  list-style: none;
}

.md-footer-section ul li {
  margin-bottom: var(--md-spacing-xs);
}

.md-footer-section a {
  text-decoration: none;
  transition: color var(--md-transition-speed);
}

.md-footer-section .md-btn {
  color: var(--md-button-primary-text-color)!important;
}

.md-footer-section a:hover {
  color: var(--md-white-color);
}

.md-social-links {
  display: flex;
  gap: var(--md-spacing-sm);
  margin-top: var(--md-spacing-md);
}

.md-social-links a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px;
  background-color: rgba(255,255,255,0.1);
  border-radius: 50%;
  transition: background-color var(--md-transition-speed);
}

.md-social-links a:hover {
  background-color: var(--md-secondary-color);
}

.md-footer-bottom {
  text-align: center;
  padding-top: var(--md-spacing-md);
  border-top: 1px solid rgba(255,255,255,0.1);
  font-size: var(--md-font-size-small);
  color: #bbb;
}

.md-footer-section>h3{
 font-weight: bold;
}

/**************************************** Responsive medias query ***************************/
@media (min-width: 768px) {
  .md-admin-reservation-content {
    flex-direction: row;
  }

  .md-admin-reservation-actions {
    width: auto;
    display: flex;
    align-items: center;
  }
}

@media (max-width: 1200px) {
  .md-recommendations-container {
    grid-template-columns: 300px 1fr;
  }

  .md-selection-item {
    flex: 0 0 240px;
  }

  .md-selection-cover-wrapper {
    height: 320px;
  }
}

@media (max-width: 992px) {
  :root {
    --md-grid-columns-lg: var(--md-grid-columns-md);
  }

  .md-admin-resa-grid,
  .md-admin-content-grid {
    grid-template-columns: repeat(var(--md-grid-columns-sm),1fr);
  }

  .md-events-container {
    grid-template-columns: 1fr;
    grid-template-rows: auto 1fr;
  }

  .md-events-left {
    padding: var(--md-spacing-md);
  }

  .md-events-left p {
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
  }

  .md-admin-sugge-book-title,
  .md-admin-sugge-content {
    flex-direction: column;
  }

  .md-admin-sugge-book-cover {
    align-items: center;
    justify-content: center;
    display: flex;
    margin: unset;
    box-shadow: unset;
  }

  .md-admin-sugge-book-cover img {
    max-height: 150px;
  }

  .md-recommendations-container {
    grid-template-columns: 1fr;
  }

  .md-recommendations-info {
    padding: var(--md-spacing-md);
  }

  .md-recommendations-title {
    font-size: var(--md-font-size-large);
  }

  .md-selection-track[data-config="3"] {
    justify-content: center;
  }
}

@media (max-width: 768px) {
  :root {
    --md-grid-columns-md: var(--md-grid-columns-sm);
    --md-font-size-xxlarge: 2rem;
  }

  .md-nav ul {
    display: none;
  }

  .md-book-slider {
    grid-template-columns: repeat(auto-fill, minmax(150px, 1fr));
  }

  .md-library-header {
    flex-direction: column;
    text-align: center;
  }

  .md-libraries-header {
    flex-direction: column;
    gap: var(--md-spacing-md);
  }

  .md-libraries-title {
    text-align: center;
  }

  .md-admin-sugge-book-cover {
    flex: 0 0 auto;
    margin-right: 0;
    margin-bottom: var(--md-spacing-md);
    max-width: 120px;
    align-self: center;
  }

  .md-admin-sugge-actions {
    flex-direction: column;
    gap: var(--md-spacing-sm);
  }

  .md-admin-sugge-ratings {
    width: 100%;
    justify-content: center;
    margin-top: var(--md-spacing-xs);
  }

  /* Front page blocks */
  .md-front-block-image,
  .md-content-image {
    height: 200px;
  }

  .md-front-block-content,
  .md-content-body {
    padding: var(--md-spacing-md);
  }

  .md-front-block-content-title,
  .md-content-title {
    font-size: var(--md-font-size-medium);
  }

  .md-front-block-section-header,
  .md-block-header {
    flex-direction: column;
    gap: var(--md-spacing-md);
  }

  .md-front-block-section-header-title,
  .md-block-section-title {
    text-align: center;
  }

  .md-selection-item {
    flex: 0 0 200px;
  }

  .md-selection-cover-wrapper {
    height: 280px;
  }

  .md-selection-track {
    gap: var(--md-spacing-sm);
  }
}

@media (max-width: 576px) {
  :root {
    --md-grid-columns-sm: var(--md-grid-columns-xs);
    --md-font-size-xlarge: 1.8rem;
    --md-font-size-large: 1.3rem;
  }

  .md-admin-resa-grid,
  .md-admin-content-grid,
  .md-admin-sugge-grid {
    grid-template-columns: repeat(var(--md-grid-columns-xs),1fr);
  }
}

/**************************************** FAVORITES / COUPS DE COEUR BLOCK ***************************/

.md-favorites-section {
  max-width: 1200px;
  margin: 0 auto;
  padding: var(--md-spacing-xl) 0;
  background-color: #f8f9fa;
}

.md-favorites-header-section {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: var(--md-spacing-lg);
  max-width: 1000px;
  margin-left: auto;
  margin-right: auto;
  padding: 0 var(--md-spacing-md);
}

.md-favorites-section-title {
  display: flex;
  flex-direction: column;
  flex: 1;
  text-align: center;
}

.md-favorites-book-card {
  min-width: 100%;
  display: flex;
  justify-content: center;
  padding: var(--md-spacing-md);
}

.md-favorites-book-card-inner {
  background-color: var(--md-white-color);
  border-radius: var(--md-border-radius);
  overflow: hidden;
  box-shadow: var(--md-box-shadow);
  transition: transform 0.3s ease, box-shadow 0.3s ease;
  width: 250px;
}

.md-favorites-book-card-inner:hover {
  transform: translateY(-8px);
  box-shadow: var(--md-box-shadow-hover);
}

.md-favorites-book-card-inner:hover .md-book-overlay {
  opacity: 1;
}

.md-overlay-title {
  font-size: var(--md-font-size-medium);
  font-weight: 700;
  margin-bottom: var(--md-spacing-xs);
  border-bottom: 2px solid var(--md-secondary-color);
  padding-bottom: var(--md-spacing-xs);
}

.md-overlay-section {
  margin-bottom: var(--md-spacing-sm);
}

.md-overlay-section h4 {
  font-size: var(--md-font-size-small);
  font-weight: 600;
  margin-bottom: calc(var(--md-spacing-xs) / 2);
  color: var(--md-secondary-color);
}

.md-overlay-section p {
  font-size: var(--md-font-size-small);
  line-height: 1.5;
}

.md-library-note {
  background-color: rgba(255, 255, 255, 0.1);
  padding: var(--md-spacing-xs);
  border-radius: calc(var(--md-border-radius) / 2);
  font-style: italic;
}

.md-book-tags {
  position: absolute;
  top: var(--md-spacing-xs);
  right: var(--md-spacing-xs);
  display: flex;
  flex-direction: column;
  gap: var(--md-spacing-xs);
}

.md-book-author {
  font-size: var(--md-font-size-small);
  color: #666;
  margin-bottom: var(--md-spacing-xs);
}

/**************************************** COMMANDES / ORDERS BLOCK ***************************/

.md-front-block-commande-badge {
  background-color: var(--md-warning-color);
  color: var(--md-white-color);
  padding: var(--md-spacing-xs) var(--md-spacing-md);
  border-radius: var(--md-border-radius);
  font-weight: 600;
  text-align: center;
  display: flex;
  flex-direction: column;
  gap: calc(var(--md-spacing-xs) / 2);
  width: 100%;
}

.md-front-block-commande-cover {
  background-color: var(--md-light-color);
  padding: var(--md-spacing-lg);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: var(--md-spacing-md);
}

.md-front-block-commande-cover img {
  max-width: 100%;
  height: 350px;
  border-radius: calc(var(--md-border-radius) / 2);
  box-shadow: 0 4px 12px rgba(0,0,0,0.15);
}

.md-front-block-commande-label {
  font-size: var(--md-font-size-small);
  opacity: 0.95;
}

.md-front-block-commande-date {
  font-size: var(--md-font-size-medium);
  font-weight: 700;
}

.md-front-block-commande-content {
  padding: var(--md-spacing-lg);
  display: flex;
  flex-direction: column;
  gap: var(--md-spacing-md);
}

.md-front-block-commande-header {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
}

.md-front-block-commande-title {
  font-size: var(--md-font-size-large);
  color: var(--md-dark-color);
  font-weight: 700;
  margin-bottom: var(--md-spacing-xs);
  line-height: 1.3;
}

.md-front-block-commande-author {
  font-size: var(--md-font-size-base);
  color: #666;
  margin-bottom: calc(var(--md-spacing-xs) / 2);
}

.md-front-block-commande-publisher {
  font-size: var(--md-font-size-small);
  color: #888;
}

.md-front-block-commande-tags {
  display: flex;
  flex-wrap: wrap;
  gap: var(--md-spacing-xs);
  margin-top: var(--md-spacing-sm);
}

.md-front-block-commande-actions {
  margin-top: auto;
  display: flex;
  gap: var(--md-spacing-sm);
  padding-top: var(--md-spacing-md);
}

/**************************************** COMMENTS / REVIEWS BLOCK ***************************/

.md-review-card {
  min-width: 100%;
  padding: var(--md-spacing-md);
}

.md-review-card-inner {
  background-color: var(--md-white-color);
  border-radius: var(--md-border-radius);
  overflow: hidden;
  box-shadow: var(--md-box-shadow);
  transition: transform 0.3s ease, box-shadow 0.3s ease;
  display: grid;
  grid-template-columns: 250px 1fr;
  gap: var(--md-spacing-lg);
}

.md-review-card-inner:hover {
  transform: translateY(-5px);
  box-shadow: var(--md-box-shadow-hover);
}

.md-review-cover {
  padding: var(--md-spacing-lg);
  display: flex;
  align-items: center;
  justify-content: center;
}

.md-review-cover img {
  max-width: 100%;
  height: auto;
  border-radius: calc(var(--md-border-radius) / 2);
  box-shadow: 0 4px 12px rgba(0,0,0,0.15);
}

.md-review-content {
  padding: var(--md-spacing-lg);
  display: flex;
  flex-direction: column;
  gap: var(--md-spacing-md);
}

.md-review-book-title {
  font-size: var(--md-font-size-large);
  color: var(--md-primary-color);
  font-weight: 700;
  margin-bottom: var(--md-spacing-md);
  padding-bottom: var(--md-spacing-md);
  border-bottom: 2px solid var(--md-light-color);
  line-height: 1.3;
}

.md-comments-list {
  display: flex;
  flex-direction: column;
  gap: var(--md-spacing-md);
  flex: 1;
  overflow-y: auto;
  max-height: 300px;
  padding-right: var(--md-spacing-xs);
}

.md-comment-item {
  background-color: var(--md-light-color);
  padding: var(--md-spacing-md);
  border-radius: calc(var(--md-border-radius) / 2);
  border-left: 4px solid var(--md-primary-color);
  min-height: 100px;
}

.md-comment-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: var(--md-spacing-sm);
}

.md-comment-author {
  display: flex;
  align-items: center;
  gap: var(--md-spacing-xs);
  font-weight: 600;
  color: var(--md-dark-color);
}

.md-comment-rating {
  display: flex;
  gap: 2px;
  color: var(--md-warning-color);
}

.md-comment-text {
  line-height: 1.6;
  color: var(--md-text-color);
  margin-bottom: var(--md-spacing-sm);
}

.md-comment-date {
  font-size: var(--md-font-size-small);
  color: #666;
}

/**************************************** FAQ BLOCK ***************************/

.md-faq-section {
  max-width: 1000px;
  margin: 0 auto;
  padding: var(--md-spacing-xl) 0;
  background-color: var(--md-light-color);
}

.md-faq-item {
  background-color: var(--md-white-color);
  border-radius: var(--md-border-radius);
  box-shadow: var(--md-box-shadow);
  overflow: hidden;
  flex-shrink: 0;
  width: 80%;
  transition: box-shadow var(--md-transition-speed);
}

.md-faq-item:hover {
  box-shadow: var(--md-box-shadow-hover);
}

.md-faq-question {
  width: 100%;
  padding: var(--md-spacing-md);
  background-color: var(--md-white-color);
  border: none;
  text-align: left;
  font-size: var(--md-font-size-base);
  font-weight: 600;
  color: var(--md-dark-color);
  cursor: pointer;
  display: flex;
  justify-content: space-between;
  align-items: center;
  transition: background-color var(--md-transition-speed);
}

.md-faq-question:hover {
  background-color: var(--md-light-color);
}

.md-faq-item.active .md-faq-question {
  background-color: var(--md-primary-color);
  color: var(--md-white-color);
}

.md-faq-icon {
  font-size: var(--md-font-size-large);
  transition: transform var(--md-transition-speed);
}

.md-faq-item.active .md-faq-icon {
  transform: rotate(180deg);
}

.md-faq-answer {
  max-height: 0;
  overflow: hidden;
  transition: max-height 0.3s ease, padding 0.3s ease;
}

.md-faq-item.active .md-faq-answer {
  max-height: 500px;
  padding: var(--md-spacing-md);
  border-top: 1px solid var(--md-light-color);
}

.md-faq-answer-content {
  color: var(--md-text-color);
  line-height: 1.7;
  font-size: var(--md-font-size-base);
}

/**************************************** COMMUNIQUES BLOCK ***************************/

.md-communiques-grid {
  display: grid;
  grid-template-columns: repeat(var(--md-grid-columns-md), 1fr);
  gap: var(--md-spacing-lg);
  margin-top: var(--md-spacing-lg);
}

.md-communique-card {
  background-color: var(--md-white-color);
  border-radius: var(--md-border-radius);
  box-shadow: var(--md-box-shadow);
  overflow: hidden;
  transition: transform var(--md-transition-speed), box-shadow var(--md-transition-speed);
}

.md-communique-card:hover {
  transform: translateY(-5px);
  box-shadow: var(--md-box-shadow-hover);
}

.md-communique-header {
  background-color: var(--md-primary-color);
  color: var(--md-white-color);
  padding: var(--md-spacing-md);
}

.md-communique-title {
  font-size: var(--md-font-size-medium);
  font-weight: 700;
  margin-bottom: var(--md-spacing-xs);
}

.md-communique-meta {
  font-size: var(--md-font-size-small);
  opacity: 0.9;
  display: flex;
  align-items: center;
  gap: var(--md-spacing-xs);
}

.md-communique-body {
  padding: var(--md-spacing-md);
}

.md-communique-text {
  line-height: 1.7;
  color: var(--md-text-color);
  margin-bottom: var(--md-spacing-md);
}

.md-communique-footer {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding-top: var(--md-spacing-md);
  border-top: 1px solid var(--md-light-color);
}

/**************************************** SUGGESTIONS BLOCK ***************************/

.md-suggestions-grid {
  display: grid;
  grid-template-columns: repeat(var(--md-grid-columns-md), 1fr);
  gap: var(--md-spacing-lg);
}

.md-suggestion-card {
  background-color: var(--md-white-color);
  border-radius: var(--md-border-radius);
  box-shadow: var(--md-box-shadow);
  overflow: hidden;
  transition: transform var(--md-transition-speed), box-shadow var(--md-transition-speed);
}

.md-suggestion-card:hover {
  transform: translateY(-5px);
  box-shadow: var(--md-box-shadow-hover);
}

.md-suggestion-content {
  padding: var(--md-spacing-md);
  display: flex;
  gap: var(--md-spacing-md);
}

.md-suggestion-cover {
  flex: 0 0 auto;
}

.md-suggestion-cover img {
  width: 100%;
  height: auto;
  border-radius: calc(var(--md-border-radius) / 2);
  box-shadow: 0 2px 8px rgba(0,0,0,0.1);
}

.md-suggestion-info {
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: var(--md-spacing-xs);
}

.md-suggestion-title {
  font-size: var(--md-font-size-base);
  font-weight: 700;
  color: var(--md-primary-color);
  margin-bottom: var(--md-spacing-xs);
}

.md-suggestion-author {
  font-size: var(--md-font-size-small);
  color: #666;
}

.md-suggestion-meta {
  display: flex;
  flex-direction: column;
  gap: calc(var(--md-spacing-xs) / 2);
  font-size: var(--md-font-size-small);
  color: #666;
  margin-top: var(--md-spacing-xs);
}

.md-suggestion-footer {
  padding: var(--md-spacing-md);
  background-color: var(--md-light-color);
  display: flex;
  justify-content: space-between;
  align-items: center;
}

.md-suggestion-status {
  font-size: var(--md-font-size-small);
  padding: calc(var(--md-spacing-xs) / 2) var(--md-spacing-sm);
  border-radius: calc(var(--md-border-radius) / 2);
  font-weight: 600;
}

.md-suggestion-status-pending {
  background-color: #fff8eb;
  color: var(--md-warning-color);
}

.md-suggestion-status-approved {
  background-color: #e8f5e9;
  color: var(--md-success-color);
}

.md-suggestion-status-rejected {
  background-color: #ffebee;
  color: var(--md-danger-color);
}

/**************************************** Responsive for new blocks ***************************/

@media (max-width: 768px) {
  .md-favorites-header-section {
    flex-direction: column;
    gap: var(--md-spacing-md);
  }

  .md-favorites-book-card-inner {
    width: 200px;
  }

  .md-review-card-inner {
    grid-template-columns: 1fr;
  }

  .md-communiques-grid,
  .md-suggestions-grid {
    grid-template-columns: 1fr;
  }

  .md-suggestion-content {
    flex-direction: column;
    align-items: center;
  }

  .md-suggestion-cover {
    max-width: 180px;
  }
}

.md-btn-outlined {
  background-color: transparent;
  color: var(--md-primary-color);
  border: 2px solid var(--md-primary-color);
}

.md-btn-outlined:hover {
  background-color: rgba(26, 82, 118, 0.1);
}

.md-rss-icon {
  width: 40px;
  height: 40px;
  background-color: var(--md-secondary-color);
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--md-white-color);
  cursor: pointer;
  transition: all 0.3s ease;
}

.md-rss-icon:hover {
  background-color: #e67e22;
  transform: scale(1.1);
}

.md-author-name {
  font-weight: 600;
  color: var(--md-dark-color);
  font-size: var(--md-font-size-base);
}

.md-faq-container {
  display: flex;
  flex-direction: column;
  gap: var(--md-spacing-md);
  overflow-y: auto;
  padding: var(--md-spacing-md) 0;
  align-items: center;
  height: calc(var(--md-carousel-block-height) - 80px);
}

.md-question-content {
  display: flex;
  align-items: center;
  gap: var(--md-spacing-sm);
  flex: 1;
}

.md-question-icon {
  width: 28px;
  height: 28px;
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--md-secondary-color);
  flex-shrink: 0;
}

.md-faq-item.active .md-question-icon {
  color: var(--md-white-color);
}

.md-question-text {
  font-size: var(--md-font-size-medium);
  font-weight: 600;
  color: var(--md-dark-color);
}

.md-faq-item.active .md-question-text {
  color: var(--md-white-color);
}

.md-toggle-icon {
  width: 32px;
  height: 32px;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  background-color: var(--md-light-color);
  color: var(--md-primary-color);
  transition: all 0.3s ease;
  flex-shrink: 0;
}

.md-faq-item.active .md-toggle-icon {
  background-color: var(--md-white-color);
  color: var(--md-primary-color);
  transform: rotate(45deg);
}

.md-answer-content {
  color: var(--md-text-color);
  line-height: 1.7;
  font-size: var(--md-font-size-base);
}

.md-answer-content p {
  margin-bottom: var(--md-spacing-sm);
}

.md-answer-content p:last-child {
  margin-bottom: 0;
}

@media (max-width: 768px) {
  .md-faq-container {
    max-height: 500px;
  }

  .md-question-text {
    font-size: var(--md-font-size-base);
  }

  .md-faq-question {
    padding: var(--md-spacing-sm);
  }

  .md-faq-item.active .md-faq-answer {
    padding: var(--md-spacing-sm);
  }
}

.md-suggestion-card-inner {
  background-color: var(--md-white-color);
  border-radius: var(--md-border-radius);
  overflow: hidden;
  box-shadow: var(--md-box-shadow);
  transition: transform 0.3s ease, box-shadow 0.3s ease;
  display: grid;
  grid-template-columns: 300px 1fr;
  gap: var(--md-spacing-lg);
  height: 100%;
}

.md-suggestion-cover {
  padding: var(--md-spacing-lg);
  display: flex;
  align-items: center;
  justify-content: center;
}

.md-suggestion-cover img {
  max-width: 100%;
  height: auto;
  border-radius: calc(var(--md-border-radius) / 2);
  box-shadow: 0 4px 12px rgba(0,0,0,0.15);
}

.md-suggestion-content {
  padding: var(--md-spacing-lg);
  display: flex;
  flex-direction: column;
  gap: var(--md-spacing-md);
}

.md-suggestion-header {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: var(--md-spacing-md);
}

.md-suggestion-info {
  flex: 1;
}

.md-suggestion-title {
  font-size: var(--md-font-size-large);
  color: var(--md-dark-color);
  font-weight: 700;
  margin-bottom: var(--md-spacing-xs);
  line-height: 1.3;
}

.md-suggestion-author {
  font-size: var(--md-font-size-base);
  color: #666;
  margin-bottom: calc(var(--md-spacing-xs) / 2);
}

.md-suggestion-publisher {
  font-size: var(--md-font-size-small);
  color: #888;
}

.md-suggestion-tags {
  display: flex;
  flex-wrap: wrap;
  gap: var(--md-spacing-xs);
  margin-top: var(--md-spacing-sm);
}

.md-suggestion-summary {
  background-color: var(--md-light-color);
  padding: var(--md-spacing-md);
  border-radius: calc(var(--md-border-radius) / 2);
  border-left: 4px solid var(--md-primary-color);
}

.md-suggestion-summary h4 {
  font-size: var(--md-font-size-base);
  font-weight: 600;
  margin-bottom: var(--md-spacing-xs);
  color: var(--md-dark-color);
}

.md-suggestion-footer {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding-top: var(--md-spacing-md);
  border-top: 1px solid var(--md-light-color);
  margin-top: auto;
}

.md-suggestion-stats {
  display: flex;
  align-items: center;
  gap: var(--md-spacing-md);
}

.md-stat-item {
  display: flex;
  align-items: center;
  gap: var(--md-spacing-xs);
  padding: var(--md-spacing-xs) var(--md-spacing-sm);
  background-color: var(--md-light-color);
  border-radius: calc(var(--md-border-radius) / 2);
}

.md-stat-icon {
  color: var(--md-primary-color);
  display: flex;
  align-items: center;
}

.md-stat-count {
  font-weight: 700;
  color: var(--md-primary-color);
  font-size: var(--md-font-size-medium);
}

.md-stat-label {
  font-size: var(--md-font-size-small);
  color: #666;
}

.md-suggestion-actions {
  display: flex;
  gap: var(--md-spacing-sm);
}

/* Section principale */
.md-subscriptions-section {
  padding: var(--md-spacing-xl) 0;
  background-color: var(--md-light-color);
  min-height: 100vh;
}

/* Statistiques rapides */
.md-subscriptions-stats {
  display: flex;
  gap: var(--md-spacing-md);
  margin-bottom: var(--md-spacing-xl);
  justify-content: center;
}

.md-stat-card {
  background-color: var(--md-white-color);
  border-radius: var(--md-border-radius);
  padding: var(--md-spacing-lg);
  box-shadow: var(--md-box-shadow);
  display: flex;
  align-items: center;
  gap: var(--md-spacing-md);
  min-width: 250px;
  transition: transform var(--md-transition-speed), box-shadow var(--md-transition-speed);
}

.md-stat-card:hover {
  transform: translateY(-2px);
  box-shadow: var(--md-box-shadow-hover);
}

.md-stat-icon {
  width: 48px;
  height: 48px;
  border-radius: 50%;
  background-color: var(--md-light-color);
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--md-primary-color);
  flex-shrink: 0;
}

.md-stat-content {
  flex: 1;
}

.md-stat-value {
  font-size: 1.75rem;
  font-weight: 700;
  color: var(--md-dark-color);
  line-height: 1;
  margin-bottom: var(--md-spacing-xs);
}

.md-stat-label {
  font-size: var(--md-font-size-small);
  color: var(--md-text-color);
  text-transform: uppercase;
  letter-spacing: 0.5px;
}

/* Wrapper du tableau avec scroll horizontal sur mobile */
.md-subscriptions-table-wrapper {
  background-color: var(--md-white-color);
  border-radius: var(--md-border-radius);
  box-shadow: var(--md-box-shadow);
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
}

/* Tableau */
.md-subscriptions-table {
  width: 100%;
  border-collapse: collapse;
  font-size: var(--md-font-size-base);
}

/* En-tête du tableau */
.md-subscriptions-table thead {
  background-color: var(--md-primary-color);
  color: var(--md-white-color);
}

.md-subscriptions-table thead th {
  padding: var(--md-spacing-md);
  text-align: left;
  font-weight: 600;
  font-size: var(--md-font-size-base);
  white-space: nowrap;
  border-bottom: 2px solid var(--md-dark-color);
}

.md-subscriptions-table thead th.md-text-center {
  text-align: center;
}

/* Lignes du tableau */
.md-subscriptions-table tbody tr {
  border-bottom: 1px solid var(--md-light-color);
  transition: background-color var(--md-transition-speed);
}

.md-subscriptions-table tbody tr:hover {
  background-color: #f8f9fa;
}

.md-subscriptions-table tbody tr:last-child {
  border-bottom: none;
}

/* Cellules du tableau */
.md-subscriptions-table tbody td {
  padding: var(--md-spacing-md);
  vertical-align: middle;
  color: var(--md-text-color);
}

.md-subscriptions-table tbody td.md-text-center {
  text-align: center;
}

/* Info abonné avec avatar */
.md-subscriber-info {
  display: flex;
  align-items: center;
  gap: var(--md-spacing-sm);
}

.md-subscriber-avatar {
  width: 36px;
  height: 36px;
  border-radius: 50%;
  background-color: var(--md-light-color);
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--md-primary-color);
  flex-shrink: 0;
}

.md-subscriber-name {
  font-weight: 600;
  color: var(--md-dark-color);
}

/* Container email avec warning */
.md-email-container {
  display: flex;
  align-items: center;
  gap: var(--md-spacing-xs);
}

.md-status-warning {
  flex-shrink: 0;
  color: #dc3545;
  cursor: help;
  display: flex;
  align-items: center;
  transition: transform var(--md-transition-speed);
}

.md-status-warning:hover {
  transform: scale(1.1);
}

.md-email-link {
  color: var(--md-primary-color);
  text-decoration: none;
  transition: color var(--md-transition-speed);
  display: inline-flex;
  align-items: center;
  gap: var(--md-spacing-xs);
}

.md-email-link:hover {
  color: var(--md-dark-color);
  text-decoration: underline;
}

/* Badges de type d'abonnement */
.md-subscription-badge {
  display: inline-flex;
  align-items: center;
  padding: calc(var(--md-spacing-xs) / 2) var(--md-spacing-sm);
  border-radius: calc(var(--md-border-radius) / 2);
  font-size: var(--md-font-size-small);
  font-weight: 600;
  white-space: nowrap;
}

/* Types spécifiques */
.md-badge-communiques, .md-badge-communique{
  background-color: #e3f2fd;
  color: #1976d2;
}

.md-badge-catalogue {
  background-color: #f3e5f5;
  color: #7b1fa2;
}

.md-badge-animations,.md-badge-animation {
  background-color: #fff3e0;
  color: #f57c00;
}

.md-badge-newsletter {
  background-color: #e8f5e9;
  color: #388e3c;
}

.md-badge-evenements, .md-badge-evenement {
  background-color: #fce4ec;
  color: #c2185b;
}

.md-badge-nouveautes,.md-badge-nouveaute {
  background-color: #e1f5fe;
  color: #0277bd;
}

.md-badge-actualites, .md-badge-actualite {
  background-color: #fff9c4;
  color: #f57f17;
}

/* Badge par défaut pour types non définis */
.md-subscription-badge:not([class*="md-badge-"]):not(.md-badge-communiques):not(.md-badge-catalogue):not(.md-badge-animations):not(.md-badge-newsletter):not(.md-badge-evenements):not(.md-badge-nouveautes):not(.md-badge-actualites) {
  background-color: #f5f5f5;
  color: #616161;
}

/* État vide */
.md-empty-state {
  background-color: var(--md-white-color);
  border-radius: var(--md-border-radius);
  padding: var(--md-spacing-xl);
  text-align: center;
  box-shadow: var(--md-box-shadow);
}

.md-empty-icon {
  width: 80px;
  height: 80px;
  margin: 0 auto var(--md-spacing-md);
  border-radius: 50%;
  background-color: var(--md-light-color);
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--md-text-color);
}

.md-empty-title {
  font-size: 1.5rem;
  font-weight: 600;
  color: var(--md-dark-color);
  margin-bottom: var(--md-spacing-sm);
}

.md-empty-description {
  font-size: var(--md-font-size-base);
  color: var(--md-text-color);
  max-width: 400px;
  margin: 0 auto;
}

/* Animations de suppression */
.md-subscriptions-table tbody tr {
  transition: opacity 0.3s ease, transform 0.3s ease;
}

/**************************************** RESPONSIVE ***************************/

/* Tablette */
@media (max-width: 992px) {
  .md-subscriptions-table {
    font-size: var(--md-font-size-small);
  }

  .md-subscriptions-table thead th,
  .md-subscriptions-table tbody td {
    padding: var(--md-spacing-sm);
  }
}

/* Mobile */
@media (max-width: 768px) {
  .md-subscriptions-section {
    padding: var(--md-spacing-lg) 0;
  }

  .md-subscriptions-stats {
    flex-direction: column;
  }

  .md-stat-card {
    min-width: auto;
    width: 100%;
  }

  /* Scroll horizontal sur mobile */
  .md-subscriptions-table-wrapper {
    border-radius: var(--md-border-radius);
  }

  .md-subscriptions-table {
    min-width: 600px;
  }

  .md-subscriptions-table thead th,
  .md-subscriptions-table tbody td {
    padding: var(--md-spacing-xs) var(--md-spacing-sm);
    font-size: var(--md-font-size-small);
  }

  .md-subscriber-name {
    font-size: var(--md-font-size-small);
  }

  .md-email-link {
    font-size: var(--md-font-size-small);
  }
}

/**************************************** USER SUBSCRIPTIONS ***************************/

/* Section principale */
.md-user-subscriptions-section {
  padding: var(--md-spacing-xl) 0;
  background-color: var(--md-light-color);
  min-height: calc(100vh - 200px);
}

/* Bannière d'information (bleue claire) */
.md-info-banner {
  background: var(--md-primary-color-lighter-extended);
  color:var(--md-primary-lighter-extended-text-color);
  border-radius: var(--md-border-radius);
  padding: var(--md-spacing-lg);
  display: flex;
  gap: var(--md-spacing-md);
  margin-bottom: var(--md-spacing-xl);
  box-shadow: 0 2px 8px rgba(33, 150, 243, 0.1);
  border-left: 4px solid var(--md-primary-color);
}

.md-info-icon {
  width: 48px;
  height: 48px;
  border-radius: 50%;
  background-color: var(--md-primary-color);
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--md-white-color);
  flex-shrink: 0;
}

.md-info-content {
  flex: 1;
}

.md-info-title {
  font-size: 1.5rem;
  font-weight: 700;
  color: var(--md-dark-color);
  margin-bottom: var(--md-spacing-sm);
}

.md-info-description {
  font-size: var(--md-font-size-base);
  color: var(--md-text-color);
  line-height: 1.6;
}

/* Wrapper du tableau utilisateur */
.md-user-subscriptions-table-wrapper {
  background-color: var(--md-white-color);
  border-radius: var(--md-border-radius);
  box-shadow: var(--md-box-shadow);
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
}

/* Tableau utilisateur */
.md-user-subscriptions-table {
  width: 100%;
  border-collapse: collapse;
  font-size: var(--md-font-size-base);
}

/* En-tête du tableau */
.md-user-subscriptions-table thead {
  background-color: var(--md-primary-color);
  color: var(--md-white-color);
}

.md-user-subscriptions-table thead th {
  padding: var(--md-spacing-md);
  text-align: left;
  font-weight: 600;
  font-size: var(--md-font-size-base);
  white-space: nowrap;
  border-bottom: 2px solid var(--md-dark-color);
}

.md-user-subscriptions-table thead th.md-text-center {
  text-align: center;
}

/* Lignes du tableau */
.md-user-subscriptions-table tbody tr {
  border-bottom: 1px solid var(--md-light-color);
  transition: background-color var(--md-transition-speed), opacity 0.3s ease, transform 0.3s ease;
}

.md-user-subscriptions-table tbody tr:hover {
  background-color: #f8f9fa;
}

.md-user-subscriptions-table tbody tr:last-child {
  border-bottom: none;
}

/* Cellules du tableau */
.md-user-subscriptions-table tbody td {
  padding: var(--md-spacing-md);
  vertical-align: middle;
  color: var(--md-text-color);
}

.md-user-subscriptions-table tbody td.md-text-center {
  text-align: center;
}

/* Email avec actions (warning + bouton renvoi) */
.md-email-actions {
  display: flex;
  flex-direction: column;
  gap: var(--md-spacing-xs);
}

.md-user-email {
  font-weight: 500;
  color: var(--md-dark-color);
}

.md-email-status {
  display: flex;
  align-items: center;
  gap: var(--md-spacing-xs);
}

/* Type d'abonnement avec badge et aide */
.md-subscription-type {
  display: flex;
  align-items: center;
  gap: var(--md-spacing-xs);
}

/* Boutons icône (renvoi email et aide) */
.md-btn-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 32px;
  height: 32px;
  border: none;
  border-radius: 50%;
  background-color: transparent;
  cursor: pointer;
  transition: all var(--md-transition-speed);
  flex-shrink: 0;
}

.md-btn-icon:hover {
  transform: scale(1.1);
}

/* Bouton renvoi email */
.md-btn-resend {
  color: var(--md-primary-color);
  background-color: rgba(33, 150, 243, 0.1);
}

.md-btn-resend:hover {
  background-color: rgba(33, 150, 243, 0.2);
}

/* Bouton aide */
.md-btn-help {
  color: #666;
  background-color: #f5f5f5;
}

.md-btn-help:hover {
  background-color: #e0e0e0;
  color: var(--md-dark-color);
}

/**************************************** RESPONSIVE ***************************/

/* Tablette */
@media (max-width: 992px) {
  .md-user-subscriptions-table {
    font-size: var(--md-font-size-small);
  }

  .md-user-subscriptions-table thead th,
  .md-user-subscriptions-table tbody td {
    padding: var(--md-spacing-sm);
  }

  .md-info-title {
    font-size: 1.25rem;
  }
}

/* Mobile */
@media (max-width: 768px) {
  .md-user-subscriptions-section {
    padding: var(--md-spacing-lg) 0;
  }

  .md-info-banner {
    flex-direction: column;
    text-align: center;
    padding: var(--md-spacing-md);
  }

  .md-info-icon {
    margin: 0 auto;
  }

  .md-info-title {
    font-size: 1.125rem;
  }

  .md-info-description {
    font-size: var(--md-font-size-small);
  }

  /* Scroll horizontal sur mobile */
  .md-user-subscriptions-table-wrapper {
    border-radius: var(--md-border-radius);
  }

  .md-user-subscriptions-table {
    min-width: 600px;
  }

  .md-user-subscriptions-table thead th,
  .md-user-subscriptions-table tbody td {
    padding: var(--md-spacing-xs) var(--md-spacing-sm);
    font-size: var(--md-font-size-small);
  }

  .md-user-email {
    font-size: var(--md-font-size-small);
  }

  .md-btn-icon {
    width: 28px;
    height: 28px;
  }

  .md-btn-icon svg {
    width: 16px;
    height: 16px;
  }
}

/**************************************** COMMENTS MANAGEMENT ***************************/

/* Section principale */
.md-comments-management-section {
  padding: var(--md-spacing-xl) 0;
  background-color: var(--md-light-color);
  min-height: calc(100vh - 200px);
}

/* Bannière d'information */
.md-info-banner {
  background: var(--md-primary-color-lighter-extended);
  color:var(--md-primary-lighter-extended-text-color);
  border-radius: var(--md-border-radius);
  padding: var(--md-spacing-lg);
  margin-bottom: var(--md-spacing-xl);
  box-shadow: 0 2px 8px rgba(33, 150, 243, 0.1);
  border-left: 4px solid var(--md-primary-color);
}

.md-info-content {
  flex: 1;
}

.md-info-description {
  font-size: var(--md-font-size-base);
  color: var(--md-text-color);
  line-height: 1.6;
  margin: 0;
}

/* Grid des livres avec commentaires */
.md-comments-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: var(--md-spacing-lg);
}

/* Card de livre avec commentaires */
.md-comment-book-card {
  background-color: var(--md-white-color);
  border-radius: var(--md-border-radius);
  box-shadow: var(--md-box-shadow);
  overflow: hidden;
  transition: transform var(--md-transition-speed), box-shadow var(--md-transition-speed);
}

.md-comment-book-card:hover {
  transform: translateY(-2px);
  box-shadow: var(--md-box-shadow-hover);
}

/* Header du livre (couverture) */
.md-comment-book-header {
  background-color: var(--md-primary-color);
  color: var(--md-white-color);
  padding: var(--md-spacing-lg);
  min-height: 160px;
  display: flex;
  align-items: center;
  justify-content: center;
}

/* Liste des commentaires du livre */
.md-comment-book-comments {
  padding: var(--md-spacing-md);
}

/**************************************** COMMENT ITEM ***************************/

/* Item commentaire */
.md-comment-item {
  background-color: var(--md-white-color);
  border: 1px solid var(--md-light-color);
  border-radius: var(--md-border-radius);
  padding: var(--md-spacing-md);
  margin-bottom: var(--md-spacing-md);
  transition: border-color var(--md-transition-speed);
}

.md-comment-item:last-child {
  margin-bottom: 0;
}

.md-comment-item:hover {
  border-color: var(--md-primary-color);
}

/* Header du commentaire */
.md-comment-header {
  display: flex;
  gap: var(--md-spacing-md);
  margin-bottom: var(--md-spacing-md);
  padding-bottom: var(--md-spacing-md);
  border-bottom: 1px solid var(--md-light-color);
}

/* Avatar */
.md-comment-avatar {
  width: 64px;
  height: 64px;
  border-radius: 50%;
  overflow: hidden;
  flex-shrink: 0;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
}

.md-comment-avatar img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

/* Informations du commentaire */
.md-comment-info {
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: calc(var(--md-spacing-xs) / 2);
}

/* Badge du commentaire */
.md-comment-badge {
  display: inline-flex;
  align-items: center;
  padding: calc(var(--md-spacing-xs) / 2) var(--md-spacing-sm);
  border-radius: calc(var(--md-border-radius) / 2);
  font-size: var(--md-font-size-small);
  font-weight: 600;
  width: fit-content;
}

.md-badge-pending {
  background-color: #fff9c4;
  color: #f57f17;
}

.md-badge-published {
  background-color: #e8f5e9;
  color: #388e3c;
}

/* Auteur et date */
.md-comment-author {
  font-weight: 600;
  color: var(--md-dark-color);
  font-size: var(--md-font-size-base);
}

.md-comment-date {
  display: flex;
  align-items: center;
  gap: calc(var(--md-spacing-xs) / 2);
  font-size: var(--md-font-size-small);
  color: var(--md-text-color);
}

.md-comment-date svg {
  flex-shrink: 0;
}

/* Corps du commentaire */
.md-comment-body {
  padding: var(--md-spacing-md) 0;
  color: var(--md-text-color);
  line-height: 1.6;
  font-size: var(--md-font-size-base);
}

/* Footer avec actions */
.md-comment-footer {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding-top: var(--md-spacing-md);
  border-top: 1px solid var(--md-light-color);
}

/* Bouton texte (Répondre) */
.md-btn-text {
  display: inline-flex;
  align-items: center;
  gap: var(--md-spacing-xs);
  padding: var(--md-spacing-xs) var(--md-spacing-sm);
  background-color: transparent;
  border: none;
  color: var(--md-primary-color);
  font-size: var(--md-font-size-small);
  font-weight: 600;
  cursor: pointer;
  border-radius: calc(var(--md-border-radius) / 2);
  transition: background-color var(--md-transition-speed), color var(--md-transition-speed);
}

.md-btn-text:hover {
  background-color: rgba(33, 150, 243, 0.1);
  color: var(--md-dark-color);
}

.md-btn-text svg {
  flex-shrink: 0;
}

/* Actions de modération */
.md-comment-actions {
  display: flex;
  gap: var(--md-spacing-xs);
}

/* Bouton icône (actions) */
.md-btn-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 36px;
  height: 36px;
  border: none;
  border-radius: 50%;
  cursor: pointer;
  transition: all var(--md-transition-speed);
}

.md-btn-icon:hover {
  transform: scale(1.1);
}

/* Bouton succès (valider) */
.md-btn-success {
  background-color: rgba(76, 175, 80, 0.1);
  color: #4caf50;
}

.md-btn-success:hover {
  background-color: rgba(76, 175, 80, 0.2);
}

/* Bouton éditer */
.md-btn-edit {
  background-color: rgba(33, 150, 243, 0.1);
  color: var(--md-primary-color);
}

.md-btn-edit:hover {
  background-color: rgba(33, 150, 243, 0.2);
}

/* Bouton supprimer */
.md-btn-delete {
  background-color: rgba(244, 67, 54, 0.1);
  color: #f44336;
}

.md-btn-delete:hover {
  background-color: rgba(244, 67, 54, 0.2);
}

/* Container pour réponses (chargement dynamique) */
.md-comment-item > div[class^="cid-"] {
  margin-top: var(--md-spacing-md);
  padding-left: var(--md-spacing-lg);
  border-left: 2px solid var(--md-light-color);
}

/**************************************** RESPONSIVE ***************************/

/* Tablette */
@media (max-width: 992px) {
  .md-comments-grid {
    grid-template-columns: 1fr;
  }

  .md-comment-book-header {
    min-height: 140px;
  }
}

/* Mobile */
@media (max-width: 768px) {
  .md-comments-management-section {
    padding: var(--md-spacing-lg) 0;
  }

  .md-info-banner {
    padding: var(--md-spacing-md);
  }

  .md-info-description {
    font-size: var(--md-font-size-small);
  }

  .md-comment-book-header {
    min-height: 120px;
    padding: var(--md-spacing-md);
  }

  .md-comment-book-comments {
    padding: var(--md-spacing-sm);
  }

  .md-comment-item {
    padding: var(--md-spacing-sm);
  }

  .md-comment-header {
    flex-direction: column;
    align-items: center;
    text-align: center;
  }

  .md-comment-avatar {
    width: 56px;
    height: 56px;
  }

  .md-comment-info {
    align-items: center;
  }

  .md-comment-footer {
    flex-direction: column;
    gap: var(--md-spacing-sm);
    align-items: stretch;
  }

  .md-btn-text {
    justify-content: center;
  }

  .md-comment-actions {
    justify-content: center;
  }
}

/**************************************** TAGS MANAGEMENT ***************************/

/* Section principale */
.md-tags-management-section {
  padding: var(--md-spacing-xl) 0;
  background-color: var(--md-light-color);
  min-height: calc(100vh - 200px);
}

/* Grid des livres avec tags */
.md-tags-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: var(--md-spacing-lg);
}

/* Card de livre avec tags */
.md-tag-book-card {
  background-color: var(--md-white-color);
  border-radius: var(--md-border-radius);
  box-shadow: var(--md-box-shadow);
  overflow: hidden;
  transition: transform var(--md-transition-speed), box-shadow var(--md-transition-speed);
}

.md-tag-book-card:hover {
  transform: translateY(-2px);
  box-shadow: var(--md-box-shadow-hover);
}

/* Header du livre (couverture) */
.md-tag-book-header {
  background-color: var(--md-primary-color);
  color: var(--md-white-color);
  padding: var(--md-spacing-lg);
  min-height: 160px;
  display: flex;
  align-items: center;
  justify-content: center;
}

/* Liste des tags du livre */
.md-tag-book-tags {
  padding: var(--md-spacing-md);
  display: flex;
  flex-wrap: wrap;
  gap: var(--md-spacing-sm);
}

/**************************************** TAG ITEM ***************************/

/* Item tag */
.md-tag-item {
  display: inline-flex;
  align-items: center;
  gap: var(--md-spacing-xs);
  background-color: #fff9c4;
  border: 1px solid #f57f17;
  border-radius: calc(var(--md-border-radius) / 2);
  padding: calc(var(--md-spacing-xs) / 2) var(--md-spacing-sm);
  transition: all var(--md-transition-speed);
}

.md-tag-item:hover {
  transform: translateY(-2px);
  box-shadow: 0 2px 8px rgba(245, 127, 23, 0.2);
}

/* Label du tag */
.md-tag-label {
  font-size: var(--md-font-size-small);
  font-weight: 600;
  color: #f57f17;
}

/* Actions du tag */
.md-tag-actions {
  display: flex;
  gap: 2px;
  align-items: center;
}

/* Bouton icône petit */
.md-btn-icon-sm {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 24px;
  height: 24px;
  border: none;
  border-radius: 50%;
  cursor: pointer;
  transition: all var(--md-transition-speed);
  padding: 0;
}

.md-btn-icon-sm:hover {
  transform: scale(1.15);
}

/* Bouton valider (vert) */
.md-btn-validate {
  background-color: rgba(76, 175, 80, 0.2);
  color: #4caf50;
}

.md-btn-validate:hover {
  background-color: rgba(76, 175, 80, 0.3);
}

/* Bouton supprimer tag (rouge) */
.md-btn-delete-tag {
  background-color: rgba(244, 67, 54, 0.2);
  color: #f44336;
}

.md-btn-delete-tag:hover {
  background-color: rgba(244, 67, 54, 0.3);
}

/**************************************** APPOINTMENTS ***************************/

/* Section principale */
.md-appointments-section {
  padding: var(--md-spacing-xl) 0;
  background-color: var(--md-light-color);
  min-height: calc(100vh - 200px);
}

/* Wrapper du tableau */
.md-appointments-table-wrapper {
  background-color: var(--md-white-color);
  border-radius: var(--md-border-radius);
  box-shadow: var(--md-box-shadow);
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
}

/* Tableau */
.md-appointments-table {
  width: 100%;
  border-collapse: collapse;
  font-size: var(--md-font-size-base);
}

/* En-tête du tableau */
.md-appointments-table thead {
  background-color: var(--md-primary-color);
  color: var(--md-white-color);
}

.md-appointments-table thead th {
  padding: var(--md-spacing-md);
  text-align: left;
  font-weight: 600;
  font-size: var(--md-font-size-base);
  white-space: nowrap;
  border-bottom: 2px solid var(--md-dark-color);
}

.md-appointments-table thead th.md-text-center {
  text-align: center;
}

/* Lignes du tableau */
.md-appointments-table tbody tr {
  border-bottom: 1px solid var(--md-light-color);
  transition: background-color var(--md-transition-speed), opacity 0.3s ease, transform 0.3s ease;
}

.md-appointments-table tbody tr:hover {
  background-color: #f8f9fa;
}

.md-appointments-table tbody tr:last-child {
  border-bottom: none;
}

/* Cellules du tableau */
.md-appointments-table tbody td {
  padding: var(--md-spacing-md);
  vertical-align: middle;
  color: var(--md-text-color);
}

.md-appointments-table tbody td.md-text-center {
  text-align: center;
}

/* Date du rendez-vous */
.md-appointment-date {
  display: flex;
  align-items: center;
  gap: var(--md-spacing-xs);
  margin-bottom: calc(var(--md-spacing-xs) / 2);
}

.md-appointment-date svg {
  flex-shrink: 0;
  color: var(--md-primary-color);
}

.md-date-text {
  font-weight: 600;
  color: var(--md-dark-color);
}

/* Heure du rendez-vous */
.md-appointment-time {
  display: flex;
  align-items: center;
  gap: var(--md-spacing-xs);
  font-size: var(--md-font-size-small);
  color: var(--md-text-color);
}

.md-appointment-time svg {
  flex-shrink: 0;
  color: var(--md-text-color);
}

/* Badge de type */
.md-appointment-badge {
  display: inline-flex;
  align-items: center;
  padding: calc(var(--md-spacing-xs) / 2) var(--md-spacing-sm);
  border-radius: calc(var(--md-border-radius) / 2);
  font-size: var(--md-font-size-small);
  font-weight: 600;
  white-space: nowrap;
}

.md-badge-rdv {
  background-color: #e3f2fd;
  color: #1976d2;
}

.md-badge-reservation {
  background-color: #f3e5f5;
  color: #7b1fa2;
}

/**************************************** RESPONSIVE ***************************/

/* Tablette */
@media (max-width: 992px) {
  .md-appointments-table {
    font-size: var(--md-font-size-small);
  }

  .md-appointments-table thead th,
  .md-appointments-table tbody td {
    padding: var(--md-spacing-sm);
  }
}

/* Mobile */
@media (max-width: 768px) {
  .md-appointments-section {
    padding: var(--md-spacing-lg) 0;
  }

  /* Scroll horizontal sur mobile */
  .md-appointments-table-wrapper {
    border-radius: var(--md-border-radius);
  }

  .md-appointments-table {
    min-width: 600px;
  }

  .md-appointments-table thead th,
  .md-appointments-table tbody td {
    padding: var(--md-spacing-xs) var(--md-spacing-sm);
    font-size: var(--md-font-size-small);
  }

  .md-appointment-date {
    flex-direction: column;
    align-items: flex-start;
    gap: calc(var(--md-spacing-xs) / 2);
  }

  .md-appointment-time {
    font-size: 0.75rem;
  }
}


/**************************************** PROFILE ***************************/

/* Section principale */
.md-profile-section {
  padding: var(--md-spacing-xl) 0;
  background-color: var(--md-light-color);
  min-height: calc(100vh - 200px);
}

/* Card principale */
.md-profile-card {
  background-color: var(--md-white-color);
  border-radius: var(--md-border-radius);
  box-shadow: var(--md-box-shadow);
  padding: var(--md-spacing-xl);
  margin-bottom: var(--md-spacing-xl);
  position: relative;
}

/* Contenu du profil */
.md-profile-content {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: var(--md-spacing-xl);
  margin-bottom: var(--md-spacing-lg);
}

/**************************************** USER PROFILE INFO ***************************/

/* Header avec avatar */
.md-profile-header {
  display: flex;
  align-items: center;
  gap: var(--md-spacing-md);
  margin-bottom: var(--md-spacing-lg);
}

/* Avatar */
.md-profile-avatar {
  width: 80px;
  height: 80px;
  border-radius: 50%;
  background: linear-gradient(135deg, var(--md-primary-color-lighter) 0%, var(--md-primary-color-darker) 100%);
  color: var(--md-primary-text-color);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 2rem;
  font-weight: 700;
  flex-shrink: 0;
  box-shadow: 0 4px 12px rgba(33, 150, 243, 0.3);
}

/* Nom */
.md-profile-name {
  flex: 1;
}

.md-profile-civil {
  font-size: var(--md-font-size-small);
  color: var(--md-text-color);
}

.md-profile-fullname {
  font-size: 1.75rem;
  font-weight: 700;
  color: var(--md-dark-color);
  margin: var(--md-spacing-xs) 0 0 0;
  text-transform: uppercase;
}

.md-profile-firstname {
  text-transform: capitalize;
}

/* Détails */
.md-profile-details {
  display: flex;
  flex-direction: column;
  gap: var(--md-spacing-md);
}

.md-profile-detail-item {
  display: flex;
  gap: var(--md-spacing-sm);
}

.md-profile-detail-item svg {
  flex-shrink: 0;
  color: var(--md-primary-color);
  margin-top: 2px;
}

.md-detail-content {
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: calc(var(--md-spacing-xs) / 2);
}

.md-detail-label {
  font-size: var(--md-font-size-small);
  color: var(--md-text-color);
  font-weight: 500;
}

.md-detail-value {
  font-weight: 600;
  color: var(--md-dark-color);
  line-height: 1.4;
}

/**************************************** CONTACT ***************************/

.md-profile-contact {
  border-left: 2px solid var(--md-light-color);
  padding-left: var(--md-spacing-lg);
}

.md-contact-header {
  display: flex;
  align-items: center;
  gap: var(--md-spacing-sm);
  margin-bottom: var(--md-spacing-lg);
}

.md-contact-header svg {
  color: var(--md-primary-color);
}

.md-contact-header h3 {
  font-size: 1.25rem;
  font-weight: 600;
  color: var(--md-dark-color);
  margin: 0;
}

.md-contact-details {
  display: flex;
  flex-direction: column;
  gap: var(--md-spacing-sm);
  margin-bottom: var(--md-spacing-lg);
}

.md-contact-item {
  display: flex;
  align-items: center;
  gap: var(--md-spacing-sm);
  color: var(--md-text-color);
}

.md-contact-item svg {
  flex-shrink: 0;
  color: var(--md-primary-color);
}

.md-contact-preferences {
  display: flex;
  flex-direction: column;
  gap: var(--md-spacing-xs);
}

.md-preference-item {
  display: flex;
  align-items: center;
  gap: var(--md-spacing-xs);
  color: var(--md-text-color);
  font-size: var(--md-font-size-small);
}

.md-preference-item svg {
  flex-shrink: 0;
  color: #4caf50;
}

/**************************************** VALIDITY ***************************/

.md-account-validity {
  margin-bottom: var(--md-spacing-lg);
}

.md-validity-badge {
  display: inline-flex;
  align-items: center;
  gap: var(--md-spacing-sm);
  padding: var(--md-spacing-sm) var(--md-spacing-md);
  border-radius: calc(var(--md-border-radius) / 2);
  font-weight: 600;
}

.md-badge-valid {
  background-color: #e8f5e9;
  color: #388e3c;
}

.md-badge-expired {
  background-color: #ffebee;
  color: #c62828;
}

.md-validity-badge svg {
  flex-shrink: 0;
}

/**************************************** EDIT BUTTON ***************************/

.md-btn-edit-profile {
  position: absolute;
  right: -1rem;
  bottom: -1rem;
  width: 56px;
  height: 56px;
  border-radius: 50%;
  background-color: var(--md-primary-color);
  color: var(--md-primary-text-color);
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 4px 12px rgba(33, 150, 243, 0.4);
  cursor: pointer;
  transition: all var(--md-transition-speed);
  text-decoration: none;
}

.md-btn-edit-profile:hover {
  transform: scale(1.1);
  box-shadow: 0 6px 16px rgba(33, 150, 243, 0.5);
  background-color: #1976d2;
}

.md-btn-help-floating {
  position: fixed;
  top: 100px;
  right: 20px;
  width: 48px;
  height: 48px;
  border-radius: 50%;
  background-color: var(--md-primary-color);
  color: var(--md-white-color);
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 4px 12px rgba(33, 150, 243, 0.4);
  cursor: pointer;
  transition: all var(--md-transition-speed);
  text-decoration: none;
  z-index: 1000;
}

.md-btn-help-floating:hover {
  transform: scale(1.1);
  box-shadow: 0 6px 16px rgba(33, 150, 243, 0.5);
}

/**************************************** BARCODE MOBILE ***************************/

.md-barcode-mobile {
  display: none;
  text-align: center;
  margin-bottom: var(--md-spacing-xl);
  background-color: var(--md-white-color);
  padding: var(--md-spacing-lg);
  border-radius: var(--md-border-radius);
  box-shadow: var(--md-box-shadow);
}

.md-barcode-mobile img {
  max-width: 80%;
  height: auto;
}

/**************************************** LOAN CONDITIONS ***************************/

.md-loan-conditions {
  margin-top: var(--md-spacing-xl);
}

.md-loan-title {
  text-align: center;
  font-size: 1.75rem;
  font-weight: 700;
  color: var(--md-dark-color);
  margin-bottom: var(--md-spacing-xl);
}

.md-loan-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
  gap: var(--md-spacing-lg);
}

.md-loan-card {
  background-color: var(--md-white-color);
  border-radius: var(--md-border-radius);
  box-shadow: var(--md-box-shadow);
  overflow: hidden;
  transition: transform var(--md-transition-speed), box-shadow var(--md-transition-speed);
}

.md-loan-card:hover {
  transform: translateY(-4px);
  box-shadow: var(--md-box-shadow-hover);
}

.md-loan-header {
  background-color: var(--md-primary-color);
  color: var(--md-primary-text-color);
  padding: var(--md-spacing-lg);
  text-align: center;
}

.md-loan-header svg {
  margin-bottom: var(--md-spacing-sm);
}

.md-loan-header h3 {
  font-size: 1.125rem;
  font-weight: 600;
  margin: 0;
}

.md-loan-body {
  padding: var(--md-spacing-md);
  display: flex;
  flex-direction: column;
  gap: var(--md-spacing-xs);
}

.md-loan-item {
  text-align: center;
  color: var(--md-text-color);
  font-size: var(--md-font-size-small);
}

/**************************************** LOANS SECTION ***************************/

/* Section principale */
.md-loans-section {
  padding: var(--md-spacing-xl) 0;
  background-color: var(--md-light-color);
  min-height: calc(100vh - 200px);
}

/**************************************** ACCORDION ***************************/

.md-loans-accordion {
  display: flex;
  flex-direction: column;
  gap: var(--md-spacing-lg);
}

/* Item de l'accordéon */
.md-accordion-item {
  background-color: var(--md-white-color);
  border-radius: var(--md-border-radius);
  box-shadow: var(--md-box-shadow);
  overflow: hidden;
  transition: box-shadow var(--md-transition-speed);
}

.md-accordion-item:hover {
  box-shadow: var(--md-box-shadow-hover);
}

/* Header de l'accordéon */
.md-accordion-header {
  width: 100%;
  background: linear-gradient(135deg, var(--md-primary-color) 0%, var(--md-primary-color-darker) 100%);
  color: var(--md-white-color);
  padding: var(--md-spacing-lg);
  border: none;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: space-between;
  transition: background var(--md-transition-speed);
}

.md-accordion-header:hover {
  background: linear-gradient(135deg, var(--md-primary-color-darker) 0%, var(--md-primary-color) 100%);
}

.md-accordion-title {
  display: flex;
  align-items: center;
  gap: var(--md-spacing-md);
  font-size: 1.25rem;
  font-weight: 600;
}

/* Badge compteur */
.md-accordion-badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 48px;
  height: 48px;
  border-radius: 50%;
  background-color: var(--md-white-color);
  color: var(--md-primary-color);
  font-size: 1.25rem;
  font-weight: 700;
  flex-shrink: 0;
}

/* Icône chevron */
.md-accordion-icon {
  flex-shrink: 0;
  transition: transform var(--md-transition-speed);
}

.md-accordion-item-active .md-accordion-icon {
  transform: rotate(180deg);
}

/* Contenu de l'accordéon */
.md-accordion-content {
  max-height: 0;
  overflow: hidden;
  transition: max-height 0.3s ease;
}

.md-accordion-content-active {
  max-height: 10000px;
  padding: var(--md-spacing-lg);
}

/**************************************** LOANS GRID ***************************/

.md-loans-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: var(--md-spacing-lg);
}

/**************************************** LOAN CARD ***************************/

.md-loan-card {
  background-color: var(--md-white-color);
  border: 1px solid var(--md-light-color);
  border-radius: var(--md-border-radius);
  overflow: hidden;
  transition: transform var(--md-transition-speed), box-shadow var(--md-transition-speed);
  position: relative;
}

.md-loan-card:hover {
  transform: translateY(-4px);
  box-shadow: var(--md-box-shadow-hover);
}

/* Badge membre famille */
.md-loan-family-badge {
  position: absolute;
  top: var(--md-spacing-sm);
  left: var(--md-spacing-sm);
  background-color: #ffc107;
  color: var(--md-dark-color);
  padding: calc(var(--md-spacing-xs) / 2) var(--md-spacing-sm);
  border-radius: calc(var(--md-border-radius) / 2);
  font-size: var(--md-font-size-small);
  font-weight: 600;
  z-index: 10;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);
}

/* Contenu de la card */
.md-loan-card-content {
  display: grid;
  grid-template-columns: 200px 1fr;
  gap: var(--md-spacing-md);
  padding: var(--md-spacing-md);
}

/**************************************** LOAN IMAGE ***************************/

.md-loan-image {
  display: flex;
  align-items: center;
  justify-content: center;
  background-color: #f5f5f5;
  border-radius: calc(var(--md-border-radius) / 2);
  overflow: hidden;
}

.md-loan-image img {
  height: 100%;
  object-fit: cover;
}

.md-loan-image-placeholder {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 280px;
  color: #ccc;
}

/**************************************** LOAN INFO ***************************/

.md-loan-info {
  display: flex;
  flex-direction: column;
  gap: var(--md-spacing-sm);
}

/* Titre */
.md-loan-title {
  font-size: 1.125rem;
  font-weight: 600;
  margin: 0;
  line-height: 1.4;
}

.md-loan-title a {
  color: var(--md-primary-color);
  text-decoration: none;
  transition: color var(--md-transition-speed);
}

.md-loan-title a:hover {
  color: var(--md-dark-color);
}

/* Métadonnées */
.md-loan-metadata {
  display: flex;
  flex-direction: column;
  gap: calc(var(--md-spacing-xs) / 2);
  font-size: var(--md-font-size-small);
  color: var(--md-text-color);
}

/**************************************** LOAN DATES ***************************/

.md-loan-dates {
  display: flex;
  flex-direction: column;
  gap: calc(var(--md-spacing-xs) / 2);
  padding: var(--md-spacing-sm) 0;
  border-top: 1px solid var(--md-light-color);
  border-bottom: 1px solid var(--md-light-color);
}

.md-loan-date-item {
  display: flex;
  align-items: center;
  gap: var(--md-spacing-xs);
  font-size: var(--md-font-size-small);
  color: var(--md-text-color);
}

.md-loan-date-item svg {
  flex-shrink: 0;
  color: var(--md-primary-color);
}

.md-loan-date-late {
  color: #c62828;
}

.md-loan-date-late svg {
  color: #c62828;
}

.md-loan-date-item strong {
  color: var(--md-dark-color);
}

/**************************************** LOAN ACTIONS ***************************/

.md-loan-actions {
  display: flex;
  flex-wrap: wrap;
  gap: var(--md-spacing-xs);
  align-items: center;
}

/* Badge médiathèque */
.md-loan-library-badge {
  display: inline-flex;
  align-items: center;
  gap: var(--md-spacing-xs);
  padding: calc(var(--md-spacing-xs) / 2) var(--md-spacing-sm);
  background-color: #fff9c4;
  color: #f57f17;
  border-radius: calc(var(--md-border-radius) / 2);
  font-size: var(--md-font-size-small);
  font-weight: 600;
}

.md-loan-library-badge svg {
  flex-shrink: 0;
}

/* Statuts de prolongation */
.md-loan-status {
  display: inline-flex;
  align-items: center;
  gap: var(--md-spacing-xs);
  padding: calc(var(--md-spacing-xs) / 2) var(--md-spacing-sm);
  border-radius: calc(var(--md-border-radius) / 2);
  font-size: var(--md-font-size-small);
  font-weight: 600;
}

.md-loan-status svg {
  flex-shrink: 0;
}

.md-status-pending {
  background-color: #fff9c4;
  color: #f57f17;
}

.md-status-accepted {
  background-color: #e8f5e9;
  color: #388e3c;
}

.md-status-refused {
  background-color: #ffebee;
  color: #c62828;
}

/**************************************** RESERVATIONS SECTION ***************************/

/* Section principale */
.md-reservations-section {
  padding: var(--md-spacing-xl) 0;
  background-color: var(--md-light-color);
  min-height: calc(100vh - 200px);
}

/**************************************** ACCORDION (réutilise les styles emprunts) ***************************/

.md-reservations-accordion {
  display: flex;
  flex-direction: column;
  gap: var(--md-spacing-lg);
}

/**************************************** RESERVATIONS GRID ***************************/

.md-reservations-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: var(--md-spacing-lg);
}

/**************************************** RESERVATION CARD ***************************/

.md-reservation-card {
  background-color: var(--md-white-color);
  border: 1px solid var(--md-light-color);
  border-radius: var(--md-border-radius);
  overflow: hidden;
  transition: transform var(--md-transition-speed), box-shadow var(--md-transition-speed);
  position: relative;
}

.md-reservation-card:hover {
  transform: translateY(-4px);
  box-shadow: var(--md-box-shadow-hover);
}

/* Badge membre famille */
.md-reservation-family-badge {
  position: absolute;
  top: var(--md-spacing-sm);
  left: var(--md-spacing-sm);
  background-color: #ffc107;
  color: var(--md-dark-color);
  padding: calc(var(--md-spacing-xs) / 2) var(--md-spacing-sm);
  border-radius: calc(var(--md-border-radius) / 2);
  font-size: var(--md-font-size-small);
  font-weight: 600;
  z-index: 10;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);
}

/* Contenu de la card */
.md-reservation-card-content {
  display: grid;
  grid-template-columns: 200px 1fr;
  gap: var(--md-spacing-md);
  padding: var(--md-spacing-md);
}

/**************************************** RESERVATION IMAGE ***************************/

.md-reservation-image {
  display: flex;
  align-items: center;
  justify-content: center;
  background-color: #f5f5f5;
  border-radius: calc(var(--md-border-radius) / 2);
  overflow: hidden;
}

.md-reservation-image img {
  width: 100%;
  height: auto;
  object-fit: cover;
}

.md-reservation-image-placeholder {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 280px;
  color: #ccc;
}

/**************************************** RESERVATION INFO ***************************/

.md-reservation-info {
  display: flex;
  flex-direction: column;
  gap: var(--md-spacing-sm);
}

/* Titre */
.md-reservation-title {
  font-size: 1.125rem;
  font-weight: 600;
  margin: 0;
  line-height: 1.4;
}

.md-reservation-title a {
  color: var(--md-primary-color);
  text-decoration: none;
  transition: color var(--md-transition-speed);
}

.md-reservation-title a:hover {
  color: var(--md-dark-color);
}

/* Métadonnées */
.md-reservation-metadata {
  display: flex;
  flex-direction: column;
  gap: calc(var(--md-spacing-xs) / 2);
  font-size: var(--md-font-size-small);
  color: var(--md-text-color);
}

/**************************************** RESERVATION DETAILS ***************************/

.md-reservation-details {
  display: flex;
  flex-direction: column;
  gap: var(--md-spacing-xs);
  padding: var(--md-spacing-sm) 0;
  border-top: 1px solid var(--md-light-color);
  border-bottom: 1px solid var(--md-light-color);
}

.md-reservation-detail-item {
  display: flex;
  align-items: center;
  gap: var(--md-spacing-xs);
  font-size: var(--md-font-size-small);
  color: var(--md-text-color);
  flex-wrap: wrap;
}

.md-reservation-detail-item svg {
  flex-shrink: 0;
  color: var(--md-primary-color);
}

.md-reservation-detail-item strong {
  color: var(--md-dark-color);
}

/* Statuts de réservation */
.md-reservation-status {
  display: inline-flex;
  align-items: center;
  gap: calc(var(--md-spacing-xs) / 2);
  padding: calc(var(--md-spacing-xs) / 2) var(--md-spacing-sm);
  border-radius: calc(var(--md-border-radius) / 2);
  font-size: var(--md-font-size-small);
}

.md-reservation-status svg {
  flex-shrink: 0;
}

.md-status-pending {
  background-color: #fff9c4;
  color: #f57f17;
}

.md-status-accepted {
  background-color: #e8f5e9;
  color: #388e3c;
}

.md-status-refused {
  background-color: #ffebee;
  color: #c62828;
}

/* Raison du refus */
.md-reservation-refusal-reason {
  display: flex;
  align-items: flex-start;
  gap: var(--md-spacing-xs);
  padding: var(--md-spacing-sm);
  background-color: #fff3e0;
  border-left: 3px solid #f57c00;
  border-radius: calc(var(--md-border-radius) / 2);
  font-size: var(--md-font-size-small);
  color: #e65100;
  cursor: help;
}

.md-reservation-refusal-reason svg {
  flex-shrink: 0;
  margin-top: 2px;
}

.md-reservation-refusal-reason:hover {
  background-color: #ffe0b2;
}

/**************************************** RESERVATION ACTIONS ***************************/

.md-reservation-actions {
  display: flex;
  gap: var(--md-spacing-xs);
}


/**************************************** USER SUGGESTIONS SECTION ***************************/

/* Section principale suggestions */
.md-suggestions-section {
  padding: var(--md-spacing-xl) 0;
  background-color: var(--md-light-color);
  min-height: calc(100vh - 200px);
}

/**************************************** SUGGESTIONS CONTENT ***************************/

.md-suggestions-content {
  display: grid;
  grid-template-columns: 1fr 350px;
  gap: var(--md-spacing-xl);
}

/**************************************** SUGGESTIONS GRID ***************************/

.md-suggestions-grid {
  display: flex;
  flex-direction: column;
  gap: var(--md-spacing-lg);
}

/**************************************** SUGGESTION CARD ***************************/

.md-suggestion-card {
  background-color: var(--md-white-color);
  border: 1px solid var(--md-light-color);
  border-radius: var(--md-border-radius);
  overflow: hidden;
  transition: transform var(--md-transition-speed), box-shadow var(--md-transition-speed);
  width: 100%;
}

.md-suggestion-card:hover {
  transform: translateY(-4px);
  box-shadow: var(--md-box-shadow-hover);
}

/* Contenu de la card */
.md-suggestion-card-content {
  display: grid;
  grid-template-columns: 200px 1fr;
  gap: var(--md-spacing-lg);
  padding: var(--md-spacing-lg);
}

/**************************************** SUGGESTION IMAGE ***************************/

.md-suggestion-image {
  position: relative;
  display: flex;
  align-items: flex-start;
  justify-content: center;
  background-color: #f5f5f5;
  border-radius: calc(var(--md-border-radius) / 2);
  overflow: hidden;
}

.md-suggestion-image img {
  height: 100%;
  object-fit: cover;
}

.md-suggestion-image-placeholder {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 280px;
  color: #ccc;
}

/* Badge type de document */
.md-suggestion-type-badge {
  position: absolute;
  top: var(--md-spacing-xs);
  right: var(--md-spacing-xs);
  background-color: #ffc107;
  color: var(--md-dark-color);
  padding: calc(var(--md-spacing-xs) / 2) var(--md-spacing-sm);
  border-radius: calc(var(--md-border-radius) / 2);
  font-size: var(--md-font-size-small);
  font-weight: 600;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);
}

/**************************************** SUGGESTION INFO ***************************/

.md-suggestion-info {
  display: flex;
  flex-direction: column;
  gap: var(--md-spacing-md);
}

/* Titre */
.md-suggestion-title {
  font-size: 1.25rem;
  font-weight: 600;
  margin: 0;
  line-height: 1.4;
  color: var(--md-dark-color);
}

/* Métadonnées */
.md-suggestion-metadata {
  display: flex;
  flex-direction: column;
  gap: calc(var(--md-spacing-xs) / 2);
  font-size: var(--md-font-size-small);
  color: var(--md-text-color);
}

/**************************************** SUGGESTION SUMMARY ***************************/
.opac-new-search-result-item-wrapper .md-suggestion-summary {
  display: none;
}
.md-suggestion-summary {
  flex: 1;
  overflow: hidden;
}

.md-summary-content {
  max-height: 8rem;
  overflow-y: auto;
  padding: var(--md-spacing-sm);
  background-color: #f5f5f5;
  border-radius: calc(var(--md-border-radius) / 2);
  font-size: var(--md-font-size-small);
  line-height: 1.6;
  color: var(--md-text-color);
}

.md-summary-content::-webkit-scrollbar {
  width: 6px;
}

.md-summary-content::-webkit-scrollbar-track {
  background: #e0e0e0;
  border-radius: 3px;
}

.md-summary-content::-webkit-scrollbar-thumb {
  background: #bdbdbd;
  border-radius: 3px;
}

.md-summary-content::-webkit-scrollbar-thumb:hover {
  background: #9e9e9e;
}

/**************************************** SUGGESTION FOOTER ***************************/

.md-suggestion-footer {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding-top: var(--md-spacing-md);
  border-top: 1px solid var(--md-light-color);
  gap: var(--md-spacing-md);
}

/* Likes */
.md-suggestion-likes {
  display: flex;
  align-items: center;
  gap: var(--md-spacing-sm);
}

.md-suggestion-actions {
  display: flex;
  gap: var(--md-spacing-xs);
}

/**************************************** LIKE SYSTEM ***************************/

/* Badge compteur de votes */
.md-like-badge {
  display: flex;
  align-items: center;
  gap: var(--md-spacing-xs);
  background-color: #fff9c4;
  border-radius: calc(var(--md-border-radius) / 2);
  padding: calc(var(--md-spacing-xs) / 2) var(--md-spacing-sm);
}

.md-like-badge svg {
  color: #f57f17;
  flex-shrink: 0;
}

.md-like-count {
  font-weight: 700;
  color: #f57f17;
  font-size: 1.125rem;
}

/* Bouton vote (Soutenir/Soutenu) */
.md-btn-vote {
  background-color: #e3f2fd;
  color: var(--md-primary-color);
  border: 1px solid var(--md-primary-color);
}

.md-btn-vote:hover {
  background-color: var(--md-primary-color);
  color: var(--md-white-color);
}

.md-btn-vote svg {
  transition: all var(--md-transition-speed);
}

/* État voté */
.md-btn-voted {
  background-color: #fff9c4;
  color: #f57f17;
  border-color: #f57f17;
}

.md-btn-voted:hover {
  background-color: #ffc107;
  color: var(--md-dark-color);
}

/**************************************** CREATE SUGGESTION CARD ***************************/

.md-suggestion-create-card {
  background: linear-gradient(135deg, #e3f2fd 0%, #bbdefb 100%);
  border: 2px dashed var(--md-primary-color);
  border-radius: var(--md-border-radius);
  padding: var(--md-spacing-xl);
  height: fit-content;
  position: sticky;
  top: calc( var(--lsOpac-page-header-height) + 2rem);
}

.md-create-card-content {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  gap: var(--md-spacing-md);
}

.md-create-icon {
  width: 80px;
  height: 80px;
  border-radius: 50%;
  background-color: var(--md-primary-color);
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--md-white-color);
  margin-bottom: var(--md-spacing-sm);
}

.md-create-title {
  font-size: 1.25rem;
  font-weight: 700;
  color: var(--md-dark-color);
  margin: 0;
}

.md-create-description {
  font-size: var(--md-font-size-small);
  color: var(--md-text-color);
  margin: 0;
  line-height: 1.5;
}

/**
 * BARRE D'ONGLETS UTILISATEUR - Style moderne
 * Cohérent avec les refontes précédentes
 */

/**************************************** CONTENEUR PRINCIPAL ***************************/

.md-user-tabs-container {
  background: var(--md-primary-color-lighter-extended);
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
  margin-bottom: var(--md-spacing-lg);
  position: sticky;
  top: 0;
  z-index: 100;
  overflow-x: auto;
  overflow-y: hidden;
  -webkit-overflow-scrolling: touch;
}

.md-user-tabs {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  gap: 0;
  min-height: 60px;
  max-width: 1400px;
  margin: 0 auto;
  padding: 0 var(--md-spacing-md);
}

/**************************************** ONGLETS ***************************/

.md-tab-item {
  display: flex;
  align-items: center;
  gap: var(--md-spacing-xs);
  padding: var(--md-spacing-sm) var(--md-spacing-md);
  color: var(--md-primary-lighter-extended-text-color);
  text-decoration: none;
  font-weight: 500;
  font-size: 0.9375rem;
  border-bottom: 3px solid transparent;
  transition: all var(--md-transition-speed);
  white-space: nowrap;
  position: relative;
  min-height: 60px;
}

.md-tab-item:hover {
  color: var(--md-primary-color);
  background-color: rgba(255, 255, 255, 0.5);
  border-bottom-color: var(--md-primary-color);
}

/* État actif */
.md-tab-active {
  color: var(--md-primary-color);
  background-color: rgba(255, 255, 255, 0.8);
  border-bottom-color: var(--md-primary-color);
  font-weight: 600;
}

/* État alerte (retards) */
.md-tab-alert {
  animation: md-tab-pulse 2s ease-in-out infinite;
}

@keyframes md-tab-pulse {
  0%, 100% { opacity: 1; }
  50% { opacity: 0.85; }
}

/**************************************** ICÔNES ***************************/

.md-tab-icon {
  flex-shrink: 0;
  transition: transform var(--md-transition-speed);
}

.md-tab-item:hover .md-tab-icon {
  transform: scale(1.1);
}

.md-tab-active .md-tab-icon {
  stroke-width: 2.5;
}

/**************************************** LABELS ***************************/

.md-tab-label {
  flex-shrink: 0;
}

/**************************************** BADGES ***************************/

.md-tab-badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 24px;
  height: 24px;
  padding: 0 var(--md-spacing-xs);
  background-color: var(--md-primary-color);
  color: white;
  border-radius: 12px;
  font-size: 0.75rem;
  font-weight: 600;
  line-height: 1;
  gap: 4px;
  transition: all var(--md-transition-speed);
}

.md-tab-item:hover .md-tab-badge {
  transform: scale(1.1);
  box-shadow: 0 2px 8px rgba(33, 150, 243, 0.4);
}

/* Badge alerte (retards) */
.md-tab-badge-alert {
  background-color: var(--md-danger-color);
  animation: md-badge-alert-pulse 1.5s ease-in-out infinite;
}

@keyframes md-badge-alert-pulse {
  0%, 100% {
    box-shadow: 0 0 0 0 rgba(244, 67, 54, 0.7);
  }
  50% {
    box-shadow: 0 0 0 8px rgba(244, 67, 54, 0);
  }
}

.md-tab-item:hover .md-tab-badge-alert {
  background-color: #d32f2f;
}

/* Icône alerte dans le badge */
.md-badge-alert-icon {
  flex-shrink: 0;
  animation: md-badge-icon-shake 0.5s ease-in-out infinite;
}

@keyframes md-badge-icon-shake {
  0%, 100% { transform: rotate(0deg); }
  25% { transform: rotate(-5deg); }
  75% { transform: rotate(5deg); }
}

/**************************************** POPOVER ALERTE ***************************/

/* Popover personnalisé pour les alertes */
.md-popover-alert {
  display: flex;
  align-items: center;
  gap: var(--md-spacing-xs);
  color: var(--md-danger-color);
  font-size: 0.875rem;
}

.md-popover-alert svg {
  flex-shrink: 0;
  stroke: var(--md-danger-color);
}

/* Style Bootstrap popover override */
.popover.ls-bx-warning-popover {
  border-color: var(--md-danger-color);
  box-shadow: 0 4px 12px rgba(244, 67, 54, 0.3);
}

.popover.ls-bx-warning-popover .popover-body {
  color: var(--md-danger-color);
}

/**************************************** CONTENEUR PRINCIPAL ***************************/

.md-biblio-detail {
  padding: var(--md-spacing-lg);
  background: #f8f9fa;
}

.md-biblio-container {
  display: grid;
  grid-template-columns: minmax(300px, 1fr) minmax(400px, 2fr) minmax(300px, 1fr);
  gap: var(--md-spacing-lg);
  max-width: 1400px;
  margin: 0 auto;
}

/**************************************** CARDS ***************************/

.md-biblio-card {
  background: white;
  border-radius: var(--md-border-radius);
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
  overflow: hidden;
  transition: box-shadow var(--md-transition-speed);
  display: flex;
  flex-direction: column;
}

.md-biblio-card:hover {
  box-shadow: 0 4px 16px rgba(0, 0, 0, 0.12);
}

/* Card avec map - taille fixe */
.md-biblio-card-map {
  min-height: 400px;
}

/* Card expandable - hauteur max */
.md-biblio-card-expandable {
  max-height: 600px;
}

/**************************************** CARD HEADER ***************************/

.md-biblio-card-header {
  background: linear-gradient(135deg, var(--md-primary-color-lighter) 0%, var(--md-primary-color-darker) 100%);
  color: var(--md-primary-text-color);
  padding: var(--md-spacing-md);
  display: flex;
  align-items: center;
  gap: var(--md-spacing-sm);
  position: relative;
}

.md-biblio-card-icon {
  flex-shrink: 0;
  stroke: var(--md-primary-text-color);
}

.md-biblio-card-title {
  margin: 0;
  font-size: 1.125rem;
  font-weight: 600;
  flex: 1;
}

/* Bouton voix haute */
.md-biblio-voice-btn {
  all: unset;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 32px;
  height: 32px;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.2);
  cursor: pointer;
  transition: all var(--md-transition-speed);
  flex-shrink: 0;
}

.md-biblio-voice-btn:hover {
  background: rgba(255, 255, 255, 0.3);
  transform: scale(1.1);
}

.md-biblio-voice-btn svg {
  stroke: var(--md-primary-text-color);
}

/**************************************** CARD CONTENT ***************************/

.md-biblio-card-content {
  padding: var(--md-spacing-md);
  flex: 1;
  overflow: auto;
  gap: var(--md-font-size-small);
  display: flex;
  flex-direction: column;
}

/* Pas de padding pour map et galerie */
.md-map-content,
.md-gallery-content {
  padding: 0;
}

/**************************************** CARD FOOTER ***************************/

.md-biblio-card-footer {
  all: unset;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: var(--md-spacing-xs);
  padding: var(--md-spacing-md);
  background: var(--md-primary-color-lighter-extended);
  cursor: pointer;
  transition: all var(--md-transition-speed);
  font-weight: 500;
  color: var(--md-primary-lighter-extended-text-color);
  width: 100%;
  box-sizing: border-box;
}

.md-biblio-card-footer:hover {
  background: var(--md-primary-color-lighter);
  color: var(--md-primary-text-color);
}

.md-biblio-card-footer svg {
  stroke: var(--md-primary-color);
  transition: transform var(--md-transition-speed);
}

.md-biblio-card-footer:hover svg {
  transform: translateX(4px);
}

/**************************************** COORDONNÉES ***************************/

.md-biblio-coord-main {
  display: flex;
  gap: var(--md-spacing-md);
  align-items: center;
}

.md-biblio-coord-info {
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: var(--md-spacing-sm);
}

.md-biblio-coord-item {
  display: flex;
  gap: var(--md-spacing-sm);
  align-items: flex-start;
}

.md-coord-icon {
  flex-shrink: 0;
  margin-top: 2px;
}

.md-coord-link {
  color: var(--md-link-primary-color);
  text-decoration: none;
  transition: color var(--md-transition-speed);
}

.md-coord-link:hover {
  color: var(--md-link-primary-colorover);
  text-decoration: underline;
}

.md-coord-address {
  display: flex;
  flex-direction: column;
  gap: 4px;
}

/**************************************** QR CODE ***************************/

.md-biblio-qrcode {
  flex-shrink: 0;
}

.md-qrcode-wrapper {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--md-spacing-xs);
  padding: var(--md-spacing-sm);
  background: #f8f9fa;
  border-radius: var(--md-border-radius);
}

.md-qrcode-img {
  width: 50px;
  height: 50px;
  border: 2px solid var(--md-light-color);
  border-radius: 4px;
}

.md-qrcode-label {
  display: flex;
  align-items: center;
  gap: 4px;
  font-size: 0.75rem;
  color: #666;
}

.md-qrcode-label svg {
  stroke: var(--md-primary-color);
}

/**************************************** HORAIRES ***************************/

.md-biblio-horaires {
  /* Styles pour le tableau horaires */
  /* On garde le composant existant mais on peut l'améliorer */
}

.md-biblio-horaires table {
  width: 100%;
  border-collapse: collapse;
}

.md-biblio-horaires th,
.md-biblio-horaires td {
  padding: var(--md-spacing-sm);
  text-align: left;
  border-bottom: 1px solid #f0f0f0;
}

.md-biblio-horaires th {
  background: #f8f9fa;
  font-weight: 600;
  color: var(--md-primary-color);
}

.md-biblio-horaires tr:last-child td {
  border-bottom: none;
}

.md-biblio-horaires tr:hover {
  background: rgba(33, 150, 243, 0.02);
}

/**************************************** GOOGLE MAP ***************************/

.md-google-map {
  width: 100%;
  height: 100%;
  min-height: 300px;
}

/**************************************** INFORMATIONS PRATIQUES ***************************/

.md-biblio-infos-content {
  max-height: 500px;
  overflow-y: auto;
}

/* Scrollbar custom */
.md-biblio-infos-content::-webkit-scrollbar {
  width: 8px;
}

.md-biblio-infos-content::-webkit-scrollbar-track {
  background: #f1f1f1;
  border-radius: 4px;
}

.md-biblio-infos-content::-webkit-scrollbar-thumb {
  background: var(--md-primary-color);
  border-radius: 4px;
}

.md-biblio-infos-content::-webkit-scrollbar-thumb:hover {
  background: #1976d2;
}

/**************************************** GALERIE ***************************/

.md-biblio-gallery {
  position: relative;
  cursor: pointer;
}

.md-gallery-grid {
  display: grid;
  grid-template-columns: 2fr 1fr;
  gap: 4px;
  min-height: 300px;
}

.md-gallery-main {
  grid-row: 1 / 3;
  overflow: hidden;
  border-radius: var(--md-border-radius) 0 0 var(--md-border-radius);
}

.md-gallery-side {
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.md-gallery-item {
  flex: 1;
  overflow: hidden;
}

.md-gallery-item:first-child {
  border-radius: 0 var(--md-border-radius) 0 0;
}

.md-gallery-item:last-child {
  border-radius: 0 0 var(--md-border-radius) 0;
}

/* Pour galerie avec 1 seule image */
.md-gallery-grid:has(.md-gallery-main:only-child) .md-gallery-main {
  grid-column: 1 / 3;
  border-radius: var(--md-border-radius);
}

.md-gallery-img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform var(--md-transition-speed);
}

.md-biblio-gallery:hover .md-gallery-img {
  transform: scale(1.05);
}

.md-gallery-count {
  position: absolute;
  bottom: var(--md-spacing-sm);
  right: var(--md-spacing-sm);
  background: rgba(0, 0, 0, 0.7);
  color: white;
  padding: var(--md-spacing-xs) var(--md-spacing-sm);
  border-radius: var(--md-border-radius);
  display: flex;
  align-items: center;
  gap: 4px;
  font-size: 0.875rem;
  font-weight: 500;
}

.md-gallery-count svg {
  stroke: white;
}

/**************************************** BOUTON AIDE FLOTTANT ***************************/

.md-help-floating-btn {
  position: fixed;
  bottom: var(--md-spacing-lg);
  right: var(--md-spacing-lg);
  width: 56px;
  height: 56px;
  background: var(--md-primary-color);
  color: white;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 4px 12px rgba(33, 150, 243, 0.4);
  transition: all var(--md-transition-speed);
  z-index: 1000;
  text-decoration: none;
}

.md-help-floating-btn:hover {
  background: #1976d2;
  transform: scale(1.1);
  box-shadow: 0 6px 20px rgba(33, 150, 243, 0.6);
}

.md-help-floating-btn svg {
  stroke: white;
}

/**************************************** RESPONSIVE ***************************/

/* Tablette large */
@media (max-width: 1200px) {
  .md-biblio-container {
    grid-template-columns: minmax(250px, 1fr) minmax(350px, 2fr) minmax(250px, 1fr);
  }
}

/* Tablette */
@media (max-width: 1024px) {
  .md-biblio-container {
    grid-template-columns: 1fr;
  }

  .md-biblio-col-left,
  .md-biblio-col-center,
  .md-biblio-col-right {
    display: contents;
  }

  /* Ordre sur tablette */
  .md-biblio-col-left > *:nth-child(1) { order: 1; } /* Coordonnées */
  .md-biblio-col-center > *:nth-child(1) { order: 2; } /* Infos pratiques */
  .md-biblio-col-center > *:nth-child(2) { order: 3; } /* Infos custom */
  .md-biblio-col-right > *:nth-child(1) { order: 4; } /* Documents */
  .md-biblio-col-right > *:nth-child(2) { order: 5; } /* Galerie */
  .md-biblio-col-left > *:nth-child(2) { order: 6; } /* Horaires */
  .md-biblio-col-left > *:nth-child(3) { order: 7; } /* Map */

  .md-biblio-card-expandable {
    max-height: none;
  }
}

/**************************************** COLONNES LAYOUT ***************************/

.md-biblio-col {
  display: flex;
  flex-direction: column;
  gap: var(--md-spacing-lg);
}

/**************************************** PRINT ***************************/

@media print {
  .md-biblio-detail {
    background: white;
    padding: 0;
  }

  .md-biblio-card {
    box-shadow: none;
    border: 1px solid #ddd;
    page-break-inside: avoid;
  }

  .md-biblio-card-footer,
  .md-help-floating-btn,
  .md-biblio-voice-btn {
    display: none;
  }

  .md-google-map {
    min-height: 400px;
  }
}

/**************************************** ACCESSIBILITÉ ***************************/

/* Focus visible */
.md-biblio-voice-btn:focus-visible,
.md-biblio-card-footer:focus-visible,
.md-help-floating-btn:focus-visible {
  outline: 2px solid var(--md-primary-color);
  outline-offset: 2px;
}

/* Préférence mouvement réduit */
@media (prefers-reduced-motion: reduce) {
  * {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
  }
}

/**************************************** RESPONSIVE ***************************/

@media (max-width: 1024px) {
  .md-user-tabs {
    padding: 0 var(--md-spacing-sm);
  }

  .md-tab-item {
    padding: var(--md-spacing-sm) var(--md-spacing-sm);
    font-size: 0.875rem;
  }
}

/* Tablette */
@media (max-width: 992px) {
  .md-suggestions-content {
    grid-template-columns: 1fr;
  }

  .md-suggestion-create-card {
    position: static;
  }
  .md-tags-grid {
    grid-template-columns: 1fr;
  }
  .md-tag-book-header {
    min-height: 140px;
  }
  .md-profile-content {
    grid-template-columns: 1fr;
    gap: var(--md-spacing-lg);
  }
  .md-profile-contact {
    border-left: none;
    border-top: 2px solid var(--md-light-color);
    padding-left: 0;
    padding-top: var(--md-spacing-lg);
  }
  .md-loan-grid {
    grid-template-columns: repeat(2, 1fr);
  }
  .md-loans-grid {
    grid-template-columns: 1fr;
  }
  .md-loan-card-content {
    grid-template-columns: 150px 1fr;
  }
  .md-accordion-title {
    font-size: 1.125rem;
  }
  .md-accordion-badge {
    min-width: 40px;
    height: 40px;
    font-size: 1.125rem;
  }
  .md-reservations-grid {
    grid-template-columns: 1fr;
  }
  .md-reservation-card-content {
    grid-template-columns: 150px 1fr;
  }
  .md-suggestion-card-inner {
    grid-template-columns: 1fr;
  }
  .md-suggestion-cover {
    padding: var(--md-spacing-md);
    max-height: 300px;
  }
}

/* Mobile */
@media (max-width: 768px) {
  .md-biblio-detail {
    padding: var(--md-spacing-sm);
  }

  .md-biblio-container {
    gap: var(--md-spacing-md);
  }

  .md-biblio-card-header {
    padding: var(--md-spacing-sm);
  }

  .md-biblio-card-title {
    font-size: 1rem;
  }

  .md-biblio-card-content {
    padding: var(--md-spacing-sm);
  }

  .md-biblio-card-footer {
    padding: var(--md-spacing-sm);
  }

  /* QR Code plus petit sur mobile */
  .md-biblio-coord-main {
    flex-direction: column;
  }

  .md-qrcode-img {
    width: 100px;
    height: 100px;
  }

  /* Galerie simple colonne sur mobile */
  .md-gallery-grid {
    grid-template-columns: 1fr;
  }

  .md-gallery-main {
    grid-row: auto;
    border-radius: var(--md-border-radius) var(--md-border-radius) 0 0;
  }

  .md-gallery-item:first-child {
    border-radius: 0;
  }

  .md-gallery-item:last-child {
    border-radius: 0 0 var(--md-border-radius) var(--md-border-radius);
  }

  /* Bouton aide plus petit */
  .md-help-floating-btn {
    width: 48px;
    height: 48px;
    bottom: var(--md-spacing-md);
    right: var(--md-spacing-md);
  }

  .md-suggestions-section {
    padding: var(--md-spacing-lg) 0;
  }

  .md-suggestion-card-content {
    grid-template-columns: 1fr;
    gap: var(--md-spacing-md);
    padding: var(--md-spacing-md);
  }

  .md-suggestion-image {
    height: 200px;
  }
  .md-suggestion-cover img {
    max-height: 200px;
    width: auto;
  }
  .md-suggestion-cover{
    max-width: unset;
  }
  .md-suggestion-summary{
    display: none;
  }

  .md-suggestion-footer {
    flex-direction: column;
    align-items: stretch;
    gap: var(--md-spacing-sm);
  }

  .md-suggestion-likes {
    justify-content: center;
  }

  .md-suggestion-actions {
    flex-direction: column;
  }

  .md-suggestion-actions .md-btn {
    justify-content: center;
  }

  .md-suggestion-create-card {
    padding: var(--md-spacing-lg);
  }

  .md-create-icon {
    width: 64px;
    height: 64px;
  }
  .md-tags-management-section {
    padding: var(--md-spacing-lg) 0;
  }
  .md-tag-book-header {
    min-height: 120px;
    padding: var(--md-spacing-md);
  }
  .md-tag-book-tags {
    padding: var(--md-spacing-sm);
  }
  .md-tag-item {
    font-size: var(--md-font-size-small);
  }
  .md-btn-icon-sm {
    width: 22px;
    height: 22px;
  }
  .md-btn-icon-sm svg {
    width: 12px;
    height: 12px;
  }
  .md-profile-section {
    padding: var(--md-spacing-lg) 0;
  }
  .md-profile-card {
    padding: var(--md-spacing-md);
  }
  .md-profile-header {
    flex-direction: column;
    text-align: center;
  }
  .md-profile-avatar {
    width: 64px;
    height: 64px;
    font-size: 1.5rem;
  }
  .md-profile-fullname {
    font-size: 1.25rem;
  }
  .md-btn-edit-profile {
    right: 0.5rem;
    bottom: 0.5rem;
    width: 48px;
    height: 48px;
  }
  .md-btn-help-floating {
    right: 10px;
    width: 40px;
    height: 40px;
  }
  .md-barcode-mobile {
    display: block;
  }
  .md-loan-grid {
    grid-template-columns: 1fr;
  }
  .md-loan-title {
    font-size: 1.5rem;
  }
  .md-loans-section {
    padding: var(--md-spacing-lg) 0;
  }
  .md-accordion-header {
    padding: var(--md-spacing-md);
  }
  .md-accordion-content-active {
    padding: var(--md-spacing-md);
  }
  .md-loan-card-content {
    grid-template-columns: 1fr;
    gap: var(--md-spacing-sm);
  }
  .md-loan-image {
    height: 200px;
  }
  .md-loan-actions {
    flex-direction: column;
    align-items: stretch;
  }
  .md-loan-actions .md-btn {
    justify-content: center;
  }
  .md-accordion-title {
    font-size: 1rem;
  }
  .md-accordion-badge {
    min-width: 36px;
    height: 36px;
    font-size: 1rem;
  }
  .md-reservations-section {
    padding: var(--md-spacing-lg) 0;
  }
  .md-reservation-card-content {
    grid-template-columns: 1fr;
    gap: var(--md-spacing-sm);
  }
  .md-reservation-image {
    height: 200px;
  }
  .md-reservation-actions {
    flex-direction: column;
  }
  .md-reservation-actions .md-btn {
    justify-content: center;
  }
  .md-user-tabs-container {
    position: static; /* Pas sticky sur mobile */
  }

  .md-user-tabs {
    padding: 0 var(--md-spacing-xs);
    justify-content: flex-start;
  }

  .md-tab-item {
    flex-direction: column;
    gap: 4px;
    padding: var(--md-spacing-xs);
    min-width: auto;
    min-height: 50px;
  }

  .md-tab-icon {
    width: 20px;
    height: 20px;
  }

  .md-tab-label {
    font-size: 0.75rem;
    text-align: center;
  }

  .md-tab-badge {
    position: absolute;
    top: 8px;
    right: 8px;
    min-width: 18px;
    height: 18px;
    font-size: 0.6875rem;
  }
}

/* Très petit mobile */
@media (max-width: 480px) {
  .md-biblio-detail {
    padding: var(--md-spacing-xs);
  }

  .md-biblio-container {
    gap: var(--md-spacing-sm);
  }

  .md-biblio-card-title {
    font-size: 0.9375rem;
  }
  .md-tab-item {
    padding: 6px;
  }

  .md-tab-label {
    font-size: 0.6875rem;
    max-width: 80px;
    overflow: hidden;
    text-overflow: ellipsis;
  }
  .md-suggestion-card-content {
    padding: var(--md-spacing-sm);
  }

  .md-suggestion-title {
    font-size: 1.125rem;
  }

  .md-summary-content {
    max-height: 6rem;
    font-size: 0.875rem;
  }
  .md-subscriptions-table {
    min-width: 550px;
  }
  .md-user-subscriptions-table {
    min-width: 550px;
  }
  .md-info-banner {
    padding: var(--md-spacing-sm);
  }
  .md-comment-avatar {
    width: 48px;
    height: 48px;
  }
  .md-comment-body {
    font-size: var(--md-font-size-small);
  }
  .md-btn-icon {
    width: 32px;
    height: 32px;
  }
  .md-btn-icon svg {
    width: 16px;
    height: 16px;
  }
  .md-tag-book-tags {
    gap: calc(var(--md-spacing-xs) / 2);
  }
  .md-tag-item {
    padding: calc(var(--md-spacing-xs) / 3) calc(var(--md-spacing-xs));
  }
  .md-tag-label {
    font-size: 0.75rem;
  }
  .md-btn-icon-sm {
    width: 20px;
    height: 20px;
  }
  .md-appointments-table {
    min-width: 550px;
  }
  .md-profile-card {
    padding: var(--md-spacing-sm);
  }
  .md-profile-fullname {
    font-size: 1.125rem;
  }
  .md-loan-header {
    padding: var(--md-spacing-md);
  }
  .md-loan-body {
    padding: var(--md-spacing-sm);
  }
  .md-loan-card-content {
    padding: var(--md-spacing-sm);
  }
  .md-loan-title {
    font-size: 1rem;
  }
  .md-loan-family-badge {
    font-size: 0.75rem;
    padding: calc(var(--md-spacing-xs) / 3) calc(var(--md-spacing-xs));
  }
  .md-reservation-card-content {
    padding: var(--md-spacing-sm);
  }
  .md-reservation-title {
    font-size: 1rem;
  }
  .md-reservation-family-badge {
    font-size: 0.75rem;
    padding: calc(var(--md-spacing-xs) / 3) calc(var(--md-spacing-xs));
  }
  .md-reservation-refusal-reason {
    font-size: 0.75rem;
  }
}
