html, body {
  height: 100%;
  margin: 0;
  padding: 0;
  font-family: 'Verdana', sans-serif;
  color: #fff;
  background-color: #000;
  overflow-x: hidden;
}

a {
  color: #ffd700;
  text-decoration: none;
  font-weight: bold;
}

a:hover,
a:focus {
  color: #fff176;
  text-decoration: none;
}

body {
  display: block;
}

/* HUD */
.hud {
  background-color: rgba(0, 0, 0, 0.85);
  height: 60px;
  padding: 0 2rem;
  box-sizing: border-box;
  width: 100%;
  display: flex;
  justify-content: space-between;
  align-items: center;
  flex-wrap: nowrap;
  gap: 1rem;
}

.hud .stats {
  display: flex;
  align-items: center;
}

.hud .stat {
  font-size: 1rem;
  margin-right: 1rem;
}

.hud .stat span,
.hud .stat strong,
.hud .stat small {
  font-size: 1rem;
  white-space: nowrap;
  margin: 0;
}

.hud .avatar {
  height: 40px;
  border-radius: 50%;
  margin-right: 1rem;
}

.stat-bar {
  width: 100px;
  height: 10px;
  background: #333;
  border-radius: 4px;
  overflow: visible;
  margin-top:5px;
}

.stat-bar-fill {
  height: 100%;
}

.bar-green { background-color: #4caf50; }
.bar-yellow { background-color: #ffca28; }
.bar-orange { background-color: #ff9800; }
.bar-red { background-color: #f44336; }

.hud .cell.text-right {
  display: flex;
  justify-content: flex-end;
  align-items: center;
  gap: 1rem;
}

.hud .cell.text-right a {
  display: flex;
  align-items: center;
  gap: 0.5rem;
}

.hud .cell.text-right select {
  background-color: #1a1a1a;
  color: #ffd700;
  border: yellow 1px solid;
  border-radius: 5px;
  font-size: 1rem;
  cursor: pointer;
  outline: none;
  white-space: nowrap;
  flex-shrink: 0;
  width: auto;
  margin:0;
  line-height:30px;
  color:white;
}

.hud .cell.text-right i {
  font-size: 1.3rem; /* Ajuste la taille des icônes pour mieux s'aligner avec le texte */
}

.hud .cell.text-right a:hover i {
  color: #fff;
}

#language-select {
  padding: 0.5rem 2rem;
  background-color: #1a1a1a;
  color: #ffd700;
  border: none;
  border-radius: 5px;
  font-size: 1rem;
  cursor: pointer;
  outline: none;
  width: auto; /* Largeur automatique */
  margin: 0 auto; /* Centrage automatique */
  white-space: nowrap;
  flex-shrink: 0;
}

#language-select option {
  background-color: #1a1a1a;
  color: #ffd700;
}

#language-select:focus {
  border: none; /* Supprime toute bordure au focus */
  outline: none; /* Supprime le contour au focus */
}

.salle-banner {
  position: absolute;
  top: 5px;
  left: 50%;
  transform: translateX(-50%);
  background: rgba(0, 0, 0, 0.75);
  padding: 1rem 2rem;
  border-radius: 10px;
  text-align: center;
  z-index: 20;
  max-width: 90%;
}

.salle-banner h1 {
  font-size: 1.8rem;
  margin: 0;
  color: #ffd700;
}

.salle-banner p {
  font-size: 1rem;
  margin: 0.5rem 0 0;
  color: #eee;
}

/* SCÈNE */
.scene {
  position: relative;
  background-size: cover;
  background-position: center;
  flex-grow: 1;
  display: flex;
  align-items: flex-end;
  justify-content: flex-start;
  padding: 1rem;
  padding-bottom: 0;
  overflow: visible;
  min-height: calc(100vh - 60px);
}

.pnj {
  position: relative;
  display: inline-block;
  cursor: pointer;
  margin-right: 1rem;
  height: 516px;
}

.pnj img {
  max-height: 100%;
  object-fit: contain;
}

.pnj-name {
  position: absolute;
  bottom: 100%;
  left: 50%;
  transform: translateX(-50%) translateY(-0.5rem);
  background: rgba(0, 0, 0, 0.6);
  padding: 0.25rem 0.5rem;
  border-radius: 5px;
  font-size: 1.5rem;
  white-space: nowrap;
}

/* Modal PNJ */
.reveal {
  background-color: #1c1c1c;
  border-radius: 10px;
  padding: 1rem 2.5rem;
  color: #fff;
  z-index:20000;
}

.modal-pnj {
  display: flex;
  gap: 1rem;
  align-items: flex-start;
}

.modal-pnj img {
  max-width: 120px;
  border-radius: 8px;
}

.cell {
  width: auto !important;
  display: inline-block;
  vertical-align: middle;
}

/* BOUTONS ICÔNES */
.map-icon, #toggle-music, .cookie-icon, .mentions-legales-icon{
  width: 50px;  /* Largeur fixe pour les deux boutons */
  height: 50px; /* Hauteur fixe pour les deux boutons */
  display: flex;
  justify-content: center;
  align-items: center;
  background: rgba(0, 0, 0, 0.7);
  border-radius: 50%;
  cursor: pointer;
  z-index: 10;
  color: #ffd700; /* Icônes de couleur dorée */
  transition: transform 0.2s ease, background-color 0.3s ease;
}

/* Positionnement du bouton des mentions légales et CGV */
.mentions-legales-icon {
  position: absolute;
  bottom: 1rem;   /* Positionner en bas de la page */
  right: 0.5rem;    /* Placer tout à droite */
}

/* Positionnement du bouton des cookies */
.cookie-icon {
  position: absolute;
  bottom: 1rem;   /* Positionner en bas de la page */
  right: 4.5rem;    /* Placer tout à droite */
}

/* Positionnement du bouton de la carte */
.map-icon {
  position: absolute;
  bottom: 1rem;   /* Positionner en bas de la page */
  right: 8.5rem;    /* Placer tout à droite */
}

/* Positionnement du bouton de la musique */
#toggle-music {
  cursor: pointer;
  background: none;
  border: none;
  font-size: 1.4rem;
  color: inherit;
  border-radius: 50%;
}

#music-controls {
  position: absolute;
  bottom: 1rem;
  right: 12.5rem; /* Décalage légèrement à gauche du bouton de la carte */
  z-index: 10;
  display: flex;
  align-items: center;
  padding: 0.4rem 0.6rem;
  border-radius: 30px;
  height:50px;
  transform: scale(1.1); /* Légère animation au survol */
  background-color: rgba(0, 0, 0, 0.7); /* Assombrir un peu au survol */
}

.map-icon:hover, #toggle-music:hover {
  transform: scale(1.1); /* Légère animation au survol */
}

#toggle-music i, .map-icon i {
  font-size: 1.5rem; /* Taille d'icône uniforme */
}

#toggle-music i {
  color: #ffd700;
  transition: transform 0.2s ease, color 0.2s ease;
}

#toggle-music:hover i {
  transform: scale(1.2);
  color: #fff;
}

#volume-slider {
  width: 100px;
  background: #444;
  border-radius: 50%;
  accent-color: #ffd700;
}

#volume-slider::-webkit-slider-thumb {
  appearance: none;
  width: 12px;
  height: 12px;
  border-radius: 50%;
  background: #ffd700;
  cursor: pointer;
}

#volume-slider::-moz-range-thumb {
  width: 12px;
  height: 12px;
  border-radius: 50%;
  background: #ffd700;
  cursor: pointer;
}

/* Container de gestion des salles */
.salle-container {
  position: fixed;
  top: 11rem;
  left: 50%;
  transform: translateX(-50%);
  background-color: rgba(0, 0, 0, 0.85);
  padding: 10px;
  border-radius: 10px;
  width: 60%;
  height: auto;
  max-height: 75%;
  color: #000;  /* Texte noir pour contraster avec le fond clair */
  box-sizing: border-box;
  overflow-x:hidden;
  overflow-y: auto;
  scrollbar-color: black yellow;
  scrollbar-width: thin;
}

.salle-container-admin, 
.salle-container-pro {
  position: fixed;
  top: 5rem;
  left: 50%;
  transform: translateX(-50%);
  background-color: rgba(0, 0, 0, 0.85);
  padding: 10px;
  border-radius: 10px;
  width: 60%;
  height: auto;
  max-height: 90%;
  color: #000;  /* Texte noir pour contraster avec le fond clair */
  box-sizing: border-box;
  overflow-x:hidden;
  overflow-y: auto;
  scrollbar-color: black yellow;
  scrollbar-width: thin;
}

/* Modifier le texte dans le modal */
.salle-container h2, 
.salle-container-admin h2,
.salle-container-pro h2 {
  text-align: center;
  margin: 0;
  color: #ffd700;
  font-size: 2rem;  /* Agrandir le titre */
  font-weight: bold;
}

.salle-container, 
.salle-container label,
.salle-container-admin, 
.salle-container-admin label,
.salle-container-pro, 
.salle-container-pro label {
  color:white;
}

/* Formulaire dans le modal */
.salle-container input,
.salle-container select,
.salle-container-admin input,
.salle-container-admin select,
.salle-container-pro input,
.salle-container-pro select {
  width: 100%;
  padding: 0.5rem;
  margin-bottom: 1rem;
  border-radius: 5px;
  background-color: #333;
  color: #fff;
  border: 1px solid #ffd700;
}
.salle-container input:focus,
.salle-container select:focus,
.salle-container-admin input:focus,
.salle-container-admin select:focus,
.salle-container-pro input:focus,
.salle-container-pro select:focus {
  background-color: #555;
  color: #fff;
}

.salle-container input[type="checkbox"],
.salle-container input[type="radio"],
.salle-container-admin input[type="checkbox"],
.salle-container-admin input[type="radio"],
.salle-container-pro input[type="checkbox"],
.salle-container-pro input[type="radio"] {
  width: auto;
}

/* Ajouter une meilleure lisibilité pour le texte des lignes */
.salle-container table td {
  color: #fff;
}

.salle-container-admin table td,
.salle-container-pro table td {
  color: #000;
}

/* Pagination - Centrer et ajuster */
.pagination {
  text-align: center;
  margin-top: 20px;
}

.pagination button {
  padding: 0.5rem 1rem;
  background-color: #1a1a1a;
  color: #ffd700;
  border: none;
  border-radius: 5px;
  cursor: pointer;
}

.pagination button:hover {
  background-color: #ffd700;
  color: #000;
}

/* Bouton dans la page de gestion des salles */
.salle-container input[type="submit"],
.salle-container-admin input[type="submit"],
.salle-container-pro input[type="submit"] {
  background-color: #ffd700;
  border: none;
  color: #000;
  padding: 0.5rem 1rem;
  cursor: pointer;
  border-radius: 5px;
  transition: background-color 0.3s ease;
}

.salle-container input[type="submit"]:hover,
.salle-container-admin input[type="submit"]:hover,
.salle-container-pro input[type="submit"]:hover {
  background-color: #ffca28;
}

/* Pagination - style personnalisé */
.pagination-list {
    list-style: none;
    display: flex;
    justify-content: center;
    padding: 0;
    margin: 20px 0;
}

.pagination-link {
    padding: 0.5rem 1rem;
    background-color: #1a1a1a;
    color: #ffd700;
    border: 1px solid #ffd700;
    margin: 0 5px;
    cursor: pointer;
    text-decoration: none;
}

.pagination-link.is-current {
    background-color: #ffd700;
    color: #000;
}

.pagination-previous, .pagination-next {
    padding: 0.5rem 1rem;
    background-color: #1a1a1a;
    color: #ffd700;
    border: 1px solid #ffd700;
    cursor: pointer;
}

.pagination-previous.disabled, .pagination-next.disabled {
    background-color: #444;
    color: #aaa;
    cursor: not-allowed;
}

/* Adjust the pagination size */
.pagination a {
    padding: 0.3rem 0.6rem;  /* Reduced padding for smaller buttons */
    margin: 0 0.3rem;  /* Reduced space between buttons */
    text-decoration: none;
    background-color: #ffd700;
    color: black;
    border-radius: 5px;
}

.pagination a:hover {
    background-color: #ffcc00;
}

.pagination .active {
    background-color: #f1c40f;
    color: white;
}

/* Adjust table rows for smaller height */
.salle-container table th, .salle-container table td {
    padding: 5px;
    font-size: 0.9rem;
}

.salle-container table td {
    color: black; /* Ensure black text in the table */
}

/* Change table header color */
.table th {
    background-color: #2c3e50;  /* Darker background instead of green */
    color: white;
}

/* Fix pagination buttons on a single line */
.pagination {
    display: flex;
    justify-content: center;
    align-items: center;
    margin-top: 1rem;
    flex-wrap: nowrap; /* Prevent buttons from wrapping to the next line */
}

.pagination a {
    padding: 0.5rem 1rem;
    margin: 0 0.3rem;  /* Adjust spacing between pagination buttons */
    text-decoration: none;
    background-color: #ffd700;
    color: black; /* Ensure black text */
    border-radius: 5px;
    display: inline-block; /* Ensure buttons align in one row */
}

.pagination a:hover {
    background-color: #ffcc00;
}

.pagination .active {
    background-color: #f1c40f;
    color: white;
}

/* Réduction du padding de la div pour plus de compacité */
.staff-salles-container {
  margin: 2rem auto;
  padding: 1rem; /* Réduit le padding de la div */
  background-color: #f4f4f4;
  border-radius: 10px;
  box-shadow: 0px 4px 10px rgba(0, 0, 0, 0.1);
  max-width: 1200px;
}

/* Réduire la taille des boutons de navigation */
.pagination a {
  padding: 0.3rem 0.6rem;  /* Réduit encore le padding pour les rendre plus petits */
  margin: 0 0.3rem;
  text-decoration: none;
  background-color: #ffd700;
  color: black;
  border-radius: 5px;
  display: inline-block;
}

.pagination a:hover {
  background-color: #ffcc00;
}

.pagination .active {
  background-color: #e74c3c;  /* Rouge au lieu de jaune */
  color: white;  /* Texte en blanc sur rouge */
}


.modal-overlay {
  position: fixed;
  top: 0;
  left: 0;
  width: 100vw;
  height: 100vh;
  background: rgba(0, 0, 0, 0.6);
  z-index: 10000;
}

.reveal.modal-salle {
  position: fixed;
  top: 10%;
  left: 50%;
  transform: translateX(-50%);
  background-color: #1c1c1c;
  border-radius: 10px;
  padding: 1rem;
  color: #fff;
  z-index: 10000;
  max-width: 600px;
  width: 90%;
  max-height: 90vh;
  overflow-y: auto;
  overflow-x: hidden;
  scrollbar-color: black yellow;
  scrollbar-width: thin;
}

.reveal.modal-salle textarea {
  min-height: 4rem;
}

.reveal.modal-salle img,
.reveal.modal-salle audio {
  display: block;
  margin-top: 0.5rem;
  max-width: 100%;
}

.reveal.modal-salle button, .reveal.modal-salle label {
  color:white;
}

/* === Icones FontAwesome couleurs spécifiques === */
.fa-solid.fa-map {
  color: aqua !important;
}

.fa-solid.fa-cookie {
  color: #F2BB66 !important;
  font-size:27px;
}

.fa-solid.fa-star {
  color: yellow !important;
}

.fa-solid.fa-heart {
  color: red !important;
}

.fa-solid.fa-coins {
  color: orange !important;
}

.fa-solid.fa-book {
  color: teal !important;
}

.fa-solid.fa-gear {
  color: silver !important;
}

.fa-solid.fa-arrow-right-from-bracket
{
  color:red !important;
}

.fa-solid.fa-right-to-bracket
{
  color:green !important;
}

.fa-solid.fa-user-plus
{
  color:aqua !important;
}

.fa-solid.fa-door-closed
{
  color:brown !important;
}

.fa-solid.fa-user-gear
{
  color:pink !important;
}

.fa-solid.fa-graduation-cap
{
  color:gray !important;
}

.fa-solid.fa-scroll
{
  color:orange !important;
}

.fa-solid.fa-users
{
  color:aqua !important;
}

.fa-solid.fa-store
{
  color:white !important;
}

.fa-solid.fa-chart-line
{
  color:lime !important;
}

.fa-solid.fa-credit-card
{
  color:goldenrod !important;
}

.fa-solid.fa-scale-balanced
{
  color:#C9AE5D !important;
}

.fa-solid.fa-bullhorn
{
  color:red !important;
}

a.hud-icon
{
  color:white !important;
}

.preferences-group label
{
  color:white;
}

/* Scroll limité sur la liste des salles dans la carte */
#map-list {
  max-height: 400px;
  overflow-y: auto;
  overflow-x: hidden;
  padding-right: 1rem;
  scrollbar-color: black yellow;
  scrollbar-width: thin;
}

.hud .dropdown{
  display: inline-block;
  z-index: 10000;
}

.hud.dropdown-pane {
  background-color: rgba(0, 0, 0, 0.95);
  border-radius: 8px;
  padding: 0.5rem;
  color: white;
  box-shadow: 0 0 10px rgba(255, 255, 255, 0.1);
  z-index: 10000;
}

.hud.dropdown-pane a {
  color: #ffd700;
  display: block;
  padding: 0;
}

.hud.dropdown-pane a:hover {
  background-color: #333;
  color: white;
}

.dropdown-pane
{
  background-color: #333;
  color: white;
  z-index: 10000;
}

.table
{
  width: 100%;
  table-layout: fixed;
  word-wrap: break-word;
}

/* Accueil marketing */
.accueil-marketing-panel {
  position: absolute;
  top: 12rem;
  left: 50%;
  transform: translateX(-50%);
  width: min(760px, 92vw);
  z-index: 18;
  background: rgba(0,0,0,0.72);
  border: 1px solid rgba(255,215,0,0.55);
  border-radius: 14px;
  padding: 0.8rem;
  color: #fff;
  box-shadow: 0 0 18px rgba(0,0,0,0.45);
}

.accueil-video-stats {
  display: grid;
  grid-template-columns: minmax(260px, 1.4fr) minmax(220px, 0.9fr);
  gap: 0.8rem;
  align-items: stretch;
}

.accueil-video-wrapper {
  position: relative;
  width: 100%;
  aspect-ratio: 16 / 9;
  border-radius: 10px;
  overflow: hidden;
  background: #000;
}

.accueil-video-wrapper iframe {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  border: 0;
}

.accueil-video-placeholder {
  min-height: 180px;
  border: 1px dashed #ffd700;
  border-radius: 10px;
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  color: #ffd700;
  padding: 1rem;
}

.accueil-stats-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 0.6rem;
}

.accueil-stats-grid div {
  background: rgba(255,255,255,0.08);
  border-radius: 10px;
  padding: 0.65rem 0.4rem;
  text-align: center;
}

.accueil-stats-grid strong {
  display: block;
  color: #ffd700;
  font-size: 1.45rem;
  line-height: 1;
}

.accueil-stats-grid span {
  font-size: 0.82rem;
  text-transform: uppercase;
  letter-spacing: 0.04em;
}

.accueil-sponsors-box {
  margin-top: 0.75rem;
  text-align: center;
}

.accueil-sponsors-marquee {
  overflow: hidden;
  width: 100%;
  mask-image: linear-gradient(to right, transparent, black 8%, black 92%, transparent);
}

.accueil-sponsors-track {
  display: inline-flex;
  align-items: center;
  gap: 1rem;
  white-space: nowrap;
  animation: accueilSponsorsDefilement 28s linear infinite;
}

.accueil-sponsors-marquee:hover .accueil-sponsors-track {
  animation-play-state: paused;
}

.accueil-sponsor-logo {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 110px;
  height: 54px;
  padding: 0.35rem 0.7rem;
  border-radius: 9px;
  background: rgba(255,255,255,0.92);
  color: #111;
  font-weight: bold;
  text-decoration: none;
}

.accueil-sponsor-logo img {
  max-width: 130px;
  max-height: 42px;
  object-fit: contain;
}

.accueil-visites {
  margin-top: 0.35rem;
  font-size: 0.78rem;
  opacity: 0.78;
}

.accueil-sponsors-empty {
  font-size: 0.9rem;
  color: #ffd700;
}

.marketing-admin-stats {
  display:flex;
  flex-wrap:wrap;
  gap:0.5rem;
  margin:0.8rem 0;
}

.marketing-admin-stats span {
  background:rgba(255,255,255,0.1);
  border-radius:8px;
  padding:0.35rem 0.55rem;
  color:#fff;
}

.marketing-sponsor-row {
  align-items:center;
  border-top:1px solid rgba(255,255,255,0.15);
  padding-top:0.5rem;
}

@keyframes accueilSponsorsDefilement {
  from { transform: translateX(0); }
  to { transform: translateX(-50%); }
}

@media screen and (max-width: 760px) {
  .accueil-marketing-panel {
    top: 11rem;
    max-height: 58vh;
    overflow-y: auto;
  }
  .accueil-video-stats {
    grid-template-columns: 1fr;
  }
}


/* Tunnel sponsor PayPal */
.accueil-sponsors-actions {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  flex-wrap: wrap;
  margin-top: 0.75rem;
}

.accueil-sponsor-cta {
  margin: 0;
}

.sponsor-page {
  color: #fff;
}

.sponsor-page p,
.sponsor-page label,
.sponsor-page .help-text {
  color: #fff;
}

.sponsor-page .sponsor-price-box {
  background: rgba(255,255,255,0.08);
  border: 1px solid rgba(255,215,0,0.45);
  border-radius: 10px;
  padding: 0.8rem 1rem;
}

.sponsor-price-box {
  margin-bottom: 1.25rem;
}

.sponsor-form label {
  font-weight: 700;
  margin-top: 0.8rem;
}

.sponsor-submit {
  margin-top: 1rem;
}

.sponsor-payment-redirect {
  max-width: 780px;
  margin: 2rem auto;
}

/* ========================================================================== */
/* HUD élève 2026 : patch header uniquement                                   */
/* ========================================================================== */
.hud.hud-eleve {
  --dds-hud-border: #76552e;
  --dds-hud-bg: rgba(12, 11, 18, 0.96);
  --dds-hud-panel: rgba(19, 17, 25, 0.96);
  --dds-hud-gold: #f0d4a1;
  --dds-hud-purple: #c95cff;
  display: grid;
  grid-template-columns: minmax(310px, 1.65fr) minmax(540px, 3fr) minmax(88px, .48fr);
  width: 100%;
  height: 116px;
  min-height: 116px;
  padding: 4px;
  gap: 4px;
  background: #08070c;
  border-bottom: 2px solid var(--dds-hud-border);
  overflow: hidden;
  position: relative;
  z-index: 100;
}

.dds-player-hud {
  display: grid;
  grid-template-columns: minmax(215px, 2fr) minmax(105px, .85fr);
  gap: 4px;
  min-width: 0;
}

.dds-player-card,
.dds-endurance-card,
.dds-main-nav-item,
.dds-hud-tools {
  background: linear-gradient(180deg, rgba(21,20,28,.98), rgba(12,11,17,.98));
  border: 1px solid var(--dds-hud-border);
  box-shadow: inset 0 0 0 2px rgba(0,0,0,.42);
}

.dds-player-card {
  display: flex;
  align-items: center;
  min-width: 0;
  padding: 7px 10px;
  color: #fff;
}

.dds-player-card:hover,
.dds-player-card:focus { color: #fff; }

.dds-player-avatar {
  width: 82px;
  height: 82px;
  flex: 0 0 82px;
  border-radius: 50%;
  display: grid;
  place-items: center;
  margin-right: 12px;
  border: 3px solid #74542d;
  background: radial-gradient(circle at 50% 35%, #8d5be7, #30204f 62%, #17101f 100%);
  box-shadow: 0 0 0 2px #17131e, inset 0 0 14px rgba(255,255,255,.16);
  color: #eadfff;
  font-size: 2.25rem;
}

.dds-player-copy {
  display: flex;
  flex-direction: column;
  justify-content: center;
  min-width: 0;
  line-height: 1.12;
}

.dds-player-name {
  color: #fff;
  font-size: clamp(1.2rem, 1.5vw, 1.55rem);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.dds-player-level {
  margin-top: 4px;
  color: var(--dds-hud-purple);
  font-weight: 700;
}

.dds-exp-row {
  display: grid;
  grid-template-columns: auto minmax(60px, 1fr) auto;
  align-items: center;
  gap: 7px;
  margin-top: 8px;
  font-size: .78rem;
}

.dds-exp-label,
.dds-exp-percent { color: #f5ead8; font-weight: 800; }
.dds-exp-track,
.dds-endurance-track {
  display: block;
  height: 11px;
  overflow: hidden;
  border: 1px solid #5d4b61;
  background: #2c2634;
  box-shadow: inset 0 1px 3px #000;
}
.dds-exp-fill,
.dds-endurance-fill { display: block; height: 100%; }

.dds-endurance-card {
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: 10px 14px;
  min-width: 0;
}
.dds-endurance-card strong { color: #86c94e; font-size: .92rem; }
.dds-endurance-card > span:not(.dds-endurance-track) {
  margin: 8px 0 7px;
  font-size: 1rem;
  font-weight: 800;
  color: #fff;
}
.dds-endurance-card i { color: #ffd22f; margin-right: 5px; }

.dds-main-nav {
  display: grid;
  grid-template-columns: repeat(5, minmax(92px, 1fr));
  min-width: 0;
}

.dds-main-nav-item {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  gap: 9px;
  min-width: 0;
  color: var(--dds-hud-gold);
  text-transform: uppercase;
  font-family: Georgia, 'Times New Roman', serif;
  font-size: clamp(.72rem, .9vw, .92rem);
  letter-spacing: .02em;
  text-align: center;
}
.dds-main-nav-item i {
  font-size: clamp(1.55rem, 2vw, 2.15rem);
  color: #efd0a2;
  transition: transform .15s ease, color .15s ease;
}
.dds-main-nav-item:hover,
.dds-main-nav-item:focus,
.dds-main-nav-item.is-active {
  color: #fff;
  background: linear-gradient(180deg, rgba(49,31,64,.96), rgba(17,13,23,.98));
}
.dds-main-nav-item:hover i,
.dds-main-nav-item:focus i,
.dds-main-nav-item.is-active i {
  color: #ce65ff;
  transform: translateY(-2px);
}

.dds-player-menu {
  position: relative;
  min-width: 0;
}

.dds-player-menu > .dds-main-nav-item {
  width: 100%;
  height: 100%;
  margin: 0;
  border: 1px solid var(--dds-hud-border);
  cursor: pointer;
}

.dds-player-menu-caret {
  position: absolute;
  right: 7px;
  bottom: 6px;
  font-size: .62rem !important;
  opacity: .72;
}

.dds-player-menu-panel {
  position: absolute;
  z-index: 22000;
  top: calc(100% + 6px);
  left: 0;
  width: max-content;
  min-width: 230px;
  padding: 8px;
  border: 2px solid #76552e;
  background: rgba(15,13,20,.99);
  box-shadow: 0 14px 28px rgba(0,0,0,.65), inset 0 0 0 1px rgba(240,212,161,.08);
}

.dds-player-menu-panel[hidden] {
  display: none !important;
}

.dds-player-menu-panel a {
  display: flex;
  align-items: center;
  gap: 9px;
  padding: 10px;
  border: 1px solid transparent;
  color: #f0d4a1;
  white-space: nowrap;
}

.dds-player-menu-panel a:hover,
.dds-player-menu-panel a:focus {
  border-color: #76552e;
  background: rgba(118,85,46,.22);
  color: #fff;
}

.dds-player-menu-panel a i {
  width: 18px;
  color: #c95cff;
  text-align: center;
}

.dds-hud-tools {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  justify-content: center;
  gap: 6px;
  padding: 8px;
  min-width: 0;
}
.dds-role-switcher { margin: 0; }
.dds-role-switcher select,
.dds-language-select {
  width: 100%;
  height: 36px;
  margin: 0;
  padding: 0 24px 0 9px;
  border: 1px solid #59422d;
  border-radius: 0;
  background-color: #15131b;
  color: #fff;
  font-size: .75rem;
  font-weight: 700;
}

/* Le décor garde exactement son système actuel ; seule sa hauteur tient compte du HUD. */
.hud.hud-eleve + .scene {
  min-height: calc(100vh - 116px);
}

@media screen and (max-width: 1100px) {
  .hud.hud-eleve {
    grid-template-columns: minmax(270px, 1.3fr) minmax(470px, 2.5fr) 78px;
  }
  .dds-player-avatar { width: 68px; height: 68px; flex-basis: 68px; font-size: 1.8rem; }
  .dds-player-card { padding-left: 7px; }
  .dds-player-hud { grid-template-columns: minmax(180px, 1.65fr) minmax(90px, .8fr); }
}

@media screen and (max-width: 820px) {
  .hud.hud-eleve {
    height: auto;
    min-height: 0;
    grid-template-columns: 1fr auto;
    grid-template-areas: "player tools" "nav nav";
    overflow: visible;
  }
  .dds-player-hud { grid-area: player; min-height: 102px; }
  .dds-main-nav { grid-area: nav; min-height: 76px; }
  .dds-hud-tools { grid-area: tools; width: 84px; }
  .dds-main-nav-item { gap: 4px; padding: 6px 2px; }
  .dds-main-nav-item i { font-size: 1.45rem; }
  .dds-player-menu-panel { top: calc(100% + 4px); }
  .hud.hud-eleve + .scene { min-height: calc(100vh - 184px); }
}

@media screen and (max-width: 560px) {
  .dds-player-hud { grid-template-columns: 1fr; }
  .dds-endurance-card { display: none; }
  .dds-player-avatar { width: 58px; height: 58px; flex-basis: 58px; }
  .dds-player-name { font-size: 1rem; }
  .dds-main-nav { grid-template-columns: repeat(5, minmax(0, 1fr)); }
  .dds-main-nav-item span { font-size: .56rem; }
}


/* ========================================================================== */
/* Ajustement HUD : cadres du menu et sélecteur de vue admin                  */
/* ========================================================================== */
.hud.hud-eleve {
  border-left: 0;
  border-right: 0;
  border-top: 0;
}

.dds-main-nav {
  align-self: stretch;
  height: 100%;
  padding: 0;
  border: 0;
  background: transparent;
  box-shadow: none;
}

.dds-main-nav-item {
  height: 100%;
  box-shadow: none;
}

.dds-hud-tools {
  justify-content: center;
}

.dds-footer-view-switcher {
  position: fixed;
  left: 10px;
  bottom: 10px;
  z-index: 12000;
  display: flex;
  align-items: center;
  gap: 8px;
  margin: 0;
  padding: 6px 8px;
  background: rgba(12, 11, 18, .96);
  border: 1px solid #76552e;
  box-shadow: 0 2px 10px rgba(0, 0, 0, .55);
}

.dds-footer-view-switcher label {
  margin: 0;
  color: #f0d4a1;
  font-family: Georgia, 'Times New Roman', serif;
  font-size: .78rem;
  font-weight: 700;
}

.dds-footer-view-switcher select {
  width: auto;
  min-width: 105px;
  height: 32px;
  margin: 0;
  padding: 0 24px 0 8px;
  border: 1px solid #59422d;
  border-radius: 0;
  background-color: #15131b;
  color: #fff;
  font-size: .75rem;
  font-weight: 700;
}

/* Ajustement final : le bloc langue occupe toute la hauteur du HUD. */
.hud.hud-eleve {
  align-items: stretch;
}

.hud.hud-eleve .dds-hud-tools {
  align-self: stretch;
  height: auto;
}

/* Sélecteur de langue personnalisé : conserve le fond sombre même ouvert. */
.dds-language-menu {
  position: relative;
  width: 100%;
}

.dds-language-button {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 100%;
  height: 36px;
  margin: 0;
  padding: 0 10px;
  border: 1px solid #59422d;
  border-radius: 0;
  background: #15131b;
  color: #fff;
  font-size: .75rem;
  font-weight: 700;
  line-height: 1;
  cursor: pointer;
}

.dds-language-button:hover,
.dds-language-button:focus,
.dds-language-button[aria-expanded="true"] {
  background: #211a29;
  color: #fff;
  outline: none;
}

.dds-language-options {
  position: absolute;
  top: calc(100% + 4px);
  left: 0;
  right: 0;
  z-index: 15000;
  padding: 3px;
  border: 1px solid #76552e;
  background: #0e0c13;
  box-shadow: 0 8px 18px rgba(0, 0, 0, .7);
}

.dds-language-options[hidden] {
  display: none;
}

.dds-language-option {
  display: block;
  width: 100%;
  margin: 0;
  padding: 8px 9px;
  border: 0;
  background: #15131b;
  color: #f5ead8;
  text-align: left;
  font-size: .75rem;
  font-weight: 700;
  cursor: pointer;
}

.dds-language-option + .dds-language-option {
  margin-top: 2px;
}

.dds-language-option:hover,
.dds-language-option:focus,
.dds-language-option.is-active {
  background: #30213c;
  color: #fff;
  outline: none;
}

.dds-language-native {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  padding: 0 !important;
  margin: -1px !important;
  overflow: hidden !important;
  clip: rect(0, 0, 0, 0) !important;
  white-space: nowrap !important;
  border: 0 !important;
}


/* Correctif menu de langues : liste visible hors du HUD et langue active masquée. */
.hud.hud-eleve {
  overflow: visible;
  z-index: 20000;
}

.hud.hud-eleve .dds-hud-tools,
.hud.hud-eleve .dds-language-menu {
  overflow: visible;
}

.dds-language-options {
  z-index: 21000;
}

/* Structure de jeu : HUD et footer permanents, contenu central seul défilable. */
html,
body {
  width: 100%;
  height: 100%;
  min-height: 100%;
}

body {
  display: flex;
  flex-direction: column;
  height: 100vh;
  height: 100dvh;
  min-height: 0;
  overflow: hidden;
}

body > .hud {
  position: relative;
  flex: 0 0 auto;
  width: 100%;
  z-index: 20000;
}

body > .scene {
  position: relative;
  flex: 1 1 auto;
  width: 100%;
  min-height: 0 !important;
  height: auto !important;
  overflow-x: hidden;
  overflow-y: auto;
  overscroll-behavior: contain;
  scrollbar-gutter: stable;
}

.dds-game-footer {
  position: relative;
  z-index: 19000;
  flex: 0 0 auto;
  width: 100%;
  border-top: 2px solid #76552e;
  background: rgba(14, 12, 19, .97);
  box-shadow: 0 -5px 18px rgba(0, 0, 0, .55);
}

.dds-room-description {
  min-height: 42px;
  max-height: 82px;
  padding: 9px 18px;
  overflow-y: auto;
  border-bottom: 1px solid #59422d;
  color: #f1e4cf;
  font-size: .9rem;
  line-height: 1.35;
  text-align: center;
}

.dds-footer-controls {
  min-height: 42px;
  display: flex;
  align-items: stretch;
  justify-content: center;
  gap: 0;
}

.dds-footer-link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 7px;
  min-width: 118px;
  margin: 0;
  padding: 8px 15px;
  border: 0;
  border-left: 1px solid #493621;
  border-radius: 0;
  background: transparent;
  color: #e7d4b5;
  font: inherit;
  font-size: .78rem;
  font-weight: 700;
  text-decoration: none;
  cursor: pointer;
}

.dds-footer-link:last-of-type {
  border-right: 1px solid #493621;
}

.dds-footer-link:hover,
.dds-footer-link:focus {
  background: #241b2c;
  color: #fff;
  outline: none;
}

.dds-footer-view-switcher {
  position: static;
  display: flex;
  align-items: center;
  gap: 7px;
  margin: 0 0 0 auto;
  padding: 5px 10px;
  border: 0;
  background: transparent;
  box-shadow: none;
}

.dds-footer-view-switcher label {
  margin: 0;
  color: #cdbb9e;
  font-size: .72rem;
}

.dds-footer-view-switcher select {
  width: auto;
  min-width: 110px;
  height: 30px;
  margin: 0;
  padding: 0 24px 0 8px;
  border: 1px solid #59422d;
  background-color: #15131b;
  color: #fff;
  font-size: .72rem;
}

/* Les anciens contrôles restent fonctionnels mais ne prennent plus de place. */
body > .cookie-icon,
body > .mentions-legales-icon,
body > #music-controls {
  position: fixed !important;
  width: 1px !important;
  height: 1px !important;
  padding: 0 !important;
  margin: -1px !important;
  overflow: hidden !important;
  clip: rect(0, 0, 0, 0) !important;
  white-space: nowrap !important;
  border: 0 !important;
}

@media (max-width: 700px) {
  .dds-room-description {
    min-height: 38px;
    max-height: 68px;
    padding: 7px 10px;
    font-size: .78rem;
  }

  .dds-footer-controls {
    min-height: 38px;
  }

  .dds-footer-link {
    flex: 1 1 0;
    min-width: 0;
    padding: 7px 6px;
    font-size: .68rem;
  }

  .dds-footer-view-switcher {
    padding: 4px 6px;
  }

  .dds-footer-view-switcher label {
    display: none;
  }
}


/* =========================================================
   ZONE DE CONTENU : CORRECTIF CIBLÉ
   - conserve la hauteur naturelle des fenêtres courtes ;
   - limite seulement leur hauteur maximale à la scène ;
   - fait défiler le contenu à l'intérieur si nécessaire ;
   - ne modifie pas le footer.
   ========================================================= */

body > .scene {
  position: relative;
  min-height: 0;
  overflow: hidden;
}

.scene > .salle-container,
.scene > .salle-container-admin,
.scene > .salle-container-pro {
  position: absolute;
  left: 50%;
  transform: translateX(-50%);
  height: auto !important;
  min-height: 0 !important;
  margin: 0;
  overflow-x: hidden;
  overflow-y: auto;
  overscroll-behavior: contain;
  scrollbar-gutter: stable;
}

/* Fenêtre élève : garde sa hauteur de contenu et ne remplit jamais la scène. */
.scene > .salle-container {
  top: 1rem;
  bottom: auto;
  width: min(60%, 1100px);
  max-height: calc(100% - 2rem) !important;
}

/* Interface staff : même largeur que la page de référence staff_utilisateurs. */
.scene > .salle-container-admin {
  top: 1rem;
  bottom: auto;
  width: min(60%, 1100px);
  max-height: calc(100% - 2rem) !important;
}

/* Interface professionnelle : conserve son gabarit plus large. */
.scene > .salle-container-pro {
  top: 1rem;
  bottom: auto;
  width: min(94%, 1400px);
  max-height: calc(100% - 2rem) !important;
}

@media (max-width: 900px) {
  .scene > .salle-container,
  .scene > .salle-container-admin,
  .scene > .salle-container-pro {
    top: .65rem;
    width: calc(100% - 1.3rem);
    max-height: calc(100% - 1.3rem) !important;
  }
}
.dds-game-footer {
  flex: 0 0 auto;
  width: 100%;
  min-height: 0;
  border-top: 2px solid #76552e;
  background: rgba(14, 12, 19, .98);
  box-shadow: 0 -5px 18px rgba(0, 0, 0, .55);
  overflow: visible;
}

.dds-footer-upper-row {
  position: relative;
  min-height: 78px;
  display: flex;
  align-items: stretch;
  justify-content: center;
  border-bottom: 1px solid #59422d;
}

.dds-footer-menu {
  display: grid;
  grid-template-columns: repeat(3, 140px);
  min-height: 78px;
  border-left: 2px solid #76552e;
  border-right: 2px solid #76552e;
  background: rgba(18, 16, 23, .96);
}

.dds-footer-menu-item {
  display: flex !important;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 6px;
  min-width: 0;
  margin: 0 !important;
  padding: 8px 12px !important;
  border: 0 !important;
  border-right: 1px solid #4a352e !important;
  border-radius: 0 !important;
  background: transparent !important;
  color: #f0dcc0 !important;
  font: inherit;
  font-weight: 700;
  text-transform: uppercase;
  text-decoration: none !important;
  cursor: pointer;
}

.dds-footer-menu-item:last-child { border-right: 0 !important; }
.dds-footer-menu-item:hover,
.dds-footer-menu-item:focus {
  background: rgba(45, 31, 55, .92) !important;
  color: #fff !important;
  outline: none;
}
.dds-footer-menu-item i {
  margin: 0;
  color: #d9bd99;
  font-size: 25px;
}
.dds-footer-menu-item span { line-height: 1; }

.dds-room-description {
  position: relative;
  min-height: 44px;
  max-height: 82px;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 8px 180px 8px 18px;
  overflow-y: auto;
  border: 0;
  color: #f1e4cf;
  text-align: center;
}

.dds-room-description-inner {
  display: flex;
  align-items: baseline;
  justify-content: center;
  flex-wrap: wrap;
  gap: 6px 12px;
  width: 100%;
  min-width: 0;
}
.dds-room-name {
  flex: 0 0 auto;
  color: #d360ff;
  font-family: Georgia, 'Times New Roman', serif;
  font-size: .92rem;
  text-transform: uppercase;
}
.dds-room-text {
  min-width: 0;
  color: #f1e4cf;
  font-size: .88rem;
  line-height: 1.3;
}
.dds-room-bricks { flex: 0 0 auto; }
.dds-room-bricks:empty { display: none; }

.dds-footer-view-switcher {
  position: absolute;
  right: 12px;
  top: 50%;
  bottom: auto;
  transform: translateY(-50%);
  z-index: 2;
}

/* L'ancien menu de la page ne doit plus occuper de place. */
.dds-hall-center > .dds-bottom-menu { display: none !important; }

@media (max-width: 700px) {
  .dds-footer-upper-row { min-height: 58px; }
  .dds-footer-menu {
    width: 100%;
    min-height: 58px;
    grid-template-columns: repeat(3, 1fr);
    border-left: 0;
    border-right: 0;
  }
  .dds-footer-menu-item {
    padding: 6px 4px !important;
    font-size: .68rem;
  }
  .dds-footer-menu-item i { font-size: 20px; }
  .dds-room-description {
    min-height: 40px;
    max-height: 72px;
    padding: 6px 10px;
  }
  .dds-room-description-inner { gap: 2px 6px; }
  .dds-room-name { font-size: .74rem; }
  .dds-room-text { font-size: .7rem; }
  .dds-footer-view-switcher { display: none; }
}

/* Correctif footer : Son fonctionnel, Cookies et accès à la carte. */
.dds-footer-menu {
  grid-template-columns: repeat(4, 140px);
  overflow: visible;
}

.dds-footer-sound-wrap {
  position: relative;
  min-width: 0;
}

.dds-footer-sound-wrap > .dds-footer-menu-item {
  width: 100%;
  height: 100%;
}

.dds-footer-sound-panel {
  position: absolute;
  left: 50%;
  bottom: calc(100% + 10px);
  z-index: 10050;
  width: 250px;
  padding: 12px 14px;
  transform: translateX(-50%);
  border: 2px solid #76552e;
  background: rgba(14, 12, 19, .99);
  box-shadow: 0 8px 24px rgba(0, 0, 0, .7);
}

.dds-footer-sound-panel { display: none; }
.dds-footer-sound-panel.is-open { display: block; }
.dds-sound-label {
  display: block;
  margin-bottom: 8px;
  color: #d360ff;
  font-weight: 700;
  text-align: left;
  text-transform: uppercase;
}

#music-controls.dds-music-controls-visible {
  display: flex !important;
  width: 100%;
  align-items: center;
  gap: 10px;
}

#music-controls.dds-music-controls-visible #volume-slider {
  display: block;
  flex: 1 1 auto;
  min-width: 0;
  margin: 0;
}

#music-controls.dds-music-controls-visible #toggle-music {
  flex: 0 0 42px;
  width: 42px;
  height: 38px;
  margin: 0;
  padding: 0;
  border: 1px solid #76552e;
  background: #17141d;
  color: #f0dcc0;
  cursor: pointer;
}

#music-controls.dds-music-controls-visible #toggle-music:hover,
#music-controls.dds-music-controls-visible #toggle-music:focus {
  background: #2d1f37;
  color: #fff;
}

