/* Generated by deployment/build-assets.php — do not edit directly. */

/* source: assets/css/main.css */
*,
*::before,
*::after{
    box-sizing:border-box;
}

:root{

    /* Couleurs */

    --primary:#7b2d43;
    --primary-dark:#5f2233;
    --primary-light:#d96c75;

    --background:#f8f4ef;
    --surface:#ffffff;

    --text:#2b2522;
    --text-light:#766b66;

    --border:#eaded8;

    --success:#1f8a4c;
    --warning:#9a5a00;
    --danger:#d62828;

    /* Rayons */

    --radius-small:16px;
    --radius:22px;
    --radius-large:30px;

    /* Ombres */

    --shadow-small:0 8px 20px rgba(0,0,0,.06);
    --shadow:0 12px 35px rgba(0,0,0,.08);
    --shadow-large:0 24px 55px rgba(0,0,0,.14);

    /* Animation */

    --transition:.22s ease;

}

html{

    scroll-behavior:smooth;

}

body{

    margin:0;

    background:var(--background);

    color:var(--text);

    font-family:"Segoe UI",Arial,sans-serif;

    line-height:1.55;

}

img{

    display:block;

    max-width:100%;

}

.container{

    width:min(1180px,100% - 40px);

    margin:auto;

}

h1,h2,h3,h4,h5,h6{

    margin:0;

    color:var(--primary);

    font-weight:800;

}

h1{

    font-size:42px;

    margin-bottom:18px;

}

h2{

    font-size:30px;

}

p{

    margin:0;

}

/* ================================================= */

.card{

    background:var(--surface);

    border-radius:var(--radius-large);

    border:1px solid rgba(123,45,67,.08);

    box-shadow:var(--shadow);

}

.card-header{

    padding:26px 26px 0;

}

.card-body{

    padding:26px;

}

.card-footer{

    padding:0 26px 26px;

}

/* ================================================= */

.btn{

    display:inline-flex;

    align-items:center;

    justify-content:center;

    gap:8px;

    padding:13px 22px;

    border:none;

    border-radius:999px;

    cursor:pointer;

    font-weight:800;

    text-decoration:none;

    transition:var(--transition);

}

.btn:hover{

    transform:translateY(-2px);

}

.btn-primary{

    background:linear-gradient(
        135deg,
        var(--primary),
        var(--primary-light)
    );

    color:white;

}

.btn-secondary{

    background:white;

    color:var(--primary);

    border:1px solid var(--border);

}

.btn-danger{

    background:#ffe8e8;

    color:var(--danger);

}

.btn-success{

    background:#e7f7ee;

    color:var(--success);

}

/* Compatibilité */

.btn-main,
.btn-small,
button{

    background:linear-gradient(
        135deg,
        var(--primary),
        var(--primary-light)
    );

    color:white;

    border:none;

    border-radius:999px;

    padding:12px 20px;

    font-weight:800;

    cursor:pointer;

    transition:var(--transition);

}

.btn-main:hover,
.btn-small:hover,
button:hover{

    transform:translateY(-2px);

    box-shadow:var(--shadow);

}

/* ================================================= */

input,
textarea,
select{

    width:100%;

    padding:13px 15px;

    border:1px solid var(--border);

    border-radius:16px;

    background:white;

    font-size:16px;

    font-family:inherit;

    transition:var(--transition);

}

input:focus,
textarea:focus,
select:focus{

    outline:none;

    border-color:var(--primary);

    box-shadow:0 0 0 4px rgba(123,45,67,.12);

}

label{

    display:block;

    margin-bottom:8px;

    font-weight:700;

}

/* ================================================= */

.alert{

    padding:14px 18px;

    border-radius:16px;

    margin:18px 0;

    font-weight:700;

}

.alert.success{

    background:#e6f8ed;

    color:#146b39;

}

.alert.error{

    background:#ffe5e5;

    color:#9b1c1c;

}

.badge{

    display:inline-flex;

    align-items:center;

    justify-content:center;

    padding:4px 10px;

    border-radius:999px;

    background:var(--danger);

    color:white;

    font-size:12px;

    font-weight:800;

}

/* ================================================= */

.footer{

    margin-top:80px;

    padding:36px;

    text-align:center;

    background:white;

    color:var(--text-light);

}

.footer a{

    color:var(--primary);

    text-decoration:none;

    font-weight:700;

}

/* ================================================= */

@media(max-width:900px){

    h1{

        font-size:34px;

    }

    h2{

        font-size:26px;

    }

    .container{

        width:min(100% - 28px);

    }

}

/* source: assets/css/layout-premium.css */
.site-header-v3 {
  position: sticky;
  top: 0;
  z-index: 100;
  background: rgba(255,255,255,.88);
  backdrop-filter: blur(18px);
  border-bottom: 1px solid rgba(123,45,67,.10);
  box-shadow: var(--shadow-small);
}

.site-header-inner {
  max-width: 1180px;
  margin: auto;
  padding: 14px 24px;
  display: grid;
  grid-template-columns: auto 1fr auto;
  gap: 22px;
  align-items: center;
}

.site-logo-v3,
.site-footer-logo {
  color: var(--primary);
  text-decoration: none;
  font-size: 30px;
  font-weight: 950;
  letter-spacing: -1px;
  white-space: nowrap;
}

.site-logo-v3 span,
.site-footer-logo span {
  color: var(--primary-light);
}

.site-nav-v3 {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  flex-wrap: wrap;
}

.site-nav-v3 a {
  position: relative;
  color: #443a36;
  text-decoration: none;
  font-weight: 850;
  padding: 10px 13px;
  border-radius: 999px;
  transition: var(--transition);
}

.site-nav-v3 a:hover {
  background: #f8edf0;
  color: var(--primary);
}

.nav-message-link {
  display: inline-flex;
  align-items: center;
  gap: 6px;
}

.nav-message-badge {
  min-width: 21px;
  height: 21px;
  padding: 0 7px;
  border-radius: 999px;
  background: var(--danger);
  color: white;
  font-size: 12px;
  font-weight: 950;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

.site-user-v3 {
  display: flex;
  align-items: center;
  gap: 11px;
  padding: 7px 10px;
  border-radius: 999px;
  background: var(--surface);
  box-shadow: var(--shadow-small);
  border: 1px solid rgba(123,45,67,.08);
}

.site-user-v3 img,
.site-user-avatar-v3 {
  width: 42px;
  height: 42px;
  border-radius: 50%;
}

.site-user-v3 img {
  object-fit: cover;
}

.site-user-avatar-v3 {
  background: #f3eeee;
  display: flex;
  align-items: center;
  justify-content: center;
}

.site-user-v3 strong {
  display: block;
  font-size: 14px;
  color: var(--primary);
  line-height: 1.1;
}

.site-user-v3 a {
  font-size: 12px;
  color: var(--text-light);
  text-decoration: none;
  font-weight: 800;
}

.site-user-v3 a:hover {
  color: var(--danger);
}

.site-footer-v3 {
  margin-top: 90px;
  background:
    radial-gradient(circle at top right, rgba(217,108,117,.18), transparent 34%),
    var(--surface);
  border-top: 1px solid rgba(123,45,67,.10);
}

.site-footer-inner {
  max-width: 1180px;
  margin: auto;
  padding: 42px 24px;
  display: flex;
  justify-content: space-between;
  gap: 28px;
  align-items: flex-start;
}

.site-footer-brand p {
  max-width: 430px;
  color: var(--text-light);
  font-weight: 700;
  line-height: 1.55;
  margin-top: 12px;
}

.site-footer-links {
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.site-footer-links a {
  color: var(--primary);
  text-decoration: none;
  font-weight: 850;
}

.site-footer-links a:hover {
  color: var(--primary-light);
}

.site-footer-bottom {
  text-align: center;
  padding: 18px;
  color: var(--text-light);
  font-weight: 700;
  border-top: 1px solid rgba(123,45,67,.08);
}

@media(max-width: 950px) {
  .site-header-inner {
    grid-template-columns: 1fr;
    text-align: center;
  }

  .site-nav-v3 {
    justify-content: center;
  }

  .site-user-v3 {
    justify-content: center;
    width: fit-content;
    margin: auto;
  }

  .site-footer-inner {
    flex-direction: column;
  }
}

@media(max-width: 560px) {
  .site-header-inner {
    padding: 12px 16px;
  }

  .site-nav-v3 a {
    font-size: 14px;
    padding: 8px 10px;
  }

  .site-user-v3 {
    border-radius: 20px;
  }
}

/* source: assets/css/accueil-premium.css */
.signature-hero {
  margin-top: 30px;
  min-height: 760px;
  position: relative;
  overflow: hidden;
  border-radius: 42px;
  padding: 58px;
  color: white;
  background:
    linear-gradient(
      90deg,
      rgba(25,12,18,.82) 0%,
      rgba(25,12,18,.62) 38%,
      rgba(25,12,18,.25) 68%,
      rgba(25,12,18,.10) 100%
    ),
    url("../img/lycoris-hero-premium.webp") center / cover no-repeat;
  box-shadow: 0 28px 70px rgba(123,45,67,.30);
}

.signature-hero::before {
  content: "";
  position: absolute;
  inset: 0;
  background:
    radial-gradient(circle at 75% 35%, rgba(255,120,145,.35), transparent 34%),
    radial-gradient(circle at bottom, rgba(255,255,255,.14), transparent 30%);
  z-index: 1;
  pointer-events: none;
}

.signature-hero-content {
  position: relative;
  z-index: 4;
  max-width: 660px;
}

.signature-badge {
  display: inline-block;
  padding: 9px 16px;
  border-radius: 999px;
  background: rgba(255,255,255,.16);
  border: 1px solid rgba(255,255,255,.25);
  font-weight: 900;
  margin-bottom: 24px;
}

.signature-hero h1 {
  color: white;
  font-size: 62px;
  line-height: 1.04;
  margin: 0 0 22px;
  letter-spacing: -1.5px;
}

.signature-hero h1 span {
  color: #ff7f98;
}

.signature-hero p {
  font-size: 21px;
  line-height: 1.55;
  margin: 0;
  opacity: .96;
}

.signature-actions {
  margin-top: 34px;
  display: flex;
  flex-wrap: wrap;
  gap: 16px;
}

.signature-btn {
  display: inline-block;
  padding: 16px 26px;
  border-radius: 999px;
  font-weight: 950;
  text-decoration: none;
  transition: .22s ease;
}

.signature-btn:hover {
  transform: translateY(-3px);
}

.signature-btn.primary {
  background: white;
  color: #7b2d43;
  box-shadow: 0 15px 30px rgba(0,0,0,.18);
}

.signature-btn.secondary {
  color: white;
  background: rgba(255,255,255,.16);
  border: 1px solid rgba(255,255,255,.30);
}

.signature-points {
  margin-top: 30px;
  display: flex;
  flex-wrap: wrap;
  gap: 18px;
  font-weight: 850;
}

.signature-points div {
  background: rgba(255,255,255,.12);
  border: 1px solid rgba(255,255,255,.18);
  padding: 12px 15px;
  border-radius: 18px;
}

.signature-pink-veil {
  position: absolute;
  inset: 0;
  z-index: 2;
  background: linear-gradient(
    120deg,
    transparent 0%,
    rgba(255, 160, 180, .18) 45%,
    transparent 70%
  );
  transform: translateX(-120%);
  animation: pinkVeil 12s ease-in-out infinite;
  pointer-events: none;
}

.lycoris-petal {
  position: absolute;
  z-index: 5;
  width: 12px;
  height: 18px;
  border-radius: 70% 30% 70% 30%;
  background: rgba(255, 70, 90, .75);
  filter: blur(.2px);
  pointer-events: none;
}

.p1 {
  top: -20px;
  left: 18%;
  animation: petalFall 13s linear infinite;
}

.p2 {
  top: -30px;
  left: 42%;
  animation: petalFall 16s linear infinite 3s;
}

.p3 {
  top: -25px;
  left: 68%;
  animation: petalFall 14s linear infinite 6s;
}

.p4 {
  top: -35px;
  left: 82%;
  animation: petalFall 18s linear infinite 9s;
}

.home-v3-features {
  margin-top: 34px;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 24px;
}

.home-v3-features article {
  background: white;
  padding: 30px;
  border-radius: 30px;
  box-shadow: 0 14px 35px rgba(0,0,0,.08);
  border: 1px solid rgba(123,45,67,.08);
  transition: .2s ease;
}

.home-v3-features article:hover {
  transform: translateY(-5px);
}

.home-v3-features span {
  font-size: 38px;
}

.home-v3-features h2 {
  color: #7b2d43;
}

.home-v3-features p {
  color: #5f5652;
  line-height: 1.55;
  font-weight: 700;
}

@keyframes pinkVeil {
  0% {
    transform: translateX(-120%);
    opacity: 0;
  }

  25% {
    opacity: 1;
  }

  55% {
    transform: translateX(120%);
    opacity: 1;
  }

  100% {
    transform: translateX(120%);
    opacity: 0;
  }
}

@keyframes petalFall {
  0% {
    transform: translateY(-30px) translateX(0) rotate(0deg);
    opacity: 0;
  }

  10% {
    opacity: .8;
  }

  50% {
    transform: translateY(390px) translateX(45px) rotate(160deg);
  }

  100% {
    transform: translateY(820px) translateX(-25px) rotate(320deg);
    opacity: 0;
  }
}

@media(max-width: 950px) {
  .signature-hero {
    padding: 36px;
    min-height: 720px;
  }

  .signature-hero h1 {
    font-size: 42px;
  }

  .home-v3-features {
    grid-template-columns: 1fr;
  }
}

@media(max-width: 560px) {
  .signature-hero {
    padding: 24px;
    border-radius: 28px;
    min-height: 760px;
    background:
      linear-gradient(
        180deg,
        rgba(25,12,18,.85) 0%,
        rgba(25,12,18,.58) 42%,
        rgba(25,12,18,.25) 100%
      ),
      url("../img/lycoris-hero-mobile.webp") center center / cover no-repeat !important;
    animation: none !important;
  }

  .signature-badge {
    display: inline-flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 2px;
    max-width: 100%;
    font-size: 14px;
    line-height: 1.2;
    padding: 9px 14px;
    border-radius: 18px;
    text-wrap: balance;
  }

  .signature-badge-age {
    font-size: 12px;
    font-weight: 750;
    opacity: .92;
  }

  .signature-hero h1 {
    font-size: 34px;
    line-height: 1.08;
    letter-spacing: -0.8px;
  }

  .signature-hero p {
    font-size: 18px;
    line-height: 1.55;
    margin-top: 18px;
  }

  .signature-actions {
    margin-top: 28px;
    flex-direction: column;
    gap: 12px;
  }

  .signature-btn {
    width: 100%;
    text-align: center;
  }

  .signature-points {
    margin-top: 26px;
    flex-direction: column;
    gap: 10px;
  }

  .signature-points div {
    width: 100%;
    text-align: center;
  }

  .home-v3-features {
    grid-template-columns: 1fr;
    gap: 18px;
  }
}

/* source: assets/css/auth-premium.css */
.auth-v3 {
  margin-top: 34px;
  min-height: 68vh;
  display: flex;
  align-items: center;
  justify-content: center;
}

.auth-v3-card {
  width: 100%;
  max-width: 480px;
  background: white;
  border-radius: 34px;
  padding: 38px;
  box-shadow: 0 22px 55px rgba(0,0,0,.10);
  border: 1px solid rgba(123,45,67,.08);
}

.auth-v3-badge {
  display: inline-block;
  background: #f8edf0;
  color: #7b2d43;
  padding: 8px 14px;
  border-radius: 999px;
  font-weight: 900;
  margin-bottom: 16px;
}

.auth-v3-card h1 {
  margin: 0 0 12px;
  color: #7b2d43;
  font-size: 38px;
}

.auth-v3-text {
  color: #665b57;
  font-weight: 700;
  line-height: 1.55;
  margin-bottom: 24px;
}

.auth-v3-form {
  display: grid;
  gap: 13px;
}

.auth-v3-form label {
  font-weight: 900;
  color: #4a403c;
}

.auth-v3-form input {
  padding: 14px 16px;
  border-radius: 16px;
  border: 1px solid #eaded8;
  font-size: 16px;
}

.auth-v3-form button {
  margin-top: 10px;
  width: 100%;
}

.auth-v3-link {
  margin-top: 22px;
  text-align: center;
  color: #665b57;
  font-weight: 700;
}

.auth-v3-link a {
  color: #7b2d43;
  font-weight: 900;
  text-decoration: none;
}

@media(max-width: 560px) {
  .auth-v3-card {
    padding: 28px;
    border-radius: 28px;
  }

  .auth-v3-card h1 {
    font-size: 32px;
  }
}

/* source: assets/css/dashboard-v3.css */
.dash-v5-hero {
  margin-top: 28px;
  padding: 42px;
  border-radius: var(--radius-large);
  color: white;
  background:
    radial-gradient(circle at top right, rgba(255,255,255,.26), transparent 34%),
    linear-gradient(135deg, var(--primary), var(--primary-light));
  box-shadow: 0 22px 55px rgba(123,45,67,.25);
}

.dash-v5-profile {
  display: flex;
  align-items: center;
  gap: 32px;
}

.dash-v5-photo,
.dash-v5-photo-empty {
  width: 170px;
  height: 210px;
  border-radius: var(--radius-large);
  border: 5px solid rgba(255,255,255,.85);
  box-shadow: 0 18px 38px rgba(0,0,0,.24);
}

.dash-v5-photo {
  object-fit: cover;
}

.dash-v5-photo-empty {
  background: rgba(255,255,255,.22);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 74px;
}

.dash-v5-intro {
  flex: 1;
}

.dash-v5-topline {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 10px;
  margin-bottom: 14px;
}

.dash-v5-badge,
.dash-v5-premium-badge,
.dash-v5-premium-link {
  display: inline-block;
  padding: 8px 14px;
  border-radius: 999px;
  font-weight: 900;
  text-decoration: none;
}

.dash-v5-badge {
  background: rgba(255,255,255,.22);
  color: white;
}

.dash-v5-premium-badge {
  background: rgba(255,255,255,.92);
  color: var(--primary);
}

.dash-v5-premium-link {
  background: rgba(255,255,255,.18);
  color: white;
  border: 1px solid rgba(255,255,255,.28);
}

.dash-v5-intro h1 {
  color: white;
  margin: 0 0 12px;
  font-size: 44px;
}

.dash-v5-location {
  font-size: 20px;
  font-weight: 800;
  margin-bottom: 10px;
}

.dash-v5-text {
  font-size: 18px;
  opacity: .94;
  max-width: 700px;
  line-height: 1.5;
}

.dash-v5-main-grid {
  margin-top: 28px;
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 22px;
}

.dash-v5-card {
  background: var(--surface);
  border-radius: var(--radius-large);
  padding: 26px;
  box-shadow: var(--shadow);
  border: 1px solid var(--border);
  transition: var(--transition);
}

.dash-v5-card:hover {
  transform: translateY(-5px);
  box-shadow: var(--shadow-large);
}

.dash-v5-highlight {
  background:
    radial-gradient(circle at top right, rgba(217,108,117,.18), transparent 38%),
    var(--surface);
}

.dash-v5-icon {
  display: block;
  font-size: 34px;
  margin-bottom: 10px;
}

.dash-v5-card h2 {
  font-size: 42px;
  color: var(--primary);
  margin: 0;
  line-height: 1;
}

.dash-v5-card p {
  margin-top: 8px;
  color: var(--text);
  font-weight: 900;
}

.dash-v5-card small {
  display: block;
  margin-top: 10px;
  color: var(--text-light);
  font-weight: 700;
}

.dash-v5-panels {
  margin-top: 28px;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 22px;
}

.dash-v5-panel {
  background: var(--surface);
  border-radius: var(--radius-large);
  padding: 28px;
  box-shadow: var(--shadow);
  border: 1px solid var(--border);
}

.dash-v5-panel-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 18px;
}

.dash-v5-panel h2 {
  margin-bottom: 8px;
}

.dash-v5-panel p {
  color: var(--text-light);
  font-weight: 700;
}

.dash-v5-panel strong {
  color: var(--primary);
  font-size: 34px;
  white-space: nowrap;
}

.dash-v5-progress {
  margin-top: 20px;
  height: 16px;
  border-radius: 999px;
  overflow: hidden;
  background: #f0e3de;
}

.dash-v5-progress div {
  height: 100%;
  border-radius: 999px;
  background: linear-gradient(135deg, var(--primary), var(--primary-light));
}

.dash-v5-progress.popularity div {
  background: linear-gradient(135deg, #f0c85a, var(--primary-light));
}

.dash-v5-inline-link {
  display: inline-block;
  margin-top: 18px;
  color: var(--primary);
  text-decoration: none;
  font-weight: 900;
}

.dash-v5-actions {
  margin-top: 28px;
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(235px, 1fr));
  gap: 20px;
}

.dash-v5-action,
.dash-v3-action {
  background: var(--surface);
  border-radius: var(--radius-large);
  padding: 24px;
  color: var(--text);
  text-decoration: none;
  box-shadow: var(--shadow);
  border: 1px solid var(--border);
  transition: var(--transition);
}

.dash-v5-action:hover,
.dash-v3-action:hover {
  transform: translateY(-5px);
  box-shadow: var(--shadow-large);
}

.dash-v5-action span,
.dash-v3-action span {
  display: block;
  font-size: 34px;
  margin-bottom: 10px;
}

.dash-v5-action strong,
.dash-v3-action strong {
  display: block;
  color: var(--primary);
  font-size: 21px;
  margin-bottom: 5px;
}

.dash-v5-action small,
.dash-v3-action small {
  color: var(--text-light);
  font-weight: 700;
}

.dash-v5-danger,
.dash-v3-danger {
  margin-top: 30px;
  background: var(--surface);
  border: 1px solid rgba(214,40,40,.18);
  border-radius: var(--radius-large);
  padding: 28px;
  box-shadow: var(--shadow);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
}

.dash-v5-danger h2,
.dash-v3-danger h2 {
  margin-bottom: 8px;
}

.dash-v5-danger p,
.dash-v3-danger p {
  color: var(--text-light);
  font-weight: 700;
}

.dash-v5-danger a,
.dash-v3-danger a {
  display: inline-block;
  white-space: nowrap;
  background: var(--danger);
  color: white;
  padding: 12px 18px;
  border-radius: 999px;
  font-weight: 900;
  text-decoration: none;
}

/* Compatibilité avec premium.php */
.dash-v3-actions {
  margin-top: 28px;
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(235px, 1fr));
  gap: 20px;
}

.dash-v3-progress {
  margin-top: 28px;
  background: var(--surface);
  border-radius: var(--radius-large);
  padding: 30px;
  box-shadow: var(--shadow);
  border: 1px solid var(--border);
}

.dash-v3-progress h2 {
  margin-bottom: 10px;
}

.dash-v3-progress p {
  color: var(--text-light);
  font-weight: 700;
  margin-top: 8px;
}

@media(max-width: 1000px) {
  .dash-v5-main-grid,
  .dash-v5-panels {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media(max-width: 760px) {
  .dash-v5-profile {
    flex-direction: column;
    text-align: center;
  }

  .dash-v5-topline {
    justify-content: center;
  }

  .dash-v5-intro h1 {
    font-size: 33px;
  }

  .dash-v5-main-grid,
  .dash-v5-panels {
    grid-template-columns: 1fr;
  }

  .dash-v5-panel-head {
    flex-direction: column;
  }

  .dash-v5-danger,
  .dash-v3-danger {
    flex-direction: column;
    align-items: flex-start;
  }
}

@media(max-width: 520px) {
  .dash-v5-hero {
    padding: 28px;
  }

  .dash-v5-photo,
  .dash-v5-photo-empty {
    width: 150px;
    height: 185px;
  }
}


.dash-v5-card-link {
  display: block;
  color: inherit;
  text-decoration: none;
}

/* source: assets/css/recherche-premium.css */
.search-premium-hero {
  margin-top: 28px;
  padding: 42px;
  border-radius: var(--radius-large);
  background:
    radial-gradient(circle at top right, rgba(255,255,255,.26), transparent 35%),
    linear-gradient(135deg, var(--primary), var(--primary-light));
  color: white;
  box-shadow: 0 22px 55px rgba(123,45,67,.25);
}

.search-premium-hero h1 {
  color: white;
  margin: 0 0 12px;
  font-size: 42px;
}

.search-premium-hero p {
  margin: 0;
  font-size: 19px;
  opacity: .95;
}

.search-premium-filter {
  margin-top: 26px;
  background: var(--surface);
  border-radius: var(--radius-large);
  padding: 24px;
  box-shadow: var(--shadow);
  border: 1px solid var(--border);
}

.search-premium-filter form {
  display: grid;
  grid-template-columns: 1.2fr 1fr 1fr auto;
  gap: 16px;
  align-items: end;
}

.search-premium-filter label {
  display: block;
  margin-bottom: 8px;
  font-size: 14px;
}

.search-premium-filter button {
  min-width: 150px;
}

.search-result-count {
  margin-top: 25px;
  color: var(--primary);
  font-weight: 900;
  font-size: 18px;
}

.dating-grid {
  margin-top: 28px;
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(255px, 1fr));
  gap: 24px;
}

.dating-card-v4 {
  background: var(--surface);
  border-radius: var(--radius-large);
  overflow: hidden;
  box-shadow: var(--shadow);
  border: 1px solid var(--border);
  transition: var(--transition);
}

.dating-card-v4:hover {
  transform: translateY(-5px);
  box-shadow: var(--shadow-large);
}

.dating-photo-v4 {
  position: relative;
  aspect-ratio: 4 / 3;
  height: auto;
  overflow: hidden;
  background: linear-gradient(135deg, #eee, #fafafa);
}

.dating-photo-v4 img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: .45s ease;
}

.dating-card-v4:hover .dating-photo-v4 img {
  transform: scale(1.04);
}

.dating-photo-v4::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(to bottom, rgba(0,0,0,.02), rgba(0,0,0,.32));
  pointer-events: none;
}

.dating-photo-placeholder-v4 {
  width: 100%;
  height: 100%;
  min-height: 190px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 76px;
}

.dating-photo-count {
  position: absolute;
  top: 13px;
  left: 13px;
  z-index: 3;
  padding: 7px 11px;
  border-radius: 999px;
  background: rgba(255,255,255,.94);
  color: var(--primary);
  font-size: 12px;
  font-weight: 900;
  box-shadow: var(--shadow-small);
}

.dating-status-v4 {
  position: absolute;
  left: 13px;
  bottom: 13px;
  z-index: 2;
}

.search-badge {
  display: inline-block;
  padding: 7px 11px;
  border-radius: 999px;
  font-size: 12px;
  font-weight: 900;
  backdrop-filter: blur(8px);
}

.search-badge.online {
  background: rgba(229,249,237,.95);
  color: var(--success);
}

.search-badge.today {
  background: rgba(255,241,220,.95);
  color: var(--warning);
}

.search-badge.new {
  background: rgba(244,232,255,.95);
  color: #6c2aa8;
}

.search-badge.offline {
  background: rgba(255,255,255,.90);
  color: #666;
}

.dating-like-float {
  position: absolute;
  top: 13px;
  right: 13px;
  z-index: 3;
  width: 42px;
  height: 42px;
  border-radius: 50%;
  background: rgba(255,255,255,.94);
  display: flex;
  align-items: center;
  justify-content: center;
  text-decoration: none;
  font-size: 19px;
  box-shadow: var(--shadow-small);
  transition: var(--transition);
}

.dating-like-float:hover {
  transform: scale(1.08);
  background: white;
}

.dating-content-v4 {
  padding: 20px;
}

.dating-title-line h2 {
  margin: 0 0 6px;
  font-size: 25px;
  color: var(--primary);
}

.dating-meta-v4 {
  margin: 0 0 12px;
  color: var(--text-light);
  font-weight: 850;
}

.dating-bio-v4 {
  min-height: 52px;
  margin: 0 0 18px;
  color: var(--text);
  line-height: 1.45;
  font-weight: 600;
}

.dating-main-btn-v4 {
  display: block;
  text-align: center;
  padding: 12px 15px;
  border-radius: 999px;
  background: linear-gradient(135deg, var(--primary), var(--primary-light));
  color: white;
  text-decoration: none;
  font-weight: 950;
  transition: var(--transition);
}

.dating-main-btn-v4:hover {
  transform: translateY(-2px);
  box-shadow: 0 12px 26px rgba(123,45,67,.22);
}

@media(max-width: 850px) {
  .search-premium-filter form {
    grid-template-columns: 1fr;
  }

  .search-premium-hero {
    padding: 30px;
  }

  .search-premium-hero h1 {
    font-size: 32px;
  }
}

@media(max-width: 520px) {
  .dating-grid {
    grid-template-columns: 1fr;
  }

  .dating-photo-v4 {
    aspect-ratio: 16 / 10;
  }
}

/* source: assets/css/profil-premium.css */
.profile-v3 {
  margin-top: 28px;
}

.profile-v3-hero {
  display: grid;
  grid-template-columns: 330px 1fr;
  gap: 34px;
  align-items: stretch;
  padding: 34px;
  border-radius: 36px;
  color: white;
  background:
    radial-gradient(circle at top right, rgba(255,255,255,.26), transparent 35%),
    linear-gradient(135deg, #7b2d43, #d96c75);
  box-shadow: 0 22px 55px rgba(123,45,67,.25);
}

.profile-v3-photo-wrap {
  min-height: 390px;
}

.profile-v3-photo,
.profile-v3-photo-empty {
  width: 100%;
  height: 390px;
  border-radius: 30px;
  border: 5px solid rgba(255,255,255,.86);
  box-shadow: 0 18px 40px rgba(0,0,0,.24);
}

.profile-v3-photo {
  object-fit: cover;
  display: block;
}

.profile-v3-photo-empty {
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 88px;
  background: rgba(255,255,255,.22);
}

.profile-v3-content {
  display: flex;
  flex-direction: column;
  justify-content: center;
}

.profile-v3-status {
  display: inline-block;
  width: fit-content;
  padding: 8px 14px;
  border-radius: 999px;
  font-weight: 900;
  margin-bottom: 16px;
  font-size: 14px;
}

.profile-v3-status.online {
  background: rgba(229,249,237,.95);
  color: #16713c;
}

.profile-v3-status.today {
  background: rgba(255,241,220,.95);
  color: #9a5a00;
}

.profile-v3-status.new {
  background: rgba(244,232,255,.95);
  color: #6c2aa8;
}

.profile-v3-status.offline {
  background: rgba(255,255,255,.9);
  color: #666;
}

.profile-v3 h1 {
  color: white;
  margin: 0 0 14px;
  font-size: 48px;
  line-height: 1.08;
}

.profile-v3-location {
  font-size: 21px;
  font-weight: 900;
  margin: 0 0 10px;
}

.profile-v3-looking {
  font-size: 18px;
  opacity: .95;
  margin: 0 0 28px;
}

.profile-v3-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
}

.profile-v3-btn {
  display: inline-block;
  padding: 14px 22px;
  border-radius: 999px;
  font-weight: 900;
  text-decoration: none;
  transition: .2s ease;
}

.profile-v3-btn:hover {
  transform: translateY(-2px);
}

.profile-v3-btn.primary {
  background: white;
  color: #7b2d43;
}

.profile-v3-btn.secondary {
  background: rgba(255,255,255,.22);
  color: white;
  border: 1px solid rgba(255,255,255,.35);
}

.profile-v3-grid {
  margin-top: 30px;
  display: grid;
  grid-template-columns: 1fr 330px;
  gap: 28px;
}

.profile-v3-card {
  background: white;
  border-radius: 30px;
  padding: 30px;
  box-shadow: 0 14px 35px rgba(0,0,0,.09);
  border: 1px solid rgba(123,45,67,.08);
}

.profile-v3-card h2 {
  margin-top: 0;
  color: #7b2d43;
}

.profile-v3-about p {
  font-size: 18px;
  line-height: 1.7;
  color: #4f4541;
}

.profile-v3-side {
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.profile-v3-side-action {
  display: block;
  padding: 14px 16px;
  border-radius: 18px;
  background: #f8edf0;
  color: #7b2d43;
  text-decoration: none;
  font-weight: 900;
  transition: .2s ease;
}

.profile-v3-side-action:hover {
  transform: translateY(-2px);
  background: #f2dce3;
}

.profile-v3-side-action.warning {
  background: #fff1dc;
  color: #9a5a00;
}

.profile-v3-side-action.danger {
  background: #ffe5e5;
  color: #9b1c1c;
}

.profile-v3-side-action.neutral {
  background: #eeeeee;
  color: #555;
}

@media(max-width: 900px) {
  .profile-v3-hero {
    grid-template-columns: 1fr;
  }

  .profile-v3-grid {
    grid-template-columns: 1fr;
  }

  .profile-v3 h1 {
    font-size: 36px;
  }

  .profile-v3-photo-wrap {
    min-height: auto;
  }

  .profile-v3-photo,
  .profile-v3-photo-empty {
    height: 340px;
  }
}

@media(max-width: 520px) {
  .profile-v3-hero {
    padding: 24px;
  }

  .profile-v3-photo,
  .profile-v3-photo-empty {
    height: 300px;
  }

  .profile-v3-actions {
    flex-direction: column;
  }

  .profile-v3-btn {
    text-align: center;
  }
}

/* =========================================================
   GALERIE PROFIL - MINIATURES COMPACTES
   Corrige les photos énormes en vue profil/admin
========================================================= */

.gallery-v1 {
  margin-top: 30px;
  background: var(--surface, #fff);
  border-radius: var(--radius-large, 30px);
  padding: 26px;
  box-shadow: var(--shadow, 0 14px 35px rgba(0,0,0,.09));
  border: 1px solid var(--border, rgba(123,45,67,.08));
}

.gallery-v1 h2 {
  margin: 0 0 18px;
  color: var(--primary, #7b2d43);
}

.gallery-v1-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(135px, 1fr));
  gap: 14px;
}

.gallery-v1-thumb {
  position: relative;
  display: block;
  width: 100%;
  height: 145px;
  padding: 0;
  border: 0;
  border-radius: 20px;
  overflow: hidden;
  cursor: pointer;
  background: #f2eeee;
  box-shadow: var(--shadow-small, 0 8px 20px rgba(0,0,0,.06));
}

.gallery-v1-thumb img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: .25s ease;
}

.gallery-v1-thumb:hover img {
  transform: scale(1.05);
}

.gallery-v1-thumb span {
  position: absolute;
  left: 9px;
  bottom: 9px;
  z-index: 2;
  padding: 5px 9px;
  border-radius: 999px;
  background: rgba(255,255,255,.92);
  color: var(--primary, #7b2d43);
  font-size: 12px;
  font-weight: 900;
}

/* =========================================================
   LIGHTBOX GALERIE
========================================================= */

.gallery-lightbox {
  position: fixed;
  inset: 0;
  z-index: 9999;
  display: none;
  align-items: center;
  justify-content: center;
  padding: 28px;
  background: rgba(10,5,8,.92);
}

.gallery-lightbox.active {
  display: flex;
}

.gallery-lightbox img {
  max-width: min(92vw, 980px);
  max-height: 84vh;
  object-fit: contain;
  border-radius: 22px;
  box-shadow: 0 30px 80px rgba(0,0,0,.55);
}

.gallery-close,
.gallery-nav {
  position: absolute;
  z-index: 10000;
  width: 50px;
  height: 50px;
  border: 0;
  border-radius: 50%;
  cursor: pointer;
  background: rgba(255,255,255,.16);
  color: #fff;
  font-size: 34px;
  font-weight: 900;
  display: flex;
  align-items: center;
  justify-content: center;
}

.gallery-close {
  top: 22px;
  right: 22px;
}

.gallery-nav.prev {
  left: 22px;
}

.gallery-nav.next {
  right: 22px;
}

.gallery-counter {
  position: absolute;
  bottom: 22px;
  left: 50%;
  transform: translateX(-50%);
  color: #fff;
  background: rgba(255,255,255,.14);
  padding: 8px 14px;
  border-radius: 999px;
  font-weight: 900;
}

@media(max-width: 700px) {
  .gallery-v1 {
    padding: 20px;
  }

  .gallery-v1-grid {
    grid-template-columns: repeat(2, 1fr);
  }

  .gallery-v1-thumb {
    height: 135px;
  }

  .gallery-nav {
    width: 42px;
    height: 42px;
    font-size: 28px;
  }

  .gallery-close {
    width: 42px;
    height: 42px;
    font-size: 28px;
  }
}

/* source: assets/css/matchs-premium.css */
.match-v3-hero {
  margin-top: 28px;
  padding: 42px;
  border-radius: 34px;
  background:
    radial-gradient(circle at top right, rgba(255,255,255,.26), transparent 35%),
    linear-gradient(135deg, #7b2d43, #d96c75);
  color: white;
  box-shadow: 0 22px 55px rgba(123,45,67,.25);
}

.match-v3-hero h1 {
  color: white;
  margin: 0 0 12px;
  font-size: 42px;
}

.match-v3-hero p {
  margin: 0;
  font-size: 19px;
  opacity: .95;
  max-width: 720px;
}

.match-v3-empty {
  margin-top: 30px;
  background: white;
  border-radius: 30px;
  padding: 34px;
  text-align: center;
  box-shadow: 0 14px 35px rgba(0,0,0,.09);
  border: 1px solid rgba(123,45,67,.08);
}

.match-v3-empty a {
  display: inline-block;
  margin-top: 15px;
  background: linear-gradient(135deg, #7b2d43, #d96c75);
  color: white;
  padding: 13px 20px;
  border-radius: 999px;
  text-decoration: none;
  font-weight: 900;
}

.match-v3-grid {
  margin-top: 30px;
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(275px, 1fr));
  gap: 26px;
}

.match-v3-card {
  background: white;
  border-radius: 30px;
  overflow: hidden;
  box-shadow: 0 16px 40px rgba(0,0,0,.10);
  border: 1px solid rgba(123,45,67,.08);
  transition: .22s ease;
}

.match-v3-card:hover {
  transform: translateY(-6px);
  box-shadow: 0 24px 55px rgba(0,0,0,.15);
}

.match-v3-photo {
  position: relative;
  height: 250px;
  background: linear-gradient(135deg, #eee, #fafafa);
  overflow: hidden;
}

.match-v3-photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.match-v3-photo-empty {
  width: 100%;
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 82px;
}

.match-v3-badge {
  position: absolute;
  left: 15px;
  bottom: 15px;
}

.match-v3-status {
  display: inline-block;
  padding: 7px 12px;
  border-radius: 999px;
  font-size: 13px;
  font-weight: 900;
}

.match-v3-status.online {
  background: rgba(229,249,237,.95);
  color: #16713c;
}

.match-v3-status.today {
  background: rgba(255,241,220,.95);
  color: #9a5a00;
}

.match-v3-status.offline {
  background: rgba(255,255,255,.92);
  color: #666;
}

.match-v3-content {
  padding: 23px;
}

.match-v3-content h2 {
  margin: 0 0 7px;
  color: #7b2d43;
  font-size: 26px;
}

.match-v3-meta {
  margin: 0 0 10px;
  color: #625751;
  font-weight: 800;
}

.match-v3-date {
  margin: 0 0 20px;
  color: #7b6e69;
  font-size: 14px;
  font-weight: 700;
}

.match-v3-actions {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px;
}

.match-v3-btn {
  display: block;
  text-align: center;
  padding: 12px 14px;
  border-radius: 999px;
  text-decoration: none;
  font-weight: 900;
  transition: .2s ease;
}

.match-v3-btn:hover {
  transform: translateY(-2px);
}

.match-v3-btn.primary {
  background: linear-gradient(135deg, #7b2d43, #d96c75);
  color: white;
}

.match-v3-btn.secondary {
  background: #f8edf0;
  color: #7b2d43;
}

@media(max-width: 520px) {
  .match-v3-hero {
    padding: 30px;
  }

  .match-v3-hero h1 {
    font-size: 32px;
  }

  .match-v3-actions {
    grid-template-columns: 1fr;
  }

  .match-v3-photo {
    height: 290px;
  }
}

/* source: assets/css/messages-premium.css */
.messages-v3-hero {
  margin-top: 28px;
  padding: 42px;
  border-radius: 34px;
  background:
    radial-gradient(circle at top right, rgba(255,255,255,.26), transparent 35%),
    linear-gradient(135deg, #7b2d43, #d96c75);
  color: white;
  box-shadow: 0 22px 55px rgba(123,45,67,.25);
}

.messages-v3-hero h1 {
  color: white;
  margin: 0 0 12px;
  font-size: 42px;
}

.messages-v3-hero p {
  margin: 0;
  font-size: 19px;
  opacity: .95;
}

.messages-v3-empty {
  margin-top: 30px;
  background: white;
  border-radius: 30px;
  padding: 34px;
  text-align: center;
  box-shadow: 0 14px 35px rgba(0,0,0,.09);
  border: 1px solid rgba(123,45,67,.08);
}

.messages-v3-empty a {
  display: inline-block;
  margin-top: 15px;
  background: linear-gradient(135deg, #7b2d43, #d96c75);
  color: white;
  padding: 13px 20px;
  border-radius: 999px;
  text-decoration: none;
  font-weight: 900;
}

.messages-v3-list {
  margin-top: 30px;
  display: grid;
  gap: 18px;
}

.messages-v3-item {
  display: grid;
  grid-template-columns: 92px 1fr auto;
  gap: 20px;
  align-items: center;
  background: white;
  border-radius: 28px;
  padding: 18px;
  box-shadow: 0 14px 34px rgba(0,0,0,.08);
  border: 1px solid rgba(123,45,67,.08);
  transition: .2s ease;
}

.messages-v3-item:hover {
  transform: translateY(-3px);
  box-shadow: 0 20px 42px rgba(0,0,0,.12);
}

.messages-v3-item.unread {
  border: 2px solid rgba(214,40,40,.22);
  background: linear-gradient(180deg, #fff, #fff7f7);
}

.messages-v3-photo {
  position: relative;
}

.messages-v3-photo img,
.messages-v3-photo-empty {
  width: 92px;
  height: 92px;
  border-radius: 22px;
  object-fit: cover;
}

.messages-v3-photo-empty {
  display: flex;
  align-items: center;
  justify-content: center;
  background: #f2eeee;
  font-size: 42px;
}

.messages-v3-unread-dot {
  position: absolute;
  right: -4px;
  top: -4px;
  width: 18px;
  height: 18px;
  border-radius: 50%;
  background: #d62828;
  border: 3px solid white;
  box-shadow: 0 6px 14px rgba(214,40,40,.35);
}

.messages-v3-content h2 {
  margin: 0 0 6px;
  color: #7b2d43;
  font-size: 24px;
}

.messages-v3-unread-badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 24px;
  height: 24px;
  padding: 0 8px;
  margin-left: 8px;
  border-radius: 999px;
  background: #d62828;
  color: white;
  font-size: 13px;
  font-weight: 900;
  vertical-align: middle;
}

.messages-v3-meta {
  margin: 0 0 8px;
  color: #6a5f5b;
  font-weight: 800;
}

.messages-v3-preview {
  margin: 0;
  color: #4d4440;
}

.messages-v3-item.unread .messages-v3-preview {
  font-weight: 900;
  color: #2b2522;
}

.messages-v3-action a {
  display: inline-block;
  background: linear-gradient(135deg, #7b2d43, #d96c75);
  color: white;
  padding: 12px 18px;
  border-radius: 999px;
  text-decoration: none;
  font-weight: 900;
}

.conversation-v3 {
  margin-top: 28px;
}

.conversation-v3-header {
  background:
    radial-gradient(circle at top right, rgba(255,255,255,.22), transparent 35%),
    linear-gradient(135deg, #7b2d43, #d96c75);
  color: white;
  border-radius: 34px 34px 0 0;
  padding: 26px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  box-shadow: 0 16px 42px rgba(123,45,67,.22);
}

.conversation-v3-profile {
  display: flex;
  align-items: center;
  gap: 18px;
}

.conversation-v3-profile img,
.conversation-v3-avatar {
  width: 86px;
  height: 86px;
  border-radius: 22px;
  object-fit: cover;
  border: 4px solid rgba(255,255,255,.75);
}

.conversation-v3-avatar {
  display: flex;
  align-items: center;
  justify-content: center;
  background: rgba(255,255,255,.22);
  font-size: 40px;
}

.conversation-v3-profile h1 {
  color: white;
  margin: 0 0 6px;
  font-size: 30px;
}

.conversation-v3-profile p {
  margin: 0;
  opacity: .92;
  font-weight: 800;
}

.conversation-v3-profile-link {
  background: white;
  color: #7b2d43;
  padding: 12px 18px;
  border-radius: 999px;
  text-decoration: none;
  font-weight: 900;
  white-space: nowrap;
}

.conversation-v3-thread {
  background: white;
  padding: 26px;
  min-height: 430px;
  box-shadow: 0 16px 42px rgba(0,0,0,.08);
  border-left: 1px solid rgba(123,45,67,.08);
  border-right: 1px solid rgba(123,45,67,.08);
}

.conversation-v3-empty {
  text-align: center;
  color: #6a5f5b;
  padding: 60px 20px;
}

.conversation-v3-row {
  display: flex;
  margin-bottom: 16px;
}

.conversation-v3-row.mine {
  justify-content: flex-end;
}

.conversation-v3-row.theirs {
  justify-content: flex-start;
}

.conversation-v3-bubble {
  max-width: 70%;
  padding: 14px 16px;
  border-radius: 22px;
}

.conversation-v3-row.mine .conversation-v3-bubble {
  background: linear-gradient(135deg, #7b2d43, #d96c75);
  color: white;
  border-bottom-right-radius: 6px;
}

.conversation-v3-row.theirs .conversation-v3-bubble {
  background: #f3eeee;
  color: #2b2522;
  border-bottom-left-radius: 6px;
}

.conversation-v3-bubble p {
  margin: 0;
  line-height: 1.5;
}

.conversation-v3-bubble small {
  display: block;
  margin-top: 6px;
  opacity: .75;
  font-size: 12px;
}

.conversation-v3-compose {
  background: white;
  border-radius: 0 0 34px 34px;
  padding: 22px;
  box-shadow: 0 16px 42px rgba(0,0,0,.08);
  border: 1px solid rgba(123,45,67,.08);
  border-top: none;
}

.conversation-v3-compose form {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 14px;
  align-items: end;
}

.conversation-v3-compose textarea {
  resize: vertical;
}

.conversation-v3-compose button {
  height: fit-content;
  padding: 14px 22px;
}

@media(max-width: 750px) {
  .messages-v3-item {
    grid-template-columns: 76px 1fr;
  }

  .messages-v3-photo img,
  .messages-v3-photo-empty {
    width: 76px;
    height: 76px;
  }

  .messages-v3-action {
    grid-column: 1 / -1;
  }

  .messages-v3-action a {
    width: 100%;
    text-align: center;
  }

  .conversation-v3-header {
    flex-direction: column;
    align-items: flex-start;
  }

  .conversation-v3-bubble {
    max-width: 88%;
  }

  .conversation-v3-compose form {
    grid-template-columns: 1fr;
  }

  .conversation-v3-compose button {
    width: 100%;
  }
}

/* source: assets/css/profile-form-premium.css */
.profile-form-v3 {
  margin-top: 34px;
  display: flex;
  justify-content: center;
}

.profile-form-card {
  width: 100%;
  max-width: 860px;
  background: white;
  border-radius: 34px;
  padding: 38px;
  box-shadow: 0 22px 55px rgba(0,0,0,.10);
  border: 1px solid rgba(123,45,67,.08);
}

.profile-form-badge {
  display: inline-block;
  background: #f8edf0;
  color: #7b2d43;
  padding: 8px 14px;
  border-radius: 999px;
  font-weight: 900;
  margin-bottom: 16px;
}

.profile-form-card h1 {
  margin: 0 0 12px;
  color: #7b2d43;
  font-size: 40px;
}

.profile-form-intro {
  color: #665b57;
  font-weight: 700;
  line-height: 1.55;
  margin-bottom: 26px;
}

.profile-form-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 18px;
}

.profile-form-grid label {
  display: block;
  margin-bottom: 8px;
  font-weight: 900;
}

.profile-form-full {
  grid-column: 1 / -1;
}

.profile-form-grid textarea {
  resize: vertical;
}

.profile-form-actions {
  display: flex;
  gap: 14px;
  align-items: center;
  flex-wrap: wrap;
}

.profile-form-actions a {
  color: #7b2d43;
  font-weight: 900;
  text-decoration: none;
}

@media(max-width: 700px) {
  .profile-form-card {
    padding: 28px;
  }

  .profile-form-grid {
    grid-template-columns: 1fr;
  }

  .profile-form-card h1 {
    font-size: 32px;
  }
}
.birthdate-inline {
  display: grid;
  grid-template-columns: 80px 80px 1fr;
  gap: 10px;
  align-items: center;
}

.birthdate-inline select,
.birthdate-inline input {
  width: 100%;
}

.birthdate-help {
  display: block;
  margin-top: 7px;
  color: #766b66;
  font-size: 13px;
  font-weight: 700;
}

@media(max-width: 520px) {
  .birthdate-inline {
    grid-template-columns: 1fr 1fr;
  }

  .birthdate-inline input[name="birth_year"] {
    grid-column: 1 / -1;
  }
}

/* source: assets/css/photo-premium.css */
.photo-upload-v3 {
  margin-top: 36px;
}

.photo-upload-card {
  display: grid;
  grid-template-columns: 360px 1fr;
  gap: 34px;
  background: white;
  border-radius: 36px;
  padding: 34px;
  box-shadow: 0 22px 55px rgba(0,0,0,.10);
  border: 1px solid rgba(123,45,67,.08);
}

.photo-upload-preview img,
.photo-upload-empty {
  width: 100%;
  height: 440px;
  border-radius: 30px;
  object-fit: cover;
  box-shadow: 0 18px 40px rgba(0,0,0,.18);
}

.photo-upload-empty {
  background:
    radial-gradient(circle at top right, rgba(255,255,255,.25), transparent 35%),
    linear-gradient(135deg, #7b2d43, #d96c75);
  color: white;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 92px;
}

.photo-upload-content {
  display: flex;
  flex-direction: column;
  justify-content: center;
}

.photo-upload-badge {
  display: inline-block;
  width: fit-content;
  background: #f8edf0;
  color: #7b2d43;
  padding: 8px 14px;
  border-radius: 999px;
  font-weight: 900;
  margin-bottom: 16px;
}

.photo-upload-content h1 {
  margin: 0 0 14px;
  color: #7b2d43;
  font-size: 42px;
  line-height: 1.1;
}

.photo-upload-content p {
  color: #665b57;
  font-size: 18px;
  line-height: 1.55;
  font-weight: 700;
}

.photo-upload-form {
  margin-top: 22px;
  display: grid;
  gap: 12px;
}

.photo-upload-form small {
  color: #766b66;
  font-weight: 700;
}

.photo-upload-form button {
  margin-top: 8px;
  width: fit-content;
}

.photo-upload-back {
  margin-top: 22px;
  color: #7b2d43;
  text-decoration: none;
  font-weight: 900;
}

@media(max-width: 850px) {
  .photo-upload-card {
    grid-template-columns: 1fr;
  }

  .photo-upload-preview img,
  .photo-upload-empty {
    height: 360px;
  }

  .photo-upload-content h1 {
    font-size: 34px;
  }
}

@media(max-width: 520px) {
  .photo-upload-card {
    padding: 24px;
  }

  .photo-upload-preview img,
  .photo-upload-empty {
    height: 300px;
  }
}

/* source: assets/css/listes-premium.css */
.list-v3-hero {
  margin-top: 28px;
  padding: 42px;
  border-radius: 34px;
  color: white;
  background:
    radial-gradient(circle at top right, rgba(255,255,255,.26), transparent 35%),
    linear-gradient(135deg, #7b2d43, #d96c75);
  box-shadow: 0 22px 55px rgba(123,45,67,.25);
}

.list-v3-hero h1 {
  color: white;
  margin: 0 0 12px;
  font-size: 42px;
}

.list-v3-hero p {
  margin: 0;
  font-size: 19px;
  opacity: .95;
}

.list-v3-empty {
  margin-top: 30px;
  background: white;
  border-radius: 30px;
  padding: 34px;
  text-align: center;
  box-shadow: 0 14px 35px rgba(0,0,0,.09);
  border: 1px solid rgba(123,45,67,.08);
}

.list-v3-empty a {
  display: inline-block;
  margin-top: 15px;
  background: linear-gradient(135deg, #7b2d43, #d96c75);
  color: white;
  padding: 13px 20px;
  border-radius: 999px;
  text-decoration: none;
  font-weight: 900;
}

.list-v3-grid {
  margin-top: 30px;
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(275px, 1fr));
  gap: 26px;
}

.list-v3-card {
  background: white;
  border-radius: 30px;
  overflow: hidden;
  box-shadow: 0 16px 40px rgba(0,0,0,.10);
  border: 1px solid rgba(123,45,67,.08);
  transition: .22s ease;
}

.list-v3-card:hover {
  transform: translateY(-6px);
  box-shadow: 0 24px 55px rgba(0,0,0,.15);
}

.list-v3-photo {
  position: relative;
  height: 250px;
  background: linear-gradient(135deg, #eee, #fafafa);
  overflow: hidden;
}

.list-v3-photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.list-v3-photo-empty {
  width: 100%;
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 82px;
}

.list-v3-badge {
  position: absolute;
  left: 15px;
  bottom: 15px;
  display: inline-block;
  padding: 7px 12px;
  border-radius: 999px;
  background: rgba(229,249,237,.95);
  color: #16713c;
  font-size: 13px;
  font-weight: 900;
}

.list-v3-badge.danger {
  background: rgba(255,229,229,.95);
  color: #9b1c1c;
}

.list-v3-content {
  padding: 23px;
}

.list-v3-content h2 {
  margin: 0 0 7px;
  color: #7b2d43;
  font-size: 26px;
}

.list-v3-meta {
  margin: 0 0 12px;
  color: #625751;
  font-weight: 800;
}

.list-v3-bio {
  min-height: 52px;
  margin: 0 0 20px;
  color: #4f4541;
  line-height: 1.45;
}

.list-v3-actions {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px;
}

.list-v3-btn {
  display: block;
  text-align: center;
  padding: 12px 14px;
  border-radius: 999px;
  text-decoration: none;
  font-weight: 900;
  transition: .2s ease;
}

.list-v3-btn:hover {
  transform: translateY(-2px);
}

.list-v3-btn.primary {
  background: linear-gradient(135deg, #7b2d43, #d96c75);
  color: white;
}

.list-v3-btn.secondary {
  background: #f8edf0;
  color: #7b2d43;
}

@media(max-width: 520px) {
  .list-v3-hero {
    padding: 30px;
  }

  .list-v3-hero h1 {
    font-size: 32px;
  }

  .list-v3-actions {
    grid-template-columns: 1fr;
  }

  .list-v3-photo {
    height: 290px;
  }
}

/* source: assets/css/admin-premium.css */
.admin-v3-hero {
  margin-top: 28px;
  padding: 42px;
  border-radius: 34px;
  color: white;
  background:
    radial-gradient(circle at top right, rgba(255,255,255,.26), transparent 35%),
    linear-gradient(135deg, #7b2d43, #d96c75);
  box-shadow: 0 22px 55px rgba(123,45,67,.25);
}

.admin-v3-hero h1 {
  color: white;
  margin: 0 0 12px;
  font-size: 42px;
}

.admin-v3-hero p {
  margin: 0;
  font-size: 19px;
  opacity: .95;
}

.admin-v3-stats {
  margin-top: 28px;
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 22px;
}

.admin-v3-stat {
  background: white;
  border-radius: 30px;
  padding: 28px;
  text-align: center;
  box-shadow: 0 14px 34px rgba(0,0,0,.09);
  border: 1px solid rgba(123,45,67,.08);
}

.admin-v3-stat span {
  display: block;
  font-size: 36px;
  margin-bottom: 8px;
}

.admin-v3-stat strong {
  display: block;
  font-size: 40px;
  color: #7b2d43;
}

.admin-v3-stat small {
  display: block;
  margin-top: 8px;
  color: #665b57;
  font-weight: 900;
}

.admin-v3-actions {
  margin-top: 28px;
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
  gap: 22px;
}

.admin-v3-action {
  background: white;
  border-radius: 30px;
  padding: 28px;
  color: #2b2522;
  text-decoration: none;
  box-shadow: 0 14px 34px rgba(0,0,0,.09);
  border: 1px solid rgba(123,45,67,.08);
  transition: .2s ease;
}

.admin-v3-action:hover {
  transform: translateY(-5px);
  box-shadow: 0 22px 48px rgba(0,0,0,.13);
}

.admin-v3-action span {
  display: block;
  font-size: 36px;
  margin-bottom: 12px;
}

.admin-v3-action strong {
  display: block;
  color: #7b2d43;
  font-size: 22px;
  margin-bottom: 6px;
}

.admin-v3-action small {
  color: #665b57;
  font-weight: 800;
}

.admin-v3-members {
  margin-top: 30px;
  display: grid;
  gap: 20px;
}

.admin-v3-member {
  background: white;
  border-radius: 30px;
  padding: 22px;
  box-shadow: 0 14px 34px rgba(0,0,0,.09);
  border: 1px solid rgba(123,45,67,.08);
  display: grid;
  grid-template-columns: 120px 1fr auto;
  gap: 22px;
  align-items: center;
}

.admin-v3-member-photo img,
.admin-v3-member-photo div {
  width: 120px;
  height: 140px;
  border-radius: 24px;
}

.admin-v3-member-photo img {
  object-fit: cover;
}

.admin-v3-member-photo div {
  background: #f2eeee;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 52px;
}

.admin-v3-member-info h2 {
  margin: 0 0 10px;
  color: #7b2d43;
}

.admin-v3-member-info p {
  margin: 6px 0;
  color: #4f4541;
}

.admin-v3-pill {
  display: inline-block;
  padding: 5px 10px;
  border-radius: 999px;
  font-size: 13px;
  font-weight: 900;
}

.admin-v3-pill.success {
  background: #e5f9ed;
  color: #16713c;
}

.admin-v3-pill.danger {
  background: #ffe5e5;
  color: #9b1c1c;
}

.admin-v3-member-actions {
  display: grid;
  gap: 9px;
}

.admin-v3-btn {
  display: block;
  text-align: center;
  white-space: nowrap;
  padding: 11px 15px;
  border-radius: 999px;
  background: #f8edf0;
  color: #7b2d43;
  text-decoration: none;
  font-weight: 900;
}

.admin-v3-btn.success {
  background: #e5f9ed;
  color: #16713c;
}

.admin-v3-btn.warning {
  background: #fff1dc;
  color: #9a5a00;
}

.admin-v3-btn.danger {
  background: #ffe5e5;
  color: #9b1c1c;
}

.admin-report-empty {
  margin-top: 30px;
  background: white;
  border-radius: 30px;
  padding: 34px;
  text-align: center;
  box-shadow: 0 14px 35px rgba(0,0,0,.09);
  border: 1px solid rgba(123,45,67,.08);
}

.admin-report-list {
  margin-top: 30px;
  display: grid;
  gap: 22px;
}

.admin-report-card {
  background: white;
  border-radius: 30px;
  padding: 22px;
  box-shadow: 0 14px 34px rgba(0,0,0,.09);
  border: 1px solid rgba(123,45,67,.08);
  display: grid;
  grid-template-columns: 130px 1fr;
  gap: 22px;
}

.admin-report-photo img,
.admin-report-photo div {
  width: 130px;
  height: 160px;
  border-radius: 24px;
}

.admin-report-photo img {
  object-fit: cover;
}

.admin-report-photo div {
  background: #fff1dc;
  color: #9a5a00;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 54px;
}

.admin-report-head {
  display: flex;
  justify-content: space-between;
  gap: 18px;
  align-items: flex-start;
}

.admin-report-head h2 {
  margin: 0 0 8px;
  color: #7b2d43;
}

.admin-report-head p {
  margin: 5px 0;
  color: #4f4541;
}

.admin-report-status {
  display: inline-block;
  padding: 7px 12px;
  border-radius: 999px;
  font-size: 13px;
  font-weight: 900;
  white-space: nowrap;
}

.admin-report-status.success {
  background: #e5f9ed;
  color: #16713c;
}

.admin-report-status.danger {
  background: #ffe5e5;
  color: #9b1c1c;
}

.admin-report-details {
  margin-top: 18px;
  background: #fbf2ef;
  border-radius: 22px;
  padding: 18px;
}

.admin-report-details p {
  margin: 8px 0;
  color: #4f4541;
  line-height: 1.55;
}

.admin-report-actions {
  margin-top: 18px;
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}

@media(max-width: 950px) {
  .admin-v3-stats {
    grid-template-columns: repeat(2, 1fr);
  }

  .admin-v3-member {
    grid-template-columns: 1fr;
  }

  .admin-v3-member-photo img,
  .admin-v3-member-photo div {
    width: 100%;
    height: 260px;
  }

  .admin-v3-member-actions {
    grid-template-columns: 1fr;
  }
}

@media(max-width: 760px) {
  .admin-report-card {
    grid-template-columns: 1fr;
  }

  .admin-report-photo img,
  .admin-report-photo div {
    width: 100%;
    height: 260px;
  }

  .admin-report-head {
    flex-direction: column;
  }
}

@media(max-width: 560px) {
  .admin-v3-stats {
    grid-template-columns: 1fr;
  }

  .admin-v3-hero {
    padding: 30px;
  }

  .admin-v3-hero h1 {
    font-size: 32px;
  }
}
.admin-message-card {
  margin-top: 30px;
  background: var(--surface);
  border-radius: var(--radius-large);
  padding: 28px;
  box-shadow: var(--shadow);
  border: 1px solid var(--border);
}

.admin-message-member {
  display: flex;
  align-items: center;
  gap: 18px;
  margin-bottom: 24px;
  padding: 18px;
  border-radius: 24px;
  background: #fbf2ef;
}

.admin-message-member img,
.admin-message-member div:first-child {
  width: 90px;
  height: 105px;
  border-radius: 20px;
}

.admin-message-member img {
  object-fit: cover;
}

.admin-message-member div:first-child {
  display: flex;
  align-items: center;
  justify-content: center;
  background: white;
  font-size: 42px;
}

.admin-message-member h2 {
  margin-bottom: 6px;
}

.admin-message-member p {
  color: var(--text);
  font-weight: 800;
}

.admin-message-member small {
  color: var(--text-light);
  font-weight: 700;
}

.admin-message-form textarea {
  resize: vertical;
}

.admin-message-actions {
  margin-top: 16px;
  display: flex;
  align-items: center;
  gap: 14px;
  flex-wrap: wrap;
}

.admin-message-actions a {
  color: var(--primary);
  font-weight: 900;
  text-decoration: none;
}

@media(max-width: 560px) {
  .admin-message-member {
    flex-direction: column;
    align-items: flex-start;
  }

  .admin-message-member img,
  .admin-message-member div:first-child {
    width: 100%;
    height: 190px;
  }
}

/* =====================================================
   RC2.1 — Admin badges / niveaux de progression
===================================================== */
.admin-v3-ranks {
  margin-top: 24px;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 18px;
}

.admin-v3-ranks a,
.admin-rank-card,
.admin-rank-empty {
  background: white;
  border-radius: 30px;
  box-shadow: 0 14px 34px rgba(0,0,0,.09);
  border: 1px solid rgba(123,45,67,.08);
}

.admin-v3-ranks a {
  padding: 24px;
  text-align: center;
  text-decoration: none;
  transition: .2s ease;
}

.admin-v3-ranks a:hover {
  transform: translateY(-4px);
  box-shadow: 0 22px 48px rgba(0,0,0,.13);
}

.admin-v3-ranks span {
  display: block;
  font-size: 34px;
  margin-bottom: 8px;
}

.admin-v3-ranks strong {
  display: block;
  font-size: 34px;
  color: #7b2d43;
}

.admin-v3-ranks small {
  display: block;
  margin-top: 7px;
  color: #665b57;
  font-weight: 900;
}

.admin-rank-tabs {
  margin-top: 24px;
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}

.admin-rank-tabs a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 42px;
  padding: 10px 16px;
  border-radius: 999px;
  background: white;
  color: #7b2d43;
  text-decoration: none;
  font-weight: 900;
  box-shadow: 0 10px 24px rgba(0,0,0,.07);
  border: 1px solid rgba(123,45,67,.08);
}

.admin-rank-tabs a.active {
  background: linear-gradient(135deg, #7b2d43, #d96c75);
  color: white;
}

.admin-rank-list {
  margin-top: 24px;
  display: grid;
  gap: 16px;
}

.admin-rank-card {
  padding: 18px;
  display: grid;
  grid-template-columns: 82px 1fr auto;
  gap: 18px;
  align-items: center;
}

.admin-rank-card img,
.admin-rank-avatar {
  width: 82px;
  height: 82px;
  border-radius: 24px;
}

.admin-rank-card img {
  object-fit: cover;
}

.admin-rank-avatar {
  background: #f2eeee;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 34px;
}

.admin-rank-head {
  display: flex;
  align-items: center;
  gap: 12px;
  flex-wrap: wrap;
  margin-bottom: 6px;
}

.admin-rank-head h2 {
  margin: 0;
}

.admin-rank-head span {
  display: inline-flex;
  align-items: center;
  padding: 6px 10px;
  border-radius: 999px;
  background: #fbf2ef;
  color: #7b2d43;
  font-size: 13px;
  font-weight: 900;
}

.admin-rank-info p {
  margin: 0 0 10px;
  color: #665b57;
  font-weight: 700;
}

.admin-rank-metrics {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.admin-rank-metrics span {
  display: inline-flex;
  padding: 6px 10px;
  border-radius: 999px;
  background: #fbf2ef;
  color: #4f4541;
  font-size: 13px;
  font-weight: 900;
}

.admin-rank-empty {
  padding: 28px;
  text-align: center;
  font-weight: 900;
}

@media(max-width: 900px) {
  .admin-v3-ranks {
    grid-template-columns: 1fr;
  }

  .admin-rank-card {
    grid-template-columns: 1fr;
    text-align: center;
  }

  .admin-rank-card img,
  .admin-rank-avatar {
    margin: auto;
  }

  .admin-rank-head,
  .admin-rank-metrics {
    justify-content: center;
  }
}

/* =====================================================
   Gestion Premium membres
===================================================== */

.admin-v3-pill.premium {
  background:#fff1dc;
  color:#7b2d43;
}

.admin-v3-pill.neutral {
  background:#eef2f7;
  color:#475569;
}

.admin-v3-btn.premium {
  background:linear-gradient(135deg,#7b2d43,#d96c75);
  color:#ffffff;
}

.admin-v3-btn.muted {
  background:#eef2f7;
  color:#475569;
}

/* source: assets/css/photo-manager.css */
.photos-v3-hero {
  margin-top: 28px;
  padding: 42px;
  border-radius: var(--radius-large);
  color: white;
  background:
    radial-gradient(circle at top right, rgba(255,255,255,.28), transparent 34%),
    linear-gradient(135deg, var(--primary), var(--primary-light));
  box-shadow: 0 22px 55px rgba(123,45,67,.25);
}

.photos-v3-hero h1 {
  color: white;
  margin-bottom: 12px;
  font-size: 42px;
}

.photos-v3-hero p {
  font-size: 19px;
  opacity: .95;
}

.photos-v3-grid {
  margin-top: 30px;
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(245px, 1fr));
  gap: 24px;
}

.photos-v3-card {
  position: relative;
  min-height: 310px;
  background: var(--surface);
  border-radius: var(--radius-large);
  overflow: hidden;
  box-shadow: var(--shadow);
  border: 1px solid var(--border);
  transition: var(--transition);
}

.photos-v3-card:hover {
  transform: translateY(-5px);
  box-shadow: var(--shadow-large);
}

.photos-v3-card.main {
  border: 3px solid #f0c85a;
}

.photos-v3-card img {
  width: 100%;
  height: 230px;
  object-fit: cover;
}

.photos-v3-main-badge {
  position: absolute;
  top: 14px;
  left: 14px;
  background: rgba(255,255,255,.95);
  color: var(--primary);
  padding: 7px 12px;
  border-radius: 999px;
  font-size: 13px;
  font-weight: 900;
  box-shadow: var(--shadow-small);
}

.photos-v3-actions {
  padding: 16px;
  display: grid;
  gap: 9px;
}

.photos-v3-actions form {
  margin: 0;
}

.photos-v3-actions button {
  width: 100%;
}

.photos-v3-actions button.danger {
  background: #ffe5e5;
  color: var(--danger);
}

.photos-v3-card.add {
  display: flex;
  align-items: center;
  justify-content: center;
  border: 2px dashed rgba(123,45,67,.22);
  background: #fff7f8;
}

.photos-v3-card.add form {
  width: 100%;
  height: 100%;
}

.photos-v3-card.add label {
  min-height: 310px;
  padding: 24px;
  cursor: pointer;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 14px;
  text-align: center;
  color: var(--primary);
}

.photos-v3-card.add span {
  width: 76px;
  height: 76px;
  border-radius: 50%;
  background: linear-gradient(135deg, var(--primary), var(--primary-light));
  color: white;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 42px;
  box-shadow: var(--shadow);
}

.photos-v3-card.add strong {
  font-size: 22px;
}

.photos-v3-card.add small {
  color: var(--text-light);
  font-weight: 700;
}

.photos-v3-card.add input {
  display: none;
}

.photos-v3-back {
  margin-top: 28px;
}

.photos-v3-back a {
  color: var(--primary);
  font-weight: 900;
  text-decoration: none;
}

@media(max-width: 560px) {
  .photos-v3-hero {
    padding: 30px;
  }

  .photos-v3-hero h1 {
    font-size: 32px;
  }

  .photos-v3-grid {
    grid-template-columns: 1fr;
  }

  .photos-v3-card img {
    height: 260px;
  }
}

/* source: assets/css/visiteurs-premium.css */
.visitors-hero {
  margin-top: 28px;
  padding: 42px;
  border-radius: var(--radius-large);
  color: white;
  background:
    radial-gradient(circle at top right, rgba(255,255,255,.26), transparent 35%),
    linear-gradient(135deg, var(--primary), var(--primary-light));
  box-shadow: 0 22px 55px rgba(123,45,67,.25);
}

.visitors-badge {
  display: inline-block;
  padding: 8px 14px;
  border-radius: 999px;
  background: rgba(255,255,255,.18);
  border: 1px solid rgba(255,255,255,.25);
  font-weight: 900;
  margin-bottom: 16px;
}

.visitors-hero h1 {
  color: white;
  margin: 0 0 12px;
  font-size: 42px;
}

.visitors-hero p {
  max-width: 760px;
  margin: 0;
  font-size: 19px;
  line-height: 1.55;
  opacity: .95;
}

.visitors-stats {
  margin-top: 28px;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 22px;
}

.visitors-stat {
  background: var(--surface);
  border-radius: var(--radius-large);
  padding: 26px;
  box-shadow: var(--shadow);
  border: 1px solid var(--border);
  text-align: center;
}

.visitors-stat.premium {
  border: 2px solid rgba(240,200,90,.7);
}

.visitors-stat span {
  display: block;
  font-size: 34px;
  margin-bottom: 8px;
}

.visitors-stat strong {
  display: block;
  color: var(--primary);
  font-size: 36px;
  line-height: 1;
}

.visitors-stat small {
  display: block;
  margin-top: 9px;
  color: var(--text-light);
  font-weight: 900;
}

.visitors-premium-lock {
  margin-top: 30px;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 26px;
  align-items: stretch;
}

.visitors-lock-content,
.visitors-blur-list,
.visitors-empty {
  background: var(--surface);
  border-radius: var(--radius-large);
  padding: 30px;
  box-shadow: var(--shadow);
  border: 1px solid var(--border);
}

.visitors-lock-icon {
  display: inline-flex;
  width: 64px;
  height: 64px;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  background: linear-gradient(135deg, var(--primary), var(--primary-light));
  color: white;
  font-size: 30px;
  margin-bottom: 18px;
}

.visitors-lock-content h2,
.visitors-empty h2 {
  margin-bottom: 12px;
}

.visitors-lock-content p,
.visitors-empty p {
  color: var(--text-light);
  font-weight: 700;
  line-height: 1.55;
  margin-bottom: 22px;
}

.visitors-lock-content a,
.visitors-empty a {
  display: inline-flex;
  padding: 13px 20px;
  border-radius: 999px;
  background: linear-gradient(135deg, var(--primary), var(--primary-light));
  color: white;
  text-decoration: none;
  font-weight: 900;
}

.visitors-blur-list {
  position: relative;
  overflow: hidden;
}

.visitors-blur-list::after {
  content: "";
  position: absolute;
  inset: 0;
  backdrop-filter: blur(7px);
  background: rgba(255,255,255,.35);
}

.visitors-blur-list article {
  display: grid;
  grid-template-columns: 62px 1fr;
  gap: 14px;
  align-items: center;
  padding: 14px;
  border-radius: 20px;
  background: #fbf2ef;
  margin-bottom: 12px;
}

.fake-avatar {
  width: 62px;
  height: 62px;
  border-radius: 18px;
  background: linear-gradient(135deg, #ddd, #f7f7f7);
}

.visitors-list {
  margin-top: 30px;
  display: grid;
  gap: 18px;
}

.visitor-card {
  background: var(--surface);
  border-radius: var(--radius-large);
  padding: 18px;
  box-shadow: var(--shadow);
  border: 1px solid var(--border);
  display: grid;
  grid-template-columns: 110px 1fr;
  gap: 20px;
  transition: var(--transition);
}

.visitor-card:hover {
  transform: translateY(-3px);
  box-shadow: var(--shadow-large);
}

.visitor-photo img,
.visitor-photo-empty {
  width: 110px;
  height: 130px;
  border-radius: 24px;
}

.visitor-photo img {
  object-fit: cover;
}

.visitor-photo-empty {
  background: #f2eeee;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 48px;
}

.visitor-head {
  display: flex;
  justify-content: space-between;
  gap: 14px;
  align-items: flex-start;
}

.visitor-head h2 {
  margin-bottom: 6px;
}

.visitor-head p,
.visitor-date,
.visitor-count {
  color: var(--text-light);
  font-weight: 800;
}

.visitor-date {
  margin-top: 14px;
}

.visitor-count {
  margin-top: 6px;
  font-size: 14px;
}

.visitor-status {
  display: inline-block;
  white-space: nowrap;
  padding: 7px 11px;
  border-radius: 999px;
  font-size: 12px;
  font-weight: 900;
}

.visitor-status.online {
  background: #e5f9ed;
  color: var(--success);
}

.visitor-status.today {
  background: #fff1dc;
  color: var(--warning);
}

.visitor-status.offline {
  background: #eeeeee;
  color: #666;
}

.visitor-actions {
  margin-top: 18px;
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}

.visitor-btn {
  display: inline-flex;
  justify-content: center;
  padding: 12px 16px;
  border-radius: 999px;
  text-decoration: none;
  font-weight: 900;
  transition: var(--transition);
}

.visitor-btn:hover {
  transform: translateY(-2px);
}

.visitor-btn.primary {
  background: linear-gradient(135deg, var(--primary), var(--primary-light));
  color: white;
}

.visitor-btn.secondary {
  background: #f8edf0;
  color: var(--primary);
}

@media(max-width: 850px) {
  .visitors-stats,
  .visitors-premium-lock {
    grid-template-columns: 1fr;
  }

  .visitor-card {
    grid-template-columns: 86px 1fr;
  }

  .visitor-photo img,
  .visitor-photo-empty {
    width: 86px;
    height: 96px;
    border-radius: 20px;
  }

  .visitor-head {
    flex-direction: column;
  }
}

@media(max-width: 560px) {
  .visitors-hero {
    padding: 30px;
  }

  .visitors-hero h1 {
    font-size: 32px;
  }

  .visitor-card {
    grid-template-columns: 1fr;
  }

  .visitor-photo img,
  .visitor-photo-empty {
    width: 100%;
    height: 260px;
  }

  .visitor-actions {
    display: grid;
    grid-template-columns: 1fr;
  }
}


/* =====================================================
   RC2.3 — Espacements page visiteurs
   Évite que les 3 statistiques touchent le bloc suivant.
===================================================== */

.visitors-stats {
  margin-bottom: 30px;
}

.visitors-stats + .visitors-premium-lock,
.visitors-stats + .visitors-empty,
.visitors-stats + .visitors-list {
  margin-top: 0;
}

.visitors-empty {
  margin-top: 0;
}

@media(max-width: 850px) {
  .visitors-stats {
    margin-bottom: 24px;
  }
}

@media(max-width: 560px) {
  .visitors-stats {
    margin-bottom: 22px;
  }
}

/* source: assets/css/score-profil.css */
.score-v1-hero {
  margin-top: 28px;
  padding: 42px;
  border-radius: var(--radius-large);
  color: white;
  background:
    radial-gradient(circle at top right, rgba(255,255,255,.26), transparent 35%),
    linear-gradient(135deg, var(--primary), var(--primary-light));
  box-shadow: 0 22px 55px rgba(123,45,67,.25);
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 28px;
}

.score-v1-badge {
  display: inline-block;
  background: rgba(255,255,255,.18);
  border: 1px solid rgba(255,255,255,.25);
  color: white;
  padding: 8px 14px;
  border-radius: 999px;
  font-weight: 900;
  margin-bottom: 16px;
}

.score-v1-hero h1 {
  color: white;
  margin-bottom: 12px;
  font-size: 44px;
}

.score-v1-hero p {
  color: rgba(255,255,255,.94);
  font-size: 19px;
  max-width: 680px;
}

.score-v1-circle {
  width: 155px;
  height: 155px;
  border-radius: 50%;
  background: rgba(255,255,255,.18);
  border: 1px solid rgba(255,255,255,.28);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
  box-shadow: 0 18px 38px rgba(0,0,0,.18);
}

.score-v1-circle strong {
  color: white;
  font-size: 42px;
  line-height: 1;
}

.score-v1-circle span {
  margin-top: 7px;
  font-weight: 900;
}

.score-v1-grid {
  margin-top: 28px;
  display: grid;
  grid-template-columns: 1.4fr .8fr;
  gap: 22px;
}

.score-v1-panel,
.score-v1-detail,
.score-v1-advice {
  background: var(--surface);
  border-radius: var(--radius-large);
  padding: 28px;
  box-shadow: var(--shadow);
  border: 1px solid var(--border);
}

.score-v1-panel-head,
.score-v1-detail-top {
  display: flex;
  justify-content: space-between;
  gap: 18px;
  align-items: flex-start;
}

.score-v1-panel h2,
.score-v1-advice h2 {
  margin-bottom: 8px;
}

.score-v1-panel p,
.score-v1-detail p,
.score-v1-advice p {
  color: var(--text-light);
  font-weight: 700;
}

.score-v1-panel-head strong {
  color: var(--primary);
  font-size: 38px;
  white-space: nowrap;
}

.score-v1-progress,
.score-v1-mini-progress {
  margin-top: 22px;
  height: 16px;
  border-radius: 999px;
  background: #f0e3de;
  overflow: hidden;
}

.score-v1-progress div,
.score-v1-mini-progress div {
  height: 100%;
  border-radius: 999px;
  background: linear-gradient(135deg, #f0c85a, var(--primary-light));
}

.score-v1-stats {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 12px;
  margin-top: 18px;
}

.score-v1-stats div {
  background: #fbf2ef;
  border-radius: 20px;
  padding: 16px;
}

.score-v1-stats strong {
  display: block;
  color: var(--primary);
  font-size: 24px;
}

.score-v1-stats span {
  color: var(--text-light);
  font-weight: 800;
}

.score-v1-details {
  margin-top: 28px;
  display: grid;
  gap: 16px;
}

.score-v1-detail.done {
  background: linear-gradient(180deg, #fff, #f8fff9);
}

.score-v1-detail h3 {
  margin-bottom: 6px;
  color: var(--primary);
}

.score-v1-detail-top strong {
  color: var(--primary);
  white-space: nowrap;
}

.score-v1-advice {
  margin-top: 28px;
}

.score-v1-advice-list {
  display: grid;
  gap: 14px;
  margin-top: 18px;
}

.score-v1-advice-list div {
  padding: 18px;
  border-radius: 22px;
  background: #fbf2ef;
}

.score-v1-advice-list strong {
  color: var(--primary);
  font-size: 18px;
}

.score-v1-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  margin-top: 22px;
}

.score-v1-actions a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 13px 18px;
  border-radius: 999px;
  background: linear-gradient(135deg, var(--primary), var(--primary-light));
  color: white;
  text-decoration: none;
  font-weight: 900;
}

@media(max-width: 850px) {
  .score-v1-hero {
    flex-direction: column;
    align-items: flex-start;
  }

  .score-v1-grid {
    grid-template-columns: 1fr;
  }

  .score-v1-panel-head,
  .score-v1-detail-top {
    flex-direction: column;
  }
}

@media(max-width: 520px) {
  .score-v1-hero {
    padding: 30px;
  }

  .score-v1-hero h1 {
    font-size: 34px;
  }

  .score-v1-circle {
    width: 130px;
    height: 130px;
  }

  .score-v1-stats {
    grid-template-columns: 1fr;
  }

  .score-v1-actions a {
    width: 100%;
  }
}

/* source: assets/css/premium.css */
.premium-v5-hero {
  margin-top: 28px;
  padding: 38px;
  border-radius: var(--radius-large);
  color: white;
  background:
    radial-gradient(circle at top right, rgba(255,255,255,.25), transparent 34%),
    linear-gradient(135deg, var(--primary), var(--primary-light));
  box-shadow: 0 22px 55px rgba(123,45,67,.25);
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 28px;
  align-items: center;
}

.premium-v5-badge {
  display: inline-block;
  padding: 8px 14px;
  border-radius: 999px;
  background: rgba(255,255,255,.18);
  font-weight: 900;
  margin-bottom: 16px;
}

.premium-v5-hero h1 {
  color: white;
  font-size: 42px;
  margin-bottom: 12px;
}

.premium-v5-hero p {
  max-width: 650px;
  font-size: 18px;
  opacity: .95;
}

.premium-v5-price {
  background: rgba(255,255,255,.16);
  border: 1px solid rgba(255,255,255,.25);
  border-radius: 28px;
  padding: 24px;
  text-align: center;
  min-width: 210px;
}

.premium-v5-price span {
  display: block;
  font-weight: 800;
  opacity: .9;
}

.premium-v5-price strong {
  display: block;
  font-size: 42px;
  color: white;
  margin: 5px 0;
}

.premium-v5-price small {
  display: block;
  margin-bottom: 18px;
}

.premium-v5-main-btn,
.premium-v5-cta,
.premium-v5-footer-card a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 999px;
  padding: 13px 20px;
  font-weight: 900;
  text-decoration: none;
  transition: var(--transition);
}

.premium-v5-main-btn {
  background: white;
  color: var(--primary);
}

.premium-v5-main-btn:hover,
.premium-v5-cta:hover,
.premium-v5-footer-card a:hover {
  transform: translateY(-2px);
}

.premium-v5-active {
  background: rgba(255,255,255,.18);
  border-radius: 999px;
  padding: 10px 14px;
  font-weight: 900;
}

.premium-v5-grid {
  margin-top: 28px;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 24px;
}

.premium-v5-plan {
  background: var(--surface);
  border-radius: var(--radius-large);
  padding: 28px;
  box-shadow: var(--shadow);
  border: 1px solid var(--border);
}

.premium-v5-plan.premium {
  border: 2px solid rgba(217,108,117,.45);
  box-shadow: var(--shadow-large);
}

.premium-v5-plan-head span {
  font-size: 36px;
  display: block;
  margin-bottom: 10px;
}

.premium-v5-plan h2 {
  font-size: 30px;
  margin-bottom: 8px;
}

.premium-v5-plan-head p {
  color: var(--text-light);
  font-weight: 700;
}

.premium-v5-plan ul {
  list-style: none;
  padding: 0;
  margin: 22px 0 0;
  display: grid;
  gap: 12px;
}

.premium-v5-plan li {
  background: #fbf2ef;
  padding: 12px 14px;
  border-radius: 16px;
  font-weight: 800;
}

.premium-v5-offer-section {
  margin-top: 28px;
  background: var(--surface);
  border-radius: var(--radius-large);
  padding: 30px;
  box-shadow: var(--shadow);
  border: 1px solid var(--border);
}

.premium-v5-offer-head {
  text-align: center;
  max-width: 760px;
  margin: 0 auto 24px;
}

.premium-v5-offer-head h2 {
  margin-bottom: 8px;
}

.premium-v5-offer-head p {
  color: var(--text-light);
  font-weight: 700;
}

.premium-v5-offer-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 18px;
}

.premium-v5-offer-card {
  position: relative;
  background: #fbf2ef;
  border: 1px solid rgba(123,45,67,.10);
  border-radius: var(--radius-large);
  padding: 24px;
  text-align: center;
  display: flex;
  flex-direction: column;
  gap: 12px;
  min-height: 300px;
}

.premium-v5-offer-card.highlighted {
  background: linear-gradient(135deg, rgba(123,45,67,.08), rgba(217,108,117,.18));
  border: 2px solid rgba(217,108,117,.38);
  box-shadow: var(--shadow);
}

.premium-v5-offer-badge {
  width: fit-content;
  margin: 0 auto;
  padding: 6px 11px;
  border-radius: 999px;
  background: white;
  color: var(--primary);
  font-size: 12px;
  font-weight: 950;
  box-shadow: var(--shadow-small);
}

.premium-v5-offer-card h3 {
  font-size: 25px;
  color: var(--primary);
}

.premium-v5-offer-card strong {
  display: block;
  color: var(--primary);
  font-size: 34px;
  line-height: 1;
}

.premium-v5-offer-card p {
  color: var(--text-light);
  font-weight: 700;
  min-height: 44px;
}

.paypal-button-holder {
  margin-top: auto;
  min-height: 48px;
}

.premium-v5-cta {
  margin-top: auto;
  width: 100%;
  background: linear-gradient(135deg, var(--primary), var(--primary-light));
  color: white;
}

.premium-v5-note {
  display: block;
  margin-top: 14px;
  text-align: center;
  color: var(--text-light);
  font-weight: 700;
}

.premium-v5-current {
  margin-top: 18px;
  background: #e7f7ee;
  color: var(--success);
  padding: 14px;
  border-radius: 18px;
  text-align: center;
  font-weight: 900;
}

.premium-v5-benefits {
  margin-top: 28px;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 18px;
}

.premium-v5-benefits article {
  background: var(--surface);
  border-radius: var(--radius-large);
  padding: 24px;
  box-shadow: var(--shadow);
  border: 1px solid var(--border);
}

.premium-v5-benefits span {
  font-size: 34px;
}

.premium-v5-benefits h3 {
  margin-top: 10px;
  color: var(--primary);
}

.premium-v5-benefits p {
  color: var(--text-light);
  font-weight: 700;
}

.premium-v5-footer-card {
  margin-top: 28px;
  background: var(--surface);
  border-radius: var(--radius-large);
  padding: 30px;
  box-shadow: var(--shadow);
  border: 1px solid var(--border);
  text-align: center;
}

.premium-v5-footer-card h2 {
  margin-bottom: 10px;
}

.premium-v5-footer-card p {
  max-width: 720px;
  margin: 0 auto 20px;
  color: var(--text-light);
  font-weight: 700;
}

.premium-v5-footer-card a {
  background: linear-gradient(135deg, var(--primary), var(--primary-light));
  color: white;
}

@media(max-width: 950px) {
  .premium-v5-offer-grid {
    grid-template-columns: 1fr;
  }
}

@media(max-width: 850px) {
  .premium-v5-hero,
  .premium-v5-grid,
  .premium-v5-benefits {
    grid-template-columns: 1fr;
  }

  .premium-v5-hero {
    padding: 30px;
  }

  .premium-v5-hero h1 {
    font-size: 34px;
  }

  .premium-v5-price {
    min-width: 0;
  }
}

@media(max-width: 520px) {
  .premium-v5-hero,
  .premium-v5-offer-section {
    padding: 24px;
    border-radius: 26px;
  }

  .premium-v5-hero h1 {
    font-size: 30px;
  }

  .premium-v5-hero p {
    font-size: 16px;
  }

  .premium-v5-plan,
  .premium-v5-footer-card,
  .premium-v5-benefits article,
  .premium-v5-offer-card {
    padding: 22px;
  }
}

/* =====================================================
   Admin indicator PayPal mode on Premium page
===================================================== */

.premium-paypal-admin-mode {
  margin-top: 18px;
  padding: 12px 16px;
  border-radius: 18px;
  font-weight: 950;
  text-align: center;
  box-shadow: var(--shadow-small);
}

.premium-paypal-admin-mode.sandbox {
  background: #fff3cd;
  color: #8a5a00;
  border: 1px solid rgba(154,90,0,.18);
}

.premium-paypal-admin-mode.live {
  background: #e6f8ed;
  color: var(--success);
  border: 1px solid rgba(31,138,76,.18);
}

/* Correctif P0 : le paiement est désormais une action POST protégée. */
.premium-v5-payment-form {
  width: 100%;
  margin-top: auto;
}

button.premium-v5-cta {
  border: 0;
  cursor: pointer;
  font: inherit;
}

button.premium-v5-cta:disabled {
  cursor: not-allowed;
  opacity: .62;
  transform: none;
}

/* =====================================================
   P10.2 — Page Premium actualisée
===================================================== */

.premium-v6-hero {
  margin-top: 28px;
  padding: clamp(26px, 4vw, 42px);
  border-radius: var(--radius-large);
  color: #fff;
  background:
    radial-gradient(circle at 88% 12%, rgba(255,255,255,.22), transparent 32%),
    linear-gradient(135deg, var(--primary), var(--primary-light));
  box-shadow: 0 22px 55px rgba(123,45,67,.25);
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(220px, 270px);
  gap: 30px;
  align-items: center;
}

.premium-v6-hero h1 {
  margin: 0 0 14px;
  color: #fff;
  font-size: clamp(2rem, 4vw, 2.8rem);
  line-height: 1.08;
}

.premium-v6-hero-copy > p {
  max-width: 720px;
  margin: 0;
  color: rgba(255,255,255,.95);
  font-size: 1.08rem;
  line-height: 1.65;
}

.premium-v6-hero .premium-v5-badge {
  display: inline-flex;
  align-items: center;
  gap: 8px;
}

.premium-v6-hero .premium-v5-badge .ui-icon {
  width: 19px;
  height: 19px;
}

.premium-v6-trust {
  margin-top: 22px;
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}

.premium-v6-trust span {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  padding: 8px 11px;
  border: 1px solid rgba(255,255,255,.24);
  border-radius: 999px;
  background: rgba(255,255,255,.12);
  color: #fff;
  font-size: .88rem;
  font-weight: 800;
}

.premium-v6-trust .ui-icon,
.premium-v6-reassurance li .ui-icon {
  width: 17px;
  height: 17px;
  flex: 0 0 auto;
}

.premium-v6-status-icon {
  display: flex !important;
  justify-content: center;
  margin: 10px auto !important;
}

.premium-v6-status-icon .ui-icon {
  width: 48px;
  height: 48px;
}

.premium-v6-highlights {
  margin-top: 24px;
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(190px, 1fr));
  gap: 14px;
}

.premium-v6-highlights article {
  min-height: 108px;
  padding: 20px;
  display: flex;
  align-items: center;
  gap: 14px;
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: 22px;
  box-shadow: var(--shadow-small);
}

.premium-v6-highlights strong,
.premium-v6-highlights span {
  display: block;
}

.premium-v6-highlights strong {
  margin-bottom: 4px;
  color: var(--primary);
  font-size: 1.02rem;
}

.premium-v6-highlights span {
  color: var(--text-light);
  line-height: 1.4;
  font-weight: 700;
  font-size: .9rem;
}

.premium-v6-icon {
  width: 32px;
  height: 32px;
  flex: 0 0 auto;
  color: var(--primary);
}

.premium-v6-comparison,
.premium-v6-modules,
.premium-v6-reassurance {
  margin-top: 28px;
  padding: clamp(24px, 4vw, 34px);
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: var(--radius-large);
  box-shadow: var(--shadow);
}

.premium-v6-comparison > header,
.premium-v6-modules > header {
  max-width: 760px;
  margin-bottom: 22px;
}

.premium-v6-comparison h2,
.premium-v6-modules h2,
.premium-v6-reassurance h2 {
  margin: 5px 0 8px;
}

.premium-v6-comparison header p,
.premium-v6-modules header p {
  color: var(--text-light);
  font-weight: 700;
}

.premium-v6-kicker {
  color: var(--primary);
  font-size: .8rem;
  font-weight: 950;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.premium-v6-table-wrap {
  overflow-x: auto;
  border: 1px solid var(--border);
  border-radius: 20px;
}

.premium-v6-table {
  width: 100%;
  min-width: 620px;
  border-collapse: collapse;
  background: #fff;
}

.premium-v6-table th,
.premium-v6-table td {
  padding: 15px 18px;
  border-bottom: 1px solid var(--border);
  text-align: left;
  vertical-align: middle;
}

.premium-v6-table thead th {
  background: #fbf2ef;
  color: var(--primary);
  font-weight: 950;
}

.premium-v6-table tbody th {
  width: 34%;
  color: var(--text);
  font-weight: 900;
}

.premium-v6-table tbody tr:last-child th,
.premium-v6-table tbody tr:last-child td {
  border-bottom: 0;
}

.premium-v6-positive {
  color: var(--success);
  font-weight: 900;
}

.premium-v6-module-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 16px;
}

.premium-v6-module-grid article {
  display: flex;
  gap: 15px;
  padding: 20px;
  border: 1px solid rgba(123,45,67,.13);
  border-radius: 20px;
  background: #fbf2ef;
}

.premium-v6-module-icon {
  width: 46px;
  height: 46px;
  display: grid;
  place-items: center;
  flex: 0 0 auto;
  border-radius: 15px;
  color: #fff;
  background: linear-gradient(135deg, var(--primary), var(--primary-light));
}

.premium-v6-module-icon .ui-icon {
  width: 23px;
  height: 23px;
}

.premium-v6-module-grid h3 {
  margin: 0 0 5px;
  color: var(--primary);
}

.premium-v6-module-grid p {
  margin: 0;
  color: var(--text-light);
  font-weight: 700;
  line-height: 1.5;
}

.premium-v6-module-grid a {
  display: inline-flex;
  margin-top: 10px;
  color: var(--primary);
  font-weight: 900;
}

.premium-v6-reassurance > div {
  display: flex;
  align-items: center;
  gap: 13px;
}

.premium-v6-reassurance ul {
  margin: 20px 0;
  padding: 0;
  list-style: none;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px 18px;
}

.premium-v6-reassurance li {
  display: flex;
  align-items: flex-start;
  gap: 9px;
  font-weight: 800;
  color: var(--text);
}

.premium-v6-reassurance li .ui-icon {
  margin-top: 2px;
  color: var(--success);
}

.premium-v6-reassurance > a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 46px;
  padding: 11px 18px;
  border-radius: 999px;
  color: #fff;
  background: linear-gradient(135deg, var(--primary), var(--primary-light));
  font-weight: 900;
  text-decoration: none;
}



/* P10.3 — Appels explicitement présentés sur la page Premium */
.premium-v7-calls,
.premium-v7-faq {
  margin-top: 28px;
  padding: clamp(24px, 4vw, 36px);
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: var(--radius-large);
  box-shadow: var(--shadow);
}

.premium-v7-calls {
  display: grid;
  grid-template-columns: minmax(0, 1.35fr) minmax(250px, .65fr);
  gap: 26px;
  align-items: stretch;
  background:
    radial-gradient(circle at 92% 8%, rgba(123,45,67,.10), transparent 34%),
    var(--surface);
}

.premium-v7-calls h2,
.premium-v7-faq h2 {
  margin: 5px 0 10px;
}

.premium-v7-calls-copy > p {
  max-width: 760px;
  margin: 0;
  color: var(--text-light);
  font-weight: 700;
  line-height: 1.65;
}

.premium-v7-call-list {
  margin: 20px 0 0;
  padding: 0;
  list-style: none;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px 18px;
}

.premium-v7-call-list li {
  display: flex;
  align-items: flex-start;
  gap: 9px;
  color: var(--text);
  font-weight: 800;
  line-height: 1.45;
}

.premium-v7-call-list .ui-icon {
  width: 18px;
  height: 18px;
  margin-top: 2px;
  flex: 0 0 auto;
  color: var(--success);
}

.premium-v7-call-actions {
  margin-top: 22px;
}

.premium-v7-call-actions .premium-v5-main-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
}

.premium-v7-call-actions .ui-icon {
  width: 18px;
  height: 18px;
}

.premium-v7-call-note {
  display: inline-flex;
  padding: 11px 14px;
  border-radius: 14px;
  background: #fbf2ef;
  color: var(--text-light);
  font-weight: 800;
}

.premium-v7-call-panel {
  padding: 24px;
  border-radius: 24px;
  color: #fff;
  text-align: center;
  background: linear-gradient(145deg, #552033, var(--primary), var(--primary-light));
  box-shadow: 0 18px 38px rgba(85,32,51,.24);
}

.premium-v7-call-symbol {
  width: 76px;
  height: 76px;
  margin: 20px auto 14px;
  display: grid;
  place-items: center;
  border-radius: 24px;
  background: rgba(255,255,255,.14);
  border: 1px solid rgba(255,255,255,.22);
}

.premium-v7-call-symbol .ui-icon {
  width: 38px;
  height: 38px;
}

.premium-v7-call-panel strong {
  display: block;
  font-size: 1.35rem;
}

.premium-v7-call-panel p {
  margin: 8px 0;
  color: rgba(255,255,255,.92);
  line-height: 1.5;
  font-weight: 700;
}

.premium-v7-call-panel small {
  color: rgba(255,255,255,.74);
  line-height: 1.45;
}

.premium-v7-call-status {
  display: inline-flex;
  padding: 7px 10px;
  border-radius: 999px;
  background: rgba(255,255,255,.14);
  border: 1px solid rgba(255,255,255,.22);
  font-size: .8rem;
  font-weight: 950;
}

.premium-v7-call-status.is-premium { background: rgba(255,215,106,.20); }
.premium-v7-call-status.is-free { background: rgba(100,220,165,.20); }
.premium-v7-call-status.is-closed { background: rgba(255,255,255,.10); }

.premium-v7-emphasis-row th,
.premium-v7-emphasis-row td {
  background: #fff8f5;
}

.premium-v7-emphasis-row th {
  color: var(--primary) !important;
}

.premium-v7-faq > header {
  margin-bottom: 18px;
}

.premium-v7-faq-list {
  display: grid;
  gap: 12px;
}

.premium-v7-faq details {
  border: 1px solid var(--border);
  border-radius: 16px;
  background: #fff;
  overflow: hidden;
}

.premium-v7-faq summary {
  padding: 16px 18px;
  cursor: pointer;
  color: var(--primary);
  font-weight: 950;
}

.premium-v7-faq details[open] summary {
  border-bottom: 1px solid var(--border);
  background: #fbf2ef;
}

.premium-v7-faq details p {
  margin: 0;
  padding: 16px 18px 18px;
  color: var(--text-light);
  font-weight: 700;
  line-height: 1.6;
}

@media (max-width: 1050px) {
  .premium-v6-highlights {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 820px) {
  .premium-v6-hero,
  .premium-v6-module-grid,
  .premium-v6-reassurance ul,
  .premium-v7-calls,
  .premium-v7-call-list {
    grid-template-columns: 1fr;
  }

  .premium-v6-hero .premium-v5-price {
    width: 100%;
  }
}

@media (max-width: 560px) {
  .premium-v6-highlights {
    grid-template-columns: 1fr;
  }

  .premium-v6-highlights article {
    min-height: 0;
  }

  .premium-v6-comparison,
  .premium-v6-modules,
  .premium-v6-reassurance,
  .premium-v7-calls,
  .premium-v7-faq {
    border-radius: 24px;
  }
}

/* DuoMystère — bandeau Premium très compact */
.premium-mystery-card--mini {
  margin: 18px 0;
  padding: 10px 12px;
  display: grid;
  grid-template-columns: 72px minmax(0, 1fr) auto;
  gap: 14px;
  align-items: center;
  min-height: 96px;
  color: #fff;
  background: linear-gradient(135deg, #171228, #211832);
  border: 1px solid rgba(232, 199, 126, .24);
  border-radius: 16px;
  box-shadow: 0 10px 28px rgba(18, 12, 34, .16);
  overflow: hidden;
}

.premium-mystery-card--mini .premium-mystery-visual {
  width: 72px;
  height: 72px;
  aspect-ratio: 1;
  border-radius: 11px;
  overflow: hidden;
  background: #0f0b19;
  box-shadow: 0 6px 16px rgba(0, 0, 0, .28);
}

.premium-mystery-card--mini .premium-mystery-visual img {
  width: 100%;
  height: 100%;
  display: block;
  object-fit: cover;
}

.premium-mystery-card--mini .premium-mystery-content {
  min-width: 0;
}

.premium-mystery-heading {
  display: flex;
  align-items: center;
  gap: 9px;
  margin-bottom: 3px;
}

.premium-mystery-card--mini .premium-mystery-label {
  display: inline-flex;
  padding: 4px 7px;
  border-radius: 999px;
  color: #2d1b00;
  background: #edca7c;
  font-size: .65rem;
  line-height: 1;
  font-weight: 800;
  letter-spacing: .03em;
  text-transform: uppercase;
  white-space: nowrap;
}

.premium-mystery-card--mini h2 {
  margin: 0;
  color: #fff;
  font-size: 1.25rem;
  line-height: 1.1;
}

.premium-mystery-card--mini .premium-mystery-intro {
  margin: 0;
  max-width: 760px;
  color: rgba(255, 255, 255, .72);
  font-size: .84rem;
  line-height: 1.4;
}

.premium-mystery-card--mini .premium-mystery-cta {
  padding: 8px 12px;
  font-size: .82rem;
  line-height: 1.1;
  white-space: nowrap;
  border-radius: 10px;
}

@media (max-width: 680px) {
  .premium-mystery-card--mini {
    grid-template-columns: 56px minmax(0, 1fr);
    gap: 10px;
    min-height: 76px;
    padding: 9px;
  }

  .premium-mystery-card--mini .premium-mystery-visual {
    width: 56px;
    height: 56px;
    border-radius: 9px;
  }

  .premium-mystery-card--mini .premium-mystery-cta {
    grid-column: 2;
    justify-self: start;
    margin-top: 2px;
    padding: 6px 10px;
    font-size: .76rem;
  }

  .premium-mystery-card--mini h2 {
    font-size: 1.05rem;
  }

  .premium-mystery-card--mini .premium-mystery-label {
    font-size: .58rem;
  }

  .premium-mystery-card--mini .premium-mystery-intro {
    font-size: .76rem;
    line-height: 1.3;
  }
}

@media (max-width: 420px) {
  .premium-mystery-card--mini .premium-mystery-intro {
    display: none;
  }

  .premium-mystery-card--mini {
    min-height: 70px;
  }
}

/* source: assets/css/coach-duolocal.css */
.coach-v1-hero {
  margin-top: 28px;
  padding: 38px;
  border-radius: var(--radius-large);
  color: white;
  background:
    radial-gradient(circle at top right, rgba(255,255,255,.25), transparent 34%),
    linear-gradient(135deg, var(--primary), var(--primary-light));
  box-shadow: 0 22px 55px rgba(123,45,67,.25);
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 24px;
  align-items: center;
}

.coach-v1-hero h1 {
  color: white;
  font-size: 42px;
  margin-bottom: 10px;
}

.coach-v1-hero p {
  font-size: 18px;
  max-width: 680px;
  opacity: .95;
}

.coach-v1-badge {
  display: inline-block;
  padding: 8px 14px;
  border-radius: 999px;
  background: rgba(255,255,255,.18);
  font-weight: 900;
  margin-bottom: 15px;
}

.coach-v1-score {
  min-width: 210px;
  text-align: center;
  padding: 22px;
  border-radius: 26px;
  background: rgba(255,255,255,.16);
  border: 1px solid rgba(255,255,255,.25);
}

.coach-v1-score span,
.coach-v1-score small {
  display: block;
  font-weight: 800;
  opacity: .9;
}

.coach-v1-score strong {
  display: block;
  color: white;
  font-size: 48px;
  line-height: 1;
  margin: 8px 0;
}

.coach-v1-grid {
  margin-top: 28px;
  display: grid;
  grid-template-columns: 1.5fr 1fr;
  gap: 24px;
}

.coach-v1-panel,
.coach-v1-checklist,
.coach-v1-actions {
  background: var(--surface);
  border-radius: var(--radius-large);
  padding: 28px;
  box-shadow: var(--shadow);
  border: 1px solid var(--border);
}

.coach-v1-panel h2,
.coach-v1-checklist h2 {
  margin-bottom: 18px;
}

.coach-v1-tips {
  display: grid;
  gap: 14px;
}

.coach-v1-tip {
  display: flex;
  justify-content: space-between;
  gap: 18px;
  padding: 16px;
  border-radius: 20px;
  background: #fbf2ef;
}

.coach-v1-tip strong {
  color: var(--primary);
}

.coach-v1-tip p,
.coach-v1-success p {
  color: var(--text-light);
  font-weight: 700;
  margin-top: 5px;
}

.coach-v1-tip > span {
  align-self: flex-start;
  white-space: nowrap;
  padding: 7px 10px;
  border-radius: 999px;
  background: linear-gradient(135deg, var(--primary), var(--primary-light));
  color: white;
  font-weight: 900;
}

.coach-v1-success {
  text-align: center;
  padding: 26px;
  border-radius: 24px;
  background: #e7f7ee;
  color: var(--success);
}

.coach-v1-success span {
  display: block;
  font-size: 42px;
  margin-bottom: 10px;
}

.coach-v1-stats {
  display: grid;
  gap: 14px;
}

.coach-v1-stats div {
  padding: 16px;
  border-radius: 20px;
  background: #fbf2ef;
}

.coach-v1-stats span {
  font-size: 26px;
}

.coach-v1-stats strong {
  display: block;
  color: var(--primary);
  font-size: 32px;
  line-height: 1;
  margin: 6px 0;
}

.coach-v1-stats small {
  color: var(--text-light);
  font-weight: 800;
}

.coach-v1-checklist {
  margin-top: 28px;
}

.coach-v1-checks {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(250px, 1fr));
  gap: 16px;
}

.coach-v1-check {
  display: flex;
  gap: 13px;
  padding: 16px;
  border-radius: 20px;
  background: #fbf2ef;
  border: 1px solid rgba(123,45,67,.08);
}

.coach-v1-check.ok {
  background: #e7f7ee;
}

.coach-v1-check span {
  font-size: 24px;
}

.coach-v1-check strong {
  color: var(--primary);
}

.coach-v1-check p {
  color: var(--text-light);
  font-weight: 700;
  margin-top: 4px;
}

.coach-v1-actions {
  margin-top: 28px;
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
}

.coach-v1-actions a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 13px 18px;
  border-radius: 999px;
  text-decoration: none;
  color: white;
  font-weight: 900;
  background: linear-gradient(135deg, var(--primary), var(--primary-light));
  transition: var(--transition);
}

.coach-v1-actions a:hover {
  transform: translateY(-2px);
}

@media(max-width: 850px) {
  .coach-v1-hero,
  .coach-v1-grid {
    grid-template-columns: 1fr;
  }

  .coach-v1-hero {
    padding: 30px;
  }

  .coach-v1-hero h1 {
    font-size: 34px;
  }

  .coach-v1-score {
    min-width: 0;
  }
}

@media(max-width: 520px) {
  .coach-v1-hero,
  .coach-v1-panel,
  .coach-v1-checklist,
  .coach-v1-actions {
    padding: 22px;
    border-radius: 26px;
  }

  .coach-v1-hero h1 {
    font-size: 30px;
  }

  .coach-v1-tip {
    flex-direction: column;
  }

  .coach-v1-actions a {
    width: 100%;
  }
}

/* =====================================================
   RC2.1 — Coach : outils Premium en petits boutons
===================================================== */
.coach-v1-premium-tools {
  margin-top: 28px;
  background: var(--surface);
  border-radius: var(--radius-large);
  padding: 26px;
  box-shadow: var(--shadow);
  border: 1px solid var(--border);
}

.coach-v1-premium-tools h2 {
  margin-bottom: 16px;
}

.coach-v1-tool-grid {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
}

.coach-v1-tool-grid a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  min-height: 42px;
  padding: 10px 15px;
  border-radius: 999px;
  background: #fbf2ef;
  color: var(--primary);
  text-decoration: none;
  font-weight: 900;
  border: 1px solid rgba(123,45,67,.10);
  box-shadow: var(--shadow-small);
  transition: var(--transition);
}

.coach-v1-tool-grid a:hover {
  transform: translateY(-2px);
  background: white;
}

.coach-v1-tool-grid a span {
  font-size: 18px;
}

.coach-v1-tool-grid a small {
  display: none;
}

@media(max-width: 520px) {
  .coach-v1-tool-grid {
    display: grid;
    grid-template-columns: 1fr;
  }

  .coach-v1-tool-grid a {
    width: 100%;
  }
}

/* source: assets/css/compatibilite.css */
.compat-v1-hero {
  margin-top: 28px;
  padding: 38px;
  border-radius: var(--radius-large);
  color: white;
  background:
    radial-gradient(circle at top right, rgba(255,255,255,.26), transparent 35%),
    linear-gradient(135deg, var(--primary), var(--primary-light));
  box-shadow: 0 22px 55px rgba(123,45,67,.25);
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 24px;
  align-items: center;
}

.compat-v1-badge {
  display: inline-block;
  padding: 8px 14px;
  border-radius: 999px;
  background: rgba(255,255,255,.18);
  font-weight: 900;
  margin-bottom: 14px;
}

.compat-v1-hero h1 {
  color: white;
  font-size: 42px;
  margin-bottom: 10px;
}

.compat-v1-hero p {
  max-width: 720px;
  font-size: 18px;
  opacity: .95;
}

.compat-v1-score {
  min-width: 190px;
  padding: 22px;
  border-radius: 26px;
  background: rgba(255,255,255,.16);
  border: 1px solid rgba(255,255,255,.25);
  text-align: center;
}

.compat-v1-score span,
.compat-v1-score small {
  display: block;
  font-weight: 800;
  opacity: .92;
}

.compat-v1-score strong {
  display: block;
  color: white;
  font-size: 42px;
  line-height: 1;
  margin: 8px 0;
}

.compat-v1-grid {
  margin-top: 28px;
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(310px, 1fr));
  gap: 24px;
}

.compat-v1-card {
  background: var(--surface);
  border-radius: var(--radius-large);
  overflow: hidden;
  box-shadow: var(--shadow);
  border: 1px solid var(--border);
  transition: var(--transition);
}

.compat-v1-card:hover {
  transform: translateY(-5px);
  box-shadow: var(--shadow-large);
}

.compat-v1-photo {
  position: relative;
  aspect-ratio: 16 / 10;
  overflow: hidden;
  background: #f3eeee;
}

.compat-v1-photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.compat-v1-photo-empty {
  width: 100%;
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 70px;
}

.compat-v1-percent {
  position: absolute;
  right: 14px;
  top: 14px;
  min-width: 66px;
  height: 66px;
  border-radius: 50%;
  background: rgba(255,255,255,.94);
  color: var(--primary);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 20px;
  font-weight: 950;
  box-shadow: var(--shadow);
}

.compat-v1-content {
  padding: 22px;
}

.compat-v1-content h2 {
  font-size: 25px;
  margin-bottom: 8px;
}

.compat-v1-meta {
  color: var(--text-light);
  font-weight: 800;
  margin-bottom: 14px;
}

.compat-v1-bar {
  height: 13px;
  border-radius: 999px;
  overflow: hidden;
  background: #f0e3de;
  margin-bottom: 12px;
}

.compat-v1-bar div {
  height: 100%;
  border-radius: 999px;
  background: linear-gradient(135deg, var(--primary), var(--primary-light));
}

.compat-v1-label {
  display: block;
  color: var(--primary);
  margin-bottom: 14px;
}

.compat-v1-reasons {
  list-style: none;
  padding: 0;
  margin: 0;
  display: grid;
  gap: 9px;
}

.compat-v1-reasons li {
  background: #fbf2ef;
  border-radius: 14px;
  padding: 10px 12px;
  font-weight: 800;
  color: var(--text);
}

.compat-v1-differences {
  margin-top: 12px;
  display: grid;
  gap: 8px;
}

.compat-v1-differences span {
  background: #fff8e8;
  color: #8a5b00;
  border-radius: 14px;
  padding: 9px 12px;
  font-weight: 800;
}

.compat-v1-actions {
  margin-top: 18px;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px;
}

.compat-v1-actions a,
.compat-v1-empty a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 12px 14px;
  border-radius: 999px;
  background: linear-gradient(135deg, var(--primary), var(--primary-light));
  color: white;
  font-weight: 900;
  text-decoration: none;
}

.compat-v1-empty {
  margin-top: 28px;
  background: var(--surface);
  border-radius: var(--radius-large);
  padding: 30px;
  box-shadow: var(--shadow);
  border: 1px solid var(--border);
  text-align: center;
}

.compat-v1-empty p {
  color: var(--text-light);
  font-weight: 700;
  margin: 10px 0 18px;
}

@media(max-width: 850px) {
  .compat-v1-hero {
    grid-template-columns: 1fr;
    padding: 30px;
  }

  .compat-v1-hero h1 {
    font-size: 34px;
  }

  .compat-v1-score {
    min-width: 0;
  }
}

@media(max-width: 520px) {
  .compat-v1-grid {
    grid-template-columns: 1fr;
  }

  .compat-v1-hero {
    padding: 24px;
    border-radius: 26px;
  }

  .compat-v1-actions {
    grid-template-columns: 1fr;
  }
}

/* source: assets/css/jeux-duo.css */
.questions-duo-hero,
.jeux-duo-hero {
  margin-top: 28px;
  padding: 38px;
  border-radius: var(--radius-large);
  color: white;
  background:
    radial-gradient(circle at top right, rgba(255,255,255,.25), transparent 34%),
    linear-gradient(135deg, var(--primary), var(--primary-light));
  box-shadow: 0 22px 55px rgba(123,45,67,.25);
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 24px;
  align-items: center;
}

.questions-duo-badge,
.jeux-duo-badge {
  display: inline-block;
  padding: 8px 14px;
  border-radius: 999px;
  background: rgba(255,255,255,.18);
  font-weight: 900;
  margin-bottom: 14px;
}

.questions-duo-hero h1,
.jeux-duo-hero h1 {
  color: white;
  font-size: 42px;
  margin-bottom: 10px;
}

.questions-duo-hero p,
.jeux-duo-hero p {
  max-width: 700px;
  font-size: 18px;
  opacity: .95;
}

.questions-duo-mini-card,
.jeux-duo-score {
  min-width: 190px;
  padding: 22px;
  border-radius: 26px;
  background: rgba(255,255,255,.16);
  border: 1px solid rgba(255,255,255,.25);
  text-align: center;
}

.questions-duo-mini-card span,
.questions-duo-mini-card small,
.jeux-duo-score span,
.jeux-duo-score small {
  display: block;
  font-weight: 800;
  opacity: .92;
}

.questions-duo-mini-card strong,
.jeux-duo-score strong {
  display: block;
  color: white;
  font-size: 42px;
  line-height: 1;
  margin: 8px 0;
}

.questions-duo-layout,
.jeux-duo-layout {
  margin-top: 28px;
  display: grid;
  gap: 24px;
}

.questions-duo-panel,
.questions-duo-send,
.questions-duo-empty,
.jeux-duo-panel,
.jeux-duo-send,
.jeux-duo-info,
.jeux-duo-empty {
  background: var(--surface);
  border-radius: var(--radius-large);
  padding: 28px;
  box-shadow: var(--shadow);
  border: 1px solid var(--border);
}

.questions-duo-panel h2,
.jeux-duo-panel h2,
.jeux-duo-info h2 {
  margin-bottom: 18px;
}

.questions-duo-members,
.jeux-duo-members {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(170px, 1fr));
  gap: 14px;
}

.questions-duo-member,
.jeux-duo-member {
  position: relative;
  display: grid;
  gap: 7px;
  padding: 14px;
  border-radius: 22px;
  background: #fbf2ef;
  cursor: pointer;
  border: 2px solid transparent;
  transition: var(--transition);
}

.questions-duo-member:hover,
.jeux-duo-member:hover {
  transform: translateY(-3px);
}

.questions-duo-member input,
.jeux-duo-member input,
.questions-duo-card input,
.jeux-duo-game input {
  position: absolute;
  opacity: 0;
  pointer-events: none;
}

.questions-duo-member:has(input:checked),
.jeux-duo-member:has(input:checked) {
  border-color: var(--primary-light);
  background: white;
  box-shadow: var(--shadow-small);
}

.questions-duo-member img,
.jeux-duo-member img,
.questions-duo-avatar,
.jeux-duo-avatar {
  width: 68px;
  height: 68px;
  border-radius: 50%;
  object-fit: cover;
}

.questions-duo-avatar,
.jeux-duo-avatar {
  display: flex;
  align-items: center;
  justify-content: center;
  background: #f1e5e2;
  font-size: 30px;
}

.questions-duo-member strong,
.jeux-duo-member strong {
  color: var(--primary);
}

.questions-duo-member small,
.jeux-duo-member small,
.jeux-duo-info p,
.questions-duo-send p,
.jeux-duo-send p,
.questions-duo-empty p,
.jeux-duo-empty p {
  color: var(--text-light);
  font-weight: 700;
}

.questions-duo-cards,
.jeux-duo-games {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(230px, 1fr));
  gap: 16px;
}

.questions-duo-card,
.jeux-duo-game {
  position: relative;
  display: block;
  min-height: 210px;
  padding: 22px;
  border-radius: 26px;
  background: #fbf2ef;
  border: 2px solid transparent;
  cursor: pointer;
  transition: var(--transition);
}

.questions-duo-card:hover,
.jeux-duo-game:hover {
  transform: translateY(-4px);
  box-shadow: var(--shadow);
}

.questions-duo-card:has(input:checked),
.jeux-duo-game:has(input:checked) {
  background: white;
  border-color: var(--primary-light);
  box-shadow: var(--shadow);
}

.questions-duo-card > span,
.jeux-duo-game > span {
  display: block;
  font-size: 34px;
  margin-bottom: 12px;
}

.questions-duo-card strong,
.jeux-duo-game strong {
  display: block;
  color: var(--primary);
  font-size: 20px;
  margin-bottom: 5px;
}

.questions-duo-card small,
.jeux-duo-game small {
  display: inline-block;
  margin-bottom: 12px;
  color: var(--primary-light);
  font-weight: 900;
}

.questions-duo-card p,
.jeux-duo-game p {
  color: var(--text-light);
  font-weight: 700;
  line-height: 1.45;
}

.questions-duo-send,
.jeux-duo-send {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 18px;
}

.questions-duo-send button,
.jeux-duo-send button,
.questions-duo-empty a,
.jeux-duo-empty a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 13px 20px;
  border-radius: 999px;
  border: none;
  background: linear-gradient(135deg, var(--primary), var(--primary-light));
  color: white;
  text-decoration: none;
  font-weight: 950;
  cursor: pointer;
}

.questions-duo-empty,
.jeux-duo-empty {
  margin-top: 28px;
  text-align: center;
}

.questions-duo-empty p,
.jeux-duo-empty p {
  margin: 10px auto 20px;
  max-width: 620px;
}

@media(max-width: 850px) {
  .questions-duo-hero,
  .jeux-duo-hero,
  .questions-duo-send,
  .jeux-duo-send {
    grid-template-columns: 1fr;
  }

  .questions-duo-send,
  .jeux-duo-send {
    align-items: stretch;
  }

  .questions-duo-send button,
  .jeux-duo-send button {
    width: 100%;
  }
}

@media(max-width: 560px) {
  .questions-duo-hero,
  .jeux-duo-hero,
  .questions-duo-panel,
  .questions-duo-send,
  .questions-duo-empty,
  .jeux-duo-panel,
  .jeux-duo-send,
  .jeux-duo-info,
  .jeux-duo-empty {
    padding: 22px;
  }

  .questions-duo-hero h1,
  .jeux-duo-hero h1 {
    font-size: 32px;
  }

  .questions-duo-hero p,
  .jeux-duo-hero p {
    font-size: 16px;
  }

  .questions-duo-members,
  .jeux-duo-members,
  .questions-duo-cards,
  .jeux-duo-games {
    grid-template-columns: 1fr;
  }
}

/* source: assets/css/questions-duo.css */
.questions-duo-hero,
.jeux-duo-hero {
  margin-top: 28px;
  padding: 38px;
  border-radius: var(--radius-large);
  color: white;
  background:
    radial-gradient(circle at top right, rgba(255,255,255,.25), transparent 34%),
    linear-gradient(135deg, var(--primary), var(--primary-light));
  box-shadow: 0 22px 55px rgba(123,45,67,.25);
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 24px;
  align-items: center;
}

.questions-duo-badge,
.jeux-duo-badge {
  display: inline-block;
  padding: 8px 14px;
  border-radius: 999px;
  background: rgba(255,255,255,.18);
  font-weight: 900;
  margin-bottom: 14px;
}

.questions-duo-hero h1,
.jeux-duo-hero h1 {
  color: white;
  font-size: 42px;
  margin-bottom: 10px;
}

.questions-duo-hero p,
.jeux-duo-hero p {
  max-width: 700px;
  font-size: 18px;
  opacity: .95;
}

.questions-duo-mini-card,
.jeux-duo-score {
  min-width: 190px;
  padding: 22px;
  border-radius: 26px;
  background: rgba(255,255,255,.16);
  border: 1px solid rgba(255,255,255,.25);
  text-align: center;
}

.questions-duo-mini-card span,
.questions-duo-mini-card small,
.jeux-duo-score span,
.jeux-duo-score small {
  display: block;
  font-weight: 800;
  opacity: .92;
}

.questions-duo-mini-card strong,
.jeux-duo-score strong {
  display: block;
  color: white;
  font-size: 42px;
  line-height: 1;
  margin: 8px 0;
}

.questions-duo-layout,
.jeux-duo-layout {
  margin-top: 28px;
  display: grid;
  gap: 24px;
}

.questions-duo-panel,
.questions-duo-send,
.questions-duo-empty,
.jeux-duo-panel,
.jeux-duo-send,
.jeux-duo-info,
.jeux-duo-empty {
  background: var(--surface);
  border-radius: var(--radius-large);
  padding: 28px;
  box-shadow: var(--shadow);
  border: 1px solid var(--border);
}

.questions-duo-panel h2,
.jeux-duo-panel h2,
.jeux-duo-info h2 {
  margin-bottom: 18px;
}

.questions-duo-members,
.jeux-duo-members {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(170px, 1fr));
  gap: 14px;
}

.questions-duo-member,
.jeux-duo-member {
  position: relative;
  display: grid;
  gap: 7px;
  padding: 14px;
  border-radius: 22px;
  background: #fbf2ef;
  cursor: pointer;
  border: 2px solid transparent;
  transition: var(--transition);
}

.questions-duo-member:hover,
.jeux-duo-member:hover {
  transform: translateY(-3px);
}

.questions-duo-member input,
.jeux-duo-member input,
.questions-duo-card input,
.jeux-duo-game input {
  position: absolute;
  opacity: 0;
  pointer-events: none;
}

.questions-duo-member:has(input:checked),
.jeux-duo-member:has(input:checked) {
  border-color: var(--primary-light);
  background: white;
  box-shadow: var(--shadow-small);
}

.questions-duo-member img,
.jeux-duo-member img,
.questions-duo-avatar,
.jeux-duo-avatar {
  width: 68px;
  height: 68px;
  border-radius: 50%;
  object-fit: cover;
}

.questions-duo-avatar,
.jeux-duo-avatar {
  display: flex;
  align-items: center;
  justify-content: center;
  background: #f1e5e2;
  font-size: 30px;
}

.questions-duo-member strong,
.jeux-duo-member strong {
  color: var(--primary);
}

.questions-duo-member small,
.jeux-duo-member small,
.jeux-duo-info p,
.questions-duo-send p,
.jeux-duo-send p,
.questions-duo-empty p,
.jeux-duo-empty p {
  color: var(--text-light);
  font-weight: 700;
}

.questions-duo-cards,
.jeux-duo-games {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(230px, 1fr));
  gap: 16px;
}

.questions-duo-card,
.jeux-duo-game {
  position: relative;
  display: block;
  min-height: 210px;
  padding: 22px;
  border-radius: 26px;
  background: #fbf2ef;
  border: 2px solid transparent;
  cursor: pointer;
  transition: var(--transition);
}

.questions-duo-card:hover,
.jeux-duo-game:hover {
  transform: translateY(-4px);
  box-shadow: var(--shadow);
}

.questions-duo-card:has(input:checked),
.jeux-duo-game:has(input:checked) {
  background: white;
  border-color: var(--primary-light);
  box-shadow: var(--shadow);
}

.questions-duo-card > span,
.jeux-duo-game > span {
  display: block;
  font-size: 34px;
  margin-bottom: 12px;
}

.questions-duo-card strong,
.jeux-duo-game strong {
  display: block;
  color: var(--primary);
  font-size: 20px;
  margin-bottom: 5px;
}

.questions-duo-card small,
.jeux-duo-game small {
  display: inline-block;
  margin-bottom: 12px;
  color: var(--primary-light);
  font-weight: 900;
}

.questions-duo-card p,
.jeux-duo-game p {
  color: var(--text-light);
  font-weight: 700;
  line-height: 1.45;
}

.questions-duo-send,
.jeux-duo-send {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 18px;
}

.questions-duo-send button,
.jeux-duo-send button,
.questions-duo-empty a,
.jeux-duo-empty a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 13px 20px;
  border-radius: 999px;
  border: none;
  background: linear-gradient(135deg, var(--primary), var(--primary-light));
  color: white;
  text-decoration: none;
  font-weight: 950;
  cursor: pointer;
}

.questions-duo-empty,
.jeux-duo-empty {
  margin-top: 28px;
  text-align: center;
}

.questions-duo-empty p,
.jeux-duo-empty p {
  margin: 10px auto 20px;
  max-width: 620px;
}

@media(max-width: 850px) {
  .questions-duo-hero,
  .jeux-duo-hero,
  .questions-duo-send,
  .jeux-duo-send {
    grid-template-columns: 1fr;
  }

  .questions-duo-send,
  .jeux-duo-send {
    align-items: stretch;
  }

  .questions-duo-send button,
  .jeux-duo-send button {
    width: 100%;
  }
}

@media(max-width: 560px) {
  .questions-duo-hero,
  .jeux-duo-hero,
  .questions-duo-panel,
  .questions-duo-send,
  .questions-duo-empty,
  .jeux-duo-panel,
  .jeux-duo-send,
  .jeux-duo-info,
  .jeux-duo-empty {
    padding: 22px;
  }

  .questions-duo-hero h1,
  .jeux-duo-hero h1 {
    font-size: 32px;
  }

  .questions-duo-hero p,
  .jeux-duo-hero p {
    font-size: 16px;
  }

  .questions-duo-members,
  .jeux-duo-members,
  .questions-duo-cards,
  .jeux-duo-games {
    grid-template-columns: 1fr;
  }
}

/* source: assets/css/duo-engagement.css */
/* =====================================================
   DUOLOCAL ENGAGEMENT MODULES
   Défis Duo + Mon Journal
===================================================== */

.duo-engage-hero {
  margin-top: 28px;
  padding: 38px;
  border-radius: var(--radius-large);
  color: white;
  background:
    radial-gradient(circle at top right, rgba(255,255,255,.25), transparent 34%),
    linear-gradient(135deg, var(--primary), var(--primary-light));
  box-shadow: 0 22px 55px rgba(123,45,67,.25);
}

.duo-engage-badge {
  display: inline-block;
  padding: 8px 14px;
  border-radius: 999px;
  background: rgba(255,255,255,.18);
  border: 1px solid rgba(255,255,255,.24);
  font-weight: 900;
  margin-bottom: 16px;
}

.duo-engage-hero h1 {
  color: white;
  font-size: 42px;
  margin-bottom: 12px;
}

.duo-engage-hero p {
  max-width: 760px;
  font-size: 18px;
  opacity: .95;
}

.duo-engage-summary {
  margin-top: 26px;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 18px;
}

.duo-engage-summary article,
.duo-challenge-card,
.duo-engage-note,
.duo-journal-form,
.duo-journal-entry,
.duo-journal-empty {
  background: var(--surface);
  border-radius: var(--radius-large);
  border: 1px solid var(--border);
  box-shadow: var(--shadow);
}

.duo-engage-summary article {
  padding: 24px;
  text-align: center;
}

.duo-engage-summary span {
  display: block;
  font-size: 34px;
  margin-bottom: 8px;
}

.duo-engage-summary strong {
  display: block;
  color: var(--primary);
  font-size: 28px;
}

.duo-engage-summary small {
  color: var(--text-light);
  font-weight: 800;
}

.duo-challenge-grid {
  margin-top: 26px;
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 18px;
}

.duo-challenge-card {
  padding: 24px;
  transition: var(--transition);
}

.duo-challenge-card:hover {
  transform: translateY(-4px);
  box-shadow: var(--shadow-large);
}

.duo-challenge-card.done {
  border-color: rgba(31,138,76,.25);
}

.duo-challenge-top {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 14px;
}

.duo-challenge-top span {
  font-size: 34px;
}

.duo-status-ok,
.duo-status-wait {
  padding: 6px 10px;
  border-radius: 999px;
  font-size: 12px;
}

.duo-status-ok {
  background: #e7f7ee;
  color: var(--success);
}

.duo-status-wait {
  background: #fff1dc;
  color: var(--warning);
}

.duo-challenge-card h2 {
  font-size: 22px;
  margin-bottom: 8px;
}

.duo-challenge-card p {
  min-height: 70px;
  color: var(--text-light);
  font-weight: 700;
}

.duo-progress {
  height: 12px;
  border-radius: 999px;
  background: #f0e3de;
  overflow: hidden;
  margin: 18px 0;
}

.duo-progress div {
  height: 100%;
  border-radius: 999px;
  background: linear-gradient(135deg, var(--primary), var(--primary-light));
}

.duo-challenge-card a,
.duo-journal-form button {
  display: inline-flex;
  width: 100%;
  align-items: center;
  justify-content: center;
  padding: 12px 14px;
  border: none;
  border-radius: 999px;
  background: linear-gradient(135deg, var(--primary), var(--primary-light));
  color: white;
  text-decoration: none;
  font-weight: 900;
  cursor: pointer;
}

.duo-engage-note {
  margin-top: 26px;
  padding: 28px;
}

.duo-engage-note h2 {
  margin-bottom: 10px;
}

.duo-engage-note p {
  color: var(--text-light);
  font-weight: 700;
}

/* Journal */

.duo-journal-layout {
  margin-top: 26px;
  display: grid;
  grid-template-columns: minmax(280px, 420px) 1fr;
  gap: 24px;
  align-items: start;
}

.duo-journal-form {
  padding: 26px;
}

.duo-journal-form h2,
.duo-journal-list h2 {
  margin-bottom: 18px;
}

.duo-journal-form label {
  margin-top: 14px;
}

.duo-journal-form textarea {
  resize: vertical;
}

.duo-journal-form button {
  margin-top: 18px;
}

.duo-journal-list {
  display: grid;
  gap: 16px;
}

.duo-journal-entry,
.duo-journal-empty {
  padding: 24px;
}

.duo-journal-entry-head {
  display: flex;
  gap: 14px;
  align-items: center;
  margin-bottom: 14px;
}

.duo-journal-entry-head > span {
  width: 52px;
  height: 52px;
  border-radius: 50%;
  background: #fbf2ef;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 26px;
}

.duo-journal-entry h3 {
  margin: 0;
}

.duo-journal-entry small {
  color: var(--text-light);
  font-weight: 800;
}

.duo-journal-entry p {
  color: var(--text);
  line-height: 1.6;
}

.duo-journal-entry form {
  margin-top: 16px;
}

.duo-journal-delete {
  border: none;
  border-radius: 999px;
  padding: 10px 14px;
  background: #ffe5e5;
  color: var(--danger);
  font-weight: 900;
  cursor: pointer;
}

.duo-journal-empty {
  text-align: center;
}

.duo-journal-empty span {
  font-size: 46px;
}

.duo-journal-empty h3 {
  margin-top: 10px;
}

.duo-journal-empty p {
  color: var(--text-light);
  font-weight: 700;
}

@media(max-width: 1050px) {
  .duo-challenge-grid {
    grid-template-columns: repeat(2, 1fr);
  }

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

@media(max-width: 700px) {
  .duo-engage-hero {
    padding: 28px;
  }

  .duo-engage-hero h1 {
    font-size: 32px;
  }

  .duo-engage-summary,
  .duo-challenge-grid {
    grid-template-columns: 1fr;
  }

  .duo-challenge-card p {
    min-height: auto;
  }
}

/* =====================================================
   RC2.1 — Défis Duo : centrage PC propre
===================================================== */
@media (min-width: 1051px) {
  .duo-challenge-card {
    min-height: 320px;
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
  }

  .duo-challenge-top {
    width: 100%;
    justify-content: center;
    gap: 12px;
    flex-wrap: wrap;
  }

  .duo-challenge-card h2 {
    min-height: 54px;
    display: flex;
    align-items: center;
    justify-content: center;
  }

  .duo-challenge-card p {
    min-height: 82px;
    display: flex;
    align-items: center;
    justify-content: center;
  }

  .duo-progress {
    width: 100%;
    margin-top: auto;
  }

  .duo-challenge-card a {
    margin-top: 4px;
  }
}


/* =====================================================
   RC3 QUALITÉ — Défis Duo centrage final
===================================================== */

.duo-challenge-card{
  display:flex;
  flex-direction:column;
  text-align:center;
}

.duo-challenge-top{
  justify-content:center;
  gap:12px;
  flex-wrap:wrap;
}

.duo-challenge-card h2,
.duo-challenge-card p{
  text-align:center;
}

.duo-challenge-card p{
  line-height:1.5;
}

.duo-challenge-card a{
  margin-top:auto;
}

@media(min-width:1051px){
  .duo-challenge-card{
    min-height:330px;
    align-items:stretch;
  }

  .duo-challenge-card h2{
    min-height:56px;
    display:flex;
    align-items:center;
    justify-content:center;
  }

  .duo-challenge-card p{
    min-height:88px;
    display:flex;
    align-items:center;
    justify-content:center;
  }
}

/* source: assets/css/admin-live.css */
.admin-live-hero {
  margin-top: 28px;
  padding: 34px;
  border-radius: var(--radius-large);
  color: white;
  background:
    radial-gradient(circle at top right, rgba(255,255,255,.25), transparent 34%),
    linear-gradient(135deg, #20202a, var(--primary));
  box-shadow: 0 22px 55px rgba(0,0,0,.22);
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 24px;
  align-items: center;
}

.admin-live-badge {
  display: inline-block;
  padding: 8px 14px;
  border-radius: 999px;
  background: rgba(255,255,255,.16);
  font-weight: 900;
  margin-bottom: 14px;
}

.admin-live-hero h1 {
  color: white;
  font-size: 42px;
  margin-bottom: 10px;
}

.admin-live-hero p {
  max-width: 720px;
  opacity: .94;
  font-size: 18px;
}

.admin-live-refresh {
  background: rgba(255,255,255,.14);
  border: 1px solid rgba(255,255,255,.22);
  border-radius: 24px;
  padding: 18px;
  text-align: center;
  min-width: 210px;
}

.admin-live-refresh strong {
  display: block;
  color: white;
  font-size: 30px;
}

.admin-live-refresh span {
  font-weight: 800;
  opacity: .88;
  font-size: 13px;
}

.admin-live-stats,
.admin-live-kpis {
  margin-top: 22px;
  display: grid;
  gap: 14px;
}

.admin-live-stats {
  grid-template-columns: repeat(6, 1fr);
}

.admin-live-kpis {
  grid-template-columns: repeat(6, 1fr);
}

.admin-live-stats article,
.admin-live-kpis article {
  background: var(--surface);
  border-radius: var(--radius-large);
  padding: 18px;
  box-shadow: var(--shadow);
  border: 1px solid var(--border);
  text-align: center;
}

.admin-live-stats span,
.admin-live-kpis span {
  display: block;
  font-size: 27px;
  margin-bottom: 8px;
}

.admin-live-stats strong,
.admin-live-kpis strong {
  display: block;
  color: var(--primary);
  font-size: 31px;
  line-height: 1;
}

.admin-live-stats small,
.admin-live-kpis small {
  display: block;
  margin-top: 8px;
  color: var(--text-light);
  font-weight: 900;
  font-size: 12px;
}

.admin-live-dashboard {
  margin-top: 24px;
  display: grid;
  grid-template-columns: minmax(0, 1fr) 330px;
  gap: 24px;
}

.admin-live-main {
  display: grid;
  gap: 24px;
}

.admin-live-side {
  display: grid;
  gap: 24px;
  align-content: start;
}

.admin-live-panel,
.admin-live-health {
  background: var(--surface);
  border-radius: var(--radius-large);
  box-shadow: var(--shadow);
  border: 1px solid var(--border);
}

.admin-live-panel.compact {
  overflow: hidden;
}

.admin-live-panel-head {
  padding: 24px 24px 0;
}

.admin-live-panel-head h2,
.admin-live-health h2 {
  margin-bottom: 6px;
}

.admin-live-panel-head p,
.admin-live-health p {
  color: var(--text-light);
  font-weight: 700;
}

.admin-live-events {
  padding: 18px 24px 24px;
  display: grid;
  gap: 12px;
  max-height: 610px;
  overflow: auto;
}

.admin-live-event {
  display: grid;
  grid-template-columns: 46px 1fr;
  gap: 14px;
  padding: 14px;
  border-radius: 20px;
  background: #fbf2ef;
  border: 1px solid rgba(123,45,67,.06);
}

.admin-live-event-icon {
  width: 46px;
  height: 46px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  background: white;
  box-shadow: var(--shadow-small);
  font-weight: 900;
  font-size: 22px;
}

.admin-live-event strong {
  color: var(--primary);
}

.admin-live-event p {
  margin-top: 3px;
  color: var(--text);
  font-weight: 700;
}

.admin-live-event small {
  display: block;
  margin-top: 5px;
  color: var(--text-light);
  font-weight: 700;
}

.admin-live-empty {
  padding: 18px;
  border-radius: 18px;
  background: #fbf2ef;
  color: var(--text-light);
  font-weight: 800;
  text-align: center;
}

.admin-live-chart {
  height: 260px;
  padding: 20px 24px 8px;
  display: grid;
  grid-template-columns: repeat(7, 1fr);
  gap: 12px;
  align-items: end;
}

.admin-chart-day {
  height: 100%;
  display: grid;
  grid-template-rows: 1fr auto;
  gap: 9px;
  min-width: 0;
}

.admin-chart-bars {
  height: 100%;
  display: flex;
  align-items: end;
  justify-content: center;
  gap: 3px;
  padding: 10px 5px;
  border-radius: 16px;
  background: #fbf2ef;
}

.admin-chart-bars span {
  width: 8px;
  min-height: 4px;
  border-radius: 999px 999px 0 0;
}

.admin-chart-bars .events,
.admin-chart-legend .events {
  background: var(--primary);
}

.admin-chart-bars .likes,
.admin-chart-legend .likes {
  background: #d62828;
}

.admin-chart-bars .messages,
.admin-chart-legend .messages {
  background: #3b82f6;
}

.admin-chart-bars .views,
.admin-chart-legend .views {
  background: #16a34a;
}

.admin-chart-day small {
  text-align: center;
  color: var(--text-light);
  font-size: 12px;
  font-weight: 900;
}

.admin-chart-legend {
  padding: 4px 24px 22px;
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
}

.admin-chart-legend span {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  color: var(--text-light);
  font-size: 13px;
  font-weight: 900;
}

.admin-chart-legend i {
  display: inline-block;
  width: 12px;
  height: 12px;
  border-radius: 50%;
}

.admin-live-users,
.admin-live-departments {
  padding: 18px 20px 22px;
  display: grid;
  gap: 11px;
}

.admin-live-users article {
  display: grid;
  grid-template-columns: 46px 1fr;
  gap: 12px;
  align-items: center;
  padding: 10px;
  border-radius: 18px;
  background: #fbf2ef;
}

.admin-live-users img,
.admin-live-avatar {
  width: 46px;
  height: 46px;
  border-radius: 50%;
}

.admin-live-users img {
  object-fit: cover;
}

.admin-live-avatar {
  display: flex;
  align-items: center;
  justify-content: center;
  background: white;
  box-shadow: var(--shadow-small);
}

.admin-live-users strong {
  color: var(--primary);
  display: block;
  line-height: 1.2;
}

.admin-live-users small {
  color: var(--text-light);
  font-weight: 800;
  font-size: 12px;
}

.admin-live-departments article {
  display: grid;
  gap: 8px;
}

.admin-live-departments article > div:first-child {
  display: flex;
  justify-content: space-between;
  gap: 10px;
  color: var(--primary);
  font-weight: 900;
}

.admin-dept-bar {
  height: 11px;
  border-radius: 999px;
  background: #fbf2ef;
  overflow: hidden;
}

.admin-dept-bar span {
  display: block;
  height: 100%;
  border-radius: 999px;
  background: linear-gradient(135deg, var(--primary), var(--primary-light));
}

.admin-live-health {
  padding: 24px;
}

.admin-live-health p {
  display: flex;
  align-items: center;
  gap: 9px;
  margin-top: 10px;
}

.admin-live-health p span {
  width: 11px;
  height: 11px;
  border-radius: 50%;
  background: #1f8a4c;
  box-shadow: 0 0 0 5px rgba(31,138,76,.12);
}

@media(max-width: 1100px) {
  .admin-live-stats,
  .admin-live-kpis {
    grid-template-columns: repeat(3, 1fr);
  }

  .admin-live-dashboard {
    grid-template-columns: 1fr;
  }

  .admin-live-side {
    grid-template-columns: repeat(2, 1fr);
  }

  .admin-live-health {
    grid-column: 1 / -1;
  }
}

@media(max-width: 760px) {
  .admin-live-hero {
    grid-template-columns: 1fr;
    padding: 28px;
  }

  .admin-live-hero h1 {
    font-size: 32px;
  }

  .admin-live-refresh {
    min-width: 0;
  }

  .admin-live-stats,
  .admin-live-kpis,
  .admin-live-side {
    grid-template-columns: 1fr;
  }

  .admin-live-chart {
    height: 220px;
    gap: 7px;
    padding: 16px 14px 8px;
  }

  .admin-chart-bars {
    gap: 2px;
    padding: 8px 3px;
  }

  .admin-chart-bars span {
    width: 6px;
  }

  .admin-chart-legend {
    padding: 4px 18px 20px;
  }
}

@media(max-width: 520px) {
  .admin-live-hero {
    border-radius: 26px;
    padding: 24px;
  }

  .admin-live-stats article,
  .admin-live-kpis article {
    padding: 16px;
  }

  .admin-live-panel-head,
  .admin-live-events {
    padding-left: 18px;
    padding-right: 18px;
  }

  .admin-live-event {
    grid-template-columns: 40px 1fr;
    padding: 12px;
  }

  .admin-live-event-icon {
    width: 40px;
    height: 40px;
  }
}

/* source: assets/css/admin-center.css */
.admin-center-hero {
  margin-top: 28px;
  padding: 34px;
  border-radius: var(--radius-large);
  color: white;
  background:
    radial-gradient(circle at top right, rgba(255,255,255,.22), transparent 34%),
    linear-gradient(135deg, #1f2028, var(--primary));
  box-shadow: 0 22px 55px rgba(0,0,0,.22);
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 24px;
  align-items: center;
}

.admin-center-badge {
  display: inline-block;
  padding: 8px 14px;
  border-radius: 999px;
  background: rgba(255,255,255,.16);
  font-weight: 900;
  margin-bottom: 14px;
}

.admin-center-hero h1 {
  color: white;
  font-size: 40px;
  margin-bottom: 10px;
}

.admin-center-hero p {
  max-width: 760px;
  opacity: .94;
  font-size: 18px;
}

.admin-center-status {
  background: rgba(255,255,255,.14);
  border: 1px solid rgba(255,255,255,.22);
  border-radius: 24px;
  padding: 18px;
  min-width: 180px;
  text-align: center;
}

.admin-center-status strong,
.admin-center-status span {
  display: block;
}

.admin-center-status strong {
  color: white;
  font-size: 28px;
}

.admin-center-status span {
  margin-top: 4px;
  font-weight: 800;
  opacity: .88;
}

.admin-center-stats {
  margin-top: 22px;
  display: grid;
  grid-template-columns: repeat(6, 1fr);
  gap: 14px;
}

.admin-center-stats article {
  background: var(--surface);
  border-radius: var(--radius-large);
  padding: 18px;
  box-shadow: var(--shadow);
  border: 1px solid var(--border);
  text-align: center;
}

.admin-center-stats span {
  display: block;
  font-size: 28px;
  margin-bottom: 8px;
}

.admin-center-stats strong {
  display: block;
  color: var(--primary);
  font-size: 32px;
  line-height: 1;
}

.admin-center-stats small {
  display: block;
  margin-top: 8px;
  color: var(--text-light);
  font-weight: 900;
  font-size: 12px;
}

.admin-center-grid {
  margin-top: 24px;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 24px;
}

.admin-center-panel {
  margin-top: 24px;
  background: var(--surface);
  border-radius: var(--radius-large);
  box-shadow: var(--shadow);
  border: 1px solid var(--border);
  overflow: hidden;
}

.admin-center-grid .admin-center-panel {
  margin-top: 0;
}

.admin-center-panel-head {
  padding: 24px 24px 0;
}

.admin-center-panel-head h2 {
  margin-bottom: 6px;
}

.admin-center-panel-head p {
  color: var(--text-light);
  font-weight: 700;
}

.admin-center-actions {
  padding: 20px 24px 24px;
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 14px;
}

.admin-center-actions a {
  display: block;
  padding: 18px;
  border-radius: 22px;
  background: #fbf2ef;
  text-decoration: none;
  color: var(--text);
  transition: var(--transition);
}

.admin-center-actions a:hover {
  transform: translateY(-3px);
  box-shadow: var(--shadow-small);
}

.admin-center-actions span {
  display: block;
  font-size: 28px;
  margin-bottom: 8px;
}

.admin-center-actions strong {
  display: block;
  color: var(--primary);
  font-size: 18px;
}

.admin-center-actions small {
  color: var(--text-light);
  font-weight: 800;
}

.admin-center-feed {
  padding: 20px 24px 24px;
  display: grid;
  gap: 10px;
}

.admin-center-event {
  display: grid;
  grid-template-columns: 55px 120px 1fr;
  gap: 12px;
  align-items: center;
  padding: 12px;
  background: #fbf2ef;
  border-radius: 18px;
}

.admin-center-event span {
  color: var(--text-light);
  font-weight: 900;
}

.admin-center-event strong {
  color: var(--primary);
}

.admin-center-event p {
  color: var(--text);
  font-weight: 700;
}

.admin-center-users {
  padding: 20px 24px 24px;
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
  gap: 14px;
}

.admin-center-user {
  display: flex;
  gap: 14px;
  align-items: center;
  background: #fbf2ef;
  border-radius: 22px;
  padding: 14px;
}

.admin-center-user img,
.admin-center-avatar {
  width: 64px;
  height: 64px;
  border-radius: 18px;
  flex: 0 0 auto;
}

.admin-center-user img {
  object-fit: cover;
}

.admin-center-avatar {
  display: flex;
  align-items: center;
  justify-content: center;
  background: white;
  font-size: 28px;
}

.admin-center-user h3 {
  margin: 0 0 3px;
  font-size: 18px;
}

.admin-center-user p {
  margin: 0 0 3px;
  color: var(--text-light);
  font-weight: 800;
}

.admin-center-user small {
  color: var(--text-light);
  font-weight: 700;
}

.admin-center-empty {
  padding: 24px;
  color: var(--text-light);
  font-weight: 800;
}

@media(max-width: 1000px) {
  .admin-center-stats {
    grid-template-columns: repeat(3, 1fr);
  }

  .admin-center-grid {
    grid-template-columns: 1fr;
  }
}

@media(max-width: 620px) {
  .admin-center-hero {
    grid-template-columns: 1fr;
    padding: 26px;
  }

  .admin-center-hero h1 {
    font-size: 31px;
  }

  .admin-center-stats {
    grid-template-columns: repeat(2, 1fr);
  }

  .admin-center-actions {
    grid-template-columns: 1fr;
  }

  .admin-center-event {
    grid-template-columns: 1fr;
    gap: 4px;
  }
}

.admin-center-side {
  display: grid;
  gap: 12px;
}

.admin-maintenance-mini {
  background: rgba(255,255,255,.14);
  border: 1px solid rgba(255,255,255,.22);
  border-radius: 24px;
  padding: 14px;
  min-width: 180px;
}

.admin-maintenance-mini strong {
  display: block;
  color: white;
  font-size: 14px;
  margin-bottom: 10px;
  text-align: center;
}

.admin-maintenance-mini form {
  margin: 0 0 8px;
}

.admin-maintenance-mini form:last-child {
  margin-bottom: 0;
}

.admin-maintenance-mini button {
  width: 100%;
  padding: 9px 12px;
  font-size: 13px;
  background: rgba(255,255,255,.92);
  color: var(--primary);
  box-shadow: none;
}

.admin-maintenance-panel {
  border: 1px solid rgba(214,40,40,.16);
}

.admin-maintenance-grid {
  padding: 20px 24px 0;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 12px;
}

.admin-maintenance-grid form {
  margin: 0;
}

.admin-maintenance-grid button {
  width: 100%;
  padding: 12px 14px;
  background: #fbf2ef;
  color: var(--primary);
  box-shadow: none;
}

.admin-maintenance-grid button:hover,
.admin-maintenance-mini button:hover {
  transform: translateY(-2px);
  box-shadow: var(--shadow-small);
}

.admin-maintenance-danger {
  margin: 20px 24px 24px;
  padding: 18px;
  border-radius: 22px;
  background: #fff1f1;
  border: 1px solid rgba(214,40,40,.18);
}

.admin-maintenance-danger label {
  display: block;
  color: var(--danger);
  font-weight: 900;
  margin-bottom: 10px;
}

.admin-maintenance-danger div {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 12px;
}

.admin-maintenance-danger input {
  background: white;
}

.admin-maintenance-danger button {
  background: var(--danger);
  color: white;
  box-shadow: none;
  white-space: nowrap;
}

@media(max-width: 900px) {
  .admin-maintenance-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media(max-width: 620px) {
  .admin-maintenance-grid {
    grid-template-columns: 1fr;
  }

  .admin-maintenance-danger div {
    grid-template-columns: 1fr;
  }
}


/* =====================================================
   RC3 QUALITÉ — Maintenance rapide
===================================================== */
.admin-maintenance-mini button{
  background:#ffffff !important;
  color:#26313f !important;
  font-weight:900;
  border:1px solid rgba(255,255,255,.55);
  border-radius:999px;
  box-shadow:0 8px 18px rgba(0,0,0,.14);
}

.admin-maintenance-mini button:hover{
  background:#f1f5f9 !important;
  color:#111827 !important;
}

/* source: assets/css/final-polish.css */
/*
  DuoLocal RC1 — Final Polish
  Dernière couche CSS chargée après tous les modules.
  Objectif : uniformiser sans casser les pages existantes.
*/

:root {
  --primary: #7b2d43;
  --primary-dark: #5f2233;
  --primary-light: #d96c75;
  --background: #f8f4ef;
  --surface: #ffffff;
  --text: #2b2522;
  --text-light: #766b66;
  --border: #eaded8;
  --success: #1f8a4c;
  --warning: #9a5a00;
  --danger: #d62828;

  --radius-small: 16px;
  --radius: 22px;
  --radius-large: 30px;

  --shadow-small: 0 8px 20px rgba(0,0,0,.06);
  --shadow: 0 12px 35px rgba(0,0,0,.08);
  --shadow-large: 0 24px 55px rgba(0,0,0,.14);

  --transition: .22s ease;
}

/* Base finale */

html {
  scroll-behavior: smooth;
}

body {
  background: var(--background);
  color: var(--text);
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

img {
  max-width: 100%;
}

a,
button {
  -webkit-tap-highlight-color: transparent;
}

a:focus-visible,
button:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible {
  outline: none;
  box-shadow: 0 0 0 4px rgba(123,45,67,.18);
}

button,
.btn,
.btn-main,
.btn-small,
.dating-main-btn-v4,
.profile-v3-btn,
.profile-v3-side-action,
.dash-v3-action,
.admin-v3-btn,
.list-v3-btn,
.match-v3-btn,
.messages-v3-action a,
.premium-v5-main-btn,
.premium-v5-cta,
.premium-v5-footer-card a,
.photos-v3-actions button {
  transition: var(--transition);
}

button:hover,
.btn:hover,
.btn-main:hover,
.btn-small:hover,
.dating-main-btn-v4:hover,
.profile-v3-btn:hover,
.profile-v3-side-action:hover,
.dash-v3-action:hover,
.admin-v3-btn:hover,
.list-v3-btn:hover,
.match-v3-btn:hover,
.messages-v3-action a:hover,
.premium-v5-main-btn:hover,
.premium-v5-cta:hover,
.premium-v5-footer-card a:hover,
.photos-v3-actions button:hover {
  transform: translateY(-2px);
}

/* Héros harmonisés */

.dash-v3-hero,
.search-premium-hero,
.profile-v3-hero,
.messages-v3-hero,
.match-v3-hero,
.list-v3-hero,
.admin-v3-hero,
.photos-v3-hero,
.premium-v5-hero,
.visitors-v5-hero,
.score-v5-hero,
.admin-live-hero,
.admin-center-hero {
  border-radius: var(--radius-large);
  box-shadow: 0 22px 55px rgba(123,45,67,.22);
}

/* Cartes harmonisées */

.dash-v3-stat,
.dash-v3-progress,
.dash-v3-action,
.dash-v3-danger,
.dating-card-v4,
.profile-v3-card,
.gallery-v1,
.messages-v3-item,
.match-v3-card,
.list-v3-card,
.admin-v3-stat,
.admin-v3-action,
.admin-v3-member,
.admin-report-card,
.photos-v3-card,
.premium-v5-plan,
.premium-v5-benefits article,
.premium-v5-footer-card,
.visitors-v5-card,
.visitors-v5-list,
.score-v5-card,
.score-v5-tip,
.admin-live-card,
.admin-center-card {
  border-radius: var(--radius-large);
  border: 1px solid rgba(123,45,67,.08);
  box-shadow: var(--shadow);
}

.dash-v3-stat:hover,
.dash-v3-action:hover,
.dating-card-v4:hover,
.profile-v3-card:hover,
.messages-v3-item:hover,
.match-v3-card:hover,
.list-v3-card:hover,
.admin-v3-action:hover,
.photos-v3-card:hover,
.premium-v5-plan:hover,
.visitors-v5-card:hover,
.score-v5-card:hover,
.admin-center-card:hover {
  box-shadow: var(--shadow-large);
}

/* Badges harmonisés */

.search-badge,
.profile-v3-status,
.match-v3-status,
.list-v3-badge,
.photos-v3-main-badge,
.nav-message-badge,
.premium-v5-badge,
.dash-v3-badge {
  font-weight: 900;
  border-radius: 999px;
}

/* Formulaires */

input,
select,
textarea {
  border-radius: var(--radius-small);
  border: 1px solid var(--border);
}

input:focus,
select:focus,
textarea:focus {
  border-color: var(--primary);
}

/* Header final */

.site-header-v3 {
  backdrop-filter: blur(18px);
}

.site-nav-v3 a {
  white-space: nowrap;
}

/* Petites corrections de cohérence */

.card {
  border-radius: var(--radius-large);
  box-shadow: var(--shadow);
}

.alert {
  border-radius: var(--radius-small);
}

.footer,
.site-footer-v3 {
  margin-top: 80px;
}

/* Images utilisateurs */

.dash-v3-photo,
.profile-v3-photo,
.dating-photo-v4 img,
.messages-v3-photo img,
.match-v3-photo img,
.list-v3-photo img,
.photos-v3-card img,
.admin-v3-member-photo img,
.admin-report-photo img {
  background: #f2eeee;
}

/* Mobile final */

@media (max-width: 950px) {
  .site-header-inner {
    gap: 14px;
  }

  .site-nav-v3 {
    gap: 6px;
  }
}

@media (max-width: 700px) {
  .container {
    width: min(100% - 28px);
    padding-left: 0;
    padding-right: 0;
  }

  .site-header-v3 {
    position: sticky;
  }

  .site-nav-v3 {
    justify-content: flex-start;
    overflow-x: auto;
    flex-wrap: nowrap;
    padding-bottom: 4px;
    scrollbar-width: none;
  }

  .site-nav-v3::-webkit-scrollbar {
    display: none;
  }

  .site-nav-v3 a {
    font-size: 14px;
    padding: 8px 11px;
  }

  .dash-v3-hero,
  .search-premium-hero,
  .profile-v3-hero,
  .messages-v3-hero,
  .match-v3-hero,
  .list-v3-hero,
  .admin-v3-hero,
  .photos-v3-hero,
  .premium-v5-hero,
  .visitors-v5-hero,
  .score-v5-hero,
  .admin-live-hero,
  .admin-center-hero {
    padding: 28px;
    border-radius: 26px;
  }

  .dash-v3-stat,
  .dash-v3-progress,
  .dash-v3-action,
  .dash-v3-danger,
  .dating-card-v4,
  .profile-v3-card,
  .gallery-v1,
  .messages-v3-item,
  .match-v3-card,
  .list-v3-card,
  .admin-v3-stat,
  .admin-v3-action,
  .admin-v3-member,
  .admin-report-card,
  .photos-v3-card,
  .premium-v5-plan,
  .premium-v5-benefits article,
  .premium-v5-footer-card,
  .visitors-v5-card,
  .score-v5-card,
  .admin-live-card,
  .admin-center-card {
    border-radius: 24px;
  }
}

@media (max-width: 520px) {
  h1 {
    font-size: 30px;
  }

  h2 {
    font-size: 24px;
  }

  .site-logo-v3,
  .site-footer-logo {
    font-size: 27px;
  }

  .site-user-v3 {
    width: 100%;
    justify-content: center;
  }

  .dash-v3-actions,
  .premium-v5-benefits,
  .home-v3-features,
  .admin-v3-actions,
  .photos-v3-grid {
    gap: 16px;
  }

  .dating-photo-v4 {
    aspect-ratio: 16 / 10;
  }
}

/* Réduction des animations si l'utilisateur le demande */

@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    animation-duration: .01ms !important;
    animation-iteration-count: 1 !important;
    scroll-behavior: auto !important;
    transition-duration: .01ms !important;
  }
}

/* =========================================================
   DUOLOCAL RC2 — POLISH UI FINAL
   Corrige uniquement les alignements, boutons, contrastes publics
   et homogénéise les cartes sans changer l'architecture.
========================================================= */

/* Boutons : centrage, hauteur et lisibilité homogènes */
button,
.btn,
.btn-main,
.btn-small,
.signature-btn,
.dating-main-btn-v4,
.dating-like-float,
.profile-v3-btn,
.profile-v3-side-action,
.dash-v5-premium-link,
.dash-v5-inline-link,
.dash-v3-action,
.dash-v5-action,
.list-v3-btn,
.match-v3-btn,
.messages-v3-action a,
.premium-v5-main-btn,
.premium-v5-cta,
.premium-v5-footer-card a,
.photos-v3-actions button,
.compat-v1-actions a,
.coach-v1-actions a,
.duo-engage-note a,
.jeux-duo-send button,
.questions-duo-send button,
.duo-journal-form button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  text-align: center;
  line-height: 1.2;
  min-height: 44px;
}

button,
.btn,
.btn-main,
.btn-small,
.photos-v3-actions button,
.jeux-duo-send button,
.questions-duo-send button,
.duo-journal-form button {
  font-family: inherit;
}

/* Dashboard : cartes identiques, centrées, sans toucher au 4 colonnes PC */
.dash-v5-actions,
.dash-v3-actions {
  align-items: stretch;
}

.dash-v5-action,
.dash-v3-action {
  min-height: 148px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
  gap: 4px;
}

.dash-v5-action span,
.dash-v3-action span {
  margin-bottom: 6px;
  line-height: 1;
}

.dash-v5-action strong,
.dash-v3-action strong {
  line-height: 1.18;
}

.dash-v5-action small,
.dash-v3-action small {
  display: block;
  max-width: 210px;
  margin-inline: auto;
  line-height: 1.35;
}

/* Cartes Premium Plus : même lumière, même respiration */
.coach-v1-panel,
.coach-v1-checklist,
.coach-v1-check,
.coach-v1-premium-tools,
.coach-v1-actions,
.compat-v1-card,
.compat-v1-empty,
.duo-engage-summary article,
.duo-challenge-card,
.duo-engage-note,
.duo-journal-form,
.duo-journal-list,
.duo-journal-entry,
.duo-journal-empty,
.jeux-duo-panel,
.jeux-duo-info,
.jeux-duo-empty,
.jeux-duo-send,
.questions-duo-panel,
.questions-duo-empty,
.questions-duo-send {
  border-radius: var(--radius-large);
  border: 1px solid rgba(123,45,67,.08);
  box-shadow: var(--shadow);
}

.coach-v1-tip,
.coach-v1-tool,
.compat-v1-reasons li,
.compat-v1-differences,
.questions-duo-card,
.questions-duo-member,
.jeux-duo-game,
.jeux-duo-member {
  border-radius: var(--radius-small);
}

/* Héros Premium Plus : même rendu que les autres pages */
.coach-v1-hero,
.compat-v1-hero,
.duo-engage-hero,
.jeux-duo-hero,
.questions-duo-hero {
  border-radius: var(--radius-large);
  box-shadow: 0 22px 55px rgba(123,45,67,.22);
}

/* Lisibilité : textes longs mieux alignés */
.premium-v5-plan li,
.coach-v1-tip,
.coach-v1-check,
.duo-challenge-card,
.questions-duo-card,
.jeux-duo-game,
.duo-journal-entry {
  line-height: 1.45;
}

/* Images galerie/profils : évite les débordements visuels */
.profile-v3-photo,
.gallery-v1-thumb img,
.compat-v1-photo img,
.photos-v3-card img,
.admin-v3-member-photo img,
.admin-report-photo img {
  object-fit: cover;
}

/* Lumière : ombres moins dispersées sur les modules récents */
.coach-v1-panel:hover,
.compat-v1-card:hover,
.duo-challenge-card:hover,
.jeux-duo-panel:hover,
.questions-duo-panel:hover,
.duo-journal-entry:hover {
  box-shadow: var(--shadow-large);
}

/* Formulaires : boutons et champs alignés proprement */
.duo-journal-form form,
.questions-duo-layout,
.jeux-duo-layout {
  align-items: stretch;
}

.duo-journal-form textarea,
.questions-duo-layout textarea,
.jeux-duo-layout textarea {
  line-height: 1.45;
}

/* Mobile : conserve une colonne, mais évite les boutons trop grands */
@media (max-width: 700px) {
  .dash-v5-action,
  .dash-v3-action {
    min-height: 118px;
    padding: 20px;
  }

  .dash-v5-action span,
  .dash-v3-action span {
    font-size: 30px;
  }

  .dash-v5-action strong,
  .dash-v3-action strong {
    font-size: 19px;
  }

  .premium-v5-plan,
  .coach-v1-panel,
  .compat-v1-card,
  .duo-challenge-card,
  .duo-journal-form,
  .duo-journal-entry,
  .jeux-duo-panel,
  .questions-duo-panel {
    padding: 22px;
  }
}


/* =====================================================
   RC3 QUALITÉ — Harmonisation finale publique
   Objectif : centrage, boutons, cartes, responsive.
   Ne s'applique pas au thème admin sombre.
===================================================== */

body:not(.admin-page) .dash-v5-main-grid,
body:not(.admin-page) .dash-v3-actions{
  align-items:stretch;
}

body:not(.admin-page) .dash-v5-action,
body:not(.admin-page) .dash-v3-action,
body:not(.admin-page) .premium-v5-plan,
body:not(.admin-page) .coach-card,
body:not(.admin-page) .compat-card,
body:not(.admin-page) .duo-challenge-card,
body:not(.admin-page) .duo-game-card,
body:not(.admin-page) .duo-question-card{
  height:100%;
}

body:not(.admin-page) .dash-v5-action,
body:not(.admin-page) .dash-v3-action{
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  text-align:center;
  min-height:154px;
}

body:not(.admin-page) .dash-v5-action span,
body:not(.admin-page) .dash-v3-action span{
  line-height:1;
}

body:not(.admin-page) .dash-v5-action strong,
body:not(.admin-page) .dash-v3-action strong{
  line-height:1.2;
}

body:not(.admin-page) .dash-v5-action small,
body:not(.admin-page) .dash-v3-action small{
  max-width:220px;
  margin-left:auto;
  margin-right:auto;
  line-height:1.35;
}

body:not(.admin-page) .btn,
body:not(.admin-page) .btn-main,
body:not(.admin-page) .btn-small,
body:not(.admin-page) button,
body:not(.admin-page) input[type="submit"],
body:not(.admin-page) .profile-v3-btn,
body:not(.admin-page) .dating-main-btn-v4,
body:not(.admin-page) .premium-v5-cta,
body:not(.admin-page) .premium-v5-main-btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  text-align:center;
  line-height:1.2;
  white-space:normal;
}

body:not(.admin-page) .card,
body:not(.admin-page) .profile-v3-card,
body:not(.admin-page) .dating-card-v4,
body:not(.admin-page) .premium-v5-plan,
body:not(.admin-page) .duo-challenge-card,
body:not(.admin-page) .duo-journal-entry,
body:not(.admin-page) .duo-journal-form,
body:not(.admin-page) .gallery-v1,
body:not(.admin-page) .photos-v3-card{
  overflow:hidden;
}

body:not(.admin-page) .premium-v5-plan li,
body:not(.admin-page) .duo-challenge-card p,
body:not(.admin-page) .duo-engage-note p,
body:not(.admin-page) .coach-card p,
body:not(.admin-page) .compat-card p{
  overflow-wrap:anywhere;
}

@media(max-width:700px){
  body:not(.admin-page) .dash-v5-action,
  body:not(.admin-page) .dash-v3-action{
    min-height:auto;
    padding:22px;
  }

  body:not(.admin-page) .premium-v5-grid,
  body:not(.admin-page) .premium-v5-benefits,
  body:not(.admin-page) .duo-engage-summary,
  body:not(.admin-page) .duo-challenge-grid{
    gap:16px;
  }
}


/* =====================================================
   DUOLOCAL V1.0 STABLE — DASHBOARD FINAL ALIGN
   Objectif : cartes dashboard homogènes PC + mobile
===================================================== */

.dash-v5-actions {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  align-items: stretch;
}

.dash-v5-action {
  min-height: 154px;
  height: 100%;
  display: flex !important;
  flex-direction: column;
  align-items: center !important;
  justify-content: center !important;
  text-align: center !important;
  gap: 7px;
  padding: 24px 18px;
}

.dash-v5-action span {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 38px;
  margin: 0 0 2px;
  line-height: 1;
}

.dash-v5-action strong {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 28px;
  margin: 0;
  line-height: 1.12;
  text-align: center;
}

.dash-v5-action small {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 38px;
  max-width: 220px;
  margin: 0 auto;
  line-height: 1.28;
  text-align: center;
}

@media(max-width: 980px) {
  .dash-v5-actions {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media(max-width: 560px) {
  .dash-v5-actions {
    grid-template-columns: 1fr;
  }

  .dash-v5-action {
    min-height: 118px;
  }

  .dash-v5-action small {
    min-height: auto;
  }
}

/* =====================================================
   DUOLOCAL V1.0 STABLE — LEGAL PAGES
===================================================== */

.legal-v5-card a {
  color: var(--primary);
  font-weight: 850;
  text-decoration: none;
}

.legal-v5-card a:hover {
  color: var(--primary-light);
}

.legal-v5-info {
  background: #fff7f8;
  border: 1px solid rgba(123,45,67,.10);
  border-radius: var(--radius);
  padding: 18px;
  margin: 14px 0 22px;
}

.legal-v5-info p {
  margin: 6px 0;
}


/* Correctif P0 : actions sensibles en POST sans casser la mise en page. */
.action-inline-form {
  display: inline-flex;
  margin: 0;
}

.action-full-form {
  display: block;
  width: 100%;
}

.action-inline-form button {
  font: inherit;
}

.action-full-form button {
  width: 100%;
}

.dating-like-form {
  position: static;
}

/* P1 - boutons d'action rendus accessibles sans perdre le style de lien */
.site-logout-form {
    margin: 0;
}

.site-logout-button {
    appearance: none;
    border: 0;
    background: transparent;
    padding: 0;
    color: inherit;
    font: inherit;
    text-decoration: underline;
    cursor: pointer;
}

.site-logout-button:focus-visible {
    outline: 3px solid currentColor;
    outline-offset: 3px;
}

/* source: assets/css/p3-data-consistency.css */
.sr-only {
  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;
}

.p3-pagination,
.p3-conversation-nav {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-wrap: wrap;
  gap: 14px;
  margin: 24px auto;
  font-size: 1rem;
}

.p3-pagination a,
.p3-conversation-nav a {
  display: inline-flex;
  align-items: center;
  min-height: 44px;
  padding: 10px 16px;
  border: 1px solid rgba(34, 34, 34, .18);
  border-radius: 12px;
  background: #fff;
  color: #242424;
  font-weight: 700;
  text-decoration: none;
}

.p3-pagination span {
  font-weight: 700;
}

.p3-filter-tabs {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin: 0 auto 24px;
  max-width: 1180px;
}

.p3-filter-tabs a {
  min-height: 44px;
  display: inline-flex;
  align-items: center;
  padding: 9px 15px;
  border-radius: 999px;
  border: 1px solid rgba(34, 34, 34, .18);
  background: #fff;
  color: #252525;
  font-weight: 700;
  text-decoration: none;
}

.p3-filter-tabs a.active {
  border-color: currentColor;
  box-shadow: 0 0 0 2px rgba(0, 0, 0, .08);
}

.p3-report-workflow {
  display: grid;
  grid-template-columns: minmax(150px, .45fr) minmax(260px, 1fr) auto;
  align-items: end;
  gap: 10px;
  margin-top: 18px;
  padding-top: 16px;
  border-top: 1px solid rgba(34, 34, 34, .12);
}

.p3-report-workflow label {
  font-weight: 700;
}

.p3-report-workflow select,
.p3-report-workflow textarea {
  width: 100%;
  min-height: 44px;
}

.p3-status-open { background: #fff0cc; color: #754b00; }
.p3-status-reviewing { background: #dcecff; color: #164b7a; }
.p3-status-resolved { background: #dff4e5; color: #145d2d; }
.p3-status-dismissed { background: #ececec; color: #444; }

.p3-quality-list {
  display: grid;
  gap: 16px;
  max-width: 1180px;
  margin: 0 auto;
}

.p3-quality-card {
  padding: 20px;
  border-radius: 16px;
  border: 1px solid rgba(34, 34, 34, .14);
  border-left: 6px solid #d39b20;
  background: #fff;
}

.p3-quality-card.critical { border-left-color: #b42318; }
.p3-quality-card.info { border-left-color: #2367a8; }
.p3-quality-card > div:first-child {
  display: flex;
  justify-content: space-between;
  gap: 16px;
  font-size: 1.05rem;
}
.p3-quality-card form {
  display: flex;
  flex-wrap: wrap;
  align-items: end;
  gap: 10px;
  margin-top: 14px;
}
.p3-quality-card select,
.p3-quality-card button { min-height: 44px; }

.photos-v3-missing {
  min-height: 250px;
  display: grid;
  place-content: center;
  padding: 18px;
  text-align: center;
  background: #f2f2f2;
  color: #5a2c2c;
  font-weight: 700;
}

@media (max-width: 760px) {
  .p3-report-workflow { grid-template-columns: 1fr; }
  .p3-pagination,
  .p3-conversation-nav { align-items: stretch; }
  .p3-pagination a,
  .p3-conversation-nav a { justify-content: center; width: 100%; }
}

/* source: assets/css/audio-ambiance.css */
.ambient-toggle {
  position: fixed;
  right: 22px;
  bottom: 22px;
  z-index: 999;
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 12px 16px;
  border: none;
  border-radius: 999px;
  background: rgba(255,255,255,.92);
  color: var(--primary);
  font-weight: 900;
  cursor: pointer;
  box-shadow: var(--shadow);
  backdrop-filter: blur(12px);
  transition: var(--transition);
}

.ambient-toggle:hover {
  transform: translateY(-2px);
}

.ambient-state {
  padding: 4px 8px;
  border-radius: 999px;
  background: #f8edf0;
  font-size: 12px;
}

.ambient-toggle.active .ambient-state {
  background: #e7f7ee;
  color: var(--success);
}

.ambient-mobile-slot {
  display: none;
}

@media(max-width: 768px) {
  .ambient-mobile-slot {
    display: block;
    margin-top: 12px;
    margin-bottom: 20px;
  }

  body > .ambient-toggle {
    display: none;
  }

  .ambient-mobile-slot .ambient-toggle {
    position: relative;
    right: auto;
    bottom: auto;
    inset: auto;
    display: inline-flex;
    margin: 0;
    padding: 10px 14px;
    background: rgba(255,255,255,.18);
    color: white;
    border: 1px solid rgba(255,255,255,.28);
    box-shadow: 0 10px 25px rgba(0,0,0,.18);
  }

  .ambient-mobile-slot .ambient-state {
    background: rgba(255,255,255,.22);
    color: white;
  }
}

/* source: assets/css/legal-premium.css */
.legal-v5-card {
  margin-top: 28px;
  background: var(--surface);
  border-radius: var(--radius-large);
  padding: 34px;
  box-shadow: var(--shadow);
  border: 1px solid var(--border);
}

.legal-v5-card h1 {
  margin-bottom: 12px;
}

.legal-v5-card h2 {
  margin-top: 28px;
  margin-bottom: 10px;
  font-size: 24px;
}

.legal-v5-card p,
.legal-v5-card li {
  color: var(--text);
  line-height: 1.65;
}

.legal-v5-card ul {
  margin: 12px 0 0;
  padding-left: 22px;
}

.legal-v5-muted {
  color: var(--text-light);
  font-weight: 700;
}

.legal-v5-alert {
  margin: 20px 0;
  padding: 16px 18px;
  border-radius: var(--radius);
  background: #fff1dc;
  color: var(--warning);
  font-weight: 800;
}

.legal-v5-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 18px;
  margin-top: 18px;
}

.legal-v5-box {
  background: #fbf2ef;
  border-radius: var(--radius);
  padding: 18px;
}

.legal-v5-box strong {
  color: var(--primary);
}

.contact-v5-actions {
  margin-top: 22px;
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
}

.contact-v5-actions a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 13px 20px;
  border-radius: 999px;
  text-decoration: none;
  font-weight: 900;
  background: linear-gradient(135deg, var(--primary), var(--primary-light));
  color: white;
}

@media(max-width: 700px) {
  .legal-v5-card {
    padding: 24px;
  }

  .legal-v5-grid {
    grid-template-columns: 1fr;
  }
}

/* source: assets/css/social-public.css */
/* =====================================================
   DUOLOCAL SOCIAL ICONS
===================================================== */

.site-footer-social{
  margin-top:14px;
  padding-top:14px;
  border-top:1px solid rgba(123,45,67,.10);
}

.site-footer-social strong{
  display:block;
  margin-bottom:10px;
  color:var(--primary);
  font-weight:950;
}

.site-footer-social-icons{
  display:flex;
  align-items:center;
  gap:10px;
  flex-wrap:wrap;
}

.site-social-link{
  width:42px;
  height:42px;
  border-radius:50%;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  text-decoration:none;
  background:linear-gradient(135deg,var(--primary),var(--primary-light));
  color:white;
  box-shadow:var(--shadow-small);
  transition:var(--transition);
}

.site-social-link:hover{
  transform:translateY(-3px);
  box-shadow:var(--shadow);
}

.site-social-link span{
  color:white;
  font-size:13px;
  font-weight:950;
  letter-spacing:-.2px;
}

.site-social-link.social-facebook span{
  font-size:22px;
  font-family:Arial, sans-serif;
}

.site-social-link.social-linkedin span{
  font-size:16px;
}

.site-footer-social-icons.preview-only{
  margin-top:10px;
}

@media(max-width:720px){
  .site-footer-social-icons{
    justify-content:flex-start;
  }

  .site-social-link{
    width:39px;
    height:39px;
  }
}

/* source: assets/css/p6-public.css */
/* DuoLocal P9 — modules pilotés et bandeau global */
.nav-premium-marker {
  display: inline-flex;
  align-items: center;
  min-height: 20px;
  padding: 2px 7px;
  border-radius: 999px;
  background: #fff1bf;
  color: #6b4d00;
  font-size: .68rem;
  font-weight: 900;
  line-height: 1;
}

.partner-strip,
.home-banner-slot {
  width: min(728px, calc(100% - 32px));
  margin: 34px auto 18px;
  display: grid;
  justify-items: start;
  gap: 6px;
}

.partner-strip-label,
.home-banner-label {
  padding-left: 4px;
  color: #64748b;
  font-size: .72rem;
  font-weight: 800;
  letter-spacing: .05em;
  text-transform: uppercase;
}

.partner-strip a,
.partner-strip > img,
.home-banner-slot a,
.home-banner-slot > img {
  width: 100%;
  display: block;
  border-radius: 10px;
}

.partner-strip a,
.home-banner-slot a {
  overflow: hidden;
  border: 1px solid rgba(111, 36, 56, .15);
  background: #fff;
  box-shadow: 0 10px 30px rgba(44, 24, 31, .1);
  transition: transform .18s ease, box-shadow .18s ease;
}

.partner-strip a:hover,
.partner-strip a:focus-visible,
.home-banner-slot a:hover,
.home-banner-slot a:focus-visible {
  transform: translateY(-2px);
  box-shadow: 0 14px 36px rgba(44, 24, 31, .16);
}

.partner-strip img,
.home-banner-slot img {
  width: 100%;
  height: auto;
  aspect-ratio: 728 / 90;
  display: block;
  object-fit: contain;
  background: #fff;
}

@media (max-width: 520px) {
  .partner-strip,
.home-banner-slot {
    width: min(728px, calc(100% - 20px));
    margin-top: 24px;
  }

  .nav-premium-marker {
    margin-left: auto;
  }
}

.global-banner-slot{position:relative;z-index:1}.global-banner-slot img{max-width:100%}

.partner-strip-global{position:relative;z-index:1}.partner-strip-global img{max-width:100%}

/* source: assets/css/p7-notifications.css */
.p7-notification-bell{position:relative;display:inline-flex;align-items:center;justify-content:center;width:46px;height:46px;border:1px solid rgba(111,36,56,.2);border-radius:14px;color:#6f2438;background:#fff;text-decoration:none;flex:0 0 auto}.p7-notification-bell:hover,.p7-notification-bell:focus-visible,.p7-notification-bell.is-active{background:#f8eef1;border-color:#6f2438}.p7-notification-bell .ui-icon{width:23px;height:23px}.p7-notification-badge{position:absolute;top:-5px;right:-5px;display:grid;place-items:center;min-width:23px;height:23px;padding:0 6px;border:2px solid #fff;border-radius:999px;background:#9e294a;color:#fff;font-size:.72rem;font-weight:800}.p7-notification-badge.is-empty{display:none}
.p7-notifications-hero{display:flex;align-items:center;justify-content:space-between;gap:24px;margin:30px 0 18px;padding:30px;border-radius:24px;background:linear-gradient(135deg,#fff 0%,#f8edf1 100%);border:1px solid rgba(111,36,56,.12)}.p7-notifications-hero h1{margin:.25rem 0 .5rem;font-size:clamp(2rem,4vw,3rem)}.p7-notifications-hero p{margin:0;max-width:680px;color:#5f5660}.p7-eyebrow{font-size:.78rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:#8b3650}.p7-notification-summary{display:grid;place-items:center;min-width:120px;padding:18px;border-radius:20px;background:#6f2438;color:#fff;text-align:center}.p7-notification-summary strong{font-size:2rem}.p7-notification-summary span{font-size:.88rem}
.p7-filter-tabs{display:flex;gap:10px;margin:18px 0}.p7-filter-tabs a{display:inline-flex;align-items:center;gap:8px;padding:11px 16px;border-radius:999px;border:1px solid #dcc7ce;background:#fff;color:#4d343c;text-decoration:none;font-weight:700}.p7-filter-tabs a.is-active{background:#6f2438;color:#fff;border-color:#6f2438}.p7-filter-tabs span{display:grid;place-items:center;min-width:25px;height:25px;padding:0 7px;border-radius:99px;background:rgba(255,255,255,.18)}
.p7-notification-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:10px;margin-bottom:14px}.p7-notification-actions form{margin:0}.p7-notification-actions button{min-height:44px;padding:0 15px;border-radius:12px;font-weight:700;cursor:pointer}.p7-notification-actions .button-secondary{border:1px solid #6f2438;background:#fff;color:#6f2438}.p7-notification-actions .button-quiet{border:1px solid #ddd;background:#f7f5f6;color:#544a4d}
.p7-notification-list{display:grid;gap:12px}.p7-notification-item{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:16px;padding:18px;border:1px solid #e5d9dd;border-radius:18px;background:#fff;box-shadow:0 8px 24px rgba(54,24,34,.04)}.p7-notification-item.is-unread{border-left:5px solid #9e294a;background:#fffafb}.p7-notification-icon{display:grid;place-items:center;width:48px;height:48px;border-radius:15px;background:#f4e6eb;color:#7c2943}.p7-notification-icon .ui-icon{width:24px;height:24px}.p7-notification-icon.type-match,.p7-notification-icon.type-premium{background:#fff1cf;color:#795714}.p7-notification-icon.type-message{background:#e9f2ff;color:#265b93}.p7-notification-content h2{margin:.25rem 0;font-size:1.05rem}.p7-notification-content p{margin:.25rem 0;color:#5f5659}.p7-notification-content small{color:#776d70}.p7-notification-meta{display:flex;flex-wrap:wrap;gap:10px;color:#7d7075;font-size:.8rem}.p7-notification-meta span{font-weight:800;color:#7c2943}.p7-notification-open button{min-height:44px;padding:0 17px;border:0;border-radius:12px;background:#6f2438;color:#fff;font-weight:800;cursor:pointer}
.p7-notification-empty{display:grid;place-items:center;min-height:300px;padding:35px;border:1px dashed #cdbbc1;border-radius:22px;background:#fff;text-align:center}.p7-empty-icon{width:52px;height:52px;color:#8b3650}.p7-notification-empty h2{margin:14px 0 5px}.p7-notification-empty p{margin:0 0 18px;color:#655b5e}.p7-notification-empty a{padding:12px 18px;border-radius:12px;background:#6f2438;color:#fff;text-decoration:none;font-weight:800}
.p7-preferences{display:grid;grid-template-columns:minmax(220px,.7fr) minmax(0,1.3fr);gap:30px;margin:34px 0;padding:28px;border:1px solid #e3d5da;border-radius:22px;background:#fff}.p7-preferences h2{margin:.35rem 0}.p7-preferences p{color:#655b5e}.p7-preferences-form{display:grid;gap:10px}.p7-preference-row{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:13px 15px;border:1px solid #eadfe3;border-radius:14px;cursor:pointer}.p7-preference-row span{display:grid;gap:3px}.p7-preference-row small{color:#71676a}.p7-preference-row input{width:24px;height:24px;accent-color:#7e2944}.p7-preferences-form>button{justify-self:start;min-height:46px;padding:0 20px;border:0;border-radius:12px;background:#6f2438;color:#fff;font-weight:800;cursor:pointer}
.p7-admin-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin:20px 0}.p7-admin-metrics article{display:grid;gap:5px;padding:20px;border:1px solid #e3d7db;border-radius:18px;background:#fff}.p7-admin-metrics span{color:#74696d}.p7-admin-metrics strong{font-size:2rem;color:#6f2438}.p7-admin-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin:18px 0}.admin-form-stack{display:grid;gap:14px}.admin-form-stack label{display:grid;gap:7px;font-weight:700}.admin-form-stack input[type=text],.admin-form-stack input[type=number],.admin-form-stack textarea{width:100%;padding:12px;border:1px solid #cfc1c6;border-radius:10px;font:inherit}.admin-form-stack button{min-height:46px;border:0;border-radius:12px;background:#6f2438;color:#fff;font-weight:800;cursor:pointer}.admin-switch-row{display:flex!important;align-items:center;justify-content:space-between;gap:18px;padding:14px;border:1px solid #e3d7db;border-radius:14px}.admin-switch-row span{display:grid}.admin-switch-row small{font-weight:400;color:#6d6266}.admin-switch-row input{width:24px;height:24px;accent-color:#6f2438}
@media(max-width:800px){.p7-notifications-hero{align-items:flex-start;padding:22px}.p7-notification-summary{min-width:90px}.p7-notification-item{grid-template-columns:auto minmax(0,1fr)}.p7-notification-open{grid-column:2}.p7-preferences,.p7-admin-grid{grid-template-columns:1fr}.p7-admin-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:520px){.p7-notifications-hero{display:grid}.p7-notification-summary{justify-self:start}.p7-filter-tabs{overflow-x:auto}.p7-notification-item{grid-template-columns:1fr}.p7-notification-icon{width:42px;height:42px}.p7-notification-open{grid-column:1}.p7-notification-open button{width:100%}.p7-preferences{padding:20px}.p7-preference-row{align-items:flex-start}.p7-admin-metrics{grid-template-columns:1fr 1fr}}

/* DuoLocal 1.14.5 — lisibilité de l'administration Notifications */
body.admin-page.page-notifications .admin-page-header {
  margin: 24px 0 18px;
  padding: 28px 30px;
  border: 1px solid rgba(255,255,255,.14);
  border-radius: 22px;
  background: linear-gradient(135deg, #28212a, #7b2d43);
  box-shadow: 0 18px 45px rgba(27, 17, 22, .22);
  color: #fff;
}

body.admin-page.page-notifications .admin-page-header h1,
body.admin-page.page-notifications .admin-page-header p,
body.admin-page.page-notifications .admin-page-header .admin-eyebrow {
  color: #fff !important;
}

body.admin-page.page-notifications .admin-page-header h1 {
  margin: 5px 0 7px;
}

body.admin-page.page-notifications .admin-page-header p {
  margin: 0;
  max-width: 760px;
  color: #f5e9ed !important;
}

body.admin-page.page-notifications .admin-card,
body.admin-page.page-notifications .p7-admin-metrics article {
  background: #fff;
  color: #1f2937;
}

body.admin-page.page-notifications .admin-card h2,
body.admin-page.page-notifications .admin-card label,
body.admin-page.page-notifications .admin-card strong {
  color: #3b2630 !important;
}

body.admin-page.page-notifications .admin-card p,
body.admin-page.page-notifications .admin-card small,
body.admin-page.page-notifications .p7-admin-metrics span {
  color: #5b4f55 !important;
}

body.admin-page.page-notifications .admin-form-stack input,
body.admin-page.page-notifications .admin-form-stack textarea {
  background: #fff;
  color: #1f2937;
}

body.admin-page.page-notifications .admin-switch-row {
  background: #faf7f8;
}

@media (max-width: 620px) {
  body.admin-page.page-notifications .admin-page-header {
    padding: 22px;
    border-radius: 18px;
  }
}

/* source: assets/css/p8-community.css */
/* DuoLocal P8 — Sorties locales et lieux de rendez-vous */
.p8-hero,.p8-form-hero,.p8-event-detail-head{display:flex;justify-content:space-between;align-items:flex-start;gap:28px;margin:28px 0 24px;padding:30px;border:1px solid var(--border-color,#e7dfe1);border-radius:24px;background:linear-gradient(135deg,#fff 0%,#fbf6f7 100%);box-shadow:0 12px 35px rgba(70,25,40,.07)}
.p8-hero.compact{align-items:center}.p8-hero h1,.p8-form-hero h1,.p8-event-detail-head h1{margin:.25rem 0 .65rem;font-size:clamp(2rem,4vw,3.2rem);line-height:1.05}.p8-hero p,.p8-form-hero p,.p8-event-detail-head p{max-width:760px;margin:0;color:#685b60;font-size:1.05rem}.p8-hero-actions{display:flex;flex-wrap:wrap;gap:12px}.p8-hero-actions .button,.p8-hero>a{white-space:nowrap}
.p8-safety-note{display:flex;gap:14px;align-items:flex-start;margin:0 0 22px;padding:18px 20px;border-left:5px solid #39745f;border-radius:14px;background:#edf7f3}.p8-safety-note svg{width:28px;height:28px;color:#39745f;flex:0 0 auto}.p8-safety-note p{margin:4px 0 0;color:#456057}
.p8-filter-bar{display:grid;grid-template-columns:minmax(150px,220px) minmax(220px,1fr) auto auto;gap:14px;align-items:end;margin:24px 0;padding:20px;border-radius:18px;background:#fff;border:1px solid #e6dfe1}.p8-filter-bar label,.p8-form-card label,.p8-sidebar-form label,.p8-admin-actions label{display:grid;gap:7px;font-weight:700;color:#49363c}.p8-filter-bar input,.p8-filter-bar select,.p8-form-card input,.p8-form-card select,.p8-form-card textarea,.p8-sidebar-form input,.p8-sidebar-form select,.p8-sidebar-form textarea,.p8-admin-actions input{width:100%;min-height:48px;padding:11px 13px;border:1px solid #cabdc1;border-radius:10px;background:#fff;color:#2f2428;font:inherit}.p8-filter-bar a{min-height:48px;display:inline-flex;align-items:center;justify-content:center}
.p8-card-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}.p8-event-card,.p8-place-card{position:relative;display:flex;flex-direction:column;gap:13px;min-height:100%;padding:22px;border:1px solid #e4dadd;border-radius:20px;background:#fff;box-shadow:0 10px 26px rgba(61,30,40,.06)}.p8-event-card.is-featured,.p8-place-card.is-featured{border-color:#b4875d;box-shadow:0 12px 30px rgba(134,93,51,.13)}.p8-event-card h2,.p8-place-card h2{margin:0;font-size:1.35rem}.p8-event-card h2 a,.p8-place-card h2 a{color:#522739;text-decoration:none}.p8-event-card>p,.p8-place-card>p{margin:0;color:#62555a;line-height:1.55}.p8-card-topline{display:flex;align-items:center;flex-wrap:wrap;gap:8px;color:#75475a;font-weight:800;font-size:.83rem;text-transform:uppercase;letter-spacing:.04em}.p8-premium-tag,.p8-role{display:inline-flex;align-items:center;min-height:28px;padding:4px 9px;border-radius:999px;background:#f2e4b7;color:#6b4a00;font-size:.78rem;font-weight:800}.p8-event-date{display:flex;align-items:baseline;gap:8px}.p8-event-date strong{font-size:1.18rem}.p8-event-date span{color:#76676c}.p8-location{display:flex;align-items:flex-start;gap:7px}.p8-location svg{width:19px;height:19px;flex:0 0 auto;margin-top:2px}.p8-card-footer{display:flex;justify-content:space-between;gap:12px;margin-top:auto;padding-top:13px;border-top:1px solid #eee7e9;color:#66565c;font-size:.9rem}.p8-card-footer span{display:flex;align-items:center;gap:6px}.p8-card-footer svg{width:18px;height:18px}.p8-card-link{display:inline-flex;align-items:center;justify-content:center;min-height:46px;border-radius:10px;background:#742d47;color:#fff!important;text-decoration:none;font-weight:800}.p8-card-link:hover{background:#5f2138}
.p8-empty-state{margin:28px 0;padding:52px 24px;text-align:center;border:1px dashed #cdbfc4;border-radius:22px;background:#fff}.p8-empty-state svg{width:48px;height:48px;color:#85435a}.p8-empty-state h1,.p8-empty-state h2{margin:14px 0 8px}.p8-empty-state p{color:#6c5d62}.p8-empty-state .button{margin-top:12px}
.p8-form-card{display:grid;gap:24px;max-width:920px;margin:0 auto 42px;padding:28px;border:1px solid #e3dadd;border-radius:22px;background:#fff;box-shadow:0 10px 28px rgba(65,27,40,.06)}.p8-form-card fieldset{display:grid;gap:16px;margin:0;padding:0;border:0}.p8-form-card legend{margin-bottom:15px;font-size:1.25rem;font-weight:900;color:#54283a}.p8-form-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.p8-form-grid legend{grid-column:1/-1}.p8-full-row{grid-column:1/-1}.p8-switch-row{display:flex!important;align-items:center;justify-content:space-between;gap:20px;padding:18px;border-radius:14px;background:#f8f2f4}.p8-switch-row span{display:grid;gap:4px}.p8-switch-row small{font-weight:400;color:#716268}.p8-switch-row input{width:24px!important;min-height:24px!important}.p8-form-actions{display:flex;align-items:center;gap:18px}.p8-form-actions button{min-height:50px}.p8-form-actions a{font-weight:700}
.p8-my-list{display:grid;gap:14px}.p8-my-list>article{display:grid;grid-template-columns:1fr;gap:8px;padding:20px;border:1px solid #e2dadd;border-radius:16px;background:#fff}.p8-my-list h2,.p8-my-list p{margin:0}.p8-my-list h2 a{color:#522739}.p8-my-list>article>div{display:flex;gap:8px;flex-wrap:wrap}
.p8-status{display:inline-flex;align-items:center;min-height:28px;padding:4px 9px;border-radius:999px;background:#eee;color:#554b4f;font-size:.78rem;font-weight:800}.p8-status.status-published,.p8-status.status-approved{background:#dff3e9;color:#256146}.p8-status.status-pending{background:#fff0c9;color:#745400}.p8-status.status-cancelled,.p8-status.status-rejected{background:#fbe0e3;color:#8b2837}.p8-status.status-completed,.p8-status.status-archived{background:#e8e7ef;color:#4e4a65}
.p8-detail-layout{display:grid;grid-template-columns:minmax(0,1fr) 330px;gap:22px;align-items:start}.p8-detail-main,.p8-detail-sidebar{display:grid;gap:20px}.p8-detail-card{padding:23px;border:1px solid #e3dadd;border-radius:18px;background:#fff;box-shadow:0 8px 22px rgba(67,28,41,.05)}.p8-detail-card h2{display:flex;align-items:center;gap:8px;margin:0 0 15px;font-size:1.25rem}.p8-detail-card h2 svg{width:22px;height:22px}.p8-event-keyfacts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.p8-event-keyfacts>div{display:grid;grid-template-columns:auto 1fr;column-gap:10px;align-items:center}.p8-event-keyfacts span{grid-row:1/3}.p8-event-keyfacts svg{width:28px;height:28px;color:#7b3650}.p8-event-keyfacts small{color:#74656a}.p8-rich-text{line-height:1.75;color:#4d4145}.p8-private-meeting{border-left:5px solid #805267;background:#fcf8fa}.p8-action-panel form button,.p8-action-panel>a{width:100%;justify-content:center}.p8-participant-state{padding:12px;border-radius:10px;background:#edf6f1;font-weight:800;color:#32634e}.p8-participant-list{display:grid;gap:12px}.p8-participant-list article{display:grid;gap:9px;padding-bottom:12px;border-bottom:1px solid #eee7e9}.p8-participant-list article:last-child{border-bottom:0}.p8-participant-list article>div{display:grid}.p8-participant-list small{color:#74656a}.p8-participant-list form{display:flex;flex-wrap:wrap;gap:8px}.p8-participant-list button{min-height:38px;padding:7px 10px}.danger-zone{border-color:#e7b8bd}.p8-comments,.p8-reviews{display:grid;gap:14px}.p8-comments article,.p8-reviews article{padding:15px;border-radius:12px;background:#faf6f7}.p8-comments article strong,.p8-comments article time{display:inline-block;margin-right:8px}.p8-comments time,.p8-reviews time{color:#806f75;font-size:.82rem}.p8-comments p,.p8-reviews p{margin:8px 0 0}.p8-comment-form,.p8-sidebar-form{display:grid;gap:12px;margin-top:18px}.p8-comment-form label{display:grid;gap:8px;font-weight:800}.p8-comment-form textarea{width:100%;padding:12px;border:1px solid #cabdc1;border-radius:10px;font:inherit}.p8-place-overview{display:grid;grid-template-columns:150px 1fr;gap:22px;align-items:center}.p8-place-rating{text-align:center;padding:18px;border-radius:14px;background:#f7eef1}.p8-place-rating strong{display:block;font-size:2rem;color:#742d47}.p8-place-rating span{color:#6f6065}
.p8-admin-tabs{display:flex;flex-wrap:wrap;gap:8px;margin:20px 0}.p8-admin-tabs a{display:inline-flex;gap:7px;align-items:center;padding:10px 14px;border-radius:999px;background:#fff;border:1px solid #ddd2d5;color:#53303d;text-decoration:none;font-weight:800}.p8-admin-tabs a.is-active{background:#6f2438;color:#fff;border-color:#6f2438}.p8-admin-tabs span{min-width:23px;padding:2px 6px;border-radius:999px;background:rgba(255,255,255,.24);text-align:center}.p8-admin-list{display:grid;gap:16px}.p8-admin-list>article{display:grid;grid-template-columns:minmax(0,1fr) minmax(280px,420px);gap:24px;padding:18px;border:1px solid #e2dadd;border-radius:15px}.p8-admin-list h2{margin:8px 0}.p8-admin-list p{margin:0 0 6px}.p8-admin-actions{display:grid;gap:10px}.p8-admin-actions>div{display:flex;flex-wrap:wrap;gap:8px}.p8-admin-actions button{min-height:42px}
.p8-dashboard-community{border-color:#d9c7cd;background:linear-gradient(180deg,#fff,#fcf7f9)}
@media(max-width:980px){.p8-card-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.p8-detail-layout{grid-template-columns:1fr}.p8-detail-sidebar{grid-template-columns:repeat(2,minmax(0,1fr))}.p8-admin-list>article{grid-template-columns:1fr}.p8-filter-bar{grid-template-columns:1fr 1fr}.p8-filter-bar button,.p8-filter-bar>a{width:100%}}
@media(max-width:680px){.p8-hero,.p8-form-hero,.p8-event-detail-head{display:grid;padding:22px}.p8-hero-actions{display:grid;width:100%}.p8-card-grid,.p8-form-grid,.p8-event-keyfacts,.p8-detail-sidebar,.p8-place-overview,.p8-filter-bar{grid-template-columns:1fr}.p8-card-footer{display:grid}.p8-form-card{padding:20px}.p8-form-actions{display:grid}.p8-form-actions>*{width:100%;text-align:center}.p8-admin-list>article{padding:14px}.p8-event-keyfacts>div{padding-bottom:12px;border-bottom:1px solid #eee}.p8-event-keyfacts>div:last-child{border-bottom:0}}
@media(prefers-reduced-motion:reduce){.p8-card-link,.p8-admin-tabs a{transition:none!important}}

/* P9 — réglages de conservation des sorties */
.p9-retention-card{margin:20px 0;padding:22px;border:1px solid #d9d0d3;border-radius:18px;background:linear-gradient(135deg,#fff,#f8fbfc);box-shadow:0 8px 24px rgba(34,45,58,.06)}
.p9-retention-card h2{margin:0 0 8px}.p9-retention-card>p{margin:0 0 18px;color:#5f666f}.p9-retention-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.p9-retention-grid label{display:grid;gap:7px;font-weight:800}.p9-retention-grid select{min-height:48px;padding:10px 12px;border:1px solid #cabdc1;border-radius:10px;background:#fff;font:inherit}.p9-retention-actions{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-top:18px}.p9-retention-actions label{display:flex;align-items:center;gap:10px;font-weight:700}.p9-retention-actions input{width:22px;height:22px}.p9-retention-actions button{min-height:46px}.p9-retention-note{margin-top:14px;padding:12px 14px;border-left:4px solid #1886a8;background:#eef9fc;color:#34505a;border-radius:10px}.p8-status.status-archived{background:#e6edf2;color:#41505d}@media(max-width:680px){.p9-retention-grid{grid-template-columns:1fr}.p9-retention-actions{align-items:stretch;flex-direction:column}.p9-retention-actions button{width:100%}}

/* source: assets/css/rtc.css */
.rtc-page-hero,.rtc-section,.rtc-safety-card,.rtc-room{max-width:1100px;margin:0 auto 28px}.rtc-page-hero{display:flex;justify-content:space-between;gap:24px;align-items:flex-start;padding:30px;border:1px solid rgba(111,36,56,.18);border-radius:24px;background:linear-gradient(135deg,#fff,#fbf5f7)}.rtc-page-hero h1,.rtc-room h1{margin:.25rem 0 .5rem}.rtc-eyebrow{display:block;font-weight:800;letter-spacing:.05em;text-transform:uppercase;color:#8f3651;font-size:.78rem}.rtc-help-link{display:inline-flex;align-items:center;gap:8px;white-space:nowrap;padding:12px 16px;border-radius:999px;background:#fff;border:1px solid rgba(111,36,56,.18);font-weight:700}.rtc-help-link .ui-icon{width:20px}.rtc-resume-card{max-width:1100px;margin:0 auto 24px;display:flex;align-items:center;justify-content:space-between;gap:20px;padding:18px 22px;border-radius:18px;background:#173b36;color:#fff}.rtc-resume-card>div{display:flex;align-items:center;gap:14px}.rtc-resume-card p{margin:2px 0 0;opacity:.78}.rtc-resume-card a{background:#fff;color:#173b36;padding:10px 15px;border-radius:12px;font-weight:800}.rtc-status-dot{width:13px;height:13px;border-radius:50%;background:#72e6b2;box-shadow:0 0 0 7px rgba(114,230,178,.18);animation:rtcPulse 1.5s infinite}.rtc-section{padding:28px;border-radius:24px;background:#fff;border:1px solid rgba(40,31,34,.1)}.rtc-section-head{display:flex;justify-content:space-between;gap:30px;align-items:end;margin-bottom:22px}.rtc-section-head h2{margin:.25rem 0 0}.rtc-section-head>p{max-width:430px;color:#6c6265}.rtc-contact-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:16px}.rtc-contact-card{display:flex;gap:14px;align-items:center;padding:16px;border:1px solid rgba(40,31,34,.1);border-radius:18px;background:#fcfafb}.rtc-contact-photo{width:68px;height:68px;flex:0 0 68px;border-radius:50%;overflow:hidden;background:#efe7ea;display:grid;place-items:center}.rtc-contact-photo img{width:100%;height:100%;object-fit:cover}.rtc-contact-photo .ui-icon{width:30px}.rtc-contact-body{min-width:0;flex:1}.rtc-contact-body h3{margin:0}.rtc-contact-body p{margin:3px 0 10px;color:#6c6265}.rtc-contact-actions{display:flex;gap:8px;flex-wrap:wrap}.rtc-contact-actions form{margin:0}.rtc-call-button{display:inline-flex;align-items:center;gap:7px;min-height:42px;padding:9px 12px;border:0;border-radius:12px;font-weight:800;cursor:pointer}.rtc-call-button .ui-icon{width:18px}.rtc-call-button.audio{background:#ede8f8;color:#432e72}.rtc-call-button.video{background:#6f2438;color:#fff}.rtc-unavailable{display:block;color:#8a686f}.rtc-empty{text-align:center;padding:38px;border:1px dashed rgba(111,36,56,.25);border-radius:18px;background:#fdfafb}.rtc-empty.compact{padding:20px}.rtc-empty-icon{width:46px;color:#8f3651}.rtc-empty a{display:inline-block;margin-top:8px;font-weight:800}.rtc-history-list{display:grid;gap:10px}.rtc-history-row{display:grid;grid-template-columns:48px 1fr auto;gap:14px;align-items:center;padding:13px 15px;border-radius:15px;background:#f8f5f6}.rtc-history-icon{width:44px;height:44px;border-radius:50%;display:grid;place-items:center;background:#fff;color:#6f2438}.rtc-history-icon .ui-icon{width:21px}.rtc-history-main{display:flex;flex-direction:column;min-width:0}.rtc-history-main span,.rtc-history-meta{color:#6c6265;font-size:.92rem}.rtc-history-meta{display:flex;flex-direction:column;align-items:flex-end}.rtc-safety-card{display:flex;gap:18px;align-items:flex-start;padding:22px 26px;border-radius:20px;background:#f2f7f5;border:1px solid #cfe3db}.rtc-safety-card>.ui-icon{width:30px;color:#276b58}.rtc-safety-card h2{margin:0 0 4px}.rtc-safety-card p{margin:0}.rtc-room{padding:0;border-radius:24px;overflow:hidden;background:#15171a;color:#fff;box-shadow:0 18px 55px rgba(0,0,0,.18)}.rtc-room-header{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:16px 20px;background:#22252a}.rtc-room-back{color:#fff;opacity:.85}.rtc-room-person{display:flex;align-items:center;gap:12px}.rtc-room-person img,.rtc-room-person>span{width:48px;height:48px;border-radius:50%;object-fit:cover;background:#34383f;display:grid;place-items:center}.rtc-room-person .ui-icon{width:23px}.rtc-room-person h1{font-size:1.08rem;margin:0}.rtc-room-person p{margin:2px 0 0;color:#c8ccd2}.rtc-private-badge{display:inline-flex;align-items:center;gap:6px;padding:8px 11px;background:#2e333a;border-radius:999px;font-size:.82rem}.rtc-private-badge .ui-icon{width:16px}.rtc-stage{position:relative;min-height:560px;background:#0b0d0f;display:grid;place-items:center}.rtc-stage.audio-only{min-height:440px;background:radial-gradient(circle at center,#30343a,#0b0d0f 65%)}#rtcRemoteVideo{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;background:#0b0d0f}.rtc-stage.audio-only #rtcRemoteVideo{opacity:0}.rtc-remote-placeholder{position:relative;z-index:2;display:flex;flex-direction:column;align-items:center;gap:9px;text-align:center}.rtc-remote-placeholder img{width:150px;height:150px;border-radius:50%;object-fit:cover;border:4px solid rgba(255,255,255,.18)}.rtc-avatar-icon{width:100px;color:#868d96}.rtc-remote-placeholder strong{font-size:1.35rem}.rtc-remote-placeholder span{color:#cbd0d7}#rtcLocalVideo{position:absolute;z-index:3;right:18px;bottom:18px;width:min(28%,240px);aspect-ratio:4/3;object-fit:cover;border-radius:16px;border:2px solid rgba(255,255,255,.65);background:#222;box-shadow:0 8px 25px rgba(0,0,0,.35)}#rtcLocalVideo.is-camera-off{opacity:.18}.rtc-room-message{min-height:22px;padding:10px 20px;text-align:center;background:#22252a;color:#d9dde2}.rtc-room-message.success{color:#9cf1c6}.rtc-room-message.error{color:#ffb0b0}.rtc-room-message.warning{color:#ffd28a}.rtc-start-panel{padding:28px;text-align:center;background:#22252a}.rtc-start-panel h2{margin:0 0 7px}.rtc-start-panel p{margin:0 0 18px;color:#c6cad0}.rtc-start-actions,.rtc-ended-actions{display:flex;justify-content:center;gap:12px;flex-wrap:wrap}.rtc-start-actions button,.rtc-ended-actions a{min-height:48px;padding:12px 20px;border:0;border-radius:14px;font-weight:850;cursor:pointer}.rtc-start-actions .rtc-accept{display:inline-flex;align-items:center;gap:8px;background:#4fbe8b;color:#09251a}.rtc-start-actions .rtc-decline{background:#3b4048;color:#fff}.rtc-controls{display:flex;justify-content:center;gap:12px;flex-wrap:wrap;padding:16px 20px 22px;background:#22252a}.rtc-controls button{display:flex;flex-direction:column;align-items:center;gap:5px;min-width:100px;padding:10px 14px;border:0;border-radius:14px;background:#343941;color:#fff;cursor:pointer}.rtc-controls button[aria-pressed=true]{background:#795067}.rtc-controls button.danger{background:#a83449}.rtc-controls button.warning{background:#72562d}.rtc-controls .ui-icon{width:23px}.rtc-report-form{margin:0;padding:22px 28px;background:#fff;color:#282024}.rtc-report-form label{display:block;margin:12px 0 5px;font-weight:800}.rtc-report-form select,.rtc-report-form textarea{width:100%;padding:11px;border:1px solid #cfc4c7;border-radius:10px}.rtc-report-form>div{display:flex;gap:10px;margin-top:14px}.rtc-report-form button{padding:10px 15px;border:0;border-radius:10px;background:#6f2438;color:#fff;font-weight:800}.rtc-report-form button.secondary{background:#ece7e9;color:#282024}.rtc-ended-card{text-align:center;padding:65px 25px;background:#fff;color:#282024}.rtc-ended-icon{width:60px;color:#6f2438}.rtc-ended-card h2{margin:12px 0 5px}.rtc-ended-card p{margin:0 0 12px}.rtc-ended-actions{margin-top:22px}.rtc-ended-actions a{background:#6f2438;color:#fff}.rtc-ended-actions a.secondary{background:#eee8ea;color:#282024}.rtc-incoming-card{position:fixed;z-index:9998;right:18px;bottom:18px;max-width:min(430px,calc(100vw - 36px));display:grid;grid-template-columns:auto 1fr auto;gap:13px;align-items:center;padding:15px 16px;border-radius:18px;background:#20242a;color:#fff;box-shadow:0 16px 45px rgba(0,0,0,.35)}.rtc-incoming-pulse{width:16px;height:16px;border-radius:50%;background:#54d69b;box-shadow:0 0 0 8px rgba(84,214,155,.14);animation:rtcPulse 1.4s infinite}.rtc-incoming-copy{display:flex;flex-direction:column}.rtc-incoming-copy span{color:#cdd1d6;font-size:.9rem}.rtc-incoming-actions{display:flex;gap:7px}.rtc-incoming-actions a,.rtc-incoming-actions button{padding:9px 12px;border:0;border-radius:10px;font-weight:800;cursor:pointer}.rtc-incoming-open{background:#58d49c;color:#10241c}.rtc-incoming-decline{background:#41464e;color:#fff}@keyframes rtcPulse{50%{transform:scale(.86);opacity:.7}}@media(max-width:760px){.rtc-page-hero,.rtc-section-head{flex-direction:column;align-items:stretch}.rtc-page-hero{padding:22px}.rtc-section{padding:20px}.rtc-history-row{grid-template-columns:42px 1fr}.rtc-history-meta{grid-column:2;align-items:flex-start}.rtc-room{border-radius:0;margin-left:-16px;margin-right:-16px}.rtc-room-header{align-items:flex-start}.rtc-room-back,.rtc-private-badge{font-size:.78rem}.rtc-stage{min-height:62vh}.rtc-stage.audio-only{min-height:52vh}#rtcLocalVideo{width:34%;right:10px;bottom:10px}.rtc-controls{gap:8px}.rtc-controls button{min-width:82px;font-size:.78rem}.rtc-incoming-card{grid-template-columns:auto 1fr;bottom:10px;right:10px;left:10px;max-width:none}.rtc-incoming-actions{grid-column:1/-1;justify-content:flex-end}}
.conversation-v3-header-actions{display:flex;align-items:center;justify-content:flex-end;gap:8px;flex-wrap:wrap}.conversation-v3-header-actions form{margin:0}.conversation-v3-header-actions button.conversation-v3-profile-link{border:0;cursor:pointer;font:inherit}.match-v3-actions form{margin:0}.match-v3-actions .action-inline-form{display:inline-flex}
@media(max-width:760px){.conversation-v3-header-actions{width:100%;justify-content:flex-start}.conversation-v3-header{align-items:flex-start;flex-wrap:wrap}}


/* DuoLocal 1.13.3 — quotas mensuels des appels Free */
.rtc-quota-panel{max-width:1100px;margin:0 auto 24px;padding:22px 24px;border:1px solid rgba(111,36,56,.16);border-radius:22px;background:linear-gradient(135deg,#fff8fa,#f5fbf9);display:grid;grid-template-columns:minmax(0,1fr) auto;gap:18px 24px;align-items:center}.rtc-quota-copy h2{margin:.2rem 0 .35rem}.rtc-quota-copy p{margin:0;color:#6c6265}.rtc-quota-counters{display:flex;gap:10px;flex-wrap:wrap;justify-content:flex-end}.rtc-quota-counters article{min-width:150px;display:flex;align-items:center;gap:10px;padding:12px 14px;border-radius:15px;background:#fff;border:1px solid rgba(40,31,34,.1)}.rtc-quota-counters article>.ui-icon{width:23px}.rtc-quota-counters article>div{display:flex;flex-direction:column}.rtc-quota-counters article span{font-size:.86rem;color:#6c6265}.rtc-quota-counters .is-available{box-shadow:inset 3px 0 0 #4caa7d}.rtc-quota-counters .is-used{opacity:.68;box-shadow:inset 3px 0 0 #a36a77}.rtc-quota-footer{grid-column:1/-1;display:flex;align-items:center;justify-content:space-between;gap:12px;padding-top:13px;border-top:1px solid rgba(40,31,34,.08)}.rtc-quota-footer a{font-weight:800;color:#6f2438}.rtc-call-button:disabled{cursor:not-allowed;opacity:.42;filter:grayscale(.35)}
@media(max-width:760px){.rtc-quota-panel{grid-template-columns:1fr;padding:19px}.rtc-quota-counters{justify-content:stretch}.rtc-quota-counters article{flex:1 1 135px}.rtc-quota-footer{align-items:flex-start;flex-direction:column}}

/* source: assets/css/admin-roles.css */
.admin-plan-preview {
    z-index: 930;
    padding: 0.55rem 1rem;
    background: #162238;
    color: #fff;
    border-bottom: 1px solid rgba(255,255,255,.16);
    box-shadow: 0 8px 22px rgba(15,23,42,.12);
}

.admin-plan-preview-inner {
    width: min(1180px, 100%);
    margin: 0 auto;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
}

.admin-plan-preview-copy {
    display: flex;
    flex-direction: column;
    gap: .12rem;
    line-height: 1.25;
}

.admin-plan-preview-copy strong {
    font-size: .95rem;
}

.admin-plan-preview-copy span {
    font-size: .82rem;
    color: #d8e3f3;
}

.admin-plan-preview-actions {
    display: flex;
    flex-wrap: wrap;
    gap: .45rem;
}

.admin-plan-preview-actions form {
    margin: 0;
}

.admin-plan-preview-actions button {
    min-height: 38px;
    padding: .48rem .72rem;
    border: 1px solid rgba(255,255,255,.28);
    border-radius: 10px;
    background: rgba(255,255,255,.08);
    color: #fff;
    font: inherit;
    font-weight: 700;
    cursor: pointer;
}

.admin-plan-preview-actions button:hover,
.admin-plan-preview-actions button:focus-visible {
    background: rgba(255,255,255,.18);
    outline: 3px solid rgba(255,255,255,.28);
    outline-offset: 2px;
}

.admin-plan-preview-actions button.is-active {
    background: #fff;
    color: #162238;
    border-color: #fff;
}

.admin-v3-pill.admin-role {
    background: #e8e5ff;
    color: #4934a8;
    border: 1px solid #c9c0ff;
}

.admin-self-label {
    display: inline-block;
    margin-left: .4rem;
    color: #5b6472;
    font-weight: 700;
}

.admin-self-actions {
    max-width: 250px;
    padding: .8rem;
    border: 1px solid #d8e0ea;
    border-radius: 12px;
    background: #f7f9fc;
}

.admin-self-actions strong {
    display: block;
    margin-bottom: .25rem;
}

.admin-self-actions p {
    margin: 0;
    font-size: .9rem;
    line-height: 1.4;
}

@media (max-width: 760px) {
    .admin-plan-preview {
        position: static;
        padding: .65rem .75rem;
    }

    .admin-plan-preview-inner {
        align-items: stretch;
        flex-direction: column;
    }

    .admin-plan-preview-actions {
        display: grid;
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .admin-plan-preview-actions button {
        width: 100%;
        padding-inline: .35rem;
        font-size: .82rem;
    }
}

/* source: assets/css/lot3-integrations.css */
.tracking-consent-banner {
    position: fixed;
    /* Doit rester au-dessus des scènes A.N.I.M.A./Casino immersives. */
    z-index: 2147483000;
    left: 1rem;
    right: 1rem;
    bottom: 1rem;
    left: max(1rem, env(safe-area-inset-left));
    right: max(1rem, env(safe-area-inset-right));
    bottom: max(1rem, env(safe-area-inset-bottom));
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    max-width: 980px;
    margin: 0 auto;
    padding: 1rem 1.2rem;
    border: 1px solid rgba(255, 255, 255, .18);
    border-radius: 18px;
    background: rgba(30, 16, 22, .97);
    color: #fff;
    box-shadow: 0 20px 60px rgba(0, 0, 0, .35);
    max-height: calc(100dvh - 2rem - env(safe-area-inset-top) - env(safe-area-inset-bottom));
    overflow: auto;
    overscroll-behavior: contain;
}
.tracking-consent-banner:focus { outline: 3px solid rgba(240, 201, 167, .8); outline-offset: 2px; }
.tracking-consent-banner h2 { margin: 0 0 .3rem; font-size: 1.05rem; }
.tracking-consent-banner p { margin: 0; max-width: 650px; font-size: .92rem; }
.tracking-consent-actions { display: flex; align-items: center; gap: .6rem; flex-wrap: wrap; }
.tracking-consent-actions form { margin: 0; }
.tracking-consent-actions button,
.cookie-consent-forms button {
    border: 0;
    border-radius: 999px;
    padding: .72rem 1rem;
    cursor: pointer;
    font-weight: 700;
}
.tracking-consent-actions button:not(.tracking-consent-secondary),
.cookie-consent-forms button:not(.tracking-consent-secondary):not(.tracking-consent-link) {
    background: #f0c9a7;
    color: #3b1722;
}
.tracking-consent-secondary { background: #fff; color: #3b1722; }
.tracking-consent-actions a { color: #fff; text-decoration: underline; }
.cookie-consent-status { display: grid; gap: .35rem; margin: 1rem 0; padding: 1rem; border-radius: 14px; background: rgba(111, 36, 56, .08); }
.cookie-consent-forms { display: flex; gap: .7rem; flex-wrap: wrap; margin: 1rem 0; }
.tracking-consent-link { background: transparent; color: inherit; text-decoration: underline; }
.integration-alert-list { display: grid; gap: .75rem; margin: 1rem 0; }
.integration-alert-item { padding: .9rem 1rem; border-radius: 14px; border-left: 5px solid currentColor; background: rgba(111, 36, 56, .06); }
.integration-alert-item.is-critical { color: #9b1c1c; }
.integration-alert-item.is-warning { color: #8a5b00; }
.integration-alert-item.is-info { color: #24527a; }
.integration-status-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 1rem; }
@media (max-width: 760px) {
    .tracking-consent-banner {
        align-items: stretch;
        flex-direction: column;
        gap: .75rem;
        left: max(.65rem, env(safe-area-inset-left));
        right: max(.65rem, env(safe-area-inset-right));
        bottom: max(.65rem, env(safe-area-inset-bottom));
        max-height: calc(100dvh - 1.3rem - env(safe-area-inset-top) - env(safe-area-inset-bottom));
        padding: .9rem;
        border-radius: 15px;
    }
    .tracking-consent-actions { width: 100%; display: grid; grid-template-columns: 1fr 1fr; gap: .55rem; }
    .tracking-consent-actions form { min-width: 0; }
    .tracking-consent-actions button { width: 100%; min-height: 44px; }
    .tracking-consent-actions > a { grid-column: 1 / -1; justify-self: center; padding: .2rem .4rem; }
}

/* source: assets/css/p4-comfort-design.css */
/*
 * DuoLocal P4 — Design professionnel et confort 40+
 * Cette feuille est chargée en dernier afin d'unifier progressivement
 * les écrans historiques sans modifier leur logique métier.
 */

:root {
  --p4-primary: #6f2438;
  --p4-primary-dark: #4e1726;
  --p4-primary-soft: #f5e9ec;
  --p4-accent: #b65a62;
  --p4-ink: #25313b;
  --p4-muted: #5f6973;
  --p4-bg: #f5f3ef;
  --p4-surface: #ffffff;
  --p4-surface-alt: #fbfaf8;
  --p4-border: #dcd7d1;
  --p4-border-strong: #c8c1b9;
  --p4-success: #176c43;
  --p4-success-soft: #e8f4ed;
  --p4-warning: #8b4a0f;
  --p4-warning-soft: #fff2df;
  --p4-danger: #a9252d;
  --p4-danger-soft: #fae8e9;
  --p4-focus: #0b65a5;
  --p4-radius-sm: 8px;
  --p4-radius: 14px;
  --p4-radius-lg: 20px;
  --p4-shadow-sm: 0 4px 14px rgba(34, 42, 49, .06);
  --p4-shadow: 0 12px 34px rgba(34, 42, 49, .09);
  --p4-header-height: 76px;
}

html {
  font-size: 17px;
  scroll-padding-top: calc(var(--p4-header-height) + 24px);
}

html[data-text-size="large"] {
  font-size: 19px;
}

html[data-high-contrast="true"] {
  --p4-primary: #5a1027;
  --p4-primary-dark: #350815;
  --p4-ink: #101820;
  --p4-muted: #343a40;
  --p4-bg: #ffffff;
  --p4-surface: #ffffff;
  --p4-surface-alt: #f3f3f3;
  --p4-border: #6b6b6b;
  --p4-border-strong: #252525;
  --p4-focus: #005fcc;
}

*,
*::before,
*::after {
  box-sizing: border-box;
}

body {
  min-width: 320px;
  margin: 0;
  background: var(--p4-bg);
  color: var(--p4-ink);
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  font-size: 1rem;
  line-height: 1.6;
}

body.mobile-navigation-open {
  overflow: hidden;
}

p,
li,
label,
input,
select,
textarea,
button {
  font-size: 1rem;
}

h1,
h2,
h3 {
  color: var(--p4-ink);
  line-height: 1.2;
  letter-spacing: -.02em;
}

h1 {
  font-size: clamp(2rem, 4vw, 3rem);
}

h2 {
  font-size: clamp(1.45rem, 2.5vw, 2rem);
}

h3 {
  font-size: 1.2rem;
}

main a:not([class]),
.site-footer-v4 a:not([class]) {
  text-decoration-thickness: .09em;
  text-underline-offset: .18em;
}

.container {
  width: min(1180px, calc(100% - 48px));
  margin-inline: auto;
  padding: 38px 0 0;
}

.skip-link {
  position: fixed;
  z-index: 10000;
  top: 10px;
  left: 12px;
  padding: 12px 18px;
  border-radius: var(--p4-radius-sm);
  background: var(--p4-ink);
  color: #fff;
  font-weight: 800;
  transform: translateY(-150%);
  transition: transform .15s ease;
}

.skip-link:focus {
  transform: translateY(0);
}

.ui-icon {
  width: 1.25em;
  height: 1.25em;
  flex: 0 0 auto;
  vertical-align: -.2em;
}

.ui-icon.chevron {
  width: .95em;
  height: .95em;
  transition: transform .18s ease;
}

:focus-visible {
  outline: 3px solid var(--p4-focus) !important;
  outline-offset: 3px !important;
  box-shadow: none !important;
}

/* Header et navigation */
.site-header-v3.site-header-v4 {
  position: sticky;
  top: 0;
  z-index: 1000;
  min-height: var(--p4-header-height);
  border-bottom: 1px solid var(--p4-border);
  background: rgba(255, 255, 255, .97);
  box-shadow: 0 2px 12px rgba(35, 42, 48, .06);
  backdrop-filter: blur(14px);
}

.site-header-v4-inner.site-header-inner {
  width: min(1280px, calc(100% - 40px));
  min-height: var(--p4-header-height);
  margin: 0 auto;
  padding: 8px 0;
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  align-items: center;
  gap: 24px;
}

.site-logo-v4.site-logo-v3 {
  display: inline-flex;
  flex-direction: column;
  align-items: flex-start;
  min-width: 124px;
  color: var(--p4-ink);
  font-size: 1.55rem;
  font-weight: 850;
  line-height: 1;
  text-decoration: none;
  letter-spacing: -.04em;
}

.site-logo-v4.site-logo-v3 span {
  display: inline;
  color: var(--p4-primary);
}

.site-logo-v4 small {
  margin-top: 5px;
  color: var(--p4-muted);
  font-size: .67rem;
  font-weight: 700;
  letter-spacing: .05em;
  text-transform: uppercase;
}

.site-nav-v4.site-nav-v3 {
  min-width: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 5px;
  flex-wrap: nowrap;
}

.site-nav-v4 .nav-link,
.site-nav-v4 .nav-dropdown > summary {
  min-height: 46px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 9px 13px;
  border: 1px solid transparent;
  border-radius: 10px;
  background: transparent;
  color: var(--p4-ink);
  font-size: .93rem;
  font-weight: 750;
  line-height: 1.2;
  text-decoration: none;
  white-space: nowrap;
  cursor: pointer;
}

.site-nav-v4 .nav-link:hover,
.site-nav-v4 .nav-dropdown > summary:hover,
.site-nav-v4 .nav-link.is-active,
.site-nav-v4 .nav-link[aria-current="page"] {
  background: var(--p4-primary-soft);
  color: var(--p4-primary-dark);
}

.site-nav-v4 .nav-link.is-active,
.site-nav-v4 .nav-link[aria-current="page"] {
  border-color: rgba(111, 36, 56, .18);
}

.site-nav-v4 .nav-link-cta {
  background: var(--p4-primary);
  color: #fff;
}

.site-nav-v4 .nav-link-cta:hover,
.site-nav-v4 .nav-link-cta.is-active {
  background: var(--p4-primary-dark);
  color: #fff;
}

.nav-message-badge {
  min-width: 23px;
  height: 23px;
  padding: 0 6px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 999px;
  background: var(--p4-danger);
  color: #fff;
  font-size: .72rem;
  font-weight: 900;
}

.nav-dropdown,
.account-menu {
  position: relative;
}

.nav-dropdown > summary,
.account-menu > summary {
  list-style: none;
}

.nav-dropdown > summary::-webkit-details-marker,
.account-menu > summary::-webkit-details-marker {
  display: none;
}

.nav-dropdown[open] > summary .chevron,
.account-menu[open] > summary .chevron,
.premium-tool-group[open] > summary .chevron {
  transform: rotate(180deg);
}

.nav-dropdown-panel,
.account-menu-panel {
  position: absolute;
  z-index: 1100;
  top: calc(100% + 10px);
  min-width: 260px;
  padding: 8px;
  border: 1px solid var(--p4-border);
  border-radius: var(--p4-radius);
  background: var(--p4-surface);
  box-shadow: var(--p4-shadow);
}

.nav-dropdown-panel {
  left: 0;
}

.nav-dropdown-panel a,
.account-menu-panel a,
.account-logout-form button {
  width: 100%;
  min-height: 46px;
  padding: 10px 12px;
  display: flex;
  align-items: center;
  gap: 10px;
  border: 0;
  border-radius: 9px;
  background: transparent;
  color: var(--p4-ink);
  font: inherit;
  font-weight: 700;
  text-align: left;
  text-decoration: none;
  cursor: pointer;
}

.nav-dropdown-panel a:hover,
.account-menu-panel a:hover,
.account-logout-form button:hover {
  background: var(--p4-primary-soft);
  color: var(--p4-primary-dark);
  transform: none;
}

.account-menu > summary {
  min-width: 178px;
  min-height: 54px;
  padding: 5px 8px 5px 6px;
  display: flex;
  align-items: center;
  gap: 9px;
  border: 1px solid var(--p4-border);
  border-radius: 13px;
  background: var(--p4-surface);
  cursor: pointer;
}

.account-menu > summary:hover {
  border-color: var(--p4-border-strong);
}

.account-menu img,
.account-avatar-placeholder {
  width: 40px;
  height: 40px;
  border-radius: 10px;
}

.account-menu img {
  object-fit: cover;
}

.account-avatar-placeholder {
  display: grid;
  place-items: center;
  background: var(--p4-primary-soft);
  color: var(--p4-primary);
}

.account-menu-label {
  min-width: 88px;
  display: flex;
  flex-direction: column;
  line-height: 1.2;
}

.account-menu-label strong {
  max-width: 120px;
  overflow: hidden;
  color: var(--p4-ink);
  font-size: .88rem;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.account-menu-label small {
  margin-top: 3px;
  color: var(--p4-muted);
  font-size: .72rem;
  font-weight: 650;
}

.account-menu-panel {
  right: 0;
}

.account-logout-form {
  margin: 5px 0 0;
  padding-top: 5px;
  border-top: 1px solid var(--p4-border);
}

.account-logout-form button {
  color: var(--p4-danger);
}

.mobile-nav-toggle {
  display: none;
}

/* Boutons et formulaires */
.button,
button[type="submit"],
.btn,
.btn-main,
.btn-small,
.signature-btn,
.dating-main-btn-v4,
.profile-v3-btn,
.profile-v3-side-action,
.list-v3-btn,
.match-v3-btn,
.messages-v3-action a,
.premium-v5-main-btn,
.premium-v5-cta,
.photos-v3-actions button {
  min-height: 50px;
  padding: 12px 20px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 9px;
  border: 1px solid var(--p4-primary);
  border-radius: 10px;
  background: var(--p4-primary);
  color: #fff;
  font-family: inherit;
  font-size: .98rem;
  font-weight: 800;
  line-height: 1.25;
  text-align: center;
  text-decoration: none;
  cursor: pointer;
  transition: background .15s ease, border-color .15s ease, transform .15s ease;
}

.button:hover,
button[type="submit"]:hover,
.btn:hover,
.btn-main:hover,
.btn-small:hover,
.signature-btn:hover,
.dating-main-btn-v4:hover,
.profile-v3-btn:hover,
.profile-v3-side-action:hover,
.list-v3-btn:hover,
.match-v3-btn:hover,
.messages-v3-action a:hover,
.premium-v5-main-btn:hover,
.premium-v5-cta:hover,
.photos-v3-actions button:hover {
  background: var(--p4-primary-dark);
  border-color: var(--p4-primary-dark);
  color: #fff;
  transform: translateY(-1px);
}

.button-secondary,
.signature-btn.secondary {
  border-color: var(--p4-border-strong);
  background: var(--p4-surface);
  color: var(--p4-primary-dark);
}

.button-secondary:hover,
.signature-btn.secondary:hover {
  border-color: var(--p4-primary);
  background: var(--p4-primary-soft);
  color: var(--p4-primary-dark);
}

.button-danger {
  border-color: var(--p4-danger);
  background: var(--p4-danger);
}

label,
legend {
  color: var(--p4-ink);
  font-weight: 800;
}

input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]),
select,
textarea {
  width: 100%;
  min-height: 52px;
  padding: 12px 14px;
  border: 1px solid var(--p4-border-strong);
  border-radius: 9px;
  background: var(--p4-surface);
  color: var(--p4-ink);
  font: inherit;
  line-height: 1.35;
}

textarea {
  min-height: 130px;
}

input::placeholder,
textarea::placeholder {
  color: #737b83;
  opacity: 1;
}

input:focus,
select:focus,
textarea:focus {
  border-color: var(--p4-focus);
}

form small,
.field-help,
.birthdate-help {
  color: var(--p4-muted);
  font-size: .88rem;
  font-weight: 600;
  line-height: 1.45;
}

fieldset {
  min-width: 0;
  margin: 0;
  padding: 0;
  border: 0;
}

.alert {
  margin: 16px 0;
  padding: 14px 16px;
  border: 1px solid var(--p4-border);
  border-left-width: 5px;
  border-radius: 10px;
  font-weight: 700;
}

.alert.success {
  border-color: var(--p4-success);
  background: var(--p4-success-soft);
  color: #124c32;
}

.alert.error {
  border-color: var(--p4-danger);
  background: var(--p4-danger-soft);
  color: #70191f;
}

/* Cartes et héros historiques : finition plus sobre */
.auth-v3-card,
.profile-form-card,
.card,
.dating-card-v4,
.profile-v3-card,
.messages-v3-item,
.match-v3-card,
.list-v3-card,
.photos-v3-card,
.premium-v5-plan,
.premium-v5-benefits article,
.visitors-v5-card,
.score-v5-card,
.admin-center-card {
  border: 1px solid var(--p4-border);
  border-radius: var(--p4-radius-lg);
  background: var(--p4-surface);
  box-shadow: var(--p4-shadow-sm);
}

.auth-v3-card,
.profile-form-card {
  padding: clamp(24px, 5vw, 42px);
}

.auth-v3-card h1,
.profile-form-card h1 {
  color: var(--p4-ink);
  font-size: clamp(2rem, 5vw, 2.6rem);
}

.auth-v3-badge,
.profile-form-badge,
.section-kicker {
  color: var(--p4-primary);
  font-size: .78rem;
  font-weight: 850;
  letter-spacing: .07em;
  text-transform: uppercase;
}

.auth-v3-badge,
.profile-form-badge {
  padding: 6px 10px;
  border-radius: 7px;
  background: var(--p4-primary-soft);
}

.auth-v3-form,
.profile-form-grid {
  gap: 17px;
}

.auth-v3-form label,
.profile-form-grid label {
  margin-bottom: 7px;
}

.profile-form-card {
  max-width: 900px;
}

.birthdate-inline {
  grid-template-columns: minmax(90px, .8fr) minmax(110px, 1fr) minmax(130px, 1fr);
}

/* Dashboard P4 */
.dashboard-welcome {
  padding: clamp(24px, 4vw, 38px);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 28px;
  border: 1px solid var(--p4-border);
  border-radius: var(--p4-radius-lg);
  background: linear-gradient(135deg, #fff 0%, #fbf5f6 100%);
  box-shadow: var(--p4-shadow-sm);
}

.dashboard-welcome-profile {
  display: flex;
  align-items: center;
  gap: 22px;
}

.dashboard-welcome-photo {
  width: 104px;
  height: 104px;
  flex: 0 0 auto;
  border: 3px solid #fff;
  border-radius: 16px;
  object-fit: cover;
  box-shadow: 0 6px 20px rgba(45, 37, 40, .12);
}

.dashboard-photo-placeholder {
  display: grid;
  place-items: center;
  background: var(--p4-primary-soft);
  color: var(--p4-primary);
}

.dashboard-photo-placeholder .ui-icon {
  width: 48px;
  height: 48px;
}

.dashboard-eyebrow {
  margin-bottom: 8px;
  display: flex;
  align-items: center;
  gap: 10px;
  flex-wrap: wrap;
}

.dashboard-eyebrow > span:first-child {
  color: var(--p4-muted);
  font-size: .78rem;
  font-weight: 800;
  letter-spacing: .06em;
  text-transform: uppercase;
}

.dashboard-welcome h1 {
  margin: 0 0 5px;
}

.dashboard-welcome p {
  margin: 0;
  color: var(--p4-muted);
  font-weight: 650;
}

.status-badge {
  min-height: 32px;
  padding: 5px 9px;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  border-radius: 7px;
  font-size: .77rem;
  font-weight: 800;
  text-decoration: none;
}

.status-badge .ui-icon {
  width: 15px;
  height: 15px;
}

.status-badge.premium {
  background: #f7edcf;
  color: #715211;
}

.status-badge.upgrade {
  background: var(--p4-primary-soft);
  color: var(--p4-primary-dark);
}

.dashboard-today {
  min-width: 220px;
  padding: 15px 18px;
  display: grid;
  gap: 4px;
  border-left: 3px solid var(--p4-primary);
  background: rgba(255, 255, 255, .72);
}

.dashboard-today strong {
  margin-bottom: 3px;
  color: var(--p4-primary-dark);
}

.dashboard-today span {
  color: var(--p4-muted);
  font-size: .9rem;
  font-weight: 650;
}

.dashboard-primary,
.dashboard-tools {
  margin-top: 36px;
}

.section-heading {
  margin-bottom: 18px;
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 20px;
}

.section-heading.compact {
  margin-bottom: 15px;
}

.section-heading h2 {
  margin: 3px 0 0;
}

.section-heading p {
  max-width: 720px;
  margin: 6px 0 0;
  color: var(--p4-muted);
}

.dashboard-primary-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 14px;
}

.primary-action-card {
  min-height: 126px;
  padding: 20px;
  display: flex;
  align-items: center;
  gap: 16px;
  border: 1px solid var(--p4-primary);
  border-radius: var(--p4-radius);
  background: var(--p4-primary);
  color: #fff;
  text-decoration: none;
  box-shadow: var(--p4-shadow-sm);
  transition: transform .15s ease, box-shadow .15s ease, background .15s ease;
}

.primary-action-card.secondary {
  border-color: var(--p4-border);
  background: var(--p4-surface);
  color: var(--p4-ink);
}

.primary-action-card:hover {
  transform: translateY(-2px);
  box-shadow: var(--p4-shadow);
  background: var(--p4-primary-dark);
  color: #fff;
}

.primary-action-card.secondary:hover {
  border-color: var(--p4-primary);
  background: var(--p4-primary-soft);
  color: var(--p4-primary-dark);
}

.action-icon {
  width: 48px;
  height: 48px;
  display: grid;
  place-items: center;
  flex: 0 0 auto;
  border-radius: 12px;
  background: rgba(255,255,255,.16);
}

.secondary .action-icon {
  background: var(--p4-primary-soft);
  color: var(--p4-primary);
}

.action-icon .ui-icon {
  width: 27px;
  height: 27px;
}

.primary-action-card strong,
.primary-action-card small {
  display: block;
}

.primary-action-card strong {
  font-size: 1.02rem;
  line-height: 1.28;
}

.primary-action-card small {
  margin-top: 5px;
  color: inherit;
  font-size: .82rem;
  font-weight: 600;
  opacity: .84;
}

.dashboard-summary {
  margin-top: 18px;
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 12px;
}

.summary-card {
  min-height: 82px;
  padding: 15px 18px;
  display: flex;
  align-items: center;
  gap: 13px;
  border: 1px solid var(--p4-border);
  border-radius: var(--p4-radius);
  background: var(--p4-surface);
  color: var(--p4-ink);
  text-decoration: none;
}

.summary-card:hover {
  border-color: var(--p4-primary);
}

.summary-card > .ui-icon {
  width: 25px;
  height: 25px;
  color: var(--p4-primary);
}

.summary-card strong,
.summary-card small {
  display: block;
}

.summary-card strong {
  font-size: 1.35rem;
  line-height: 1.1;
}

.summary-card small {
  margin-top: 3px;
  color: var(--p4-muted);
  font-size: .8rem;
  font-weight: 650;
}

.dashboard-focus-grid {
  margin-top: 28px;
  display: grid;
  grid-template-columns: minmax(0, 1.35fr) minmax(320px, .65fr);
  gap: 20px;
}

.dashboard-focus-card {
  padding: clamp(22px, 4vw, 30px);
  border: 1px solid var(--p4-border);
  border-radius: var(--p4-radius-lg);
  background: var(--p4-surface);
  box-shadow: var(--p4-shadow-sm);
}

.focus-card-header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 20px;
}

.focus-card-header h2 {
  margin: 3px 0 0;
}

.progress-value {
  color: var(--p4-primary);
  font-size: 1.65rem;
}

.accessible-progress {
  height: 13px;
  margin: 20px 0 22px;
  overflow: hidden;
  border-radius: 999px;
  background: #ebe7e1;
}

.accessible-progress span {
  height: 100%;
  display: block;
  border-radius: inherit;
  background: var(--p4-success);
}

.profile-checklist {
  margin: 0;
  padding: 0;
  display: grid;
  gap: 10px;
  list-style: none;
}

.profile-checklist li {
  padding: 13px 0;
  display: grid;
  grid-template-columns: 28px minmax(0, 1fr) auto;
  align-items: center;
  gap: 12px;
  border-bottom: 1px solid var(--p4-border);
}

.profile-checklist li:last-child {
  border-bottom: 0;
}

.check-state {
  width: 26px;
  height: 26px;
  display: grid;
  place-items: center;
  border: 2px solid var(--p4-border-strong);
  border-radius: 50%;
  color: #fff;
}

.profile-checklist .is-complete .check-state {
  border-color: var(--p4-success);
  background: var(--p4-success);
}

.check-state .ui-icon {
  width: 16px;
  height: 16px;
}

.profile-checklist strong,
.profile-checklist small {
  display: block;
}

.profile-checklist small {
  margin-top: 2px;
  color: var(--p4-muted);
  font-size: .82rem;
}

.profile-checklist a {
  color: var(--p4-primary);
  font-size: .83rem;
  font-weight: 800;
  white-space: nowrap;
}

.positive-note {
  margin: 18px 0 0;
  padding: 12px 14px;
  border-radius: 9px;
  background: var(--p4-success-soft);
  color: #124c32;
  font-weight: 700;
}

.trust-card {
  border-color: #d3dfd7;
  background: linear-gradient(160deg, #fff 0%, #f1f7f3 100%);
}

.trust-card-icon,
.page-heading-icon,
.trust-hero-icon {
  display: grid;
  place-items: center;
  color: var(--p4-success);
}

.trust-card-icon {
  width: 58px;
  height: 58px;
  margin-bottom: 16px;
  border-radius: 15px;
  background: var(--p4-success-soft);
}

.trust-card-icon .ui-icon {
  width: 32px;
  height: 32px;
}

.trust-card h2 {
  margin: 4px 0 10px;
}

.trust-card p,
.trust-card li {
  color: var(--p4-muted);
}

.trust-card ul {
  padding-left: 22px;
}

.trust-card .button {
  margin-top: 8px;
}

.tool-groups {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 18px;
}

.tool-group-card {
  padding: 22px;
  border: 1px solid var(--p4-border);
  border-radius: var(--p4-radius-lg);
  background: var(--p4-surface);
  box-shadow: var(--p4-shadow-sm);
}

.tool-group-title {
  display: flex;
  align-items: flex-start;
  gap: 13px;
}

.tool-group-title > .ui-icon {
  width: 28px;
  height: 28px;
  color: var(--p4-primary);
}

.tool-group-title h3,
.tool-group-title p,
.tool-group-title strong,
.tool-group-title small {
  margin: 0;
  display: block;
}

.tool-group-title h3,
.tool-group-title strong {
  color: var(--p4-ink);
  font-size: 1.15rem;
}

.tool-group-title p,
.tool-group-title small {
  margin-top: 4px;
  color: var(--p4-muted);
  font-size: .87rem;
}

.tool-link-list {
  margin-top: 16px;
  border-top: 1px solid var(--p4-border);
}

.tool-link-list a {
  min-height: 58px;
  padding: 10px 4px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  border-bottom: 1px solid var(--p4-border);
  color: var(--p4-ink);
  font-weight: 750;
  text-decoration: none;
}

.tool-link-list a:last-child {
  border-bottom: 0;
}

.tool-link-list a:hover span {
  color: var(--p4-primary);
  text-decoration: underline;
  text-underline-offset: 3px;
}

.tool-link-list small {
  color: var(--p4-muted);
  font-size: .8rem;
  font-weight: 600;
  text-align: right;
}

.premium-tool-group {
  grid-column: 1 / -1;
  padding: 0;
  overflow: hidden;
}

.premium-tool-group > summary {
  min-height: 82px;
  padding: 20px 22px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  list-style: none;
  cursor: pointer;
}

.premium-tool-group > summary::-webkit-details-marker {
  display: none;
}

.premium-tool-group > .tool-link-list {
  margin: 0 22px 18px;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  column-gap: 28px;
}

/* Pages compte et confiance */
.page-heading,
.trust-hero {
  padding: clamp(26px, 5vw, 44px);
  display: flex;
  align-items: center;
  gap: 24px;
  border: 1px solid var(--p4-border);
  border-radius: var(--p4-radius-lg);
  background: var(--p4-surface);
  box-shadow: var(--p4-shadow-sm);
}

.page-heading-icon,
.trust-hero-icon {
  width: 82px;
  height: 82px;
  flex: 0 0 auto;
  border-radius: 18px;
  background: var(--p4-primary-soft);
  color: var(--p4-primary);
}

.page-heading-icon .ui-icon,
.trust-hero-icon .ui-icon {
  width: 44px;
  height: 44px;
}

.page-heading h1,
.trust-hero h1 {
  margin: 4px 0 8px;
}

.page-heading p,
.trust-hero p {
  max-width: 820px;
  margin: 0;
  color: var(--p4-muted);
}

.account-overview {
  margin-top: 20px;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 14px;
}

.account-overview article {
  padding: 18px 20px;
  border: 1px solid var(--p4-border);
  border-radius: var(--p4-radius);
  background: var(--p4-surface);
}

.account-overview span,
.account-overview strong,
.account-overview small {
  display: block;
}

.account-overview span {
  color: var(--p4-muted);
  font-size: .82rem;
  font-weight: 700;
}

.account-overview strong {
  margin-top: 4px;
  overflow-wrap: anywhere;
  font-size: 1.05rem;
}

.account-overview small {
  margin-top: 3px;
  color: var(--p4-muted);
}

.account-sections {
  margin-top: 24px;
  display: grid;
  gap: 14px;
}

.account-section-card {
  padding: 24px;
  display: grid;
  grid-template-columns: 56px minmax(0, 1fr);
  gap: 18px;
  border: 1px solid var(--p4-border);
  border-radius: var(--p4-radius-lg);
  background: var(--p4-surface);
  box-shadow: var(--p4-shadow-sm);
}

.account-section-icon {
  width: 54px;
  height: 54px;
  display: grid;
  place-items: center;
  border-radius: 13px;
  background: var(--p4-primary-soft);
  color: var(--p4-primary);
}

.account-section-icon .ui-icon {
  width: 29px;
  height: 29px;
}

.account-section-card h2 {
  margin: 0 0 6px;
  font-size: 1.35rem;
}

.account-section-card p {
  max-width: 760px;
  margin: 0 0 15px;
  color: var(--p4-muted);
}

.account-actions,
.trust-actions {
  display: flex;
  align-items: center;
  gap: 10px;
  flex-wrap: wrap;
}

.account-danger-zone {
  margin-top: 28px;
  padding: 24px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 22px;
  border: 1px solid #e1aeb2;
  border-radius: var(--p4-radius-lg);
  background: var(--p4-danger-soft);
}

.account-danger-zone h2 {
  margin: 3px 0 5px;
  color: #70191f;
}

.account-danger-zone p {
  max-width: 760px;
  margin: 0;
  color: #6c3337;
}

.trust-hero {
  justify-content: space-between;
  background: linear-gradient(135deg, #fff 0%, #eef7f1 100%);
}

.trust-hero-icon {
  background: var(--p4-success-soft);
  color: var(--p4-success);
}

.trust-page-nav {
  margin: 18px 0 0;
  padding: 10px;
  display: flex;
  gap: 6px;
  flex-wrap: wrap;
  border: 1px solid var(--p4-border);
  border-radius: var(--p4-radius);
  background: var(--p4-surface);
}

.trust-page-nav a {
  min-height: 44px;
  padding: 9px 13px;
  display: inline-flex;
  align-items: center;
  border-radius: 8px;
  color: var(--p4-primary-dark);
  font-weight: 750;
  text-decoration: none;
}

.trust-page-nav a:hover {
  background: var(--p4-primary-soft);
}

.trust-content-grid {
  margin-top: 22px;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 18px;
}

.trust-content-card {
  padding: 26px;
  display: grid;
  grid-template-columns: 48px minmax(0, 1fr);
  gap: 16px;
  scroll-margin-top: calc(var(--p4-header-height) + 24px);
  border: 1px solid var(--p4-border);
  border-radius: var(--p4-radius-lg);
  background: var(--p4-surface);
  box-shadow: var(--p4-shadow-sm);
}

.trust-content-card h2 {
  margin: 0 0 10px;
}

.trust-content-card ul,
.trust-content-card ol {
  margin: 0;
  padding-left: 21px;
}

.trust-content-card li + li {
  margin-top: 8px;
}

.trust-number {
  width: 44px;
  height: 44px;
  display: grid;
  place-items: center;
  border-radius: 12px;
  background: var(--p4-primary-soft);
  color: var(--p4-primary);
  font-weight: 900;
}

.trust-number .ui-icon {
  width: 25px;
  height: 25px;
}

.warning-card {
  border-color: #edc99d;
  background: #fffaf2;
}

.warning-card .trust-number {
  background: var(--p4-warning-soft);
  color: var(--p4-warning);
}

.action-card {
  grid-column: 1 / -1;
}

.trust-callout {
  margin: 18px 0 0;
  padding: 14px;
  border-left: 4px solid var(--p4-warning);
  background: var(--p4-warning-soft);
}

.trust-actions {
  margin-top: 18px;
}

.trust-emergency-note {
  margin-top: 20px;
  padding: 20px 24px;
  display: flex;
  align-items: flex-start;
  gap: 15px;
  border: 1px solid #e1aeb2;
  border-radius: var(--p4-radius);
  background: var(--p4-danger-soft);
}

.trust-emergency-note > .ui-icon {
  width: 30px;
  height: 30px;
  color: var(--p4-danger);
}

.trust-emergency-note h2 {
  margin: 0 0 4px;
  color: #70191f;
  font-size: 1.2rem;
}

.trust-emergency-note p {
  margin: 0;
  color: #6c3337;
}

/* Footer */
.site-footer-v4.site-footer-v3 {
  margin-top: 72px;
  border-top: 1px solid var(--p4-border);
  background: #ece8e2;
}

.site-footer-v4-inner.site-footer-inner {
  width: min(1180px, calc(100% - 48px));
  max-width: none;
  margin: 0 auto;
  padding: 42px 0;
  display: grid;
  grid-template-columns: 1.25fr .8fr 1fr;
  align-items: start;
  gap: 38px;
}

.site-footer-brand p {
  max-width: 430px;
  margin: 12px 0 18px;
  color: var(--p4-muted);
  font-weight: 600;
}

.site-footer-logo {
  color: var(--p4-ink);
  font-size: 1.6rem;
  font-weight: 850;
  text-decoration: none;
}

.site-footer-logo span {
  color: var(--p4-primary);
}

.footer-trust-link {
  max-width: 420px;
  padding: 13px 15px;
  display: flex;
  align-items: center;
  gap: 12px;
  border: 1px solid #bdd1c3;
  border-radius: 11px;
  background: #f7fbf8;
  color: var(--p4-ink);
  text-decoration: none;
}

.footer-trust-link > .ui-icon {
  width: 27px;
  height: 27px;
  color: var(--p4-success);
}

.footer-trust-link strong,
.footer-trust-link small {
  display: block;
}

.footer-trust-link small {
  margin-top: 2px;
  color: var(--p4-muted);
  font-size: .78rem;
}

.site-footer-column {
  display: grid;
  gap: 8px;
}

.site-footer-column h2,
.comfort-settings h2 {
  margin: 0 0 7px;
  color: var(--p4-ink);
  font-size: 1rem;
}

.site-footer-column a {
  min-height: 34px;
  color: var(--p4-ink);
  font-weight: 650;
  text-decoration: none;
}

.site-footer-column a:hover {
  color: var(--p4-primary);
  text-decoration: underline;
}

.comfort-settings p {
  margin: 0 0 12px;
  color: var(--p4-muted);
  font-size: .82rem;
}

.comfort-controls {
  display: flex;
  gap: 7px;
  flex-wrap: wrap;
}

.comfort-controls button {
  min-height: 42px;
  padding: 8px 11px;
  border: 1px solid var(--p4-border-strong);
  border-radius: 8px;
  background: var(--p4-surface);
  color: var(--p4-ink);
  font-size: .8rem;
  font-weight: 750;
}

.comfort-controls button[aria-pressed="true"] {
  border-color: var(--p4-primary);
  background: var(--p4-primary);
  color: #fff;
}

.site-footer-bottom {
  min-height: 58px;
  padding: 15px max(24px, calc((100% - 1180px) / 2));
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  border-top: 1px solid var(--p4-border);
  color: var(--p4-muted);
  font-size: .82rem;
  font-weight: 650;
}

/* Administration : le nouveau header reste compact */
body.admin-page .site-header-v4 {
  border-bottom-color: #4a4d57;
  background: rgba(32, 35, 43, .98);
}

body.admin-page .site-logo-v4,
body.admin-page .site-logo-v4 span,
body.admin-page .site-logo-v4 small,
body.admin-page .site-nav-v4 .nav-link,
body.admin-page .site-nav-v4 .nav-dropdown > summary {
  color: #fff;
}

body.admin-page .site-nav-v4 .nav-link:hover,
body.admin-page .site-nav-v4 .nav-link.is-active,
body.admin-page .site-nav-v4 .nav-link[aria-current="page"],
body.admin-page .site-nav-v4 .nav-dropdown > summary:hover {
  background: rgba(255,255,255,.12);
}

/* Contraste renforcé */
html[data-high-contrast="true"] .site-header-v4,
html[data-high-contrast="true"] .dashboard-welcome,
html[data-high-contrast="true"] .trust-hero {
  background: var(--p4-surface);
}

html[data-high-contrast="true"] a {
  text-decoration-thickness: .12em;
}

html[data-high-contrast="true"] .primary-action-card,
html[data-high-contrast="true"] .button,
html[data-high-contrast="true"] button[type="submit"] {
  border-width: 2px;
}

/* Responsive */
@media (max-width: 1120px) {
  .site-header-v4-inner.site-header-inner {
    grid-template-columns: auto auto 1fr auto;
  }

  .mobile-nav-toggle {
    min-height: 46px;
    padding: 8px 12px;
    display: inline-flex;
    align-items: center;
    gap: 8px;
    justify-self: start;
    border: 1px solid var(--p4-border);
    border-radius: 10px;
    background: var(--p4-surface);
    color: var(--p4-ink);
    font: inherit;
    font-weight: 800;
  }

  .site-nav-v4.site-nav-v3 {
    position: fixed;
    z-index: 1050;
    top: var(--p4-header-height);
    left: 0;
    right: 0;
    max-height: calc(100vh - var(--p4-header-height));
    padding: 14px 20px 24px;
    display: none;
    overflow-y: auto;
    align-items: stretch;
    flex-direction: column;
    border-bottom: 1px solid var(--p4-border);
    background: var(--p4-surface);
    box-shadow: var(--p4-shadow);
  }

  .site-nav-v4.is-open {
    display: flex;
  }

  .site-nav-v4 .nav-link,
  .site-nav-v4 .nav-dropdown > summary {
    width: 100%;
    justify-content: flex-start;
    min-height: 52px;
    padding: 12px 14px;
  }

  .site-nav-v4 .nav-dropdown {
    width: 100%;
  }

  .nav-dropdown-panel {
    position: static;
    min-width: 0;
    margin: 4px 0 8px 14px;
    box-shadow: none;
  }

  body.admin-page .mobile-nav-toggle {
    border-color: rgba(255,255,255,.35);
    background: transparent;
    color: #fff;
  }

  body.admin-page .site-nav-v4 {
    background: #20232b;
  }

  .dashboard-primary-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 900px) {
  .container,
  .site-footer-v4-inner.site-footer-inner {
    width: min(100% - 32px, 1180px);
  }

  .dashboard-welcome {
    align-items: flex-start;
    flex-direction: column;
  }

  .dashboard-today {
    width: 100%;
  }

  .dashboard-summary {
    grid-template-columns: repeat(2, 1fr);
  }

  .dashboard-focus-grid,
  .trust-content-grid {
    grid-template-columns: 1fr;
  }

  .action-card {
    grid-column: auto;
  }

  .site-footer-v4-inner.site-footer-inner {
    grid-template-columns: repeat(2, 1fr);
  }

  .site-footer-brand {
    grid-column: 1 / -1;
  }
}

@media (max-width: 680px) {
  :root {
    --p4-header-height: 68px;
  }

  .site-header-v4-inner.site-header-inner {
    width: calc(100% - 24px);
    min-height: var(--p4-header-height);
    grid-template-columns: auto 1fr auto;
    gap: 10px;
  }

  .site-logo-v4.site-logo-v3 {
    min-width: auto;
    font-size: 1.35rem;
  }

  .site-logo-v4 small,
  .account-menu-label,
  .account-menu > summary > .chevron {
    display: none;
  }

  .mobile-nav-toggle {
    justify-self: end;
    grid-column: 2;
  }

  .account-menu {
    grid-column: 3;
  }

  .account-menu > summary {
    min-width: 50px;
    width: 50px;
    height: 50px;
    padding: 4px;
    justify-content: center;
  }

  .account-menu img,
  .account-avatar-placeholder {
    width: 40px;
    height: 40px;
  }

  .account-menu-panel {
    position: fixed;
    top: calc(var(--p4-header-height) + 8px);
    right: 12px;
    left: 12px;
  }

  .container {
    width: min(100% - 24px, 1180px);
    padding-top: 24px;
  }

  .dashboard-welcome-profile {
    align-items: flex-start;
  }

  .dashboard-welcome-photo {
    width: 82px;
    height: 82px;
  }

  .dashboard-primary-grid,
  .dashboard-summary,
  .tool-groups,
  .account-overview,
  .site-footer-v4-inner.site-footer-inner {
    grid-template-columns: 1fr;
  }

  .primary-action-card {
    min-height: 104px;
  }

  .profile-checklist li {
    grid-template-columns: 28px minmax(0, 1fr);
  }

  .profile-checklist li > a {
    grid-column: 2;
    justify-self: start;
    white-space: normal;
  }

  .premium-tool-group {
    grid-column: auto;
  }

  .premium-tool-group > .tool-link-list {
    grid-template-columns: 1fr;
  }

  .page-heading,
  .trust-hero {
    align-items: flex-start;
    flex-direction: column-reverse;
  }

  .page-heading-icon,
  .trust-hero-icon {
    width: 60px;
    height: 60px;
  }

  .page-heading-icon .ui-icon,
  .trust-hero-icon .ui-icon {
    width: 32px;
    height: 32px;
  }

  .account-section-card {
    grid-template-columns: 1fr;
  }

  .account-danger-zone {
    align-items: flex-start;
    flex-direction: column;
  }

  .trust-content-card {
    grid-template-columns: 1fr;
  }

  .site-footer-brand {
    grid-column: auto;
  }

  .site-footer-bottom {
    align-items: flex-start;
    flex-direction: column;
  }

  .birthdate-inline {
    grid-template-columns: 1fr 1fr;
  }

  .birthdate-inline input[name="birth_year"] {
    grid-column: 1 / -1;
  }
}

@media (max-width: 440px) {
  .dashboard-welcome-profile {
    flex-direction: column;
  }

  .dashboard-eyebrow {
    align-items: flex-start;
    flex-direction: column;
  }

  .primary-action-card {
    padding: 17px;
  }

  .action-icon {
    width: 44px;
    height: 44px;
  }

  .account-actions,
  .trust-actions {
    align-items: stretch;
    flex-direction: column;
  }

  .account-actions .button,
  .trust-actions .button,
  .account-danger-zone .button {
    width: 100%;
  }
}

@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    scroll-behavior: auto !important;
    transition-duration: .01ms !important;
    animation-duration: .01ms !important;
    animation-iteration-count: 1 !important;
  }
}

/* Accueil public P4 */
.visually-hidden {
  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;
}

.p4-home-hero .signature-hero-content {
  max-width: 680px;
}

.p4-home-hero .signature-actions {
  align-items: stretch;
  flex-wrap: wrap;
}

.p4-home-hero .signature-btn {
  min-width: 230px;
}

.p4-home-hero .signature-points > div {
  display: inline-flex;
  align-items: center;
  gap: 8px;
}

.p4-home-hero .signature-points .ui-icon {
  width: 21px;
  height: 21px;
}

.p4-home-features {
  position: relative;
}

.p4-home-features article {
  padding: 28px;
  border: 1px solid var(--p4-border);
  border-radius: var(--p4-radius-lg);
  background: var(--p4-surface);
  box-shadow: var(--p4-shadow-sm);
}

.p4-home-features article > span.home-feature-icon {
  width: 54px;
  height: 54px;
  margin-bottom: 16px;
  display: grid;
  place-items: center;
  border-radius: 13px;
  background: var(--p4-primary-soft);
  color: var(--p4-primary);
}

.p4-home-features .home-feature-icon .ui-icon {
  width: 29px;
  height: 29px;
}

.p4-home-features h3 {
  margin: 0 0 8px;
  font-size: 1.3rem;
}

.p4-home-features p {
  color: var(--p4-muted);
}

.home-trust-panel {
  margin-top: 24px;
  padding: 28px 30px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  border: 1px solid #bdd1c3;
  border-radius: var(--p4-radius-lg);
  background: #f7fbf8;
}

.home-trust-panel h2 {
  margin: 4px 0 7px;
}

.home-trust-panel p {
  max-width: 760px;
  margin: 0;
  color: var(--p4-muted);
}

.report-form-card {
  max-width: 760px;
}

.dating-photo-placeholder-v4 .ui-icon {
  width: 54px;
  height: 54px;
}

.dating-photo-count {
  display: inline-flex;
  align-items: center;
  gap: 5px;
}

.dating-photo-count .ui-icon {
  width: 16px;
  height: 16px;
}

.dating-like-float .ui-icon {
  width: 25px;
  height: 25px;
}

.profile-v3-side-action .ui-icon {
  width: 21px;
  height: 21px;
}

.photos-v3-main-badge {
  display: inline-flex;
  align-items: center;
  gap: 6px;
}

@media (max-width: 680px) {
  .home-trust-panel {
    align-items: flex-start;
    flex-direction: column;
  }

  .home-trust-panel .button {
    width: 100%;
  }
}

/* DuoLocal 1.14.5 — barre de navigation compacte et stable */
.site-header-v4-inner.site-header-inner {
  width: min(1180px, calc(100% - 40px));
  grid-template-columns: auto minmax(0, 1fr) auto;
  gap: 14px;
}

.site-nav-v4.site-nav-v3 {
  gap: 3px;
}

.site-nav-v4 .nav-link,
.site-nav-v4 .nav-dropdown > summary {
  min-height: 42px;
  padding: 8px 10px;
  gap: 6px;
  font-size: .89rem;
}

.account-menu {
  justify-self: end;
  margin-left: auto;
}

.account-menu > summary {
  min-width: 150px;
  min-height: 48px;
  padding: 4px 7px 4px 5px;
}

.account-menu img,
.account-avatar-placeholder {
  width: 38px;
  height: 38px;
}

.account-menu-label {
  min-width: 72px;
}

.account-menu-label strong {
  max-width: 104px;
}

.nav-dropdown-panel .nav-alert-link {
  position: relative;
}

.nav-dropdown-badge {
  display: inline-grid;
  place-items: center;
  min-width: 22px;
  height: 22px;
  margin-left: auto;
  padding: 0 6px;
  border-radius: 999px;
  background: var(--p4-danger);
  color: #fff;
  font-size: .7rem;
  font-weight: 900;
}

.nav-dropdown-badge.is-empty {
  display: none;
}

@media (max-width: 1120px) {
  .site-header-v4-inner.site-header-inner {
    grid-template-columns: auto auto minmax(0, 1fr) auto;
  }

  .mobile-nav-toggle {
    min-height: 38px;
    padding: 5px 9px;
    gap: 6px;
    border-radius: 9px;
    font-size: .84rem;
  }

  .mobile-nav-toggle .ui-icon {
    width: 18px;
    height: 18px;
  }

  .account-menu {
    grid-column: 4;
  }
}

@media (max-width: 680px) {
  .site-header-v4-inner.site-header-inner {
    width: calc(100% - 20px);
    grid-template-columns: auto 1fr auto;
    gap: 8px;
  }

  .mobile-nav-toggle {
    grid-column: 2;
    justify-self: end;
    min-height: 36px;
    padding: 4px 8px;
  }

  .account-menu {
    grid-column: 3;
  }
}

/* DuoLocal 1.14.8 — navigation resserrée et menus entièrement accessibles */
.site-header-v4-inner.site-header-inner {
  width: min(1100px, calc(100% - 40px));
}

/* Le menu Administration contient de nombreux écrans : deux colonnes sur PC,
   avec une hauteur limitée à la fenêtre pour qu'aucun onglet ne disparaisse. */
body.admin-page .admin-nav-dropdown .nav-dropdown-panel,
body:not(.admin-page) .member-nav-dropdown .nav-dropdown-panel {
  right: 0;
  left: auto;
  width: min(560px, calc(100vw - 32px));
  max-height: calc(100vh - var(--p4-header-height) - 24px);
  max-height: calc(100dvh - var(--p4-header-height) - 24px);
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 2px 8px;
  overflow-y: auto;
  overscroll-behavior: contain;
  scrollbar-gutter: stable;
}

body.admin-page .admin-nav-dropdown .nav-dropdown-panel a,
body:not(.admin-page) .member-nav-dropdown .nav-dropdown-panel a {
  min-width: 0;
}

@media (max-width: 1120px) {
  :root {
    --p4-header-height: 92px;
  }

  .site-header-v4-inner.site-header-inner {
    width: min(1100px, calc(100% - 28px));
    min-height: var(--p4-header-height);
    grid-template-columns: auto minmax(0, 1fr) auto;
    grid-template-rows: auto auto;
    column-gap: 12px;
    row-gap: 4px;
    padding-block: 6px;
  }

  .site-logo-v4.site-logo-v3 {
    grid-column: 1;
    grid-row: 1 / span 2;
    align-self: center;
  }

  .mobile-nav-toggle {
    grid-column: 3;
    grid-row: 1;
    min-height: 30px;
    padding: 2px 7px;
    gap: 4px;
    justify-self: end;
    border-radius: 8px;
    font-size: .74rem;
    line-height: 1;
  }

  .mobile-nav-toggle .ui-icon {
    width: 15px;
    height: 15px;
  }

  .account-menu {
    grid-column: 3;
    grid-row: 2;
    justify-self: end;
    margin-left: 0;
  }

  .account-menu > summary {
    min-width: 138px;
    min-height: 40px;
    padding: 3px 6px 3px 4px;
    border-radius: 10px;
  }

  .account-menu img,
  .account-avatar-placeholder {
    width: 32px;
    height: 32px;
    border-radius: 8px;
  }

  .account-menu-label strong {
    max-width: 92px;
    font-size: .8rem;
  }

  .account-menu-label small {
    margin-top: 1px;
    font-size: .65rem;
  }

  body.admin-page .admin-nav-dropdown .nav-dropdown-panel,
  body:not(.admin-page) .member-nav-dropdown .nav-dropdown-panel {
    position: static;
    width: 100%;
    max-height: none;
    margin: 4px 0 8px 14px;
    display: grid;
    grid-template-columns: 1fr;
    gap: 0;
    overflow: visible;
    box-shadow: none;
  }
}

@media (max-width: 680px) {
  :root {
    --p4-header-height: 84px;
  }

  .site-header-v4-inner.site-header-inner {
    width: calc(100% - 18px);
    grid-template-columns: auto minmax(0, 1fr) auto;
    grid-template-rows: auto auto;
    gap: 3px 8px;
  }

  .mobile-nav-toggle {
    grid-column: 3;
    grid-row: 1;
    min-height: 28px;
    padding: 2px 6px;
    font-size: .7rem;
  }

  .mobile-nav-toggle .ui-icon {
    width: 14px;
    height: 14px;
  }

  .account-menu {
    grid-column: 3;
    grid-row: 2;
  }

  .account-menu > summary {
    min-width: 42px;
    width: 42px;
    height: 40px;
    min-height: 40px;
    padding: 3px;
  }

  .account-menu img,
  .account-avatar-placeholder {
    width: 32px;
    height: 32px;
  }
}

/* source: assets/css/lot4-industrialization.css */
/* DuoLocal Lot 4 — MFA, portabilité et restauration */
.lot4-mfa-hero{margin-bottom:1.25rem}.lot4-mfa-setup dl{display:grid;grid-template-columns:minmax(8rem,12rem) 1fr;gap:.65rem 1rem}.lot4-mfa-setup dt{font-weight:700}.lot4-mfa-setup dd{margin:0;min-width:0}.mfa-secret,.mfa-uri{display:inline-block;max-width:100%;overflow-wrap:anywhere;user-select:all}.lot4-inline-form{max-width:34rem}.lot4-mfa-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1.25rem}.lot4-mfa-actions article{padding:1rem;border:1px solid rgba(111,36,56,.16);border-radius:16px;background:#fff}.lot4-recovery-codes ul{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.6rem;padding:0;list-style:none}.lot4-recovery-codes li{padding:.7rem 1rem;border-radius:10px;background:#f7f2f4;text-align:center;letter-spacing:.08em}.privacy-export-note{padding:.8rem 1rem;border-left:4px solid #6f2438;background:#faf5f7;border-radius:8px}.privacy-export-page .auth-v3-card{max-width:720px}.p5-table button[disabled]{cursor:not-allowed;opacity:.55}@media(max-width:760px){.lot4-mfa-actions{grid-template-columns:1fr}.lot4-recovery-codes ul{grid-template-columns:1fr}.lot4-mfa-setup dl{grid-template-columns:1fr;gap:.2rem}.lot4-mfa-setup dd{margin-bottom:.75rem}}

/* source: assets/css/lot5-custom.css */

/* DuoLocal 1.11.9 — lisibilité admin, SEO et carrousel d'accueil */
body.admin-page .admin-card p,
body.admin-page .admin-card small,
body.admin-page .p7-admin-grid p,
body.admin-page .p7-admin-grid small,
body.admin-page .p8-admin-list p,
body.admin-page .p8-admin-list small,
body.admin-page .p8-admin-actions label { color:#49373e; }
body.admin-page .admin-page-header h1,
body.admin-page .admin-page-header p,
body.admin-page .admin-page-header .admin-eyebrow { color:#f8fafc !important; }
body.admin-page .admin-card label,
body.admin-page .admin-form-stack label { color:#2f2227; }
body.admin-page .admin-card input,
body.admin-page .admin-card textarea,
body.admin-page .admin-card select { color:#24191d;background:#fff; }

.homepage-banner-zone{margin:18px auto 22px;max-width:920px;padding:0 12px}
.homepage-banner-carousel{position:relative;overflow:hidden;min-height:116px;border:1px solid rgba(111,36,56,.18);border-radius:18px;background:linear-gradient(135deg,#fff,#fbf6f8);box-shadow:0 12px 34px rgba(62,28,39,.10)}
.homepage-banner-slide{position:absolute;inset:0;display:grid;place-items:center;padding:13px;opacity:0;pointer-events:none;transform-origin:center;z-index:0}
.homepage-banner-slide.is-active{position:relative;opacity:1;pointer-events:auto;z-index:2}
.homepage-banner-slide.is-leaving{position:absolute;opacity:0;transition:opacity var(--banner-transition,650ms) ease;z-index:1}
.homepage-banner-slide a{display:block;max-width:728px;width:100%;border-radius:10px;overflow:hidden}
.homepage-banner-slide img{display:block;width:100%;height:auto;max-width:728px;aspect-ratio:728/90;object-fit:cover;border-radius:10px}
.homepage-banner-label{position:absolute;top:5px;left:18px;z-index:4;padding:3px 9px;border-radius:999px;background:rgba(34,20,25,.82);color:#fff;font-size:.72rem;font-weight:800;letter-spacing:.04em}
.homepage-banner-slide.is-entering.effect-slide-left{animation:homeSlideLeft var(--banner-transition,650ms) cubic-bezier(.2,.75,.25,1) both}
.homepage-banner-slide.is-entering.effect-slide-right{animation:homeSlideRight var(--banner-transition,650ms) cubic-bezier(.2,.75,.25,1) both}
.homepage-banner-slide.is-entering.effect-zoom-in{animation:homeZoomIn var(--banner-transition,650ms) ease both}
.homepage-banner-slide.is-entering.effect-zoom-out{animation:homeZoomOut var(--banner-transition,650ms) ease both}
.homepage-banner-slide.is-entering.effect-rotate-left{animation:homeRotateLeft var(--banner-transition,650ms) ease both}
.homepage-banner-slide.is-entering.effect-rotate-right{animation:homeRotateRight var(--banner-transition,650ms) ease both}
@keyframes homeSlideLeft{from{opacity:0;transform:translateX(-22%)}to{opacity:1;transform:translateX(0)}}
@keyframes homeSlideRight{from{opacity:0;transform:translateX(22%)}to{opacity:1;transform:translateX(0)}}
@keyframes homeZoomIn{from{opacity:0;transform:scale(.72)}to{opacity:1;transform:scale(1)}}
@keyframes homeZoomOut{from{opacity:0;transform:scale(1.32)}to{opacity:1;transform:scale(1)}}
@keyframes homeRotateLeft{from{opacity:0;transform:rotate(-7deg) scale(.88)}to{opacity:1;transform:rotate(0) scale(1)}}
@keyframes homeRotateRight{from{opacity:0;transform:rotate(7deg) scale(.88)}to{opacity:1;transform:rotate(0) scale(1)}}
@media(prefers-reduced-motion:reduce){.homepage-banner-slide.is-entering{animation:none!important}.homepage-banner-slide.is-leaving{transition:none!important}}
@media(max-width:600px){.homepage-banner-zone{margin:10px auto 16px;padding:0 4px}.homepage-banner-carousel{min-height:84px;border-radius:13px}.homepage-banner-slide{padding:9px}.homepage-banner-label{left:12px;font-size:.64rem}}

.homepage-banner-admin{margin-top:20px}.homepage-banner-admin-head{display:flex;justify-content:space-between;gap:20px;align-items:flex-start;margin-bottom:16px}.homepage-banner-admin-head h2{margin:.2rem 0}.homepage-banner-speed-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:15px}.homepage-banner-slot-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.homepage-banner-slot{display:grid;gap:11px;padding:16px;border:1px solid #d9cbd0;border-radius:16px;background:#fcf9fa}.homepage-banner-slot.has-image{border-color:#bd8d9d}.homepage-banner-slot-title{display:flex;align-items:center;justify-content:space-between;gap:12px}.homepage-banner-slot-title label,.homepage-banner-target,.homepage-banner-remove{display:flex!important;grid-template-columns:auto 1fr!important;align-items:center;gap:8px;font-weight:700}.homepage-banner-mini-preview{min-height:64px;display:grid;place-items:center;border:1px dashed #c9b7bd;border-radius:10px;overflow:hidden;background:#fff}.homepage-banner-mini-preview img{width:100%;height:auto;display:block}.homepage-banner-mini-preview span{color:#654f57}.homepage-banner-footer-actions,.seo-admin-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:12px}

.seo-admin-layout{display:grid;grid-template-columns:minmax(220px,300px) minmax(0,1fr);gap:18px}.seo-admin-pages{align-self:start;display:grid;gap:7px;max-height:75vh;overflow:auto}.seo-admin-pages a{display:grid;gap:2px;padding:10px 12px;border-radius:10px;color:#39272e;text-decoration:none;border:1px solid transparent}.seo-admin-pages a:hover,.seo-admin-pages a.is-active{background:#f5e8ed;border-color:#cda7b4}.seo-admin-pages small{font-weight:400}.seo-admin-editor-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.seo-admin-state{padding:6px 10px;border-radius:999px;background:#eee4e7;color:#5d4850;font-weight:800;font-size:.78rem}.seo-admin-state.is-custom{background:#e6f5eb;color:#236b3d}.seo-admin-reset{margin-top:12px}.seo-serp-preview{margin-top:22px;padding:18px;border:1px solid #d8ccd0;border-radius:14px;background:#fff}.seo-serp-preview>span{display:block;margin-bottom:8px;color:#6b5960;font-size:.8rem;font-weight:800;text-transform:uppercase;letter-spacing:.05em}.seo-serp-preview strong{display:block;color:#1a0dab;font-size:1.15rem}.seo-serp-preview small{display:block;color:#188038;margin:5px 0}.seo-serp-preview p{margin:0;color:#4d5156!important}
@media(max-width:900px){.homepage-banner-slot-grid,.homepage-banner-speed-grid,.seo-admin-layout{grid-template-columns:1fr}.seo-admin-pages{max-height:none}.homepage-banner-admin-head,.seo-admin-editor-head{display:grid}}


/* DuoLocal 1.11.11 — contraste SEO et accès Google Tag Manager */
body.admin-page .seo-admin-pages a { color:#2f2227 !important; }
body.admin-page .seo-admin-pages a small,
body.admin-page .seo-admin-editor .admin-form-stack small { color:#66545b !important; }
body.admin-page .seo-admin-editor-head .admin-eyebrow { color:#6f2438 !important; }
body.admin-page .seo-tracking-card { margin:18px 0;display:flex;align-items:center;justify-content:space-between;gap:24px;background:#fff;color:#2f2227; }
body.admin-page .seo-tracking-card p { color:#55434a !important;max-width:760px;margin-bottom:0; }
body.admin-page .seo-gtm-form { display:grid;gap:10px;min-width:min(100%,360px); }
body.admin-page .seo-gtm-form label { display:grid;gap:6px;color:#2f2227!important;font-weight:800; }
body.admin-page .seo-gtm-form input[type=text] { width:100%;min-height:46px;border:1px solid #c7b6bd;border-radius:12px;padding:10px 12px;color:#24191d;background:#fff;font-weight:800; }
body.admin-page .seo-gtm-toggle { display:flex!important;grid-template-columns:auto 1fr!important;align-items:center;gap:9px; }
body.admin-page .seo-gtm-toggle input { width:19px;height:19px; }
body.admin-page .seo-gtm-actions { display:flex;flex-wrap:wrap;gap:9px;align-items:center; }
body.admin-page .seo-gtm-form small { color:#5d4c53!important; }
@media(max-width:760px){body.admin-page .seo-tracking-card{display:grid}.seo-gtm-form{min-width:0!important}}

/* source: assets/css/radio-world.css */
/*
 * DuoLocal — Radio du Monde
 * Feuille complète : page, carte, lecteur, stations et mini-lecteur persistant.
 */

.page-radio .site-main {
  width: min(1180px, calc(100% - 32px));
  max-width: 1180px;
  margin-inline: auto;
}

.radio-world-hero {
  position: relative;
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(250px, 360px);
  gap: 24px;
  align-items: center;
  margin: 24px 0 18px;
  padding: clamp(24px, 4vw, 46px);
  overflow: hidden;
  border: 1px solid rgba(255, 255, 255, .15);
  border-radius: 30px;
  color: #fff;
  background:
    radial-gradient(circle at 88% 16%, rgba(82, 215, 255, .30), transparent 26%),
    radial-gradient(circle at 14% 86%, rgba(255, 79, 154, .22), transparent 30%),
    linear-gradient(135deg, #1b1938 0%, #3b2459 53%, #76284f 100%);
  box-shadow: 0 24px 58px rgba(31, 18, 46, .25);
}

.radio-world-hero::after {
  content: "";
  position: absolute;
  right: -90px;
  bottom: -120px;
  width: 330px;
  height: 330px;
  border: 1px solid rgba(255, 255, 255, .12);
  border-radius: 50%;
  box-shadow:
    0 0 0 38px rgba(255, 255, 255, .025),
    0 0 0 78px rgba(255, 255, 255, .02);
  pointer-events: none;
}

.radio-world-hero > * {
  position: relative;
  z-index: 1;
}

.radio-world-hero .eyebrow,
.radio-world-map-head .eyebrow,
.radio-world-results-head .eyebrow {
  margin: 0 0 7px;
  color: #ffcae0;
  font-size: .75rem;
  font-weight: 900;
  letter-spacing: .12em;
  text-transform: uppercase;
}

.radio-world-hero h1 {
  max-width: 780px;
  margin: 0 0 12px;
  color: #fff;
  font-size: clamp(2rem, 5vw, 4rem);
  line-height: 1.02;
}

.radio-world-hero > div:first-child > p:last-child {
  max-width: 720px;
  margin: 0;
  color: rgba(255, 255, 255, .84);
  font-size: clamp(.98rem, 2vw, 1.12rem);
  line-height: 1.65;
}

.radio-world-plan {
  display: grid;
  gap: 8px;
  padding: 20px 22px;
  border: 1px solid rgba(255, 255, 255, .22);
  border-radius: 22px;
  background: rgba(16, 13, 36, .38);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, .08);
  backdrop-filter: blur(14px);
}

.radio-world-plan strong {
  color: #fff;
  font-size: 1.05rem;
}

.radio-world-plan span {
  color: rgba(255, 255, 255, .76);
  font-size: .88rem;
  line-height: 1.55;
}

.radio-world-app {
  display: grid;
  gap: 18px;
  margin-bottom: 42px;
}

.radio-world-toolbar,
.radio-world-map-card,
.radio-player-card,
.radio-world-results {
  border: 1px solid rgba(111, 36, 56, .11);
  border-radius: 24px;
  background: #fff;
  box-shadow: 0 14px 38px rgba(31, 18, 24, .08);
}

.radio-world-toolbar {
  display: grid;
  gap: 15px;
  padding: 18px;
}

.radio-world-search-form {
  display: grid;
  grid-template-columns: minmax(160px, .8fr) minmax(220px, 1.5fr) minmax(150px, .8fr) auto;
  gap: 12px;
  align-items: end;
}

.radio-world-search-form label {
  display: grid;
  gap: 7px;
  min-width: 0;
  color: #4b3740;
  font-size: .78rem;
  font-weight: 850;
}

.radio-world-search-form select,
.radio-world-search-form input {
  width: 100%;
  min-width: 0;
  min-height: 46px;
  padding: 10px 12px;
  border: 1px solid #d9c9cf;
  border-radius: 13px;
  outline: none;
  color: #30242a;
  background: #fff;
  font: inherit;
  font-weight: 650;
  transition: border-color .18s ease, box-shadow .18s ease;
}

.radio-world-search-form select:focus,
.radio-world-search-form input:focus {
  border-color: #8e3d68;
  box-shadow: 0 0 0 4px rgba(142, 61, 104, .12);
}

.radio-world-search-form > button,
.radio-history-clear {
  min-height: 46px;
  padding: 10px 18px;
  border: 0;
  border-radius: 13px;
  color: #fff;
  background: linear-gradient(135deg, #6e2c75, #b62a69 60%, #e78b4d);
  box-shadow: 0 10px 24px rgba(130, 38, 91, .20);
  font: inherit;
  font-weight: 900;
  cursor: pointer;
}

.radio-world-search-form > button:hover,
.radio-world-search-form > button:focus-visible,
.radio-history-clear:hover,
.radio-history-clear:focus-visible {
  transform: translateY(-1px);
  box-shadow: 0 14px 30px rgba(130, 38, 91, .27);
}

.radio-world-tabs {
  display: flex;
  gap: 8px;
  overflow-x: auto;
  padding-top: 2px;
  scrollbar-width: thin;
}

.radio-world-tabs button {
  flex: 0 0 auto;
  min-height: 40px;
  padding: 8px 14px;
  border: 1px solid #dccbd1;
  border-radius: 999px;
  color: #624751;
  background: #fff;
  font: inherit;
  font-size: .88rem;
  font-weight: 850;
  cursor: pointer;
}

.radio-world-tabs button:hover,
.radio-world-tabs button:focus-visible,
.radio-world-tabs button.is-active {
  border-color: #7a335d;
  color: #fff;
  background: #6e2c75;
}

.radio-world-tabs button span {
  display: inline-grid;
  min-width: 21px;
  min-height: 21px;
  margin-left: 4px;
  place-items: center;
  border-radius: 999px;
  color: #6e2c75;
  background: #f5e8f0;
  font-size: .72rem;
}

.radio-world-tabs button.is-active span {
  color: #6e2c75;
  background: #fff;
}

.radio-world-status {
  min-height: 44px;
  display: flex;
  align-items: center;
  padding: 10px 15px;
  border: 1px solid #e0d2d7;
  border-radius: 14px;
  color: #5f4c54;
  background: #fbf8f9;
  font-size: .9rem;
  font-weight: 750;
}

.radio-world-status[data-tone="success"] {
  border-color: #bfe4cc;
  color: #24623a;
  background: #edf9f1;
}

.radio-world-status[data-tone="error"] {
  border-color: #efc2c2;
  color: #8b2525;
  background: #fff1f1;
}

.radio-world-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(320px, 350px);
  gap: 18px;
  align-items: stretch;
}

.radio-world-map-card {
  position: relative;
  min-width: 0;
  padding: 18px;
  overflow: hidden;
  background: linear-gradient(155deg, #fff 0%, #fff9fc 58%, #f2fbff 100%);
}

.radio-world-map-card::before {
  content: "";
  position: absolute;
  right: -70px;
  top: -85px;
  width: 230px;
  height: 230px;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(82, 215, 255, .16), rgba(255, 79, 154, .07) 48%, transparent 72%);
  pointer-events: none;
}

.radio-world-map-head,
.radio-world-results-head {
  position: relative;
  z-index: 1;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  margin-bottom: 13px;
}

.radio-world-map-head h2,
.radio-world-results-head h2 {
  margin: 0;
  color: #30232a;
  font-size: clamp(1.15rem, 2.5vw, 1.55rem);
}

.radio-world-map-head > span {
  flex: 0 0 auto;
  padding: 7px 11px;
  border-radius: 999px;
  color: #70465c;
  background: #f5e9ef;
  font-size: .78rem;
  font-weight: 850;
}

.radio-world-map {
  position: relative;
  min-height: 400px;
  overflow: hidden;
  border: 1px solid rgba(255, 255, 255, .68);
  border-radius: 20px;
  background: linear-gradient(145deg, #142b48, #281a49 58%, #4e1d4b);
  box-shadow: inset 0 0 0 1px rgba(82, 215, 255, .12), 0 18px 42px rgba(34, 25, 62, .18);
}

.radio-leaflet-map,
.radio-world-map-fallback {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
}

.radio-leaflet-map {
  z-index: 2;
  min-height: 400px;
  background: linear-gradient(145deg, #cfeef1, #f4e5f3);
}

.radio-leaflet-map:empty {
  pointer-events: none;
}

.radio-leaflet-map.radio-map-is-live {
  background: linear-gradient(145deg, #cfeef1, #f4e5f3);
}

.radio-leaflet-map .radio-map-tiles {
  filter: saturate(1.28) contrast(.91) brightness(1.04) hue-rotate(-8deg);
}

.radio-leaflet-map .leaflet-control-zoom a {
  border: 0 !important;
  color: #fff !important;
  background: rgba(37, 25, 58, .88) !important;
  backdrop-filter: blur(8px);
}

.radio-leaflet-map .leaflet-control-attribution {
  border-radius: 10px 0 0 0;
  background: rgba(255, 255, 255, .78) !important;
  backdrop-filter: blur(8px);
}

.radio-world-map-fallback {
  z-index: 1;
  display: grid;
  place-items: center;
  padding: 18px;
}

.radio-world-map-fallback img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  opacity: .94;
  filter: drop-shadow(0 14px 30px rgba(0, 0, 0, .22));
}

.radio-world-map-markers {
  position: absolute;
  inset: 0;
}

.radio-map-marker {
  --radio-glow: #ff4f9a;
  position: absolute;
  z-index: 3;
  width: 9px !important;
  height: 9px !important;
  margin: -4.5px 0 0 -4.5px !important;
  padding: 0;
  border: 1px solid #fff !important;
  border-radius: 50%;
  background: var(--radio-glow) !important;
  box-shadow: 0 0 3px #fff, 0 0 8px var(--radio-glow), 0 0 14px var(--radio-glow) !important;
  animation: radioFallbackGlow 2.35s ease-in-out infinite;
  animation-delay: var(--radio-delay, 0s);
  cursor: pointer;
}

.radio-map-marker-2 { --radio-glow: #25bfe8; }
.radio-map-marker-3 { --radio-glow: #ffb92e; }
.radio-map-marker-4 { --radio-glow: #8f65ff; }
.radio-map-marker-5 { --radio-glow: #37d988; }

.radio-glow-point {
  --radio-glow: #ff4f9a;
  vector-effect: non-scaling-stroke;
  filter: drop-shadow(0 0 2px #fff) drop-shadow(0 0 5px var(--radio-glow)) drop-shadow(0 0 10px var(--radio-glow));
  animation: radioPointGlow 2.35s ease-in-out infinite;
  animation-delay: var(--radio-delay, 0s);
  transition: filter .16s ease, fill-opacity .16s ease, stroke-width .16s ease;
}

.radio-glow-point-2 { --radio-glow: #25bfe8; }
.radio-glow-point-3 { --radio-glow: #ffb92e; }
.radio-glow-point-4 { --radio-glow: #8f65ff; }
.radio-glow-point-5 { --radio-glow: #37d988; }

.radio-glow-point:hover,
.radio-glow-point.is-playing {
  filter: drop-shadow(0 0 3px #fff) drop-shadow(0 0 9px var(--radio-glow)) drop-shadow(0 0 18px var(--radio-glow));
  animation-duration: 1.15s;
}

.radio-glow-point.is-playing {
  stroke: #fff7d6 !important;
  stroke-width: 2.5 !important;
}

.radio-glow-tooltip {
  border: 1px solid rgba(255, 255, 255, .62) !important;
  border-radius: 12px !important;
  color: #fff !important;
  background: rgba(43, 28, 61, .94) !important;
  box-shadow: 0 10px 28px rgba(22, 12, 35, .3) !important;
  font-weight: 750;
}

.radio-glow-tooltip::before {
  border-top-color: rgba(43, 28, 61, .94) !important;
}

.radio-map-legend {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  flex-wrap: wrap;
  margin: 12px 2px 0;
  color: #65475a;
  font-size: .78rem;
  font-weight: 780;
}

.radio-map-legend span {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  padding: 6px 10px;
  border: 1px solid rgba(112, 63, 91, .11);
  border-radius: 999px;
  background: rgba(255, 255, 255, .78);
}

.radio-map-legend i {
  display: inline-block;
  width: 8px;
  height: 8px;
  border: 1px solid #fff;
  border-radius: 50%;
  background: #ff4f9a;
  box-shadow: 0 0 4px #fff, 0 0 9px #ff4f9a, 0 0 15px rgba(255, 79, 154, .72);
  animation: radioLegendGlow 1.7s ease-in-out infinite;
}

.radio-world-map-note {
  margin: 11px 3px 0;
  color: #75646b;
  font-size: .79rem;
  line-height: 1.45;
}

.radio-player-card {
  position: relative;
  min-width: 0;
  display: flex;
  flex-direction: column;
  padding: 18px;
  overflow: hidden;
  color: #f8f1ff;
  background:
    radial-gradient(circle at 82% 12%, rgba(82, 215, 255, .18), transparent 25%),
    linear-gradient(160deg, #21182f 0%, #352040 58%, #501f43 100%);
  box-shadow: 0 18px 44px rgba(31, 19, 45, .22);
}

.radio-player-card::after {
  content: "";
  position: absolute;
  inset: auto -35px -55px auto;
  width: 150px;
  height: 150px;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(255, 91, 159, .24), transparent 68%);
  pointer-events: none;
}

.radio-player-card > * {
  position: relative;
  z-index: 1;
}

.radio-player-brand {
  display: grid;
  grid-template-columns: auto 1fr;
  column-gap: 10px;
  align-items: center;
  margin-bottom: 16px;
}

.radio-player-brand strong {
  align-self: end;
  color: #fff;
  font-size: 1rem;
  letter-spacing: .12em;
}

.radio-player-brand small {
  grid-column: 2;
  color: #c5b5d0;
  font-size: .62rem;
  letter-spacing: .16em;
}

.radio-player-signal {
  grid-row: 1 / 3;
  display: flex;
  align-items: end;
  gap: 3px;
  width: 28px;
  height: 26px;
}

.radio-player-signal i {
  width: 4px;
  border-radius: 4px 4px 0 0;
  background: linear-gradient(#5ee7ff, #ff61aa);
  box-shadow: 0 0 8px rgba(82, 215, 255, .6);
  animation: radioSignal 1.1s ease-in-out infinite alternate;
}

.radio-player-signal i:nth-child(1) { height: 26%; animation-delay: -.5s; }
.radio-player-signal i:nth-child(2) { height: 48%; animation-delay: -.25s; }
.radio-player-signal i:nth-child(3) { height: 72%; animation-delay: -.7s; }
.radio-player-signal i:nth-child(4) { height: 100%; animation-delay: -.1s; }

.radio-player-screen {
  display: grid;
  grid-template-columns: 76px minmax(0, 1fr);
  gap: 14px;
  align-items: center;
  min-height: 118px;
  padding: 14px;
  border: 1px solid rgba(147, 224, 255, .18);
  border-radius: 18px;
  background: rgba(7, 12, 25, .58);
  box-shadow: inset 0 0 30px rgba(66, 217, 255, .055);
}

.radio-player-screen img {
  width: 76px;
  height: 76px;
  border-radius: 16px;
  object-fit: cover;
  background: #fff;
  box-shadow: 0 8px 22px rgba(0, 0, 0, .25);
}

.radio-player-screen span {
  display: block;
  margin-bottom: 5px;
  overflow: hidden;
  color: #6de8ff;
  font-size: .67rem;
  font-weight: 900;
  letter-spacing: .08em;
  text-overflow: ellipsis;
  text-transform: uppercase;
  white-space: nowrap;
}

.radio-player-screen h2 {
  margin: 0 0 5px;
  overflow: hidden;
  color: #fff;
  font-size: 1.1rem;
  line-height: 1.22;
  text-overflow: ellipsis;
}

.radio-player-screen p {
  margin: 0;
  color: #c4b8cc;
  font-size: .78rem;
  line-height: 1.4;
}

.radio-player-controls {
  display: grid;
  grid-template-columns: 52px 42px minmax(0, 1fr) 42px;
  gap: 9px;
  align-items: center;
  margin-top: 14px;
}

.radio-player-controls button {
  width: 42px;
  height: 42px;
  display: grid;
  place-items: center;
  padding: 0;
  border: 1px solid rgba(255, 255, 255, .18);
  border-radius: 50%;
  color: #fff;
  background: rgba(255, 255, 255, .09);
  font: inherit;
  font-weight: 900;
  cursor: pointer;
}

.radio-player-controls button:hover:not(:disabled),
.radio-player-controls button:focus-visible:not(:disabled) {
  border-color: rgba(109, 232, 255, .72);
  background: rgba(109, 232, 255, .17);
}

.radio-player-controls button:disabled {
  opacity: .4;
  cursor: not-allowed;
}

.radio-player-controls .radio-player-main {
  width: 52px;
  height: 52px;
  border: 0;
  background: linear-gradient(135deg, #51d8f7, #8a62ff 52%, #ff5c9f);
  box-shadow: 0 8px 22px rgba(92, 97, 231, .35);
}

.radio-player-controls button.is-active {
  color: #ff80b8;
  background: rgba(255, 91, 159, .16);
}

.radio-volume-control {
  min-width: 0;
  display: grid;
  gap: 5px;
  color: #c8bbcf;
  font-size: .64rem;
  font-weight: 800;
  text-transform: uppercase;
}

.radio-volume-control input {
  width: 100%;
  accent-color: #62ddf8;
}

.radio-player-tuner {
  position: relative;
  height: 8px;
  margin-top: 16px;
  overflow: hidden;
  border-radius: 999px;
  background: rgba(255, 255, 255, .08);
}

.radio-player-tuner::before {
  content: "";
  position: absolute;
  inset: 0;
  background: repeating-linear-gradient(90deg, rgba(255, 255, 255, .16) 0 1px, transparent 1px 12px);
}

.radio-player-tuner span {
  position: absolute;
  top: 0;
  left: 40%;
  width: 16%;
  height: 100%;
  border-radius: inherit;
  background: linear-gradient(90deg, transparent, #66e5ff, #ff6cac, transparent);
  box-shadow: 0 0 14px #66e5ff;
  animation: radioTuner 3.4s ease-in-out infinite;
}

.radio-player-message,
.radio-player-persistence {
  margin: 12px 0 0;
  color: #e2d8e7;
  font-size: .78rem;
  line-height: 1.45;
}

.radio-player-persistence {
  margin-top: auto;
  padding-top: 10px;
  color: #ad9db6;
  font-size: .7rem;
}

.radio-world-results {
  padding: 18px;
}

.radio-world-results-head .eyebrow {
  color: #8b3d65;
}

.radio-history-clear {
  min-height: 38px;
  padding: 8px 13px;
  font-size: .78rem;
}

.radio-station-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 13px;
}

.radio-station-card {
  position: relative;
  min-width: 0;
  display: grid;
  grid-template-columns: 66px minmax(0, 1fr) 38px;
  gap: 12px;
  align-items: center;
  padding: 13px;
  border: 1px solid #eadde2;
  border-radius: 18px;
  color: #36272e;
  background: linear-gradient(145deg, #fff, #fff9fc);
  box-shadow: 0 8px 22px rgba(41, 24, 32, .055);
  transition: transform .18s ease, border-color .18s ease, box-shadow .18s ease;
}

.radio-station-card:hover {
  transform: translateY(-2px);
  border-color: #d6b7c5;
  box-shadow: 0 14px 28px rgba(41, 24, 32, .10);
}

.radio-station-play {
  position: relative;
  width: 66px;
  height: 66px;
  padding: 0;
  overflow: hidden;
  border: 0;
  border-radius: 15px;
  background: #efe7eb;
  cursor: pointer;
}

.radio-station-logo {
  width: 100%;
  height: 100%;
  object-fit: cover;
  background: #fff;
}

.radio-station-play-icon {
  position: absolute;
  inset: auto 6px 6px auto;
  width: 25px;
  height: 25px;
  display: grid;
  place-items: center;
  border: 1px solid rgba(255, 255, 255, .75);
  border-radius: 50%;
  color: #fff;
  background: rgba(74, 31, 68, .86);
  box-shadow: 0 4px 12px rgba(0, 0, 0, .22);
  font-size: .62rem;
}

.radio-station-copy {
  min-width: 0;
}

.radio-station-country {
  display: block;
  overflow: hidden;
  color: #8b4a69;
  font-size: .67rem;
  font-weight: 900;
  letter-spacing: .05em;
  text-overflow: ellipsis;
  text-transform: uppercase;
  white-space: nowrap;
}

.radio-station-name {
  margin: 4px 0;
  overflow: hidden;
  color: #302129;
  font-size: .98rem;
  line-height: 1.24;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.radio-station-details {
  margin: 0;
  overflow: hidden;
  color: #77666e;
  font-size: .72rem;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.radio-station-tags {
  display: flex;
  gap: 4px;
  flex-wrap: wrap;
  margin-top: 7px;
  overflow: hidden;
  max-height: 24px;
}

.radio-station-tags span,
.radio-station-copy-uuid {
  padding: 3px 7px;
  border: 0;
  border-radius: 999px;
  color: #70465c;
  background: #f3e8ed;
  font-size: .61rem;
  font-weight: 800;
}

.radio-station-copy-uuid {
  cursor: pointer;
}

.radio-station-favorite {
  width: 38px;
  height: 38px;
  display: grid;
  place-items: center;
  padding: 0;
  border: 1px solid #e0ccd5;
  border-radius: 50%;
  color: #8d4a69;
  background: #fff;
  font-size: 1.16rem;
  cursor: pointer;
}

.radio-station-favorite:hover,
.radio-station-favorite:focus-visible,
.radio-station-favorite.is-active {
  border-color: #e68aae;
  color: #d52e72;
  background: #fff0f6;
}

.radio-load-more-wrap {
  display: flex;
  justify-content: center;
  padding-top: 16px;
}

.radio-load-more {
  min-height: 46px;
  padding: 10px 19px;
  border: 0;
  border-radius: 999px;
  color: #fff;
  background: linear-gradient(135deg, #6e2c75, #b62a69 55%, #e78b4d);
  box-shadow: 0 10px 24px rgba(130, 38, 91, .22);
  font: inherit;
  font-weight: 850;
  cursor: pointer;
}

.radio-load-more:hover,
.radio-load-more:focus-visible {
  transform: translateY(-1px);
  box-shadow: 0 14px 30px rgba(130, 38, 91, .28);
}

.radio-load-more:disabled {
  opacity: .62;
  cursor: wait;
  transform: none;
}

.radio-empty-state {
  padding: 42px 20px;
  border: 1px dashed #d3c0c8;
  border-radius: 18px;
  text-align: center;
  color: #6e5a62;
  background: #fcf8fa;
}

.radio-empty-state strong {
  display: block;
  margin-bottom: 6px;
  color: #503842;
  font-size: 1.08rem;
}

.radio-empty-state p {
  margin: 0;
}

/* Mini-lecteur persistant */
body.has-radio-dock {
  padding-bottom: 78px;
}

.duo-radio-dock {
  position: fixed;
  z-index: 1200;
  right: 16px;
  bottom: 16px;
  width: min(380px, calc(100% - 32px));
  display: grid;
  grid-template-columns: minmax(0, 1fr) 40px 30px;
  gap: 7px;
  align-items: center;
  padding: 7px;
  border: 1px solid rgba(255, 255, 255, .20);
  border-radius: 16px;
  color: #fff;
  background: linear-gradient(145deg, rgba(32, 23, 48, .97), rgba(79, 30, 69, .97));
  box-shadow: 0 12px 34px rgba(27, 14, 21, .34);
  backdrop-filter: blur(16px);
}

.duo-radio-dock[hidden] {
  display: none !important;
}

.duo-radio-dock-station {
  min-width: 0;
  display: grid;
  grid-template-columns: 40px minmax(0, 1fr);
  gap: 9px;
  align-items: center;
  color: inherit;
  text-decoration: none;
}

.duo-radio-dock-station img {
  width: 40px;
  height: 40px;
  border-radius: 10px;
  object-fit: cover;
  background: #fff;
}

.duo-radio-dock-station span {
  min-width: 0;
  display: grid;
}

.duo-radio-dock-station small,
.duo-radio-dock-station strong,
.duo-radio-dock-station em {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.duo-radio-dock-station small {
  color: #70e6ff;
  font-size: .58rem;
  font-weight: 850;
  line-height: 1.05;
  text-transform: uppercase;
}

.duo-radio-dock-station strong {
  color: #fff;
  font-size: .82rem;
  line-height: 1.15;
}

.duo-radio-dock-station em {
  display: none;
  color: #cabbd1;
  font-size: .68rem;
  font-style: normal;
}

.duo-radio-dock button,
.duo-radio-dock-open {
  border: 0;
  color: #fff;
  background: rgba(255, 255, 255, .10);
  cursor: pointer;
}

.duo-radio-dock-main {
  width: 40px;
  height: 40px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  background: linear-gradient(135deg, #50d8f7, #9565ff 55%, #ff5c9f) !important;
  font-size: .9rem;
}

.duo-radio-dock-close {
  width: 28px;
  height: 28px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  font-size: 1rem;
}

#duoRadioDockStop,
.duo-radio-dock-volume,
.duo-radio-dock-open {
  display: none !important;
}

/* Mode sombre */
.dark-mode .radio-world-toolbar,
.dark-mode .radio-world-map-card,
.dark-mode .radio-world-results {
  border-color: rgba(255, 255, 255, .09);
  color: #f6edf0;
  background: #262025;
}

.dark-mode .radio-world-search-form label,
.dark-mode .radio-world-map-note,
.dark-mode .radio-world-status {
  color: #d4c5cb;
}

.dark-mode .radio-world-search-form select,
.dark-mode .radio-world-search-form input,
.dark-mode .radio-world-tabs button,
.dark-mode .radio-station-card {
  border-color: #59464f;
  color: #f4ebef;
  background: #30272c;
}

.dark-mode .radio-world-map-head h2,
.dark-mode .radio-world-results-head h2,
.dark-mode .radio-station-name,
.dark-mode .radio-empty-state strong {
  color: #fff;
}

.dark-mode .radio-station-details,
.dark-mode .radio-empty-state {
  color: #cdbfc4;
}

.dark-mode .radio-empty-state {
  border-color: #66505b;
  background: #2b2428;
}

@keyframes radioPointGlow {
  0%, 100% {
    fill-opacity: .72;
    stroke-opacity: .78;
    filter: drop-shadow(0 0 2px #fff) drop-shadow(0 0 4px var(--radio-glow)) drop-shadow(0 0 8px var(--radio-glow));
  }
  50% {
    fill-opacity: 1;
    stroke-opacity: 1;
    filter: drop-shadow(0 0 3px #fff) drop-shadow(0 0 8px var(--radio-glow)) drop-shadow(0 0 15px var(--radio-glow));
  }
}

@keyframes radioFallbackGlow {
  0%, 100% { opacity: .72; transform: scale(.86); }
  50% { opacity: 1; transform: scale(1.22); }
}

@keyframes radioLegendGlow {
  0%, 100% { opacity: .72; transform: scale(.9); }
  50% { opacity: 1; transform: scale(1.2); }
}

@keyframes radioSignal {
  from { opacity: .45; transform: scaleY(.65); }
  to { opacity: 1; transform: scaleY(1); }
}

@keyframes radioTuner {
  0%, 100% { left: 4%; }
  50% { left: 80%; }
}

@media (max-width: 1050px) {
  .radio-world-layout {
    grid-template-columns: 1fr;
  }

  .radio-player-card {
    min-height: 0;
  }

  .radio-player-persistence {
    margin-top: 10px;
  }

  .radio-station-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 860px) {
  .radio-world-hero {
    grid-template-columns: 1fr;
  }

  .radio-world-plan {
    max-width: 520px;
  }

  .radio-world-search-form {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .radio-world-search-form > button {
    width: 100%;
  }
}

@media (max-width: 620px) {
  .page-radio .site-main {
    width: calc(100% - 20px);
  }

  .radio-world-hero {
    margin-top: 14px;
    padding: 22px 18px;
    border-radius: 22px;
  }

  .radio-world-toolbar,
  .radio-world-map-card,
  .radio-player-card,
  .radio-world-results {
    border-radius: 18px;
  }

  .radio-world-search-form {
    grid-template-columns: 1fr;
  }

  .radio-world-search-form > button {
    min-height: 48px;
  }

  .radio-world-map-head,
  .radio-world-results-head {
    align-items: flex-start;
    flex-direction: column;
  }

  .radio-world-map {
    min-height: 360px;
  }

  .radio-leaflet-map {
    min-height: 360px;
  }

  .radio-map-legend {
    align-items: flex-start;
    flex-direction: column;
  }

  .radio-map-legend span {
    font-size: .72rem;
  }

  .radio-player-screen {
    grid-template-columns: 62px minmax(0, 1fr);
  }

  .radio-player-screen img {
    width: 62px;
    height: 62px;
    border-radius: 13px;
  }

  .radio-player-controls {
    grid-template-columns: 50px 40px minmax(0, 1fr) 40px;
  }

  .radio-station-grid {
    grid-template-columns: 1fr;
  }

  .radio-station-card {
    grid-template-columns: 58px minmax(0, 1fr) 36px;
  }

  .radio-station-play {
    width: 58px;
    height: 58px;
  }

  body.has-radio-dock {
    padding-bottom: 68px;
  }

  .duo-radio-dock {
    right: 8px;
    bottom: 8px;
    width: calc(100% - 16px);
    grid-template-columns: minmax(0, 1fr) 38px 28px;
    padding: 6px;
    border-radius: 14px;
  }

  .duo-radio-dock-station {
    grid-template-columns: 36px minmax(0, 1fr);
    gap: 8px;
  }

  .duo-radio-dock-station img {
    width: 36px;
    height: 36px;
    border-radius: 9px;
  }

  .duo-radio-dock-station small {
    display: none;
  }

  .duo-radio-dock-station strong {
    font-size: .78rem;
  }

  .duo-radio-dock-main {
    width: 38px;
    height: 38px;
  }

  .duo-radio-dock-close {
    width: 26px;
    height: 26px;
  }

  .radio-glow-point {
    animation-duration: 2.8s;
  }
}

@media (prefers-reduced-motion: reduce) {
  .radio-glow-point,
  .radio-map-marker,
  .radio-map-legend i,
  .radio-player-signal i,
  .radio-player-tuner span {
    animation: none !important;
  }

  .radio-load-more,
  .radio-station-card,
  .radio-world-search-form > button {
    transition: none !important;
  }
}

/* source: assets/css/infos.css */
.info-hero{display:grid;grid-template-columns:minmax(0,1fr)auto;gap:2rem;align-items:center;margin:1.5rem 0 1.2rem;padding:2rem;border:1px solid rgba(255,255,255,.09);border-radius:28px;background:radial-gradient(circle at 88% 15%,rgba(234,154,83,.2),transparent 28%),linear-gradient(135deg,#211823,#3c2130 58%,#513127);box-shadow:0 22px 54px rgba(0,0,0,.22);overflow:hidden}.info-hero h1{margin:.35rem 0 .7rem;font-size:clamp(2rem,5vw,3.8rem);line-height:1.02;color:#fff}.info-hero p{max-width:760px;margin:0;color:#eee0e4;font-size:1.05rem}.info-kicker{display:inline-flex;align-items:center;gap:.5rem;color:#f4bd86;font-weight:800;letter-spacing:.06em;text-transform:uppercase;font-size:.78rem}.info-kicker .ui-icon{width:1.1rem}.info-location{display:flex;align-items:center;gap:.5rem;margin-top:1rem;color:#fff}.info-location .ui-icon{width:1rem}.info-favorite-meter{min-width:170px;padding:1.2rem;border-radius:22px;background:rgba(255,255,255,.09);text-align:center;color:#fff;backdrop-filter:blur(10px)}.info-favorite-meter strong{display:block;font-size:1.65rem}.info-favorite-meter span,.info-favorite-meter a{display:block}.info-favorite-meter span{color:#e9d9de}.info-favorite-meter a{margin-top:.55rem;color:#ffd2a8;font-weight:700}.info-tabs{display:flex;gap:.5rem;overflow:auto;padding:.25rem 0 .9rem;scrollbar-width:thin}.info-tabs a{flex:0 0 auto;padding:.68rem 1rem;border:1px solid var(--border-color,#ddd);border-radius:999px;background:var(--card-bg,#fff);color:inherit;text-decoration:none;font-weight:700}.info-tabs a:hover,.info-tabs a.is-active{border-color:#a94f67;background:#6f2438;color:#fff}.info-search{padding:1rem 1.2rem;margin-bottom:1.25rem;border:1px solid var(--border-color,#ddd);border-radius:20px;background:var(--card-bg,#fff)}.info-search>label{display:block;margin-bottom:.5rem;font-weight:800}.info-search>div{display:flex;gap:.6rem;align-items:center}.info-search input{flex:1;min-width:0;padding:.85rem 1rem;border:1px solid #cdbdc2;border-radius:12px;background:transparent;color:inherit}.info-search button,.info-search a{display:inline-flex;align-items:center;gap:.35rem;padding:.82rem 1rem;border:0;border-radius:12px;text-decoration:none;font-weight:800}.info-search button{background:#6f2438;color:#fff}.info-search a{color:#6f2438}.info-featured{display:grid;grid-template-columns:minmax(260px,43%) minmax(0,1fr);min-height:340px;margin:1.2rem 0 2rem;border-radius:28px;overflow:hidden;background:#fff;box-shadow:0 18px 48px rgba(31,18,24,.14);border:1px solid rgba(111,36,56,.11)}.info-featured-media{min-height:300px;background:linear-gradient(145deg,#402132,#7a3a4e);display:grid;place-items:center}.info-featured-media>*{grid-area:1/1}.info-featured-media img{width:100%;height:100%;object-fit:cover;position:relative;z-index:1}.info-featured-media .ui-icon{width:80px;color:#f3d1bc}.info-featured-copy{display:flex;flex-direction:column;justify-content:center;padding:clamp(1.5rem,4vw,3rem);color:#261b20}.info-featured-copy h2{margin:.65rem 0;font-size:clamp(1.55rem,3vw,2.45rem);line-height:1.13}.info-featured-copy p{color:#66565d;line-height:1.65}.info-source-chip,.info-category-label{display:inline-flex;align-self:flex-start;padding:.34rem .65rem;border-radius:999px;background:#f4e8eb;color:#6f2438;font-size:.76rem;font-weight:800}.info-card-actions{display:flex;align-items:center;justify-content:space-between;gap:.6rem;margin-top:auto;padding-top:1rem}.info-card-actions>a{font-weight:850;color:#6f2438;text-decoration:none}.info-card-actions form{margin:0}.info-card-actions button{border:1px solid #d7bdc5;border-radius:999px;background:#fff;color:#8a2f48;padding:.55rem .8rem;font-weight:850;cursor:pointer}.info-list-head{display:flex;justify-content:space-between;gap:1rem;align-items:end;margin:1.6rem 0 1rem}.info-list-head h2{margin:.3rem 0 0}.info-list-head p{max-width:430px;margin:0;color:var(--muted-color,#6e6267);text-align:right}.info-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem}.info-card{display:flex;flex-direction:column;min-width:0;border:1px solid rgba(111,36,56,.12);border-radius:22px;overflow:hidden;background:var(--card-bg,#fff);box-shadow:0 10px 30px rgba(31,18,24,.08);transition:transform .2s ease,box-shadow .2s ease}.info-card:hover{transform:translateY(-3px);box-shadow:0 16px 36px rgba(31,18,24,.13)}.info-card-media{height:175px;display:grid;place-items:center;background:linear-gradient(135deg,#3f2531,#704055);color:#f3d5c2}.info-card-media>*{grid-area:1/1}.info-card-media img{width:100%;height:100%;object-fit:cover;position:relative;z-index:1}.info-card-media .ui-icon{width:54px}.info-card-body{display:flex;flex:1;flex-direction:column;padding:1rem}.info-card-meta{display:flex;justify-content:space-between;gap:.8rem;margin-bottom:.7rem;color:#786b70;font-size:.76rem}.info-card-meta span{font-weight:800;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.info-card h3{margin:.65rem 0 .55rem;font-size:1.08rem;line-height:1.35}.info-card h3 a{color:inherit;text-decoration:none}.info-card p{margin:0;color:#6d6065;line-height:1.5;font-size:.91rem}.info-category-tech .info-category-label{background:#e9eefc;color:#31569b}.info-category-environment .info-category-label,.info-category-positive .info-category-label{background:#e7f4ea;color:#276b3a}.info-category-culture .info-category-label{background:#f2e9fb;color:#6b3f92}.info-category-sport .info-category-label{background:#fff0db;color:#945900}.info-category-world .info-category-label{background:#e8f2f6;color:#28667a}.info-empty{padding:3rem 1.2rem;text-align:center;border:1px dashed #c9b8be;border-radius:22px;background:rgba(255,255,255,.45)}.info-empty .ui-icon{width:52px;color:#8a4257}.info-pagination{display:flex;justify-content:center;align-items:center;gap:1rem;margin:2rem 0}.info-pagination a,.info-pagination span{padding:.7rem 1rem;border-radius:999px}.info-pagination a{background:#6f2438;color:#fff;text-decoration:none;font-weight:800}.info-source-note{display:flex;gap:1rem;align-items:flex-start;margin:2rem 0;padding:1.25rem;border-radius:20px;background:#f5ede9;color:#4c3840}.info-source-note .ui-icon{width:28px;flex:0 0 auto}.info-source-note p{margin:.25rem 0 0}.page-infos .site-main{max-width:1280px}.dark-mode .info-featured,.dark-mode .info-card,.dark-mode .info-search{background:#261f23;color:#f6edf0}.dark-mode .info-card p,.dark-mode .info-featured-copy p{color:#cdbfc4}.dark-mode .info-source-note{background:#30252a;color:#ecdee3}.dark-mode .info-card-actions button{background:#2b2226;color:#f3a9bc}
@media(max-width:980px){.info-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.info-featured{grid-template-columns:1fr}.info-featured-media{min-height:240px}.info-hero{grid-template-columns:1fr}.info-favorite-meter{justify-self:start}}
@media(max-width:620px){.info-hero{padding:1.35rem;border-radius:22px}.info-grid{grid-template-columns:1fr}.info-list-head{align-items:flex-start;flex-direction:column}.info-list-head p{text-align:left}.info-search>div{flex-wrap:wrap}.info-search input{flex-basis:100%}.info-featured{border-radius:22px}.info-card-media{height:200px}.info-card-meta{align-items:flex-start;flex-direction:column;gap:.25rem}}
@media(prefers-reduced-motion:reduce){.info-card{transition:none}}

/* source: assets/css/universe.css */
/* DuoLocal 1.14.6 — module Mon univers */
.universe-page {
    width: min(1180px, calc(100% - 32px));
    margin: 32px auto 64px;
}

.universe-hero {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    gap: 22px;
    align-items: center;
    padding: 28px;
    margin-bottom: 24px;
    border: 1px solid rgba(123, 45, 68, .16);
    border-radius: 26px;
    background: linear-gradient(135deg, rgba(255, 249, 251, .98), rgba(247, 235, 240, .94));
    box-shadow: 0 18px 44px rgba(80, 34, 49, .09);
}

.universe-hero h1,
.universe-panel h2,
.universe-preview h2 { margin: 0; }
.universe-hero p { max-width: 760px; margin: 8px 0 0; color: #5d4b51; line-height: 1.65; }

.universe-hero-icon {
    display: grid;
    place-items: center;
    width: 66px;
    height: 66px;
    border-radius: 22px;
    background: #7b2d44;
    color: #fff;
    box-shadow: 0 12px 26px rgba(123, 45, 68, .23);
}
.universe-hero-icon .ui-icon { width: 31px; height: 31px; }

.universe-hero-status {
    min-width: 130px;
    padding: 16px 18px;
    border-radius: 18px;
    background: rgba(255,255,255,.82);
    text-align: center;
}
.universe-hero-status strong { display: block; color: #7b2d44; font-size: 1.55rem; }
.universe-hero-status span { color: #756269; font-size: .86rem; }

.universe-layout {
    display: grid;
    grid-template-columns: minmax(0, 1.7fr) minmax(290px, .8fr);
    gap: 24px;
    align-items: start;
}
.universe-layout > *,
.universe-preview,
.universe-preview-card,
.universe-preview-title,
.universe-preview-title strong {
    min-width: 0;
    max-width: 100%;
}

.universe-editor { display: grid; gap: 22px; }
.universe-panel,
.universe-preview {
    border: 1px solid rgba(123, 45, 68, .14);
    border-radius: 24px;
    background: #fff;
    box-shadow: 0 14px 36px rgba(66, 35, 45, .07);
}
.universe-panel { padding: 26px; }
.universe-preview { position: sticky; top: 94px; padding: 24px; }

.universe-panel-heading {
    display: flex;
    justify-content: space-between;
    gap: 18px;
    align-items: flex-start;
    margin-bottom: 18px;
}
.universe-counter {
    flex: 0 0 auto;
    padding: 7px 11px;
    border-radius: 999px;
    background: #f6edf0;
    color: #6f2438;
    font-size: .84rem;
    font-weight: 800;
}

.universe-panel textarea {
    box-sizing: border-box;
    width: 100%;
    min-height: 190px;
    resize: vertical;
    padding: 17px;
    border: 1px solid #d9c7cd;
    border-radius: 16px;
    background: #fffdfd;
    color: #2f2529;
    font: inherit;
    line-height: 1.6;
}
.universe-panel textarea:focus {
    outline: 3px solid rgba(123,45,68,.13);
    border-color: #7b2d44;
}
.universe-help,
.universe-preview-note {
    margin: 10px 0 0;
    color: #76636a;
    font-size: .88rem;
    line-height: 1.5;
}

.universe-category-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 16px;
}
.universe-category {
    min-width: 0;
    margin: 0;
    padding: 16px;
    border: 1px solid #eadde1;
    border-radius: 18px;
    background: #fffafb;
}
.universe-category legend {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 0 5px;
    color: #4f2935;
    font-weight: 800;
}
.universe-category legend .ui-icon { width: 19px; height: 19px; }
.universe-tag-grid { display: flex; flex-wrap: wrap; gap: 9px; margin-top: 8px; }
.universe-tag-option { position: relative; cursor: pointer; }
.universe-tag-option input { position: absolute; opacity: 0; pointer-events: none; }
.universe-tag-option span {
    display: inline-flex;
    align-items: center;
    min-height: 38px;
    padding: 8px 12px;
    border: 1px solid #dbc9cf;
    border-radius: 999px;
    background: #fff;
    color: #57454b;
    font-size: .9rem;
    transition: border-color .15s ease, background .15s ease, color .15s ease, transform .15s ease;
}
.universe-tag-option input:checked + span {
    border-color: #7b2d44;
    background: #7b2d44;
    color: #fff;
    box-shadow: 0 7px 18px rgba(123,45,68,.2);
}
.universe-tag-option input:focus-visible + span { outline: 3px solid rgba(123,45,68,.23); outline-offset: 2px; }
.universe-tag-option input:disabled + span { opacity: .45; cursor: not-allowed; }
.universe-tag-option:hover span { transform: translateY(-1px); }
.universe-limit-message { min-height: 22px; margin: 12px 0 0; color: #8c3b51; font-weight: 700; }

.universe-actions { display: flex; flex-wrap: wrap; gap: 12px; align-items: center; }
.universe-actions button,
.universe-actions .button { min-height: 44px; }
.universe-actions .universe-clear-button { margin-left: auto; }

.universe-preview > .section-kicker { display: block; }
.universe-preview > h2 { margin: 4px 0 16px; }
.universe-preview-card {
    overflow: hidden;
    padding: 20px;
    border-radius: 19px;
    background: linear-gradient(145deg, #fff7f9, #f5e8ec);
}
.universe-preview-title { display: flex; gap: 9px; align-items: center; color: #63283a; }
.universe-preview-title .ui-icon { width: 21px; height: 21px; }
.universe-preview-card p {
    max-width: 100%;
    margin: 15px 0;
    color: #46373c;
    line-height: 1.6;
    white-space: pre-line;
    overflow-wrap: anywhere;
    word-break: break-word;
}
.universe-preview-title strong {
    overflow-wrap: anywhere;
    word-break: break-word;
}
.universe-preview-card p.is-empty { color: #8a777d; font-style: italic; }
.universe-preview-tags,
.profile-universe-tags { display: flex; flex-wrap: wrap; gap: 8px; }
.universe-preview-tags > span,
.profile-universe-tags > span {
    padding: 7px 10px;
    border-radius: 999px;
    background: #fff;
    border: 1px solid rgba(123,45,68,.17);
    color: #6b2b3f;
    max-width: 100%;
    font-size: .84rem;
    font-weight: 700;
    white-space: normal;
    overflow-wrap: anywhere;
    word-break: break-word;
}
.universe-preview-tags .universe-preview-placeholder { color: #8a777d; font-weight: 500; }
.profile-universe-tags > span.is-shared { background: #eaf6ef; border-color: #b9dfc8; color: #28633f; }
.universe-preview-note { display: flex; gap: 8px; align-items: flex-start; }
.universe-preview-note .ui-icon { flex: 0 0 auto; width: 18px; height: 18px; margin-top: 2px; }

.profile-v3-card.profile-v3-universe { grid-column: 1 / -1; }
.profile-universe-heading { display: flex; justify-content: space-between; gap: 16px; align-items: center; margin-bottom: 14px; }
.profile-universe-heading h2 { display: flex; align-items: center; gap: 8px; margin: 0; }
.profile-universe-heading .ui-icon { width: 22px; height: 22px; color: #7b2d44; }
.profile-universe-shared {
    padding: 7px 11px;
    border-radius: 999px;
    background: #eaf6ef;
    color: #28633f;
    font-size: .84rem;
    font-weight: 800;
}
.profile-universe-description {
    max-width: 100%;
    color: #493b40;
    line-height: 1.7;
    overflow-wrap: anywhere;
    word-break: break-word;
}
.profile-universe-category + .profile-universe-category { margin-top: 14px; }
.profile-universe-category strong { display: block; margin-bottom: 8px; color: #6a3344; font-size: .9rem; }

@media (max-width: 900px) {
    .universe-layout { grid-template-columns: 1fr; }
    .universe-preview { position: static; }
}

@media (max-width: 680px) {
    .universe-page { width: min(100% - 20px, 1180px); margin-top: 18px; }
    .universe-hero { grid-template-columns: auto 1fr; padding: 20px; }
    .universe-hero-status { grid-column: 1 / -1; display: flex; justify-content: center; gap: 8px; align-items: baseline; }
    .universe-hero-status strong { font-size: 1.2rem; }
    .universe-panel { padding: 18px; }
    .universe-category-grid { grid-template-columns: 1fr; }
    .universe-panel-heading { align-items: center; }
    .universe-actions { display: grid; grid-template-columns: 1fr; }
    .universe-actions .universe-clear-button { margin-left: 0; }
    .profile-universe-heading { align-items: flex-start; flex-direction: column; }
}

/* source: assets/css/companions.css */
/* Compagnons virtuels — styles publics */
.companion-badge{display:inline-flex;align-items:center;gap:.3rem;width:max-content;max-width:100%;padding:.28rem .6rem;border:1px solid rgba(92,47,75,.22);border-radius:999px;background:#f8edf3;color:#6f2948;font-size:.74rem;font-weight:800;line-height:1.1;letter-spacing:.02em}
.companion-badge::before{content:"✦"}
.companion-profile-notice,.companion-conversation-notice{margin:1rem 0;padding:1rem 1.1rem;border:1px solid rgba(92,47,75,.2);border-left:4px solid #8a365c;border-radius:14px;background:linear-gradient(135deg,#fff8fb,#f7eef3);color:#4a2938}
.companion-profile-notice strong,.companion-conversation-notice strong{display:block;margin-bottom:.3rem;color:#6f2948}
.dating-title-line{display:flex;align-items:center;gap:.55rem;flex-wrap:wrap}
.dating-title-line .companion-badge{font-size:.68rem}
.profile-v3-content>.companion-badge{margin-bottom:.7rem}
.conversation-v3-profile .companion-badge{margin-top:.3rem}

/* Administration */
.companion-admin-hero{display:flex;justify-content:space-between;gap:1.5rem;align-items:flex-start;margin-bottom:1.25rem;padding:1.5rem;border-radius:20px;background:linear-gradient(135deg,#4f2136,#853f61);color:#fff}
.companion-admin-hero h1{margin:.15rem 0 .5rem}
.companion-admin-hero p{max-width:780px}
.companion-admin-hero .eyebrow{margin:0;text-transform:uppercase;letter-spacing:.12em;font-size:.75rem;opacity:.8}
.companion-admin-hero-actions{display:flex;gap:.65rem;align-items:center;flex-wrap:wrap}
.companion-admin-hero-actions form{margin:0}
.companion-admin-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1rem;margin:1rem 0}
.companion-admin-stats article{padding:1.1rem;border-radius:16px;background:#fff;box-shadow:0 10px 26px rgba(50,30,40,.08);text-align:center}
.companion-admin-stats strong{display:block;font-size:1.7rem;color:#702d4d}
.companion-admin-stats span{font-size:.86rem;color:#705d66}
.companion-admin-stats small{display:block;margin-top:.2rem;font-size:.72rem;color:#8a5b70}
.companion-admin-panel,.companion-run-result,.companion-presets-section,.companion-agents-section,.companion-activity-section{margin:1.25rem 0;padding:1.25rem;border-radius:18px;background:#fff;box-shadow:0 10px 28px rgba(52,31,41,.08)}
.companion-global-form{display:flex;gap:1rem;align-items:center;flex-wrap:wrap;margin:1rem 0}
.companion-global-form label{display:flex;gap:.45rem;align-items:center}
.companion-emergency-actions{display:flex;gap:.65rem;flex-wrap:wrap}
.companion-emergency-actions form{margin:0}
.companion-emergency-actions .danger{background:#9f2e35}
.companion-run-result pre{overflow:auto;padding:1rem;border-radius:12px;background:#211b1e;color:#f7edf2}
.companion-section-heading{margin-bottom:1rem}
.companion-section-heading h2{margin-bottom:.25rem}
.companion-preset-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem}
.companion-preset-card{padding:1rem;border:1px solid #eadde4;border-radius:16px;background:#fffafc}
.companion-preset-card.preset-equilibre{border-color:#cdb4c1;background:#fcf7fa}
.companion-preset-card.preset-dynamique{border-color:#bf94aa;background:#fff5fa}
.companion-preset-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.7rem}
.companion-preset-fields label,.companion-agent-card label{display:grid;gap:.3rem;font-size:.83rem;font-weight:700}
.companion-preset-fields input,.companion-agent-card input,.companion-agent-card select,.companion-agent-card textarea{width:100%;box-sizing:border-box}

/* P41 — grille stable : deux cartes larges, jamais trois cartes comprimées */
.companion-agent-grid{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:1.25rem!important;align-items:stretch!important}
.companion-agent-card,.companion-agent-card.is-enabled,.companion-agent-card.is-disabled,.companion-agent-card.is-scheduled{display:flex!important;min-width:0!important;height:100%!important;box-sizing:border-box!important;flex-direction:column!important;padding:1.1rem!important;border:1px solid #e3d6dd!important;border-radius:18px!important;background:#fff!important;opacity:1!important;filter:none!important;backdrop-filter:none!important;transform:none!important;box-shadow:0 8px 24px rgba(58,35,46,.07)!important}
.companion-agent-card.is-disabled{border-style:dashed!important;border-color:#bfaeb6!important}
.companion-agent-card.is-scheduled{border-color:#d6b15d!important;background:#fffaf0!important}
.companion-agent-card:target,.companion-agent-card.is-just-saved{outline:3px solid rgba(58,140,85,.32);outline-offset:3px;scroll-margin-block:2rem}
.companion-agent-card *,.companion-agent-card *::before,.companion-agent-card *::after{box-sizing:border-box}

.companion-agent-head{display:grid!important;grid-template-columns:76px minmax(0,1fr)!important;gap:.9rem!important;align-items:center!important;min-height:84px!important;margin:0 0 .75rem!important}
.companion-agent-head img{display:block!important;width:76px!important;height:84px!important;max-width:none!important;object-fit:cover!important;object-position:center!important;border-radius:14px!important;opacity:1!important;filter:none!important;backdrop-filter:none!important;transform:none!important;image-rendering:auto!important}
.companion-agent-head>div{min-width:0}
.companion-agent-head h3,.companion-agent-head p{margin:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

.companion-agent-release{display:flex;align-items:center;min-height:46px;margin:0 0 .65rem;padding:.58rem .7rem;border-radius:10px;font-size:.78rem;font-weight:800;line-height:1.35}
.companion-agent-release.is-waiting{border:1px solid #ead39b;background:#fff4d5;color:#6b5018}
.companion-agent-release.is-live{border:1px solid #b9ddc4;background:#edf9f0;color:#25613a}
.companion-agent-release.is-offline{border:1px solid #d9cfd4;background:#f4f1f3;color:#66555e}
.companion-agent-today{display:flex;align-items:center;min-height:40px;margin:0 0 .8rem;padding:.5rem .65rem;border-radius:10px;background:#f8f1f5;font-size:.78rem}

/* Formulaire interne aligné par zones, sans hauteurs rigides qui coupent le contenu */
.companion-agent-card .companion-agent-form{display:grid!important;grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important;grid-template-areas:"preset times" "bio bio" "registration photo" "commands commands" "save save"!important;gap:.8rem!important;flex:1!important;align-content:start!important}
.companion-standard-field{grid-area:preset}
.companion-time-grid{grid-area:times;display:grid;grid-template-columns:1fr 1fr;gap:.55rem;align-items:start}
.companion-bio-field{grid-area:bio}
.companion-registration-field{grid-area:registration}
.companion-photo-field{grid-area:photo}
.companion-command-grid{grid-area:commands}
.companion-save-button{grid-area:save}

.companion-standard-field,.companion-registration-field,.companion-photo-field,.companion-bio-field,.companion-time-grid{min-width:0;margin:0}
.companion-bio-field,.companion-registration-field{padding:.7rem;border:1px solid #eadde4;border-radius:12px;background:#fff}
.companion-photo-field{padding:.7rem;border:1px dashed #d7bdca;border-radius:12px;background:#fff8fb}
.companion-bio-field textarea{min-height:118px;padding:.65rem;border:1px solid #d8cbd2;border-radius:9px;background:#fff;resize:vertical;font:inherit;line-height:1.45}
.companion-photo-field input[type=file]{min-height:42px;padding:.45rem;border:1px solid #eadde4;border-radius:9px;background:#fff;font-size:.78rem}
.companion-standard-field select,.companion-registration-field input,.companion-time-grid input{min-height:42px}
.companion-bio-field small,.companion-registration-field small,.companion-photo-field small{font-weight:500;line-height:1.35;color:#79636e}

.companion-command-grid{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:.65rem!important;margin-top:.1rem!important;padding-top:0!important}
.companion-command-toggle{position:relative;display:block!important;min-width:0;cursor:pointer;font-weight:inherit!important}
.companion-command-toggle>input{position:absolute!important;width:1px!important;height:1px!important;margin:0!important;opacity:0!important;pointer-events:none!important}
.companion-command-toggle-ui{display:flex!important;min-height:76px!important;height:100%!important;align-items:center!important;justify-content:space-between!important;gap:.6rem!important;padding:.72rem!important;border:1px solid #ded3d8!important;border-radius:13px!important;background:#f6f3f5!important;color:#695a62!important;transform:none!important;filter:none!important;box-shadow:none!important;transition:border-color .16s ease,background .16s ease,box-shadow .16s ease!important}
.companion-command-toggle:hover .companion-command-toggle-ui{border-color:#c9aebc!important;box-shadow:0 5px 14px rgba(72,42,56,.08)!important;transform:none!important}
.companion-command-toggle>input:focus-visible+.companion-command-toggle-ui{outline:3px solid rgba(112,45,77,.24);outline-offset:2px}
.companion-command-toggle>input:checked+.companion-command-toggle-ui{border-color:#7f3155!important;background:#f8eaf1!important;color:#5d2140!important;box-shadow:inset 0 0 0 1px rgba(127,49,85,.08)!important}
.companion-command-copy{display:grid;min-width:0;gap:.18rem}
.companion-command-copy strong{font-size:.83rem;line-height:1.15}
.companion-command-copy small{font-size:.69rem;font-weight:600;line-height:1.25;color:#806d76}
.companion-command-state{display:inline-flex;flex:0 0 auto;align-items:center;justify-content:center;min-width:66px;padding:.3rem .44rem;border-radius:999px;background:#ddd5d9;color:#66585f;font-size:.67rem;font-weight:900;line-height:1;text-transform:uppercase;letter-spacing:.025em}
.companion-command-state::after{content:"Désactivé"}
.companion-command-toggle>input:checked+.companion-command-toggle-ui .companion-command-state{background:#7f3155;color:#fff}
.companion-command-toggle>input:checked+.companion-command-toggle-ui .companion-command-state::after{content:"Activé"}
.companion-save-button{width:100%;min-height:46px;margin-top:.05rem;font-weight:800;align-self:end}

.companion-activity-table{overflow:auto}
.companion-activity-table table{width:100%;border-collapse:collapse}
.companion-activity-table th,.companion-activity-table td{padding:.7rem;border-bottom:1px solid #eee2e8;text-align:left;white-space:nowrap}

@media(max-width:1180px){
  .companion-agent-grid{grid-template-columns:1fr!important}
}
@media(max-width:760px){
  .companion-admin-hero{display:block}
  .companion-admin-hero-actions{margin-top:1rem}
  .companion-admin-stats{grid-template-columns:repeat(2,minmax(0,1fr))}
  .companion-preset-grid{grid-template-columns:1fr}
  .companion-preset-fields{grid-template-columns:1fr}
  .companion-global-form{display:grid;align-items:stretch}
  .companion-agent-card .companion-agent-form{grid-template-columns:1fr!important;grid-template-areas:"preset" "times" "bio" "registration" "photo" "commands" "save"!important}
  .companion-command-grid{grid-template-columns:1fr!important}
}

/* P42 — cartes de préréglage et boutons parfaitement alignés */
.companion-preset-grid{align-items:stretch!important}
.companion-preset-card{display:flex!important;flex-direction:column!important;min-width:0!important;height:100%!important;box-sizing:border-box!important;gap:.75rem!important;padding:1.1rem!important}
.companion-preset-card h3{min-height:1.5em;margin:0!important;display:flex;align-items:center}
.companion-preset-card>p{min-height:3.6em;margin:0!important;line-height:1.45;color:#705d66}
.companion-preset-fields{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;grid-auto-rows:minmax(76px,auto)!important;gap:.75rem!important;align-content:start!important;flex:1 1 auto!important}
.companion-preset-fields label{display:grid!important;grid-template-rows:minmax(2.45em,auto) 42px!important;align-content:start!important;min-width:0!important;margin:0!important;line-height:1.25}
.companion-preset-fields input{display:block!important;width:100%!important;min-width:0!important;height:42px!important;min-height:42px!important;box-sizing:border-box!important;margin:0!important}
.companion-preset-save-button{display:flex!important;width:100%!important;min-height:48px!important;margin:auto 0 0!important;align-items:center!important;justify-content:center!important;align-self:stretch!important;padding:.72rem 1rem!important;font-weight:800!important;text-align:center!important}
@media(max-width:980px){.companion-preset-grid{grid-template-columns:1fr!important}.companion-preset-card>p{min-height:0}.companion-preset-fields{grid-template-columns:repeat(2,minmax(0,1fr))!important}}
@media(max-width:560px){.companion-preset-fields{grid-template-columns:1fr!important}.companion-preset-fields label{grid-template-rows:auto 42px!important}}

/* P51 — panneaux Affichage public et Réglages QA restaurés */
.companion-global-form{align-items:center!important}
.companion-secondary-settings{display:grid!important;grid-template-columns:minmax(0,1fr)!important;gap:1rem!important;margin:1.25rem 0!important}
.companion-option-panel{display:block!important;min-width:0!important;margin:0!important;padding:0!important;overflow:hidden!important;border:1px solid #e5d9df!important;border-radius:18px!important;background:#fff!important;box-shadow:0 10px 28px rgba(52,31,41,.08)!important}
.companion-option-header{display:grid!important;grid-template-columns:minmax(0,1fr) auto!important;gap:1rem!important;align-items:start!important;padding:1.15rem 1.2rem!important;background:linear-gradient(135deg,#fff,#fbf6f8)!important;border-bottom:1px solid #eee4e9!important}
.companion-option-header>div{min-width:0!important}
.companion-option-header .eyebrow{margin:0 0 .25rem!important;text-transform:uppercase!important;letter-spacing:.12em!important;font-size:.7rem!important;font-weight:800!important;color:#846372!important}
.companion-option-header h2{margin:0 0 .35rem!important;font-size:1.18rem!important;line-height:1.25!important;color:#4f2439!important}
.companion-option-header p:not(.eyebrow){max-width:900px!important;margin:0!important;color:#705d66!important;font-size:.86rem!important;line-height:1.48!important}
.companion-setting-state{display:inline-flex!important;flex:0 0 auto!important;align-items:center!important;justify-content:center!important;min-width:76px!important;padding:.44rem .68rem!important;border-radius:999px!important;font-size:.7rem!important;font-weight:900!important;text-transform:uppercase!important;letter-spacing:.035em!important}
.companion-setting-state.is-on{background:#e0f3e6!important;color:#28623b!important}
.companion-setting-state.is-off{background:#eee8eb!important;color:#66565e!important}
.companion-option-form{display:grid!important;gap:0!important;margin:0!important;padding:1rem 1.2rem 1.15rem!important}
.companion-option-row{display:grid!important;grid-template-columns:minmax(0,1fr) auto!important;gap:1rem!important;align-items:center!important;width:100%!important;min-width:0!important;margin:0!important;padding:.9rem 1rem!important;box-sizing:border-box!important;border:1px solid #eadde4!important;border-radius:13px!important;background:#fffafc!important;cursor:pointer!important}
.companion-option-copy{display:grid!important;min-width:0!important;gap:.22rem!important}
.companion-option-copy strong{font-size:.9rem!important;line-height:1.25!important;color:#59263f!important}
.companion-option-copy small{font-size:.77rem!important;font-weight:500!important;line-height:1.4!important;color:#79636e!important}
.companion-native-switch{position:relative!important;display:block!important;flex:0 0 auto!important;width:52px!important;height:30px!important}
.companion-native-switch>input{position:absolute!important;inset:0!important;width:100%!important;height:100%!important;margin:0!important;opacity:0!important;cursor:pointer!important;z-index:2!important}
.companion-native-switch>span{position:absolute!important;inset:0!important;border-radius:999px!important;background:#cfc4c9!important;box-shadow:inset 0 0 0 1px rgba(69,41,53,.08)!important;transition:background .16s ease!important}
.companion-native-switch>span::after{content:""!important;position:absolute!important;top:4px!important;left:4px!important;width:22px!important;height:22px!important;border-radius:50%!important;background:#fff!important;box-shadow:0 2px 7px rgba(45,27,35,.24)!important;transition:transform .16s ease!important}
.companion-native-switch>input:checked+span{background:#7f3155!important}
.companion-native-switch>input:checked+span::after{transform:translateX(22px)!important}
.companion-native-switch>input:focus-visible+span{outline:3px solid rgba(112,45,77,.24)!important;outline-offset:3px!important}
.companion-option-actions{display:flex!important;align-items:center!important;justify-content:flex-end!important;gap:1rem!important;margin-top:1rem!important;padding-top:1rem!important;border-top:1px solid #eee4e9!important}
.companion-option-actions>button{display:inline-flex!important;align-items:center!important;justify-content:center!important;min-width:220px!important;min-height:46px!important;margin:0!important}
.companion-qa-config-grid{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:.8rem!important;min-width:0!important}
.companion-qa-choice{display:grid!important;grid-template-columns:24px minmax(0,1fr)!important;gap:.75rem!important;align-items:start!important;min-width:0!important;margin:0!important;padding:.9rem 1rem!important;box-sizing:border-box!important;border:1px solid #eadde4!important;border-radius:13px!important;background:#fffafc!important;cursor:pointer!important}
.companion-qa-choice>input{display:block!important;width:22px!important;height:22px!important;min-width:22px!important;min-height:22px!important;margin:.05rem 0 0!important;accent-color:#7f3155!important}
.companion-qa-choice>span{display:grid!important;min-width:0!important;gap:.22rem!important}
.companion-qa-choice strong{font-size:.88rem!important;line-height:1.25!important;color:#59263f!important}
.companion-qa-choice small{font-size:.76rem!important;font-weight:500!important;line-height:1.4!important;color:#79636e!important}
.companion-qa-email-control{display:grid!important;grid-column:1/-1!important;grid-template-columns:minmax(220px,.65fr) minmax(280px,1.35fr)!important;gap:1rem!important;align-items:center!important;min-width:0!important;margin:0!important;padding:.9rem 1rem!important;box-sizing:border-box!important;border:1px solid #eadde4!important;border-radius:13px!important;background:#fff!important}
.companion-qa-email-control>span{display:grid!important;min-width:0!important;gap:.22rem!important}
.companion-qa-email-control strong{font-size:.86rem!important;color:#59263f!important}
.companion-qa-email-control small{font-size:.75rem!important;font-weight:500!important;line-height:1.35!important;color:#79636e!important}
.companion-qa-email-control input{display:block!important;width:100%!important;min-width:0!important;min-height:44px!important;margin:0!important;box-sizing:border-box!important}
.companion-qa-config-actions{justify-content:space-between!important}
.companion-qa-config-actions>span{max-width:620px!important;color:#79636e!important;font-size:.76rem!important;line-height:1.4!important}

.companion-qa-panel{margin:1.25rem 0;padding:1.25rem;border:1px solid #ded3d8;border-radius:18px;background:#fff;box-shadow:0 10px 28px rgba(52,31,41,.08)}
.companion-qa-panel.is-ok{border-color:#a9d5b8;background:linear-gradient(135deg,#fff,#f3fbf5)}
.companion-qa-panel.is-warning{border-color:#e1c987;background:linear-gradient(135deg,#fff,#fffaf0)}
.companion-qa-panel.is-critical{border-color:#df9a9f;background:linear-gradient(135deg,#fff,#fff5f5)}
.companion-qa-heading{display:flex;justify-content:space-between;gap:1rem;align-items:flex-start}
.companion-qa-heading h2{margin:.15rem 0 .35rem}
.companion-qa-heading .eyebrow{margin:0;text-transform:uppercase;letter-spacing:.12em;font-size:.72rem;color:#846372}
.companion-qa-heading-actions{display:grid;justify-items:stretch;gap:.55rem;min-width:180px}
.companion-qa-heading-actions form{margin:0}
.companion-qa-heading-actions button{width:100%}
.companion-qa-status{display:inline-flex;align-items:center;justify-content:center;min-width:150px;padding:.6rem .8rem;border-radius:999px;background:#eee7eb;color:#67545e;font-size:.78rem;font-weight:900;text-align:center}
.is-ok .companion-qa-status{background:#dff3e5;color:#255f39}
.is-warning .companion-qa-status{background:#fff0c7;color:#72551b}
.is-critical .companion-qa-status{background:#f9dadd;color:#842d35}
.companion-qa-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.75rem;margin:1rem 0}
.companion-qa-summary article{padding:.85rem;border:1px solid rgba(112,45,77,.1);border-radius:13px;background:rgba(255,255,255,.82);text-align:center}
.companion-qa-summary strong{display:block;font-size:1.35rem;color:#702d4d}
.companion-qa-summary span{font-size:.76rem;color:#76616b}
.companion-qa-meta{display:flex;gap:1.25rem;flex-wrap:wrap;padding:.75rem;border-radius:12px;background:rgba(255,255,255,.75)}
.companion-qa-meta p{margin:0;font-size:.82rem}
.companion-qa-anomalies{display:grid;gap:.65rem;margin-top:1rem}
.companion-qa-anomalies article{padding:.8rem .9rem;border-left:4px solid #d0ad55;border-radius:10px;background:#fff8e7}
.companion-qa-anomalies article.is-critical{border-left-color:#b33b45;background:#fff0f1}
.companion-qa-anomalies article strong{color:#59263f}
.companion-qa-anomalies article p{margin:.2rem 0 0;line-height:1.4}
.companion-qa-ok-message{margin:1rem 0 0;padding:.85rem;border-radius:11px;background:#e8f7ec;color:#28613a;font-weight:800}
.companion-qa-details{margin-top:1rem;padding:.8rem;border:1px solid #eadde4;border-radius:12px;background:#fff}
.companion-qa-details summary{cursor:pointer;font-weight:800;color:#652b49}
.companion-qa-details>div{display:grid;gap:.45rem;margin-top:.75rem}
.companion-qa-details p{margin:0;padding:.55rem .65rem;border-radius:8px;background:#f7f4f6;font-size:.8rem}
.companion-qa-details p.is-ok{background:#edf8f0;color:#285f3a}
.companion-qa-details p.is-warning{background:#fff6df;color:#70531b}
.companion-qa-details p.is-critical{background:#fff0f1;color:#822e36}


@media(max-width:760px){
  .companion-option-header{grid-template-columns:1fr!important}
  .companion-setting-state{width:100%!important;box-sizing:border-box!important}
  .companion-option-row{grid-template-columns:minmax(0,1fr) auto!important}
  .companion-qa-config-grid{grid-template-columns:1fr!important}
  .companion-qa-email-control{grid-column:auto!important;grid-template-columns:1fr!important;gap:.6rem!important}
  .companion-option-actions,.companion-qa-config-actions{display:grid!important;grid-template-columns:1fr!important;justify-items:stretch!important}
  .companion-option-actions>button{width:100%!important;min-width:0!important}
  .companion-qa-config-actions>span{order:2!important}
  .companion-qa-heading{display:grid!important}
  .companion-qa-status{width:100%!important;box-sizing:border-box!important}
  .companion-qa-heading-actions{width:100%!important;min-width:0!important}
  .companion-qa-summary{grid-template-columns:repeat(2,minmax(0,1fr))!important}
}
@media(max-width:460px){
  .companion-option-header,.companion-option-form{padding-left:.85rem!important;padding-right:.85rem!important}
  .companion-option-row{grid-template-columns:1fr!important}
  .companion-native-switch{justify-self:start!important}
  .companion-qa-summary{grid-template-columns:1fr 1fr!important}
}

/* source: assets/css/activity.css */
/* P45 — Bandeau Communauté compact, stylé et robuste. */
.member-activity-hero {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1.5rem;
    margin-bottom: 1.2rem;
    padding: 1.6rem;
    border: 1px solid #eadde4;
    border-radius: 22px;
    background: linear-gradient(135deg, #fff8fb, #f3e7ee);
    box-shadow: 0 14px 34px rgba(67, 34, 51, .08);
}
.member-activity-hero h1 { margin: .2rem 0 .45rem; }
.member-activity-hero p { max-width: 760px; margin: 0; color: #66515b; }
.member-activity-stats {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 1rem;
    margin: 1rem 0 1.2rem;
}
.member-activity-stats article {
    display: grid;
    grid-template-columns: auto 1fr;
    grid-template-areas: "icon value" "icon label";
    column-gap: .75rem;
    align-items: center;
    padding: 1rem;
    border: 1px solid #eadde4;
    border-radius: 17px;
    background: #fff;
    box-shadow: 0 10px 26px rgba(52, 31, 41, .06);
}
.member-activity-stats article > span {
    grid-area: icon;
    display: grid;
    place-items: center;
    width: 44px;
    height: 44px;
    border-radius: 13px;
    background: #f6edf2;
    color: #7a3152;
}
.member-activity-stats strong { grid-area: value; font-size: 1.45rem; color: #55243b; }
.member-activity-stats small { grid-area: label; color: #77636d; }
.member-activity-privacy {
    display: flex;
    gap: .8rem;
    align-items: flex-start;
    margin: 1.1rem 0;
    padding: 1rem 1.1rem;
    border-left: 4px solid #527b68;
    border-radius: 14px;
    background: #f2f8f5;
    color: #334b40;
}
.member-activity-privacy svg { flex: 0 0 auto; margin-top: .1rem; }
.member-activity-privacy p { margin: 0; }
.member-activity-section {
    margin: 1.2rem 0 2rem;
    padding: 1.25rem;
    border-radius: 20px;
    background: #fff;
    box-shadow: 0 12px 30px rgba(52, 31, 41, .07);
}
.member-activity-feed { display: grid; gap: .75rem; }
.member-activity-item {
    display: grid;
    grid-template-columns: 58px minmax(0, 1fr) auto;
    gap: .85rem;
    align-items: center;
    min-width: 0;
    padding: .85rem;
    border: 1px solid #eee3e8;
    border-radius: 15px;
    background: #fff;
    color: inherit;
    text-decoration: none;
    transition: transform .18s ease, border-color .18s ease, box-shadow .18s ease;
}
.member-activity-item:hover {
    transform: translateY(-2px);
    border-color: #d6b8c7;
    box-shadow: 0 10px 24px rgba(62, 33, 47, .08);
}
.member-activity-avatar {
    display: grid;
    place-items: center;
    width: 58px;
    height: 58px;
    max-width: 58px;
    max-height: 58px;
    overflow: hidden;
    border: 2px solid #fff;
    border-radius: 16px;
    background: #f7edf2;
    color: #7a3152;
    box-shadow: 0 4px 12px rgba(76, 38, 57, .12);
}
.member-activity-avatar img {
    display: block;
    width: 58px !important;
    height: 58px !important;
    max-width: 58px !important;
    max-height: 58px !important;
    object-fit: cover;
    object-position: center 25%;
}
.member-activity-copy { display: grid; gap: .16rem; min-width: 0; }
.member-activity-copy strong, .member-activity-copy small { overflow-wrap: anywhere; }
.member-activity-copy small { color: #75616b; }
.member-activity-label {
    width: max-content;
    max-width: 100%;
    padding: .18rem .48rem;
    border-radius: 999px;
    background: #f4e8ee;
    color: #71314f;
    font-size: .7rem;
    font-weight: 800;
}
.member-activity-item time { font-size: .78rem; color: #836f78; white-space: nowrap; }
.member-activity-empty { text-align: center; padding: 2rem 1rem; color: #6f5c65; }
.member-activity-empty svg { width: 42px; height: 42px; color: #8a4766; }

.dashboard-activity-preview {
    position: relative;
    overflow: hidden;
    margin: 1.25rem 0;
    padding: 1.25rem;
    border: 1px solid #eadde4;
    border-radius: 21px;
    background: linear-gradient(145deg, #ffffff 0%, #fff8fb 100%);
    box-shadow: 0 12px 30px rgba(52, 31, 41, .08);
}
.dashboard-activity-preview::before {
    content: "";
    position: absolute;
    top: -55px;
    right: -45px;
    width: 150px;
    height: 150px;
    border-radius: 50%;
    background: rgba(151, 75, 111, .07);
    pointer-events: none;
}
.dashboard-activity-preview .section-heading {
    position: relative;
    z-index: 1;
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 1rem;
    margin-bottom: 1rem;
}
.dashboard-activity-preview .section-heading h2 { margin-bottom: 0; }
.dashboard-activity-preview .section-heading > a {
    flex: 0 0 auto;
    font-weight: 800;
    color: #763554;
    text-decoration: none;
}
.dashboard-activity-preview .section-heading > a:hover { text-decoration: underline; }
.dashboard-activity-list {
    position: relative;
    z-index: 1;
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .8rem;
}
.dashboard-activity-item {
    display: grid;
    grid-template-columns: 54px minmax(0, 1fr);
    gap: .8rem;
    align-items: center;
    min-width: 0;
    min-height: 88px;
    padding: .8rem;
    border: 1px solid #eadde4;
    border-radius: 16px;
    color: inherit;
    text-decoration: none;
    background: rgba(255, 255, 255, .92);
    box-shadow: 0 5px 16px rgba(62, 33, 47, .05);
    transition: transform .18s ease, border-color .18s ease, box-shadow .18s ease;
}
.dashboard-activity-item:hover {
    transform: translateY(-2px);
    border-color: #cfaebe;
    box-shadow: 0 10px 22px rgba(62, 33, 47, .1);
}
.dashboard-activity-item.is-companion {
    border-color: #d7c3e7;
    background: linear-gradient(145deg, #fff, #faf6ff);
}
.dashboard-activity-icon {
    display: grid;
    place-items: center;
    width: 54px;
    height: 54px;
    max-width: 54px;
    max-height: 54px;
    overflow: hidden;
    border: 2px solid #fff;
    border-radius: 50%;
    background: #f4e8ee;
    color: #763554;
    box-shadow: 0 4px 12px rgba(76, 38, 57, .14);
}
.dashboard-activity-icon img {
    display: block;
    width: 54px !important;
    height: 54px !important;
    max-width: 54px !important;
    max-height: 54px !important;
    object-fit: cover;
    object-position: center 25%;
}
.dashboard-activity-icon svg { width: 25px; height: 25px; }
.dashboard-activity-copy {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: .16rem;
    min-width: 0;
}
.dashboard-activity-badge {
    justify-self: start;
    max-width: 100%;
    padding: .12rem .45rem;
    overflow: hidden;
    border-radius: 999px;
    background: #f4e8ee;
    color: #71314f;
    font-size: .66rem;
    font-weight: 800;
    line-height: 1.35;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.dashboard-activity-item.is-companion .dashboard-activity-badge {
    background: #eee5f7;
    color: #624178;
}
.dashboard-activity-copy strong {
    display: -webkit-box;
    overflow: hidden;
    color: #4f2b3d;
    font-size: .94rem;
    line-height: 1.3;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
}
.dashboard-activity-copy small {
    display: block;
    overflow: hidden;
    color: #76616b;
    font-size: .78rem;
    line-height: 1.35;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.dashboard-activity-empty { margin: 0; color: #74616a; }

@media (max-width: 900px) {
    .member-activity-stats { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .dashboard-activity-list { grid-template-columns: 1fr; }
}
@media (max-width: 640px) {
    .member-activity-hero { display: block; }
    .member-activity-hero .button { margin-top: 1rem; }
    .member-activity-stats { grid-template-columns: 1fr; }
    .member-activity-item { grid-template-columns: 52px minmax(0, 1fr); }
    .member-activity-avatar,
    .member-activity-avatar img {
        width: 52px !important;
        height: 52px !important;
        max-width: 52px !important;
        max-height: 52px !important;
    }
    .member-activity-item time { grid-column: 2; }
    .dashboard-activity-preview { padding: 1rem; }
    .dashboard-activity-preview .section-heading { align-items: flex-start; flex-direction: column; }
    .dashboard-activity-item { min-height: 82px; }
}

/* source: assets/css/mystery.css */
.mystery-foundation-hero{display:grid;grid-template-columns:minmax(0,1fr)auto;gap:2rem;align-items:center;padding:clamp(1.5rem,4vw,3.5rem);margin:1.5rem auto;max-width:1120px;border:1px solid rgba(163,126,54,.35);border-radius:28px;background:linear-gradient(135deg,rgba(17,28,52,.98),rgba(77,29,45,.94));color:#fff;box-shadow:0 24px 60px rgba(10,18,35,.2)}
.mystery-foundation-hero h1{font-size:clamp(2.2rem,6vw,4.8rem);margin:.2rem 0}.mystery-kicker{font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:#e6c77a}.mystery-subtitle{font-size:1.35rem;font-weight:700;color:#f2dfae}.mystery-foundation-hero aside{min-width:190px;padding:1.2rem;border:1px solid rgba(255,255,255,.24);border-radius:18px;background:rgba(255,255,255,.08)}.mystery-foundation-hero aside span,.mystery-foundation-hero aside strong{display:block}.mystery-foundation-card,.mystery-foundation-features{max-width:1120px;margin:1.5rem auto;padding:clamp(1.25rem,3vw,2rem);border-radius:22px;background:#fff;box-shadow:0 16px 44px rgba(20,31,52,.1)}.mystery-foundation-grid,.mystery-foundation-features{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem}.mystery-foundation-grid article,.mystery-foundation-features article{padding:1.2rem;border:1px solid #e7e0d2;border-radius:16px;background:#fcfaf6}.mystery-foundation-grid span,.mystery-foundation-grid small,.mystery-foundation-grid strong,.mystery-foundation-features span,.mystery-foundation-features strong{display:block}.mystery-foundation-grid strong{margin-top:1rem;color:#6f5130}.mystery-foundation-features{background:transparent;box-shadow:none;padding:0}.mystery-foundation-features strong{font-size:1.1rem;margin-bottom:.35rem}@media(max-width:760px){.mystery-foundation-hero{grid-template-columns:1fr}.mystery-foundation-hero aside{min-width:0}.mystery-foundation-grid,.mystery-foundation-features{grid-template-columns:1fr}}

/* DuoMystère Lot 3 — expérience membre solo */
.mystery-section,.mystery-history-head,.mystery-history-list,.mystery-case-hero,.mystery-case-notes,.mystery-play-shell,.mystery-result-hero,.mystery-result-card,.mystery-empty{max-width:1120px;margin:1.5rem auto}
.mystery-section{padding:clamp(1.2rem,3vw,2rem);border-radius:24px;background:#fff;box-shadow:0 16px 44px rgba(20,31,52,.09)}
.mystery-section-head{display:flex;align-items:flex-end;justify-content:space-between;gap:1rem;margin-bottom:1.2rem}.mystery-section-head h2{margin:.15rem 0 0;font-size:clamp(1.5rem,3vw,2.2rem)}.mystery-section-head>a{font-weight:800}
.mystery-session-grid,.mystery-case-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem}.mystery-session-grid article{display:flex;flex-direction:column;gap:.65rem;padding:1.2rem;border:1px solid #e6dfd2;border-radius:18px;background:#fcfaf6}.mystery-session-grid article>span{align-self:flex-start;padding:.28rem .6rem;border-radius:999px;background:#eee7d9;font-size:.8rem;font-weight:800}.mystery-session-grid h3{margin:0}.mystery-session-grid small{color:#6d6a64}.mystery-session-grid .button{margin-top:auto}
.mystery-case-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.mystery-case-tile{display:grid;grid-template-columns:145px minmax(0,1fr);gap:1.1rem;overflow:hidden;border:1px solid #e6dfd2;border-radius:20px;background:#fcfaf6}.mystery-case-tile-cover{display:grid;place-items:center;min-height:220px;background:linear-gradient(160deg,#142441,#6d2f42);color:#e8cb83;font-family:Georgia,serif;font-size:4rem}.mystery-case-tile-cover img{width:100%;height:100%;object-fit:cover}.mystery-case-tile>div:last-child{display:flex;flex-direction:column;padding:1.1rem 1.1rem 1.1rem 0}.mystery-case-tile h3{margin:.4rem 0}.mystery-case-tile p{margin:.2rem 0 .8rem}.mystery-case-badge{align-self:flex-start;padding:.25rem .58rem;border-radius:999px;background:#1d2c49;color:#fff;font-size:.78rem;font-weight:800}.mystery-case-tile-actions{display:flex;align-items:center;gap:.7rem;margin-top:auto;padding-top:1rem}.mystery-locked-label{font-weight:800;color:#7a5928}
.mystery-recent-list{display:grid;gap:.65rem}.mystery-recent-list article{display:flex;justify-content:space-between;gap:1rem;padding:.85rem 1rem;border-radius:14px;background:#f8f4ec}.mystery-recent-list article div{display:flex;gap:.75rem;align-items:center}.mystery-recent-list span{color:#6d5a40}
.mystery-empty{padding:clamp(1.5rem,4vw,3rem);text-align:center;border:1px dashed #cbbd9f;border-radius:22px;background:#fff}.mystery-empty h1,.mystery-empty h2,.mystery-empty h3{margin-top:0}
.mystery-case-hero{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(280px,.75fr);gap:2rem;align-items:stretch;padding:clamp(1.3rem,4vw,3rem);border-radius:28px;background:linear-gradient(135deg,#111d34,#5c283c);color:#fff;box-shadow:0 25px 65px rgba(10,18,35,.23)}.mystery-case-copy{display:flex;flex-direction:column;align-items:flex-start}.mystery-back-link{margin-bottom:1.5rem;color:#f1ddb0;font-weight:800}.mystery-case-hero h1{font-size:clamp(2.1rem,5vw,4rem);margin:.35rem 0}.mystery-case-summary{font-size:1.08rem;line-height:1.75}.mystery-case-facts{display:flex;flex-wrap:wrap;gap:.7rem;margin:1rem 0}.mystery-case-facts span{padding:.65rem .8rem;border:1px solid rgba(255,255,255,.22);border-radius:12px;background:rgba(255,255,255,.08)}.mystery-case-facts strong{display:block;color:#efcf83}.mystery-start-form{margin-top:1rem}.mystery-start-form button{min-height:52px;padding:0 1.4rem}.mystery-case-cover{min-height:390px;margin:0;overflow:hidden;border-radius:20px;border:1px solid rgba(255,255,255,.2);background:rgba(255,255,255,.08)}.mystery-case-cover img{width:100%;height:100%;object-fit:cover}.mystery-cover-placeholder{display:grid;place-items:center;width:100%;height:100%;min-height:390px;background:radial-gradient(circle at 50% 28%,rgba(232,203,131,.25),transparent 25%),linear-gradient(160deg,#273b60,#311b2a)}.mystery-cover-placeholder span{font:700 8rem Georgia,serif;color:#e7c97f}.mystery-lock-panel{margin-top:1rem;padding:1rem;border:1px solid rgba(255,255,255,.25);border-radius:16px;background:rgba(255,255,255,.08)}.mystery-lock-panel p{margin:.4rem 0 1rem}
.mystery-case-notes{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem}.mystery-case-notes article{padding:1.25rem;border-radius:18px;background:#fff;box-shadow:0 12px 35px rgba(20,31,52,.08)}.mystery-case-notes h2{font-size:1.15rem}
.mystery-play-shell{padding-bottom:2rem}.mystery-play-header{display:flex;justify-content:space-between;align-items:flex-end;gap:1.5rem;padding:1.2rem 1.4rem;border-radius:20px;background:#fff;box-shadow:0 12px 35px rgba(20,31,52,.08)}.mystery-play-header h1{margin:.25rem 0}.mystery-play-header p{margin:0;color:#665d50}.mystery-progress-box{min-width:240px}.mystery-progress-box strong,.mystery-progress-box span{display:block}.mystery-progress-box span{font-size:.88rem;color:#655f56}.mystery-progress-box>div{height:9px;margin-top:.5rem;overflow:hidden;border-radius:99px;background:#e8e1d5}.mystery-progress-box i{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#7b334c,#c79b45)}
.mystery-play-layout{display:grid;grid-template-columns:minmax(0,1fr) 330px;gap:1.25rem;margin-top:1.25rem;align-items:start}.mystery-story-card{position:relative;padding:clamp(1.25rem,4vw,2.5rem);border:1px solid #dfd5c3;border-radius:24px;background:linear-gradient(180deg,#fffdf8,#f8f2e8);box-shadow:0 22px 55px rgba(20,31,52,.12)}.mystery-story-card:before{content:"";position:absolute;inset:11px;pointer-events:none;border:1px solid rgba(128,97,47,.16);border-radius:17px}.mystery-story-card>*{position:relative}.mystery-card-meta{display:flex;flex-wrap:wrap;gap:.5rem}.mystery-card-meta span{padding:.28rem .62rem;border-radius:999px;background:#1d2c49;color:#fff;font-size:.78rem;font-weight:800}.mystery-card-meta .private{background:#7b334c}.mystery-story-card h2{font:700 clamp(1.7rem,4vw,2.7rem) Georgia,serif;color:#252238;margin:.8rem 0 1rem}.mystery-card-content{font-size:1.08rem;line-height:1.8;color:#302d2a}.mystery-story-card figure{margin:1rem 0;overflow:hidden;border-radius:16px}.mystery-story-card figure img{display:block;width:100%;max-height:520px;object-fit:contain;background:#161b25}.mystery-hints{margin:1.5rem 0;padding:1rem;border-radius:16px;background:#efe8d9}.mystery-hints h3{margin-top:0}.mystery-hint{margin:.65rem 0}.mystery-hint.revealed{padding:.8rem;border-left:4px solid #a87d33;background:#fff}.mystery-hint.revealed p{margin:.35rem 0}.mystery-hint.locked button{width:100%;text-align:left}.mystery-answer-form{display:grid;gap:1rem;margin-top:1.5rem}.mystery-answer-form fieldset{display:grid;gap:.7rem;padding:0;border:0}.mystery-answer-form legend{margin-bottom:.7rem;font-size:1.1rem;font-weight:800}.mystery-choice{display:flex;gap:.75rem;align-items:flex-start;padding:.9rem 1rem;border:1px solid #d6c9b4;border-radius:14px;background:#fff;cursor:pointer}.mystery-choice:has(input:checked){border-color:#7b334c;box-shadow:0 0 0 2px rgba(123,51,76,.12)}.mystery-choice input{margin-top:.25rem;transform:scale(1.2)}.mystery-answer-form textarea{width:100%;min-height:130px;padding:.8rem;border:1px solid #cdbfa8;border-radius:12px;background:#fff}.mystery-answer-form button{min-height:52px;font-size:1rem}
.mystery-companion-panel{position:sticky;top:92px;padding:1rem;border-radius:20px;background:#15233e;color:#fff;box-shadow:0 18px 46px rgba(15,26,48,.2)}.mystery-companion-head{display:flex;gap:.8rem;align-items:center}.mystery-companion-head>span{display:grid;place-items:center;width:42px;height:42px;border-radius:50%;background:#c39643;color:#15233e}.mystery-companion-head h2{margin:0;font-size:1.1rem}.mystery-companion-head p{margin:.15rem 0 0;color:#c9d1df;font-size:.82rem}.mystery-companion-messages{display:grid;gap:.75rem;max-height:430px;margin-top:1rem;overflow:auto}.mystery-companion-messages article{padding:.8rem;border-radius:13px;background:rgba(255,255,255,.09)}.mystery-companion-messages p{margin:0;line-height:1.55}.mystery-companion-messages time{display:block;margin-top:.35rem;color:#b8c2d2;font-size:.75rem}.mystery-companion-empty{color:#c9d1df}.mystery-session-details{margin-top:1rem;padding-top:1rem;border-top:1px solid rgba(255,255,255,.18)}.mystery-session-details summary{cursor:pointer;font-weight:800}.mystery-session-details .button-quiet{color:#fff;border-color:rgba(255,255,255,.35)}
.mystery-result-hero{text-align:center;padding:2rem;border-radius:24px;background:linear-gradient(135deg,#12213c,#6b2e45);color:#fff}.mystery-result-hero h1{margin:.4rem 0;font-size:clamp(2rem,5vw,3.8rem)}.mystery-result-card{padding:clamp(1.3rem,4vw,3rem);border-radius:24px;background:#fff;box-shadow:0 18px 50px rgba(20,31,52,.11)}.mystery-result-copy{text-align:center}.mystery-result-copy>span{font-weight:800;color:#7b334c}.mystery-result-copy h2{font:700 clamp(1.7rem,4vw,2.8rem) Georgia,serif}.mystery-result-copy p{max-width:760px;margin:0 auto;line-height:1.75}.mystery-result-scores{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.8rem;margin:2rem 0}.mystery-result-scores article{padding:1rem;text-align:center;border-radius:15px;background:#f5efe5}.mystery-result-scores strong,.mystery-result-scores span{display:block}.mystery-result-scores strong{font-size:1.8rem;color:#71334a}.mystery-result-disclaimer{padding:1rem;border-left:4px solid #b2873e;background:#fbf7ef}.mystery-result-actions{display:flex;justify-content:center;flex-wrap:wrap;gap:.8rem}
.mystery-history-head{display:flex;align-items:flex-end;justify-content:space-between;gap:1rem;padding:1.4rem;border-radius:20px;background:#fff}.mystery-history-head h1{margin:.2rem 0}.mystery-history-list{display:grid;gap:.8rem}.mystery-history-list>article{display:flex;justify-content:space-between;gap:1rem;align-items:center;padding:1.1rem 1.25rem;border:1px solid #e3dacb;border-radius:18px;background:#fff}.mystery-history-list h2{margin:.35rem 0}.mystery-history-list p{margin:.2rem 0;color:#6a655d}.mystery-history-list .status{display:inline-flex;padding:.24rem .56rem;border-radius:999px;background:#eee7d9;font-size:.78rem;font-weight:800}.mystery-history-list .status-completed{background:#dcebdd;color:#244b2b}.mystery-history-list .status-abandoned,.mystery-history-list .status-expired{background:#eee1e1;color:#6d2929}
@media(max-width:900px){.mystery-session-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.mystery-case-grid{grid-template-columns:1fr}.mystery-play-layout{grid-template-columns:1fr}.mystery-companion-panel{position:static}.mystery-case-hero{grid-template-columns:1fr}.mystery-case-cover{min-height:280px}.mystery-case-notes{grid-template-columns:1fr}}
@media(max-width:650px){.mystery-section-head,.mystery-play-header,.mystery-history-head,.mystery-history-list>article{align-items:stretch;flex-direction:column}.mystery-session-grid{grid-template-columns:1fr}.mystery-case-tile{grid-template-columns:1fr}.mystery-case-tile-cover{min-height:180px}.mystery-case-tile>div:last-child{padding:1rem}.mystery-progress-box{min-width:0}.mystery-result-scores{grid-template-columns:repeat(2,minmax(0,1fr))}.mystery-case-facts{display:grid;width:100%}.mystery-case-facts span{width:100%}}

/* DuoMystère Lot 4 — invitations et partie duo asynchrone */
.mystery-duo-dashboard-strip{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:1rem;align-items:center;padding:1rem 1.15rem;margin:1rem auto;max-width:1120px;border:1px solid #d8c9ab;border-radius:18px;background:linear-gradient(120deg,#fff9eb,#f2e7d1)}
.mystery-duo-dashboard-strip strong,.mystery-duo-dashboard-strip span{display:block}.mystery-duo-dashboard-strip span{margin-top:.2rem;color:#665d50}.mystery-duo-dashboard-strip .button{white-space:nowrap}
.mystery-duo-invite-panel{margin-top:1.25rem;padding:1.15rem;border:1px solid rgba(255,255,255,.25);border-radius:18px;background:rgba(255,255,255,.08)}.mystery-duo-invite-panel h2{margin-top:0}.mystery-duo-invite-form{display:grid;grid-template-columns:minmax(180px,.8fr) minmax(220px,1.2fr) auto;gap:.7rem;align-items:end}.mystery-duo-invite-form label{display:grid;gap:.35rem;font-weight:800}.mystery-duo-invite-form select,.mystery-duo-invite-form input{min-height:46px;padding:.7rem;border:1px solid #c9bea9;border-radius:11px;background:#fff}.mystery-duo-invite-form button{min-height:46px}
.mystery-invitations-layout{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.mystery-invitation-list{display:grid;gap:.75rem}.mystery-invitation-card{padding:1rem;border:1px solid #e1d8c8;border-radius:16px;background:#fcfaf6}.mystery-invitation-card.is-received{border-left:5px solid #7b334c}.mystery-invitation-card h3{margin:.1rem 0 .35rem}.mystery-invitation-card p{margin:.35rem 0}.mystery-invitation-card small{color:#6a6258}.mystery-invitation-actions{display:flex;flex-wrap:wrap;gap:.6rem;margin-top:.8rem}.mystery-invitation-focus{scroll-margin-top:100px;box-shadow:0 0 0 3px rgba(195,150,67,.22)}
.mystery-duo-play-layout{display:grid;grid-template-columns:minmax(0,1fr) 330px;gap:1.25rem;margin-top:1.25rem;align-items:start}.mystery-story-card.is-private-card{border-color:#a86a7d;background:linear-gradient(180deg,#fffafc,#f8edf1)}.mystery-story-card.is-common-decision{border-color:#c79b45;background:linear-gradient(180deg,#fffdf5,#f7efd9)}.mystery-story-image{margin:1rem 0;overflow:hidden;border-radius:16px;background:#161b25}img.mystery-story-image{display:block;width:100%;max-height:520px;object-fit:contain;margin:1rem auto}.mystery-story-image img{display:block;width:100%;max-height:520px;object-fit:contain;margin:auto}.mystery-story-content{font-size:1.08rem;line-height:1.8;color:#302d2a;white-space:pre-line}.mystery-waiting-card{padding:clamp(1.4rem,4vw,2.6rem);border:1px dashed #b8a98f;border-radius:22px;background:#fffdf8;text-align:center}.mystery-waiting-card h2{font-family:Georgia,serif}.mystery-waiting-card p{max-width:620px;margin:.6rem auto;line-height:1.7}.mystery-decision-conflict{margin:1rem 0;padding:1rem;border-left:5px solid #aa6f25;border-radius:12px;background:#fff3d6}.mystery-decision-conflict strong{display:block;margin-bottom:.35rem}.mystery-duo-partner-actions{display:grid;gap:.6rem;margin-top:1rem}.mystery-duo-partner-actions .button{justify-content:center}.mystery-duo-timeline{display:grid;gap:.65rem;margin-top:1rem}.mystery-duo-timeline article{padding:.75rem;border-radius:12px;background:rgba(255,255,255,.09)}.mystery-duo-timeline strong,.mystery-duo-timeline span{display:block}.mystery-duo-timeline span{margin-top:.2rem;color:#ccd4e3;font-size:.86rem}.mystery-turn-badge{display:inline-flex;align-items:center;gap:.35rem;padding:.35rem .65rem;border-radius:999px;background:#e8cb83;color:#17233d;font-size:.82rem;font-weight:900}.mystery-turn-badge.is-waiting{background:#e7e9ee;color:#4a5264}.mystery-partner-summary{display:grid;grid-template-columns:auto minmax(0,1fr);gap:.8rem;align-items:center;padding:.8rem;border-radius:14px;background:rgba(255,255,255,.08)}.mystery-partner-summary>span{display:grid;place-items:center;width:42px;height:42px;border-radius:50%;background:#c39643;color:#15233e;font-weight:900}.mystery-partner-summary strong,.mystery-partner-summary small{display:block}.mystery-partner-summary small{color:#cbd4e3}.mystery-duo-result-stats{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem;margin-top:1rem}.mystery-duo-result-stats div{padding:.9rem;border-radius:14px;background:#f5efe4;text-align:center}.mystery-duo-result-stats strong{display:block;font-size:1.5rem;color:#71364a}.mystery-duo-result-stats span{font-size:.85rem;color:#665d50}
@media(max-width:900px){.mystery-duo-play-layout{grid-template-columns:1fr}.mystery-duo-play-layout .mystery-companion-panel{position:static}.mystery-duo-invite-form{grid-template-columns:1fr 1fr}.mystery-duo-invite-form button{grid-column:1/-1}.mystery-invitations-layout{grid-template-columns:1fr}}
@media(max-width:620px){.mystery-duo-dashboard-strip,.mystery-duo-invite-form{grid-template-columns:1fr}.mystery-duo-dashboard-strip .button{width:100%;justify-content:center}.mystery-duo-result-stats{grid-template-columns:1fr 1fr}.mystery-invitation-actions{display:grid}.mystery-invitation-actions .button,.mystery-invitation-actions button{width:100%}}

/* DuoMystère 1.20 — sélection Premium et bibliothèque éditoriale */
.mystery-library-note{display:grid;grid-template-columns:minmax(240px,.7fr) minmax(0,1.3fr);gap:1.25rem;align-items:center;max-width:1120px;margin:1.5rem auto;padding:1.25rem 1.5rem;border:1px solid #d7c7a8;border-radius:22px;background:linear-gradient(120deg,#fffaf0,#efe5d3);box-shadow:0 12px 34px rgba(50,38,23,.08)}
.mystery-library-note h2{margin:.2rem 0;font:700 clamp(1.35rem,3vw,2rem) Georgia,serif;color:#3d2e28}.mystery-library-note p{margin:0;line-height:1.75;color:#5d5349}
.mystery-studio-badge.catalog-active{background:#dcebdd;color:#28522f}.mystery-studio-badge.catalog-library{background:#ece3d4;color:#684e2f}.mystery-studio-badge.catalog-queued{background:#dfe7f5;color:#2d4772}.mystery-studio-badge.catalog-retired{background:#ece6e6;color:#6d3434}
@media(max-width:760px){.mystery-library-note{grid-template-columns:1fr}}

/* DuoMystère 1.20.1 — découverte Free + carrousel Premium */
.mystery-catalog-section{overflow:hidden}
.mystery-catalog-showcase{display:grid;grid-template-columns:minmax(280px,.82fr) minmax(0,1.18fr);gap:1.25rem;align-items:stretch}
.mystery-discovery-feature,.mystery-premium-carousel-shell{min-width:0;border:1px solid #dfd4c0;border-radius:22px;background:linear-gradient(180deg,#fffdf8,#f7f0e4);overflow:hidden}
.mystery-discovery-feature{display:flex;flex-direction:column;padding:1rem}
.mystery-discovery-feature>header,.mystery-premium-carousel-head{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:.85rem}
.mystery-discovery-feature>header{display:block}.mystery-discovery-feature>header h3,.mystery-premium-carousel-head h3{margin:.55rem 0 0;font:700 clamp(1.25rem,2.4vw,1.75rem) Georgia,serif;color:#30283a}
.mystery-discovery-cover{display:block;aspect-ratio:2.8/4;max-height:500px;overflow:hidden;border-radius:16px;background:linear-gradient(160deg,#142441,#6d2f42);box-shadow:0 14px 34px rgba(22,29,45,.18)}
.mystery-discovery-cover img,.mystery-premium-cover img{display:block;width:100%;height:100%;object-fit:cover}
.mystery-discovery-cover>span:not(.mystery-premium-lock),.mystery-premium-cover>span:not(.mystery-premium-lock){display:grid;place-items:center;width:100%;height:100%;font:700 6rem Georgia,serif;color:#e8cb83}
.mystery-discovery-copy{display:flex;flex:1;flex-direction:column;gap:.55rem;padding:.95rem .2rem .2rem}.mystery-discovery-copy h3{margin:0;font-size:1.45rem}.mystery-discovery-copy p{margin:0;line-height:1.65;color:#554f47}.mystery-discovery-copy small{color:#6d665d}.mystery-discovery-copy .button{align-self:flex-start;margin-top:auto}
.mystery-premium-carousel-shell{padding:1rem;background:linear-gradient(145deg,#111d34,#4f2639);color:#fff}.mystery-premium-carousel-shell .mystery-case-badge{background:#d2a84f;color:#17233c}.mystery-premium-carousel-head h3{color:#fff}.mystery-carousel-controls{display:flex;gap:.55rem}.mystery-carousel-controls button{display:grid;place-items:center;width:46px;height:46px;padding:0;border:1px solid rgba(255,255,255,.35);border-radius:50%;background:rgba(255,255,255,.1);color:#fff;font-size:2rem;line-height:1;cursor:pointer}.mystery-carousel-controls button:hover,.mystery-carousel-controls button:focus-visible{background:#fff;color:#1b2843;outline:3px solid rgba(232,203,131,.45);outline-offset:2px}
.mystery-premium-carousel{position:relative}.mystery-premium-carousel-viewport{overflow:hidden;border-radius:17px}.mystery-premium-carousel-track{display:flex;transform:translate3d(0,0,0);transition:transform .62s cubic-bezier(.22,.75,.2,1);will-change:transform}.mystery-premium-slide{display:grid;grid-template-columns:minmax(220px,.9fr) minmax(0,1.1fr);flex:0 0 100%;min-width:100%;overflow:hidden;background:#fff;color:#2e2b28}.mystery-premium-cover{position:relative;display:block;min-height:430px;background:linear-gradient(160deg,#20365e,#6d2f42)}.mystery-premium-cover:focus-visible{outline:4px solid #e7c873;outline-offset:-4px}.mystery-premium-lock{position:absolute;right:14px;bottom:14px;padding:.48rem .78rem;border:1px solid rgba(255,255,255,.65);border-radius:999px;background:rgba(20,28,45,.9);color:#fff;font-weight:900;letter-spacing:.05em;text-transform:uppercase;box-shadow:0 8px 24px rgba(0,0,0,.28)}.mystery-premium-carousel-shell.is-preview .mystery-premium-cover:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 52%,rgba(8,14,27,.58))}.mystery-premium-slide-copy{display:flex;flex-direction:column;gap:.65rem;padding:clamp(1.1rem,3vw,2rem)}.mystery-premium-slide-copy>span{font-weight:800;color:#7a5928}.mystery-premium-slide-copy h4{margin:0;font:700 clamp(1.7rem,3vw,2.4rem) Georgia,serif;color:#282135}.mystery-premium-slide-copy p{margin:0;line-height:1.7;color:#575149}.mystery-premium-slide-copy .button{align-self:flex-start;margin-top:auto}.mystery-carousel-status{display:flex;justify-content:center;margin-top:.8rem;font-weight:800;color:#f3dfac;letter-spacing:.05em}
@media (prefers-reduced-motion:reduce){.mystery-premium-carousel-track{transition:none}}
@media(max-width:900px){.mystery-catalog-showcase{grid-template-columns:1fr}.mystery-discovery-feature{display:grid;grid-template-columns:minmax(180px,.7fr) minmax(0,1.3fr);gap:1rem}.mystery-discovery-feature>header{grid-column:1/-1}.mystery-discovery-copy{padding:.3rem 0}.mystery-discovery-cover{max-height:430px}.mystery-premium-slide{grid-template-columns:minmax(180px,.75fr) minmax(0,1.25fr)}}
@media(max-width:640px){.mystery-discovery-feature{display:flex}.mystery-discovery-cover{max-height:none}.mystery-premium-carousel-head{align-items:flex-start}.mystery-carousel-controls button{width:42px;height:42px}.mystery-premium-slide{display:flex;flex-direction:column}.mystery-premium-cover{min-height:0;aspect-ratio:3/4}.mystery-premium-slide-copy{min-height:270px}.mystery-section-head{align-items:flex-start;flex-direction:column}}


/* DuoMystère 1.24.0 — bibliothèque et chapitres V2 */
.mystery-library-count{font-weight:900;color:#775719}.mystery-library-empty{padding:1.2rem;border:1px dashed #c6b48f;border-radius:16px;background:#fbf8f1}.mystery-library-empty p{margin:.35rem 0 0}.mystery-library-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}.mystery-library-card{display:grid;grid-template-columns:150px minmax(0,1fr);gap:1rem;padding:1rem;border:1px solid #e0d8ca;border-radius:19px;background:#fcfaf6}.mystery-library-cover{display:grid;place-items:center;min-height:220px;overflow:hidden;border-radius:14px;background:linear-gradient(160deg,#142441,#6d2f42);color:#efd087;font-weight:900;font-size:2rem}.mystery-library-cover img{width:100%;height:100%;object-fit:cover}.mystery-library-card h3{margin:.4rem 0}.mystery-library-badge{font-size:.76rem;font-weight:900;text-transform:uppercase;color:#7a5820}.mystery-library-stats{display:flex;flex-wrap:wrap;gap:.35rem;margin:.7rem 0 1rem;padding:0;list-style:none}.mystery-library-stats li{padding:.3rem .55rem;border-radius:999px;background:#ece5d8;font-size:.78rem}.mystery-case-chapter-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}.mystery-case-chapter-grid article{display:grid;grid-template-columns:180px minmax(0,1fr);overflow:hidden;border:1px solid #e2d9ca;border-radius:18px;background:#fcfaf6}.mystery-case-chapter-grid figure{display:grid;place-items:center;min-height:190px;margin:0;background:#17243e;color:#e9ca80;font-size:3rem;font-weight:900}.mystery-case-chapter-grid img{width:100%;height:100%;object-fit:cover}.mystery-case-chapter-grid article>div{padding:1rem}.mystery-case-chapter-grid article>div>span{font-size:.78rem;font-weight:900;text-transform:uppercase;color:#7a5820}.mystery-case-chapter-grid h3{margin:.35rem 0}.mystery-case-chapter-grid small{font-weight:800;color:#66553b}@media(max-width:760px){.mystery-library-grid,.mystery-case-chapter-grid{grid-template-columns:1fr}.mystery-library-card,.mystery-case-chapter-grid article{grid-template-columns:110px minmax(0,1fr)}.mystery-library-cover,.mystery-case-chapter-grid figure{min-height:165px}}

/* DuoLocal 1.34.6 — menu Administration organisé par secteurs */
body.admin-page .admin-nav-dropdown .nav-dropdown-panel.admin-sector-menu {
  width: min(760px, calc(100vw - 32px));
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
  padding: 14px;
  align-items: start;
}
body.admin-page .admin-nav-dropdown .admin-nav-sector {
  min-width: 0;
  display: grid;
  gap: 3px;
  align-content: start;
  padding: 10px;
  border: 1px solid rgba(148, 163, 184, .22);
  border-radius: 12px;
  background: rgba(15, 23, 42, .34);
}
body.admin-page .admin-nav-dropdown .admin-nav-sector-title {
  display: block;
  margin: 0 0 5px;
  padding: 0 4px 7px;
  border-bottom: 1px solid rgba(148, 163, 184, .24);
  color: #f8fafc;
  font-size: .74rem;
  font-weight: 800;
  letter-spacing: .055em;
  line-height: 1.2;
  text-transform: uppercase;
}
body.admin-page .admin-nav-dropdown .admin-nav-sector > a {
  width: 100%;
  min-height: 34px;
  padding: 7px 8px;
  border-radius: 8px;
}
body.admin-page .admin-nav-dropdown .admin-nav-sector > a:hover,
body.admin-page .admin-nav-dropdown .admin-nav-sector > a:focus-visible {
  background: rgba(255, 255, 255, .09);
}
@media (max-width: 900px) {
  body.admin-page .admin-nav-dropdown .nav-dropdown-panel.admin-sector-menu {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
@media (max-width: 620px) {
  body.admin-page .admin-nav-dropdown .nav-dropdown-panel.admin-sector-menu {
    width: min(420px, calc(100vw - 20px));
    grid-template-columns: 1fr;
    padding: 10px;
  }
}

/* DuoLocal 1.34.7 — intitulés longs contenus dans les secteurs admin */
body.admin-page .admin-nav-dropdown .admin-nav-sector > a {
  white-space: normal;
  overflow-wrap: anywhere;
  word-break: normal;
  line-height: 1.25;
  align-items: flex-start;
}
body.admin-page .admin-nav-dropdown .admin-nav-sector {
  overflow: hidden;
}


/* DuoMystère 1.34.28 — correction ciblée sans écraser la grille */
.mystery-catalog-showcase{
    align-items:start;
}

.mystery-discovery-feature{
    align-self:start;
}

/* Affaire Free : on garde la structure d'origine, seule l'affiche est réduite. */
@media(min-width:901px){
    .mystery-discovery-cover{
        width:min(100%,275px);
        max-height:none;
        margin-left:auto;
        margin-right:auto;
    }
}

/* Sélection Premium : couverture verticale équilibrée sans modifier toute la page. */
@media(min-width:901px){
    .mystery-premium-slide{
        grid-template-columns:minmax(240px,300px) minmax(0,1fr);
        min-height:0;
    }

    .mystery-premium-cover{
        min-height:0;
        aspect-ratio:3/4;
    }
}

@media(max-width:640px){
    .mystery-discovery-cover{
        width:min(100%,300px);
        margin-left:auto;
        margin-right:auto;
    }
}


/* DuoMystère 1.34.32 — centrage réel de la Serre Écarlate */
.mystery-cover-serre-ecarlate img{
    object-position:62% 61% !important;
}

/* Les Rendez-vous DuoLocal — événements officiels créés exclusivement par l’administration */
.p8-official-tag{display:inline-flex;align-items:center;min-height:30px;padding:5px 11px;border-radius:999px;background:#8b1748;color:#fff;font-size:.78rem;font-weight:900;letter-spacing:.02em;text-transform:none}.p8-event-card.is-official{border:2px solid #b4235a;background:linear-gradient(180deg,#fff8fb 0,#fff 42%);box-shadow:0 14px 34px rgba(139,23,72,.14)}.p8-event-card.is-official .p8-card-link{background:#8b1748}.p8-event-card.is-official .p8-card-link:hover{background:#6f1038}