@media (max-width: 700px) {
  .dds-footer-menu { grid-template-columns: repeat(4, 1fr); }
  .dds-footer-sound-panel {
    position: fixed;
    right: 10px;
    bottom: 112px;
    left: 10px;
    width: auto;
    transform: none;
  }
}


/* Correctif audio footer autonome + carte au-dessus de toute l’interface. */
.dds-footer-audio-controls {
  display: flex;
  align-items: center;
  gap: 10px;
}
.dds-footer-audio-toggle {
  flex: 0 0 42px;
  width: 42px;
  height: 38px;
  margin: 0;
  padding: 0;
  border: 1px solid #76552e;
  background: #17141d;
  color: #f0dcc0;
  cursor: pointer;
}
.dds-footer-audio-toggle:hover,
.dds-footer-audio-toggle:focus {
  background: #2d1f37;
  color: #fff;
}
#dds-footer-volume-slider {
  display: block;
  flex: 1 1 auto;
  min-width: 0;
  margin: 0;
}
#dds-footer-volume-slider:disabled {
  opacity: .4;
  cursor: not-allowed;
}
.reveal-overlay { z-index: 30000 !important; }
#mapModal.reveal { z-index: 30001 !important; }

/* ========================================================================== */
/* HUD visiteur : même langage visuel que le HUD élève                        */
/* ========================================================================== */
.hud.hud-visiteur {
  --dds-hud-border: #76552e;
  --dds-hud-panel: rgba(19, 17, 25, 0.96);
  --dds-hud-gold: #f0d4a1;
  --dds-hud-purple: #c95cff;
  display: grid;
  grid-template-columns: minmax(300px, 1.45fr) minmax(540px, 3fr) minmax(88px, .42fr);
  width: 100%;
  height: 116px;
  min-height: 116px;
  padding: 4px;
  gap: 4px;
  background: #08070c;
  border-bottom: 2px solid var(--dds-hud-border);
  overflow: visible;
  position: relative;
  z-index: 20000;
  align-items: stretch;
}

.dds-visitor-brand,
.hud-visiteur .dds-main-nav-item,
.hud-visiteur .dds-hud-tools {
  background: linear-gradient(180deg, rgba(21,20,28,.98), rgba(12,11,17,.98));
  border: 1px solid var(--dds-hud-border);
  box-shadow: inset 0 0 0 2px rgba(0,0,0,.42);
}

.dds-visitor-brand-link {
  display: flex;
  align-items: center;
  width: 100%;
  height: 100%;
  min-width: 0;
  padding: 8px 12px;
  color: #fff;
}

.dds-visitor-brand-link:hover,
.dds-visitor-brand-link:focus { color: #fff; }

.dds-visitor-emblem {
  width: 82px;
  height: 82px;
  flex: 0 0 82px;
  display: grid;
  place-items: center;
  margin-right: 13px;
  border-radius: 50%;
  border: 3px solid #74542d;
  background: radial-gradient(circle at 50% 35%, #8d5be7, #30204f 62%, #17101f 100%);
  box-shadow: 0 0 0 2px #17131e, inset 0 0 14px rgba(255,255,255,.16);
  color: #eadfff;
  font-size: 2.15rem;
}

.dds-visitor-brand-copy {
  display: flex;
  flex-direction: column;
  min-width: 0;
  line-height: 1.15;
}

.dds-visitor-brand-copy strong {
  color: #fff;
  font-family: Georgia, 'Times New Roman', serif;
  font-size: clamp(1.25rem, 1.55vw, 1.7rem);
  white-space: nowrap;
}

.dds-visitor-brand-copy span {
  margin-top: 7px;
  color: var(--dds-hud-purple);
  font-size: .83rem;
  font-weight: 700;
}

.hud-visiteur .dds-visitor-nav {
  height: 100%;
  min-height: 0;
  grid-template-columns: repeat(6, minmax(0, 1fr));
}

.hud-visiteur .dds-hud-tools {
  align-self: stretch;
  height: auto;
  overflow: visible;
}

.hud-visiteur .dds-language-menu { overflow: visible; }

.hud.hud-visiteur + .scene {
  min-height: calc(100vh - 116px);
}

@media screen and (max-width: 1000px) {
  .hud.hud-visiteur {
    grid-template-columns: minmax(245px, 1.2fr) minmax(470px, 2.5fr) 78px;
  }
  .dds-visitor-emblem { width: 68px; height: 68px; flex-basis: 68px; font-size: 1.75rem; }
  .dds-visitor-brand-copy strong { font-size: 1.15rem; }
  .hud-visiteur .dds-main-nav-item { gap: 6px; padding: 5px 2px; }
  .hud-visiteur .dds-main-nav-item i { font-size: 1.45rem; }
  .hud-visiteur .dds-main-nav-item span { font-size: .66rem; }
}

@media screen and (max-width: 820px) {
  .hud.hud-visiteur {
    height: auto;
    min-height: 0;
    grid-template-columns: 1fr auto;
    grid-template-areas: "brand tools" "nav nav";
  }
  .dds-visitor-brand { grid-area: brand; min-height: 102px; }
  .hud-visiteur .dds-main-nav { grid-area: nav; min-height: 76px; }
  .hud-visiteur .dds-hud-tools { grid-area: tools; width: 84px; }
  .hud.hud-visiteur + .scene { min-height: calc(100vh - 184px); }
}

@media screen and (max-width: 560px) {
  .dds-visitor-emblem { width: 58px; height: 58px; flex-basis: 58px; }
  .dds-visitor-brand-copy strong { white-space: normal; font-size: 1rem; }
  .dds-visitor-brand-copy span { font-size: .68rem; }
  .hud-visiteur .dds-main-nav { grid-template-columns: repeat(6, minmax(0, 1fr)); }
  .hud-visiteur .dds-main-nav-item { gap: 3px; padding: 5px 1px; }
  .hud-visiteur .dds-main-nav-item i { font-size: 1.2rem; }
  .hud-visiteur .dds-main-nav-item span { font-size: .49rem; line-height: 1.1; }
}

/* =========================================================
   HUD STAFF — même langage visuel que les menus visiteur/élève
   ========================================================= */
.hud.hud-staff {
  --dds-hud-border: #76552e;
  --dds-hud-bg: rgba(12, 11, 18, .97);
  --dds-hud-panel: rgba(19, 17, 25, .98);
  --dds-hud-gold: #f0d4a1;
  --dds-hud-purple: #c95cff;
  position: relative;
  z-index: 8500;
  width: 100%;
  min-height: 116px;
  display: grid;
  grid-template-columns: minmax(235px, 1.05fr) minmax(680px, 3.5fr) minmax(280px, 1.2fr);
  align-items: stretch;
  gap: 8px;
  padding: 7px 10px;
  border-bottom: 2px solid var(--dds-hud-border);
  background: var(--dds-hud-bg);
  box-shadow: 0 8px 22px rgba(0,0,0,.48);
  overflow: visible;
}

.dds-staff-brand,
.dds-staff-tools {
  min-width: 0;
  border: 1px solid var(--dds-hud-border);
  background: linear-gradient(180deg, rgba(31,26,37,.98), rgba(14,13,20,.98));
  box-shadow: inset 0 0 0 1px rgba(240,212,161,.08);
}

.dds-staff-brand-link {
  height: 100%;
  display: flex;
  align-items: center;
  padding: 8px 12px;
  color: inherit;
}
.dds-staff-brand-link:hover,
.dds-staff-brand-link:focus { color: inherit; }

.dds-staff-emblem {
  width: 72px;
  height: 72px;
  flex: 0 0 72px;
  display: grid;
  place-items: center;
  margin-right: 12px;
  border-radius: 50%;
  border: 3px solid #74542d;
  background: radial-gradient(circle at 50% 35%, #7447bd, #30204f 62%, #17101f 100%);
  box-shadow: 0 0 0 2px #17131e, inset 0 0 14px rgba(255,255,255,.15);
  color: #eadfff;
  font-size: 1.9rem;
}
.dds-staff-brand-copy { display:flex; flex-direction:column; min-width:0; line-height:1.15; }
.dds-staff-brand-copy strong { color:#fff; font-family:Georgia,'Times New Roman',serif; font-size:1.35rem; white-space:nowrap; }
.dds-staff-brand-copy span { margin-top:7px; color:var(--dds-hud-purple); font-size:.76rem; font-weight:700; }

.hud-staff .dds-staff-nav {
  position: relative;
  display: grid;
  grid-template-columns: repeat(6, minmax(0, 1fr));
  height: 100%;
  min-height: 0;
  overflow: visible;
}
.dds-staff-menu { position:relative; min-width:0; }
.dds-staff-menu > .dds-main-nav-item { width:100%; height:100%; border:0; cursor:pointer; }
.dds-staff-menu-trigger .dds-staff-caret { position:absolute; right:7px; bottom:6px; font-size:.62rem; opacity:.72; }

.dds-staff-menu-panel {
  position: absolute;
  z-index: 12000;
  top: calc(100% + 8px);
  left: 0;
  width: max-content;
  min-width: 245px;
  max-height: calc(100vh - 145px);
  overflow-y: auto;
  padding: 8px;
  border: 2px solid #76552e;
  border-radius: 4px;
  background: rgba(15,13,20,.99);
  box-shadow: 0 14px 28px rgba(0,0,0,.65), inset 0 0 0 1px rgba(240,212,161,.08);
}
.dds-staff-menu-panel[hidden] { display:none !important; }
.dds-staff-menu-panel-right { left:auto; right:0; }
.dds-staff-menu-panel-wide { display:grid; grid-template-columns:repeat(2,minmax(220px,1fr)); gap:12px; min-width:485px; }
.dds-staff-menu-panel strong { display:block; padding:7px 9px 5px; color:#c95cff; font-size:.72rem; text-transform:uppercase; letter-spacing:.08em; }
.dds-staff-menu-panel a { display:flex; align-items:center; gap:9px; padding:9px 10px; color:#f0d4a1; border:1px solid transparent; white-space:nowrap; }
.dds-staff-menu-panel a:hover,
.dds-staff-menu-panel a:focus { color:#fff; border-color:#76552e; background:rgba(118,85,46,.22); }
.dds-staff-menu-panel a i { width:18px; text-align:center; color:#c95cff; }

.dds-staff-tools {
  display:grid;
  grid-template-columns: repeat(3, minmax(0,1fr)) 72px;
  align-items:stretch;
  overflow:visible;
}
.dds-staff-tool {
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:7px;
  min-width:0;
  padding:7px 4px;
  border:0;
  border-right:1px solid rgba(118,85,46,.65);
  background:transparent;
  color:#f0d4a1;
  cursor:pointer;
  font-size:.68rem;
  font-weight:700;
  text-align:center;
}
.dds-staff-tool i { font-size:1.3rem; color:#c95cff; }
.dds-staff-tool:hover,
.dds-staff-tool:focus,
.dds-staff-tool.is-active { color:#fff; background:rgba(118,85,46,.18); }
.dds-staff-tool.is-success i { color:#67d889; }
.dds-staff-tool.is-danger i { color:#ff6b6b; }
.hud-staff .dds-language-menu { position:relative; overflow:visible; }
.hud-staff .dds-language-button { width:100%; height:100%; border:0; border-radius:0; }
.hud-staff .dds-language-options { z-index:13000; right:0; left:auto; }

.hud.hud-staff + .scene { min-height:calc(100vh - 116px); }

@media screen and (max-width: 1280px) {
  .hud.hud-staff { grid-template-columns: 210px minmax(620px,1fr) 245px; }
  .dds-staff-emblem { width:60px; height:60px; flex-basis:60px; font-size:1.55rem; }
  .dds-staff-brand-copy strong { font-size:1.15rem; }
  .dds-staff-tool span { font-size:.58rem; }
}
@media screen and (max-width: 1050px) {
  .hud.hud-staff {
    height:auto;
    grid-template-columns:1fr 300px;
    grid-template-areas:"brand tools" "nav nav";
  }
  .dds-staff-brand { grid-area:brand; min-height:96px; }
  .dds-staff-tools { grid-area:tools; }
  .hud-staff .dds-staff-nav { grid-area:nav; min-height:78px; }
  .hud.hud-staff + .scene { min-height:calc(100vh - 190px); }
}
@media screen and (max-width: 650px) {
  .hud.hud-staff { grid-template-columns:1fr; grid-template-areas:"brand" "nav" "tools"; }
  .dds-staff-brand { min-height:82px; }
  .hud-staff .dds-staff-nav { grid-template-columns:repeat(3,minmax(0,1fr)); min-height:150px; }
  .dds-staff-tools { min-height:76px; }
  .dds-staff-menu-panel,
  .dds-staff-menu-panel-right { position:fixed; left:10px; right:10px; top:230px; width:auto; max-height:calc(100vh - 250px); }
  .dds-staff-menu-panel-wide { grid-template-columns:1fr; min-width:0; }
  .hud.hud-staff + .scene { min-height:calc(100vh - 320px); }
}


/* ========================================================================== */
/* FOOTER 2026 — styles isolés du HUD                                         */
/* ========================================================================== */
/* FOOTER RECONSTRUIT DE ZÉRO — une tuile = un seul élément interactif        */
/* ========================================================================== */
.dds-footer-menu-rebuilt {
  display: grid !important;
  grid-template-columns: repeat(4, 140px) !important;
  grid-auto-rows: 78px;
  width: max-content;
  min-height: 78px;
  margin: 0;
  padding: 0;
  overflow: visible;
  border: 2px solid #76552e;
  border-top: 0;
  border-bottom: 0;
  background: rgba(18, 16, 23, .96);
  box-sizing: border-box;
}

.dds-footer-menu-rebuilt--hall {
  grid-template-columns: repeat(5, 140px) !important;
}

/* Aucun enfant HTML dans les tuiles : l'icône est un pseudo-élément du bouton. */
.dds-footer-tile {
  position: relative;
  display: flex !important;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  width: 140px !important;
  height: 78px !important;
  min-width: 0 !important;
  min-height: 0 !important;
  margin: 0 !important;
  padding: 8px 10px !important;
  border: 0 !important;
  border-right: 1px solid #4a352e !important;
  border-radius: 0 !important;
  outline: 0;
  box-shadow: none !important;
  background: transparent !important;
  color: #f0dcc0 !important;
  font-family: Georgia, "Times New Roman", serif !important;
  font-size: .78rem !important;
  font-weight: 700 !important;
  line-height: 1 !important;
  text-align: center;
  text-transform: uppercase;
  text-decoration: none !important;
  cursor: pointer !important;
  appearance: none;
  -webkit-appearance: none;
  box-sizing: border-box;
}

.dds-footer-tile:last-child {
  border-right: 0 !important;
}

.dds-footer-tile::before {
  display: block;
  margin: 0 0 7px;
  font-family: "Font Awesome 6 Free";
  font-size: 25px;
  font-style: normal;
  font-variant: normal;
  font-weight: 900;
  line-height: 1;
  text-rendering: auto;
  -webkit-font-smoothing: antialiased;
  pointer-events: none;
}

.dds-footer-tile--sound.is-sound-on::before { content: "\f028"; color: #d9bd99; }
.dds-footer-tile--sound.is-sound-off::before { content: "\f6a9"; color: #d9bd99; }
.dds-footer-tile--cookies::before { content: "\f564"; color: #f2bb66; }
.dds-footer-tile--map::before { content: "\f279"; color: aqua; }
.dds-footer-tile--gazette::before { content: "\f1ea"; color: #d9bd99; }
.dds-footer-tile--legal::before { content: "\f24e"; color: #c9ae5d; }

.dds-footer-tile:hover,
.dds-footer-tile:focus,
.dds-footer-tile:focus-visible {
  background: rgba(45, 31, 55, .92) !important;
  color: #fff !important;
  outline: none !important;
}

/* Le panneau Son n'est plus un wrapper de tuile : il flotte indépendamment. */
.dds-footer-upper-row > .dds-footer-sound-panel {
  left: 50%;
  bottom: calc(100% + 10px);
  transform: translateX(-50%);
}

@media (max-width: 700px) {
  .dds-footer-menu-rebuilt,
  .dds-footer-menu-rebuilt--hall {
    grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
    grid-auto-rows: 58px;
    width: 100%;
    border-left: 0;
    border-right: 0;
  }

  .dds-footer-menu-rebuilt--hall {
    grid-template-columns: repeat(5, minmax(0, 1fr)) !important;
  }

  .dds-footer-tile {
    width: 100% !important;
    height: 58px !important;
    padding: 5px 2px !important;
    font-size: .65rem !important;
  }

  .dds-footer-tile::before {
    margin-bottom: 4px;
    font-size: 19px;
  }
}

/* ========================================================================== */
/* FOOTER : SURFACE DE CLIC INDÉPENDANTE AU-DESSUS DE CHAQUE TUILE            */
/* ========================================================================== */
.dds-footer-menu-rebuilt > .dds-footer-tile {
  position: relative !important;
  display: flex !important;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 6px;
  width: 140px !important;
  height: 78px !important;
  padding: 8px 10px !important;
  overflow: hidden;
  box-sizing: border-box;
  border: 0 !important;
  border-right: 1px solid #4a352e !important;
  background: transparent !important;
  color: #f0dcc0 !important;
  font-family: Georgia, "Times New Roman", serif;
  font-size: .78rem;
  font-weight: 700;
  line-height: 1;
  text-align: center;
  text-transform: uppercase;
}
.dds-footer-menu-rebuilt > .dds-footer-tile:last-child {
  border-right: 0 !important;
}
.dds-footer-menu-rebuilt > .dds-footer-tile > i {
  margin: 0;
  font-size: 25px;
  line-height: 1;
  pointer-events: none !important;
}
.dds-footer-menu-rebuilt > .dds-footer-tile > span {
  pointer-events: none !important;
}
.dds-footer-menu-rebuilt > .dds-footer-tile::before {
  content: none !important;
  display: none !important;
}
.dds-footer-hitbox {
  position: absolute !important;
  inset: 0 !important;
  z-index: 20 !important;
  display: block !important;
  width: 100% !important;
  height: 100% !important;
  min-width: 100% !important;
  min-height: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  outline: 0 !important;
  box-shadow: none !important;
  background: transparent !important;
  color: transparent !important;
  font-size: 0 !important;
  text-decoration: none !important;
  cursor: pointer !important;
  appearance: none !important;
  -webkit-appearance: none !important;
}
.dds-footer-tile:hover,
.dds-footer-tile:focus-within {
  background: rgba(45, 31, 55, .92) !important;
  color: #fff !important;
}
@media (max-width: 700px) {
  .dds-footer-menu-rebuilt > .dds-footer-tile {
    width: 100% !important;
    height: 58px !important;
    padding: 5px 2px !important;
    font-size: .65rem;
  }
  .dds-footer-menu-rebuilt > .dds-footer-tile > i { font-size: 19px; }
}

/* Hover du footer aligné sur celui du menu principal du HUD. */
.dds-footer-tile {
  transition: background .15s ease, color .15s ease;
}
.dds-footer-tile > i {
  transition: transform .15s ease, color .15s ease;
}
.dds-footer-tile:hover,
.dds-footer-tile:focus-within {
  background: linear-gradient(180deg, rgba(49,31,64,.96), rgba(17,13,23,.98)) !important;
  color: #fff !important;
}
.dds-footer-tile:hover > i,
.dds-footer-tile:focus-within > i {
  color: #ce65ff !important;
  transform: translateY(-2px);
}
.dds-footer-hitbox:focus-visible {
  outline: 2px solid #ce65ff !important;
  outline-offset: -3px !important;
}

/* Le panneau Son reste au-dessus du footer et ses contrôles reçoivent les clics. */
.dds-footer-upper-row > .dds-footer-sound-panel {
  z-index: 30050 !important;
  pointer-events: auto;
}
.dds-footer-sound-panel.is-open {
  display: block !important;
}
.dds-footer-audio-controls,
.dds-footer-audio-toggle,
#dds-footer-volume-slider {
  position: relative;
  z-index: 1;
  pointer-events: auto !important;
}

/* =========================================================
   INDICATEURS DE QUÊTES — CARTE DU DONJON
   ========================================================= */
.map-icon {
  position: relative;
}

.dds-quest-alert {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 1.35rem;
  height: 1.35rem;
  border: 2px solid #6f3f00;
  border-radius: 50%;
  background: linear-gradient(180deg, #ffd85a 0%, #f39a1f 100%);
  color: #3b2100;
  font-family: Georgia, "Times New Roman", serif;
  font-size: 1rem;
  font-weight: 900;
  line-height: 1;
  text-shadow: 0 1px 0 rgba(255,255,255,.55);
  box-shadow: 0 0 0 2px rgba(255,214,87,.24), 0 3px 8px rgba(0,0,0,.45);
}

.dds-quest-alert-map {
  position: absolute;
  top: .2rem;
  right: .2rem;
  z-index: 3;
  pointer-events: none;
  animation: ddsQuestPulse 1.8s ease-in-out infinite;
}

#mapModal .liste-salles li.has-available-quest > a {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: .8rem;
}

.dds-quest-alert-room {
  flex: 0 0 auto;
  width: 1.5rem;
  height: 1.5rem;
  font-size: 1.05rem;
  animation: ddsQuestPulse 1.8s ease-in-out infinite;
}

@keyframes ddsQuestPulse {
  0%, 100% {
    transform: scale(1);
    filter: brightness(1);
  }
  50% {
    transform: scale(1.12);
    filter: brightness(1.18);
  }
}

@media (prefers-reduced-motion: reduce) {
  .dds-quest-alert-map,
  .dds-quest-alert-room {
    animation: none;
  }
}

/* Choix de matière intégré au dialogue de Pierrence */

.dds-pierrence-subject-form {
  margin-top: .9rem;
}

.dds-pierrence-subjects {
  display: flex;
  flex-wrap: wrap;
  gap: .65rem;
  margin-bottom: 1rem;
}

.dds-pierrence-subject {
  position: relative;
  display: inline-flex;
}

.dds-pierrence-subject input {
  position: absolute;
  opacity: 0;
  pointer-events: none;
}

.dds-pierrence-subject span {
  display: inline-block;
  padding: .6rem .9rem;
  border: 2px solid #d8912f;
  border-radius: 6px;
  background: rgba(30, 20, 12, .92);
  color: #fff2c9;
  cursor: pointer;
  font-weight: 700;
  box-shadow: inset 0 0 0 1px rgba(255, 227, 167, .08);
}

.dds-pierrence-subject input:checked + span,
.dds-pierrence-subject span:hover {
  background: #d8912f;
  color: #23160b;
  box-shadow: 0 0 12px rgba(255, 184, 66, .75);
}

.dds-pierrence-subject input:focus-visible + span {
  outline: 3px solid #fff1a8;
  outline-offset: 3px;
}

.dds-pierrence-subject-submit {
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  min-width: 220px;
  min-height: 46px;
  margin: .15rem 0 0;
  padding: .75rem 1.1rem !important;
  border: 2px solid #ffd36c !important;
  border-radius: 6px;
  background: linear-gradient(#e2a13e, #b96d16) !important;
  color: #1f1308 !important;
  font-weight: 800 !important;
  line-height: 1.2;
  text-align: center;
  text-shadow: 0 1px 0 rgba(255,255,255,.25);
  box-shadow: 0 3px 0 #6d3d0c, 0 0 12px rgba(255, 184, 66, .35);
  cursor: pointer;
  opacity: 1 !important;
  visibility: visible !important;
}

.dds-pierrence-subject-submit:hover,
.dds-pierrence-subject-submit:focus-visible {
  background: linear-gradient(#f1bb58, #cf811f) !important;
  color: #120b04 !important;
  transform: translateY(-1px);
  box-shadow: 0 4px 0 #6d3d0c, 0 0 16px rgba(255, 184, 66, .65);
}

.dds-pierrence-subject-submit:active {
  transform: translateY(2px);
  box-shadow: 0 1px 0 #6d3d0c, 0 0 8px rgba(255, 184, 66, .45);
}

.pnj-dialogue-custom {
  margin-top: .65rem;
  pointer-events: auto;
}


/* =========================================================
   COQUE GLOBALE — HUD / scène / footer
   Le body reste en flex : les modales et gabarits injectés entre la scène
   et le footer ne doivent jamais créer de lignes de grille supplémentaires.
   ========================================================= */
html,
body {
  width: 100%;
  height: 100%;
  min-height: 100%;
}

body {
  display: flex !important;
  flex-direction: column;
  height: 100vh;
  height: 100dvh;
  min-height: 0;
  overflow: hidden;
}

body > .hud,
body > .dds-game-footer {
  position: relative;
  flex: 0 0 auto;
  width: 100%;
  min-height: 0;
}

body > .scene {
  position: relative;
  flex: 1 1 0;
  width: 100%;
  height: auto !important;
  min-height: 0 !important;
  margin: 0 !important;
  overflow: hidden;
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
}

.hud.hud-eleve + .scene,
.hud.hud-visiteur + .scene,
.hud.hud-staff + .scene {
  height: auto !important;
  min-height: 0 !important;
}

/* =========================================================
   COUCHE DES MODALES ET CONTRÔLES FLOTTANTS
   Les gabarits chargés entre la scène et le footer ne participent jamais
   au calcul flex de la hauteur de page.
   ========================================================= */
.dds-overlay-layer {
  position: fixed;
  inset: 0;
  z-index: 30000;
  width: 0;
  height: 0;
  margin: 0;
  padding: 0;
  pointer-events: none;
}

.dds-overlay-layer > * {
  pointer-events: auto;
}

.dds-overlay-layer > .map-icon,
.dds-overlay-layer > .cookie-icon,
.dds-overlay-layer > .mentions-legales-icon,
.dds-overlay-layer > #music-controls {
  position: fixed !important;
}

/* Gabarit interne commun aux pages avec colonne latérale. */
.dds-page-layout {
  display: grid;
  grid-template-columns: minmax(220px, 28%) minmax(0, 1fr);
  gap: 1.5rem;
  align-items: start;
}

.dds-page-sidebar,
.dds-page-content {
  min-width: 0;
}

.dds-page-sidebar .callout {
  margin-bottom: 0;
}

@media (max-width: 760px) {
  .dds-page-layout {
    grid-template-columns: 1fr;
    gap: 1rem;
  }
}


/* Sélecteur de matière de Pierrence : lisible sans modifier les autres formulaires. */
.dds-pierrence-subject-select {
  display: block;
  width: min(100%, 420px);
  min-height: 46px;
  margin: 0 0 .85rem;
  padding: .65rem 2.5rem .65rem .8rem;
  border: 2px solid #d8912f;
  border-radius: 6px;
  background-color: rgba(30, 20, 12, .96);
  color: #fff2c9;
  font-weight: 700;
  cursor: pointer;
}
.dds-pierrence-subject-select option,
.dds-pierrence-subject-select optgroup {
  background: #fff;
  color: #111;
}
.dds-pierrence-subject-select:focus {
  border-color: #ffd36c;
  outline: 3px solid rgba(255, 211, 108, .25);
  outline-offset: 2px;
}

/* Le volume reste réglable, même quand la musique est momentanément coupée. */
#dds-footer-volume-slider:disabled {
  opacity: 1;
  cursor: pointer;
}

/* Harmonisation globale des champs de formulaire du Donjon. */
select,
select option,
select optgroup,
textarea,
input:not([type="checkbox"]):not([type="radio"]):not([type="range"]):not([type="button"]):not([type="submit"]):not([type="reset"]):not([type="image"]):not([type="color"]) {
  background-color: #1E140D !important;
  color: #FFFFFF !important;
}

select:focus,
textarea:focus,
input:not([type="checkbox"]):not([type="radio"]):not([type="range"]):not([type="button"]):not([type="submit"]):not([type="reset"]):not([type="image"]):not([type="color"]):focus {
  background-color: #1E140D !important;
  color: #FFFFFF !important;
}

select:disabled,
textarea:disabled,
input:disabled {
  opacity: .7;
}
/* =========================================================
   CONNEXION STAFF
   Même cadre que les autres pages, centré dans la scène.
   ========================================================= */
.scene > .dds-page-content > .salle-container-admin.staff-login-page {
  top:50% !important;
  bottom:auto;
  width:min(92%,680px) !important;
  max-height:calc(100% - 2rem) !important;
  transform:translate(-50%,-50%) !important;
  padding:clamp(1rem,2.5vw,2rem);
  border:1px solid rgba(197,151,72,.55);
  border-radius:0;
  background:linear-gradient(180deg,rgba(24,19,28,.96),rgba(12,10,16,.98));
  box-shadow:0 18px 45px rgba(0,0,0,.32),inset 0 0 0 2px rgba(0,0,0,.28);
  overflow-y:auto;
}

.staff-login-panel {
  width:100%;
  margin:0;
}

.staff-login-header {
  display:flex;
  align-items:center;
  gap:1rem;
  margin-bottom:1.5rem;
}

.staff-login-header h1 {
  margin:0 0 .25rem;
  color:#ffd700;
  font-size:clamp(1.6rem,3vw,2.25rem);
  line-height:1.1;
}

.staff-login-header p {
  margin:0;
  color:rgba(255,255,255,.8);
}

.staff-login-icon {
  display:grid;
  flex:0 0 58px;
  width:58px;
  height:58px;
  place-items:center;
  border:1px solid #76552e;
  border-radius:50%;
  background:rgba(118,85,46,.18);
  color:#c95cff;
  font-size:1.55rem;
}

.staff-login-form {
  margin:0;
}

.staff-login-form label {
  display:block;
  margin-bottom:.35rem;
  font-weight:700;
}

.staff-login-form input {
  margin-bottom:1rem;
}

.staff-login-submit {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:.55rem;
  width:100%;
  min-height:46px;
  margin:.25rem 0 0;
}

.staff-login-error {
  margin:0 0 1rem;
}

@media(max-width:600px) {
  .scene > .dds-page-content > .salle-container-admin.staff-login-page {
    top:50% !important;
    width:calc(100% - 1.3rem) !important;
    max-height:calc(100% - 1.3rem) !important;
    transform:translate(-50%,-50%) !important;
  }

  .staff-login-header {
    align-items:flex-start;
  }

  .staff-login-icon {
    flex-basis:48px;
    width:48px;
    height:48px;
  }
}
/* =========================================================
   CORRECTIF HAUTEUR RÉELLE DES PAGES
   Les conteneurs sont injectés dans .dds-page-content, pas directement
   sous .scene : on les dimensionne donc par rapport à la scène utile.
   ========================================================= */
.scene > .dds-page-content {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  min-width: 0;
  min-height: 0;
  margin: 0;
  padding: 0;
  overflow: hidden;
}

.scene > .dds-page-content > .salle-container,
.scene > .dds-page-content > .salle-container-admin,
.scene > .dds-page-content > .salle-container-pro {
  position: absolute !important;
  top: 1rem !important;
  right: auto !important;
  bottom: auto !important;
  left: 50% !important;
  transform: translateX(-50%) !important;
  height: auto !important;
  min-height: 0 !important;
  max-height: calc(100% - 2rem) !important;
  margin: 0 !important;
  box-sizing: border-box;
  overflow-x: hidden;
  overflow-y: auto;
  overscroll-behavior: contain;
  scrollbar-gutter: stable;
}

.scene > .dds-page-content > .salle-container {
  width: min(60%, 1100px) !important;
}

.scene > .dds-page-content > .salle-container-admin {
  width: min(60%, 1100px) !important;
}

.scene > .dds-page-content > .salle-container-pro {
  width: min(94%, 1400px) !important;
}

@media (max-width: 900px) {
  .scene > .dds-page-content > .salle-container,
  .scene > .dds-page-content > .salle-container-admin,
  .scene > .dds-page-content > .salle-container-pro {
    top: .65rem !important;
    bottom: auto !important;
    width: calc(100% - 1.3rem) !important;
    max-height: calc(100% - 1.3rem) !important;
  }
}

/* ========================================================================== */
/* Boutons DDS : style global commun                                           */
/* ========================================================================== */
.dds-page-content a.button,
.dds-page-content button:not(.close-button):not(.ck-button):not([style*="position:absolute"]),
.dds-page-content input[type="submit"],
.dds-page-content input[type="button"],
.dds-page-content input[type="reset"] {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .45rem;
  min-height: 44px;
  margin: 0 0 1rem;
  padding: .7rem 1.15rem;
  border: 2px solid #d8912f !important;
  border-radius: 6px !important;
  background: linear-gradient(180deg, #f2bd58 0%, #d8912f 100%) !important;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.35), 0 3px 0 #6d3d16;
  color: #1b1009 !important;
  font-family: inherit;
  font-size: .95rem;
  font-weight: 800;
  line-height: 1.2;
  text-align: center;
  text-decoration: none !important;
  text-shadow: 0 1px 0 rgba(255,255,255,.25);
  vertical-align: middle;
  cursor: pointer;
  transition: transform .12s ease, filter .12s ease, box-shadow .12s ease;
}

.dds-page-content a.button:hover,
.dds-page-content a.button:focus,
.dds-page-content button:not(.close-button):not(.ck-button):not([style*="position:absolute"]):hover,
.dds-page-content button:not(.close-button):not(.ck-button):not([style*="position:absolute"]):focus,
.dds-page-content input[type="submit"]:hover,
.dds-page-content input[type="submit"]:focus,
.dds-page-content input[type="button"]:hover,
.dds-page-content input[type="button"]:focus,
.dds-page-content input[type="reset"]:hover,
.dds-page-content input[type="reset"]:focus {
  background: linear-gradient(180deg, #ffd77d 0%, #eba43a 100%) !important;
  color: #120b06 !important;
  filter: brightness(1.05);
  transform: translateY(-1px);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.45), 0 4px 0 #6d3d16;
}

.dds-page-content a.button:active,
.dds-page-content button:not(.close-button):not(.ck-button):not([style*="position:absolute"]):active,
.dds-page-content input[type="submit"]:active,
.dds-page-content input[type="button"]:active,
.dds-page-content input[type="reset"]:active {
  transform: translateY(2px);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.25), 0 1px 0 #6d3d16;
}

.dds-page-content .button.expanded,
.dds-page-content button.expanded,
.dds-page-content input.expanded {
  width: 100%;
}

.dds-page-content .button.hollow,
.dds-page-content .button.secondary {
  border-color: #d8912f !important;
  background: rgba(30,20,13,.92) !important;
  box-shadow: inset 0 0 0 1px rgba(255,215,112,.15), 0 3px 0 #090604;
  color: #ffd77d !important;
  text-shadow: none;
}

.dds-page-content .button.alert,
.dds-page-content .alert.button {
  border-color: #a73e37 !important;
  background: linear-gradient(180deg, #d96a61 0%, #a73e37 100%) !important;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.25), 0 3px 0 #571b18;
  color: #fff !important;
  text-shadow: 0 1px 0 rgba(0,0,0,.35);
}

.dds-page-content .button.success {
  border-color: #4d8a52 !important;
  background: linear-gradient(180deg, #78b77d 0%, #4d8a52 100%) !important;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.25), 0 3px 0 #234726;
  color: #fff !important;
  text-shadow: 0 1px 0 rgba(0,0,0,.35);
}

.dds-page-content button:not(.ck-button):disabled,
.dds-page-content input[type="submit"]:disabled,
.dds-page-content input[type="button"]:disabled,
.dds-page-content input[type="reset"]:disabled,
.dds-page-content .button.disabled {
  opacity: .55;
  cursor: not-allowed;
  transform: none;
  filter: grayscale(.35);
}

/* Devenir sponsor : deux actions strictement alignées. */
.sponsor-actions {
  align-items: stretch;
}

.sponsor-actions > .cell {
  display: flex;
}

.sponsor-actions .button {
  width: 100%;
  min-height: 52px;
  margin: 0;
}

.sponsor-page .sponsor-submit {
  margin-top: 0;
}

@media (max-width: 639px) {
  .sponsor-actions {
    row-gap: 1rem;
  }
}

/* PATCH 2026-07-26 — tuiles de statistiques et dialogues */
.dds-footer-public-stats{display:flex;align-items:stretch;justify-content:flex-end;gap:.55rem;margin-left:auto;padding:.35rem .65rem}
.dds-footer-public-stats .dds-footer-stat{min-width:104px;min-height:58px;padding:.45rem .7rem;display:grid;grid-template-columns:auto 1fr;grid-template-rows:auto auto;column-gap:.55rem;align-items:center;border:1px solid rgba(232,184,255,.5);border-radius:12px;background:rgba(20,15,35,.88);box-shadow:0 3px 10px rgba(0,0,0,.35),inset 0 0 0 1px rgba(255,255,255,.04);color:#fff}
.dds-footer-public-stats .dds-footer-stat i{grid-row:1/3;font-size:1.25rem;color:#e8b8ff}
.dds-footer-public-stats .dds-footer-stat strong{line-height:1;font-size:1.05rem}
.dds-footer-public-stats .dds-footer-stat span{line-height:1;font-size:.78rem;opacity:.86}
.pnj-dialogue-panel{min-height:190px}
.pnj-dialogue-slide{min-height:150px}
.pnj-dialogue-text{font-size:1rem;line-height:1.65}
.pnj-dialogue-text p{margin:0 0 .8rem}.pnj-dialogue-text p:last-child{margin-bottom:0}
.pnj-dialogue-custom [data-pnj-reveal][hidden]{display:none!important}
@media(max-width:900px){.dds-footer-public-stats{gap:.3rem;padding-inline:.3rem}.dds-footer-public-stats .dds-footer-stat{min-width:74px;padding:.35rem .45rem}.dds-footer-public-stats .dds-footer-stat i{display:none}}

/* =========================================================
   PAGE QUÊTES — journal d'aventure
   ========================================================= */
.quetes-page {
  padding: clamp(1rem, 2.2vw, 1.8rem) !important;
  border: 1px solid rgba(218, 145, 47, .62);
  background:
    radial-gradient(circle at top right, rgba(116, 49, 147, .2), transparent 34%),
    linear-gradient(180deg, rgba(21, 13, 9, .96), rgba(8, 6, 5, .94)) !important;
  box-shadow: 0 16px 42px rgba(0, 0, 0, .55), inset 0 0 0 1px rgba(255, 231, 167, .06);
}

.quetes-hero {
  display: flex;
  align-items: center;
  gap: 1rem;
  margin: 0 0 .85rem;
  padding: 1rem 1.15rem;
  border: 1px solid rgba(218, 145, 47, .42);
  border-radius: 14px;
  background: linear-gradient(135deg, rgba(95, 44, 118, .35), rgba(35, 20, 12, .72));
}

.quetes-hero-icon,
.quete-embleme {
  display: grid;
  flex: 0 0 58px;
  width: 58px;
  height: 58px;
  place-items: center;
  border: 1px solid rgba(255, 215, 112, .58);
  border-radius: 50%;
  background: rgba(10, 7, 5, .58);
  box-shadow: inset 0 0 18px rgba(218, 145, 47, .18);
  color: #ffd770;
  font-size: 1.45rem;
}

.quetes-eyebrow,
.quete-surtitre {
  display: block;
  margin-bottom: .15rem;
  color: #d7a8ef;
  font-size: .75rem;
  font-weight: 800;
  letter-spacing: .13em;
  text-transform: uppercase;
}

.quetes-page .quetes-hero h2,
.quetes-page .quete-detail-title h2 {
  margin: 0;
  text-align: left;
  font-size: clamp(1.55rem, 3vw, 2.25rem);
  line-height: 1.08;
}

.quetes-intro {
  margin: 0 0 1.35rem;
  padding: 0 .3rem;
  color: rgba(255, 255, 255, .84);
  line-height: 1.6;
}

.quetes-section {
  margin: 0 0 1.35rem;
  padding: 1rem;
  border: 1px solid rgba(255, 255, 255, .1);
  border-radius: 14px;
  background: rgba(255, 255, 255, .035);
}

.quetes-section-en-cours {
  border-color: rgba(218, 145, 47, .3);
  background: rgba(218, 145, 47, .055);
}

.quetes-section-title {
  display: flex;
  align-items: center;
  gap: .8rem;
  margin-bottom: 1rem;
}

.quetes-section-icon {
  display: grid;
  flex: 0 0 42px;
  width: 42px;
  height: 42px;
  place-items: center;
  border-radius: 10px;
  background: rgba(118, 55, 146, .32);
  color: #e6b8fb;
  font-size: 1rem;
}

.quetes-section-title h3 {
  margin: 0 0 .12rem;
  color: #ffd770;
  font-size: 1.12rem;
}

.quetes-section-title p {
  margin: 0;
  color: rgba(255, 255, 255, .65);
  font-size: .88rem;
}

.liste-quetes {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(230px, 1fr));
  gap: 1rem;
}

.quetes-page .carte-quete {
  display: flex;
  min-width: 0;
  min-height: 210px;
  flex-direction: column;
  overflow: hidden;
  border: 1px solid rgba(218, 145, 47, .38);
  border-radius: 13px;
  background: linear-gradient(180deg, rgba(44, 27, 18, .96), rgba(18, 12, 9, .96));
  box-shadow: 0 8px 18px rgba(0, 0, 0, .28), inset 0 1px 0 rgba(255, 255, 255, .04);
  transition: transform .16s ease, border-color .16s ease, box-shadow .16s ease;
}

.quetes-page .carte-quete:hover {
  border-color: rgba(255, 215, 112, .72);
  transform: translateY(-3px);
  box-shadow: 0 12px 25px rgba(0, 0, 0, .38), 0 0 0 1px rgba(255, 215, 112, .08);
}

.carte-quete-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: .75rem .85rem 0;
}

.carte-quete-icon {
  color: #c987eb;
  font-size: 1rem;
}

.quete-xp-badge {
  display: inline-flex;
  align-items: center;
  gap: .32rem;
  padding: .3rem .55rem;
  border: 1px solid rgba(255, 215, 112, .4);
  border-radius: 999px;
  background: rgba(255, 199, 67, .1);
  color: #ffd770;
  font-size: .76rem;
  font-weight: 800;
}

.carte-quete-body {
  flex: 1;
  padding: .7rem .9rem .9rem;
}

.quetes-page .carte-quete h4 {
  margin: 0 0 .55rem;
  color: #fff2cf;
  font-size: 1.08rem;
  line-height: 1.25;
}

.quetes-page .carte-quete p {
  margin: 0;
  color: rgba(255, 255, 255, .76);
  font-size: .9rem;
  line-height: 1.5;
}

.carte-quete-footer {
  padding: .75rem .9rem .9rem;
  border-top: 1px solid rgba(255, 255, 255, .07);
}

.quetes-page .bouton-action,
.quetes-page .bouton-matiere,
.quetes-retour {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .45rem;
  min-height: 40px;
  padding: .58rem .85rem;
  border: 1px solid #d8912f;
  border-radius: 8px;
  background: linear-gradient(180deg, #f2bd58, #d8912f);
  box-shadow: 0 3px 0 #673915;
  color: #1b1009 !important;
  font-weight: 850;
  text-decoration: none;
}

.carte-quete-footer .bouton-action {
  width: 100%;
}

.quetes-page .bouton-action:hover,
.quetes-page .bouton-matiere:hover,
.quetes-retour:hover {
  background: linear-gradient(180deg, #ffd77d, #eba43a);
  transform: translateY(-1px);
}

.quetes-empty {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: .7rem;
  min-height: 82px;
  padding: 1rem;
  border: 1px dashed rgba(255, 255, 255, .18);
  border-radius: 10px;
  color: rgba(255, 255, 255, .62);
  text-align: center;
}

.quetes-empty i {
  color: #b781ce;
  font-size: 1.15rem;
}

.quetes-empty p {
  margin: 0;
}

.quetes-detail-header {
  margin-bottom: .9rem;
}

.quete-detail-card {
  padding: 1rem;
  border: 1px solid rgba(218, 145, 47, .36);
  border-radius: 14px;
  background: rgba(255, 255, 255, .035);
}

.quete-detail-title {
  display: flex;
  align-items: center;
  gap: 1rem;
  margin-bottom: 1rem;
}

.quete-meta-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(175px, 1fr));
  gap: .7rem;
  margin: 1rem 0 1.25rem;
}

.quete-meta {
  display: flex;
  align-items: center;
  gap: .65rem;
  min-width: 0;
  padding: .7rem;
  border: 1px solid rgba(255, 255, 255, .09);
  border-radius: 9px;
  background: rgba(0, 0, 0, .22);
}

.quete-meta > i {
  flex: 0 0 20px;
  color: #c98be7;
  text-align: center;
}

.quete-meta span {
  min-width: 0;
  overflow-wrap: anywhere;
}

.quete-meta strong {
  display: block;
  margin-bottom: .08rem;
  color: rgba(255, 255, 255, .58);
  font-size: .69rem;
  letter-spacing: .06em;
  text-transform: uppercase;
}

.quete-meta-xp {
  border-color: rgba(255, 215, 112, .28);
}

.quete-meta-xp > i {
  color: #ffd770;
}

.quete-terminee {
  padding: .8rem 1rem;
  border: 1px solid rgba(96, 181, 109, .48);
  border-radius: 9px;
  background: rgba(59, 125, 68, .18);
  color: #c9f2ce;
  font-weight: 800;
}

@media (max-width: 640px) {
  .quetes-page {
    padding: .8rem !important;
  }

  .quetes-hero,
  .quete-detail-title {
    align-items: flex-start;
  }

  .quetes-hero-icon,
  .quete-embleme {
    flex-basis: 46px;
    width: 46px;
    height: 46px;
  }

  .quetes-section {
    padding: .8rem;
  }

  .liste-quetes,
  .quete-meta-grid {
    grid-template-columns: 1fr;
  }
}

/* Page Quêtes : sélection de matière et campagnes indépendantes */
.quetes-matiere-panel {
  display: grid;
  grid-template-columns: minmax(0, 1.35fr) minmax(280px, .9fr);
  gap: 1.5rem;
  align-items: center;
  margin-bottom: 1.5rem;
  padding: 1.35rem 1.5rem;
  border: 1px solid rgba(226, 184, 105, .45);
  border-radius: 18px;
  background: linear-gradient(135deg, rgba(38, 24, 15, .94), rgba(20, 14, 11, .88));
  box-shadow: 0 12px 30px rgba(0, 0, 0, .25), inset 0 1px 0 rgba(255, 255, 255, .04);
}

.quetes-matiere-panel h2 {
  margin: .15rem 0 .4rem;
}

.quetes-matiere-panel p {
  margin: 0;
  opacity: .85;
}

.quetes-matiere-form label {
  display: block;
  margin-bottom: .45rem;
  font-weight: 700;
}

.quetes-matiere-controls {
  display: flex;
  gap: .65rem;
  align-items: stretch;
}

.quetes-matiere-controls select {
  flex: 1 1 auto;
  min-width: 0;
  margin: 0;
}

.quetes-matiere-controls .bouton-action {
  margin: 0;
  white-space: nowrap;
}

.quetes-section-campagne {
  border-color: rgba(229, 184, 86, .5);
  background: linear-gradient(180deg, rgba(73, 45, 18, .22), rgba(24, 16, 12, .6));
}

.carte-quete-campagne .carte-quete-icon {
  box-shadow: 0 0 0 3px rgba(229, 184, 86, .12);
}

.quete-statut-badge {
  display: inline-flex;
  gap: .4rem;
  align-items: center;
  margin-top: .75rem;
  padding: .3rem .65rem;
  border-radius: 999px;
  background: rgba(225, 168, 65, .16);
  border: 1px solid rgba(225, 168, 65, .32);
  font-size: .82rem;
  font-weight: 700;
}

.quete-statut-terminee {
  background: rgba(87, 159, 103, .16);
  border-color: rgba(87, 159, 103, .35);
}

.quetes-sans-matiere {
  display: flex;
  gap: 1rem;
  align-items: center;
  margin-top: 1.5rem;
  padding: 1.15rem 1.3rem;
  border: 1px dashed rgba(226, 184, 105, .42);
  border-radius: 16px;
  background: rgba(21, 14, 10, .62);
}

.quetes-sans-matiere > i {
  font-size: 1.7rem;
  opacity: .8;
}

.quetes-sans-matiere h3,
.quetes-sans-matiere p {
  margin: 0;
}

.quetes-sans-matiere p {
  margin-top: .25rem;
  opacity: .8;
}

@media screen and (max-width: 700px) {
  .quetes-matiere-panel {
    grid-template-columns: 1fr;
  }

  .quetes-matiere-controls {
    flex-direction: column;
  }

  .quetes-matiere-controls .bouton-action {
    width: 100%;
  }
}

/* Quêtes réservées aux soutiens */
.carte-quete-verrouillee {
  position: relative;
  border-color: rgba(208, 164, 91, .55);
  background: linear-gradient(160deg, rgba(33, 25, 20, .96), rgba(14, 12, 11, .92));
}
.carte-quete-verrouillee .carte-quete-body { opacity: .82; }
.carte-quete-verrouillee .carte-quete-icon { background: rgba(175, 129, 62, .18); }
.quete-verrou-resume {
  margin-top: .9rem;
  padding: .65rem .75rem;
  border: 1px solid rgba(222, 177, 101, .35);
  border-radius: 10px;
  background: rgba(222, 177, 101, .08);
  font-size: .88rem;
  font-weight: 700;
}
.quete-verrou-detail {
  max-width: 760px;
  margin: 2rem auto;
  padding: 2rem;
  text-align: center;
  border: 1px solid rgba(226, 184, 105, .5);
  border-radius: 20px;
  background: linear-gradient(145deg, rgba(39, 26, 18, .97), rgba(16, 12, 10, .95));
  box-shadow: 0 18px 45px rgba(0,0,0,.35);
}
.quete-verrou-icone {
  display: inline-grid;
  place-items: center;
  width: 74px;
  height: 74px;
  margin-bottom: 1rem;
  border: 1px solid rgba(226, 184, 105, .55);
  border-radius: 50%;
  background: rgba(226, 184, 105, .12);
  font-size: 2rem;
}
.quete-verrou-explication {
  margin: 1.25rem 0;
  padding: 1rem 1.2rem;
  border-left: 4px solid rgba(226, 184, 105, .75);
  background: rgba(226, 184, 105, .08);
}


/* Financement du Donjon */
.dds-financement-footer{
    display:flex;
    align-items:center;
    gap:12px;
    width:100%;
    flex-wrap:nowrap;
}

.dds-financement-footer__label{
    flex:0 0 auto;
    white-space:nowrap;
}

.dds-financement-footer__bar{
    flex:1 1 auto;
    min-width:120px;
}

.dds-financement-footer__chiffres{
    flex:0 0 auto;
    display:flex;
    align-items:center;
    gap:10px;
    white-space:nowrap;
}

.dds-financement-footer__chiffres strong,
.dds-financement-footer__chiffres small{
    margin:0;
    display:inline;
    white-space:nowrap;
}

/* =========================================================
   PAGE SOUTENIR
   ========================================================= */

.soutenir-page {
    width: 100%;
    max-width: 1500px;
    margin: 0 auto;
    padding: 24px;
}

.soutenir-hero {
    margin-bottom: 24px;
    padding: 28px;
    border: 1px solid rgba(217, 172, 89, 0.45);
    border-radius: 14px;
    background:
        linear-gradient(
            135deg,
            rgba(38, 24, 14, 0.96),
            rgba(18, 12, 8, 0.94)
        );
    box-shadow: 0 12px 30px rgba(0, 0, 0, 0.35);
    text-align: center;
}

.soutenir-kicker {
    display: block;
    margin-bottom: 8px;
    color: #d9ac59;
    font-size: 0.85rem;
    font-weight: 700;
    letter-spacing: 0.12em;
    text-transform: uppercase;
}

.soutenir-hero h2 {
    margin: 0 0 12px;
    color: #fff2d2;
}

.soutenir-hero > p {
    max-width: 760px;
    margin: 0 auto 22px;
    color: rgba(255, 255, 255, 0.82);
}

.soutenir-global {
    max-width: 820px;
    margin: 0 auto;
    padding: 18px 20px;
    border: 1px solid rgba(255, 255, 255, 0.1);
    border-radius: 10px;
    background: rgba(0, 0, 0, 0.28);
}

.soutenir-global strong,
.soutenir-global span {
    display: block;
}

.soutenir-global strong {
    margin-bottom: 4px;
    color: #fff2d2;
    font-size: 1.15rem;
}

.soutenir-global span {
    color: rgba(255, 255, 255, 0.72);
    font-size: 0.9rem;
}

.soutenir-progress {
    position: relative;
    overflow: hidden;
    width: 100%;
    height: 12px;
    margin-top: 14px;
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.12);
}

.soutenir-progress i {
    display: block;
    height: 100%;
    border-radius: inherit;
    background: linear-gradient(90deg, #aa742e, #e4bd68);
}

.soutenir-layout {
    display: grid;
    grid-template-columns: minmax(280px, 380px) minmax(0, 1fr);
    gap: 24px;
    align-items: start;
}

.soutenir-form-card,
.soutenir-projets {
    padding: 22px;
    border: 1px solid rgba(217, 172, 89, 0.35);
    border-radius: 14px;
    background: rgba(24, 16, 10, 0.94);
    box-shadow: 0 10px 26px rgba(0, 0, 0, 0.3);
}

.soutenir-form-card {
    position: sticky;
    top: 20px;
}

.soutenir-form-card h3,
.soutenir-projets h3 {
    margin: 0 0 18px;
    color: #fff2d2;
}

.soutenir-form-card label {
    display: block;
    margin-bottom: 15px;
    color: #f3dfb6;
    font-weight: 600;
}

.soutenir-form-card input {
    width: 100%;
    height: 44px;
    margin: 6px 0 0;
    padding: 0 12px;
    border: 1px solid rgba(217, 172, 89, 0.4);
    border-radius: 7px;
    background: #1e140d;
    color: #fff;
    box-shadow: none;
}

.soutenir-form-card input:focus {
    border-color: #d9ac59;
    outline: none;
    box-shadow: 0 0 0 3px rgba(217, 172, 89, 0.15);
}

.soutenir-paypal {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 9px;
    min-height: 46px;
    margin: 8px 0 10px;
    border-radius: 8px;
    font-weight: 700;
}

.soutenir-form-card form > small {
    display: block;
    color: rgba(255, 255, 255, 0.64);
    line-height: 1.4;
    text-align: center;
}

.soutenir-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(190px, 1fr));
    gap: 14px;
}

.soutenir-projet {
    display: flex;
    flex-direction: column;
    min-width: 0;
    padding: 16px;
    border: 1px solid rgba(255, 255, 255, 0.1);
    border-radius: 10px;
    background: rgba(0, 0, 0, 0.25);
    color: #fff;
    text-decoration: none;
    transition:
        transform 0.18s ease,
        border-color 0.18s ease,
        background 0.18s ease;
}

.soutenir-projet:hover,
.soutenir-projet:focus {
    transform: translateY(-2px);
    border-color: rgba(217, 172, 89, 0.7);
    background: rgba(217, 172, 89, 0.1);
    color: #fff;
}

.soutenir-projet.is-selected {
    border-color: #d9ac59;
    background: rgba(217, 172, 89, 0.16);
    box-shadow: inset 0 0 0 1px rgba(217, 172, 89, 0.22);
}

.soutenir-projet strong {
    margin-bottom: 6px;
    overflow: hidden;
    color: #fff2d2;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.soutenir-projet span {
    color: rgba(255, 255, 255, 0.7);
    font-size: 0.85rem;
}

.soutenir-projet > i {
    display: block;
    overflow: hidden;
    height: 8px;
    margin-top: 14px;
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.12);
}

.soutenir-projet > i > b {
    display: block;
    height: 100%;
    border-radius: inherit;
    background: linear-gradient(90deg, #aa742e, #e4bd68);
}

@media screen and (max-width: 1100px) {
    .soutenir-grid {
        grid-template-columns: repeat(2, minmax(190px, 1fr));
    }
}

@media screen and (max-width: 760px) {
    .soutenir-page {
        padding: 14px;
    }

    .soutenir-hero {
        padding: 20px 16px;
    }

    .soutenir-layout {
        grid-template-columns: 1fr;
    }

    .soutenir-form-card {
        position: static;
    }

    .soutenir-grid {
        grid-template-columns: 1fr;
    }
}

.dds-footer-tile--support i{
    color:#d9ac59;
}

.dds-footer-tile--support:hover,
.dds-footer-tile--support:focus-within{
    border-color:#d9ac59;
}

/* Footer : toutes les tuiles sur une seule ligne */
.dds-footer-upper-row {
    display: flex;
    align-items: center;
    flex-wrap: nowrap;
    width: 100%;
    min-width: 0;
}

.dds-footer-menu-rebuilt,
.dds-footer-menu-rebuilt--hall {
    display: flex !important;
    flex-flow: row nowrap !important;
    align-items: stretch;
    width: auto !important;
    max-width: none !important;
    min-width: max-content;
    flex: 0 0 auto;
    overflow: visible;
}

.dds-footer-menu-rebuilt .dds-footer-tile {
    flex: 0 0 92px;
    width: 92px;
    min-width: 92px;
    margin: 0;
}

/* Le reste de la ligne utilise l'espace encore disponible */
.dds-footer-public-stats {
    flex: 1 1 auto;
    min-width: 0;
}

/* Sécurité : aucune ancienne règle grid ne doit rester active */
.dds-footer-menu-rebuilt {
    grid-template-columns: none !important;
}
/* =========================================================
   INSCRIPTION ET ACTIVATION DES RÔLES
   ========================================================= */
.dds-registration-page {
  max-width: 1180px;
  margin: 0 auto;
  padding: 2rem 1.5rem 3rem;
}

.dds-registration-hero {
  position: relative;
  overflow: hidden;
  margin-bottom: 1.75rem;
  padding: 2.15rem 2rem;
  border: 1px solid rgba(218, 174, 92, .55);
  border-radius: 22px;
  background:
    radial-gradient(circle at 90% 15%, rgba(232, 183, 93, .18), transparent 34%),
    linear-gradient(145deg, rgba(38, 25, 16, .97), rgba(18, 12, 9, .94));
  box-shadow: 0 20px 50px rgba(0, 0, 0, .34), inset 0 1px 0 rgba(255,255,255,.08);
  text-align: center;
}

.dds-registration-hero::before,
.dds-registration-hero::after {
  content: "";
  position: absolute;
  width: 150px;
  height: 150px;
  border: 1px solid rgba(218, 174, 92, .14);
  border-radius: 50%;
}

.dds-registration-hero::before { top: -95px; left: -55px; }
.dds-registration-hero::after { right: -70px; bottom: -105px; }

.dds-registration-hero-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 68px;
  height: 68px;
  margin-bottom: .9rem;
  border: 1px solid rgba(241, 197, 113, .65);
  border-radius: 50%;
  background: linear-gradient(145deg, rgba(138, 86, 35, .9), rgba(77, 43, 20, .95));
  box-shadow: 0 9px 24px rgba(0,0,0,.28), inset 0 1px 0 rgba(255,255,255,.14);
  color: #f6d58c;
  font-size: 1.7rem;
}

.dds-registration-eyebrow,
.dds-account-eyebrow {
  margin: 0 0 .35rem;
  color: #d9ad60;
  font-size: .76rem;
  font-weight: 800;
  letter-spacing: .16em;
  text-transform: uppercase;
}

.dds-registration-hero h2 {
  margin: 0 0 .65rem;
  color: #fff7e6;
  font-size: clamp(1.8rem, 4vw, 2.65rem);
  line-height: 1.12;
}

.dds-registration-hero > p:last-child {
  max-width: 720px;
  margin: 0 auto;
  color: #e7d8be;
  font-size: 1.04rem;
}

.dds-account-shell { position: relative; }

.dds-account-notice {
  display: flex;
  align-items: center;
  gap: 1rem;
  margin-bottom: 1.45rem;
  padding: 1rem 1.2rem;
  border: 1px solid rgba(218, 174, 92, .43);
  border-radius: 16px;
  background: linear-gradient(90deg, rgba(116, 72, 29, .30), rgba(34, 23, 15, .78));
  box-shadow: inset 0 1px 0 rgba(255,255,255,.06);
  color: #eadcc3;
}

.dds-account-notice-icon {
  display: inline-flex;
  flex: 0 0 46px;
  align-items: center;
  justify-content: center;
  width: 46px;
  height: 46px;
  border-radius: 50%;
  background: rgba(218, 174, 92, .16);
  color: #f2c977;
  font-size: 1.15rem;
}

.dds-account-notice strong {
  display: block;
  margin-bottom: .15rem;
  color: #fff1d1;
  font-size: 1.02rem;
}

.dds-account-notice p { margin: 0; }

.dds-account-grid { align-items: stretch; }
.dds-account-grid > .cell { display: flex; }

.dds-account-card {
  position: relative;
  width: 100%;
  padding: 1.7rem;
  border: 1px solid rgba(203, 160, 82, .34);
  border-radius: 20px;
  background: linear-gradient(160deg, rgba(39, 27, 19, .97), rgba(19, 13, 10, .96));
  box-shadow: 0 16px 38px rgba(0,0,0,.3), inset 0 1px 0 rgba(255,255,255,.055);
}

.dds-account-card-new {
  border-color: rgba(226, 178, 86, .58);
  background:
    radial-gradient(circle at 100% 0, rgba(190, 121, 42, .13), transparent 35%),
    linear-gradient(160deg, rgba(47, 31, 19, .98), rgba(20, 13, 9, .97));
}

.dds-account-card-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 50px;
  height: 50px;
  margin-bottom: .8rem;
  border: 1px solid rgba(220, 175, 91, .42);
  border-radius: 14px;
  background: rgba(131, 79, 31, .24);
  color: #ecc46f;
  font-size: 1.25rem;
}

.dds-account-card h3 {
  margin: 0 0 .55rem;
  color: #fff4dc;
  font-size: 1.42rem;
}

.dds-account-card-intro {
  min-height: 3.4em;
  margin-bottom: 1.25rem;
  color: #d9cbb3;
}

.dds-account-form label {
  color: #f0dfc2;
  font-weight: 700;
}

.dds-account-form label small {
  color: #bbaa8d;
  font-weight: 400;
}

.dds-account-form input,
.dds-account-form select,
.dds-account-form textarea {
  height: 2.85rem;
  margin-top: .35rem;
  margin-bottom: 1rem;
  border: 1px solid rgba(208, 166, 89, .36);
  border-radius: 10px;
  background: rgba(10, 8, 6, .68);
  box-shadow: inset 0 2px 8px rgba(0,0,0,.28);
  color: #fffaf0;
}

.dds-account-form input:focus,
.dds-account-form select:focus,
.dds-account-form textarea:focus {
  border-color: #e4b65d;
  background: rgba(15, 10, 7, .92);
  box-shadow: 0 0 0 3px rgba(228, 182, 93, .13);
}

.dds-account-help {
  margin: -.35rem 0 1.15rem;
  padding: .75rem .9rem;
  border-left: 3px solid rgba(222, 174, 82, .62);
  border-radius: 0 8px 8px 0;
  background: rgba(216, 169, 78, .07);
  color: #bfae92;
  font-size: .88rem;
}

.dds-account-submit {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .65rem;
  min-height: 3.1rem;
  margin: .3rem 0 0;
  border: 1px solid #efc676;
  border-radius: 11px;
  background: linear-gradient(180deg, #c98736, #8d4f20);
  box-shadow: 0 8px 20px rgba(0,0,0,.24), inset 0 1px 0 rgba(255,255,255,.2);
  color: #fff8e9;
  font-weight: 800;
  letter-spacing: .01em;
}

.dds-account-submit:hover,
.dds-account-submit:focus {
  background: linear-gradient(180deg, #dda04c, #a86027);
  color: #fff;
  transform: translateY(-1px);
}

.dds-account-submit-secondary {
  border-color: rgba(225, 190, 120, .65);
  background: linear-gradient(180deg, rgba(104, 78, 48, .95), rgba(60, 42, 28, .98));
}

.dds-account-submit-secondary:hover,
.dds-account-submit-secondary:focus {
  background: linear-gradient(180deg, rgba(128, 94, 54, .98), rgba(75, 49, 29, .98));
}

@media screen and (max-width: 63.9375em) {
  .dds-account-grid > .cell + .cell { margin-top: 1.25rem; }
  .dds-account-card-intro { min-height: 0; }
}

@media screen and (max-width: 39.9375em) {
  .dds-registration-page { padding: 1rem .75rem 2rem; }
  .dds-registration-hero { padding: 1.6rem 1rem; border-radius: 16px; }
  .dds-account-card { padding: 1.2rem; border-radius: 16px; }
  .dds-account-notice { align-items: flex-start; }
}

/* === Comptes DDS v3 : mise en page stable et pages rôles glamour === */
.dds-account-card { margin: 0; }
.dds-account-card-heading {
  display: flex;
  align-items: flex-start;
  gap: 1rem;
  margin-bottom: 1rem;
}
.dds-account-card-heading .dds-account-card-icon { flex: 0 0 50px; margin: 0; }
.dds-account-card-heading .dds-account-card-intro { min-height: 0; margin-bottom: 0; }
.dds-account-card-existing { padding-bottom: 1.45rem; }
.dds-account-existing-form {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) minmax(235px, .9fr);
  align-items: end;
  gap: 1rem;
}
.dds-account-existing-form label { margin: 0; }
.dds-account-existing-form input { margin-bottom: 0; }
.dds-account-existing-form .dds-account-submit { width: 100%; margin: 0; }
.dds-account-separator {
  display: flex;
  align-items: center;
  gap: .8rem;
  margin: .9rem 0;
  color: #c8a86b;
  font-size: .75rem;
  font-weight: 800;
  letter-spacing: .15em;
  text-transform: uppercase;
}
.dds-account-separator::before,
.dds-account-separator::after {
  content: "";
  height: 1px;
  flex: 1;
  background: linear-gradient(90deg, transparent, rgba(214,171,90,.45), transparent);
}
.dds-account-auto-cell { display: flex; align-items: end; }
.dds-account-auto-info {
  display: flex;
  align-items: center;
  gap: .65rem;
  width: 100%;
  min-height: 2.85rem;
  margin-bottom: 1rem;
  padding: .7rem .9rem;
  border: 1px solid rgba(208,166,89,.24);
  border-radius: 10px;
  background: rgba(216,169,78,.065);
  color: #d7c4a2;
  font-size: .9rem;
}
.dds-account-auto-info i { color: #ecc46f; }
.dds-registration-login-link { margin: 1.2rem 0 0; text-align: center; }
.dds-registration-login-link a { color: #efca7e; font-weight: 700; }

.dds-role-landing { padding-bottom: 2.5rem; }
.dds-role-price-card {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 1rem;
  max-width: 560px;
  margin: -1rem auto 1.6rem;
  padding: 1rem 1.3rem;
  border: 1px solid rgba(235,190,101,.48);
  border-radius: 18px;
  background: linear-gradient(145deg, rgba(94,58,26,.94), rgba(31,21,14,.97));
  box-shadow: 0 14px 30px rgba(0,0,0,.28), inset 0 1px 0 rgba(255,255,255,.08);
}
.dds-role-price-icon {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 54px;
  height: 54px;
  border-radius: 50%;
  background: rgba(229,179,80,.14);
  color: #f1c86f;
  font-size: 1.35rem;
}
.dds-role-price-card span { display: block; color: #d8bf91; font-size: .76rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.dds-role-price-card strong { display: block; color: #fff3d4; font-size: 1.75rem; line-height: 1.1; }
.dds-role-price-card p { margin: .2rem 0 0; color: #cdbb9c; font-size: .9rem; }
.dds-role-benefits { margin-bottom: 1.4rem; }
.dds-role-benefits > .cell { display: flex; }
.dds-role-benefit {
  width: 100%;
  padding: 1.25rem;
  border: 1px solid rgba(201,157,77,.27);
  border-radius: 16px;
  background: linear-gradient(160deg, rgba(41,28,19,.93), rgba(20,14,10,.94));
  box-shadow: 0 10px 26px rgba(0,0,0,.2);
  text-align: center;
}
.dds-role-benefit i { display: block; margin-bottom: .65rem; color: #edc36e; font-size: 1.45rem; }
.dds-role-benefit strong { display: block; margin-bottom: .35rem; color: #fff0d1; }
.dds-role-benefit span { color: #cdbfa7; font-size: .92rem; line-height: 1.45; }
.dds-role-account-notice { margin-top: 0; }
.dds-role-actions {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1.25rem;
}
.dds-role-action-card {
  display: flex;
  flex-direction: column;
  min-width: 0;
  padding: 1.55rem;
  border: 1px solid rgba(203,160,82,.34);
  border-radius: 20px;
  background: linear-gradient(160deg, rgba(39,27,19,.97), rgba(19,13,10,.96));
  box-shadow: 0 16px 38px rgba(0,0,0,.28), inset 0 1px 0 rgba(255,255,255,.05);
}
.dds-role-action-card-primary {
  border-color: rgba(226,178,86,.58);
  background: radial-gradient(circle at 100% 0, rgba(190,121,42,.13), transparent 38%), linear-gradient(160deg, rgba(47,31,19,.98), rgba(20,13,9,.97));
}
.dds-role-action-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 50px;
  height: 50px;
  margin-bottom: .8rem;
  border: 1px solid rgba(220,175,91,.42);
  border-radius: 14px;
  background: rgba(131,79,31,.24);
  color: #ecc46f;
  font-size: 1.2rem;
}
.dds-role-action-card h3 { margin: 0 0 .5rem; color: #fff4dc; font-size: 1.35rem; }
.dds-role-action-card > p:not(.dds-account-eyebrow) { flex: 1; margin-bottom: 1.15rem; color: #d2c3aa; }
.dds-role-action-card .button { width: 100%; margin: 0; min-height: 3rem; display: inline-flex; align-items: center; justify-content: center; white-space: normal; }
.dds-role-button-secondary {
  border: 1px solid rgba(225,190,120,.65);
  border-radius: 11px;
  background: linear-gradient(180deg, rgba(104,78,48,.95), rgba(60,42,28,.98));
  color: #fff4df;
  font-weight: 800;
}
.dds-role-button-secondary:hover,
.dds-role-button-secondary:focus { background: linear-gradient(180deg, rgba(128,94,54,.98), rgba(75,49,29,.98)); color: #fff; }
.dds-role-single-action { text-align: center; }
.dds-role-single-action .button { min-width: 280px; }

@media screen and (max-width: 63.9375em) {
  .dds-account-existing-form { grid-template-columns: repeat(2, minmax(0,1fr)); }
  .dds-account-existing-form .dds-account-submit { grid-column: 1 / -1; }
}
@media screen and (max-width: 47.9375em) {
  .dds-account-existing-form,
  .dds-role-actions { grid-template-columns: 1fr; }
  .dds-account-existing-form .dds-account-submit { grid-column: auto; }
  .dds-role-benefits > .cell + .cell { margin-top: 1rem; }
}
@media screen and (max-width: 39.9375em) {
  .dds-account-card-heading { display: block; }
  .dds-account-card-heading .dds-account-card-icon { margin-bottom: .8rem; }
  .dds-account-auto-cell { display: block; }
  .dds-role-price-card { justify-content: flex-start; margin-top: 0; }
}

/* === Comptes DDS v4 : étape 2 harmonisée === */
.dds-role-step-page { padding: 0 0 2.5rem; }
.dds-role-step-hero { margin-bottom: 1.25rem; }
.dds-role-step-hero h2 { margin-bottom: .55rem; }
.dds-role-step-hero p { max-width: 760px; margin: 0 auto; }
.dds-role-step-card { max-width: none; }
.dds-role-step-heading { margin-bottom: 1.35rem; }
.dds-role-step-heading h3 { margin-bottom: 0; }
.dds-role-step-form textarea { height: auto; min-height: 7rem; }
.dds-role-preferences {
  margin: .45rem 0 1.15rem;
  padding: 1.25rem 1.25rem .35rem;
  border: 1px solid rgba(208,166,89,.28);
  border-radius: 16px;
  background: radial-gradient(circle at 100% 0, rgba(204,139,48,.09), transparent 38%), rgba(13,9,7,.35);
}
.dds-role-preferences-title {
  display: flex;
  align-items: center;
  gap: .8rem;
  margin-bottom: .85rem;
}
.dds-role-preferences-title > i {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 42px;
  height: 42px;
  border: 1px solid rgba(220,175,91,.4);
  border-radius: 12px;
  background: rgba(131,79,31,.22);
  color: #ecc46f;
}
.dds-role-preferences-title h3 { margin: 0; color: #fff1d4; font-size: 1.2rem; }
.dds-role-preferences-title .dds-account-eyebrow { margin-bottom: .2rem; }
.dds-role-fieldset {
  margin: 0 0 1rem;
  padding: 1rem 1.1rem;
  border: 1px solid rgba(208,166,89,.28);
  border-radius: 12px;
  background: rgba(13,9,7,.32);
}
.dds-role-fieldset legend { padding: 0 .45rem; color: #f0dfc2; font-weight: 700; }
.dds-role-fieldset label { display: inline-flex; align-items: center; gap: .4rem; margin: 0 1.2rem 0 0; }
.dds-role-fieldset input { height: auto; margin: 0; }
@media screen and (max-width: 39.9375em) {
  .dds-role-preferences { padding: 1rem 1rem .2rem; }
}
/* === Comptes DDS v5 : erreurs d'inscription === */
.dds-registration-feedback {
  display: grid;
  grid-template-columns: 68px minmax(0, 1fr);
  gap: 1.15rem;
  max-width: 900px;
  margin: 1.5rem auto 2.5rem;
  padding: 1.55rem 1.65rem;
  border: 1px solid rgba(226, 139, 92, .55);
  border-radius: 20px;
  background:
    radial-gradient(circle at 100% 0, rgba(173, 67, 37, .16), transparent 38%),
    linear-gradient(155deg, rgba(48, 25, 18, .98), rgba(20, 13, 10, .98));
  box-shadow: 0 18px 44px rgba(0, 0, 0, .34), inset 0 1px 0 rgba(255,255,255,.05);
}
.dds-registration-feedback-icon {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 60px;
  height: 60px;
  border: 1px solid rgba(238, 151, 100, .55);
  border-radius: 18px;
  background: rgba(153, 54, 31, .2);
  color: #ffb37d;
  font-size: 1.65rem;
  box-shadow: inset 0 0 20px rgba(224, 93, 48, .08);
}
.dds-registration-feedback-content h2 {
  margin: .1rem 0 .45rem;
  color: #fff1dc;
  font-size: 1.55rem;
}
.dds-registration-feedback-intro {
  margin: 0 0 .85rem;
  color: #dbc8b5;
}
.dds-registration-feedback ul {
  margin: 0 0 1.15rem;
  padding: .9rem 1rem .9rem 2.4rem;
  border: 1px solid rgba(231, 139, 91, .22);
  border-radius: 12px;
  background: rgba(11, 7, 6, .3);
  color: #ffe4cf;
}
.dds-registration-feedback li { margin: .35rem 0; line-height: 1.45; }
.dds-registration-feedback li::marker { color: #f0a06d; }
.dds-registration-feedback-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .55rem;
  width: auto;
  min-width: 230px;
  margin: 0;
}
@media screen and (max-width: 39.9375em) {
  .dds-registration-feedback { grid-template-columns: 1fr; padding: 1.2rem; border-radius: 16px; }
  .dds-registration-feedback-icon { width: 52px; height: 52px; border-radius: 14px; }
  .dds-registration-feedback-button { width: 100%; min-width: 0; }
}


/* Page professionnels : connexion prioritaire puis choix clair du parcours */
.dds-role-login-first {
  display: grid;
  grid-template-columns: auto minmax(0,1fr) auto;
  align-items: center;
  gap: 1.2rem;
  margin: 0 0 1.6rem;
  padding: 1.25rem 1.4rem;
  border: 1px solid rgba(220,167,67,.58);
  border-radius: 18px;
  background: linear-gradient(135deg,rgba(54,31,18,.96),rgba(26,16,11,.96));
  box-shadow: 0 16px 34px rgba(0,0,0,.28), inset 0 1px 0 rgba(255,255,255,.04);
}
.dds-role-login-first-icon {
  display: grid;
  place-items: center;
  width: 54px;
  height: 54px;
  border: 1px solid rgba(225,172,70,.62);
  border-radius: 16px;
  background: rgba(132,83,27,.28);
  color: #ffd36f;
  font-size: 1.35rem;
}
.dds-role-login-first-copy h2 { margin: .1rem 0 .25rem; color: #fff2d6; font-size: 1.35rem; }
.dds-role-login-first-copy p:last-child { margin: 0; color: #d8c5a6; }
.dds-role-login-first .button { margin: 0; min-width: 290px; white-space: normal; }
.dds-role-presentation-hero { margin-top: 0; }
.dds-role-choice-heading { margin: 1.8rem 0 1rem; text-align: center; }
.dds-role-choice-heading h2 { margin: .15rem 0 0; color: #fff2d6; font-size: 1.65rem; }
#compte-existant, #nouveau-compte { scroll-margin-top: 1.5rem; }
@media screen and (max-width: 760px) {
  .dds-role-login-first { grid-template-columns: auto 1fr; }
  .dds-role-login-first .button { grid-column: 1 / -1; width: 100%; min-width: 0; }
}

/* === Comptes DDS v7 : présentation professionnelle structurée === */
.dds-pro-overview {
  margin: 1.45rem 0 1.75rem;
  padding: 1.5rem;
  border: 1px solid rgba(213, 164, 74, .34);
  border-radius: 22px;
  background:
    radial-gradient(circle at 100% 0, rgba(182, 116, 39, .11), transparent 34%),
    linear-gradient(150deg, rgba(36, 24, 17, .95), rgba(17, 12, 9, .96));
  box-shadow: 0 18px 42px rgba(0,0,0,.26), inset 0 1px 0 rgba(255,255,255,.04);
}
.dds-pro-overview-heading {
  max-width: 720px;
  margin: 0 auto 1.2rem;
  text-align: center;
}
.dds-pro-overview-heading h2 {
  margin: .15rem 0 0;
  color: #fff1d4;
  font-size: clamp(1.35rem, 2.2vw, 1.75rem);
}
.dds-pro-overview .dds-role-benefits {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1rem;
  margin: 0;
}
.dds-pro-overview .dds-role-benefit {
  display: flex;
  align-items: flex-start;
  gap: .9rem;
  min-width: 0;
  padding: 1.15rem;
  border: 1px solid rgba(207, 158, 73, .28);
  border-radius: 16px;
  background: rgba(10, 7, 5, .34);
  box-shadow: none;
  text-align: left;
}
.dds-role-benefit-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 46px;
  width: 46px;
  height: 46px;
  border: 1px solid rgba(221, 174, 86, .38);
  border-radius: 13px;
  background: rgba(133, 81, 28, .2);
  color: #efc56e;
}
.dds-pro-overview .dds-role-benefit-icon i {
  margin: 0;
  color: inherit;
  font-size: 1.12rem;
}
.dds-pro-overview .dds-role-benefit strong {
  margin: .05rem 0 .35rem;
  font-size: 1.02rem;
  line-height: 1.3;
}
.dds-pro-overview .dds-role-benefit span:not(.dds-role-benefit-icon) {
  display: block;
  font-size: .9rem;
  line-height: 1.48;
}
.dds-pro-overview .dds-role-account-notice {
  margin: 1rem 0 0;
  border-radius: 15px;
  background: rgba(95, 57, 23, .16);
}
@media screen and (max-width: 63.9375em) {
  .dds-pro-overview .dds-role-benefits { grid-template-columns: 1fr; }
  .dds-pro-overview .dds-role-benefit { align-items: center; }
}
@media screen and (max-width: 39.9375em) {
  .dds-pro-overview { padding: 1rem; border-radius: 17px; }
  .dds-pro-overview .dds-role-benefit { align-items: flex-start; padding: 1rem; }
}

/* === Comptes DDS v8 : connexion par rôle === */
.dds-login-page { max-width: 1120px; margin: 0 auto; }
.dds-login-hero { max-width: 820px; margin-left: auto; margin-right: auto; }
.dds-login-card {
  max-width: 1040px;
  margin: 1.4rem auto 0;
  padding: clamp(1.2rem, 3vw, 2rem);
}
.dds-login-section-heading { margin-bottom: 1rem; text-align: center; }
.dds-login-section-heading h3 {
  margin: .15rem 0 0;
  color: #fff0d1;
  font-size: clamp(1.2rem, 2vw, 1.55rem);
}
.dds-login-role-grid {
  display: grid;
  grid-template-columns: repeat(3,minmax(0,1fr));
  gap: 1rem;
}
.dds-login-role-choice { position: relative; margin: 0; cursor: pointer; }
.dds-login-role-choice > input {
  position: absolute;
  width: 1px;
  height: 1px;
  opacity: 0;
  pointer-events: none;
}
.dds-login-role-card {
  position: relative;
  display: flex;
  align-items: center;
  gap: .85rem;
  min-height: 108px;
  padding: 1rem 2.65rem 1rem 1rem;
  border: 1px solid rgba(212,163,73,.32);
  border-radius: 17px;
  background: linear-gradient(145deg,rgba(43,28,19,.9),rgba(20,13,10,.92));
  box-shadow: inset 0 1px 0 rgba(255,255,255,.04);
  transition: border-color .18s ease, transform .18s ease, box-shadow .18s ease, background .18s ease;
}
.dds-login-role-choice:hover .dds-login-role-card {
  transform: translateY(-2px);
  border-color: rgba(239,190,91,.68);
  box-shadow: 0 12px 26px rgba(0,0,0,.24), inset 0 1px 0 rgba(255,255,255,.05);
}
.dds-login-role-choice > input:focus-visible + .dds-login-role-card {
  outline: 3px solid rgba(239,190,91,.28);
  outline-offset: 3px;
}
.dds-login-role-choice > input:checked + .dds-login-role-card {
  border-color: #e6ad43;
  background: linear-gradient(145deg,rgba(88,53,20,.94),rgba(35,21,13,.96));
  box-shadow: 0 0 0 2px rgba(230,173,67,.13), 0 14px 30px rgba(0,0,0,.28), inset 0 1px 0 rgba(255,255,255,.06);
}
.dds-login-role-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 50px;
  width: 50px;
  height: 50px;
  border: 1px solid rgba(225,174,76,.42);
  border-radius: 14px;
  background: rgba(151,91,28,.22);
  color: #f0c46d;
  font-size: 1.2rem;
}
.dds-login-role-copy { min-width: 0; }
.dds-login-role-copy strong {
  display: block;
  margin-bottom: .25rem;
  color: #fff0d1;
  font-size: 1rem;
  line-height: 1.25;
}
.dds-login-role-copy small {
  display: block;
  color: rgba(255,239,209,.72);
  font-size: .82rem;
  line-height: 1.38;
}
.dds-login-role-check {
  position: absolute;
  top: 50%;
  right: .85rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 25px;
  height: 25px;
  border: 1px solid rgba(222,172,77,.3);
  border-radius: 50%;
  color: transparent;
  transform: translateY(-50%);
}
.dds-login-role-choice > input:checked + .dds-login-role-card .dds-login-role-check {
  border-color: #efb64a;
  background: #efb64a;
  color: #201308;
}
.dds-login-credentials {
  margin-top: 1.45rem;
  padding-top: 1.45rem;
  border-top: 1px solid rgba(212,163,73,.22);
}
.dds-login-fields {
  display: grid;
  grid-template-columns: repeat(2,minmax(0,1fr));
  gap: 1rem;
}
.dds-login-fields label { margin: 0; }
.dds-login-fields label > span {
  display: block;
  margin-bottom: .42rem;
  color: #fff0d1;
  font-weight: 700;
}
.dds-login-remember {
  display: inline-flex;
  align-items: center;
  gap: .55rem;
  margin: .9rem 0 1rem;
  color: rgba(255,239,209,.82);
  cursor: pointer;
}
.dds-login-remember input { margin: 0; }
.dds-login-submit { margin: 0; }
.dds-login-register-link { text-align: center; }
.dds-login-feedback-page { max-width: 850px; margin: 0 auto; }
@media screen and (max-width: 63.9375em) {
  .dds-login-role-grid { grid-template-columns: 1fr; }
  .dds-login-role-card { min-height: 88px; }
}
@media screen and (max-width: 39.9375em) {
  .dds-login-card { padding: 1rem; border-radius: 17px; }
  .dds-login-fields { grid-template-columns: 1fr; }
  .dds-login-role-card { padding-left: .85rem; }
  .dds-login-role-icon { flex-basis: 44px; width: 44px; height: 44px; }
}


/* === Comptes DDS v9 : connexion allégée et inscription mise en valeur === */
.dds-login-intro {
  max-width: 760px;
  margin: 0 auto 1rem;
  text-align: center;
}
.dds-login-intro h2 {
  margin: .12rem 0 .35rem;
  color: #fff0d1;
  font-size: clamp(1.45rem, 2.5vw, 2rem);
}
.dds-login-intro p:last-child {
  margin: 0;
  color: rgba(255,239,209,.8);
}
.dds-login-card { margin-top: 0; }
.dds-login-register-card {
  display: grid;
  grid-template-columns: auto minmax(0,1fr);
  gap: .95rem 1.1rem;
  max-width: 1040px;
  margin: 1.2rem auto 0;
  padding: 1.25rem 1.35rem;
  border: 1px solid rgba(212,163,73,.34);
  border-radius: 19px;
  background:
    radial-gradient(circle at 100% 0, rgba(175,106,32,.11), transparent 34%),
    linear-gradient(145deg,rgba(42,27,18,.94),rgba(20,13,10,.96));
  box-shadow: 0 15px 34px rgba(0,0,0,.24), inset 0 1px 0 rgba(255,255,255,.04);
}
.dds-login-register-icon {
  display: grid;
  place-items: center;
  width: 52px;
  height: 52px;
  border: 1px solid rgba(225,174,76,.48);
  border-radius: 15px;
  background: rgba(151,91,28,.22);
  color: #f0c46d;
  font-size: 1.2rem;
}
.dds-login-register-copy h3 {
  margin: .08rem 0 .25rem;
  color: #fff0d1;
  font-size: 1.25rem;
}
.dds-login-register-copy p:last-child {
  margin: 0;
  color: rgba(255,239,209,.74);
}
.dds-login-register-actions {
  grid-column: 1 / -1;
  display: grid;
  grid-template-columns: repeat(3,minmax(0,1fr));
  gap: .75rem;
  margin-top: .2rem;
}
.dds-login-register-action.button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .5rem;
  min-height: 48px;
  margin: 0;
  border: 1px solid rgba(224,171,72,.42);
  border-radius: 12px;
  background: rgba(111,67,24,.3);
  color: #ffe3aa;
  font-weight: 700;
}
.dds-login-register-action.button:hover,
.dds-login-register-action.button:focus {
  border-color: #efb64a;
  background: rgba(153,92,28,.48);
  color: #fff3d6;
}
@media screen and (max-width: 48em) {
  .dds-login-register-actions { grid-template-columns: 1fr; }
}
@media screen and (max-width: 39.9375em) {
  .dds-login-intro { text-align: left; }
  .dds-login-register-card { padding: 1rem; }
  .dds-login-register-icon { width: 46px; height: 46px; }
}

/* =========================================================
   DEVENIR SPONSOR — MISE EN PAGE HARMONISÉE
   ========================================================= */
.dds-sponsor-landing {
  width: 100%;
  max-width: 1180px;
}

.dds-sponsor-hero {
  margin-bottom: 1.25rem;
}

.dds-sponsor-price {
  max-width: 720px;
  margin: 0 auto 1.35rem;
  justify-content: flex-start;
}

.dds-sponsor-benefits {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1.15rem;
  width: 100%;
  margin: 0 0 1.35rem;
}

.dds-sponsor-benefit {
  display: flex;
  min-width: 0;
  min-height: 205px;
  flex-direction: column;
  align-items: center;
  justify-content: flex-start;
  padding: 1.4rem 1.25rem;
  transition: transform .2s ease, border-color .2s ease, box-shadow .2s ease, background .2s ease;
}

.dds-sponsor-benefit:hover {
  transform: translateY(-4px);
  border-color: rgba(232, 188, 99, .62);
  background: linear-gradient(160deg, rgba(55, 36, 21, .97), rgba(23, 15, 10, .97));
  box-shadow: 0 18px 36px rgba(0, 0, 0, .34), inset 0 1px 0 rgba(255,255,255,.07);
}

.dds-sponsor-benefit-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 58px;
  height: 58px;
  margin-bottom: .85rem;
  border: 1px solid rgba(225, 178, 90, .4);
  border-radius: 50%;
  background: rgba(178, 112, 42, .18);
  color: #efc46c;
  font-size: 1.45rem;
}

.dds-sponsor-benefit .dds-sponsor-benefit-icon i {
  margin: 0;
  color: inherit;
  font-size: inherit;
}

.dds-sponsor-benefit strong {
  margin-bottom: .55rem;
  font-size: 1.12rem;
  line-height: 1.25;
}

.dds-sponsor-benefit > span:last-child {
  display: block;
  max-width: 295px;
  margin: 0 auto;
}

.dds-sponsor-account-notice {
  width: 100%;
  margin-bottom: 1.35rem;
}

.dds-sponsor-actions {
  width: 100%;
  align-items: stretch;
}

.dds-sponsor-action-card {
  min-height: 285px;
  transition: transform .2s ease, border-color .2s ease, box-shadow .2s ease;
}

.dds-sponsor-action-card:hover {
  transform: translateY(-3px);
  border-color: rgba(226, 178, 86, .56);
  box-shadow: 0 20px 42px rgba(0, 0, 0, .34), inset 0 1px 0 rgba(255,255,255,.07);
}

.dds-sponsor-action-card .button {
  transition: transform .18s ease, filter .18s ease, box-shadow .18s ease;
}

.dds-sponsor-action-card .button:hover,
.dds-sponsor-action-card .button:focus {
  transform: translateY(-2px);
  filter: brightness(1.08);
  box-shadow: 0 10px 22px rgba(0,0,0,.28);
}

@media screen and (max-width: 63.9375em) {
  .dds-sponsor-benefits {
    grid-template-columns: 1fr;
  }

  .dds-sponsor-benefit {
    min-height: 0;
  }
}

@media screen and (max-width: 47.9375em) {
  .dds-sponsor-price {
    align-items: flex-start;
  }

  .dds-sponsor-account-notice {
    align-items: flex-start;
  }

  .dds-sponsor-action-card {
    min-height: 0;
  }
}

/* ========================================================================== */
/* HUD professionnel : même architecture visuelle que les autres comptes      */
/* ========================================================================== */
.hud.hud-pro {
  --dds-hud-border: #76552e;
  --dds-hud-bg: rgba(12, 11, 18, .97);
  --dds-hud-panel: rgba(19, 17, 25, .98);
  --dds-hud-gold: #f0d4a1;
  --dds-hud-purple: #c95cff;
  display: grid;
  grid-template-columns: minmax(260px, 1.2fr) minmax(650px, 3.5fr) minmax(88px, .42fr);
  width: 100%;
  height: 116px;
  min-height: 116px;
  padding: 4px;
  gap: 4px;
  background: #08070c;
  border: 0;
  border-bottom: 2px solid var(--dds-hud-border);
  overflow: visible;
  position: relative;
  z-index: 20000;
}

.dds-pro-brand,
.hud-pro .dds-main-nav-item,
.hud-pro .dds-hud-tools {
  background: linear-gradient(180deg, rgba(21,20,28,.98), rgba(12,11,17,.98));
  border: 1px solid var(--dds-hud-border);
  box-shadow: inset 0 0 0 2px rgba(0,0,0,.42);
}

.dds-pro-brand { min-width: 0; }

.dds-pro-brand-link {
  display: flex;
  align-items: center;
  width: 100%;
  height: 100%;
  min-width: 0;
  padding: 10px 14px;
  color: #fff;
}

.dds-pro-brand-link:hover,
.dds-pro-brand-link:focus { color: #fff; }

.dds-pro-emblem {
  width: 72px;
  height: 72px;
  flex: 0 0 72px;
  display: grid;
  place-items: center;
  margin-right: 13px;
  border: 3px solid #74542d;
  border-radius: 50%;
  background: radial-gradient(circle at 50% 35%, #8d5be7, #30204f 62%, #17101f 100%);
  box-shadow: 0 0 0 2px #17131e, inset 0 0 14px rgba(255,255,255,.16);
  color: #eadfff;
  font-size: 1.9rem;
}

.dds-pro-brand-copy {
  display: flex;
  flex-direction: column;
  min-width: 0;
  line-height: 1.15;
}

.dds-pro-brand-copy strong {
  overflow: hidden;
  color: #fff;
  font-family: Georgia, 'Times New Roman', serif;
  font-size: clamp(1.05rem, 1.35vw, 1.4rem);
  text-overflow: ellipsis;
  white-space: nowrap;
}

.dds-pro-brand-copy span {
  margin-top: 7px;
  color: var(--dds-hud-purple);
  font-size: .78rem;
  font-weight: 700;
}

.hud-pro .dds-pro-nav {
  grid-template-columns: repeat(7, minmax(0, 1fr));
}

.hud-pro .dds-hud-tools,
.hud-pro .dds-language-menu { overflow: visible; }

.hud.hud-pro + .scene { min-height: calc(100vh - 116px); }

@media screen and (max-width: 1120px) {
  .hud.hud-pro {
    grid-template-columns: minmax(220px, 1fr) minmax(600px, 3fr) 78px;
  }
  .dds-pro-emblem { width: 62px; height: 62px; flex-basis: 62px; font-size: 1.65rem; }
}

@media screen and (max-width: 900px) {
  .hud.hud-pro {
    height: auto;
    min-height: 0;
    grid-template-columns: 1fr auto;
    grid-template-areas: "brand tools" "nav nav";
  }
  .dds-pro-brand { grid-area: brand; min-height: 102px; }
  .hud-pro .dds-pro-nav { grid-area: nav; min-height: 76px; }
  .hud-pro .dds-hud-tools { grid-area: tools; width: 84px; }
  .hud.hud-pro + .scene { min-height: calc(100vh - 184px); }
}

@media screen and (max-width: 620px) {
  .hud-pro .dds-pro-nav { grid-template-columns: repeat(3, minmax(0, 1fr)); min-height: 225px; }
  .hud-pro .dds-main-nav-item { gap: 4px; padding: 6px 2px; }
  .hud-pro .dds-main-nav-item i { font-size: 1.4rem; }
  .hud-pro .dds-main-nav-item span { font-size: .58rem; }
  .dds-pro-emblem { width: 56px; height: 56px; flex-basis: 56px; }
  .hud.hud-pro + .scene { min-height: calc(100vh - 333px); }
}

/* ========================================================================== */
/* HUD professionnel v2 : proportions, états actifs et tableau de bord        */
/* ========================================================================== */
.hud.hud-pro {
  grid-template-columns: minmax(310px,1.65fr) minmax(610px,3fr) minmax(88px,.48fr);
  height:116px;
  min-height:116px;
  overflow:visible;
}

.dds-pro-brand-link {
  padding:7px 10px;
  transition:background .15s ease, box-shadow .15s ease, color .15s ease;
}

.dds-pro-emblem {
  width:82px;
  height:82px;
  flex-basis:82px;
  margin-right:12px;
  font-size:2.15rem;
  transition:transform .15s ease, color .15s ease, box-shadow .15s ease;
}

.dds-pro-brand-copy strong {
  font-size:clamp(1.2rem,1.5vw,1.55rem);
}

.dds-pro-brand-copy span {
  margin-top:4px;
  font-size:.82rem;
}

.dds-pro-brand-link:hover,
.dds-pro-brand-link:focus,
.dds-pro-brand-link.is-active {
  color:#fff;
  background:linear-gradient(180deg,rgba(49,31,64,.96),rgba(17,13,23,.98));
  box-shadow:inset 0 0 0 2px rgba(0,0,0,.42), inset 0 0 24px rgba(201,92,255,.08);
}

.dds-pro-brand-link:hover .dds-pro-emblem,
.dds-pro-brand-link:focus .dds-pro-emblem,
.dds-pro-brand-link.is-active .dds-pro-emblem {
  color:#fff;
  transform:translateY(-2px);
  box-shadow:0 0 0 2px #17131e,0 0 18px rgba(201,92,255,.3),inset 0 0 14px rgba(255,255,255,.2);
}

.hud-pro .dds-pro-nav {
  grid-template-columns:repeat(7,minmax(0,1fr));
}

.hud-pro .dds-main-nav-item {
  gap:9px;
  padding:0 5px;
  font-size:clamp(.72rem,.9vw,.92rem);
  transition:background .15s ease,color .15s ease,box-shadow .15s ease;
}

.hud-pro .dds-main-nav-item i {
  font-size:clamp(1.55rem,2vw,2.15rem);
}

.hud-pro .dds-main-nav-item:hover,
.hud-pro .dds-main-nav-item:focus,
.hud-pro .dds-main-nav-item.is-active {
  box-shadow:inset 0 0 0 2px rgba(0,0,0,.42),inset 0 0 22px rgba(201,92,255,.07);
}

/* Tableau de bord professionnel */
.dds-pro-dashboard {
  width:min(1180px,calc(100% - 2rem));
  margin:1.5rem auto;
  padding:clamp(1rem,2.5vw,2rem);
  border:1px solid rgba(118,85,46,.86);
  background:linear-gradient(145deg,rgba(24,20,29,.95),rgba(11,10,15,.97));
  box-shadow:0 18px 44px rgba(0,0,0,.34),inset 0 1px 0 rgba(255,255,255,.035);
  color:#fff;
}

.dds-pro-dashboard-header {
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:1.5rem;
  padding-bottom:1.35rem;
  border-bottom:1px solid rgba(118,85,46,.48);
}

.dds-pro-dashboard-kicker {
  margin:0 0 .25rem;
  color:#c95cff;
  font-size:.76rem;
  font-weight:800;
  letter-spacing:.11em;
  text-transform:uppercase;
}

.dds-pro-dashboard-header h1,
.dds-pro-dashboard-section-title h2 {
  margin:0;
  color:#fff0d1;
  font-family:Georgia,'Times New Roman',serif;
}

.dds-pro-dashboard-header h1 { font-size:clamp(1.7rem,3vw,2.5rem); }
.dds-pro-dashboard-header p:last-child { margin:.45rem 0 0;color:rgba(255,240,209,.7); }

.dds-pro-dashboard-period {
  display:inline-flex;
  align-items:center;
  gap:.5rem;
  flex:0 0 auto;
  padding:.65rem .85rem;
  border:1px solid rgba(118,85,46,.7);
  background:rgba(19,17,25,.9);
  color:#f0d4a1;
  font-weight:700;
  font-size:.82rem;
}

.dds-pro-stats-grid {
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:.85rem;
  margin-top:1.25rem;
}

.dds-pro-stat-card {
  position:relative;
  display:grid;
  grid-template-columns:auto minmax(0,1fr) auto;
  align-items:center;
  gap:.8rem;
  min-height:120px;
  padding:1rem;
  border:1px solid rgba(118,85,46,.62);
  background:linear-gradient(180deg,rgba(27,24,34,.96),rgba(15,13,20,.98));
  color:#fff;
  box-shadow:inset 0 0 0 2px rgba(0,0,0,.32);
  transition:transform .16s ease,border-color .16s ease,background .16s ease,box-shadow .16s ease;
}

.dds-pro-stat-card:hover,
.dds-pro-stat-card:focus {
  color:#fff;
  transform:translateY(-3px);
  border-color:#c95cff;
  background:linear-gradient(180deg,rgba(49,31,64,.96),rgba(17,13,23,.98));
  box-shadow:0 12px 26px rgba(0,0,0,.28),inset 0 0 0 2px rgba(0,0,0,.32);
}

.dds-pro-stat-icon {
  display:grid;
  place-items:center;
  width:44px;
  height:44px;
  border:1px solid #74542d;
  border-radius:50%;
  background:radial-gradient(circle at 50% 35%,#8d5be7,#30204f 62%,#17101f 100%);
  color:#eadfff;
}

.dds-pro-stat-copy { min-width:0; }
.dds-pro-stat-copy strong { display:block;color:#fff0d1;font-size:clamp(1.35rem,2.2vw,1.9rem);line-height:1.05; }
.dds-pro-stat-copy span { display:block;margin-top:.35rem;color:rgba(255,240,209,.68);font-size:.78rem;line-height:1.25; }
.dds-pro-stat-arrow { color:rgba(240,212,161,.5);font-size:.78rem;transition:transform .16s ease,color .16s ease; }
.dds-pro-stat-card:hover .dds-pro-stat-arrow { color:#c95cff;transform:translateX(3px); }
.dds-pro-stat-card-highlight { border-color:rgba(201,92,255,.52); }

.dds-pro-dashboard-actions { margin-top:1.6rem; }
.dds-pro-dashboard-section-title { margin-bottom:.85rem; }
.dds-pro-dashboard-section-title h2 { font-size:1.35rem; }
.dds-pro-action-grid { display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.85rem; }
.dds-pro-action-card {
  display:flex;
  align-items:center;
  gap:.8rem;
  min-height:86px;
  padding:.9rem 1rem;
  border:1px solid rgba(118,85,46,.55);
  background:rgba(19,17,25,.88);
  color:#f0d4a1;
  transition:transform .16s ease,border-color .16s ease,background .16s ease;
}
.dds-pro-action-card > i { width:35px;text-align:center;color:#c95cff;font-size:1.4rem; }
.dds-pro-action-card strong,.dds-pro-action-card small { display:block; }
.dds-pro-action-card strong { color:#fff0d1; }
.dds-pro-action-card small { margin-top:.2rem;color:rgba(255,240,209,.62);font-size:.72rem; }
.dds-pro-action-card:hover,.dds-pro-action-card:focus { color:#fff;transform:translateY(-2px);border-color:#c95cff;background:rgba(49,31,64,.9); }

@media screen and (max-width:1120px) {
  .hud.hud-pro { grid-template-columns:minmax(270px,1.3fr) minmax(560px,2.7fr) 78px; }
  .dds-pro-emblem { width:68px;height:68px;flex-basis:68px;font-size:1.8rem; }
  .dds-pro-stats-grid,.dds-pro-action-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
}

@media screen and (max-width:900px) {
  .hud.hud-pro { grid-template-columns:1fr auto;grid-template-areas:"brand tools" "nav nav"; }
  .dds-pro-brand { grid-area:brand;min-height:102px; }
  .hud-pro .dds-pro-nav { grid-area:nav;min-height:76px; }
  .hud-pro .dds-hud-tools { grid-area:tools;width:84px; }
  .hud.hud-pro + .scene { min-height:calc(100vh - 184px); }
}

@media screen and (max-width:620px) {
  .hud-pro .dds-pro-nav { grid-template-columns:repeat(3,minmax(0,1fr));min-height:225px; }
  .hud-pro .dds-main-nav-item { gap:4px;padding:6px 2px; }
  .hud-pro .dds-main-nav-item i { font-size:1.4rem; }
  .hud-pro .dds-main-nav-item span { font-size:.58rem; }
  .dds-pro-dashboard { width:calc(100% - 1rem);margin:.5rem auto;padding:1rem; }
  .dds-pro-dashboard-header { display:block; }
  .dds-pro-dashboard-period { margin-top:.9rem; }
  .dds-pro-stats-grid,.dds-pro-action-grid { grid-template-columns:1fr; }
}


/* Sponsor : campagnes et statistiques */
.sponsor-workspace{width:min(1180px,calc(100% - 2rem));margin:1rem auto;padding:1.5rem;border:1px solid rgba(197,151,72,.55);background:linear-gradient(180deg,rgba(24,19,28,.96),rgba(12,10,16,.98));box-shadow:0 18px 45px rgba(0,0,0,.32),inset 0 0 0 2px rgba(0,0,0,.28);color:#f4e7cf}
.sponsor-workspace-head{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;margin-bottom:1.4rem;padding-bottom:1rem;border-bottom:1px solid rgba(197,151,72,.28)}
.sponsor-workspace-head h2{margin:.1rem 0 .35rem;color:#f6d889}.sponsor-workspace-head p{margin:0;color:rgba(244,231,207,.72)}
.sponsor-workspace-kicker{display:block;color:#c95cff;font-size:.72rem;font-weight:700;letter-spacing:.16em;text-transform:uppercase}
.sponsor-campaign-grid,.sponsor-stat-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1rem;margin-bottom:1.4rem}
.sponsor-campaign-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
.sponsor-campaign-card,.sponsor-stat-card,.sponsor-form-panel,.sponsor-stats-table-panel,.sponsor-empty-state{border:1px solid rgba(197,151,72,.45);background:linear-gradient(180deg,rgba(36,28,43,.94),rgba(18,15,23,.96));box-shadow:inset 0 0 0 2px rgba(0,0,0,.22)}
.sponsor-campaign-card{min-height:220px;padding:1rem;transition:transform .16s ease,border-color .16s ease,box-shadow .16s ease}.sponsor-campaign-card:hover{transform:translateY(-3px);border-color:#c95cff;box-shadow:0 14px 28px rgba(0,0,0,.28)}
.sponsor-campaign-card-top{display:flex;justify-content:space-between;align-items:center;gap:.5rem}.sponsor-campaign-card h3{margin:.9rem 0 .5rem;color:#f6d889}.sponsor-campaign-card p{color:rgba(244,231,207,.72);font-size:.88rem}
.sponsor-status{display:inline-flex;padding:.25rem .55rem;border:1px solid rgba(197,151,72,.55);border-radius:999px;color:#f6d889;font-size:.68rem;text-transform:uppercase}.sponsor-status-active{border-color:#55b876;color:#8be3a7}.sponsor-status-brouillon{color:#cbbca7}
.sponsor-campaign-actions{display:flex;flex-wrap:wrap;gap:.8rem;margin-top:1rem}.sponsor-campaign-actions a{color:#d9b6ff;font-size:.78rem}.sponsor-campaign-actions a:hover{color:#fff}
.sponsor-form-panel,.sponsor-stats-table-panel{padding:1.2rem}.sponsor-form-panel h3,.sponsor-stats-table-panel h3{color:#f6d889}.sponsor-form-panel input,.sponsor-form-panel textarea,.sponsor-stats-filters select{background:#17121d;border-color:#73552f;color:#fff}
.sponsor-stat-card{display:flex;align-items:center;gap:1rem;min-height:116px;padding:1rem}.sponsor-stat-card>i{display:grid;place-items:center;width:48px;height:48px;border:1px solid #74542d;border-radius:50%;background:radial-gradient(circle at 50% 35%,#8d5be7,#30204f 62%,#17101f 100%);color:#eadfff;font-size:1.15rem}.sponsor-stat-card strong{display:block;color:#fff0d1;font-size:1.7rem;line-height:1}.sponsor-stat-card span{display:block;margin-top:.38rem;color:rgba(255,240,209,.66);font-size:.75rem}
.sponsor-stats-filters{display:flex;align-items:center;gap:.55rem;flex-wrap:wrap}.sponsor-stats-filters select{width:auto;min-width:145px;margin:0}.sponsor-stats-filters .button{margin:0}
.sponsor-section-title{display:flex;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:.8rem}.sponsor-section-title span{color:rgba(244,231,207,.62);font-size:.78rem}.sponsor-stats-table{width:100%;background:transparent}.sponsor-stats-table thead{background:rgba(201,92,255,.12)}.sponsor-stats-table th,.sponsor-stats-table td{border-color:rgba(197,151,72,.2);color:#f4e7cf;text-align:right}.sponsor-stats-table th:first-child,.sponsor-stats-table td:first-child{text-align:left}
.sponsor-empty-state{grid-column:1/-1;padding:2rem;text-align:center}.sponsor-empty-state>i{font-size:2rem;color:#c95cff}.sponsor-empty-state h3{color:#f6d889}.sponsor-empty-state.compact{padding:1rem}.sponsor-stats-note{margin:1rem 0 0;color:rgba(244,231,207,.58);font-size:.76rem}
@media screen and (max-width:1000px){.sponsor-campaign-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.sponsor-stat-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media screen and (max-width:650px){.sponsor-workspace{width:calc(100% - 1rem);padding:1rem}.sponsor-workspace-head{display:block}.sponsor-workspace-head>.button{margin-top:1rem}.sponsor-campaign-grid,.sponsor-stat-grid{grid-template-columns:1fr}.sponsor-stats-filters{margin-top:1rem}.sponsor-stats-filters select,.sponsor-stats-filters .button{width:100%}}

/* ========================================================================== */
/* Espace sponsor - Administratif                                             */
/* ========================================================================== */
.sponsor-admin-page{max-width:1180px}
.sponsor-admin-alerts{display:grid;gap:.75rem;margin:0 0 1.25rem}
.sponsor-admin-alert{display:flex;align-items:center;gap:.85rem;padding:.9rem 1rem;border:1px solid rgba(230,174,72,.48);background:rgba(230,174,72,.09);box-shadow:inset 0 0 0 1px rgba(0,0,0,.22)}
.sponsor-admin-alert>i{font-size:1.25rem;color:#f0c35d}.sponsor-admin-alert div{flex:1}.sponsor-admin-alert strong{display:block;color:#f6d889}.sponsor-admin-alert p{margin:.15rem 0 0;color:rgba(244,231,207,.76)}
.sponsor-admin-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}
.sponsor-admin-panel{min-width:0;padding:1rem;border:1px solid rgba(197,151,72,.36);background:linear-gradient(180deg,rgba(49,36,52,.66),rgba(19,15,24,.88));box-shadow:0 12px 28px rgba(0,0,0,.22),inset 0 0 0 1px rgba(255,255,255,.025);transition:transform .18s ease,border-color .18s ease,box-shadow .18s ease}
.sponsor-admin-panel:hover{transform:translateY(-2px);border-color:rgba(225,178,88,.7);box-shadow:0 16px 34px rgba(0,0,0,.3),0 0 18px rgba(201,92,255,.08)}
.sponsor-admin-panel-head{display:flex;align-items:flex-start;gap:.8rem;padding-bottom:.85rem;margin-bottom:.85rem;border-bottom:1px solid rgba(197,151,72,.2)}
.sponsor-admin-panel-head h3{margin:0 0 .2rem;color:#f6d889;font-size:1.08rem}.sponsor-admin-panel-head p{margin:0;color:rgba(244,231,207,.65);font-size:.84rem;line-height:1.35}
.sponsor-admin-icon{display:grid;place-items:center;flex:0 0 2.45rem;height:2.45rem;border:1px solid rgba(201,92,255,.48);background:rgba(201,92,255,.11);color:#e0a4ff;font-size:1.05rem;box-shadow:inset 0 0 12px rgba(201,92,255,.08)}
.sponsor-admin-list{display:grid;gap:.55rem}.sponsor-admin-row{display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding:.7rem .75rem;border:1px solid rgba(197,151,72,.2);background:rgba(8,7,11,.34)}
.sponsor-admin-row>div{min-width:0}.sponsor-admin-row strong{display:block;color:#f4e7cf;overflow-wrap:anywhere}.sponsor-admin-row span{display:block;margin-top:.12rem;color:rgba(244,231,207,.58);font-size:.77rem}.sponsor-admin-row .button{margin:0;white-space:nowrap}
.sponsor-admin-page .sponsor-empty-state.compact{min-height:5.2rem;display:grid;place-items:center;text-align:center;border:1px dashed rgba(197,151,72,.25);background:rgba(8,7,11,.25)}.sponsor-admin-page .sponsor-empty-state.compact p{margin:0;color:rgba(244,231,207,.58)}
@media screen and (max-width:850px){.sponsor-admin-grid{grid-template-columns:1fr}}
@media screen and (max-width:520px){.sponsor-admin-row,.sponsor-admin-alert{align-items:flex-start;flex-direction:column}.sponsor-admin-row .button,.sponsor-admin-alert .button{width:100%}}

/* Bibliothèque / Librairie DDS */
.dds-staff-bibliotheque { width:calc(100% - 2rem); max-width:1380px; margin:1rem auto; }
.dds-biblio-top { margin-bottom:1rem; }
.dds-biblio-top a { display:inline-block; padding:.55rem .8rem; background:rgba(0,0,0,.55); border:1px solid rgba(255,255,255,.2); border-radius:.35rem; color:inherit; }
.dds-biblio-panel { margin-bottom:1rem; padding:1rem; background:rgba(15,10,7,.82); border:1px solid rgba(216,175,94,.45); border-radius:.55rem; box-shadow:0 .35rem 1rem rgba(0,0,0,.28); }
.dds-biblio-panel h2 { margin-top:0; }
.dds-biblio-panel label, .dds-biblio-panel legend { color:#f4ead5; }
.dds-biblio-panel input, .dds-biblio-panel select, .dds-biblio-panel textarea { background:#1e140d; color:#fff; border-color:#7c633d; }
.dds-biblio-panel fieldset { padding:.6rem .8rem; border:1px solid rgba(216,175,94,.35); }
.dds-biblio-panel fieldset label { display:inline-block; margin-right:1rem; }
.dds-biblio-submit { display:flex; align-items:flex-end; justify-content:flex-end; }
.dds-biblio-table-wrap { overflow:auto; }
.dds-biblio-table-wrap table { width:100%; border-collapse:collapse; background:rgba(0,0,0,.25); }
.dds-biblio-table-wrap th, .dds-biblio-table-wrap td { padding:.7rem; text-align:left; border-bottom:1px solid rgba(255,255,255,.12); }
.dds-bibliotheque-page { width:calc(100% - 2rem); max-width:1240px; margin:1rem auto; }
.dds-bibliotheque-entete { display:flex; gap:1rem; align-items:center; margin-bottom:1rem; padding:1rem 1.2rem; background:rgba(15,10,7,.82); border:1px solid rgba(216,175,94,.5); border-radius:.65rem; }
.dds-bibliotheque-entete h1 { margin:0 0 .2rem; }
.dds-bibliotheque-entete p { margin:0; }
.dds-bibliotheque-icone { width:3.5rem; height:3.5rem; flex:0 0 3.5rem; display:grid; place-items:center; border-radius:50%; background:rgba(216,175,94,.18); color:#e5c57d; font-size:1.6rem; }
.dds-ouvrages-grille { display:grid; grid-template-columns:repeat(auto-fit,minmax(310px,1fr)); gap:1rem; }
.dds-ouvrage-card { display:flex; min-height:250px; overflow:hidden; background:rgba(15,10,7,.84); border:1px solid rgba(216,175,94,.42); border-radius:.65rem; }
.dds-ouvrage-couverture { width:115px; flex:0 0 115px; min-height:100%; display:grid; place-items:center; overflow:hidden; background:rgba(255,255,255,.05); color:#d7b76d; font-size:2.4rem; }
.dds-ouvrage-couverture img { width:100%; height:100%; object-fit:cover; }
.dds-ouvrage-contenu { display:flex; flex-direction:column; gap:.5rem; padding:1rem; min-width:0; }
.dds-ouvrage-contenu h2 { margin:0; font-size:1.25rem; }
.dds-ouvrage-contenu p { margin:0; }
.dds-ouvrage-auteurs { color:#e5c57d; }
.dds-ouvrage-meta { display:flex; gap:.4rem; flex-wrap:wrap; margin-top:auto; }
.dds-ouvrage-meta span { padding:.2rem .45rem; border:1px solid rgba(216,175,94,.3); border-radius:999px; font-size:.8rem; }
.dds-ouvrage-actions { display:flex; gap:.45rem; flex-wrap:wrap; }
.dds-ouvrage-actions button { margin:0; font-size:.85rem; opacity:1; cursor:not-allowed; }
.dds-bibliotheque-vide { padding:2rem; text-align:center; background:rgba(15,10,7,.82); border:1px solid rgba(216,175,94,.45); border-radius:.65rem; }
.dds-bibliotheque-vide i { font-size:2.5rem; color:#e5c57d; }
@media screen and (max-width:600px) {
  .dds-ouvrage-card { display:block; }
  .dds-ouvrage-couverture { width:100%; height:180px; min-height:0; }
  .dds-bibliotheque-entete { align-items:flex-start; }
}

/* Bibliothèque sécurisée v2 */
.dds-lecteur-securise{position:relative;max-width:980px;margin:0 auto;background:rgba(18,12,8,.94);border:1px solid rgba(222,183,99,.55);border-radius:14px;padding:1.2rem 1.4rem 4.5rem;overflow:hidden}
.dds-lecteur-entete{display:grid;grid-template-columns:auto 1fr auto;gap:1rem;align-items:center;border-bottom:1px solid rgba(222,183,99,.25);padding-bottom:.8rem;margin-bottom:1.2rem}
.dds-lecteur-entete h1{margin:0;text-align:center;font-size:1.35rem}
.dds-lecteur-entete button{width:42px;height:42px;border-radius:50%;margin:0}
#dds-lecteur-actions{background:rgba(0,0,0,.35);padding:1rem;border-radius:10px;margin-bottom:1rem;text-align:right}
#dds-lecteur-actions p{text-align:left;margin-top:0}
.dds-contenu-protege{position:relative;z-index:2;min-height:45vh;line-height:1.8;font-size:1.08rem;user-select:none;-webkit-user-select:none}
.dds-contenu-protege img{max-width:100%;pointer-events:none;-webkit-user-drag:none}
.dds-lecteur-navigation{display:flex;justify-content:center;align-items:center;gap:1rem;margin-top:1.5rem;position:relative;z-index:3}
.dds-lecteur-navigation button{margin:0}
.dds-filigrane{position:fixed;inset:45% auto auto 50%;transform:translate(-50%,-50%) rotate(-25deg);font-size:clamp(1.3rem,4vw,3.4rem);font-weight:800;letter-spacing:.18em;color:rgba(255,255,255,.06);pointer-events:none;z-index:9;white-space:nowrap}
@media(max-width:640px){.dds-lecteur-securise{padding:1rem .9rem 4rem}.dds-lecteur-entete{grid-template-columns:1fr auto}.dds-lecteur-entete>a{grid-column:1/-1}.dds-lecteur-entete h1{text-align:left;font-size:1.15rem}.dds-contenu-protege{font-size:1rem}.dds-lecteur-navigation{gap:.5rem}}

/* Catalogue professionnel */
.dds-pro-catalogue{color:#fff;padding:1.25rem;max-height:calc(100vh - 10rem)}
.dds-pro-page-head,.dds-pro-list-head,.dds-pro-form-title{display:flex;align-items:center;justify-content:space-between;gap:1rem}
.dds-pro-page-head{padding-bottom:1rem;border-bottom:1px solid rgba(255,215,0,.28)}
.dds-pro-page-head h2,.dds-pro-form h3,.dds-pro-list-head h3{margin:.15rem 0;color:#ffd700}
.dds-pro-page-head p,.dds-pro-form-title p,.dds-pro-list-head p{margin:0;color:#ddd}
.dds-pro-kicker{font-size:.78rem;text-transform:uppercase;letter-spacing:.12em;color:#f4cf64}
.dds-pro-subscription{display:flex;align-items:center;gap:.7rem;padding:.7rem .9rem;border:1px solid rgba(255,255,255,.18);border-radius:12px;background:rgba(255,255,255,.06);min-width:230px}
.dds-pro-subscription i{font-size:1.4rem;color:#aaa}.dds-pro-subscription strong,.dds-pro-subscription span{display:block}.dds-pro-subscription span{font-size:.76rem;color:#bbb}.dds-pro-subscription.is-active{border-color:#61d394;background:rgba(45,150,100,.15)}.dds-pro-subscription.is-active i{color:#61d394}
.dds-pro-catalogue-tabs{display:flex;gap:.5rem;margin:1rem 0}.dds-pro-catalogue-tabs a{padding:.55rem .9rem;border-radius:8px;color:#ddd;text-decoration:none;background:rgba(255,255,255,.06);border:1px solid transparent}.dds-pro-catalogue-tabs a:hover,.dds-pro-catalogue-tabs a.is-active{color:#111;background:#ffd700;border-color:#ffd700}
.dds-pro-choice-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}.dds-pro-choice-card{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:1rem;min-height:145px;padding:1.2rem;border:1px solid rgba(255,215,0,.4);border-radius:16px;background:linear-gradient(135deg,rgba(55,38,20,.94),rgba(15,15,15,.95));color:#fff;text-decoration:none;transition:transform .18s ease,border-color .18s ease,box-shadow .18s ease}.dds-pro-choice-card:hover{transform:translateY(-3px);border-color:#ffd700;box-shadow:0 10px 25px rgba(0,0,0,.35)}.dds-pro-choice-icon{width:62px;height:62px;display:grid;place-items:center;border-radius:14px;background:rgba(255,215,0,.13);color:#ffd700;font-size:1.8rem}.dds-pro-choice-card strong,.dds-pro-choice-card small{display:block}.dds-pro-choice-card strong{font-size:1.1rem}.dds-pro-choice-card small{margin-top:.3rem;color:#ccc;line-height:1.35}
.dds-pro-workflow{display:grid;grid-template-columns:1fr 1fr;gap:1rem;margin-top:1rem}.dds-pro-workflow>div{padding:.9rem 1rem;border-radius:12px;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.1)}.dds-pro-workflow strong,.dds-pro-workflow span{display:block}.dds-pro-workflow span{margin-top:.2rem;color:#ccc;font-size:.86rem}
.dds-pro-alert{padding:.8rem 1rem;margin:1rem 0;border-radius:10px}.dds-pro-alert ul{margin:.45rem 0 0 1.2rem}.dds-pro-alert-success{background:rgba(45,150,100,.2);border:1px solid #61d394}.dds-pro-alert-error{background:rgba(180,45,45,.22);border:1px solid #e57878}
.dds-pro-form{max-width:980px;margin:0 auto}.dds-pro-form-title{justify-content:flex-start;margin-bottom:1rem}.dds-pro-form-title>a{width:42px;height:42px;display:grid;place-items:center;border:1px solid #ffd700;border-radius:10px;color:#ffd700;text-decoration:none}.dds-pro-form textarea{width:100%;padding:.65rem;border-radius:7px;background:#333;color:#fff;border:1px solid #ffd700;resize:vertical}.dds-pro-form-actions{display:flex;justify-content:flex-end;gap:.7rem;margin-top:1rem}.dds-pro-form-actions .button{margin:0;border-radius:8px;font-weight:700}.dds-pro-form-actions .secondary{background:#3b3b3b;color:#fff;border:1px solid #777}
.dds-pro-distribution-card{margin:1rem 0;padding:1rem;border:1px solid rgba(255,215,0,.32);border-radius:14px;background:rgba(0,0,0,.28)}.dds-pro-distribution-head{display:flex;align-items:center;gap:.8rem;margin-bottom:.8rem}.dds-pro-distribution-head>i{width:44px;height:44px;display:grid;place-items:center;border-radius:10px;background:rgba(255,215,0,.13);color:#ffd700}.dds-pro-distribution-head h4,.dds-pro-distribution-head p{margin:0}.dds-pro-distribution-head h4{color:#ffd700}.dds-pro-distribution-head p{color:#ccc;font-size:.85rem}.dds-pro-check-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem}.dds-pro-check{display:flex;align-items:flex-start;gap:.65rem;padding:.75rem;border-radius:10px;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.12);cursor:pointer}.dds-pro-check:hover{border-color:#ffd700}.dds-pro-check input{margin:.15rem 0 0!important}.dds-pro-check strong,.dds-pro-check small{display:block}.dds-pro-check small{color:#bbb;margin-top:.15rem}.dds-pro-check.is-wide{margin-bottom:.7rem}.dds-pro-consent{display:flex!important;align-items:flex-start;gap:.55rem;margin:.75rem 0 0;color:#eee!important}.dds-pro-consent input{margin:.15rem 0 0!important}.dds-pro-format-block{padding-top:.8rem;margin-top:.8rem;border-top:1px solid rgba(255,255,255,.1)}.dds-pro-format-block h5{color:#f4cf64}
.dds-pro-products-list{display:grid;gap:.7rem}.dds-pro-products-list article{display:grid;grid-template-columns:auto 1fr auto auto;align-items:center;gap:1rem;padding:.85rem 1rem;border:1px solid rgba(255,255,255,.12);border-radius:12px;background:rgba(255,255,255,.055)}.dds-pro-product-type{width:42px;height:42px;display:grid;place-items:center;border-radius:10px;background:rgba(255,215,0,.12);color:#ffd700}.dds-pro-product-main small,.dds-pro-product-main strong,.dds-pro-product-main span{display:block}.dds-pro-product-main small{color:#f4cf64;text-transform:uppercase;font-size:.68rem;letter-spacing:.08em}.dds-pro-product-main span{font-size:.74rem;color:#aaa}.dds-pro-product-price{font-weight:700}.dds-pro-status{display:inline-block;padding:.32rem .55rem;border-radius:999px;background:#4a4a4a;font-size:.72rem;white-space:nowrap}.dds-pro-status.is-success{background:#236b49}.dds-pro-status.is-warning{background:#806216;color:#fff4bd}.dds-pro-status.is-pending{background:#3a5682}.dds-pro-status.is-error{background:#7c3030}.dds-pro-empty{text-align:center;padding:2rem;border:1px dashed rgba(255,215,0,.35);border-radius:14px}.dds-pro-empty i,.dds-pro-empty strong,.dds-pro-empty span{display:block}.dds-pro-empty i{font-size:2rem;color:#ffd700}.dds-pro-empty strong{margin-top:.5rem}.dds-pro-empty span{color:#bbb;margin:.25rem 0 1rem}
@media(max-width:800px){.dds-pro-page-head,.dds-pro-list-head{align-items:flex-start;flex-direction:column}.dds-pro-choice-grid,.dds-pro-workflow,.dds-pro-check-grid{grid-template-columns:1fr}.dds-pro-products-list article{grid-template-columns:auto 1fr}.dds-pro-product-price,.dds-pro-products-list article>div:last-child{grid-column:2}.dds-pro-form-actions{flex-direction:column}.dds-pro-form-actions .button{width:100%}.dds-pro-subscription{width:100%}}

/* Fichiers numériques proposés par les professionnels */
.dds-pro-upload-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}
.dds-pro-upload-box{padding:1rem;border:1px solid rgba(255,215,0,.24);border-radius:12px;background:rgba(255,255,255,.045)}
.dds-pro-upload-box h5{display:flex;align-items:center;gap:.45rem;margin:0 0 .75rem;color:#f4cf64}
.dds-pro-upload-box input[type=file]{width:100%;margin:.35rem 0;padding:.65rem;background:#1e140d;color:#fff;border:1px solid #7c633d;border-radius:7px}
.dds-pro-upload-box small{display:block;color:#bbb;line-height:1.4}
.dds-pro-product-formats{color:#e9c965!important}

/* Édition et nouvelle modération des fiches livres professionnelles */
.dds-pro-catalogue .dds-pro-products-list article{grid-template-columns:auto minmax(0,1fr) auto auto auto}
.dds-pro-product-actions{align-items:center;display:flex;flex-wrap:wrap;gap:.4rem;justify-content:flex-end}
.dds-pro-product-actions .button{margin:0;white-space:nowrap}
.dds-pro-product-actions>span{color:#c6b99f;font-size:.72rem;max-width:110px;text-align:center}
.dds-pro-product-staff-note{background:rgba(206,143,42,.13);border-left:3px solid #d89b3f;border-radius:4px;color:#f3d49e!important;margin-top:.5rem;max-width:700px;padding:.4rem .55rem}
.dds-pro-book-review-note,.dds-pro-book-published-note{align-items:flex-start;background:rgba(206,143,42,.12);border:1px solid rgba(225,170,78,.42);border-radius:10px;color:#f3d49e;display:flex;gap:.7rem;margin-bottom:1rem;padding:.8rem 1rem}
.dds-pro-book-review-note>i,.dds-pro-book-published-note>i{color:#efb755;margin-top:.15rem}
.dds-pro-book-review-note strong,.dds-pro-book-review-note span{display:block}
.dds-pro-book-review-note span{color:#f5e7cd;margin-top:.15rem}
.dds-pro-current-cover{align-items:center;background:rgba(255,255,255,.045);border:1px solid rgba(255,255,255,.12);border-radius:10px;display:flex;gap:.8rem;margin:.4rem 0 .7rem;padding:.55rem}
.dds-pro-current-cover img{border-radius:5px;height:90px;object-fit:cover;width:62px}
.dds-pro-current-cover span{color:#cfc2aa;font-size:.78rem}
.dds-pro-current-file{align-items:center;background:rgba(75,153,103,.12);border:1px solid rgba(96,188,128,.35);border-radius:8px;display:flex;gap:.6rem;margin-bottom:.7rem;padding:.6rem}
.dds-pro-current-file>i{color:#85d7a1;font-size:1.15rem}
.dds-pro-current-file strong,.dds-pro-current-file small{display:block;overflow-wrap:anywhere}
.dds-pro-current-file small{color:#b7c8ba;margin-top:.1rem}
.dds-pro-locked-file{background:rgba(255,255,255,.045);border-radius:6px;color:#c8bba3;display:block;margin:.5rem 0 .8rem;padding:.55rem}
@media(max-width:1050px){.dds-pro-catalogue .dds-pro-products-list article{grid-template-columns:auto minmax(0,1fr) auto}.dds-pro-product-state,.dds-pro-product-actions{grid-column:2 / -1;justify-content:flex-start}}
@media(max-width:650px){.dds-pro-catalogue .dds-pro-products-list article{grid-template-columns:auto minmax(0,1fr)}.dds-pro-catalogue .dds-pro-product-price,.dds-pro-catalogue .dds-pro-product-state,.dds-pro-catalogue .dds-pro-product-actions{grid-column:2}.dds-pro-product-actions>span{max-width:none;text-align:left}}
@media(max-width:800px){.dds-pro-upload-grid{grid-template-columns:1fr}}

/* Bibliothèque pro : classification READ, genres, tags, CW et séries */
.dds-pro-classification-card .dds-required{display:inline-block;margin-left:.35rem;padding:.1rem .45rem;border-radius:999px;background:rgba(176,54,54,.18);color:#ffd0c8;font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em}
.dds-pro-classification-card small{display:block;margin-top:.35rem;line-height:1.45;opacity:.78}
.dds-pro-classification-card input[list]{background-image:none}
.dds-pro-classification-card .grid-x{align-items:flex-start}
@media(max-width:639px){.dds-pro-classification-card .cell{width:100%}}

/* Bibliothèque pro : correctifs classification visuelle v2 */
.scene > .dds-page-content > .salle-container-pro.dds-pro-catalogue {
  width: min(60%, 1100px) !important;
}

.dds-read-fieldset {
  margin: 0 0 1rem;
  padding: 0;
  border: 0;
}
.dds-read-fieldset legend {
  margin-bottom: .55rem;
  color: #fff;
  font-weight: 700;
}
.dds-read-choice-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: .65rem;
}
.dds-read-choice {
  display: flex;
  align-items: center;
  gap: .55rem;
  margin: 0;
  padding: .7rem;
  border: 1px solid rgba(255,255,255,.15);
  border-radius: 10px;
  background: rgba(255,255,255,.055);
  cursor: pointer;
}
.dds-read-choice:hover,
.dds-read-choice.is-checked {
  border-color: #ffd700;
  background: rgba(255,215,0,.09);
}
.dds-read-choice input[type="radio"] {
  flex: 0 0 auto;
  margin: 0 !important;
}
.dds-read-badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 72px;
  padding: .25rem .45rem;
  border-radius: 999px;
  color: #fff;
  font-size: .76rem;
  font-weight: 800;
  line-height: 1;
  white-space: nowrap;
}
.dds-read-name {
  min-width: 0;
  color: #fff;
  font-size: .82rem;
  line-height: 1.25;
}
.dds-read-choice.read-tp .dds-read-badge { background: #23884f; }
.dds-read-choice.read-7 .dds-read-badge { background: #b88b00; color: #17130a; }
.dds-read-choice.read-11 .dds-read-badge { background: #d66f12; }
.dds-read-choice.read-14 .dds-read-badge { background: #ad4f12; }
.dds-read-choice.read-16 .dds-read-badge { background: #b52d38; }
.dds-read-choice.read-18 .dds-read-badge { background: #171717; border: 1px solid #777; }

.dds-tag-editor {
  position: relative;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: .4rem;
  min-height: 44px;
  margin-bottom: .35rem;
  padding: .42rem .5rem;
  border: 1px solid #ffd700;
  border-radius: 7px;
  background: #333;
  cursor: text;
}
.dds-tag-editor:focus-within {
  background: #555;
  box-shadow: 0 0 0 2px rgba(255,215,0,.18);
}
.dds-tag-editor-chips {
  display: contents;
}
.dds-tag-chip {
  display: inline-flex;
  align-items: center;
  gap: .35rem;
  max-width: 100%;
  padding: .28rem .48rem;
  border: 1px solid rgba(255,215,0,.45);
  border-radius: 999px;
  background: rgba(255,215,0,.18);
  color: #fff6bf;
  font-size: .82rem;
  line-height: 1.1;
}
.dds-tag-chip button {
  display: inline-grid !important;
  place-items: center;
  width: 18px !important;
  min-width: 18px !important;
  height: 18px !important;
  min-height: 18px !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  border-radius: 50% !important;
  background: rgba(0,0,0,.28) !important;
  color: #fff !important;
  font-size: 1rem !important;
  line-height: 1 !important;
}
.dds-tag-editor-entry {
  flex: 1 1 150px;
  min-width: 120px;
  width: auto !important;
  margin: 0 !important;
  padding: .25rem !important;
  border: 0 !important;
  outline: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
}
.dds-tag-editor > input[type="hidden"] { display: none !important; }
.dds-tag-editor-suggestions {
  position: absolute;
  z-index: 50;
  top: calc(100% + 4px);
  right: 0;
  left: 0;
  overflow: hidden;
  border: 1px solid #7c633d;
  border-radius: 8px;
  background: #1e140d;
  box-shadow: 0 10px 22px rgba(0,0,0,.38);
}
.dds-tag-editor-suggestions button {
  display: block !important;
  width: 100% !important;
  min-height: 0 !important;
  margin: 0 !important;
  padding: .6rem .75rem !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  color: #fff !important;
  text-align: left !important;
}
.dds-tag-editor-suggestions button:hover { background: rgba(255,215,0,.13) !important; }

@media (max-width: 900px) {
  .scene > .dds-page-content > .salle-container-pro.dds-pro-catalogue {
    width: calc(100% - 1.3rem) !important;
  }
  .dds-read-choice-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 560px) {
  .dds-read-choice-grid { grid-template-columns: 1fr; }
}

/* Catalogue public Bibliothèque — filtres, classifications et fiche ouvrage */
.dds-bibliotheque-page,.dds-ouvrage-page{max-width:1180px}
.dds-biblio-filtres{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.85rem;padding:1rem;margin:1rem 0;background:rgba(17,11,8,.9);border:1px solid rgba(216,175,94,.48);border-radius:.75rem}
.dds-biblio-filtres label{display:flex;flex-direction:column;gap:.3rem;color:#f4dfad;font-weight:700}
.dds-biblio-filtres input,.dds-biblio-filtres select{margin:0;background:#1e140d;color:#fff;border:1px solid rgba(216,175,94,.5);border-radius:.35rem}
.dds-biblio-recherche{grid-column:span 2}.dds-biblio-searchbox{position:relative}.dds-biblio-searchbox i{position:absolute;left:.75rem;top:50%;transform:translateY(-50%);color:#d8af5e}.dds-biblio-searchbox input{padding-left:2.2rem;width:100%}
.dds-biblio-filter-actions{display:flex;align-items:stretch;align-self:end;gap:.65rem}.dds-biblio-filter-actions button,.dds-biblio-filter-actions a{display:inline-flex;align-items:center;justify-content:center;gap:.4rem;min-height:44px;margin:0!important;padding:.55rem .8rem;border-radius:.35rem;box-sizing:border-box}.dds-biblio-filter-actions a{color:#f4dfad;border:1px solid rgba(216,175,94,.4)}
.dds-biblio-resultats{margin:.75rem 0;color:#f4dfad}.dds-biblio-resultats strong{font-size:1.25rem}
.dds-ouvrage-card{align-items:stretch}.dds-ouvrage-couverture{flex:0 0 180px;display:flex;align-items:center;justify-content:center;background:rgba(0,0,0,.3);min-height:270px}.dds-ouvrage-couverture img{width:100%;height:100%;object-fit:cover}.dds-ouvrage-couverture>i{font-size:4rem;color:#d8af5e}
.dds-ouvrage-contenu{display:flex;flex-direction:column;min-width:0;padding:1rem}.dds-ouvrage-contenu h2{margin:.35rem 0 .1rem}.dds-ouvrage-contenu h2 a{color:#fff}.dds-ouvrage-resume{display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical;overflow:hidden}
.dds-ouvrage-card-top,.dds-meta-pills,.dds-tag-pills{display:flex;flex-wrap:wrap;gap:.4rem}.dds-read-badge,.dds-format-badge,.dds-meta-pills span,.dds-tag-pills span{display:inline-flex;align-items:center;padding:.25rem .5rem;border-radius:999px;font-size:.78rem;line-height:1.2}
.dds-read-badge{font-weight:900;border:1px solid rgba(255,255,255,.35);color:#fff}.dds-read-vert{background:#2f7d32}.dds-read-jaune{background:#9a7900}.dds-read-orange{background:#a65300}.dds-read-rouge{background:#9b2525}.dds-read-noir{background:#111}.dds-format-badge{background:#47331f;color:#f4dfad;border:1px solid rgba(216,175,94,.45)}
.dds-meta-pills span{background:#5a3822;color:#fff}.dds-tag-pills span{background:#2d243b;color:#dec7ff}.dds-ouvrage-serie{color:#d8af5e;margin:.35rem 0}.dds-ouvrage-actions{margin-top:auto;padding-top:.8rem;display:flex;flex-wrap:wrap;align-items:center;gap:.65rem}.dds-ouvrage-actions span{color:#f4dfad}.dds-ouvrage-actions a{margin-left:auto;color:#fff;font-weight:700}
.dds-retour-catalogue{display:inline-flex;gap:.45rem;align-items:center;margin-bottom:.8rem;color:#f4dfad}.dds-ouvrage-fiche{display:grid;grid-template-columns:minmax(220px,300px) 1fr;gap:1.35rem;padding:1.25rem;background:rgba(15,10,7,.9);border:1px solid rgba(216,175,94,.48);border-radius:.8rem}.dds-ouvrage-fiche-cover{display:flex;align-items:center;justify-content:center;align-self:start;width:100%;aspect-ratio:2/3;min-height:0;background:rgba(0,0,0,.28);border-radius:.5rem;overflow:hidden}.dds-ouvrage-fiche-cover img{display:block;width:100%;height:100%;object-fit:cover}.dds-ouvrage-fiche-cover i{font-size:6rem;color:#d8af5e}.dds-ouvrage-fiche-main h1{margin:.55rem 0 .15rem}.dds-ouvrage-description{margin:1rem 0;line-height:1.6}.dds-ouvrage-description-longue{padding-top:1rem;border-top:1px solid rgba(216,175,94,.25)}
.dds-ouvrage-cta{display:flex;flex-wrap:wrap;gap:.65rem;margin-top:1rem}.dds-ouvrage-cta button{display:inline-flex;gap:.45rem;align-items:center}.dds-action-note{font-size:.82rem;opacity:.75}.dds-ouvrage-infos-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;margin-top:1rem}.dds-ouvrage-info-card{padding:1rem;background:rgba(15,10,7,.88);border:1px solid rgba(216,175,94,.38);border-radius:.65rem}.dds-ouvrage-info-card h2{font-size:1.1rem;color:#f4dfad}.dds-ouvrage-info-card dl{display:grid;grid-template-columns:auto 1fr;gap:.4rem .75rem}.dds-ouvrage-info-card dt{font-weight:800;color:#d8af5e}.dds-ouvrage-info-card dd{margin:0}.dds-cw-card ul{list-style:none;margin:0}.dds-cw-card li{margin:.35rem 0}.dds-cw-card i{color:#d8af5e;margin-right:.4rem}
@media(max-width:900px){.dds-biblio-filtres{grid-template-columns:repeat(2,minmax(0,1fr))}.dds-ouvrage-infos-grid{grid-template-columns:1fr}}
@media(max-width:640px){.dds-biblio-filtres{grid-template-columns:1fr}.dds-biblio-recherche{grid-column:auto}.dds-ouvrage-card{display:block}.dds-ouvrage-couverture{min-height:260px;max-height:360px}.dds-ouvrage-fiche{grid-template-columns:1fr}.dds-ouvrage-fiche-cover{min-height:300px;max-height:470px}.dds-ouvrage-actions a{margin-left:0;width:100%}}

/* Bibliothèque : espace lecteur */
.dds-envie-form{margin-top:.8rem}.dds-envie-form .button{margin:0}
.dds-avis-lecteur{margin-top:1.25rem;padding:1.25rem;background:rgba(22,14,9,.88);border:1px solid rgba(214,171,91,.45);border-radius:10px}
.dds-avis-lecteur h2{margin-top:0}.dds-avis-choix{display:flex;gap:.75rem;margin-bottom:1rem;flex-wrap:wrap}
.dds-avis-choix button{padding:.75rem 1rem;border:1px solid #b98d43;border-radius:8px;background:#26190f;color:#fff;cursor:pointer}.dds-avis-choix button.selectionne{box-shadow:0 0 0 2px #e2bd72 inset;background:#4a321e}
.dds-mes-lectures h1{margin-bottom:1rem}.dds-lecteur-tabs{display:flex;gap:.5rem;flex-wrap:wrap;margin-bottom:1.25rem}.dds-lecteur-tabs a{padding:.65rem .9rem;border-radius:8px;background:rgba(30,20,13,.88);border:1px solid rgba(214,171,91,.4);color:#fff}.dds-lecteur-tabs a.actif{background:#6b4828;border-color:#e2bd72}
.dds-lecteur-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:1rem}.dds-lecteur-card{display:flex;flex-direction:column;gap:.75rem;padding:1rem;background:rgba(22,14,9,.88);border:1px solid rgba(214,171,91,.4);border-radius:10px}.dds-lecteur-card h2{font-size:1.1rem;margin:0}.dds-lecteur-card-corps{display:grid;grid-template-columns:minmax(110px,32%) 1fr;gap:1rem;align-items:stretch}.dds-lecteur-cover{min-height:165px;height:100%;display:flex;align-items:center;justify-content:center;background:#1e140d;border-radius:6px;overflow:hidden}.dds-lecteur-cover img{width:100%;height:100%;object-fit:cover}.dds-lecteur-cover i{font-size:2rem}.dds-lecteur-card-infos{display:flex;flex-direction:column;min-width:0}.dds-progression{height:8px;background:#1e140d;border-radius:10px;overflow:hidden;margin:.5rem 0}.dds-progression span{display:block;height:100%;background:#c79a50}.dds-avis-resume.aime{color:#8ed08e}.dds-avis-resume.naime-pas{color:#e39b9b}
.dds-bibliotheque-tabs{margin-top:-.25rem}
.dds-bibliotheque-tabs a{display:inline-flex;align-items:center;gap:.45rem}
.dds-espace-lecteur{margin-top:.25rem}
.dds-solde-lecteur{margin-bottom:1rem;padding:1rem;background:rgba(22,14,9,.88);border:1px solid rgba(214,171,91,.4);border-radius:10px}
.dds-solde-lecteur h2,.dds-solde-lecteur p{margin:0}.dds-solde-lecteur p{margin-top:.5rem;font-size:1.25rem}
.dds-lecteur-card-actions{display:flex;flex-wrap:wrap;gap:.45rem;margin-top:.75rem}.dds-lecteur-card-actions .button{margin:0}
@media(max-width:640px){.dds-lecteur-card-corps{grid-template-columns:92px 1fr}.dds-lecteur-cover{min-height:130px}}

/* Bibliothèque — acteurs du livre et entités éditoriales */
.dds-editorial-page{max-width:1180px}.dds-editorial-hero{display:grid;grid-template-columns:180px 1fr;gap:1.4rem;align-items:center;padding:1.25rem;background:rgba(15,10,7,.9);border:1px solid rgba(216,175,94,.48);border-radius:.8rem}.dds-editorial-portrait,.dds-editorial-logo,.dds-editorial-placeholder{width:180px;height:180px;border-radius:.65rem;object-fit:cover;background:#1e140d;border:1px solid rgba(216,175,94,.35)}.dds-editorial-logo{object-fit:contain;padding:1rem}.dds-editorial-placeholder{display:flex;align-items:center;justify-content:center;font-size:4rem;color:#d8af5e}.dds-editorial-kicker{text-transform:uppercase;letter-spacing:.08em;font-weight:800;color:#d8af5e;font-size:.8rem}.dds-editorial-hero h1{margin:.25rem 0 .5rem}.dds-editorial-meta,.dds-editorial-links{display:flex;flex-wrap:wrap;gap:.7rem}.dds-editorial-links{margin-top:.8rem}.dds-editorial-links a,.dds-editorial-entity-grid a{display:inline-flex;align-items:center;gap:.45rem;padding:.55rem .75rem;border:1px solid rgba(216,175,94,.4);border-radius:.45rem;background:rgba(30,20,13,.85);color:#fff}.dds-editorial-section{margin-top:1rem;padding:1.1rem;background:rgba(15,10,7,.88);border:1px solid rgba(216,175,94,.38);border-radius:.65rem}.dds-editorial-section h2{color:#f4dfad}.dds-editorial-bio{line-height:1.65}.dds-editorial-entity-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:.7rem}.dds-related-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,190px));gap:1rem}.dds-related-card{display:flex;flex-direction:column;gap:.45rem;padding:.65rem;border:1px solid rgba(216,175,94,.35);border-radius:.55rem;background:rgba(30,20,13,.85);color:#fff}.dds-related-card img,.dds-related-card>span{width:100%;aspect-ratio:2/3;object-fit:cover;border-radius:.35rem;background:#120c08;display:flex;align-items:center;justify-content:center}.dds-related-card>span i{font-size:2.4rem;color:#d8af5e}.dds-related-card small{color:#d8af5e}.dds-acteurs-admin-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}.dds-staff-acteurs .dds-biblio-panel{min-width:0}.dds-staff-acteurs textarea{resize:vertical}

/* Staff Bibliothèque : crédits, maisons, collections et séries */
.scene > .dds-page-content > .salle-container-admin.dds-staff-editorial-admin {
  width:min(94%,1400px) !important;
}
.dds-staff-editorial-admin {
  padding:1.5rem;
  border:1px solid rgba(197,151,72,.55);
  border-radius:0;
  background:linear-gradient(180deg,rgba(24,19,28,.96),rgba(12,10,16,.98));
  box-shadow:0 18px 45px rgba(0,0,0,.32),inset 0 0 0 2px rgba(0,0,0,.28);
  color:#f4e7cf;
}
.dds-staff-editorial-head {
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:1rem;
  padding-bottom:1rem;
  border-bottom:1px solid rgba(197,151,72,.28);
}
.dds-staff-editorial-head h1 {
  display:flex;
  align-items:center;
  gap:.65rem;
  margin:.15rem 0 .35rem;
  color:#f6d889;
  font-family:Georgia,'Times New Roman',serif;
  font-size:clamp(1.6rem,2.8vw,2.35rem);
}
.dds-staff-editorial-head h1 i { color:#c95cff; }
.dds-staff-editorial-head p { max-width:780px;margin:0;color:rgba(244,231,207,.72); }
.dds-staff-editorial-back { display:inline-flex;align-items:center;gap:.4rem;color:#d9b6ff;font-size:.82rem; }
.dds-staff-editorial-back:hover { color:#fff; }
.dds-staff-editorial-kicker {
  display:block;
  margin-top:.6rem;
  color:#c95cff;
  font-size:.72rem;
  font-weight:700;
  letter-spacing:.16em;
  text-transform:uppercase;
}
.dds-staff-editorial-head .dds-staff-editorial-add { flex:0 0 auto;margin:0; }
.dds-staff-editorial-tabs {
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:.65rem;
  margin:1rem 0;
}
.dds-staff-editorial-tabs a {
  display:flex;
  align-items:center;
  gap:.55rem;
  min-height:48px;
  padding:.65rem .8rem;
  border:1px solid rgba(197,151,72,.32);
  background:rgba(19,17,25,.88);
  color:rgba(244,231,207,.78);
  transition:border-color .16s ease,background .16s ease,color .16s ease;
}
.dds-staff-editorial-tabs a i { color:#c95cff; }
.dds-staff-editorial-tabs a:hover,
.dds-staff-editorial-tabs a.is-active {
  border-color:#c95cff;
  background:rgba(49,31,64,.9);
  color:#fff;
}
.dds-staff-editorial-note {
  display:grid;
  grid-template-columns:auto 1fr;
  gap:1rem;
  margin:0 0 1rem;
  padding:1rem;
  border:1px solid rgba(201,92,255,.38);
  background:rgba(201,92,255,.08);
}
.dds-staff-editorial-note>i {
  display:grid;
  place-items:center;
  width:44px;
  height:44px;
  border:1px solid rgba(201,92,255,.45);
  background:rgba(201,92,255,.11);
  color:#e0a4ff;
}
.dds-staff-editorial-note h2 { margin:0 0 .25rem;text-align:left;color:#f6d889;font-size:1.05rem; }
.dds-staff-editorial-note p { margin:0;color:rgba(244,231,207,.74);font-size:.88rem;line-height:1.5; }
.dds-staff-editorial-role-list { display:flex;flex-wrap:wrap;gap:.45rem;margin-top:.75rem; }
.dds-staff-editorial-role-list>span {
  display:inline-flex;
  align-items:center;
  gap:.4rem;
  padding:.32rem .55rem;
  border:1px solid rgba(197,151,72,.3);
  border-radius:999px;
  background:rgba(8,7,11,.34);
  color:#f4e7cf;
  font-size:.78rem;
}
.dds-staff-editorial-role-list small { color:rgba(244,231,207,.55); }
.dds-staff-editorial-layout {
  display:grid;
  grid-template-columns:minmax(340px,.9fr) minmax(480px,1.25fr);
  gap:1rem;
  align-items:start;
}
.dds-staff-editorial-panel {
  min-width:0;
  padding:1rem;
  border:1px solid rgba(197,151,72,.42);
  background:linear-gradient(180deg,rgba(36,28,43,.94),rgba(18,15,23,.96));
  box-shadow:inset 0 0 0 2px rgba(0,0,0,.22);
}
.dds-staff-editorial-panel-head {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:.8rem;
  min-height:48px;
  margin-bottom:.9rem;
  padding-bottom:.8rem;
  border-bottom:1px solid rgba(197,151,72,.2);
}
.dds-staff-editorial-panel-head span {
  display:block;
  color:#c95cff;
  font-size:.68rem;
  font-weight:700;
  letter-spacing:.12em;
  text-transform:uppercase;
}
.dds-staff-editorial-panel-head h2 { margin:.1rem 0 0;text-align:left;color:#f6d889;font-size:1.12rem; }
.dds-staff-editorial-search { position:relative;width:min(210px,45%);margin:0; }
.dds-staff-editorial-search i {
  position:absolute;
  z-index:2;
  top:50%;
  left:.7rem;
  transform:translateY(-50%);
  color:rgba(244,231,207,.5);
}
.dds-staff-editorial-search input {
  height:40px;
  margin:0 !important;
  padding-left:2rem !important;
  border-color:rgba(197,151,72,.35) !important;
}
.dds-staff-editorial-list { display:grid;gap:.55rem; }
.dds-staff-editorial-list-item {
  display:grid;
  grid-template-columns:auto minmax(0,1fr) auto auto;
  align-items:center;
  gap:.7rem;
  padding:.7rem;
  border:1px solid rgba(197,151,72,.2);
  background:rgba(8,7,11,.34);
  transition:border-color .16s ease,background .16s ease;
}
.dds-staff-editorial-list-item:hover,
.dds-staff-editorial-list-item.is-selected {
  border-color:rgba(201,92,255,.6);
  background:rgba(49,31,64,.55);
}
.dds-staff-editorial-list-icon {
  display:grid;
  place-items:center;
  width:38px;
  height:38px;
  border:1px solid rgba(201,92,255,.35);
  background:rgba(201,92,255,.09);
  color:#e0a4ff;
}
.dds-staff-editorial-list-copy { min-width:0; }
.dds-staff-editorial-list-copy strong,
.dds-staff-editorial-list-copy span,
.dds-staff-editorial-list-copy small { display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap; }
.dds-staff-editorial-list-copy strong { color:#f4e7cf; }
.dds-staff-editorial-list-copy span { margin-top:.1rem;color:rgba(244,231,207,.65);font-size:.76rem; }
.dds-staff-editorial-list-copy small { margin-top:.08rem;color:rgba(244,231,207,.48);font-size:.69rem; }
.dds-staff-editorial-status {
  display:inline-flex;
  padding:.22rem .45rem;
  border:1px solid rgba(197,151,72,.38);
  border-radius:999px;
  color:#cbbca7;
  font-size:.64rem;
  text-transform:uppercase;
  white-space:nowrap;
}
.dds-staff-editorial-status.is-active { border-color:#55b876;color:#8be3a7; }
.dds-staff-editorial-status.is-hidden { border-color:#a66d6d;color:#e5a2a2; }
.dds-staff-editorial-edit,
.dds-staff-editorial-preview {
  display:grid;
  place-items:center;
  width:36px;
  height:36px;
  border:1px solid rgba(197,151,72,.42);
  color:#d9b6ff;
}
.dds-staff-editorial-edit:hover,
.dds-staff-editorial-preview:hover { border-color:#c95cff;background:rgba(201,92,255,.12);color:#fff; }
.dds-staff-editorial-empty,
.dds-staff-editorial-no-result { padding:1.5rem;text-align:center;color:rgba(244,231,207,.58); }
.dds-staff-editorial-empty i { display:block;margin-bottom:.5rem;color:#c95cff;font-size:1.8rem; }
.dds-staff-editorial-required {
  margin:0 0 .9rem;
  padding:.65rem .75rem;
  border-left:3px solid #c95cff;
  background:rgba(201,92,255,.07);
  color:rgba(244,231,207,.68);
  font-size:.78rem;
}
.dds-staff-editorial-required strong,
.dds-required-mark { color:#f3b4ff; }
.dds-staff-editorial-form label,
.dds-staff-editorial-form legend { color:#f4e7cf;font-weight:700; }
.dds-staff-editorial-form label>small,
.dds-staff-editorial-form legend>small { color:rgba(244,231,207,.52);font-size:.72rem;font-weight:400; }
.dds-staff-editorial-form input,
.dds-staff-editorial-form select,
.dds-staff-editorial-form textarea {
  margin-top:.3rem;
  border-color:#73552f;
  background:#17121d !important;
  color:#fff;
}
.dds-staff-editorial-form textarea { width:100%;padding:.65rem;resize:vertical; }
.dds-staff-editorial-form input:focus,
.dds-staff-editorial-form select:focus,
.dds-staff-editorial-form textarea:focus { border-color:#c95cff;box-shadow:0 0 0 2px rgba(201,92,255,.14); }
.dds-staff-editorial-urls { margin:0 0 1rem;padding:.8rem;border:1px solid rgba(197,151,72,.25); }
.dds-staff-editorial-urls legend { padding:0 .3rem; }
.dds-staff-editorial-url-row { display:grid;grid-template-columns:1fr auto;gap:.45rem; }
.dds-staff-editorial-url-row input { margin-bottom:.55rem; }
.dds-staff-editorial-remove-url {
  width:40px !important;
  min-width:40px !important;
  min-height:40px !important;
  margin:.3rem 0 .55rem !important;
  padding:0 !important;
  border-color:rgba(197,151,72,.35) !important;
  background:rgba(255,255,255,.04) !important;
  color:#e5a2a2 !important;
}
.dds-staff-editorial-add-url { min-height:36px !important;margin:0 !important;padding:.4rem .65rem !important; }
.dds-staff-editorial-form-actions { display:flex;justify-content:flex-end;gap:.65rem;padding-top:.3rem; }
.dds-staff-editorial-form-actions .button { margin:0; }
@media(max-width:1050px) {
  .dds-staff-editorial-layout { grid-template-columns:1fr; }
  .dds-staff-editorial-list-panel { max-height:none; }
}
@media(max-width:760px) {
  .scene > .dds-page-content > .salle-container-admin.dds-staff-editorial-admin { width:calc(100% - 1rem) !important; }
  .dds-staff-editorial-admin { padding:1rem; }
  .dds-staff-editorial-head { align-items:stretch;flex-direction:column; }
  .dds-staff-editorial-head .dds-staff-editorial-add { width:100%; }
  .dds-staff-editorial-tabs { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media(max-width:520px) {
  .dds-staff-editorial-tabs { grid-template-columns:1fr; }
  .dds-staff-editorial-panel-head { align-items:flex-start;flex-direction:column; }
  .dds-staff-editorial-search { width:100%; }
  .dds-staff-editorial-list-item { grid-template-columns:auto minmax(0,1fr) auto; }
  .dds-staff-editorial-status { grid-column:2;justify-self:start; }
  .dds-staff-editorial-edit { grid-column:3;grid-row:1 / span 2; }
  .dds-staff-editorial-note { grid-template-columns:1fr; }
  .dds-staff-editorial-form-actions { flex-direction:column-reverse; }
  .dds-staff-editorial-form-actions .button { width:100%; }
}
@media(max-width:760px){.dds-editorial-hero{grid-template-columns:1fr;text-align:center}.dds-editorial-portrait,.dds-editorial-logo,.dds-editorial-placeholder{margin:auto}.dds-editorial-meta,.dds-editorial-links{justify-content:center}.dds-acteurs-admin-grid{grid-template-columns:1fr}}

/* ==========================================================================
   STAFF — mise en page commune
   Les pages spécialisées conservent leurs composants, mais partagent le même
   cadre, la même hiérarchie visuelle et les mêmes panneaux que l’espace
   éditorial validé.
   ========================================================================== */
.scene > .dds-page-content > .salle-container-admin:not(.staff-login-page) {
  width:min(94%,1400px) !important;
  padding:clamp(1rem,2vw,1.5rem);
  border:1px solid rgba(197,151,72,.55);
  border-radius:0;
  background:linear-gradient(180deg,rgba(24,19,28,.96),rgba(12,10,16,.98));
  box-shadow:0 18px 45px rgba(0,0,0,.32),inset 0 0 0 2px rgba(0,0,0,.28);
  color:#f4e7cf;
  overflow-x:auto;
}

.salle-container-admin:not(.dds-staff-editorial-admin) > h1:first-child,
.salle-container-admin:not(.dds-staff-editorial-admin) > h2:first-child,
.salle-container-admin:not(.dds-staff-editorial-admin) > .staff-dashboard > h1:first-child {
  margin:0 0 .35rem;
  padding:0;
  color:#f6d889;
  font-family:Georgia,'Times New Roman',serif;
  font-size:clamp(1.6rem,2.8vw,2.35rem);
  line-height:1.15;
  text-align:left;
}

.salle-container-admin:not(.dds-staff-editorial-admin) > h1:first-child + p,
.salle-container-admin:not(.dds-staff-editorial-admin) > h2:first-child + p,
.salle-container-admin:not(.dds-staff-editorial-admin) > .staff-dashboard > .staff-intro {
  margin:0 0 1.35rem;
  padding:0 0 1rem;
  border-bottom:1px solid rgba(197,151,72,.28);
  color:rgba(244,231,207,.72);
}

.salle-container-admin:not(.dds-staff-editorial-admin) h1,
.salle-container-admin:not(.dds-staff-editorial-admin) h2,
.salle-container-admin:not(.dds-staff-editorial-admin) h3,
.salle-container-admin:not(.dds-staff-editorial-admin) h4 {
  color:#f6d889;
  font-family:Georgia,'Times New Roman',serif;
  text-align:left;
}

.salle-container-admin:not(.dds-staff-editorial-admin) h2 {
  font-size:clamp(1.15rem,2vw,1.4rem);
}

.salle-container-admin:not(.dds-staff-editorial-admin) h3 {
  font-size:1.08rem;
}

.salle-container-admin:not(.dds-staff-editorial-admin) p,
.salle-container-admin:not(.dds-staff-editorial-admin) li,
.salle-container-admin:not(.dds-staff-editorial-admin) dt,
.salle-container-admin:not(.dds-staff-editorial-admin) dd,
.salle-container-admin:not(.dds-staff-editorial-admin) small {
  color:rgba(244,231,207,.76);
}

.salle-container-admin:not(.dds-staff-editorial-admin) a:not(.button) {
  color:#d9b6ff;
}

.salle-container-admin:not(.dds-staff-editorial-admin) a:not(.button):hover,
.salle-container-admin:not(.dds-staff-editorial-admin) a:not(.button):focus {
  color:#fff;
}

.salle-container-admin:not(.dds-staff-editorial-admin) > form,
.salle-container-admin:not(.dds-staff-editorial-admin) > section,
.salle-container-admin:not(.dds-staff-editorial-admin) > details,
.salle-container-admin:not(.dds-staff-editorial-admin) > .staff-dashboard > .staff-section,
.salle-container-admin:not(.dds-staff-editorial-admin) .dds-book-editor-form > section,
.salle-container-admin:not(.dds-staff-editorial-admin) .staff-affectations-form,
.salle-container-admin:not(.dds-staff-editorial-admin) .staff-affectations-liste,
.salle-container-admin:not(.dds-staff-editorial-admin) .dds-dialogues-ambiance__section {
  margin:0 0 1rem;
  padding:1rem;
  border:1px solid rgba(197,151,72,.42);
  border-radius:0;
  background:linear-gradient(180deg,rgba(36,28,43,.94),rgba(18,15,23,.96));
  box-shadow:inset 0 0 0 2px rgba(0,0,0,.22);
}

.salle-container-admin:not(.dds-staff-editorial-admin) fieldset {
  min-width:0;
  margin:0 0 1rem;
  padding:1rem;
  border:1px solid rgba(197,151,72,.28);
  border-radius:0;
  background:rgba(8,7,11,.28);
}

.salle-container-admin:not(.dds-staff-editorial-admin) legend {
  width:auto;
  margin:0;
  padding:0 .4rem;
  color:#f6d889;
  background:transparent;
  font-weight:800;
}

.salle-container-admin:not(.dds-staff-editorial-admin) label {
  color:#f4e7cf;
  font-weight:700;
}

.salle-container-admin:not(.dds-staff-editorial-admin) input:not([type="checkbox"]):not([type="radio"]):not([type="submit"]):not([type="button"]):not([type="reset"]),
.salle-container-admin:not(.dds-staff-editorial-admin) select,
.salle-container-admin:not(.dds-staff-editorial-admin) textarea {
  width:100%;
  margin-top:.3rem;
  margin-bottom:1rem;
  padding:.65rem;
  border:1px solid #73552f;
  border-radius:0;
  background:#17121d !important;
  color:#fff !important;
  box-shadow:none;
}

.salle-container-admin:not(.dds-staff-editorial-admin) select {
  min-height:2.75rem;
  padding:.55rem .75rem;
  line-height:1.35;
}

.salle-container-admin:not(.dds-staff-editorial-admin) textarea {
  resize:vertical;
}

.salle-container-admin:not(.dds-staff-editorial-admin) input:focus,
.salle-container-admin:not(.dds-staff-editorial-admin) select:focus,
.salle-container-admin:not(.dds-staff-editorial-admin) textarea:focus {
  border-color:#c95cff;
  outline:0;
  box-shadow:0 0 0 2px rgba(201,92,255,.14);
}

.salle-container-admin:not(.dds-staff-editorial-admin) input[type="checkbox"],
.salle-container-admin:not(.dds-staff-editorial-admin) input[type="radio"] {
  width:auto;
  margin-right:.35rem;
}

.salle-container-admin:not(.dds-staff-editorial-admin) .help-text {
  color:rgba(244,231,207,.56);
}

.salle-container-admin:not(.dds-staff-editorial-admin) .callout {
  margin:0 0 1rem;
  border:1px solid rgba(197,151,72,.38);
  border-radius:0;
  background:rgba(19,17,25,.92);
  color:#f4e7cf;
}

.salle-container-admin:not(.dds-staff-editorial-admin) .callout.success {
  border-color:rgba(85,184,118,.55);
  background:rgba(85,184,118,.1);
}

.salle-container-admin:not(.dds-staff-editorial-admin) .callout.alert {
  border-color:rgba(205,93,93,.58);
  background:rgba(205,93,93,.1);
}

.salle-container-admin:not(.dds-staff-editorial-admin) .callout.warning {
  border-color:rgba(230,174,72,.55);
  background:rgba(230,174,72,.1);
}

.salle-container-admin:not(.dds-staff-editorial-admin) .table-scroll,
.salle-container-admin:not(.dds-staff-editorial-admin) .staff-table-wrap,
.salle-container-admin:not(.dds-staff-editorial-admin) .dds-dialogues-ambiance__table-wrap {
  width:100%;
  overflow-x:auto;
  border:1px solid rgba(197,151,72,.3);
  background:rgba(8,7,11,.3);
}

.salle-container-admin:not(.dds-staff-editorial-admin) table {
  width:100%;
  margin:0;
  border-collapse:collapse;
  border:1px solid rgba(197,151,72,.3);
  background:rgba(8,7,11,.3);
}

.salle-container-admin:not(.dds-staff-editorial-admin) .table-scroll table,
.salle-container-admin:not(.dds-staff-editorial-admin) .staff-table-wrap table,
.salle-container-admin:not(.dds-staff-editorial-admin) .dds-dialogues-ambiance__table-wrap table {
  border:0;
}

.salle-container-admin:not(.dds-staff-editorial-admin) table thead,
.salle-container-admin:not(.dds-staff-editorial-admin) table thead tr {
  background:rgba(201,92,255,.11);
}

.salle-container-admin:not(.dds-staff-editorial-admin) table tbody,
.salle-container-admin:not(.dds-staff-editorial-admin) table tbody tr {
  background:transparent;
}

.salle-container-admin:not(.dds-staff-editorial-admin) table tbody tr:nth-child(even) {
  background:rgba(255,255,255,.025);
}

.salle-container-admin:not(.dds-staff-editorial-admin) table tbody tr:hover {
  background:rgba(201,92,255,.075);
}

.salle-container-admin:not(.dds-staff-editorial-admin) table.hover:not(.unstriped) tbody tr:nth-of-type(even):hover {
  background:rgba(201,92,255,.11);
}

.salle-container-admin:not(.dds-staff-editorial-admin) table th,
.salle-container-admin:not(.dds-staff-editorial-admin) table td {
  padding:.75rem;
  border:1px solid rgba(197,151,72,.17);
  color:#f4e7cf !important;
  text-align:left;
  vertical-align:middle;
}

.salle-container-admin:not(.dds-staff-editorial-admin) table th {
  color:#f6d889 !important;
  font-size:.76rem;
  letter-spacing:.04em;
  text-transform:uppercase;
}

.salle-container-admin:not(.dds-staff-editorial-admin) table form,
.salle-container-admin:not(.dds-staff-editorial-admin) table .button,
.salle-container-admin:not(.dds-staff-editorial-admin) table button {
  margin:0;
}

.salle-container-admin:not(.dds-staff-editorial-admin) details {
  overflow:hidden;
}

.salle-container-admin:not(.dds-staff-editorial-admin) details > summary {
  margin:-1rem;
  padding:1rem;
  color:#f4e7cf;
  background:rgba(201,92,255,.06);
  cursor:pointer;
}

.salle-container-admin:not(.dds-staff-editorial-admin) details[open] > summary {
  margin-bottom:1rem;
  border-bottom:1px solid rgba(197,151,72,.25);
}

.salle-container-admin:not(.dds-staff-editorial-admin) .pagination {
  display:flex;
  flex-wrap:wrap;
  justify-content:center;
  gap:.4rem;
  margin:1rem 0 0;
}

.salle-container-admin:not(.dds-staff-editorial-admin) .pagination a {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:36px;
  padding:.4rem .65rem;
  border:1px solid rgba(197,151,72,.35);
  background:rgba(19,17,25,.88);
  color:#d9b6ff;
}

.salle-container-admin:not(.dds-staff-editorial-admin) .pagination a:hover,
.salle-container-admin:not(.dds-staff-editorial-admin) .pagination a.active {
  border-color:#c95cff;
  background:rgba(49,31,64,.9);
  color:#fff;
}

/* Tableau de bord staff */
.salle-container-admin .staff-dashboard .staff-section {
  margin:0 0 1rem;
}

.salle-container-admin .staff-dashboard .staff-section > h2 {
  margin:0 0 .9rem;
  padding-bottom:.75rem;
  border-bottom:1px solid rgba(197,151,72,.2);
}

.salle-container-admin .staff-dashboard .staff-card,
.salle-container-admin .staff-migrations .migration-card {
  border:1px solid rgba(197,151,72,.24);
  border-radius:0;
  background:rgba(8,7,11,.34);
  transition:border-color .16s ease,background .16s ease,transform .16s ease;
}

.salle-container-admin .staff-dashboard .staff-card:hover {
  transform:translateY(-2px);
  border-color:rgba(201,92,255,.6);
  background:rgba(49,31,64,.55);
}

.salle-container-admin .staff-dashboard .staff-card i {
  color:#c95cff;
}

.salle-container-admin .staff-dashboard .staff-card strong,
.salle-container-admin .staff-migrations .migration-card strong {
  color:#fff0d1;
}

.salle-container-admin .staff-dashboard .staff-actions a,
.salle-container-admin .staff-migrations .actions-haut a {
  display:inline-flex;
  align-items:center;
  gap:.5rem;
  padding:.7rem .85rem;
  border:1px solid rgba(197,151,72,.3);
  border-radius:0;
  background:rgba(8,7,11,.34);
  color:#f4e7cf;
}

.salle-container-admin .staff-dashboard .staff-actions a:hover,
.salle-container-admin .staff-migrations .actions-haut a:hover {
  border-color:#c95cff;
  background:rgba(49,31,64,.55);
  color:#fff;
}

/* Composants déjà spécialisés : même palette et mêmes arêtes que la page modèle */
.salle-container-admin:not(.dds-staff-editorial-admin) .dds-biblio-dashboard-section,
.salle-container-admin:not(.dds-staff-editorial-admin) .dds-biblio-filter-panel,
.salle-container-admin:not(.dds-staff-editorial-admin) .dds-biblio-catalogue-table,
.salle-container-admin:not(.dds-staff-editorial-admin) .dds-biblio-review-card,
.salle-container-admin:not(.dds-staff-editorial-admin) .dds-biblio-review-empty,
.salle-container-admin:not(.dds-staff-editorial-admin) .dds-mod-card,
.salle-container-admin:not(.dds-staff-editorial-admin) .dds-book-editor-form > section,
.salle-container-admin:not(.dds-staff-editorial-admin) .dds-book-editor-checks fieldset,
.salle-container-admin:not(.dds-staff-editorial-admin) .dds-book-format-card {
  border-color:rgba(197,151,72,.42);
  border-radius:0;
  background:linear-gradient(180deg,rgba(36,28,43,.94),rgba(18,15,23,.96));
  box-shadow:inset 0 0 0 2px rgba(0,0,0,.22);
}

.salle-container-admin:not(.dds-staff-editorial-admin) .dds-biblio-stat,
.salle-container-admin:not(.dds-staff-editorial-admin) .dds-biblio-shortcuts > a,
.salle-container-admin:not(.dds-staff-editorial-admin) .dds-biblio-activity > div {
  border:1px solid rgba(197,151,72,.24);
  border-radius:0;
  background:rgba(8,7,11,.34);
}

.salle-container-admin:not(.dds-staff-editorial-admin) .dds-biblio-stat:hover,
.salle-container-admin:not(.dds-staff-editorial-admin) .dds-biblio-shortcuts > a:hover {
  border-color:#c95cff;
  background:rgba(49,31,64,.55);
}

/* Fenêtres de modification ouvertes depuis les listes staff */
body.role-admin .modal-salle,
body.role-tech .modal-salle {
  border:1px solid rgba(197,151,72,.55);
  border-radius:0;
  background:linear-gradient(180deg,rgba(36,28,43,.98),rgba(18,15,23,.99));
  box-shadow:0 18px 45px rgba(0,0,0,.5),inset 0 0 0 2px rgba(0,0,0,.28);
  color:#f4e7cf;
}

body.role-admin .modal-salle h2,
body.role-admin .modal-salle h3,
body.role-tech .modal-salle h2,
body.role-tech .modal-salle h3 {
  color:#f6d889;
  font-family:Georgia,'Times New Roman',serif;
}

body.role-admin .modal-salle label,
body.role-tech .modal-salle label {
  color:#f4e7cf;
  font-weight:700;
}

body.role-admin .modal-salle input:not([type="checkbox"]):not([type="radio"]):not([type="submit"]):not([type="button"]),
body.role-admin .modal-salle select,
body.role-admin .modal-salle textarea,
body.role-tech .modal-salle input:not([type="checkbox"]):not([type="radio"]):not([type="submit"]):not([type="button"]),
body.role-tech .modal-salle select,
body.role-tech .modal-salle textarea {
  width:100%;
  margin-top:.3rem;
  margin-bottom:1rem;
  border:1px solid #73552f;
  border-radius:0;
  background:#17121d !important;
  color:#fff !important;
}

@media(max-width:760px) {
  .scene > .dds-page-content > .salle-container-admin:not(.staff-login-page) {
    width:calc(100% - 1rem) !important;
    padding:1rem;
  }

  .salle-container-admin:not(.dds-staff-editorial-admin) > form,
  .salle-container-admin:not(.dds-staff-editorial-admin) > section,
  .salle-container-admin:not(.dds-staff-editorial-admin) > details,
  .salle-container-admin:not(.dds-staff-editorial-admin) > .staff-dashboard > .staff-section,
  .salle-container-admin:not(.dds-staff-editorial-admin) .dds-book-editor-form > section,
  .salle-container-admin:not(.dds-staff-editorial-admin) .staff-affectations-form,
  .salle-container-admin:not(.dds-staff-editorial-admin) .staff-affectations-liste,
  .salle-container-admin:not(.dds-staff-editorial-admin) .dds-dialogues-ambiance__section {
    padding:.85rem;
  }

  .salle-container-admin:not(.dds-staff-editorial-admin) table th,
  .salle-container-admin:not(.dds-staff-editorial-admin) table td {
    padding:.6rem;
  }
}

/* ==========================================================================
   ESPACE PROFESSIONNEL — thème ambré commun
   ========================================================================== */
.scene > .dds-page-content > .salle-container-pro.dds-pro-shell,
.scene > .dds-page-content > .salle-container-pro.dds-pro-catalogue {
  width:min(94%,1240px) !important;
  max-width:1240px;
  max-height:none;
  margin:1rem auto;
  padding:clamp(1rem,2.4vw,1.75rem);
  border:1px solid rgba(213,164,74,.48);
  border-radius:20px;
  background:
    radial-gradient(circle at 100% 0,rgba(182,116,39,.12),transparent 34%),
    linear-gradient(150deg,rgba(36,24,17,.97),rgba(17,12,9,.98));
  box-shadow:0 18px 42px rgba(0,0,0,.32),inset 0 1px 0 rgba(255,255,255,.04);
  color:#f7ead2;
}
.dds-pro-shell h1,.dds-pro-shell h2,.dds-pro-shell h3,
.dds-pro-catalogue h1,.dds-pro-catalogue h2,.dds-pro-catalogue h3 {
  color:#fff1d4;
  font-family:Georgia,'Times New Roman',serif;
}
.dds-pro-shell p,.dds-pro-shell li,.dds-pro-shell dt,.dds-pro-shell dd,
.dds-pro-catalogue p,.dds-pro-catalogue li { color:#d6c3a5; }
.dds-pro-shell a:not(.button),.dds-pro-catalogue a:not(.button) { color:#f1c86f; }
.dds-pro-shell a:not(.button):hover,.dds-pro-catalogue a:not(.button):hover { color:#fff4d9; }
.dds-pro-kicker {
  margin:0 0 .28rem;
  color:#e7ad48 !important;
  font-size:.73rem;
  font-weight:800;
  letter-spacing:.14em;
  text-transform:uppercase;
}
.dds-pro-shell-head {
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:1.25rem;
  margin:0 0 1.25rem;
  padding:0 0 1.15rem;
  border-bottom:1px solid rgba(213,164,74,.3);
}
.dds-pro-shell-head h1 { margin:0;font-size:clamp(1.7rem,3vw,2.45rem);line-height:1.08; }
.dds-pro-shell-head p:last-child { max-width:760px;margin:.45rem 0 0; }
.dds-pro-period,.dds-pro-state-pill {
  display:inline-flex;
  align-items:center;
  gap:.48rem;
  flex:0 0 auto;
  min-height:38px;
  padding:.48rem .72rem;
  border:1px solid rgba(213,164,74,.45);
  border-radius:999px;
  background:rgba(72,45,21,.34);
  color:#f1c86f;
  font-size:.75rem;
  font-weight:800;
}
.dds-pro-state-pill.is-success { border-color:rgba(94,181,119,.55);background:rgba(45,118,70,.2);color:#9ae1ac; }
.dds-pro-state-pill.is-warning { border-color:rgba(224,164,55,.6);color:#f0c35d; }
/* Les boutons de l’espace pro utilisent le composant global défini plus haut. */
.dds-pro-primary-button,
.dds-pro-shell .button {
  font-weight: 800;
}
.dds-pro-alert {
  margin:0 0 1rem;
  padding:.8rem 1rem;
  border-radius:12px;
  color:#f7ead2;
}
.dds-pro-alert p { margin:0;color:inherit; }
.dds-pro-alert p + p { margin-top:.35rem; }
.dds-pro-alert-success { border:1px solid rgba(94,181,119,.58);background:rgba(45,118,70,.2); }
.dds-pro-alert-error { border:1px solid rgba(220,103,83,.6);background:rgba(143,51,39,.22); }
.dds-pro-panel,.dds-pro-offer-card,.dds-pro-payment-provider,
.dds-pro-feature-card,.dds-pro-advertising-hero {
  border:1px solid rgba(213,164,74,.3);
  border-radius:16px;
  background:linear-gradient(160deg,rgba(49,32,21,.88),rgba(22,15,11,.92));
  box-shadow:inset 0 1px 0 rgba(255,255,255,.035);
}
.dds-pro-panel { padding:1.15rem; }
.dds-pro-panel-head {
  display:flex;
  align-items:flex-start;
  gap:.78rem;
  margin-bottom:1rem;
  padding-bottom:.85rem;
  border-bottom:1px solid rgba(213,164,74,.22);
}
.dds-pro-panel-head h2,.dds-pro-panel-head p { margin:0; }
.dds-pro-panel-head p { margin-top:.18rem;font-size:.84rem; }
.dds-pro-panel-icon {
  display:grid;
  place-items:center;
  flex:0 0 44px;
  height:44px;
  border:1px solid rgba(220,175,91,.42);
  border-radius:13px;
  background:rgba(131,79,31,.24);
  color:#ecc46f;
}
.dds-pro-dashboard-alert {
  display:grid;
  grid-template-columns:auto minmax(0,1fr) auto;
  align-items:center;
  gap:.8rem;
  margin-bottom:1rem;
  padding:.85rem 1rem;
  border:1px solid rgba(224,164,55,.48);
  border-radius:14px;
  background:rgba(112,71,23,.2);
}
.dds-pro-dashboard-alert > i:first-child { color:#efb84e;font-size:1.2rem; }
.dds-pro-dashboard-alert strong,.dds-pro-dashboard-alert small { display:block; }
.dds-pro-dashboard-alert strong { color:#fff1d4; }
.dds-pro-dashboard-alert small { margin-top:.15rem;color:#d6c3a5; }
.dds-pro-stats-grid { margin:0; }
.dds-pro-stat-card {
  border-color:rgba(213,164,74,.3);
  border-radius:15px;
  background:linear-gradient(160deg,rgba(49,32,21,.9),rgba(22,15,11,.94));
}
.dds-pro-stat-card:hover,.dds-pro-stat-card:focus {
  border-color:#dcaa50;
  background:linear-gradient(160deg,rgba(76,48,25,.96),rgba(29,19,13,.98));
}
.dds-pro-stat-icon {
  border-color:#9a6a31;
  background:radial-gradient(circle at 50% 35%,#e0b45f,#845326 64%,#27170d 100%);
  color:#fff1cc;
}
.dds-pro-stat-card-highlight { border-color:rgba(225,174,78,.6); }
.dds-pro-dashboard-status {
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:.85rem;
  margin:1rem 0 0;
}
.dds-pro-status-card {
  display:grid;
  grid-template-columns:auto minmax(0,1fr) auto;
  align-items:center;
  gap:.8rem;
  padding:.9rem 1rem;
  border:1px solid rgba(213,164,74,.28);
  border-radius:14px;
  background:rgba(20,13,9,.55);
}
.dds-pro-status-card > span {
  display:grid;
  place-items:center;
  width:42px;
  height:42px;
  border-radius:12px;
  background:rgba(131,79,31,.24);
}
.dds-pro-status-card strong,.dds-pro-status-card small { display:block; }
.dds-pro-status-card strong { color:#fff1d4; }
.dds-pro-status-card small { margin-top:.15rem;color:#bfae92; }
.dds-pro-status-card.is-active { border-color:rgba(94,181,119,.48); }
.dds-pro-status-card.is-active > span { background:rgba(45,118,70,.2);color:#9ae1ac; }
.dds-pro-dashboard-actions { margin-top:1.3rem; }
.dds-pro-section-title h2 { margin:.1rem 0 .75rem; }
.dds-pro-action-card {
  border-color:rgba(213,164,74,.28);
  border-radius:14px;
  background:rgba(20,13,9,.55);
}
.dds-pro-action-card > i { color:#e7ad48; }
.dds-pro-action-card:hover,.dds-pro-action-card:focus {
  border-color:#dcaa50;
  background:rgba(76,48,25,.72);
}
.dds-pro-subscription-layout {
  display:grid;
  grid-template-columns:minmax(300px,.85fr) minmax(360px,1.15fr);
  gap:1rem;
}
.dds-pro-offer-card { padding:1.25rem; }
.dds-pro-offer-price {
  display:grid;
  grid-template-columns:1fr auto;
  align-items:end;
  gap:.2rem .8rem;
  margin-bottom:1rem;
  padding-bottom:1rem;
  border-bottom:1px solid rgba(213,164,74,.24);
}
.dds-pro-offer-price span { color:#e7ad48;font-weight:800;text-transform:uppercase;letter-spacing:.08em; }
.dds-pro-offer-price strong { color:#fff1d4;font-size:2.25rem;line-height:1; }
.dds-pro-offer-price small { grid-column:2;color:#bfae92;text-align:right; }
.dds-pro-offer-card ul { margin:0 0 1rem;list-style:none; }
.dds-pro-offer-card li { margin:.55rem 0; }
.dds-pro-offer-card li i { width:22px;color:#e7ad48; }
.dds-pro-offer-card form,.dds-pro-offer-card .button { width:100%;margin:0; }
.dds-pro-details { margin:0; }
.dds-pro-details > div {
  display:flex;
  justify-content:space-between;
  gap:1rem;
  padding:.62rem 0;
  border-bottom:1px solid rgba(213,164,74,.16);
}
.dds-pro-details dt { color:#bfae92; }
.dds-pro-details dd { margin:0;color:#fff1d4;font-weight:750;text-align:right; }
.dds-pro-inline-actions { display:flex;flex-wrap:wrap;gap:.65rem;margin-top:1rem; }
.dds-pro-inline-actions form,.dds-pro-inline-actions .button { margin:0; }
.dds-pro-information,.dds-pro-security-note,.dds-pro-environment-note {
  display:flex;
  align-items:flex-start;
  gap:.75rem;
  margin:1rem 0 0;
  padding:.8rem .9rem;
  border:1px solid rgba(213,164,74,.28);
  border-radius:13px;
  background:rgba(95,57,23,.16);
}
.dds-pro-information i,.dds-pro-security-note i,.dds-pro-environment-note i { margin-top:.15rem;color:#e7ad48; }
.dds-pro-information p,.dds-pro-security-note p { margin:0; }
.dds-pro-environment-note { margin:0 0 1rem; }
.dds-pro-environment-note strong,.dds-pro-environment-note span { display:block; }
.dds-pro-environment-note span { margin-top:.1rem;color:#bfae92;font-size:.78rem; }
.dds-pro-payment-grid {
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:1rem;
}
.dds-pro-payment-provider { min-width:0;padding:1.1rem; }
.dds-pro-payment-provider-head {
  display:grid;
  grid-template-columns:auto minmax(0,1fr) auto;
  align-items:center;
  gap:.7rem;
  margin-bottom:1rem;
  padding-bottom:.85rem;
  border-bottom:1px solid rgba(213,164,74,.2);
}
.dds-pro-payment-provider-head > span {
  display:grid;
  place-items:center;
  width:44px;
  height:44px;
  border:1px solid rgba(220,175,91,.38);
  border-radius:13px;
  background:rgba(131,79,31,.2);
  color:#efc56e;
  font-size:1.3rem;
}
.dds-pro-payment-provider-head h2,.dds-pro-payment-provider-head p { margin:0; }
.dds-pro-payment-provider-head p { margin-top:.12rem;font-size:.78rem; }
.dds-pro-payment-form label { color:#f0dfc2;font-weight:750; }
.dds-pro-payment-form label > span { display:block;margin-bottom:.3rem; }
.dds-pro-payment-form label > span strong { color:#efb067; }
.dds-pro-payment-form input:not([type=checkbox]),
.dds-pro-payment-form select {
  width:100%;
  margin:0 0 .8rem;
  border:1px solid #795530;
  border-radius:10px;
  background:#18100b;
  color:#fff4dc;
}
.dds-pro-payment-form input:focus,.dds-pro-payment-form select:focus {
  border-color:#dcaa50;
  box-shadow:0 0 0 2px rgba(220,170,80,.14);
}
.dds-pro-payment-form small { display:block;margin:-.45rem 0 .75rem;color:#ae9d82; }
.dds-pro-switch { display:flex;align-items:center;gap:.4rem;margin:0;white-space:nowrap; }
.dds-pro-switch input { margin:0; }
.dds-pro-switch span { margin:0 !important;color:#f1c86f;font-size:.76rem; }
.dds-pro-provider-status {
  display:flex;
  align-items:center;
  gap:.5rem;
  min-height:42px;
  margin:.15rem 0 .75rem;
  padding:.55rem .65rem;
  border:1px solid rgba(213,164,74,.2);
  border-radius:10px;
  background:rgba(13,9,6,.34);
  color:#bfae92;
  font-size:.75rem;
}
.dds-pro-provider-status.is-verified { border-color:rgba(94,181,119,.42);color:#9ae1ac; }
.dds-pro-payment-provider > .button { width:100%;margin:0; }
.dds-pro-payment-options { margin-top:1rem; }
.dds-pro-confirmation {
  display:flex;
  align-items:flex-start;
  gap:.58rem;
  margin:.25rem 0 1rem;
  padding:.75rem;
  border:1px solid rgba(213,164,74,.2);
  border-radius:11px;
  background:rgba(13,9,6,.3);
}
.dds-pro-confirmation input { flex:0 0 auto;margin:.2rem 0 0; }
.dds-pro-confirmation span { margin:0 !important;color:#d6c3a5;font-weight:500; }
.dds-pro-form-actions { display:flex;justify-content:flex-end;gap:.65rem; }
.dds-pro-filter-bar {
  display:grid;
  grid-template-columns:180px 180px minmax(220px,1fr) auto;
  align-items:end;
  gap:.75rem;
  margin:1rem 0;
  padding:.9rem;
  border:1px solid rgba(213,164,74,.25);
  border-radius:14px;
  background:rgba(20,13,9,.5);
}
.dds-pro-filter-bar label { margin:0;color:#f0dfc2;font-weight:750; }
.dds-pro-filter-bar label > span { display:block;margin-bottom:.25rem;font-size:.75rem; }
.dds-pro-filter-bar input,.dds-pro-filter-bar select {
  height:40px;
  margin:0;
  border:1px solid #795530;
  border-radius:9px;
  background:#18100b;
  color:#fff4dc;
}
.dds-pro-filter-bar .button { height:40px;margin:0; }
.dds-pro-orders-list { display:grid;gap:.85rem; }
.dds-pro-order {
  overflow:hidden;
  border:1px solid rgba(213,164,74,.28);
  border-radius:15px;
  background:rgba(20,13,9,.6);
}
.dds-pro-order-head {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:1rem;
  padding:.85rem 1rem;
  border-bottom:1px solid rgba(213,164,74,.2);
  background:rgba(79,49,24,.2);
}
.dds-pro-order-head strong,.dds-pro-order-head small,.dds-pro-order-reference { display:block; }
.dds-pro-order-head strong { color:#fff1d4; }
.dds-pro-order-head small { margin-top:.12rem;color:#ae9d82; }
.dds-pro-order-reference { color:#e7ad48;font-size:.7rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase; }
.dds-pro-order-status {
  display:inline-flex;
  align-items:center;
  gap:.4rem;
  padding:.35rem .55rem;
  border:1px solid rgba(213,164,74,.35);
  border-radius:999px;
  color:#f1c86f;
  font-size:.7rem;
  white-space:nowrap;
}
.dds-pro-order-status.is-success { border-color:rgba(94,181,119,.5);color:#9ae1ac; }
.dds-pro-order-status.is-error { border-color:rgba(220,103,83,.5);color:#eea193; }
.dds-pro-order-body { padding:1rem; }
.dds-pro-order-items { display:grid;gap:.35rem;margin-bottom:.8rem; }
.dds-pro-order-items > div { display:flex;justify-content:space-between;gap:1rem;color:#d6c3a5; }
.dds-pro-order-meta {
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:.45rem .9rem;
  margin:.75rem 0;
}
.dds-pro-order-meta > div { display:flex;justify-content:space-between;gap:.7rem;padding:.48rem .55rem;background:rgba(13,9,6,.3); }
.dds-pro-order-meta dt { color:#ae9d82; }
.dds-pro-order-meta dd { margin:0;color:#f0dfc2;text-align:right;overflow-wrap:anywhere; }
.dds-pro-order address { margin:.75rem 0 0;color:#c8b596;font-style:normal; }
.dds-pro-order-actions {
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:.65rem;
  padding:.75rem 1rem;
  border-top:1px solid rgba(213,164,74,.18);
  background:rgba(13,9,6,.28);
}
.dds-pro-order-actions form,.dds-pro-order-actions .button { margin:0; }
.dds-pro-payment-pending { margin-right:auto;color:#bfae92;font-size:.76rem; }
.dds-pro-feature-grid {
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:.85rem;
  margin:1rem 0;
}
.dds-pro-feature-card { padding:1rem;text-align:center; }
.dds-pro-feature-card > i { margin-bottom:.55rem;color:#e7ad48;font-size:1.45rem; }
.dds-pro-feature-card strong { display:block;color:#fff1d4; }
.dds-pro-feature-card p { margin:.35rem 0 0;font-size:.82rem; }
.dds-pro-advertising-hero { display:flex;align-items:flex-start;gap:1rem;padding:1.15rem; }
.dds-pro-advertising-icon {
  display:grid;
  place-items:center;
  flex:0 0 52px;
  height:52px;
  border-radius:15px;
  background:rgba(131,79,31,.24);
  color:#ecc46f;
  font-size:1.35rem;
}
.dds-pro-advertising-hero h2,.dds-pro-advertising-hero p { margin:0; }
.dds-pro-advertising-hero p { margin-top:.3rem; }
.dds-pro-mini-stats { display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.7rem; }
.dds-pro-mini-stats > div { padding:.75rem;border:1px solid rgba(213,164,74,.2);border-radius:11px;background:rgba(13,9,6,.3);text-align:center; }
.dds-pro-mini-stats strong,.dds-pro-mini-stats span { display:block; }
.dds-pro-mini-stats strong { color:#fff1d4;font-size:1.25rem; }
.dds-pro-mini-stats span { color:#ae9d82;font-size:.72rem; }
.dds-pro-role-switch { margin:1rem 0 0;text-align:right; }
.dds-pro-role-switch .button { margin:0; }
.dds-pro-feedback {
  display:grid;
  grid-template-columns:auto minmax(0,1fr);
  align-items:flex-start;
  gap:1rem;
  padding:1.2rem;
  border:1px solid rgba(224,164,55,.48);
  border-radius:16px;
  background:rgba(112,71,23,.18);
}
.dds-pro-feedback > span {
  display:grid;
  place-items:center;
  width:54px;
  height:54px;
  border:1px solid rgba(224,164,55,.48);
  border-radius:15px;
  color:#f0c35d;
  font-size:1.35rem;
}
.dds-pro-feedback h1,.dds-pro-feedback p { margin:0; }
.dds-pro-feedback p:not(.dds-pro-kicker) { margin-top:.35rem; }
.dds-pro-feedback.is-success { border-color:rgba(94,181,119,.5);background:rgba(45,118,70,.18); }
.dds-pro-feedback.is-success > span { border-color:rgba(94,181,119,.5);color:#9ae1ac; }
.dds-pro-empty {
  padding:1.8rem;
  border:1px dashed rgba(213,164,74,.35);
  border-radius:15px;
  background:rgba(13,9,6,.25);
}
.dds-pro-catalogue .dds-pro-page-head,
.dds-pro-catalogue .dds-pro-list-head {
  border-color:rgba(213,164,74,.3);
}
.dds-pro-catalogue .dds-pro-page-head h2,
.dds-pro-catalogue .dds-pro-form h3,
.dds-pro-catalogue .dds-pro-list-head h3,
.dds-pro-catalogue .dds-pro-distribution-head h4,
.dds-pro-catalogue .dds-pro-format-block h5 {
  color:#fff1d4;
}
.dds-pro-catalogue .dds-pro-subscription {
  border-color:rgba(213,164,74,.34);
  background:rgba(72,45,21,.3);
}
.dds-pro-catalogue .dds-pro-subscription i { color:#e7ad48; }
.dds-pro-catalogue .dds-pro-subscription.is-active { border-color:rgba(94,181,119,.5);background:rgba(45,118,70,.2); }
.dds-pro-catalogue .dds-pro-catalogue-tabs a {
  border:1px solid rgba(213,164,74,.25);
  background:rgba(20,13,9,.5);
  color:#d6c3a5;
}
.dds-pro-catalogue .dds-pro-catalogue-tabs a:hover,
.dds-pro-catalogue .dds-pro-catalogue-tabs a.is-active {
  border-color:#dcaa50;
  background:linear-gradient(180deg,#d9a74e,#966128);
  color:#1b1007;
}
.dds-pro-catalogue .dds-pro-choice-card,
.dds-pro-catalogue .dds-pro-workflow > div,
.dds-pro-catalogue .dds-pro-distribution-card,
.dds-pro-catalogue .dds-pro-upload-box,
.dds-pro-catalogue .dds-pro-products-list article,
.dds-pro-catalogue .dds-pro-check {
  border-color:rgba(213,164,74,.3);
  background:linear-gradient(160deg,rgba(49,32,21,.88),rgba(22,15,11,.92));
}
.dds-pro-catalogue .dds-pro-choice-card:hover,
.dds-pro-catalogue .dds-pro-check:hover {
  border-color:#dcaa50;
  box-shadow:0 10px 25px rgba(0,0,0,.32);
}
.dds-pro-catalogue .dds-pro-choice-icon,
.dds-pro-catalogue .dds-pro-distribution-head > i,
.dds-pro-catalogue .dds-pro-product-type {
  background:rgba(131,79,31,.24);
  color:#ecc46f;
}
.dds-pro-catalogue label,.dds-pro-catalogue legend { color:#f0dfc2; }
.dds-pro-catalogue input:not([type=checkbox]):not([type=radio]),
.dds-pro-catalogue select,.dds-pro-catalogue textarea,
.dds-pro-catalogue .dds-pro-upload-box input[type=file] {
  border-color:#795530;
  border-radius:10px;
  background:#18100b;
  color:#fff4dc;
}
.dds-pro-catalogue input:focus,.dds-pro-catalogue select:focus,.dds-pro-catalogue textarea:focus {
  border-color:#dcaa50;
  box-shadow:0 0 0 2px rgba(220,170,80,.14);
}
.dds-pro-catalogue .dds-pro-form-title > a {
  border-color:#dcaa50;
  color:#f1c86f;
}
.dds-pro-catalogue .dds-pro-required,
.dds-pro-catalogue .dds-required { color:#efb067; }
.dds-pro-catalogue .dds-pro-form-actions .button:not(.secondary) {
  border:1px solid #d59d3f;
  background:linear-gradient(180deg,#d9a74e,#966128);
  color:#1b1007;
}
body.page-parametres.role-pro .scene > .dds-page-content > .salle-container {
  width:min(94%,980px);
  margin:1rem auto;
  padding:clamp(1rem,2.4vw,1.6rem);
  border:1px solid rgba(213,164,74,.48);
  border-radius:20px;
  background:
    radial-gradient(circle at 100% 0,rgba(182,116,39,.12),transparent 34%),
    linear-gradient(150deg,rgba(36,24,17,.97),rgba(17,12,9,.98));
  box-shadow:0 18px 42px rgba(0,0,0,.32),inset 0 1px 0 rgba(255,255,255,.04);
  color:#f7ead2;
}
body.page-parametres.role-pro .bloc-parametres {
  margin-bottom:.8rem;
  padding:1rem;
  border:1px solid rgba(213,164,74,.28);
  border-radius:14px;
  background:rgba(20,13,9,.55);
}
body.page-parametres.role-pro .bloc-parametres h2 { color:#fff1d4;font-family:Georgia,'Times New Roman',serif; }
body.page-parametres.role-pro .bloc-parametres p,
body.page-parametres.role-pro .bloc-parametres label { color:#d6c3a5; }
body.page-parametres.role-pro input[type=submit] {
  border:1px solid #d59d3f;
  border-radius:11px;
  background:linear-gradient(180deg,#d9a74e,#966128);
  color:#1b1007;
  font-weight:850;
}

@media(max-width:960px) {
  .dds-pro-subscription-layout,.dds-pro-payment-grid { grid-template-columns:1fr; }
  .dds-pro-filter-bar { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .dds-pro-filter-search { grid-column:1/-1; }
}
@media(max-width:720px) {
  .scene > .dds-page-content > .salle-container-pro.dds-pro-shell,
  .scene > .dds-page-content > .salle-container-pro.dds-pro-catalogue { width:calc(100% - 1rem) !important;padding:1rem;border-radius:15px; }
  .dds-pro-shell-head { flex-direction:column; }
  .dds-pro-dashboard-status,.dds-pro-feature-grid,.dds-pro-mini-stats,.dds-pro-order-meta { grid-template-columns:1fr; }
  .dds-pro-filter-bar { grid-template-columns:1fr; }
  .dds-pro-filter-search { grid-column:auto; }
  .dds-pro-order-head,.dds-pro-order-actions { align-items:flex-start;flex-direction:column; }
  .dds-pro-payment-pending { margin-right:0; }
  .dds-pro-order-actions form,.dds-pro-order-actions .button { width:100%; }
  .dds-pro-advertising-hero { flex-direction:column; }
  .dds-pro-feedback { grid-template-columns:1fr; }
}

/* Espace sponsor - campagnes */
.sponsor-credit-summary{display:flex;justify-content:space-between;align-items:center;gap:1rem;flex-wrap:wrap;margin:0 0 1.35rem;padding:.9rem 1rem;border:1px solid rgba(197,151,72,.45);background:linear-gradient(180deg,rgba(36,28,43,.94),rgba(18,15,23,.96));box-shadow:inset 0 0 0 2px rgba(0,0,0,.22);color:#f4e7cf}
.sponsor-credit-summary strong{color:#f6d889}.sponsor-credit-summary span{color:rgba(244,231,207,.78)}
.sponsor-campaign-actions{align-items:center}.sponsor-campaign-actions .sponsor-campaign-edit{margin:0;padding:.55rem .8rem;background:#8d6431;color:#fff;font-size:.85rem;font-weight:700}.sponsor-campaign-actions .sponsor-campaign-edit:hover{background:#a8793d;color:#fff}
.sponsor-campaign-actions .sponsor-campaign-stats{font-size:.8rem}
.sponsor-campaign-actions .sponsor-campaign-secondary{margin:0;padding:0;background:none;border:0;color:rgba(244,231,207,.58);font-size:.72rem;cursor:pointer}.sponsor-campaign-actions .sponsor-campaign-secondary:hover{color:#fff}

.sponsor-credit-summary .sponsor-credit-buy{margin:0;white-space:nowrap}
.sponsor-campaign-actions .sponsor-campaign-stats,.sponsor-campaign-actions .sponsor-campaign-publish{margin:0;padding:.55rem .8rem;color:#fff;font-size:.85rem;font-weight:700}
.sponsor-campaign-actions .sponsor-campaign-stats{background:#60407b}
.sponsor-campaign-actions .sponsor-campaign-stats:hover{background:#765092;color:#fff}
.sponsor-campaign-publish{background:#7b4d23;color:#fff}
.sponsor-campaign-publish:hover{background:#93602c;color:#fff}

.sponsor-campaign-table-wrap{margin:1rem 0 1.5rem}.sponsor-campaign-table{width:100%;background:rgba(0,0,0,.42);border-collapse:collapse}.sponsor-campaign-table th,.sponsor-campaign-table td{padding:.75rem;border-bottom:1px solid rgba(255,255,255,.14);vertical-align:middle}.sponsor-quick-credit-form{display:flex;gap:.35rem;align-items:center;margin:0}.sponsor-quick-credit-form input{width:5.5rem;margin:0}.sponsor-campaign-table .sponsor-campaign-actions{min-width:210px}.sponsor-campaign-table .sponsor-campaign-actions form{margin:0}.staff-users-tabs{display:flex;gap:.5rem;flex-wrap:wrap;margin:0 0 1rem}.staff-users-tabs a{padding:.55rem .8rem;border:1px solid rgba(255,255,255,.2);background:rgba(0,0,0,.35)}.staff-users-tabs a.is-active{font-weight:bold;border-color:#d6b468}


/* Tableau des campagnes sponsor — harmonisation compacte */
.sponsor-campaign-table-wrap{
  margin:1rem 0 1.5rem;
  border:1px solid rgba(213,164,74,.34);
  border-radius:14px;
  overflow:auto;
  background:linear-gradient(160deg,rgba(49,32,21,.9),rgba(22,15,11,.95));
  box-shadow:inset 0 1px 0 rgba(255,255,255,.035);
}
.sponsor-campaign-table{
  width:100%;
  margin:0;
  border-collapse:collapse;
  background:transparent;
  color:#f7ead2;
}
.sponsor-campaign-table thead{
  background:rgba(118,76,31,.42);
}
.sponsor-campaign-table th{
  padding:.72rem .68rem;
  border:0;
  border-bottom:1px solid rgba(213,164,74,.42);
  color:#f4cf83;
  font-size:.76rem;
  font-weight:800;
  letter-spacing:.035em;
  text-transform:uppercase;
  white-space:nowrap;
}
.sponsor-campaign-table td{
  height:58px;
  padding:.55rem .68rem;
  border:0;
  border-bottom:1px solid rgba(213,164,74,.16);
  vertical-align:middle;
  color:#eadbc1;
}
.sponsor-campaign-table tbody tr:nth-child(even){background:rgba(255,255,255,.018)}
.sponsor-campaign-table tbody tr:hover{background:rgba(213,164,74,.085)}
.sponsor-campaign-table tbody tr:last-child td{border-bottom:0}
.sponsor-campaign-table td:first-child a{color:#f2c96f}
.sponsor-campaign-table td:first-child a:hover{color:#fff1ce}
.sponsor-campaign-table small{color:#bfae92}
.sponsor-quick-credit-form{
  display:flex;
  align-items:center;
  gap:.38rem;
  margin:0;
  white-space:nowrap;
}
.sponsor-quick-credit-form input[type="number"]{
  width:68px;
  height:36px;
  margin:0;
  padding:.35rem .45rem;
  border:1px solid rgba(213,164,74,.42);
  border-radius:8px;
  background:rgba(13,9,7,.72);
  color:#fff4df;
  text-align:center;
}
.sponsor-campaign-table .sponsor-campaign-actions{
  display:flex;
  align-items:center;
  flex-wrap:nowrap;
  gap:.35rem;
  min-width:auto;
  margin:0;
}
.sponsor-campaign-table .sponsor-campaign-actions form{margin:0}
.sponsor-icon-button{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:36px;
  min-width:36px;
  height:36px;
  margin:0;
  padding:0;
  border:1px solid rgba(213,164,74,.42);
  border-radius:8px;
  background:linear-gradient(180deg,rgba(87,61,37,.96),rgba(50,34,24,.98));
  color:#f6dfb0;
  font-size:.9rem;
  line-height:1;
  cursor:pointer;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.04);
}
.sponsor-icon-button:hover,.sponsor-icon-button:focus{
  border-color:#d9a74e;
  background:linear-gradient(180deg,rgba(112,78,42,.98),rgba(66,43,27,.98));
  color:#fff;
}
.sponsor-icon-button-primary{
  border-color:#d59d3f;
  background:linear-gradient(180deg,#d9a74e,#966128);
  color:#1b1007;
}
.sponsor-icon-button-primary:hover,.sponsor-icon-button-primary:focus{
  background:linear-gradient(180deg,#ebc26f,#ad7735);
  color:#110a05;
}
.sponsor-icon-button-muted{
  border-color:rgba(255,255,255,.14);
  background:rgba(255,255,255,.045);
  color:rgba(244,231,207,.64);
}
.sponsor-icon-button-muted:hover,.sponsor-icon-button-muted:focus{
  border-color:rgba(213,164,74,.35);
  background:rgba(213,164,74,.09);
  color:#fff;
}
.sponsor-icon-button-allocate{
  border-color:rgba(94,181,119,.52);
  background:linear-gradient(180deg,rgba(61,132,81,.96),rgba(35,82,50,.98));
  color:#effff2;
}
.sponsor-icon-button-allocate:hover,.sponsor-icon-button-allocate:focus{
  background:linear-gradient(180deg,rgba(80,159,101,.98),rgba(42,99,59,.98));
  color:#fff;
}
@media screen and (max-width:900px){
  .sponsor-campaign-table{min-width:930px}
}

/* Correction prioritaire : empêcher les styles Foundation de remettre le tableau sponsor sur fond blanc */
.salle-container.sponsor-page .sponsor-campaign-table,
.salle-container.sponsor-page .sponsor-campaign-table thead,
.salle-container.sponsor-page .sponsor-campaign-table tbody,
.salle-container.sponsor-page .sponsor-campaign-table tr,
.salle-container.sponsor-page .sponsor-campaign-table th,
.salle-container.sponsor-page .sponsor-campaign-table td {
  background-color: transparent !important;
  color: #eadbc1 !important;
}
.salle-container.sponsor-page .sponsor-campaign-table thead,
.salle-container.sponsor-page .sponsor-campaign-table thead tr,
.salle-container.sponsor-page .sponsor-campaign-table thead th {
  background: rgba(118,76,31,.42) !important;
  color: #f4cf83 !important;
}
.salle-container.sponsor-page .sponsor-campaign-table tbody tr:nth-child(even),
.salle-container.sponsor-page .sponsor-campaign-table.hover tbody tr:nth-of-type(even) {
  background: rgba(255,255,255,.018) !important;
}
.salle-container.sponsor-page .sponsor-campaign-table tbody tr:hover,
.salle-container.sponsor-page .sponsor-campaign-table.hover tbody tr:hover,
.salle-container.sponsor-page .sponsor-campaign-table.hover tbody tr:nth-of-type(even):hover {
  background: rgba(213,164,74,.085) !important;
}


/* Tableau sponsor : bordures intégrées au thème sombre */
.salle-container.sponsor-page .sponsor-campaign-table {
  border: 1px solid rgba(213,164,74,.28) !important;
  border-collapse: collapse !important;
}
.salle-container.sponsor-page .sponsor-campaign-table th,
.salle-container.sponsor-page .sponsor-campaign-table td {
  border-color: rgba(213,164,74,.18) !important;
  border-left: 0 !important;
  border-right: 0 !important;
}
.salle-container.sponsor-page .sponsor-campaign-table thead th {
  border-bottom: 1px solid rgba(213,164,74,.34) !important;
}


/* Correction finale du tableau sponsor : aucune bordure Foundation blanche */
.salle-container.sponsor-page .sponsor-campaign-table-wrap {
  border: 1px solid rgba(213,164,74,.34) !important;
}
.salle-container.sponsor-page table.sponsor-campaign-table {
  border: 0 !important;
  outline: 0 !important;
  box-shadow: none !important;
}
.salle-container.sponsor-page table.sponsor-campaign-table tr,
.salle-container.sponsor-page table.sponsor-campaign-table th,
.salle-container.sponsor-page table.sponsor-campaign-table td {
  border-left: 0 !important;
  border-right: 0 !important;
  outline: 0 !important;
  box-shadow: none !important;
}
.salle-container.sponsor-page table.sponsor-campaign-table th,
.salle-container.sponsor-page table.sponsor-campaign-table td {
  border-top: 0 !important;
  border-bottom: 1px solid rgba(213,164,74,.18) !important;
}
.salle-container.sponsor-page table.sponsor-campaign-table tbody tr:last-child td {
  border-bottom: 0 !important;
}

/* Le HUD sponsor reprend exactement la flèche compacte des sous-menus staff. */
.hud-sponsor .dds-staff-menu-trigger .dds-staff-caret,
.hud-sponsor .dds-staff-menu-trigger:hover .dds-staff-caret,
.hud-sponsor .dds-staff-menu-trigger:focus .dds-staff-caret,
.hud-sponsor .dds-staff-menu-trigger.is-active .dds-staff-caret {
  position: absolute;
  right: 7px;
  bottom: 6px;
  font-size: .62rem;
  line-height: 1;
  opacity: .72;
  transform: none;
}


/* Campagnes sponsor : lien principal conservé et actions uniformisées */
.hud-sponsor .dds-sponsor-campaign-menu {
  position: relative;
  display: flex;
  align-items: stretch;
}
.hud-sponsor .dds-sponsor-campaign-link {
  flex: 1 1 auto;
  padding-right: 2rem;
}
.hud-sponsor .dds-sponsor-campaign-toggle {
  position: absolute;
  right: 0;
  top: 0;
  width: 2rem;
  height: 100%;
  margin: 0;
  padding: 0;
  border: 0;
  background: transparent;
  color: inherit;
  cursor: pointer;
}
.hud-sponsor .dds-sponsor-campaign-toggle .dds-staff-caret,
.hud-sponsor .dds-sponsor-campaign-toggle:hover .dds-staff-caret,
.hud-sponsor .dds-sponsor-campaign-toggle:focus .dds-staff-caret,
.hud-sponsor .dds-sponsor-campaign-toggle.is-active .dds-staff-caret {
  position: static;
  display: inline-block;
  font-size: .62rem;
  line-height: 1;
  opacity: .72;
  transform: none;
}
.salle-container.sponsor-page .sponsor-campaign-table .sponsor-icon-button,
.salle-container.sponsor-page .sponsor-campaign-table button.sponsor-icon-button,
.salle-container.sponsor-page .sponsor-campaign-table a.sponsor-icon-button {
  box-sizing: border-box !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 36px !important;
  min-width: 36px !important;
  max-width: 36px !important;
  height: 36px !important;
  min-height: 36px !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 1px solid rgba(255,255,255,.14) !important;
  border-radius: 8px !important;
  background: rgba(255,255,255,.045) !important;
  color: rgba(244,231,207,.64) !important;
  font-size: .9rem !important;
  line-height: 1 !important;
  vertical-align: middle !important;
  box-shadow: none !important;
}
.salle-container.sponsor-page .sponsor-campaign-table .sponsor-icon-button:hover,
.salle-container.sponsor-page .sponsor-campaign-table .sponsor-icon-button:focus {
  border-color: rgba(213,164,74,.35) !important;
  background: rgba(213,164,74,.09) !important;
  color: #fff !important;
}

/* Correctif HUD sponsor : la tuile reste sur une ligne et le déclencheur reprend le caret staff. */
.hud-sponsor .dds-sponsor-campaign-menu {
  position: relative;
  min-width: 0;
  display: block;
}
.hud-sponsor .dds-sponsor-campaign-menu > .dds-sponsor-campaign-link {
  box-sizing: border-box;
  width: 100%;
  height: 100%;
  padding-right: 1.35rem;
}
.hud-sponsor .dds-sponsor-campaign-link span {
  white-space: nowrap;
}
.hud-sponsor .dds-sponsor-campaign-toggle.dds-staff-menu-trigger {
  position: absolute;
  z-index: 2;
  right: 0;
  bottom: 0;
  top: auto;
  width: 1.35rem;
  height: 1.35rem;
  min-width: 0;
  margin: 0;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  color: inherit;
  box-shadow: none;
  line-height: 1;
}
.hud-sponsor .dds-sponsor-campaign-toggle.dds-staff-menu-trigger .dds-staff-caret {
  position: absolute;
  right: 7px;
  bottom: 6px;
  font-size: .62rem;
  line-height: 1;
  opacity: .72;
  transform: none;
}
.hud-sponsor .dds-sponsor-campaign-toggle.dds-staff-menu-trigger:hover,
.hud-sponsor .dds-sponsor-campaign-toggle.dds-staff-menu-trigger:focus,
.hud-sponsor .dds-sponsor-campaign-toggle.dds-staff-menu-trigger.is-active {
  border: 0;
  background: transparent;
  color: inherit;
  box-shadow: none;
}

/* Correctif tableau sponsor : neutralisation complète des bordures claires Foundation. */
.salle-container.sponsor-page .sponsor-campaign-table-wrap {
  border: 1px solid rgba(213,164,74,.34) !important;
  background: rgba(13,9,7,.56) !important;
  box-shadow: none !important;
}
.salle-container.sponsor-page table.sponsor-campaign-table,
.salle-container.sponsor-page table.sponsor-campaign-table thead,
.salle-container.sponsor-page table.sponsor-campaign-table tbody,
.salle-container.sponsor-page table.sponsor-campaign-table tfoot,
.salle-container.sponsor-page table.sponsor-campaign-table tr,
.salle-container.sponsor-page table.sponsor-campaign-table th,
.salle-container.sponsor-page table.sponsor-campaign-table td {
  border-left: 0 !important;
  border-right: 0 !important;
  border-top: 0 !important;
  outline: 0 !important;
  box-shadow: none !important;
}
.salle-container.sponsor-page table.sponsor-campaign-table,
.salle-container.sponsor-page table.sponsor-campaign-table thead,
.salle-container.sponsor-page table.sponsor-campaign-table tbody,
.salle-container.sponsor-page table.sponsor-campaign-table tfoot {
  border: 0 !important;
}
.salle-container.sponsor-page table.sponsor-campaign-table th,
.salle-container.sponsor-page table.sponsor-campaign-table td {
  border-bottom: 1px solid rgba(213,164,74,.18) !important;
}
.salle-container.sponsor-page table.sponsor-campaign-table tbody tr:last-child td {
  border-bottom: 0 !important;
}

/* HUD sponsor : largeur et centrage de la tuile Mes campagnes. */
.hud-sponsor .dds-sponsor-nav {
  grid-template-columns: minmax(0, 1fr) minmax(150px, 1.3fr) minmax(0, 1fr) minmax(0, 1fr) minmax(0, 1fr);
}
.hud-sponsor .dds-sponsor-campaign-menu > .dds-sponsor-campaign-link {
  padding-left: 1.35rem;
  padding-right: 1.35rem;
  justify-content: center;
  text-align: center;
}
.hud-sponsor .dds-sponsor-campaign-link span {
  display: block;
  min-width: 0;
  white-space: nowrap;
  text-align: center;
}

/* Harmonisation des pages de l’espace sponsor */
.sponsor-workspace .sponsor-panel,
.sponsor-workspace .sponsor-form,
.sponsor-workspace .sponsor-table-panel,
.sponsor-workspace .sponsor-price-box {
  border:1px solid rgba(197,151,72,.45);
  border-radius:.35rem;
  background:linear-gradient(180deg,rgba(36,28,43,.94),rgba(18,15,23,.96));
  box-shadow:inset 0 0 0 2px rgba(0,0,0,.22);
  color:#f4e7cf;
}
.sponsor-workspace .sponsor-form,
.sponsor-workspace .sponsor-table-panel,
.sponsor-workspace .sponsor-price-box { padding:1.2rem; }
.sponsor-workspace .sponsor-form h3,
.sponsor-workspace .sponsor-table-panel h3,
.sponsor-workspace .sponsor-price-box strong { color:#f6d889; }
.sponsor-workspace label { color:#f4e7cf; }
.sponsor-workspace input,
.sponsor-workspace select,
.sponsor-workspace textarea {
  background:#17121d;
  border:1px solid #73552f;
  color:#fff;
  box-shadow:none;
}
.sponsor-workspace input:focus,
.sponsor-workspace select:focus,
.sponsor-workspace textarea:focus {
  border-color:#d6b468;
  background:#1d1724;
  box-shadow:0 0 0 1px rgba(214,180,104,.25);
}
.sponsor-workspace .help-text { color:rgba(244,231,207,.62); }
.sponsor-workspace .button.hollow {
  border-color:rgba(214,180,104,.65);
  color:#f1cf83;
}
.sponsor-workspace .button.hollow:hover,
.sponsor-workspace .button.hollow:focus {
  border-color:#f1cf83;
  background:rgba(214,180,104,.1);
  color:#fff1ce;
}
.sponsor-workspace .callout {
  border-radius:.3rem;
  border-width:1px;
  background:rgba(14,12,18,.92);
  color:#f4e7cf;
}
.sponsor-workspace .callout.success { border-color:rgba(91,180,112,.65); }
.sponsor-workspace .callout.alert { border-color:rgba(211,84,84,.72); }
.sponsor-workspace .callout.warning { border-color:rgba(214,180,104,.72); }
.sponsor-workspace table.sponsor-shared-table,
.sponsor-workspace table.sponsor-stats-table {
  width:100%;
  margin:0;
  border:0 !important;
  background:transparent !important;
  border-collapse:collapse;
}
.sponsor-workspace table.sponsor-shared-table thead,
.sponsor-workspace table.sponsor-stats-table thead {
  border:0 !important;
  background:rgba(201,92,255,.12) !important;
}
.sponsor-workspace table.sponsor-shared-table tbody,
.sponsor-workspace table.sponsor-stats-table tbody,
.sponsor-workspace table.sponsor-shared-table tr,
.sponsor-workspace table.sponsor-stats-table tr {
  border:0 !important;
  background:transparent;
}
.sponsor-workspace table.sponsor-shared-table th,
.sponsor-workspace table.sponsor-shared-table td,
.sponsor-workspace table.sponsor-stats-table th,
.sponsor-workspace table.sponsor-stats-table td {
  border:0 !important;
  border-bottom:1px solid rgba(197,151,72,.22) !important;
  background:transparent !important;
  color:#f4e7cf;
}
.sponsor-workspace table.sponsor-shared-table tbody tr:nth-child(even),
.sponsor-workspace table.sponsor-stats-table tbody tr:nth-child(even) { background:rgba(255,255,255,.018); }
.sponsor-workspace table.sponsor-shared-table tbody tr:hover,
.sponsor-workspace table.sponsor-stats-table tbody tr:hover { background:rgba(213,164,74,.085); }
.sponsor-profile-page .sponsor-form-panel { margin:0; }
.sponsor-profile-page .sponsor-form-panel h3 { margin-top:1.4rem; padding-bottom:.45rem; border-bottom:1px solid rgba(197,151,72,.24); }
.sponsor-profile-page .sponsor-form-panel h3:first-of-type { margin-top:0; }
.sponsor-payment-page .sponsor-price-box { max-width:760px; margin:0 auto; }
.sponsor-dashboard-page .sponsor-table-panel { margin-top:1.25rem; }
.sponsor-result-page { max-width:780px; }
.sponsor-result-page > p:last-child { margin-bottom:0; }

/* Conditions du partenariat sponsor */
.sponsor-conditions-list { display: grid; gap: 1rem; }
.sponsor-condition-card { margin: 0; }
.sponsor-condition-content { margin-top: 1rem; padding-top: 1rem; border-top: 1px solid rgba(214,180,104,.35); }
.sponsor-conditions-acceptance,
.sponsor-payment-form { margin-top: 1rem; }
.sponsor-checkbox-line { display: flex; align-items: flex-start; gap: .75rem; margin-bottom: 1rem; color: inherit; }
.sponsor-checkbox-line input[type="checkbox"] { flex: 0 0 auto; margin-top: .25rem; }
.sponsor-checkbox-line span { line-height: 1.45; }

/* Paiement sponsor : conditions séparées de l’action d’achat */
.sponsor-payment-page .sponsor-price-box,
.sponsor-payment-page .sponsor-payment-form {
  max-width: 760px;
  margin-left: auto;
  margin-right: auto;
}
.sponsor-payment-page .sponsor-payment-form {
  margin-top: 1rem;
}
.sponsor-payment-page .sponsor-payment-conditions {
  margin: 0;
  padding: 1.2rem;
}
.sponsor-payment-page .sponsor-payment-conditions h3 {
  margin: 0 0 .85rem;
  color: #f6d889;
}
.sponsor-payment-page .sponsor-payment-conditions .sponsor-checkbox-line,
.sponsor-payment-page .sponsor-payment-conditions p {
  margin-bottom: 0;
}
.sponsor-payment-page .sponsor-payment-action {
  margin-top: 1rem;
  text-align: center;
}
.sponsor-payment-page .sponsor-payment-action .button {
  margin-bottom: 0;
}
.sponsor-conditions-ok i {
  margin-right: .35rem;
  color: #9ee6a8;
}

/* Acceptation des conditions lors de la soumission d’une campagne */
.sponsor-campaign-conditions {
  margin: 1rem 0;
  padding: .9rem 1rem;
  border: 1px solid rgba(197,151,72,.45);
  border-radius: .35rem;
  background: rgba(18,15,23,.82);
}
.sponsor-publish-inline-form {
  display: inline-flex;
  align-items: center;
  gap: .35rem;
  margin: 0;
}
.sponsor-inline-conditions {
  display: inline-flex;
  align-items: center;
  margin: 0;
}
.sponsor-inline-conditions input[type="checkbox"] {
  width: 1rem;
  height: 1rem;
  margin: 0;
}


/* PATCH 02 — HUD sponsor aligné sur le HUD staff */
.hud.hud-sponsor {
  grid-template-columns: minmax(235px, 1.05fr) minmax(560px, 3.5fr) minmax(86px, .42fr);
}
.hud-sponsor .dds-sponsor-nav {
  grid-template-columns: repeat(5, minmax(0, 1fr));
}
.hud-sponsor .dds-sponsor-brand-link.is-active {
  background: rgba(118,85,46,.18);
}
.hud-sponsor .dds-sponsor-emblem img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  border-radius: 50%;
}
.hud-sponsor .dds-sponsor-brand-copy strong {
  overflow: hidden;
  text-overflow: ellipsis;
}
.hud-sponsor .dds-sponsor-brand-copy span {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.hud-sponsor .dds-sponsor-campaign-menu {
  display: block;
}
.hud-sponsor .dds-sponsor-campaign-menu > .dds-staff-menu-trigger {
  width: 100%;
  height: 100%;
}
.hud-sponsor .dds-sponsor-tools {
  grid-template-columns: 1fr;
}
.hud-sponsor .dds-sponsor-tools .dds-language-menu {
  width: 100%;
}
.hud-sponsor .dds-sponsor-tools .dds-language-button {
  width: 100%;
  height: 100%;
  border: 0;
  border-radius: 0;
}
.sponsor-profile-page textarea[name="sponsor_slogan"] {
  min-height: 86px;
  resize: vertical;
}
@media screen and (max-width: 1050px) {
  .hud.hud-sponsor {
    grid-template-columns: 1fr 96px;
    grid-template-areas: "brand tools" "nav nav";
  }
  .hud-sponsor .dds-sponsor-brand { grid-area: brand; }
  .hud-sponsor .dds-sponsor-nav { grid-area: nav; }
  .hud-sponsor .dds-sponsor-tools { grid-area: tools; }
}
@media screen and (max-width: 650px) {
  .hud.hud-sponsor {
    grid-template-columns: 1fr;
    grid-template-areas: "brand" "nav" "tools";
  }
  .hud-sponsor .dds-sponsor-nav {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
  .hud-sponsor .dds-sponsor-tools { min-height: 76px; }
}

/* ========================================================================== */
/* Harmonisation globale des HUD : menus sans tuiles bordées                  */
/* ========================================================================== */
.hud .dds-main-nav-item,
.hud .dds-player-menu > .dds-main-nav-item,
.hud.hud-pro .dds-main-nav-item,
.hud.hud-staff .dds-staff-menu > .dds-main-nav-item {
  border: 0;
  box-shadow: none;
}

.hud .dds-main-nav-item:hover,
.hud .dds-main-nav-item:focus,
.hud .dds-main-nav-item.is-active,
.hud.hud-pro .dds-main-nav-item:hover,
.hud.hud-pro .dds-main-nav-item:focus,
.hud.hud-pro .dds-main-nav-item.is-active {
  box-shadow: none;
}

.hud-staff .dds-staff-menu-panel a {
  border: 0;
}

.hud-staff .dds-staff-menu-panel a:hover,
.hud-staff .dds-staff-menu-panel a:focus {
  border-color: transparent;
}


.sponsor-admin-panel-footer{margin-top:.85rem;padding-top:.75rem;border-top:1px solid rgba(197,151,72,.2);text-align:right}.sponsor-admin-panel-footer a{font-weight:700}.sponsor-log-count{color:rgba(244,231,207,.72)}.sponsor-pagination{display:flex;justify-content:center;align-items:center;gap:1rem;margin-top:1rem}.sponsor-invoice{max-width:900px;margin:0 auto;padding:2.5rem;background:#fff;color:#222;box-shadow:0 15px 40px rgba(0,0,0,.3)}.sponsor-invoice header{display:flex;justify-content:space-between;gap:2rem;padding-bottom:1.5rem;border-bottom:2px solid #222}.sponsor-invoice header>div{display:flex;flex-direction:column}.sponsor-invoice h1{margin:0 0 1rem;color:#222}.sponsor-invoice-customer{display:flex;flex-direction:column;align-items:flex-start;margin:2rem 0}.sponsor-invoice table{width:100%;border-collapse:collapse;background:#fff;color:#222}.sponsor-invoice th,.sponsor-invoice td{padding:.85rem;border:1px solid #bbb;text-align:left;color:#222;background:#fff}.sponsor-invoice-total{display:flex;justify-content:flex-end;gap:2rem;margin-top:1.5rem;font-size:1.2rem}.sponsor-invoice footer{margin-top:3rem;padding-top:1rem;border-top:1px solid #ccc;color:#666;font-size:.85rem}@media print{body{background:#fff!important}.no-print,.hud,.footer-container,footer.site-footer{display:none!important}.sponsor-invoice-page,.salle-container{max-width:none!important;margin:0!important;padding:0!important;background:#fff!important}.sponsor-invoice{box-shadow:none!important;max-width:none!important}}

/* Catalogue élève : recherche repliable, couvertures dépliables et pagination */
.dds-biblio-recherche-deroulante{margin:1rem 0;background:rgba(17,11,8,.9);border:1px solid rgba(216,175,94,.48);border-radius:.75rem;overflow:hidden}
.dds-biblio-recherche-deroulante>summary{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.9rem 1rem;color:#f4dfad;font-weight:800;cursor:pointer;list-style:none}
.dds-biblio-recherche-deroulante>summary::-webkit-details-marker{display:none}
.dds-biblio-recherche-deroulante>summary span{display:flex;align-items:center;gap:.55rem}
.dds-biblio-recherche-deroulante[open] .dds-biblio-chevron{transform:rotate(180deg)}
.dds-biblio-chevron{transition:transform .2s ease}
.dds-biblio-recherche-deroulante .dds-biblio-filtres{margin:0;border:0;border-top:1px solid rgba(216,175,94,.28);border-radius:0}
.dds-biblio-age-info{display:flex;align-items:flex-start;gap:.55rem}.dds-biblio-age-info a{text-decoration:underline;font-weight:800}
.dds-ouvrages-grille{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));align-items:start}
.dds-ouvrage-card{display:block;min-height:0;overflow:visible;background:transparent;border:0;border-radius:.65rem}
.dds-ouvrage-card>summary{list-style:none;cursor:pointer;position:relative;width:100%;aspect-ratio:2/3;min-height:0;max-height:none;border:1px solid rgba(216,175,94,.42);border-radius:.65rem;overflow:hidden;box-shadow:0 .35rem .9rem rgba(0,0,0,.28)}
.dds-ouvrage-card>summary::-webkit-details-marker{display:none}
.dds-ouvrage-card>summary img{width:100%;height:100%;object-fit:cover}
.dds-ouvrage-card>summary>i{font-size:3rem}
.dds-ouvrage-couverture-indice{position:absolute;right:.45rem;bottom:.45rem;display:grid;place-items:center;width:2rem;height:2rem;border-radius:50%;background:rgba(15,10,7,.88);color:#f4dfad;box-shadow:0 1px 4px rgba(0,0,0,.45)}
.dds-ouvrage-card[open] .dds-ouvrage-couverture-indice i{transform:rotate(180deg)}
.dds-ouvrage-card .dds-ouvrage-contenu{display:none;margin-top:.55rem;padding:.85rem;background:rgba(15,10,7,.94);border:1px solid rgba(216,175,94,.42);border-radius:.65rem}
.dds-ouvrage-card[open]{grid-column:span 2}
.dds-ouvrage-card[open] .dds-ouvrage-contenu{display:flex}
.dds-biblio-pagination{display:flex;align-items:center;justify-content:center;gap:1rem;flex-wrap:wrap;margin:1.25rem 0}
.dds-biblio-pagination a,.dds-biblio-pagination span{display:inline-flex;align-items:center;gap:.4rem;padding:.6rem .85rem;border-radius:.4rem;background:rgba(17,11,8,.9);border:1px solid rgba(216,175,94,.4);color:#f4dfad}
@media(max-width:640px){.dds-ouvrages-grille{grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem}.dds-ouvrage-card[open]{grid-column:1/-1}.dds-ouvrage-card>summary{min-height:0;max-height:none}.dds-ouvrage-card[open] .dds-ouvrage-contenu{padding:.75rem}}

/* PATCH 11 — accueil Bibliothèque type Netflix et fiches en modal */
.dds-bibliotheque-netflix{max-width:1400px;padding-bottom:2rem}.dds-biblio-consultation-bar{display:flex;justify-content:flex-end;margin-bottom:.8rem}.dds-biblio-terminer{display:inline-flex;align-items:center;gap:.5rem;padding:.55rem .8rem;border-radius:.45rem;background:rgba(17,11,8,.82);color:#f4dfad;font-weight:800}.dds-biblio-netflix-hero{min-height:220px;display:flex;align-items:flex-end;padding:2rem;margin-bottom:1rem;border-radius:1rem;background:linear-gradient(90deg,rgba(10,7,5,.96),rgba(10,7,5,.35)),radial-gradient(circle at 80% 30%,rgba(216,175,94,.24),transparent 40%);overflow:hidden}.dds-biblio-netflix-kicker{text-transform:uppercase;letter-spacing:.12em;color:#d8af5e;font-weight:900;font-size:.78rem}.dds-biblio-netflix-hero h1{margin:.25rem 0 .4rem;font-size:clamp(2rem,5vw,4rem)}.dds-biblio-netflix-hero p{max-width:620px;margin:0;color:#eadfc8}.dds-biblio-rangee{margin:1.5rem 0}.dds-biblio-rangee h2,.dds-biblio-catalogue-section h2{color:#fff;font-size:1.35rem;margin:0 0 .7rem}.dds-biblio-rangee-scroll{display:flex;gap:.8rem;overflow-x:auto;padding:.2rem .15rem 1rem;scroll-snap-type:x proximity}.dds-biblio-cover-card{flex:0 0 155px;display:flex;flex-direction:column;gap:.45rem;padding:0;border:0!important;background:transparent!important;color:#fff;text-align:left;cursor:pointer;scroll-snap-align:start}.dds-biblio-cover-card img,.dds-biblio-cover-placeholder{width:100%;aspect-ratio:2/3;object-fit:cover;border-radius:.55rem;box-shadow:0 .45rem 1rem rgba(0,0,0,.38);transition:transform .18s ease,box-shadow .18s ease}.dds-biblio-cover-card:hover img,.dds-biblio-cover-card:hover .dds-biblio-cover-placeholder,.dds-biblio-cover-card:focus img,.dds-biblio-cover-card:focus .dds-biblio-cover-placeholder{transform:scale(1.045);box-shadow:0 .7rem 1.5rem rgba(0,0,0,.52)}.dds-biblio-cover-card>span:last-child{font-size:.88rem;font-weight:800;line-height:1.25}.dds-biblio-cover-placeholder{display:grid;place-items:center;background:#1c120d;color:#d8af5e;font-size:3rem}.dds-biblio-genre-card{flex:0 0 190px;min-height:100px;display:flex;align-items:center;gap:.75rem;padding:1rem;border-radius:.65rem;background:linear-gradient(135deg,#5b341e,#24150d);color:#fff;font-weight:900}.dds-biblio-genre-card i{font-size:1.5rem;color:#d8af5e}.dds-biblio-section-heading{display:flex;justify-content:space-between;align-items:baseline;gap:1rem;margin-bottom:.75rem}.dds-biblio-section-heading span{color:#d8af5e}.dds-ouvrages-grille-modal{grid-template-columns:repeat(auto-fill,minmax(145px,1fr));gap:1rem}.dds-ouvrages-grille-modal .dds-biblio-cover-card{width:100%;min-width:0;flex-basis:auto}.dds-biblio-modal{width:min(900px,calc(100vw - 2rem));max-height:90vh;padding:0;border:1px solid rgba(216,175,94,.55);border-radius:.85rem;background:#120c08;color:#fff;box-shadow:0 1rem 4rem rgba(0,0,0,.7)}.dds-biblio-modal::backdrop{background:rgba(0,0,0,.78);backdrop-filter:blur(3px)}.dds-biblio-modal-fermer{position:absolute;z-index:2;right:.7rem;top:.7rem;width:2.4rem;height:2.4rem;display:grid;place-items:center;padding:0!important;border:0!important;border-radius:50%;background:rgba(0,0,0,.78)!important;color:#fff!important}.dds-biblio-modal-grid{display:grid;grid-template-columns:minmax(220px,320px) 1fr;min-height:420px}.dds-biblio-modal-cover{display:flex;align-items:center;justify-content:center;background:#080503;overflow:hidden}.dds-biblio-modal-cover img{width:100%;height:100%;object-fit:cover}.dds-biblio-modal-cover>i{font-size:6rem;color:#d8af5e}.dds-biblio-modal-contenu{padding:2.2rem 2rem;overflow:auto}.dds-biblio-modal-contenu h2{font-size:2rem;margin:.65rem 0 .15rem}.dds-biblio-modal-contenu p{line-height:1.6}.dds-biblio-modal-contenu .button{display:inline-flex;align-items:center;gap:.45rem;margin-top:.8rem}.dds-bibliotheque-tabs,.dds-bibliotheque-entete{display:none!important}
@media(max-width:700px){.dds-biblio-netflix-hero{min-height:180px;padding:1.25rem}.dds-biblio-cover-card{flex-basis:125px}.dds-biblio-modal-grid{grid-template-columns:1fr}.dds-biblio-modal-cover{max-height:42vh}.dds-biblio-modal-contenu{padding:1.25rem}.dds-ouvrages-grille-modal{grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem}}

/* Patch 12 — accueil Bibliothèque plus compact */
.dds-bibliotheque-netflix .dds-biblio-netflix-hero{
  min-height:120px;
  padding:1rem 1.25rem;
  margin-bottom:.65rem;
}
.dds-bibliotheque-netflix .dds-biblio-netflix-hero h1{
  font-size:clamp(1.45rem,3vw,2.35rem);
  margin:.15rem 0 .2rem;
}
.dds-bibliotheque-netflix .dds-biblio-netflix-hero p{
  font-size:.92rem;
}
.dds-bibliotheque-netflix .dds-biblio-rangee{
  margin:.8rem 0;
}
.dds-bibliotheque-netflix .dds-biblio-rangee h2,
.dds-bibliotheque-netflix .dds-biblio-catalogue-section h2{
  font-size:1.05rem;
  margin-bottom:.4rem;
}
.dds-bibliotheque-netflix .dds-biblio-rangee-scroll{
  gap:.55rem;
  padding:.1rem .1rem .55rem;
}
.dds-bibliotheque-netflix .dds-biblio-cover-card{
  flex-basis:105px;
  gap:.25rem;
}
.dds-bibliotheque-netflix .dds-biblio-cover-card>span:last-child{
  font-size:.75rem;
  line-height:1.15;
}
.dds-bibliotheque-netflix .dds-biblio-genre-card{
  flex-basis:145px;
  min-height:62px;
  padding:.65rem .75rem;
  font-size:.82rem;
}
.dds-bibliotheque-netflix .dds-biblio-genre-card i{
  font-size:1.1rem;
}
.dds-bibliotheque-netflix .dds-ouvrages-grille-modal{
  grid-template-columns:repeat(auto-fill,minmax(105px,1fr));
  gap:.65rem;
}
@media(max-width:700px){
  .dds-bibliotheque-netflix .dds-biblio-netflix-hero{min-height:100px;padding:.8rem 1rem}
  .dds-bibliotheque-netflix .dds-biblio-cover-card{flex-basis:88px}
  .dds-bibliotheque-netflix .dds-biblio-genre-card{flex-basis:125px;min-height:54px}
  .dds-bibliotheque-netflix .dds-ouvrages-grille-modal{grid-template-columns:repeat(3,minmax(0,1fr));gap:.5rem}
}

/* Patch 13 — couvertures sans cadre réducteur et modal complet */
.dds-bibliotheque-netflix .dds-biblio-cover-card{
  padding:0!important;
  border:0!important;
  border-radius:0!important;
  background:transparent!important;
  box-shadow:none!important;
  overflow:visible;
}
.dds-bibliotheque-netflix .dds-biblio-cover-card img,
.dds-bibliotheque-netflix .dds-biblio-cover-placeholder{
  display:block;
  width:100%;
  border-radius:0;
  box-shadow:none;
}
.dds-bibliotheque-netflix .dds-biblio-cover-card:hover img,
.dds-bibliotheque-netflix .dds-biblio-cover-card:focus img,
.dds-bibliotheque-netflix .dds-biblio-cover-card:hover .dds-biblio-cover-placeholder,
.dds-bibliotheque-netflix .dds-biblio-cover-card:focus .dds-biblio-cover-placeholder{
  box-shadow:none;
}
.dds-biblio-modal{width:min(1050px,calc(100vw - 2rem));}
.dds-biblio-modal-grid{grid-template-columns:minmax(250px,360px) 1fr;}
.dds-biblio-modal-cover{align-self:start;background:transparent;padding:1.25rem 0 1.25rem 1.25rem;}
.dds-biblio-modal-cover img{width:100%;height:auto;max-height:78vh;object-fit:contain;}
.dds-biblio-modal-resume,.dds-biblio-modal-description{margin:1rem 0;line-height:1.6;}
.dds-biblio-modal-meta{display:flex;flex-wrap:wrap;gap:.4rem;margin:1rem 0;}
.dds-biblio-modal-meta span{padding:.3rem .55rem;border-radius:999px;background:rgba(216,175,94,.13);color:#f1d89c;font-size:.82rem;}
.dds-biblio-modal-cw{margin:1rem 0;padding:.75rem;border-left:3px solid #d8af5e;background:rgba(216,175,94,.08);}
.dds-biblio-modal-infos{display:grid;grid-template-columns:max-content 1fr;gap:.35rem .8rem;margin:1rem 0;}
.dds-biblio-modal-infos dt{font-weight:800;color:#d8af5e;}.dds-biblio-modal-infos dd{margin:0;}
.dds-biblio-modal-acces{display:flex;flex-wrap:wrap;gap:.6rem;margin-top:1rem;}
.dds-biblio-modal-acces span{display:inline-flex;align-items:center;gap:.4rem;padding:.55rem .7rem;border-radius:.45rem;background:rgba(255,255,255,.07);}
@media(max-width:700px){.dds-biblio-modal-grid{grid-template-columns:1fr}.dds-biblio-modal-cover{padding:1rem 1rem 0}.dds-biblio-modal-cover img{max-height:48vh}.dds-biblio-modal-infos{grid-template-columns:1fr}.dds-biblio-modal-infos dt{margin-top:.4rem}}

/* Patch 14 — carrousels larges, recherche en modal et navigation personnelle dans la Chambre */
.dds-bibliotheque-netflix{position:relative}
.dds-biblio-recherche-bouton{position:absolute;right:1rem;top:3.35rem;z-index:4;width:2.75rem;height:2.75rem;display:grid;place-items:center;padding:0!important;border:0!important;border-radius:50%;background:rgba(12,8,6,.88)!important;color:#f4dfad!important;font-size:1.05rem;box-shadow:0 .35rem 1rem rgba(0,0,0,.35)}
.dds-biblio-recherche-modal{width:min(760px,calc(100vw - 2rem));max-height:88vh;padding:1.5rem;border:1px solid rgba(216,175,94,.55);border-radius:.85rem;background:#120c08;color:#fff;box-shadow:0 1rem 4rem rgba(0,0,0,.7)}
.dds-biblio-recherche-modal::backdrop{background:rgba(0,0,0,.78);backdrop-filter:blur(3px)}
.dds-biblio-recherche-modal h2{margin:0 3rem 1rem 0;color:#fff}
.dds-biblio-rangee-entete{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:.4rem}
.dds-biblio-rangee-entete h2{margin:0!important}
.dds-biblio-carousel-actions{display:flex;gap:.35rem}
.dds-biblio-carousel-actions button{width:2rem;height:2rem;display:grid;place-items:center;padding:0!important;border:0!important;border-radius:50%;background:rgba(17,11,8,.86)!important;color:#f4dfad!important}
.dds-bibliotheque-netflix .dds-biblio-rangee-scroll{scroll-behavior:smooth;scroll-snap-type:x mandatory;scrollbar-width:thin}
.dds-bibliotheque-netflix .dds-biblio-cover-card{flex:0 0 clamp(180px,15vw,240px);scroll-snap-align:start}
.dds-bibliotheque-netflix .dds-biblio-cover-card img,.dds-bibliotheque-netflix .dds-biblio-cover-placeholder{aspect-ratio:2/3;object-fit:cover}
.dds-bibliotheque-netflix .dds-biblio-cover-card>span:last-child{font-size:.88rem}
.dds-bibliotheque-netflix .dds-biblio-genre-card{flex:0 0 220px;scroll-snap-align:start}
@media(max-width:700px){.dds-biblio-recherche-bouton{right:.6rem;top:3rem}.dds-bibliotheque-netflix .dds-biblio-cover-card{flex-basis:155px}.dds-biblio-carousel-actions button{width:1.9rem;height:1.9rem}}

/* Patch 16 — catalogue bibliothèque : sections Netflix homogènes */
.dds-biblio-recherche-bouton{position:fixed!important;left:1rem!important;right:auto!important;top:1rem!important;z-index:1100!important;width:3rem!important;height:3rem!important;border-radius:50%!important;box-shadow:0 .4rem 1.2rem rgba(0,0,0,.45)!important}
.dds-biblio-rangee-scroll,.dds-biblio-resultats-scroll{align-items:flex-start}
.dds-bibliotheque-netflix .dds-biblio-cover-card{flex:0 0 clamp(200px,18vw,280px)}
.dds-biblio-modal-acces-actifs{display:flex;flex-direction:column;gap:.6rem;margin:1rem 0}
.dds-biblio-modal-acces-actifs a{display:flex;align-items:center;gap:.55rem;width:fit-content;padding:.7rem .9rem;border-radius:.55rem;background:#6b4828;color:#fff;font-weight:900}
.dds-biblio-modal-acces-actifs a:hover,.dds-biblio-modal-acces-actifs a:focus{background:#805832;color:#fff}
@media(max-width:700px){.dds-biblio-recherche-bouton{left:.6rem!important;top:.6rem!important}.dds-bibliotheque-netflix .dds-biblio-cover-card{flex-basis:170px}}

/* Gazette du Donjon */
.dds-gazette-modal.reveal {
  width: min(760px, calc(100vw - 32px));
  max-height: min(82vh, 760px);
  padding: 0;
  overflow: hidden;
  border: 2px solid #9a6a2f;
  border-radius: 12px;
  background: linear-gradient(180deg, rgba(37, 25, 42, .99), rgba(18, 15, 23, .99));
  color: #f2dfc0;
  box-shadow: 0 18px 60px rgba(0, 0, 0, .72), inset 0 0 0 1px rgba(239, 190, 107, .12);
}

.dds-gazette-modal > h2 {
  margin: 0;
  padding: 18px 58px 16px 22px;
  border-bottom: 1px solid rgba(210, 157, 81, .48);
  background: linear-gradient(90deg, rgba(105, 62, 28, .64), rgba(54, 31, 43, .35));
  color: #f5c978;
  font-family: Georgia, "Times New Roman", serif;
  font-size: 1.65rem;
  text-shadow: 0 2px 3px #000;
}

.dds-gazette-modal > p,
.dds-gazette-list {
  margin: 0;
  padding: 20px 22px 24px;
}

.dds-gazette-list {
  max-height: calc(min(82vh, 760px) - 72px);
  overflow-y: auto;
}

.dds-gazette-entry {
  margin: 0 0 16px;
  padding: 18px;
  border: 1px solid rgba(188, 130, 58, .5);
  border-radius: 9px;
  background: rgba(13, 11, 17, .62);
  box-shadow: inset 0 0 18px rgba(0, 0, 0, .22);
}

.dds-gazette-entry:last-child { margin-bottom: 0; }
.dds-gazette-entry h3 { margin: 0 0 4px; color: #f3c77d; font-family: Georgia, "Times New Roman", serif; }
.dds-gazette-entry time { display: block; margin-bottom: 10px; color: #bda98e; font-size: .82rem; }
.dds-gazette-summary { margin: 0; color: #eadbc6; }
.dds-gazette-details { margin-top: 12px; }
.dds-gazette-details summary { color: #efa94f; font-weight: 700; cursor: pointer; }
.dds-gazette-content { margin-top: 12px; padding-top: 12px; border-top: 1px solid rgba(188, 130, 58, .3); color: #f2e6d5; }
.dds-gazette-content a { color: #ffc86f; }
.dds-gazette-modal .close-button { top: 10px; right: 12px; color: #f4d6a2; }
.dds-gazette-modal .close-button:hover { color: #fff; }

.staff-gazette-page { max-width: 1100px; }
.staff-gazette-card { margin: 22px 0; padding: 20px; border: 1px solid rgba(190, 130, 52, .48); border-radius: 8px; background: rgba(18, 14, 22, .68); }
.staff-gazette-card h3 { color: #efbd6d; }
.staff-gazette-actions { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 16px; }
.staff-gazette-inline-form { margin: 0; }
.staff-gazette-card td small { display: block; margin-top: 5px; color: #cbbda9; }

@media (max-width: 640px) {
  .dds-gazette-modal.reveal { width: calc(100vw - 18px); }
  .dds-gazette-modal > h2 { font-size: 1.3rem; }
  .dds-gazette-list { padding: 14px; }
  .dds-gazette-entry { padding: 14px; }
}

/* CKEditor 5 : contenu lisible et hauteur strictement stable, y compris au focus. */
.ck-editor__main > .ck.ck-editor__editable_inline,
.ck-editor__main > .ck.ck-editor__editable_inline.ck-focused {
  min-height: var(--dds-ckeditor-height, 220px) !important;
  height: var(--dds-ckeditor-height, 220px) !important;
  color: #000 !important;
}

.ck-editor__main > .ck.ck-editor__editable_inline,
.ck-editor__main > .ck.ck-editor__editable_inline * {
  color: #000 !important;
}

/* ========================================================================== */
/* SOCLE VISUEL DDS — apparence commune, sans imposer la mise en page          */
/* Les dimensions et compositions restent gérées par les composants/pages.     */
/* ========================================================================== */
:root {
  --dds-gold: #d8912f;
  --dds-gold-light: #f2bd58;
  --dds-gold-hover: #ffd77d;
  --dds-gold-dark: #6d3d16;
  --dds-panel: rgba(20, 13, 9, .92);
  --dds-border: rgba(216, 145, 47, .55);
  --dds-text: #fff7e8;
  --dds-success: #4d8a52;
  --dds-warning: #b97820;
  --dds-danger: #a73e37;
}

/* Boutons Foundation et boutons de formulaire : apparence seulement. */
.dds-page-content .button,
.dds-page-content button.button,
.dds-page-content input[type="submit"].button,
.dds-page-content input[type="button"].button,
.dds-page-content input[type="reset"].button {
  border-color: var(--dds-gold) !important;
  border-radius: 7px;
  background: linear-gradient(180deg, var(--dds-gold-light), var(--dds-gold)) !important;
  color: #fff !important;
  font-weight: 800;
  text-decoration: none !important;
  text-shadow: 0 1px 2px rgba(0,0,0,.75);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.3), 0 3px 0 var(--dds-gold-dark);
  transition: filter .12s ease, transform .12s ease, box-shadow .12s ease;
}
.dds-page-content .button:hover,
.dds-page-content .button:focus,
.dds-page-content button.button:hover,
.dds-page-content button.button:focus,
.dds-page-content input[type="submit"].button:hover,
.dds-page-content input[type="submit"].button:focus,
.dds-page-content input[type="button"].button:hover,
.dds-page-content input[type="button"].button:focus,
.dds-page-content input[type="reset"].button:hover,
.dds-page-content input[type="reset"].button:focus {
  background: linear-gradient(180deg, var(--dds-gold-hover), #eba43a) !important;
  color: #fff !important;
  filter: brightness(1.06);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.4), 0 4px 0 var(--dds-gold-dark);
}
.dds-page-content .button.secondary,
.dds-page-content .button.hollow {
  border-color: var(--dds-gold) !important;
  background: rgba(35, 23, 15, .94) !important;
  color: #ffe3a2 !important;
}
.dds-page-content .button.success { border-color:#75b47b!important; background:linear-gradient(180deg,#78b77d,var(--dds-success))!important; color:#fff!important; }
.dds-page-content .button.warning { border-color:#dda94d!important; background:linear-gradient(180deg,#e5b65f,var(--dds-warning))!important; color:#fff!important; }
.dds-page-content .button.alert,
.dds-page-content .alert.button { border-color:#d06d65!important; background:linear-gradient(180deg,#d96a61,var(--dds-danger))!important; color:#fff!important; }
.dds-page-content .button.disabled,
.dds-page-content .button[disabled] { opacity:.5; cursor:not-allowed; filter:grayscale(.35); }

/* Tableaux : couleurs communes uniquement, sans modifier leur structure. */
.dds-page-content table { border-color:var(--dds-border); background:rgba(12,8,6,.88); color:var(--dds-text); }
.dds-page-content table thead,
.dds-page-content table tfoot { background:linear-gradient(180deg,rgba(113,69,29,.98),rgba(64,38,21,.98)); color:#ffe4a8; }
.dds-page-content table th { color:#ffe4a8; }
.dds-page-content table th,
.dds-page-content table td { border-color:rgba(216,145,47,.18); }
.dds-page-content table tbody tr:nth-child(even) { background-color:rgba(255,255,255,.035); }
.dds-page-content table.hover tbody tr:hover { background-color:rgba(216,145,47,.14); }

/* Formulaires : palette commune, sans forcer largeur, hauteur ou marges. */
.dds-page-content label { color:var(--dds-text); }
.dds-page-content input:not([type="checkbox"]):not([type="radio"]):not([type="range"]):not([type="color"]):not([type="submit"]):not([type="button"]):not([type="reset"]),
.dds-page-content select,
.dds-page-content textarea {
  border-color:var(--dds-border);
  background-color:rgba(20,14,10,.96);
  color:#fff;
}
.dds-page-content input:focus,
.dds-page-content select:focus,
.dds-page-content textarea:focus { border-color:var(--dds-gold-hover); }

/* Composants Foundation communs. */
.dds-page-content .callout,
.dds-page-content .card { border-color:var(--dds-border); background-color:var(--dds-panel); color:var(--dds-text); }



.dds-ouvrage-reco-ligne{margin:2rem 0 0}
.dds-ouvrage-reco-ligne h2{margin:0 0 .85rem;font-size:1.2rem}
.dds-ouvrage-reco-mosaique{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1.25rem;width:100%}
.dds-ouvrage-reco-couverture{display:block;aspect-ratio:2/3;min-width:0;overflow:hidden;border-radius:.65rem}
.dds-ouvrage-reco-couverture img{display:block;width:100%;height:100%;object-fit:cover}
.dds-ouvrage-reco-couverture span{display:flex;width:100%;height:100%;align-items:center;justify-content:center;font-size:2rem}
@media (max-width:639px){
  .dds-ouvrage-reco-mosaique{grid-template-columns:repeat(2,minmax(0,1fr));gap:.8rem}
}
