/* LoveMe - feuille de style unique (aucune compilation necessaire) */
:root{
  --primary:#BE2F5E; --primary-dark:#9A2149; --blush:#FBE3E6; --rose:#F4C2C9; --wine:#7A1F3F;
  --apricot:#F2A65A; --coral:#E4546E; --bg:#FFFAF6; --ink:#2D1A26; --muted:#6F5B66;
  --line:#F1E4E6; --field:#E7D3D8; --white:#FFFFFF; --ok:#2E7D4F; --radius:20px;
  --surface:#FFFFFF; --surface-pink:#FFF4F6;
  --ok-bg:#E7F4EC; --ok-bg2:#D4EEDD; --ok-border:#CDE8D7; --ok-ink:#1F5A38;
  --warn-bg:#FFF8EF; --warn-bg2:#FCEBD7; --warn-border:#F6D5B0; --warn-ink:#8A4B12;
  color-scheme:light;
  --display:'Fraunces',Georgia,serif; --body:'DM Sans',system-ui,-apple-system,sans-serif;
}
*{box-sizing:border-box}
html,body{margin:0}
body{font-family:var(--body);background:var(--bg);color:var(--ink);font-size:16px;line-height:1.5;-webkit-font-smoothing:antialiased}
a{color:var(--primary)} a:hover{color:var(--primary-dark)}
h1,h2,h3{font-family:var(--display);font-weight:600;letter-spacing:-.3px;line-height:1.15;margin:0}
h1{font-size:34px} h2{font-size:22px} h3{font-size:18px}
p{margin:0}
img{max-width:100%;display:block}
.muted{color:var(--muted)} .small{font-size:14px} .xs{font-size:12.5px}
.stack{display:flex;flex-direction:column;gap:16px} .stack-sm{display:flex;flex-direction:column;gap:8px}
.row{display:flex;gap:12px;align-items:center;flex-wrap:wrap} .between{justify-content:space-between}
.grid-2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.grid-3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:20px 24px}
.hidden{display:none!important}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}

/* Boutons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:46px;padding:0 20px;border-radius:999px;border:1.5px solid transparent;font:inherit;font-weight:700;font-size:15px;text-decoration:none;cursor:pointer;background:var(--primary);color:#fff;transition:background .15s}
.btn:hover{background:var(--primary-dark);color:#fff}
.btn-dark{background:var(--ink)} .btn-dark:hover{background:#000}
.btn-ghost{background:var(--surface);color:var(--ink);border-color:var(--field)} .btn-ghost:hover{background:var(--blush);color:var(--ink)}
.btn-danger{background:var(--surface);color:var(--primary-dark);border-color:var(--primary-dark)} .btn-danger:hover{background:var(--primary-dark);color:#fff}
.btn-block{width:100%} .btn-sm{min-height:38px;padding:0 14px;font-size:14px}
.btn-round{width:64px;height:64px;padding:0;border-radius:50%} .btn-round.big{width:76px;height:76px}
.link-btn{background:none;border:none;padding:0;font:inherit;color:var(--primary);cursor:pointer;text-decoration:underline}

/* Formulaires */
label.field{display:flex;flex-direction:column;gap:6px;font-size:13px;font-weight:700;color:var(--muted)}
input[type=text],input[type=search],input[type=email],input[type=password],input[type=date],input[type=number],select,textarea{width:100%;min-height:48px;border:1px solid var(--field);border-radius:12px;padding:10px 14px;font:inherit;font-size:16px;font-weight:400;color:var(--ink);background:var(--bg)}
textarea{min-height:110px;resize:vertical}
input:focus,select:focus,textarea:focus{outline:2px solid var(--rose);border-color:var(--primary)}
.check{display:flex;gap:10px;align-items:flex-start;font-size:14px;font-weight:400;color:var(--ink)}
.check input{margin-top:3px;width:18px;height:18px;accent-color:var(--primary);flex-shrink:0}
.error{color:var(--primary-dark);font-size:13px;font-weight:500}

/* Messages flash */
.flash{border-radius:14px;padding:12px 16px;font-size:15px;margin-bottom:16px}
.flash-ok{background:var(--ok-bg);color:var(--ok-ink)} .flash-err{background:var(--blush);color:var(--wine)}

/* Chips */
.chip{display:inline-flex;align-items:center;gap:6px;background:var(--blush);color:var(--wine);padding:6px 12px;border-radius:999px;font-size:13px;font-weight:500}
.chip-dark{background:var(--ink);color:var(--bg)} .chip-apricot{background:var(--apricot);color:var(--ink)}
.badge{background:var(--primary);color:#fff;font-size:12px;font-weight:700;padding:2px 8px;border-radius:999px}

/* Logo */
.logo{display:flex;align-items:center;gap:10px;text-decoration:none;color:var(--ink);font-family:var(--display);font-weight:600;font-size:22px;white-space:nowrap}
.logo svg{flex-shrink:0}

/* Mise en page membre : menu lateral + contenu */
.app{display:flex;min-height:100vh}
.sidebar{width:248px;flex-shrink:0;background:var(--surface);border-right:1px solid var(--line);padding:28px 16px;display:flex;flex-direction:column;gap:32px;position:sticky;top:0;height:100vh}
.nav{display:flex;flex-direction:column;gap:4px}
.nav a{display:flex;align-items:center;gap:12px;min-height:48px;padding:0 12px;border-radius:12px;color:var(--ink);font-weight:500;text-decoration:none}
.nav a:hover{background:var(--bg)}
.nav a.active{background:var(--blush);color:var(--wine);font-weight:700}
.nav a .grow{flex-grow:1}
.side-bottom{margin-top:auto;display:flex;flex-direction:column;gap:2px;font-size:14px}
.side-bottom a,.side-bottom button{display:flex;align-items:center;min-height:40px;padding:0 12px;color:var(--muted);text-decoration:none;background:none;border:none;font:inherit;cursor:pointer;border-radius:10px;text-align:left}
.side-bottom a.active{background:var(--blush);color:var(--wine);font-weight:700}
.promo{display:flex;flex-direction:column;gap:6px;margin-bottom:10px;padding:16px;border-radius:16px;background:var(--ink);color:var(--bg)!important;text-decoration:none}
.promo strong{display:flex;align-items:center;gap:8px;font-size:15px}
.promo span{font-size:13px;color:var(--line)}
.main{flex-grow:1;min-width:0;padding:32px 48px 48px}
.main-narrow{max-width:760px}
.page-head{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-bottom:24px}
.tabbar{display:none}

/* Decouvrir */
.discover{display:flex;gap:32px;align-items:stretch}
.photo-main{width:440px;flex-shrink:0;aspect-ratio:3/4;border-radius:28px;background:var(--rose);overflow:hidden;position:relative;box-shadow:0 16px 36px rgba(120,30,60,.14)}
.photo-main img{width:100%;height:100%;object-fit:cover}
.photo-dots{position:absolute;left:16px;right:16px;top:16px;display:flex;gap:6px}
.photo-dots span{flex-grow:1;height:4px;border-radius:2px;background:rgba(255,255,255,.5)} .photo-dots span.on{background:var(--surface)}
.photo-nav{position:absolute;top:50%;width:44px;height:44px;margin-top:-22px;border-radius:50%;border:none;background:rgba(255,255,255,.9);cursor:pointer;display:flex;align-items:center;justify-content:center}
.photo-nav.prev{left:14px} .photo-nav.next{right:14px}
.placeholder{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;color:var(--wine);background:var(--rose);width:100%;height:100%;font-size:13px;font-weight:500}
.details{flex-grow:1;display:flex;flex-direction:column;gap:18px;min-width:0}
.name{font-family:var(--display);font-size:44px;font-weight:600;letter-spacing:-.5px}
.name small{font-family:var(--body);font-size:26px;color:var(--muted);font-weight:400;margin-left:8px}
.actions{margin-top:auto;display:flex;align-items:center;gap:14px;flex-wrap:wrap}
.filters{display:flex;gap:8px;flex-wrap:wrap;align-items:flex-end}
.filters label{font-size:12px}
.filters input,.filters select{min-height:40px;padding:6px 10px;font-size:14px;width:auto}
details.panel{background:var(--surface);border:1px solid var(--line);border-radius:16px;padding:12px 16px}
details.panel summary{cursor:pointer;font-weight:700}

/* Match */
.overlay{position:fixed;inset:0;background:rgba(45,26,38,.6);display:flex;align-items:center;justify-content:center;z-index:50;padding:16px}
.modal{background:var(--surface);border-radius:28px;padding:32px;max-width:420px;width:100%;text-align:center;display:flex;flex-direction:column;gap:16px;align-items:center}

/* Avatars */
.avatar{width:48px;height:48px;border-radius:50%;background:var(--rose);color:var(--wine);display:flex;align-items:center;justify-content:center;font-weight:700;flex-shrink:0;overflow:hidden}
.avatar img{width:100%;height:100%;object-fit:cover}
.avatar.lg{width:64px;height:64px;font-size:20px} .avatar.ring{border:3px solid var(--apricot)}

/* Messages */
.inbox{display:flex;border:1px solid var(--line);border-radius:24px;overflow:hidden;background:var(--surface);min-height:70vh}
.inbox-list{width:340px;flex-shrink:0;border-right:1px solid var(--line);overflow-y:auto}
.conv{display:flex;align-items:center;gap:12px;padding:12px 16px;text-decoration:none;color:var(--ink);border-bottom:1px solid var(--line)}
.conv:hover,.conv.active{background:var(--blush)}
.conv .txt{flex-grow:1;min-width:0;display:flex;flex-direction:column;gap:2px}
.conv .last{font-size:14px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.conv .last.unread{color:var(--ink);font-weight:700}
.dot{width:10px;height:10px;border-radius:50%;background:var(--primary);flex-shrink:0}
.new-matches{display:flex;gap:14px;overflow-x:auto;padding:4px 16px 16px}
.new-matches a{display:flex;flex-direction:column;align-items:center;gap:6px;text-decoration:none;color:var(--ink);font-size:13px;font-weight:500}
.chat{flex-grow:1;display:flex;flex-direction:column;min-width:0;background:var(--bg)}
.chat-head{display:flex;align-items:center;gap:12px;padding:14px 20px;background:var(--surface);border-bottom:1px solid var(--line)}
.chat-body{flex-grow:1;overflow-y:auto;padding:20px;display:flex;flex-direction:column;gap:10px;max-height:60vh}
.bubble{max-width:75%;padding:10px 14px;border-radius:18px 18px 18px 6px;background:var(--surface);border:1px solid var(--line);white-space:pre-wrap;word-wrap:break-word}
.bubble.mine{align-self:flex-end;background:var(--primary);color:#fff;border-color:var(--primary);border-radius:18px 18px 6px 18px}
.bubble .meta{display:block;font-size:11px;opacity:.75;margin-top:4px;text-align:right}
.chat-form{display:flex;gap:10px;padding:14px 20px;background:var(--surface);border-top:1px solid var(--line)}
.chat-form textarea{min-height:48px;height:48px;border-radius:24px;padding:11px 18px;line-height:24px;resize:none;overflow-y:hidden}
.safety{margin:0 20px 12px;padding:10px 14px;background:var(--surface);border:1px solid var(--line);border-radius:14px;font-size:13px;color:var(--muted)}

/* Profil / photos */
.photos-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.photo-tile{position:relative;aspect-ratio:3/4;border-radius:18px;overflow:hidden;background:var(--blush)}
.photo-tile img{width:100%;height:100%;object-fit:cover}
.photo-tile .status{position:absolute;left:8px;top:8px;background:var(--surface);font-size:11px;font-weight:700;padding:3px 8px;border-radius:999px}
.photo-tile .tools{position:absolute;left:8px;right:8px;bottom:8px;display:flex;gap:6px}
.photo-tile .tools button{flex:1;min-height:32px;border:none;border-radius:10px;background:rgba(255,255,255,.92);font:inherit;font-size:12px;font-weight:700;cursor:pointer}
.photo-add{display:flex;align-items:center;justify-content:center;border:1.5px dashed var(--rose);background:var(--surface);color:var(--primary);aspect-ratio:3/4;border-radius:18px;cursor:pointer;flex-direction:column;gap:6px;font-size:13px;font-weight:700}

/* Offres */
.plans{display:flex;gap:20px;flex-wrap:wrap}
.plan{position:relative;flex:1 1 220px;background:var(--surface);border:1px solid var(--field);border-radius:22px;padding:26px 24px 22px;display:flex;flex-direction:column;gap:6px}
.plan.featured{border:2px solid var(--primary);box-shadow:0 14px 32px rgba(190,47,94,.16)}
.plan .ribbon{position:absolute;top:-14px;left:50%;transform:translateX(-50%);white-space:nowrap;font-size:12px;font-weight:700;padding:5px 12px;border-radius:999px;background:var(--apricot);color:var(--ink)}
.plan.featured .ribbon{background:var(--primary);color:#fff}
.plan .price{font-family:var(--display);font-size:40px;font-weight:600}
table.compare{width:100%;border-collapse:collapse;background:var(--surface);border:1px solid var(--line);border-radius:18px;overflow:hidden}
table.compare th,table.compare td{padding:10px 18px;text-align:left;font-size:15px;border-top:1px solid var(--line)}
table.compare th{font-size:13px;color:var(--muted)}
table.compare td.c,table.compare th.c{text-align:center;width:130px}
table.compare .prem{background:var(--blush)}

/* Admin */
table.admin{width:100%;border-collapse:collapse;background:var(--surface);border-radius:16px;overflow:hidden;font-size:14px}
table.admin td,table.admin th{padding:10px 12px;border-top:1px solid var(--line);text-align:left;vertical-align:top}

/* Pages publiques */
.public-head{height:84px;padding:0 5vw;display:flex;align-items:center;justify-content:space-between;gap:16px}
.public-head nav{display:flex;align-items:center;gap:20px;font-size:15px}
.public-head nav a.plain{color:var(--ink);text-decoration:none}
.hero{padding:32px 5vw 48px;display:flex;gap:56px;align-items:center}
.hero-text{flex:1 1 0;display:flex;flex-direction:column;gap:24px;max-width:580px}
.hero h1{font-size:60px;font-weight:500;letter-spacing:-1.5px;line-height:1.05}
.hero-art{flex:1 1 0;position:relative;min-height:460px}
.hero-card{position:absolute;border-radius:28px;display:flex;flex-direction:column;justify-content:flex-end;padding:18px;box-shadow:0 20px 40px rgba(120,30,60,.14)}
.hero-card .who{background:var(--surface);border-radius:16px;padding:12px 16px}
.quick-form{background:var(--surface);border:1px solid var(--line);border-radius:24px;padding:22px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;box-shadow:0 12px 32px rgba(120,30,60,.08)}
.features{padding:0 5vw 48px;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}
.feature{display:flex;gap:14px}
.feature .ico{width:44px;height:44px;border-radius:14px;background:var(--blush);color:var(--wine);display:flex;align-items:center;justify-content:center;flex-shrink:0}
.auth-wrap{max-width:520px;margin:0 auto;padding:16px 16px 56px}
.legal{max-width:760px;margin:0 auto;padding:16px 16px 64px}
.legal h2{margin:28px 0 8px} .legal p,.legal li{margin-bottom:8px}
.footer{border-top:1px solid var(--line);padding:24px 5vw;display:flex;gap:20px;flex-wrap:wrap;font-size:14px;color:var(--muted)}
.footer a{color:var(--muted)}

/* ---- Mobile ---------------------------------------------------------------- */
@media (max-width: 900px){
  .sidebar{display:none}
  .main{padding:20px 16px 110px}
  h1{font-size:26px}
  .tabbar{display:flex;position:fixed;left:0;right:0;bottom:0;height:72px;background:var(--surface);border-top:1px solid var(--line);justify-content:space-around;padding-top:8px;z-index:40}
  .tabbar a{min-width:64px;min-height:44px;display:flex;flex-direction:column;align-items:center;gap:3px;text-decoration:none;color:var(--muted);font-size:11.5px;font-weight:500;position:relative}
  .tabbar a.active{color:var(--primary);font-weight:700}
  .tabbar .badge{position:absolute;top:-4px;right:10px;font-size:10px;padding:1px 6px}
  .discover{flex-direction:column;gap:20px}
  .photo-main{width:100%}
  .name{font-size:32px}
  .inbox{flex-direction:column;border:none;background:transparent;min-height:0}
  .inbox-list{width:100%;border:none}
  .inbox.chatting .inbox-list{display:none}
  .inbox:not(.chatting) .chat{display:none}
  .chat{border-radius:20px;border:1px solid var(--line);overflow:hidden}
  .chat-body{max-height:none;min-height:50vh}
  .grid-2,.grid-3,.features,.quick-form{grid-template-columns:1fr}
  .hero{flex-direction:column;padding-top:8px}
  .hero h1{font-size:40px}
  .hero-art{display:none}
  .public-head nav a.plain{display:none}
  .photos-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}

/* Badge "Profil certifie" */
.cert{display:inline-flex;align-items:center;gap:5px;background:var(--blush);color:var(--wine);font-family:var(--body);font-size:14px;font-weight:700;padding:4px 10px 4px 5px;border-radius:999px;vertical-align:middle;letter-spacing:0}
.cert-compact{background:none;padding:0}
.cert-card{position:relative;background:var(--surface);border:1px solid var(--rose);border-radius:24px;padding:22px 24px;display:flex;flex-direction:column;gap:16px;box-shadow:0 12px 30px rgba(190,47,94,.10);overflow:hidden}
.cert-card::before{content:"";position:absolute;left:0;right:0;top:0;height:5px;background:var(--primary)}
.cert-card.done{border-color:var(--line);box-shadow:none}
.cert-card.done::before{background:var(--apricot)}
.cert-head{display:flex;align-items:center;gap:14px}
.cert-head .ico{flex-shrink:0;width:56px;height:56px;border-radius:18px;background:var(--blush);display:flex;align-items:center;justify-content:center}
.cert-head .txt{flex-grow:1;display:flex;flex-direction:column;gap:2px}
.cert-head strong{font-family:var(--display);font-size:20px;font-weight:600}
.cert-head small{font-size:14px;color:var(--muted);line-height:1.4}
.cert-steps{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.cert-steps li{background:var(--bg);border:1px solid var(--line);border-radius:16px;padding:12px 14px;display:flex;align-items:center;gap:10px;font-size:14px;font-weight:500;line-height:1.3}
.cert-steps li span{flex-shrink:0;width:28px;height:28px;border-radius:50%;background:var(--primary);color:#fff;font-size:13px;font-weight:700;display:flex;align-items:center;justify-content:center}
.cert-foot{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;padding-top:14px;border-top:1px solid var(--line)}
.cert-foot .safe{display:flex;align-items:center;gap:6px;font-size:13px;color:var(--muted)}
.cert-card .check{font-size:13px;color:var(--muted)}
@media (max-width:900px){.cert-steps{grid-template-columns:1fr}.cert-foot .btn{width:100%}}

/* Interrupteur "Profils certifies" dans les filtres */
.toggle-chip{position:relative;align-self:flex-end;cursor:pointer;user-select:none}
.toggle-chip input,.filters .toggle-chip input{position:absolute;opacity:0;width:1px;height:1px;min-height:0;padding:0;margin:0;border:0}
.toggle-chip .tc-box{display:inline-flex;align-items:center;gap:8px;min-height:40px;padding:0 8px 0 10px;border-radius:999px;border:1.5px solid var(--field);background:var(--surface);font-size:14px;font-weight:700;color:var(--muted);transition:all .15s}
.toggle-chip .sw{position:relative;width:34px;height:20px;border-radius:999px;background:var(--field);transition:background .15s;flex-shrink:0}
.toggle-chip .sw::after{content:"";position:absolute;top:2px;left:2px;width:16px;height:16px;border-radius:50%;background:var(--surface);box-shadow:0 1px 3px rgba(45,26,38,.25);transition:transform .15s}
.toggle-chip:hover .tc-box{border-color:var(--rose)}
.toggle-chip input:checked + .tc-box{border-color:var(--primary);background:var(--blush);color:var(--wine)}
.toggle-chip input:checked + .tc-box .sw{background:var(--primary)}
.toggle-chip input:checked + .tc-box .sw::after{transform:translateX(14px)}
.toggle-chip input:focus-visible + .tc-box{outline:2px solid var(--primary);outline-offset:2px}

/* ---- Conseils de securite ---------------------------------------------------- */
.tips{max-width:1040px;margin:0 auto;padding:16px 16px 64px;display:flex;flex-direction:column;gap:20px}
.tips-hero{text-align:center;max-width:640px;margin:0 auto;display:flex;flex-direction:column;align-items:center;gap:10px}
.tips-hero p{font-size:17px}
.tips-ico{width:64px;height:64px;border-radius:20px;background:var(--blush);color:var(--wine);display:flex;align-items:center;justify-content:center}
.tips-alert{background:var(--ink);color:var(--bg);border-radius:var(--radius);padding:20px 24px}
.tips-alert strong:first-child{display:flex;align-items:center;gap:8px;color:var(--rose);margin-bottom:6px}
.tips-alert p{margin:0}
.tips-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}
.tip h2{font-size:20px;margin:10px 0 8px}
.tip ul,.tips-help ul{margin:0;padding-left:18px} .tip li{margin-bottom:6px}
.tip-ico{width:44px;height:44px;border-radius:14px;background:var(--blush);color:var(--wine);display:flex;align-items:center;justify-content:center}
.tips-help h2{font-size:20px;margin:0 0 12px}
.help-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.help-grid div{background:var(--blush);border-radius:16px;padding:14px 16px;display:flex;flex-direction:column;gap:2px;font-size:14px;color:var(--wine)}
.help-grid .num{font-family:'Fraunces',Georgia,serif;font-size:24px;font-weight:600;color:var(--ink)}
@media (max-width:900px){.tips-grid,.help-grid{grid-template-columns:1fr}}

/* ---- Lien Securite ----------------------------------------------------------- */
.safe-pill{position:relative;display:inline-flex;align-items:center;gap:7px;padding:8px 14px;border-radius:999px;background:var(--ok-bg);color:var(--ok-ink);font-weight:700;font-size:14px;text-decoration:none;border:1px solid var(--ok-border);transition:background .15s}
.safe-pill:hover,.safe-pill.active{background:var(--ok-bg2);color:var(--ok-ink)}
.safe-card{display:flex;align-items:center;gap:12px;padding:12px;border-radius:16px;background:var(--ok-bg);border:1px solid var(--ok-border);color:var(--ok-ink);text-decoration:none;margin-top:-16px}
.safe-card:hover,.safe-card.active{background:var(--ok-bg2);color:var(--ok-ink)}
.safe-card strong{display:block;font-size:15px}
.safe-card strong + span{display:block;font-size:12.5px;color:var(--ok-ink);line-height:1.3}
.safe-ico{width:38px;height:38px;border-radius:12px;background:var(--surface);color:var(--ok);display:flex;align-items:center;justify-content:center;flex-shrink:0}
@media (max-width:900px){
  .safe-pill{padding:0;width:38px;height:38px;flex-shrink:0;justify-content:center}
  .safe-pill span{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
  .tabbar a{min-width:56px}
  .tabbar a.tab-safe{color:var(--ok)}
  .tabbar a.tab-safe.active{color:var(--ok-ink)}
  .public-head{padding:0 16px;gap:8px}
  .public-head nav{gap:6px}
  .public-head nav .btn{padding:0 11px;min-height:40px;min-width:0;font-size:13.5px;white-space:nowrap}
}

/* ---- Menu compte mobile ------------------------------------------------------ */
.mobile-top{display:none}
@media (max-width:900px){
  .mobile-top{display:flex;align-items:center;justify-content:space-between;margin:-8px 0 16px;position:relative;z-index:50}
  .mmenu summary{list-style:none;display:flex;align-items:center;gap:6px;padding:4px 10px 4px 4px;border:1px solid var(--field);border-radius:999px;background:var(--surface);cursor:pointer;color:var(--ink)}
  .mmenu summary::-webkit-details-marker{display:none}
  .avatar-mini{width:34px;height:34px;border-radius:50%;background:var(--blush);color:var(--wine);display:flex;align-items:center;justify-content:center}
  .mmenu[open] summary{background:var(--blush);border-color:var(--rose)}
  .mmenu-panel{position:absolute;right:0;top:52px;width:min(300px,calc(100vw - 32px));background:var(--surface);border:1px solid var(--line);border-radius:20px;box-shadow:0 18px 40px rgba(45,26,38,.16);padding:8px;display:flex;flex-direction:column}
  .mmenu-panel a,.mmenu-logout{display:flex;align-items:center;gap:12px;min-height:46px;padding:0 12px;border-radius:12px;color:var(--ink);text-decoration:none;font:inherit;font-weight:500;background:none;border:none;width:100%;cursor:pointer;text-align:left}
  .mmenu-panel a:hover,.mmenu-logout:hover{background:var(--bg)}
  .mmenu-who{padding:8px 12px 10px;border-bottom:1px solid var(--line);margin-bottom:4px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .mmenu-premium{background:var(--ink)!important;color:var(--bg)!important;margin:4px 0;font-weight:700!important}
  .mmenu-logout{color:var(--primary);border-top:1px solid var(--line);border-radius:0 0 12px 12px;margin-top:4px;font-weight:700}
}

/* ---- Signaler un message ------------------------------------------------------ */
.msg-row{display:flex;align-items:center;gap:6px;max-width:85%;align-self:flex-start}
.msg-row .bubble{max-width:none}
.msg-flag{flex-shrink:0;width:30px;height:30px;border-radius:50%;border:none;background:transparent;color:var(--muted);display:flex;align-items:center;justify-content:center;cursor:pointer;opacity:0;transition:opacity .15s,background .15s}
.msg-row:hover .msg-flag,.msg-flag:focus-visible{opacity:1}
.msg-flag:hover{background:var(--blush);color:var(--primary)}
@media (hover:none){.msg-flag{opacity:.55}}
.msg-dialog{border:none;border-radius:24px;padding:24px;width:min(420px,calc(100vw - 32px));box-shadow:0 24px 60px rgba(45,26,38,.25)}
.msg-dialog::backdrop{background:rgba(45,26,38,.55)}
.msg-dialog h3{margin:0}
.msg-quote{margin:0;padding:10px 14px;background:var(--bg);border-left:3px solid var(--rose);border-radius:8px;white-space:pre-wrap;word-wrap:break-word;max-height:140px;overflow:auto;font-size:14px}
.admin-quote{margin:6px 0 0;padding:6px 10px;background:var(--blush);border-radius:8px;white-space:pre-wrap;font-size:13px}

/* ---- Administration des membres ----------------------------------------------- */
.admin-tabs{display:flex;gap:6px;border-bottom:1px solid var(--line);padding-bottom:0}
.admin-tabs a{display:flex;align-items:center;gap:8px;padding:10px 14px;text-decoration:none;color:var(--muted);font-weight:700;border-bottom:3px solid transparent;margin-bottom:-1px}
.admin-tabs a.active{color:var(--primary);border-color:var(--primary)}
.admin-search{display:flex;gap:8px;flex-wrap:wrap}
.admin-search input[type=search]{flex:1 1 260px}
.admin-search select{flex:0 0 auto;width:auto}
.admin-filters{display:flex;gap:6px;flex-wrap:wrap}
.admin-filters a{display:inline-flex;gap:6px;align-items:center;padding:7px 12px;border-radius:999px;border:1px solid var(--field);background:var(--surface);color:var(--ink);text-decoration:none;font-size:13.5px;font-weight:500}
.admin-filters a span{color:var(--muted);font-size:12px}
.admin-filters a.active{background:var(--ink);border-color:var(--ink);color:var(--bg)} .admin-filters a.active span{color:var(--rose)}
.member-list{background:var(--surface);border:1px solid var(--line);border-radius:20px;overflow:hidden}
.member-row{display:flex;align-items:center;gap:14px;padding:12px 16px;border-top:1px solid var(--line);text-decoration:none;color:var(--ink)}
.member-row:first-child{border-top:none} .member-row:hover{background:var(--bg)}
.member-main{flex:1 1 0;min-width:0;display:flex;flex-direction:column}
.member-main .xs{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.member-city{flex:0 0 130px}
.member-tags{display:flex;gap:4px;flex-wrap:wrap;flex:0 0 auto}
.member-row .member-tags{flex:0 0 170px;justify-content:flex-end}
.member-dates{flex:0 0 150px;text-align:right}
.tag{display:inline-block;font-size:11.5px;font-weight:700;padding:2px 8px;border-radius:999px;background:var(--line);color:var(--muted);vertical-align:middle}
.tag-dark{background:var(--ink);color:var(--bg)} .tag-red{background:var(--blush);color:var(--wine)}
.tag-gold{background:var(--warn-bg2);color:var(--warn-ink)} .tag-green{background:var(--ok-bg);color:var(--ok-ink)}
.tag-official{background:var(--primary);color:#fff;font-size:10.5px;padding:1px 7px}
.member-head{display:flex;align-items:center;gap:18px;flex-wrap:wrap}
.member-head h1{font-size:28px}
.stat-row{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:12px}
.stat{padding:12px 16px;display:flex;flex-direction:column}
.stat strong{font-size:24px;font-family:'Fraunces',Georgia,serif}
dl.info{display:grid;grid-template-columns:140px 1fr;gap:6px 12px;margin:0;font-size:14px}
dl.info dt{color:var(--muted)} dl.info dd{margin:0}
.admin-photo{width:130px;display:flex;flex-direction:column;gap:4px;align-items:flex-start}
.admin-photo img{width:130px;aspect-ratio:3/4;object-fit:cover;border-radius:12px;display:block}
.report-line{border-top:1px solid var(--line);padding-top:8px;display:flex;flex-direction:column;gap:2px}
.team-thread{display:flex;flex-direction:column;gap:10px;padding:16px;background:var(--bg);border-radius:16px;max-height:420px;overflow-y:auto}
.chip-btn{border:1px solid var(--field);background:var(--surface);border-radius:999px;padding:4px 10px;font:inherit;font-size:12.5px;cursor:pointer;color:var(--ink)}
.chip-btn:hover{background:var(--blush)}
.avatar-team{background:var(--primary)!important;color:#fff!important;display:flex;align-items:center;justify-content:center}
.conv-team{background:var(--surface-pink)}
.bubble-team{background:var(--blush);border-color:var(--rose)}
@media (max-width:900px){
  .member-city,.member-dates{display:none}
  .member-row .member-tags{flex-basis:auto}
  .stat-row{grid-template-columns:repeat(2,minmax(0,1fr))}
  dl.info{grid-template-columns:110px 1fr}
}

/* ---- Certification repliable ------------------------------------------------- */
.cert-fold{display:block;padding:0}
.cert-fold>summary{list-style:none;cursor:pointer;padding:22px 24px;border-radius:24px;transition:background .15s}
.cert-fold>summary::-webkit-details-marker{display:none}
.cert-fold>summary:hover{background:var(--surface-pink)}
.cert-fold>summary:focus-visible{outline:2px solid var(--rose);outline-offset:-2px}
.cert-chevron{flex-shrink:0;width:36px;height:36px;border-radius:50%;background:var(--blush);color:var(--wine);display:flex;align-items:center;justify-content:center;transition:transform .2s}
.cert-fold[open] .cert-chevron{transform:rotate(180deg)}
.cert-body{display:flex;flex-direction:column;gap:16px;padding:0 24px 22px}
@media (max-width:600px){.cert-fold .chip-apricot{display:none}}

/* ---- Maintenance ------------------------------------------------------------- */
.maint-bar{background:var(--apricot);color:var(--ink);font-size:13px;font-weight:700;text-align:center;padding:7px 16px;display:flex;gap:6px;align-items:center;justify-content:center;flex-wrap:wrap}
.maint-bar a{color:var(--ink)}
.maint-page{background:linear-gradient(160deg,var(--bg) 0%,var(--blush) 100%);min-height:100vh}
.maint{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:24px 16px;gap:18px}
.maint-card{background:var(--surface);border-radius:28px;padding:44px 36px;max-width:520px;width:100%;text-align:center;box-shadow:0 24px 60px rgba(120,30,60,.14);display:flex;flex-direction:column;align-items:center;gap:14px}
.maint-ico{width:84px;height:84px;border-radius:26px;background:var(--primary);color:#fff;display:flex;align-items:center;justify-content:center;animation:maint-beat 1.6s ease-in-out infinite}
.maint-card h1{font-size:30px;margin:6px 0 0}
.maint-lead{font-size:17px;color:var(--muted);margin:0;line-height:1.5}
.maint-dots{display:flex;gap:8px;margin:6px 0}
.maint-dots span{width:9px;height:9px;border-radius:50%;background:var(--rose);animation:maint-dot 1.2s infinite}
.maint-dots span:nth-child(2){animation-delay:.2s}.maint-dots span:nth-child(3){animation-delay:.4s}
.maint-admin{color:var(--muted);opacity:.7}
@keyframes maint-beat{0%,100%{transform:scale(1)}15%{transform:scale(1.08)}30%{transform:scale(1)}}
@keyframes maint-dot{0%,80%,100%{opacity:.3;transform:translateY(0)}40%{opacity:1;transform:translateY(-4px)}}
@media (prefers-reduced-motion:reduce){.maint-ico,.maint-dots span{animation:none}}
.maint-switch{border-left:5px solid var(--ok)}
.maint-switch.is-on{border-left-color:var(--apricot);background:var(--warn-bg)}
.maint-myip{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;background:var(--bg);border-radius:14px;padding:12px 14px;font-size:14px}

/* ---- Pause du profil --------------------------------------------------------- */
.pause-card{display:flex;align-items:center;gap:16px;flex-wrap:wrap}
.pause-ico{width:48px;height:48px;border-radius:16px;background:var(--bg);color:var(--muted);display:flex;align-items:center;justify-content:center;flex-shrink:0}
.pause-txt{flex:1 1 280px;display:flex;flex-direction:column;gap:2px}
.pause-txt strong{font-family:var(--display);font-size:18px}
.pause-txt span{font-size:14px;color:var(--muted);line-height:1.45}
.pause-card.is-paused{background:var(--warn-bg);border-color:var(--warn-border)}
.pause-card.is-paused .pause-ico{background:var(--warn-bg2);color:var(--warn-ink)}
.pause-bar{background:var(--warn-bg2)}

/* ---- Encart Premium du menu -------------------------------------------------- */
.side-bottom a.promo-side{position:relative;overflow:hidden;display:flex;flex-direction:column;align-items:flex-start;gap:8px;min-height:0;margin:0 0 12px;padding:16px;border-radius:18px;background:linear-gradient(145deg,#BE2F5E 0%,#7A1F3F 100%);color:#fff;text-decoration:none;box-shadow:0 12px 26px rgba(190,47,94,.30);transition:transform .15s,box-shadow .15s}
.side-bottom a.promo-side:hover{transform:translateY(-2px);box-shadow:0 16px 32px rgba(190,47,94,.38);color:#fff}
.side-bottom a.promo-side::after{content:"";position:absolute;right:-30px;top:-30px;width:110px;height:110px;border-radius:50%;background:rgba(255,255,255,.10)}
.promo-side .ps-badge{display:inline-flex;align-items:center;gap:5px;background:var(--apricot);color:var(--ink);font-size:11.5px;font-weight:700;padding:3px 9px;border-radius:999px;text-transform:uppercase;letter-spacing:.04em}
.promo-side strong{font-family:var(--display);font-size:18px;font-weight:600;line-height:1.2;color:#fff}
.promo-side .ps-list{display:flex;flex-direction:column;gap:3px;font-size:13px;color:#FBE3E6}
.promo-side .ps-cta{display:flex;align-items:center;justify-content:center;gap:6px;width:100%;margin-top:4px;padding:10px 12px;border-radius:12px;background:var(--surface);color:var(--primary);font-weight:700;font-size:14px}
.promo-side .ps-price{align-self:center;font-size:12px;color:#F4C2C9}

/* ---- Mode lancement ---------------------------------------------------------- */
.side-bottom .launch-side{display:flex;flex-direction:column;align-items:flex-start;gap:6px;margin:0 0 12px;padding:16px;border-radius:18px;background:linear-gradient(145deg,var(--warn-bg) 0%,var(--blush) 100%);border:1px solid var(--warn-border)}
.launch-side .ps-badge{display:inline-flex;align-items:center;gap:5px;background:var(--apricot);color:var(--ink);font-size:11px;font-weight:700;padding:3px 9px;border-radius:999px;text-transform:uppercase;letter-spacing:.04em}
.launch-side strong{font-family:var(--display);font-size:16px;line-height:1.25;color:var(--wine)}
.launch-side span:last-child{font-size:12.5px;color:var(--muted);line-height:1.4}
.goal-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
.goal{display:flex;flex-direction:column;gap:6px;padding:14px 16px}
.goal strong{font-family:var(--display);font-size:28px}
.goal-bar{height:8px;border-radius:99px;background:var(--line);overflow:hidden}
.goal-bar span{display:block;height:100%;background:var(--primary);border-radius:99px}
.goal.ok{border-color:var(--ok-border)} .goal.ok .goal-bar span{background:var(--ok)}
.week-bars{display:flex;align-items:flex-end;gap:8px;height:170px;padding-top:8px}
.wb{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;gap:4px;height:100%}
.wb-bar{width:100%;max-width:34px;background:var(--primary);border-radius:8px 8px 3px 3px}
.wb-n{font-size:12px;font-weight:700} .wb-l{font-size:11px;color:var(--muted);white-space:nowrap}
@media (max-width:900px){.goal-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}

.gift-form{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-top:8px}
.gift-form .check{margin:0}

/* ---- Photos dans les messages ------------------------------------------------ */
.chat-form{align-items:flex-end}
.chat-attach{flex-shrink:0;width:48px;height:48px;border-radius:50%;border:1px solid var(--field);background:var(--surface);color:var(--muted);display:flex;align-items:center;justify-content:center;cursor:pointer;transition:background .15s,color .15s}
.chat-attach:hover{background:var(--blush);color:var(--primary)}
.chat-attach.disabled{opacity:.4;cursor:not-allowed}
.chat-attach.disabled:hover{background:var(--surface);color:var(--muted)}
.chat-input{flex:1;min-width:0;display:flex;flex-direction:column;gap:6px}
.chat-file{display:flex;align-items:center;gap:8px;background:var(--blush);border-radius:14px;padding:6px 8px;font-size:13px;color:var(--wine);max-width:100%}
.chat-file[hidden]{display:none}
.chat-file img{width:40px;height:40px;border-radius:8px;object-fit:cover}
.chat-file span{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.chat-file button{border:none;background:var(--surface);color:var(--wine);width:26px;height:26px;border-radius:50%;cursor:pointer}
.bubble.has-photo{padding:6px 6px 8px}
.bubble.has-photo .meta{padding:0 8px}
.bubble.has-photo [data-msg-text]:not(:empty){display:block;padding:6px 8px 0}
.msg-photo{position:relative;display:block;border-radius:14px;overflow:hidden;line-height:0;max-width:260px}
.msg-photo img{display:block;width:100%;max-height:340px;object-fit:cover;transition:filter .25s}
.msg-photo.blurred img{filter:blur(22px) brightness(.85);transform:scale(1.08)}
.msg-photo-veil{display:none}
.msg-photo.blurred .msg-photo-veil{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;color:#fff;font-size:14px;font-weight:700;line-height:1.3;text-align:center;background:rgba(45,26,38,.25)}
.msg-photo-veil small{font-size:12px;font-weight:500;opacity:.9}
.admin-photo-link{display:inline-block;margin-top:6px}
.admin-photo-link img{width:120px;height:120px;object-fit:cover;border-radius:10px;filter:blur(8px);transition:filter .2s}
.admin-photo-link:hover img{filter:none}

/* ---- Offres : tarif fondateur, economies, pass ------------------------------- */
.founder-banner{display:flex;align-items:center;gap:14px;flex-wrap:wrap;padding:14px 18px;border-radius:18px;background:linear-gradient(145deg,var(--warn-bg) 0%,var(--blush) 100%);border:1px solid var(--warn-border);color:var(--wine);font-size:15px}
.founder-banner .ps-badge{display:inline-flex;align-items:center;gap:5px;background:var(--apricot);color:var(--ink);font-size:11.5px;font-weight:700;padding:3px 9px;border-radius:999px;text-transform:uppercase;letter-spacing:.04em}
.founder-banner div{flex:1 1 300px}
.plan .saving{align-self:flex-start;background:var(--ok-bg);color:var(--ok-ink);font-size:12px;font-weight:700;padding:2px 9px;border-radius:999px}
.pass-card{display:flex;align-items:center;gap:18px;flex-wrap:wrap;background:var(--surface);border:1px dashed var(--field);border-radius:20px;padding:18px 22px}
.pass-info{flex:1 1 380px;display:flex;flex-direction:column;gap:6px}
.pass-info > strong{font-size:17px}
.plan .perk{display:flex;align-items:center;gap:6px;flex-wrap:wrap;font-size:13.5px;font-weight:700;color:var(--wine);background:var(--blush);border-radius:10px;padding:6px 10px;margin-top:4px}
.plan .perk small{font-weight:500;color:var(--muted)}
/* Pied de page avec liens legaux, aussi dans l'espace membre */
.main > .footer{margin:56px -48px -48px;padding:20px 48px 24px}
@media (max-width:900px){.main > .footer{margin:40px -16px 0;padding:18px 16px 0;gap:10px 16px;font-size:13px}}
/* Acquisition (admin) */
.acq-table .acq-spend{width:96px;min-height:36px;padding:4px 8px;font-size:14px}
.acq-table td{white-space:nowrap}
.acq-link{display:flex;gap:10px;align-items:center;flex-wrap:wrap;background:var(--bg);border:1px dashed var(--field);border-radius:12px;padding:10px 14px}
.acq-link code{flex:1 1 240px;word-break:break-all;font-size:14px}
/* Jauge de profil */
.completion{display:flex;gap:18px;align-items:center;margin-bottom:20px;padding:16px 20px}
.completion-ring{--p:0;flex-shrink:0;width:76px;height:76px;border-radius:50%;background:conic-gradient(var(--primary) calc(var(--p)*1%),var(--line) 0);display:grid;place-items:center}
.completion-ring span{width:60px;height:60px;border-radius:50%;background:var(--surface);display:grid;place-items:center;font-family:var(--display);font-size:22px;font-weight:600;line-height:1}
.completion-ring small{font-size:12px}
.completion.is-full .completion-ring{background:conic-gradient(var(--ok) 100%,var(--ok) 0)}
.completion-txt{display:flex;flex-direction:column;gap:6px;min-width:0}
.completion-tips{margin:0;padding-left:18px;font-size:14px;display:flex;flex-direction:column;gap:4px}
.completion-tips a{color:var(--ink);text-decoration-color:var(--rose)}
.chip-mini{display:inline-block;font-size:11px;font-weight:700;color:var(--primary);background:var(--blush);border-radius:99px;padding:1px 7px;white-space:nowrap}
/* Brise-glace */
.prompt-edit{display:flex;flex-direction:column;gap:6px;padding-top:10px;border-top:1px solid var(--line)}
.prompt-edit textarea{min-height:0}
.prompts{display:flex;flex-direction:column;gap:10px}
.prompt-card{padding:14px 18px}
.prompt-q{display:block;font-size:13px;font-weight:700;color:var(--primary)}
.prompt-card p{font-family:var(--display);font-size:19px;line-height:1.3;margin-top:4px;white-space:pre-line}
/* Avertissement anti-arnaque dans un message recu */
.msg-warn{display:flex;gap:6px;align-items:flex-start;margin-top:8px;padding:8px 10px;border-radius:10px;background:var(--warn-bg);border:1px solid var(--warn-border);color:var(--warn-ink);font-size:12.5px;line-height:1.4;white-space:normal}
.msg-warn svg{flex-shrink:0;margin-top:1px}
.msg-warn a{color:var(--warn-ink);font-weight:700}
.text-danger{color:var(--primary-dark)}
/* Bandeau appli / notifications */
.app-banner{display:flex;gap:12px;align-items:center;background:var(--surface);border:1px solid var(--rose);border-radius:16px;padding:10px 12px 10px 14px;margin-bottom:16px;box-shadow:0 6px 20px rgba(190,47,94,.08)}
.app-banner[hidden]{display:none}
.app-banner-ico img{border-radius:10px}
.app-banner-txt{display:flex;flex-direction:column;flex:1;min-width:0;line-height:1.35}
.app-banner-act{display:flex;gap:6px;align-items:center}
.app-banner-close{border:0;background:none;font-size:24px;line-height:1;color:var(--muted);cursor:pointer;padding:4px 6px}
@media (max-width:600px){.app-banner{flex-wrap:wrap}.app-banner-act{width:100%;justify-content:flex-end}}
/* Parrainage */
.referral-hero{display:flex;gap:16px;align-items:center;background:linear-gradient(135deg,var(--surface) 0%,var(--blush) 100%)}
.referral-gift{font-size:44px;line-height:1}
/* Details du profil (taille, enfants, fumeur) */
.profile-facts{gap:8px}
.chip-fact{background:var(--surface);border:1px solid var(--line);color:var(--ink)}
/* Mise en page du profil (page profil + Decouvrir) */
.details{max-width:680px}
.pf{display:flex;flex-direction:column;gap:22px}
.pf-where{display:flex;align-items:center;gap:6px;margin:-8px 0 -6px;color:var(--ink);font-size:16px}
.pf-where svg{color:var(--primary)}
.pf-where em{font-style:normal;color:var(--muted)}
.pf-facts{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:8px}
.pf-facts li{display:inline-flex;align-items:center;gap:7px;padding:7px 14px 7px 11px;border-radius:999px;background:var(--surface);border:1px solid var(--line);font-size:14.5px;color:var(--ink);line-height:1.2}
.pf-facts li svg{color:var(--primary);flex-shrink:0}
.pf-facts em{font-style:normal;color:var(--muted)}
.pf-sec{display:flex;flex-direction:column;gap:10px}
.pf-label{font-family:var(--body);font-size:12px;font-weight:700;letter-spacing:.09em;text-transform:uppercase;color:var(--muted);margin:0}
.pf-bio{font-size:17px;line-height:1.6;white-space:pre-line;margin:0;color:var(--ink)}
.pf-prompts{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:12px}
.pf-prompt{margin:0;position:relative;padding:16px 18px 18px;border-radius:18px;background:linear-gradient(160deg,var(--surface) 0%,var(--surface-pink) 100%);border:1px solid var(--line);overflow:hidden}
.pf-prompt::before{content:"“";position:absolute;right:12px;top:-14px;font-family:var(--display);font-size:90px;line-height:1;color:var(--rose);opacity:.55;pointer-events:none}
.pf-prompt figcaption{position:relative;font-size:13px;font-weight:700;color:var(--primary);margin-bottom:6px}
.pf-prompt blockquote{position:relative;margin:0;font-family:var(--display);font-size:21px;line-height:1.25;color:var(--ink);white-space:pre-line;word-wrap:break-word}
.pf-tags{display:flex;flex-wrap:wrap;gap:8px}
.pf-tags span{padding:7px 14px;border-radius:999px;background:var(--blush);color:var(--wine);font-size:14.5px;font-weight:500}
@media (max-width:900px){.pf{gap:18px}.pf-prompt blockquote{font-size:19px}.pf-prompts{grid-template-columns:1fr}}
/* Saisie des centres d'interet en bulles */
.tags-field{display:flex;flex-direction:column;gap:6px;font-size:13px;font-weight:700;color:var(--muted)}
.tags-box{display:flex;flex-wrap:wrap;align-items:center;gap:6px;min-height:48px;border:1px solid var(--field);border-radius:12px;padding:6px 8px;background:var(--bg);cursor:text}
.tags-box:focus-within{outline:2px solid var(--rose);border-color:var(--primary)}
.tags-list{display:contents}
.tags-box input[type=text]{flex:1 1 160px;min-height:34px;border:0;outline:0;background:none;padding:4px 6px;width:auto}
.tag-chip{display:inline-flex;align-items:center;gap:4px;padding:5px 6px 5px 12px;border-radius:999px;background:var(--blush);color:var(--wine);font-size:14.5px;font-weight:500}
.tag-chip button{border:0;background:none;color:var(--wine);font-size:18px;line-height:1;cursor:pointer;padding:0 4px;border-radius:50%}
.tag-chip button:hover{background:rgba(122,31,63,.12)}
.tags-suggest{display:flex;flex-wrap:wrap;gap:6px;align-items:center;font-weight:400}
.tags-suggest button{border:1px dashed var(--field);background:var(--surface);color:var(--ink);border-radius:999px;padding:4px 10px;font:inherit;font-size:13px;cursor:pointer}
.tags-suggest button:hover{border-color:var(--primary);color:var(--primary)}
.tags-suggest button[hidden]{display:none}
/* Boutons des photos : icones (etoile = principale, corbeille = supprimer), plus de debordement */
.photo-tile .tools{justify-content:space-between}
.photo-tile .tools form{display:flex;flex:1 1 0;min-width:0}
.photo-tile .tools form:only-child{flex:0 0 auto;margin-left:auto}
.photo-tile .tools button{width:100%;min-width:0;display:inline-flex;align-items:center;justify-content:center;gap:4px;padding:0 6px;white-space:nowrap;overflow:hidden}
.photo-tile .tools .tool-del{color:var(--primary-dark)}
.photo-tile .tools button span{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
.photo-tile .tools button{min-height:34px;min-width:40px}
.photo-tile .status{max-width:calc(100% - 16px);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
/* Photo des messages ouverte en grand (dans la page) */
.lightbox{position:fixed;inset:0;z-index:100;display:flex;align-items:center;justify-content:center;padding:56px 16px 24px;background:rgba(20,10,16,.88);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}
.lightbox[hidden]{display:none}
.lightbox img{max-width:min(100%,1100px);max-height:100%;object-fit:contain;border-radius:14px;box-shadow:0 20px 60px rgba(0,0,0,.45);user-select:none;-webkit-user-select:none;-webkit-touch-callout:none;pointer-events:auto}
.lightbox-close{position:absolute;top:12px;right:14px;width:44px;height:44px;border-radius:50%;border:0;background:rgba(255,255,255,.95);color:var(--ink);font-size:30px;line-height:1;cursor:pointer;display:grid;place-items:center;box-shadow:0 4px 14px rgba(0,0,0,.3)}
.lightbox-close:hover{background:var(--surface);color:var(--primary)}
html.lb-open,html.lb-open body{overflow:hidden}
.msg-photo img{user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}
/* Emojis dans les messages */
.chat-emoji{font:inherit}
.chat-emoji.on{background:var(--blush);color:var(--primary);border-color:var(--rose)}
.emoji-panel{position:absolute;left:12px;bottom:calc(100% + 8px);z-index:30;width:min(360px,calc(100vw - 24px));background:var(--surface);border:1px solid var(--line);border-radius:18px;box-shadow:0 14px 40px rgba(45,26,38,.18);padding:8px 10px 10px}
.emoji-panel[hidden]{display:none}
.emoji-tabs{display:flex;gap:2px;border-bottom:1px solid var(--line);padding-bottom:6px}
.emoji-tabs button{flex:1;border:0;background:none;font-size:20px;line-height:1;padding:7px 0;border-radius:10px;cursor:pointer;filter:grayscale(.6);opacity:.7}
.emoji-tabs button.on,.emoji-tabs button:hover{background:var(--blush);filter:none;opacity:1}
.emoji-title{font-size:12px;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.06em;margin:8px 4px 4px}
.emoji-grid{display:grid;grid-template-columns:repeat(8,1fr);gap:2px;max-height:200px;overflow-y:auto}
.emoji-grid button{border:0;background:none;font-size:24px;line-height:1;padding:6px 0;border-radius:10px;cursor:pointer}
.emoji-grid button:hover{background:var(--blush);transform:scale(1.15)}
.emoji-hint{font-size:11.5px;color:var(--muted);margin:6px 4px 0}
@media (max-width:600px){.emoji-panel{left:8px;right:8px;width:auto}.emoji-grid button{font-size:26px}}
/* Reactions aux messages */
.chat-body .bubble[data-react-url]{position:relative;-webkit-touch-callout:none;transition:transform .15s}
.chat-body .bubble.reacting{transform:scale(1.03);box-shadow:0 6px 18px rgba(45,26,38,.15)}
/* Pas de selection de texte dans les bulles (appui long = reaction) */
.chat-body .bubble{-webkit-user-select:none;user-select:none}
.chat-body .bubble:has(.reacts:not(.is-empty)){margin-bottom:14px}
.reacts{position:absolute;bottom:-14px;right:10px;color:var(--ink);white-space:nowrap;display:inline-flex;align-items:center;gap:1px;background:var(--surface);border:1px solid var(--line);border-radius:999px;padding:1px 6px;font-size:14px;line-height:20px;box-shadow:0 2px 6px rgba(45,26,38,.12);cursor:pointer;white-space:nowrap}
.bubble.mine .reacts{right:auto;left:10px}
.reacts.is-empty{display:none}
.reacts.has-mine{border-color:var(--rose)}
.reacts small{font-size:11px;color:var(--muted);margin-left:2px;font-weight:700}
.react-bar{position:fixed;z-index:90;display:flex;gap:2px;background:var(--surface);border:1px solid var(--line);border-radius:999px;padding:5px 6px;box-shadow:0 10px 30px rgba(45,26,38,.22);animation:react-pop .14s ease-out}
.react-bar[hidden]{display:none}
.react-bar button{border:0;background:none;font-size:26px;line-height:1;width:42px;height:42px;border-radius:50%;cursor:pointer;transition:transform .12s,background .12s}
.react-bar button:hover{transform:scale(1.25) translateY(-2px)}
.react-bar button.on{background:var(--blush)}
@keyframes react-pop{from{transform:scale(.8);opacity:0}to{transform:scale(1);opacity:1}}
@media (prefers-reduced-motion:reduce){.react-bar{animation:none}.react-bar button:hover{transform:none}}
/* ================= Theme sombre ================= */
html[data-theme="dark"]{
  --bg:#161016; --surface:#221822; --surface-pink:#2A1B26;
  --ink:#F2E8EE; --muted:#B5A2AE; --line:#382A36; --field:#4B3A48;
  --blush:#3B1E2D; --rose:#7A3550; --wine:#F7B8CB;
  --primary:#D8457A; --primary-dark:#B9335F; --coral:#EC6A84; --ok:#4CC27E;
  --ok-bg:#12291B; --ok-bg2:#183722; --ok-border:#234A31; --ok-ink:#8FDDAE;
  --warn-bg:#2D2010; --warn-bg2:#3A2814; --warn-border:#5C3F18; --warn-ink:#F3C287;
  color-scheme:dark;
}
html[data-theme="dark"] .btn-dark{background:#F2E8EE;color:#161016}
html[data-theme="dark"] .btn-dark:hover{background:#fff;color:#161016}
html[data-theme="dark"] .chip-apricot{color:#2D1A26}
html[data-theme="dark"] .placeholder{color:var(--muted)}
html[data-theme="dark"] img{filter:none}
html[data-theme="dark"] ::placeholder{color:#8F7C89}
html[data-theme="dark"] .bubble:not(.mine){background:var(--surface)}
html[data-theme="dark"] .lightbox-close{background:rgba(255,255,255,.92);color:#161016}
/* Interrupteur clair / sombre */
.theme-switch{display:flex;align-items:center;justify-content:space-between;gap:10px;width:100%;padding:10px 12px;border:0;background:none;border-radius:12px;font:inherit;font-size:15px;color:var(--ink);cursor:pointer;text-align:left}
.theme-switch:hover{background:var(--blush)}
.theme-switch .ts-label{display:inline-flex;align-items:center;gap:10px}
.theme-switch .ts-track{position:relative;flex-shrink:0;width:42px;height:24px;border-radius:999px;background:var(--field);transition:background .2s}
.theme-switch .ts-track::after{content:"";position:absolute;top:3px;left:3px;width:18px;height:18px;border-radius:50%;background:#fff;box-shadow:0 1px 3px rgba(0,0,0,.25);transition:transform .2s}
.theme-switch[aria-checked="true"] .ts-track{background:var(--primary)}
.theme-switch[aria-checked="true"] .ts-track::after{transform:translateX(18px)}
@media (prefers-reduced-motion:reduce){.theme-switch .ts-track,.theme-switch .ts-track::after{transition:none}}
/* ================= Salon anonyme ================= */
.salon-head{display:flex;gap:16px;align-items:flex-start;justify-content:space-between;flex-wrap:wrap}
.salon-head h1{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.salon-online{font-family:var(--body);font-size:13px;background:var(--ok-bg);color:var(--ok-ink)}
.salon-online .dot{width:8px;height:8px;border-radius:50%;background:var(--ok);box-shadow:0 0 0 3px var(--ok-bg2)}
.salon-me{display:flex;align-items:center;gap:12px;padding:10px 14px}
.salon-me-txt{display:flex;flex-direction:column;line-height:1.25}
.salon-ava{flex-shrink:0;width:36px;height:36px;border-radius:50%;display:grid;place-items:center;font-weight:700;font-size:16px;background:var(--g-soft,var(--blush));color:var(--g-ink,var(--wine))}
.chat.salon{border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;background:var(--bg)}
.salon-body{max-height:none;height:min(58vh,560px);gap:12px}
.salon-empty{margin:auto;text-align:center}
.salon-row{display:flex;gap:10px;align-items:flex-start;max-width:88%}
.salon-col{display:flex;flex-direction:column;gap:4px;min-width:0;align-items:flex-start}
.salon-who{display:flex;align-items:center;gap:8px;position:relative;font-size:13.5px}
.salon-who strong{color:var(--g-ink,var(--ink))}
.salon-row .bubble{max-width:100%}
.salon-menu{position:static}
.salon-menu>summary{list-style:none;cursor:pointer;width:26px;height:22px;border-radius:8px;display:grid;place-items:center;font-size:18px;line-height:1;color:var(--muted)}
.salon-menu>summary::-webkit-details-marker{display:none}
.salon-menu>summary:hover,.salon-menu[open]>summary{background:var(--blush);color:var(--primary)}
.salon-menu-panel{position:absolute;left:0;top:26px;z-index:20;width:min(280px,78vw);background:var(--surface);border:1px solid var(--line);border-radius:16px;box-shadow:0 14px 36px rgba(45,26,38,.2);padding:6px;display:flex;flex-direction:column;gap:2px}
.salon-menu-panel button[type=submit]:not(.btn),.salon-menu-panel a,.salon-report>summary{display:flex;align-items:center;gap:10px;width:100%;min-height:40px;padding:0 10px;border:0;border-radius:10px;background:none;font:inherit;font-size:14px;color:var(--ink);text-decoration:none;cursor:pointer;text-align:left;list-style:none}
.salon-report>summary::-webkit-details-marker{display:none}
.salon-menu-panel button[type=submit]:not(.btn):hover,.salon-menu-panel a:hover,.salon-report>summary:hover{background:var(--blush)}
.salon-report form{padding:6px 8px 8px}
.salon-report select{min-height:40px;font-size:14px}
.salon-proposal{display:flex;align-items:center;gap:14px;flex-wrap:wrap;border-color:var(--rose);margin-bottom:10px}
.salon-proposal-txt{display:flex;flex-direction:column;flex:1 1 240px;min-width:0}
.chat-safety{display:flex;gap:6px;align-items:center;padding:8px 20px;font-size:12.5px;color:var(--muted);border-top:1px solid var(--line);background:var(--surface)}
.chat-safety svg{flex-shrink:0;color:var(--ok)}
.salon-locked{display:flex;flex-direction:column;align-items:center;text-align:center;gap:14px;padding:36px 28px}
.salon-locked-ico{width:68px;height:68px;border-radius:22px;background:var(--blush);color:var(--primary);display:grid;place-items:center}
.salon-locked-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px;text-align:left}
.salon-locked-list li{display:flex;gap:8px;align-items:center}
.salon-locked-list svg{color:var(--ok);flex-shrink:0}
@media (max-width:900px){.salon-body{height:52vh}.salon-row{max-width:96%}.salon-me{width:100%}}
/* Salon : tout a gauche, couleur selon le genre (bleu = homme, rose = femme) */
.salon-g-homme{--g-ink:#1F5FBF;--g-soft:#DCEBFF;--g-bg:#F2F7FF;--g-line:#CFE0FB}
.salon-g-femme{--g-ink:#BE2F5E;--g-soft:#FBE3E6;--g-bg:#FFF4F6;--g-line:#F4C2C9}
.salon-g-autre{--g-ink:#6B4BA8;--g-soft:#EDE6FA;--g-bg:#F7F4FD;--g-line:#DDD2F3}
html[data-theme="dark"] .salon-g-homme{--g-ink:#8DB8FF;--g-soft:#1C3357;--g-bg:#172338;--g-line:#29406A}
html[data-theme="dark"] .salon-g-femme{--g-ink:#FF9DBB;--g-soft:#4A1F33;--g-bg:#2B1722;--g-line:#5A2A40}
html[data-theme="dark"] .salon-g-autre{--g-ink:#C6B0F5;--g-soft:#33275A;--g-bg:#211A33;--g-line:#40336B}
.salon-body .salon-row .bubble,html[data-theme="dark"] .salon-body .salon-row .bubble:not(.mine){background:var(--g-bg);border-color:var(--g-line);color:var(--ink);align-self:flex-start;border-radius:6px 18px 18px 18px}
.salon-row.is-mine .bubble{border-width:2px}
.salon-you{font-size:11px;font-weight:700;padding:1px 7px;border-radius:999px;background:var(--g-soft);color:var(--g-ink)}
.salon-legend{display:inline-flex;gap:12px;margin-left:6px;white-space:nowrap}
.salon-legend span{display:inline-flex;align-items:center;gap:5px;color:var(--g-ink);font-weight:700}
.salon-legend i{width:10px;height:10px;border-radius:50%;background:var(--g-ink)}
/* Admin : messages des membres a lire */
.unread-box{border:1px solid var(--rose);border-radius:var(--radius);padding:16px;background:var(--surface-pink)}
.unread-box h2{display:flex;align-items:center;gap:8px;font-size:19px}
.unread-box h2 svg{color:var(--primary)}
.unread-box .member-row .btn{margin-left:auto;flex-shrink:0}
/* ===== Listes deroulantes ===== */
select{-webkit-appearance:none;appearance:none;padding-right:40px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18' viewBox='0 0 24 24' fill='none' stroke='%236F5B66' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center;cursor:pointer}
html[data-theme="dark"] select{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18' viewBox='0 0 24 24' fill='none' stroke='%23B5A2AE' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E")}
.cs{position:relative;display:block;width:100%;font-weight:400}
.cs[style*="inline-block"]{width:auto;vertical-align:middle}
.cs-native{position:absolute!important;inset:0;width:100%!important;height:100%;opacity:0;pointer-events:none;margin:0}
.cs-btn{display:flex;align-items:center;justify-content:space-between;gap:10px;width:100%;min-height:48px;border:1px solid var(--field);border-radius:12px;padding:6px 12px 6px 14px;background:var(--bg);color:var(--ink);font:inherit;font-size:16px;font-weight:400;text-align:left;cursor:pointer;transition:border-color .15s,box-shadow .15s}
.cs-btn:hover{border-color:var(--rose)}
.cs-btn:focus-visible,.cs.open .cs-btn{outline:2px solid var(--rose);border-color:var(--primary)}
.cs-btn:disabled{opacity:.55;cursor:not-allowed}
.cs-label{flex:1 1 auto;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cs-placeholder .cs-label{color:var(--muted)}
.cs-chev{flex-shrink:0;color:var(--muted);transition:transform .18s}
.cs.open .cs-chev{transform:rotate(180deg);color:var(--primary)}
.cs-list{position:absolute;left:0;right:0;top:calc(100% + 6px);z-index:60;min-width:max-content;max-height:280px;overflow-y:auto;margin:0;padding:6px;list-style:none;background:var(--surface);border:1px solid var(--line);border-radius:16px;box-shadow:0 16px 40px rgba(45,26,38,.18);font-size:15px;font-weight:400;color:var(--ink);animation:cs-in .12s ease-out}
.cs.up .cs-list{top:auto;bottom:calc(100% + 6px)}
.cs-list[hidden]{display:none}
.cs-list li{display:flex;align-items:center;justify-content:space-between;gap:14px;min-height:40px;padding:6px 12px;border-radius:10px;cursor:pointer;white-space:nowrap}
.cs-list li.on{background:var(--blush)}
.cs-list li[aria-selected="true"]{color:var(--primary);font-weight:700}
.cs-list li[aria-disabled="true"]{opacity:.45;cursor:not-allowed}
.cs-list li.cs-empty{color:var(--muted)}
.cs-check{flex-shrink:0;visibility:hidden}
.cs-list li[aria-selected="true"] .cs-check{visibility:visible}
@keyframes cs-in{from{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:none}}
@media (prefers-reduced-motion:reduce){.cs-list{animation:none}.cs-chev{transition:none}}
/* Menu de gauche toujours entier a l'ecran : il tient compte du bandeau du haut et defile seul si l'ecran est petit */
.sidebar{height:calc(100vh - var(--topbar,0px));overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:var(--field) transparent}
.sidebar > *{flex-shrink:0}
/* Ordinateur : le menu de gauche ne bouge jamais, seule la partie centrale defile */
@media (min-width:901px){
  .app{height:calc(100vh - var(--topbar,0px));min-height:0;overflow:hidden}
  .sidebar{position:relative;top:auto;height:100%}
  .main{height:100%;overflow-y:auto}
}
/* ===== Page Premium : pleine largeur, plus visuelle ===== */
.pm{gap:22px}
.pm-hero{position:relative;overflow:hidden;display:flex;align-items:center;gap:24px;padding:36px 40px;border-radius:28px;background:linear-gradient(120deg,var(--primary) 0%,var(--primary-dark) 100%);color:#fff}
.pm-hero::before{content:"";position:absolute;right:-80px;top:-120px;width:360px;height:360px;border-radius:50%;background:rgba(255,255,255,.10)}
.pm-hero::after{content:"";position:absolute;right:160px;bottom:-140px;width:260px;height:260px;border-radius:50%;background:rgba(255,255,255,.07)}
.pm-hero-txt{position:relative;z-index:1;flex:1 1 0;min-width:0;display:flex;flex-direction:column;gap:12px;align-items:flex-start}
.pm-hero h1{color:#fff;font-size:40px;line-height:1.08}
.pm-hero p{font-size:18px;color:rgba(255,255,255,.92);max-width:560px}
.pm-kicker{display:inline-flex;align-items:center;gap:6px;padding:5px 12px;border-radius:999px;background:rgba(255,255,255,.18);font-size:13px;font-weight:700;letter-spacing:.04em;text-transform:uppercase}
.pm-hero-art{position:relative;z-index:1;flex-shrink:0;width:220px;height:150px}
.pm-bubble{position:absolute;display:grid;place-items:center;border-radius:50%;background:#fff;color:var(--primary);box-shadow:0 12px 28px rgba(0,0,0,.18)}
.pm-bubble.b1{width:92px;height:92px;left:56px;top:26px}
.pm-bubble.b1 svg{width:44px;height:44px}
.pm-bubble.b2{width:54px;height:54px;right:6px;top:0;color:var(--apricot)}
.pm-bubble.b3{width:46px;height:46px;left:6px;bottom:0;background:rgba(255,255,255,.22);color:#fff;box-shadow:none}
.pm-benefits{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}
.pm-benefit{display:flex;flex-direction:column;gap:6px;padding:20px;border-radius:22px;background:var(--surface);border:1px solid var(--line);font-size:14.5px;color:var(--muted);line-height:1.4}
.pm-benefit strong{font-family:var(--display);font-size:17px;color:var(--ink)}
.pm-ico{display:grid;place-items:center;flex-shrink:0;width:48px;height:48px;border-radius:16px;background:var(--blush);color:var(--primary);margin-bottom:4px}
.pm-h2{margin-top:10px}
.pm-plans{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;align-items:stretch;padding-top:14px}
.pm-plans .plan{gap:10px;padding:28px 26px 24px;border-radius:26px}
.pm-plans .plan.featured{background:linear-gradient(180deg,var(--blush) 0%,var(--surface) 55%)}
.pm-plan-head{display:flex;align-items:center;justify-content:space-between;gap:10px}
.pm-plan-name{font-family:var(--display);font-size:20px;font-weight:700}
.pm-plans .plan .saving{align-self:center;font-size:13px;padding:3px 10px}
.pm-plans .plan .price{font-size:52px;font-weight:700;letter-spacing:-1px;line-height:1}
.pm-list{list-style:none;margin:8px 0 4px;padding:14px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);display:flex;flex-direction:column;gap:9px;font-size:15px}
.pm-list li{display:flex;align-items:center;gap:10px}
.pm-list li::before{content:"✓";display:grid;place-items:center;flex-shrink:0;width:22px;height:22px;border-radius:50%;background:var(--primary);color:#fff;font-size:12px;font-weight:700}
.pm-legal{display:flex;flex-direction:column;gap:8px;flex-grow:1}
.pm-legal .check{color:var(--muted)}
.pm-plans .plan .btn{width:100%;margin-top:6px}
.pm .pass-card{border-style:solid;border-color:var(--line);border-radius:24px;padding:22px 26px}
.pm-pass-ico{margin:0;width:56px;height:56px;border-radius:18px;align-self:flex-start}
.pm .pass-info{flex:1 1 420px}
.pm-compare td,.pm-compare th{padding:14px 22px!important}
.pm-compare td.c,.pm-compare th.c{width:22%!important}
.pm-compare th.prem{color:var(--primary)!important;font-size:14px!important}
.pm-yes{display:inline-grid;place-items:center;width:24px;height:24px;border-radius:50%;background:var(--ok-bg);color:var(--ok-ink);font-size:13px;font-weight:700}
.prem .pm-yes{background:var(--primary);color:#fff}
.pm-no{color:var(--muted)}
.pm-trust{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;font-size:14px;color:var(--muted)}
.pm-trust > span{display:flex;align-items:flex-start;gap:10px;padding:14px 16px;border-radius:16px;background:var(--surface);border:1px solid var(--line)}
.pm-trust svg{flex-shrink:0;color:var(--primary);margin-top:1px}
.pm-trust strong{color:var(--ink)}
@media (max-width:1100px){.pm-benefits{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:1000px){.pm-plans{grid-template-columns:1fr;gap:26px}.pm-trust{grid-template-columns:1fr}}
@media (max-width:900px){
  .pm-hero{padding:24px 20px;border-radius:24px}
  .pm-hero h1{font-size:28px}
  .pm-hero p{font-size:16px}
  .pm-hero-art{display:none}
  .pm-benefits{gap:10px}
  .pm-benefit{padding:14px;font-size:13.5px}
  .pm-benefit strong{font-size:15.5px}
  .pm-compare td,.pm-compare th{padding:10px 12px!important;font-size:14px}
  .pm-compare td.c,.pm-compare th.c{width:74px!important}
  .pm-pass-ico{display:none}
}
@media (min-width:901px){.main{position:relative}}
/* Boutons sur les photos (principale, supprimer) : aux couleurs du site, lisibles en clair comme en sombre */
.photo-tile .tools button,.photo-tile .tools .tool-del{background:var(--surface);color:var(--primary);box-shadow:0 2px 10px rgba(0,0,0,.28);border-radius:12px;transition:background .15s,color .15s}
.photo-tile .tools button:hover{background:var(--primary);color:#fff}
.photo-tile .tools button svg{flex-shrink:0}
html[data-theme="dark"] .photo-tile .tools button,html[data-theme="dark"] .photo-tile .tools .tool-del{background:rgba(16,20,27,.86);color:#fff;box-shadow:0 2px 10px rgba(0,0,0,.45)}
html[data-theme="dark"] .photo-tile .tools button:hover{background:var(--primary);color:#fff}

/* ===== Parcours de bienvenue ===== */
.ob{max-width:760px;display:flex;flex-direction:column;gap:20px}
.ob-head{display:flex;flex-direction:column;gap:8px;align-items:flex-start}
.ob-kicker{background:var(--blush);color:var(--primary-dark)}
.ob-steps{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.ob-steps a{display:flex;align-items:center;gap:10px;padding:10px 14px;border-radius:16px;border:1px solid var(--line);background:var(--surface);color:var(--muted);text-decoration:none;font-weight:700;font-size:14.5px;min-height:52px}
.ob-num{display:grid;place-items:center;flex-shrink:0;width:30px;height:30px;border-radius:50%;background:var(--line);color:var(--muted);font-size:14px}
.ob-steps .on a{border-color:var(--primary);color:var(--ink)}
.ob-steps .on .ob-num{background:var(--primary);color:#fff}
.ob-steps .done a{color:var(--ink)}
.ob-steps .done .ob-num{background:var(--ok-bg);color:var(--ok-ink)}
.ob-photos{grid-template-columns:repeat(4,minmax(0,1fr))}
.ob-tips{margin:0;padding-left:20px;display:flex;flex-direction:column;gap:4px;font-size:14px;color:var(--muted)}
.ob-nav{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap}
.ob-skip{align-self:center}
.ob-skip .link-btn{color:var(--muted)}
@media (max-width:900px){.ob-lab{display:none}.ob-steps a{justify-content:center;padding:8px}.ob-photos{grid-template-columns:repeat(2,minmax(0,1fr))}.ob-nav .btn{flex:1}}

/* ===== Visites de mon profil ===== */
.visit-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:16px}
.visit-card{display:flex;flex-direction:column;gap:4px;padding:12px;border-radius:22px;background:var(--surface);border:1px solid var(--line);color:var(--ink);text-decoration:none;transition:transform .15s,box-shadow .15s}
.visit-card:hover{transform:translateY(-2px);box-shadow:0 12px 26px rgba(45,26,38,.12);color:var(--ink)}
.visit-photo{position:relative;display:block;aspect-ratio:3/4;border-radius:16px;overflow:hidden;background:var(--blush);margin-bottom:6px}
.visit-photo img{width:100%;height:100%;object-fit:cover}
.visit-photo .placeholder{position:absolute;inset:0;display:grid;place-items:center;color:var(--primary)}
.visit-new{position:absolute;left:8px;top:8px;padding:3px 9px;border-radius:999px;background:var(--primary);color:#fff;font-size:11.5px;font-weight:700}
.visit-lock{max-width:620px;background:var(--ink);color:var(--bg);border:none}
.visit-lock h2{color:var(--bg)}
.visit-lock p{color:var(--bg);opacity:.85}
@media (max-width:600px){.visit-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}}

/* ===== Points communs sur un profil ===== */
.pf-common{display:flex;align-items:flex-start;gap:10px;padding:12px 14px;border-radius:16px;background:var(--ok-bg);color:var(--ok-ink);font-size:15px;line-height:1.4}
.pf-common svg{flex-shrink:0;margin-top:1px}
.pf-tags span.common{background:var(--primary);color:#fff}

/* ===== Decouvrir : Passer / J'aime toujours visibles ===== */
.actions-fixed{position:sticky;bottom:12px;z-index:15;margin-top:auto;padding:10px;border-radius:22px;background:var(--surface);border:1px solid var(--line);box-shadow:0 10px 28px rgba(45,26,38,.16);flex-wrap:nowrap}
.actions-fixed form{flex:1 1 0;display:flex}
.actions-fixed form:first-child{flex:0 1 38%}
.actions-fixed .btn{width:100%;min-height:58px;padding:0 18px}
.report-fold summary{cursor:pointer;list-style:none;display:inline-flex;gap:6px;align-items:center}
.report-fold summary::-webkit-details-marker{display:none}
@media (max-width:900px){.actions-fixed{bottom:88px}}

/* ===== Messages : la conversation occupe toute la hauteur ===== */
@media (min-width:901px){
  .inbox{height:calc(100vh - var(--topbar,0px) - 64px);min-height:440px}
  .inbox .chat{min-height:0}
  .inbox .chat-body{max-height:none;min-height:0}
}
@media (max-width:900px){
  .inbox.chatting .chat{height:calc(100vh - var(--topbar,0px) - 200px);height:calc(100dvh - var(--topbar,0px) - 200px);min-height:380px}
  .inbox.chatting .chat-body{min-height:0}
}

/* ===== Messages vocaux ===== */
.chat-voice{position:relative}
.chat-voice.recording{background:var(--primary);border-color:var(--primary);color:#fff;width:auto;padding:0 14px;gap:8px;border-radius:999px;animation:voicePulse 1.4s ease-in-out infinite}
.voice-time{font-size:13.5px;font-weight:700;font-variant-numeric:tabular-nums}
.voice-time[hidden]{display:none}
@keyframes voicePulse{0%,100%{box-shadow:0 0 0 0 rgba(190,47,94,.35)}50%{box-shadow:0 0 0 8px rgba(190,47,94,0)}}
@media (prefers-reduced-motion:reduce){.chat-voice.recording{animation:none}}
.chat-voice-chip audio{flex:1;min-width:0;height:36px}
.msg-audio{display:block;width:240px;max-width:100%;height:40px;margin:2px 0 4px}
.bubble.has-audio{min-width:220px}

/* ===== Accueil : comment ca marche ===== */
.how{padding:8px 5vw 40px;display:flex;flex-direction:column;gap:24px}
.how h2,.trust h2{font-size:30px}
.how-steps{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}
.how-steps li{display:flex;flex-direction:column;gap:8px;padding:24px;border-radius:24px;background:var(--surface);border:1px solid var(--line)}
.how-steps strong{font-family:var(--display);font-size:19px;line-height:1.25}
.how-steps p{color:var(--muted);font-size:15px}
.how-num{display:grid;place-items:center;width:44px;height:44px;border-radius:50%;font-family:var(--display);font-weight:700;font-size:19px;color:#fff;background:#BE2F5E}
.how-steps li:nth-child(2) .how-num{background:linear-gradient(135deg,#BE2F5E,#2F6DBE)}
.how-steps li:nth-child(3) .how-num{background:#2F6DBE}
.how-cta{display:flex;align-items:center;gap:16px;flex-wrap:wrap}
.trust{padding:0 5vw 20px}
@media (max-width:900px){.how-steps{grid-template-columns:1fr}.how h2,.trust h2{font-size:24px}.how{padding:8px 16px 32px}.trust{padding:0 16px 16px}.how-cta .btn{width:100%}}

/* ===== Administration : refus de photo motive, statistiques ===== */
.reject-form{display:flex;gap:6px;align-items:center;flex-wrap:wrap}
.reject-form select{flex:1 1 120px;min-width:0;width:auto;min-height:34px;padding:4px 8px;font-size:12.5px}
.st-tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(136px,1fr));gap:12px}
.st-tile{display:flex;flex-direction:column;gap:2px;padding:14px 18px}
.st-tile strong{font-family:var(--display);font-size:30px;line-height:1.1}
.st-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.st-grid-2{grid-template-columns:repeat(2,minmax(0,1fr))}
.st-total{font-size:13px;color:var(--muted)}
.st-total strong{color:var(--ink);font-size:16px}
.st-bars{display:flex;align-items:flex-end;gap:2px;height:140px;border-bottom:1px solid var(--field);padding-top:8px}
.st-col{position:relative;flex:1 1 0;height:100%;display:flex;align-items:flex-end;justify-content:center;outline:none}
.st-bar{display:block;width:100%;max-width:18px;border-radius:4px 4px 0 0;background:var(--primary)}
.st-col:hover .st-bar,.st-col:focus .st-bar{background:var(--primary-dark)}
.st-tip{position:absolute;bottom:calc(100% + 2px);left:50%;transform:translateX(-50%);z-index:5;display:none;flex-direction:column;align-items:center;white-space:nowrap;padding:5px 9px;border-radius:10px;background:var(--ink);color:var(--bg);font-size:11.5px;line-height:1.3;pointer-events:none}
.st-tip strong{font-size:14px}
.st-col:hover .st-tip,.st-col:focus .st-tip{display:flex}
.st-col:nth-child(-n+3) .st-tip{left:0;transform:none}
.st-col:nth-last-child(-n+3) .st-tip{left:auto;right:0;transform:none}
.st-axis{display:flex;justify-content:space-between;font-size:11.5px;color:var(--muted)}
.st-table summary{cursor:pointer;font-size:13px;color:var(--muted)}
.st-table table{margin-top:8px}
.st-rows{display:flex;flex-direction:column;gap:10px}
.st-row{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr) auto;align-items:center;gap:12px;font-size:14px}
.st-track{height:10px;border-radius:999px;background:var(--line);overflow:hidden}
.st-track span{display:block;height:100%;border-radius:999px;background:var(--primary)}
.st-val{font-size:13px;color:var(--muted);white-space:nowrap;min-width:84px;text-align:right}
.st-val strong{color:var(--ink)}
@media (max-width:1100px){.st-grid,.st-grid-2{grid-template-columns:1fr}}
@media (max-width:600px){.st-row{grid-template-columns:1fr auto}.st-track{grid-column:1 / -1;order:3}}
.chat-form:has(.chat-voice.recording) .chat-emoji,.chat-form:has(.chat-voice.recording) label.chat-attach{display:none}
@media (max-width:600px){.chat-form{gap:6px;padding:10px 12px}.chat-form .chat-attach{width:42px;height:42px}.chat-form .chat-voice.recording{width:auto}}

/* ===== Conversation : en-tete compact ; sur telephone, elle prend tout l'ecran ===== */
.ch-who{flex:1 1 0;min-width:0}
.ch-name{display:flex;align-items:center;gap:6px;min-width:0}
.ch-name > span:first-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ch-sub{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ch-profile svg{display:none}
.ch-report-pop{position:absolute;right:24px;z-index:10}
@media (max-width:900px){
  body:has(.inbox.chatting){overflow:hidden}
  .inbox.chatting .chat{position:fixed;inset:0;z-index:70;height:100vh;height:100dvh;min-height:0;border:0;border-radius:0;background:var(--bg)}
  .inbox.chatting .chat-head{gap:10px;padding:10px 12px;padding-top:calc(10px + env(safe-area-inset-top,0px))}
  .inbox.chatting .chat-head > .btn,.inbox.chatting .chat-head .ch-report summary{flex-shrink:0;width:40px;min-width:40px;height:40px;min-height:40px;padding:0;border-radius:50%;display:flex;align-items:center;justify-content:center}
  .inbox.chatting .chat-head .avatar{width:42px;height:42px}
  .ch-profile span{display:none}
  .ch-profile svg{display:block}
  .ch-since{display:none}
  .ch-name{font-size:16px}
  .ch-report-pop{left:10px;right:10px;top:calc(100% + 6px)}
  .ch-report-pop .card{min-width:0!important;box-shadow:0 18px 40px rgba(45,26,38,.25)}
  .inbox.chatting .chat-body{flex:1 1 0;min-height:0;max-height:none;padding:14px 12px;gap:8px}
  .inbox.chatting .bubble{max-width:82%;font-size:16px}
  .inbox.chatting .msg-row{max-width:90%}
  .inbox.chatting .msg-row .bubble{max-width:none}
  .inbox.chatting .msg-photo{max-width:230px}
  .inbox.chatting .safety{margin:0;padding:6px 12px;border:0;border-top:1px solid var(--line);border-radius:0;background:var(--bg);font-size:11.5px;text-align:center}
  .inbox.chatting .safety svg{vertical-align:-2px}
  .sf-long{display:none}
  .inbox.chatting .chat-form{gap:4px;align-items:flex-end;padding:8px 10px;padding-bottom:calc(8px + env(safe-area-inset-bottom,0px))}
  .inbox.chatting .chat-form .chat-attach{width:38px;height:44px;border:0;background:none;border-radius:12px}
  .inbox.chatting .chat-form .chat-attach.on,.inbox.chatting .chat-form .chat-attach:active{background:var(--blush);color:var(--primary)}
  .inbox.chatting .chat-form .chat-voice.recording{width:auto;height:44px;padding:0 12px;background:var(--primary);color:#fff;border-radius:999px}
  .inbox.chatting .chat-form .chat-input,.inbox.chatting .chat-form > textarea{margin-left:4px}
  .inbox.chatting .chat-form textarea{min-height:44px;height:44px;padding:9px 14px;font-size:16px;line-height:24px;border-radius:22px}
  .inbox.chatting .chat-form > .btn{flex-shrink:0;width:44px;min-width:44px;height:44px;min-height:44px;padding:0;margin-left:4px;border-radius:50%}
  .inbox.chatting .emoji-panel{left:8px;right:8px;width:auto}
}

/* ===== Messages : un texte tres long (lien...) ne fait plus deborder la conversation ===== */
.chat-body{overflow-x:hidden}
.bubble{overflow-wrap:anywhere;word-break:break-word;min-width:0}
.msg-row{min-width:0}
.msg-row .bubble{flex:0 1 auto}
.msg-warn{overflow-wrap:anywhere}
.conv .last{overflow-wrap:anywhere}

/* ===== Telephone : un seul menu, dans la barre du bas (onglet « Menu ») ===== */
@media (max-width:900px){
  .mobile-top{margin:-4px 0 12px}
  .tabbar .tab-more{position:static;display:flex}
  .tabbar .tab-more > summary{position:relative;z-index:61;list-style:none;min-width:56px;min-height:44px;display:flex;flex-direction:column;align-items:center;gap:3px;padding:0;border:0;border-radius:0;background:none;color:var(--muted);font-size:11.5px;font-weight:500;cursor:pointer}
  .tabbar .tab-more[open] > summary,.tabbar .tab-more.active > summary{background:none;color:var(--primary);font-weight:700}
  .tabbar .tab-more[open]::before{content:"";position:fixed;inset:0;z-index:55;background:rgba(20,10,16,.4)}
  .tabbar .mmenu-panel{position:fixed;left:14px;right:14px;top:auto;bottom:calc(92px + env(safe-area-inset-bottom,0px));z-index:60;width:auto;max-height:calc(100vh - 150px);max-height:calc(100dvh - 150px);overflow-y:auto;padding:10px;border-radius:24px}
  .tabbar .mmenu-panel a,.tabbar .mmenu-panel .mmenu-logout{flex-direction:row;justify-content:flex-start;gap:12px;min-width:0;min-height:48px;padding:0 12px;border-radius:12px;background:none;color:var(--ink);font-size:15.5px;font-weight:500}
  .tabbar .mmenu-panel .mmenu-logout{color:var(--primary);font-weight:700}
  .tabbar .mmenu-panel .badge{position:static;margin-left:auto;font-size:12px;padding:2px 8px}
  .tabbar .mmenu-panel .theme-switch{min-height:48px;font-size:15.5px}
}

/* ===== Ordinateur : Messages et Salon anonyme occupent toute la page, sans defilement de la page ===== */
@media (min-width:901px){
  .main:has(> .inbox),.main:has(.chat.salon){display:flex;flex-direction:column;overflow:hidden;padding:24px 32px}
  .main:has(> .inbox) > .footer,.main:has(.chat.salon) > .footer{display:none}
  .main:has(> .inbox) > *,.main:has(.chat.salon) > *{flex-shrink:0}
  .main > .inbox{flex:1 1 0;height:auto;min-height:0}
  .main:has(.chat.salon) > .stack{flex:1 1 0;min-height:0}
  .main:has(.chat.salon) > .stack > *{flex-shrink:0}
  .main:has(.chat.salon) .chat.salon{flex:1 1 0;min-height:0}
  .main:has(.chat.salon) .salon-body{flex:1 1 0;height:auto;min-height:0}
}

/* Message d'erreur au-dessus de la zone d'ecriture */
.chat-note{margin:0;padding:9px 16px;background:var(--warn-bg);color:var(--warn-ink);border-top:1px solid var(--warn-border);font-size:14px;font-weight:500}
.chat-note[hidden]{display:none}

.chat-diag{margin:0;padding:8px 14px;max-height:150px;overflow:auto;background:#111;color:#9fe29f;font:12px/1.45 ui-monospace,Menlo,Consolas,monospace;white-space:pre-wrap;border-top:1px solid #333}


/* ===== Decouvrir : grande photo avec le prenom dessus, boutons fixes en bas, ecran de match ===== */
.dv{display:flex;flex-direction:column;gap:16px}
.dv .photo-main{border-radius:32px}
.dv .photo-main img{position:absolute;inset:0}
.dv-cap{position:absolute;left:0;right:0;bottom:0;padding:96px 24px 22px;background:linear-gradient(180deg,rgba(26,34,45,0) 0%,rgba(26,34,45,.78) 62%,rgba(26,34,45,.94) 100%);color:#fff;display:flex;flex-direction:column;gap:8px;pointer-events:none}
.dv-name{margin:0;font-family:var(--display);font-size:38px;font-weight:700;letter-spacing:-.8px;line-height:1.05;color:#fff;display:flex;align-items:center;gap:10px;flex-wrap:wrap;overflow-wrap:anywhere}
.dv-name .cert svg{width:28px;height:28px}
.dv-where{margin:0;display:flex;align-items:center;gap:6px;font-size:16.5px;color:#fff}
.dv-tags{display:flex;flex-wrap:wrap;gap:6px;margin-top:2px}
.dv-tags span{padding:5px 12px;border-radius:999px;background:var(--primary);color:#fff;font-size:13.5px;font-weight:700}
.dv .photo-dots{z-index:2}.dv .photo-nav{z-index:2}
html[data-design="riviera"] .dv .details{max-width:none}
.dv .pf-common{padding:16px 18px;border-radius:20px;background:var(--blush);color:var(--wine);font-size:15.5px;align-items:center}
.dv>.actions-fixed{margin-top:0;justify-content:center}
@media (min-width:901px){
  .main:has(> .dv){display:flex;flex-direction:column;padding-bottom:16px}
  .main:has(> .dv) > *{flex-shrink:0}
  .main:has(> .dv) > .footer{display:none}
  .main:has(> .dv) > .page-head{margin-bottom:14px}
  .main:has(> .dv) > details.panel{margin-bottom:16px!important}
  .main > .dv{flex:1 1 0;min-height:460px}
  .dv .discover{flex:1 1 0;min-height:0;gap:26px}
  html[data-design="riviera"] .dv .photo-main{width:min(46%,500px);aspect-ratio:auto;box-shadow:0 22px 50px rgba(26,34,45,.14)}
  .dv .details{overflow-y:auto}
  .dv>.actions-fixed{position:static;flex-shrink:0;box-shadow:none}
  .dv>.actions-fixed form,.dv>.actions-fixed form:first-child{flex:0 1 240px}
  .dv>.actions-fixed form:last-child{flex:0 1 300px}
}
@media (max-width:900px){
  .main:has(> .dv) > .page-head{margin-bottom:12px}
  .main:has(> .dv) > .page-head h1{display:none}
  .main:has(> .dv) > details.panel{margin-bottom:12px!important}
  .dv .photo-main{aspect-ratio:auto;height:calc(100vh - 380px);height:calc(100svh - 380px);min-height:300px;border-radius:28px}
  .match-in h2{font-size:38px}
  .match-pics{margin:8px 0 4px}
  .dv-cap{padding:80px 18px 18px}
  .dv-name{font-size:31px}
  .dv-where{font-size:15.5px}
}
@media (prefers-reduced-motion:no-preference){
  .dv .photo-main{animation:dv-in .3s ease;transition:transform .26s ease,opacity .26s ease}
  .dv.go-like .photo-main{transform:translateX(70px) rotate(5deg);opacity:0}
  .dv.go-pass .photo-main{transform:translateX(-70px) rotate(-5deg);opacity:0}
  .dv.go-like form[data-dv="like"] svg{animation:dv-pop .26s ease}
  .match-in{animation:dv-in .35s ease}
  .mp-heart{animation:dv-pop .5s ease .15s both}
}
@keyframes dv-in{from{opacity:0;transform:scale(.97)}to{opacity:1;transform:none}}
@keyframes dv-pop{0%{transform:scale(1)}50%{transform:scale(1.5)}100%{transform:scale(1)}}

.overlay.match{background:linear-gradient(165deg,#BE2F5E 0%,#7A3F92 50%,#2F6DBE 100%);overflow-y:auto;align-items:flex-start;padding:24px 20px}
.match-in{margin:auto;width:100%;max-width:420px;color:#fff;text-align:center;display:flex;flex-direction:column;align-items:center;gap:14px}
.match-tag{padding:7px 16px;border-radius:999px;background:rgba(255,255,255,.17);font-size:13px;font-weight:700;letter-spacing:1px;text-transform:uppercase}
.match-in h2{margin:0;font-family:var(--display);font-size:46px;font-weight:700;letter-spacing:-1.2px;line-height:1;color:#fff}
.match-sub{margin:0;font-size:17px;line-height:1.4;color:#fff}
.match-pics{position:relative;width:300px;max-width:100%;height:200px;margin:18px 0 10px}
.mp{position:absolute;top:10px;width:150px;height:180px;border-radius:28px;border:4px solid #fff;overflow:hidden;background:#F4C2C9;color:#7A1F3F;display:flex;align-items:center;justify-content:center;font-family:var(--display);font-size:56px;font-weight:700;box-shadow:0 18px 40px rgba(26,34,45,.25)}
.mp img{width:100%;height:100%;object-fit:cover}
.mp-a{left:4px;transform:rotate(-7deg)}
.mp-b{right:4px;transform:rotate(7deg)}
.mp-heart{position:absolute;left:50%;top:64px;width:72px;height:72px;margin-left:-36px;border-radius:50%;background:#fff;color:#BE2F5E;display:flex;align-items:center;justify-content:center;box-shadow:0 12px 28px rgba(26,34,45,.3)}
.match-ice{width:100%;box-sizing:border-box;padding:16px 18px;border-radius:22px;background:rgba(255,255,255,.14);text-align:left;display:flex;flex-direction:column;gap:6px;overflow-wrap:anywhere}
.match-ice small{font-size:12.5px;font-weight:700;letter-spacing:.8px;text-transform:uppercase}
.match-ice p{margin:0;font-size:14.5px}
.match-ice blockquote{margin:0;font-family:var(--display);font-size:18px;line-height:1.35}
.match-go{width:100%;box-sizing:border-box;min-height:60px;margin-top:10px;border-radius:20px;background:#fff;color:#1A222D;display:flex;align-items:center;justify-content:center;gap:10px;font-family:var(--display);font-size:19px;font-weight:600;text-decoration:none}
.match-go:hover{background:#F1F4F8;color:#1A222D}
.match-skip{width:100%;box-sizing:border-box;min-height:52px;border-radius:18px;border:2px solid rgba(255,255,255,.4);color:#fff;display:flex;align-items:center;justify-content:center;font-family:var(--display);font-size:17px;font-weight:600;text-decoration:none}
.match-skip:hover{background:rgba(255,255,255,.12);color:#fff}
.dv .photo-dots span.on{background:#fff}
.dv .photo-nav{color:#1A222D}
.dv-tags span.dv-test{background:#fff;color:#1A222D}

/* Ecran de match : tient toujours dans la hauteur visible (barres du navigateur comprises) */
.overlay.match{top:0;left:0;right:0;bottom:auto;height:100vh;height:100dvh;padding:16px 20px;box-sizing:border-box;--ph:clamp(104px,26vh,230px);--ph:clamp(104px,26dvh,230px)}
.match-in{min-height:100%;margin:0 auto;justify-content:center;gap:clamp(8px,1.6vh,14px)}
.match-in h2{font-size:clamp(30px,5.6vh,46px)}
.match-sub{font-size:clamp(15px,2.4vh,17px)}
.match-pics{flex-shrink:0;width:calc(var(--ph)*1.5);height:var(--ph);margin:auto 0}
.mp{top:5%;width:calc(var(--ph)*.75);height:calc(var(--ph)*.9);border-radius:calc(var(--ph)*.14);font-size:calc(var(--ph)*.28)}
.mp-a{left:1%}.mp-b{right:1%}
.mp-heart{top:calc(var(--ph)*.32);width:calc(var(--ph)*.36);height:calc(var(--ph)*.36);margin-left:calc(var(--ph)*-.18)}
.mp-heart svg{width:50%;height:50%}
.match-ice{padding:clamp(10px,1.8vh,16px) 18px}
.match-go{min-height:clamp(52px,7.6vh,60px);margin-top:0;flex-shrink:0}
.match-skip{min-height:clamp(46px,6.6vh,52px);flex-shrink:0}
@media (max-width:900px){.match-in h2{font-size:clamp(28px,5.6vh,38px)}.match-pics{margin:auto 0}}

/* Decouvrir, version epuree : une seule ligne en haut (filtres + likes), boutons dans une zone pleine en bas sur telephone */
.dv-top{display:flex;align-items:flex-start;gap:10px;flex-wrap:wrap;margin-bottom:16px}
.dv-top>details.panel{flex:1 1 0;min-width:0;margin:0!important}
.dv-top>details.panel[open]{flex-basis:100%}
.dv-top>details.panel summary{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.dv-chip{flex-shrink:0;min-height:48px;padding:0 16px;box-sizing:border-box;white-space:nowrap}
html[data-design="riviera"] .chip.chip-dark{color:var(--bg)}
@media (min-width:901px){.main:has(> .dv) > .dv-top{flex-shrink:0}}
@media (max-width:900px){
  .dv-lg{display:none}
  .main:has(> .dv){padding-bottom:176px}
  .main:has(> .dv) > .page-head{display:none}
  .main:has(> .dv) > .mobile-top{margin-bottom:8px}
  .dv-top{margin-bottom:10px;flex-wrap:nowrap}
  .dv-top:has(details[open]){flex-wrap:wrap}
  .dv-top>details.panel{padding:11px 14px;font-size:15px}
  .dv-chip{min-height:46px;padding:0 14px}
  .dv .photo-main{height:calc(100vh - var(--topbar,0px) - 292px);height:calc(100svh - var(--topbar,0px) - 292px);min-height:290px}
  .dv .photo-nav{top:0;height:62%;width:50%;margin:0;border-radius:0;background:none;opacity:0}
  .dv .photo-nav.prev{left:0}.dv .photo-nav.next{right:0}
  .dv-cap{padding:70px 18px 16px;gap:6px}
  .dv-tags{flex-wrap:nowrap;overflow:hidden}
  .dv-tags span{white-space:nowrap}
  .dv>.actions-fixed{position:fixed;left:0;right:0;bottom:0;z-index:30;margin:0;padding:10px 14px 88px;border:0;border-top:1px solid var(--line);border-radius:0;background:var(--bg);box-shadow:0 -8px 24px rgba(26,34,45,.08)}
  .dv>.actions-fixed .btn{min-height:52px}
}

/* Menu du bas sur telephone : barre claire et discrete, onglet actif en couleur avec un petit trait */
@media (max-width:900px){
  html[data-design="riviera"] body .tabbar,html[data-design="riviera"][data-g="homme"] body .tabbar{left:0;right:0;bottom:0;height:auto;padding:0 4px env(safe-area-inset-bottom,0px);border-radius:0;border:0;border-top:1px solid var(--line);background:var(--surface);box-shadow:none;align-items:stretch;justify-content:space-between}
  html[data-design="riviera"] body .tabbar > a,html[data-design="riviera"] body .tabbar .tab-more{flex:1 1 0;min-width:0}
  html[data-design="riviera"] body .tabbar > a,html[data-design="riviera"] body .tabbar .tab-more > summary{position:relative;width:100%;box-sizing:border-box;min-height:60px;padding:0 2px;border-radius:0;background:none;color:var(--muted);font-size:11px;font-weight:500;justify-content:center;gap:4px}
  html[data-design="riviera"] body .tabbar > a.active,html[data-design="riviera"] body .tabbar > a.tab-safe.active,html[data-design="riviera"] body .tabbar .tab-more[open] > summary,html[data-design="riviera"] body .tabbar .tab-more.active > summary{background:none;color:var(--primary);font-weight:700}
  html[data-design="riviera"] body .tabbar > a.active::before,html[data-design="riviera"] body .tabbar .tab-more[open] > summary::before,html[data-design="riviera"] body .tabbar .tab-more.active > summary::before{content:"";position:absolute;top:0;left:50%;width:26px;height:3px;margin-left:-13px;border-radius:0 0 3px 3px;background:var(--primary)}
  html[data-design="riviera"] body .tabbar > a > .badge,html[data-design="riviera"] body .tabbar .tab-more > summary > .badge{position:absolute;top:6px;left:50%;right:auto;margin-left:6px;font-size:10px;padding:1px 6px}
  .tabbar .mmenu-panel{bottom:calc(72px + env(safe-area-inset-bottom,0px))}
  .main{padding-bottom:calc(88px + env(safe-area-inset-bottom,0px))}
  .main:has(> .dv){padding-bottom:calc(150px + env(safe-area-inset-bottom,0px))}
  .dv>.actions-fixed{padding-bottom:calc(70px + env(safe-area-inset-bottom,0px))}
  .dv .photo-main{height:calc(100vh - var(--topbar,0px) - 274px);height:calc(100svh - var(--topbar,0px) - 274px)}
}
@media (max-width:900px){
  .actions-fixed{bottom:calc(72px + env(safe-area-inset-bottom,0px))}
  html[data-design="riviera"] body .savebar{bottom:calc(72px + env(safe-area-inset-bottom,0px))}
}

/* Emojis : le grossissement au survol ne fait plus apparaitre de barres de defilement */
.emoji-grid{overflow-x:hidden;padding:5px;scrollbar-gutter:stable}

/* Decouvrir : en-tete sur une ligne (titre, criteres, likes, bouton Filtres) et filtres dans un panneau */
.dv-head{position:relative;z-index:20;display:flex;align-items:center;gap:10px;margin-bottom:16px;flex-shrink:0}
.dv-title{flex:1 1 0;min-width:0;display:flex;flex-direction:column;gap:2px}
.dv-title h1{margin:0}
.dv-sum{margin:0;font-size:14.5px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.dv-head .dv-chip{min-height:44px}
.dv-filter{position:static}
.dv-filter>summary{list-style:none;cursor:pointer;min-height:44px;gap:8px;white-space:nowrap}
.dv-filter>summary::-webkit-details-marker{display:none}
.dv-filter[open]>summary{border-color:var(--primary);color:var(--primary)}
.fl-panel{position:absolute;right:0;top:calc(100% + 8px);width:min(440px,100%);box-sizing:border-box;padding:20px;border-radius:22px;background:var(--surface);border:1px solid var(--line);box-shadow:0 22px 50px rgba(26,34,45,.18);display:flex;flex-direction:column;gap:16px}
.fl-title{font-family:var(--display);font-size:18px;font-weight:600}
.fl-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.fl-grid .fl-wide{grid-column:1 / -1}
.fl-grid input,.fl-grid select{width:100%;box-sizing:border-box;min-height:46px}
.fl-grid .toggle-chip{align-self:stretch}
.fl-grid .toggle-chip .tc-box{display:flex;width:100%;box-sizing:border-box;min-height:48px;padding:0 14px;border-radius:14px}
.fl-grid .toggle-chip .sw{margin-left:auto}
.fl-more{text-align:center}
@media (max-width:900px){
  .dv-head{margin-bottom:10px}
  .dv-title h1{display:none}
  .dv-sum{font-size:14px;font-weight:500;color:var(--ink)}
  .fl-panel{left:0;right:0;width:auto;padding:16px;max-height:calc(100vh - 220px);max-height:calc(100svh - 220px);overflow-y:auto}
}
@media (max-width:900px){
  .main:has(.dv-filter[open]) .dv>.actions-fixed{display:none}
  .fl-panel{max-height:calc(100vh - var(--topbar,0px) - 200px);max-height:calc(100svh - var(--topbar,0px) - 200px)}
}
@media (max-width:900px){
  .fl-panel{gap:12px;padding:14px 16px;max-height:calc(100vh - var(--topbar,0px) - 186px);max-height:calc(100svh - var(--topbar,0px) - 186px)}
  .fl-grid{gap:10px}.fl-grid input,.fl-grid select{min-height:44px}
}

/* Membre Premium : cadre dore autour du bloc compte (en bas a gauche) */
html[data-design="riviera"] body .acct-premium > summary{border:2px solid #E0A93B;background:linear-gradient(135deg,rgba(224,169,59,.16),rgba(224,169,59,.04));padding:7px 9px}
html[data-design="riviera"] body .acct-premium > summary:hover,html[data-design="riviera"] body .acct-premium[open] > summary{border-color:#E0A93B;background:linear-gradient(135deg,rgba(224,169,59,.26),rgba(224,169,59,.10))}
html[data-design="riviera"] body .acct-premium .acct-av{box-shadow:0 0 0 2px var(--surface),0 0 0 4px #E0A93B}
html[data-design="riviera"] body .acct-txt .acct-gold{display:inline-flex;align-items:center;gap:4px;color:#9A6B0C;font-weight:700;font-size:12.5px}
html[data-theme="dark"][data-design="riviera"] body .acct-txt .acct-gold,html[data-theme="dark"] .mmenu-gold{color:#F0C568}
.acct-gold svg,.mmenu-gold svg{color:#E0A93B;flex-shrink:0}
.mmenu-gold{display:flex;align-items:center;gap:8px;margin:2px 0 6px;padding:8px 12px;border-radius:12px;border:1.5px solid #E0A93B;background:rgba(224,169,59,.12);color:#9A6B0C;font-size:14px;font-weight:700}
.acct-gold{white-space:nowrap}

/* Journal de l'equipe */
.log-table{width:100%;border-collapse:collapse;font-size:14.5px}
.log-table th{text-align:left;font-size:12px;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);padding:8px 10px;border-bottom:1px solid var(--line);white-space:nowrap}
.log-table td{padding:10px;border-bottom:1px solid var(--line);vertical-align:top}
.log-table td:first-child{white-space:nowrap}
.log-table tr:last-child td{border-bottom:0}

/* ===== Accueil : « Comment ca marche » illustre et bloc confiance ===== */
.hw{padding:16px 5vw 48px;display:flex;flex-direction:column;gap:28px}
.hw-head,.tr-head{display:flex;flex-direction:column;gap:8px;align-items:center;text-align:center}
.hw-kicker{padding:6px 14px;border-radius:999px;background:linear-gradient(90deg,#FBE3E6,#E3ECFB);color:#3A2A4A;font-size:13px;font-weight:700}
.hw h2,.tr h2{font-size:36px;letter-spacing:-.6px;margin:0}
.hw-steps{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px}
.hw-step{display:flex;flex-direction:column;border-radius:28px;background:var(--surface);border:1px solid var(--line);overflow:hidden;transition:transform .2s ease,box-shadow .2s ease}
.hw-step:hover{transform:translateY(-4px);box-shadow:0 18px 40px rgba(26,34,45,.12)}
.hw-art{position:relative;height:210px;display:flex;align-items:center;justify-content:center;color:#2D1A26}
.s1 .hw-art{background:#FBE3E6}.s2 .hw-art{background:linear-gradient(120deg,#FBE3E6,#E3ECFB)}.s3 .hw-art{background:#E3ECFB}
.hw-card{background:#fff;border-radius:20px;box-shadow:0 14px 30px rgba(45,26,38,.14)}
.hw-profile{width:170px;padding:18px 16px;display:flex;flex-direction:column;align-items:center;gap:9px;transform:rotate(-3deg)}
.hw-av{width:58px;height:58px;border-radius:50%;background:#F4C2C9;color:#8A4560;display:grid;place-items:center;flex-shrink:0}
.hw-line{height:9px;border-radius:9px;background:#EADDE2}.hw-line.w70{width:70%}.hw-line.w45{width:45%}
.hw-pills{display:flex;gap:6px;margin-top:4px}.hw-pills i{width:36px;height:16px;border-radius:999px;background:#FBE3E6}.hw-pills i:nth-child(2){background:#E3ECFB;width:44px}
.hw-badge{position:absolute;right:calc(50% - 146px);top:20px;display:inline-flex;align-items:center;gap:5px;padding:6px 11px;border-radius:999px;background:#fff;color:#1F5A38;font-size:12.5px;font-weight:700;box-shadow:0 8px 18px rgba(45,26,38,.14)}
.hw-photo{width:132px;height:166px;overflow:hidden;display:flex;flex-direction:column;transform:rotate(2deg)}
.hw-ph{flex-grow:1;background:#C2D4F4;color:#45608A;display:grid;place-items:center}
.hw-name{padding:8px 10px;font-family:var(--display);font-size:14px;font-weight:600;line-height:1.2}.hw-name small{display:block;font-family:var(--body);font-size:11.5px;font-weight:400;color:#6F5B66}
.hw-btn{position:absolute;top:50%;width:52px;height:52px;margin-top:-26px;border-radius:50%;display:grid;place-items:center;box-shadow:0 10px 22px rgba(45,26,38,.18)}
.hw-pass{left:calc(50% - 136px);background:#fff;color:#2D1A26}
.hw-like{left:calc(50% + 84px);background:#BE2F5E;color:#fff;width:60px;height:60px;margin-top:-30px}
.s3 .hw-art{flex-direction:column;gap:9px;padding:0 22px}
.hw-duo{display:flex;align-items:center;margin-bottom:2px}
.hw-duo .hw-av{width:52px;height:52px;border:3px solid #fff}.hw-duo .hw-av.b{background:#C2D4F4;color:#45608A;margin-left:-8px}.hw-duo .hw-av.a{margin-right:-8px}
.hw-heart{position:relative;z-index:1;width:38px;height:38px;border-radius:50%;background:#fff;display:grid;place-items:center;box-shadow:0 6px 14px rgba(45,26,38,.18)}
.hw-bub{max-width:82%;padding:9px 14px;border-radius:16px;font-size:13.5px;line-height:1.3;box-shadow:0 6px 14px rgba(45,26,38,.10)}
.hw-bub.l{align-self:flex-start;background:#fff;color:#2D1A26;border-bottom-left-radius:5px}
.hw-bub.r{align-self:flex-end;background:#2F6DBE;color:#fff;border-bottom-right-radius:5px}
.hw-txt{display:flex;gap:14px;padding:22px 24px 26px}
.hw-txt strong{font-family:var(--display);font-size:20px;line-height:1.25;display:block}
.hw-txt p{margin:6px 0 0;color:var(--muted);font-size:15.5px;line-height:1.45}
.hw-num{flex-shrink:0;display:grid;place-items:center;width:40px;height:40px;border-radius:50%;font-family:var(--display);font-weight:700;font-size:18px;color:#fff;background:#BE2F5E}
.s2 .hw-num{background:linear-gradient(135deg,#BE2F5E,#2F6DBE)}.s3 .hw-num{background:#2F6DBE}
.tr{padding:0 5vw 56px}
.tr-box{border-radius:36px;padding:44px 40px;background:linear-gradient(120deg,#BE2F5E 0%,#7A3F92 50%,#2F6DBE 100%);color:#fff;display:flex;flex-direction:column;gap:30px}
.tr h2{color:#fff}
.tr .hw-kicker{background:rgba(255,255,255,.18);color:#fff}
.tr-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}
.tr-item{padding:22px;border-radius:24px;background:rgba(255,255,255,.14);display:flex;flex-direction:column;gap:8px}
.tr-ico{width:54px;height:54px;border-radius:18px;background:#fff;color:#7A3F92;display:grid;place-items:center;margin-bottom:4px}
.tr-item strong{font-family:var(--display);font-size:19px}
.tr-item p{margin:0;font-size:15px;line-height:1.45;color:rgba(255,255,255,.92)}
.tr-item a{color:#fff;text-decoration:underline}
.tr-badges{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;justify-content:center;gap:10px}
.tr-badges li{display:inline-flex;align-items:center;gap:6px;padding:8px 14px;border-radius:999px;background:rgba(255,255,255,.16);font-size:14px;font-weight:700}
@media (max-width:900px){
  .hw{padding:8px 16px 32px;gap:20px}
  .hw h2,.tr h2{font-size:26px}
  .hw-steps,.tr-grid{grid-template-columns:1fr;gap:14px}
  .hw-art{height:190px}
  .hw-txt{padding:18px 18px 20px}
  .tr{padding:0 16px 36px}
  .tr-box{padding:28px 18px;border-radius:28px;gap:22px}
  .tr-item{padding:18px;flex-direction:row;flex-wrap:wrap;align-items:center;gap:6px 12px}
  .tr-ico{width:44px;height:44px;border-radius:14px;margin:0}
  .tr-item strong{flex:1 1 0}
  .tr-item p{flex-basis:100%}
}
@media (prefers-reduced-motion:reduce){.hw-step{transition:none}.hw-step:hover{transform:none}}

/* Offres : option « certification » a cocher */
.pm-addon{padding:10px 12px;border-radius:14px;border:1.5px dashed var(--primary);background:var(--blush);color:var(--ink)}
.pm-addon strong{color:var(--primary-dark)}
html[data-theme="dark"] .pm-addon strong{color:var(--ink)}

/* Inscription : date de naissance en trois listes */
.birth{border:0;margin:0;padding:0;min-width:0;display:flex;flex-direction:column;gap:6px}
.birth legend{padding:0;margin-bottom:6px;font-size:13px;font-weight:700;color:var(--muted)}
html[data-design="riviera"] .birth legend{font-family:var(--display);font-weight:600;letter-spacing:.2px}
.birth-row{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.4fr) minmax(0,1fr);gap:8px}
.birth-row select{width:100%;min-width:0}

/* Fiche membre (moderation) : photos avec etat visible et boutons clairs */
.mphotos{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:16px}
.mphoto{display:flex;flex-direction:column;border-radius:20px;border:2px solid var(--line);background:var(--surface);overflow:hidden}
.mphoto.is-ok{border-color:#2E9E62}.mphoto.is-no{border-color:#D9485F}.mphoto.is-wait{border-color:#E0A93B}
.mphoto-img{position:relative;display:block;aspect-ratio:3/4;background:var(--line)}
.mphoto-img img{width:100%;height:100%;object-fit:cover;display:block}
.mphoto.is-no .mphoto-img img{filter:grayscale(.7);opacity:.75}
.mphoto-state{position:absolute;left:10px;top:10px;display:inline-flex;align-items:center;gap:5px;padding:5px 11px;border-radius:999px;font-size:12.5px;font-weight:700;color:#fff;box-shadow:0 4px 12px rgba(0,0,0,.25)}
.is-ok .mphoto-state{background:#23804E}.is-no .mphoto-state{background:#C0334B}.is-wait .mphoto-state{background:#B37A0E}
.mphoto-actions{display:flex;flex-direction:column;gap:8px;padding:12px}
.mphoto-actions:empty{display:none}
.mphoto-actions form{display:flex;flex-direction:column;gap:6px;margin:0}
.mphoto-actions select{width:100%;min-height:40px;font-size:13.5px;padding:6px 10px}
html[data-design="riviera"] body .mphoto-ok{background:#23804E;color:#fff;border-color:#23804E}
html[data-design="riviera"] body .mphoto-ok:hover{background:#1B6A40}
html[data-design="riviera"] body .mphoto-actions .btn{min-height:42px;gap:6px}
/* Fiche membre : la liste des motifs de refus peut depasser du cadre de la photo */
.mphoto{overflow:visible}
.mphoto-img{border-radius:18px 18px 0 0;overflow:hidden}
.mphoto:has(.cs-list:not([hidden])){position:relative;z-index:5}
.mphoto-actions .cs-list{right:auto}

/* Profil : pastille « ce que je recherche » mise en avant, ligne metier sur la photo */
.pf-facts li.pf-key,html[data-design="riviera"] .pf-facts li.pf-key{background:var(--primary);color:#fff}
.pf-facts li.pf-key svg{color:#fff}
.dv-sub{font-size:15px;opacity:.95;overflow:hidden}
.dv-sub span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

/* Polices du site, hebergees sur le site (plus aucun chargement depuis Google) */
@font-face{font-family:'Outfit';src:url('../fonts/outfit.woff2') format('woff2'),url('../fonts/outfit.ttf') format('truetype');font-weight:100 900;font-style:normal;font-display:swap}
@font-face{font-family:'Figtree';src:url('../fonts/figtree.woff2') format('woff2'),url('../fonts/figtree.ttf') format('truetype');font-weight:300 900;font-style:normal;font-display:swap}

/* Mon profil : sur ordinateur, les photos sont a droite du formulaire, dans le meme onglet */
@media (min-width:1101px){
  html[data-design="riviera"] body .ptabbed{display:grid;grid-template-columns:minmax(0,1fr) 400px;gap:20px 24px;max-width:1220px;align-items:start}
  html[data-design="riviera"] body .ptabbed > .details{grid-column:1;grid-row:1;min-width:0}
  html[data-design="riviera"] body .ptabbed > #photos{grid-column:2;grid-row:1;position:sticky;top:0;align-self:start}
  html[data-design="riviera"] body .ptabbed.js-on:not(:has(> #photos.on)){grid-template-columns:minmax(0,760px)}
  html[data-design="riviera"] body .ptabbed > #photos .photos-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
}
@media (min-width:1101px){
  html[data-design="riviera"] body .ptabbed > #photos{background:var(--surface);border:1px solid var(--line);border-radius:24px;padding:22px;box-sizing:border-box}
  html[data-design="riviera"] body .ptabbed > #photos h2{font-size:20px}
}

/* Menu du telephone : une vraie page plein ecran, rangee par rubriques, au lieu d'une liste flottante */
@media (max-width:900px){
  html[data-design="riviera"] body .tabbar:has(.tab-more[open]){z-index:90}
  html[data-design="riviera"] body .tabbar .mmenu-panel.mm{position:fixed;left:0;right:0;top:0;bottom:calc(60px + env(safe-area-inset-bottom,0px));width:auto;max-height:none;margin:0;padding:14px 16px 28px;border:0;border-radius:0;box-shadow:none;background:var(--bg);overflow-y:auto;display:flex;flex-direction:column;gap:6px;z-index:60}
  html[data-design="riviera"] body .mm-head{display:flex;align-items:center;gap:12px;padding:4px 2px 10px}
  html[data-design="riviera"] body .mm-head .avatar{width:48px;height:48px;font-size:19px;flex-shrink:0}
  html[data-design="riviera"] body .mm-id{flex:1 1 0;min-width:0;display:flex;flex-direction:column;line-height:1.25}
  html[data-design="riviera"] body .mm-id strong{font-family:var(--display);font-size:18px;color:var(--ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  html[data-design="riviera"] body .mm-id span{font-size:12.5px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  html[data-design="riviera"] body .mm-gold{flex-shrink:0;display:inline-flex;align-items:center;gap:4px;padding:5px 10px;border-radius:999px;border:1.5px solid #E0A93B;background:rgba(224,169,59,.12);color:#9A6B0C;font-size:12.5px;font-weight:700}
  html[data-theme="dark"][data-design="riviera"] body .mm-gold{color:#F0C568}
  html[data-design="riviera"] body .mm-gold svg{color:#E0A93B}
  html[data-design="riviera"] body .mm-close{flex-shrink:0;width:44px;height:44px;border-radius:50%;border:1px solid var(--line);background:var(--surface);color:var(--ink);display:flex;align-items:center;justify-content:center;cursor:pointer;padding:0}
  html[data-design="riviera"] body .mm-label{margin:12px 6px 2px;font-size:11.5px;font-weight:700;letter-spacing:1.2px;text-transform:uppercase;color:var(--muted)}
  html[data-design="riviera"] body .mm-group{flex-shrink:0;display:flex;flex-direction:column;background:var(--surface);border:1px solid var(--line);border-radius:18px;overflow:hidden}
  html[data-design="riviera"] body .tabbar .mm-group > a,html[data-design="riviera"] body .tabbar .mm-group > .theme-switch{display:flex;flex-direction:row;align-items:center;justify-content:flex-start;gap:14px;width:100%;box-sizing:border-box;min-height:54px;padding:0 14px;border-radius:0;border-top:1px solid var(--line);background:none;color:var(--ink);font-size:16px;font-weight:500;text-decoration:none}
  html[data-design="riviera"] body .tabbar .mm-group > :first-child{border-top:0}
  html[data-design="riviera"] body .mm-group > a > svg{color:var(--primary);flex-shrink:0}
  html[data-design="riviera"] body .mm-txt{flex:1 1 0;min-width:0;text-align:left}
  html[data-design="riviera"] body .mm-end{margin-left:auto;display:flex;align-items:center;gap:8px;color:var(--muted)}
  html[data-design="riviera"] body .tabbar .mm-end .badge{position:static;margin:0;font-size:12px;padding:2px 8px}
  html[data-design="riviera"] body .tabbar .mm-group > .theme-switch{justify-content:space-between}
  html[data-design="riviera"] body .tabbar .mm .mmenu-premium{flex-shrink:0;min-height:54px;border-radius:18px;justify-content:center;margin:4px 0 0}
  html[data-design="riviera"] body .tabbar .mm form{margin:18px 0 0;flex-shrink:0}
  html[data-design="riviera"] body .tabbar .mm .mmenu-logout{width:100%;min-height:52px;justify-content:center;border:1px solid var(--line);border-radius:16px;background:var(--surface);color:var(--primary);font-size:16px;font-weight:700;margin:0;cursor:pointer}
}
@media (min-width:901px){.mm-close,.mm-head,.mm-label{display:none}}
@media (max-width:900px){
  html[data-design="riviera"] body .tabbar .mm-group > .theme-switch .ts-label{gap:14px;font-size:16px}
  html[data-design="riviera"] body .tabbar .mm-group > .theme-switch .ts-label svg{color:var(--primary);width:20px;height:20px}
  /* Menu ouvert : seul l'onglet « Menu » est mis en avant dans la barre du bas */
  html[data-design="riviera"] body .tabbar:has(.tab-more[open]) > a.active{color:var(--muted);font-weight:500}
  html[data-design="riviera"] body .tabbar:has(.tab-more[open]) > a.active::before{display:none}
}
@media (max-width:900px){
  /* Le menu est une page pleine : plus de voile gris par-dessus la barre du bas */
  html[data-design="riviera"] body .tabbar .tab-more[open]::before{display:none}
}

/* Icones du menu en deux tons */
html[data-design="riviera"] body .nav a .nvi{color:var(--primary);flex-shrink:0}
html[data-design="riviera"] body .nav a.active .nvi{color:#fff}
html[data-design="riviera"] body .safe-card .nvi{color:inherit}
html[data-theme="dark"][data-design="riviera"] body .nav a:not(.active) .nvi{color:#8FB6F2}
html[data-theme="dark"][data-design="riviera"]:not([data-g="homme"]) body .nav a:not(.active) .nvi{color:#F29BB6}

/* Encart Premium flottant, en bas a droite (ordinateur) */
.pfloat{display:none}
@media (min-width:901px){
  .pfloat{display:block;position:fixed;right:22px;bottom:22px;z-index:35;width:248px}
  .pfloat.pfloat-up{bottom:104px}
  .pfloat .promo-side{margin:0;box-shadow:0 18px 44px rgba(26,34,45,.28)}
  .pfloat-close{position:absolute;right:8px;top:8px;z-index:2;width:28px;height:28px;border-radius:50%;border:0;background:rgba(255,255,255,.22);color:#fff;display:flex;align-items:center;justify-content:center;cursor:pointer;padding:0}
  .pfloat-close:hover{background:rgba(255,255,255,.36)}
  .pfloat-mini{display:none;align-items:center;gap:8px;min-height:44px;padding:0 16px 0 12px;border:0;border-radius:999px;background:linear-gradient(135deg,var(--primary),var(--primary-dark));color:#fff;font-family:var(--display);font-size:15px;font-weight:600;cursor:pointer;box-shadow:0 12px 28px rgba(26,34,45,.28);white-space:nowrap}
  .pfloat-mini svg{color:var(--apricot)}
  .pfloat-mini small{font-family:var(--body);font-size:12px;font-weight:400;opacity:.85}
  .pfloat.is-mini{width:auto}
  .pfloat.is-mini .promo-side,.pfloat.is-mini .pfloat-close{display:none}
  .pfloat.is-mini .pfloat-mini{display:inline-flex}
}
@media (min-width:901px){
  .pfloat a.promo-side{position:relative;overflow:hidden;display:flex;flex-direction:column;align-items:flex-start;gap:8px;padding:16px;border-radius:20px;background:linear-gradient(145deg,#BE2F5E 0%,#7A1F3F 100%);color:#fff;text-decoration:none;transition:transform .15s}
  .pfloat a.promo-side:hover{transform:translateY(-2px);color:#fff}
  .pfloat a.promo-side::after{content:"";position:absolute;right:-30px;top:-30px;width:110px;height:110px;border-radius:50%;background:rgba(255,255,255,.10)}
  html[data-design="riviera"][data-g="homme"] .pfloat a.promo-side{background:linear-gradient(145deg,#2F6DBE 0%,#1F3F7A 100%)}
  .pfloat.is-mini a.promo-side{display:none}
}
/* Messages et Salon : la page laisse une colonne libre a droite pour l'encart Premium, deplie ou reduit */
@media (min-width:1200px){
  body:has(.pfloat.pfloat-up) .app .main{padding-right:292px!important}
  .pfloat.pfloat-up{bottom:22px}
}

/* ===== Correctif d'audit ===== */
/* Piege anti-robots de l'inscription : champ hors de l'ecran */
.hp-field{position:absolute!important;left:-9999px!important;top:auto;width:1px;height:1px;overflow:hidden}
/* Lien d'evitement pour la navigation au clavier */
.skip-link{position:absolute;left:-9999px;top:0}
.skip-link:focus{left:12px;top:12px;z-index:10000;background:#fff;color:#1A222D;padding:10px 16px;border-radius:12px;font-weight:700;box-shadow:0 6px 20px rgba(0,0,0,.25);text-decoration:none}
#contenu:focus{outline:none}
/* Contour visible au clavier la ou il avait ete retire */
.tags-box:focus-within{outline:2px solid var(--primary);outline-offset:2px}
.st-col:focus-visible{outline:2px solid var(--primary);outline-offset:2px;border-radius:6px}
/* Bandeau de maintenance : texte toujours fonce sur l'orange, y compris en theme sombre */
html body .maint-bar,html body .maint-bar a{color:#2D1A26}
/* Theme sombre : boutons principaux assez fonces pour un texte blanc lisible (contraste 4,5 au moins) */
html[data-theme="dark"] body .btn:not(.btn-ghost):not(.btn-danger):not(.btn-dark):not(.mphoto-ok){background:#C93A6D}
html[data-theme="dark"] body .btn:not(.btn-ghost):not(.btn-danger):not(.btn-dark):not(.mphoto-ok):hover{background:#B4305F}
html[data-theme="dark"][data-g="homme"] body .btn:not(.btn-ghost):not(.btn-danger):not(.btn-dark):not(.mphoto-ok){background:#3F74C4}
html[data-theme="dark"][data-g="homme"] body .btn:not(.btn-ghost):not(.btn-danger):not(.btn-dark):not(.mphoto-ok):hover{background:#356AB8}
/* Plus petits textes du site remontes a 11,5 px */
.tabbar .badge,.tag-official{font-size:11.5px}
@media (max-width:900px){
  html[data-design="riviera"] body .tabbar a,html[data-design="riviera"] body .tabbar .tab-more > summary{font-size:11.5px}
  /* Pied de page : liens plus faciles a toucher */
  .footer a{display:inline-flex;align-items:center;min-height:44px;padding:0 4px}
  .footer{align-items:center}
}
/* Accueil sur telephone : l'illustration est reduite pour que le choix « Je suis » soit visible sans faire defiler */
@media (max-width:600px){
  html[data-design="riviera"] body .duo-art{min-height:188px;border-radius:24px}
  html[data-design="riviera"] body .duo-card{width:96px;height:138px;border-radius:14px}
  html[data-design="riviera"] body .duo-card .who{padding:6px 8px} html[data-design="riviera"] body .duo-card .who strong{font-size:12px}
  html[data-design="riviera"] body .duo-card .ph svg{width:44px;height:44px}
  html[data-design="riviera"] body .duo-card.c-f{margin:-80px 0 0 -108px} html[data-design="riviera"] body .duo-card.c-m{margin:-60px 0 0 12px}
  html[data-design="riviera"] body .duo-heart{width:44px;height:44px;margin:-22px 0 0 -22px} html[data-design="riviera"] body .duo-heart svg{width:24px;height:24px}
  html[data-design="riviera"] body .duo-pick-row{flex-direction:row;gap:10px}
  html[data-design="riviera"] body .duo-pick-row a{min-height:56px;font-size:16.5px;gap:7px}
  html[data-design="riviera"] body .hero h1{font-size:34px;line-height:1.1}
  html[data-design="riviera"] body .hero .hero-text > p.muted{font-size:16.5px!important}
}
/* Pages d'erreur */
.err-page{max-width:520px;margin:56px auto;padding:0 16px;text-align:center}
.err-page .err-code{font-family:var(--display,inherit);font-size:64px;font-weight:700;line-height:1;color:var(--primary)}
.err-page h1{font-size:28px;margin:10px 0 8px}
.err-page p{color:var(--muted);margin:0 0 22px}
/* Exception : le bouton de la barre d'enregistrement garde son fond clair */
html[data-theme="dark"] body .savebar .btn:not(.btn-ghost):not(.btn-danger):not(.btn-dark):not(.mphoto-ok),
html[data-theme="dark"] body .savebar .btn:not(.btn-ghost):not(.btn-danger):not(.btn-dark):not(.mphoto-ok):hover,
html[data-theme="dark"][data-g="homme"] body .savebar .btn:not(.btn-ghost):not(.btn-danger):not(.btn-dark):not(.mphoto-ok),
html[data-theme="dark"][data-g="homme"] body .savebar .btn:not(.btn-ghost):not(.btn-danger):not(.btn-dark):not(.mphoto-ok):hover{background:var(--bg)}

/* Decouvrir : bouton rond « Revenir » a gauche de « Passer » (annuler le dernier profil passe) */
html body .actions-fixed form.dv-undo-b,html body .dv>.actions-fixed form.dv-undo-b{flex:0 0 auto}
html body .actions-fixed form.dv-undo-b .btn{width:58px;min-width:58px;min-height:58px;padding:0;border-radius:50%;color:var(--primary)}
html body .actions-fixed form.dv-undo-b + form{flex:0 1 38%}
@media (min-width:901px){html body .dv>.actions-fixed form.dv-undo-b + form{flex:0 1 240px}}
@media (max-width:900px){html body .dv>.actions-fixed form.dv-undo-b .btn{width:52px;min-width:52px;min-height:52px}}

/* Decouvrir, ecrans tactiles : glisser la photo pour aimer ou passer */
.dv .photo-main{touch-action:pan-y}
.dv-stamp{position:absolute;top:22px;z-index:6;padding:8px 16px;border-radius:14px;border:3px solid currentColor;font-family:var(--display,inherit);font-size:24px;font-weight:700;letter-spacing:.5px;text-transform:uppercase;background:rgba(255,255,255,.92);opacity:0;pointer-events:none}
.dv-stamp.is-like{left:18px;color:#BE2F5E;transform:rotate(-10deg)}
html[data-g="homme"] .dv-stamp.is-like{color:#2F6DBE}
.dv-stamp.is-pass{right:18px;color:#3A3340;transform:rotate(10deg)}
.dv-swipe-tip{position:absolute;left:50%;top:50%;z-index:6;transform:translate(-50%,-50%);max-width:78%;padding:10px 16px;border-radius:16px;background:rgba(20,16,22,.78);color:#fff;font-size:14px;font-weight:600;text-align:center;line-height:1.35;pointer-events:none;transition:opacity .5s ease}
.dv-swipe-tip.is-out{opacity:0}
body:has(.dv){overflow-x:clip}

/* Page de maintenance : nouveau logo deux coeurs sur fond clair */
html body .maint-ico.maint-duo{background:#fff;box-shadow:0 10px 28px rgba(45,26,38,.12)}

/* Page Premium : cinq avantages au lieu de quatre */
html body .pm-benefits{grid-template-columns:repeat(5,minmax(0,1fr))}
@media (max-width:1300px){html body .pm-benefits{grid-template-columns:repeat(6,minmax(0,1fr))} html body .pm-benefit{grid-column:span 2} html body .pm-benefit:nth-child(4){grid-column:2 / span 2}}
@media (max-width:1100px){html body .pm-benefits{grid-template-columns:repeat(2,minmax(0,1fr))} html body .pm-benefit,html body .pm-benefit:nth-child(4){grid-column:auto} html body .pm-benefit:last-child{grid-column:1 / -1}}

/* Decouvrir : la page laisse aussi une colonne libre a droite pour l'encart Premium (grands ecrans) */
@media (min-width:1400px){
  body:has(.pfloat.pfloat-dv) .app .main{padding-right:292px!important}
}

/* Cadeau de lancement (Premium offert le premier mois) */
.gift-banner{display:flex;gap:14px;align-items:flex-start;padding:18px 20px;border-radius:22px;background:linear-gradient(135deg,var(--warn-bg,#FFF4E3) 0%,var(--blush) 100%);border:1px solid var(--warn-border,#F2D3A6)}
.gift-banner .gift-ico{flex-shrink:0;width:44px;height:44px;border-radius:14px;display:grid;place-items:center;background:var(--apricot);color:#2D1A26}
.gift-banner strong{display:block;font-family:var(--display);font-size:18px;line-height:1.25;color:var(--ink)}
.gift-banner div > span{display:block;margin-top:4px;font-size:14.5px;line-height:1.45;color:var(--muted)}
.gift-pill{display:flex;gap:10px;align-items:flex-start;padding:12px 14px;border-radius:16px;background:#FFF4E3;border:1px solid #F2D3A6;color:#2D1A26;font-size:14.5px;line-height:1.4;text-align:left}
.gift-pill svg{flex-shrink:0;margin-top:2px;color:#D9822B}
.duo-pick .gift-pill{margin-top:6px}
html body .pfloat-gift .ps-cta{font-size:15px}
html body .mmenu-gift{align-items:flex-start;line-height:1.3}
html body .mmenu-gift small{display:block;font-weight:500;opacity:.8;font-size:12.5px;margin-top:2px}

/* Statistiques : choix de la periode et chiffre en direct */
.st-period{display:inline-flex;gap:4px;padding:4px;border-radius:999px;background:var(--surface);border:1px solid var(--line)}
.st-period a{padding:7px 14px;border-radius:999px;font-size:13.5px;font-weight:700;color:var(--muted);text-decoration:none}
.st-period a.active{background:var(--primary);color:#fff}
.st-live strong::before{content:"";display:inline-block;width:10px;height:10px;margin-right:8px;border-radius:50%;background:#23804E;vertical-align:middle}

/* Aide et contact */
.help-page .help-h{font-size:22px;margin:0}
.help-page .help-cat{font-size:13px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin:14px 0 2px}
.help-q{border-top:1px solid var(--line);padding:2px 0}
.help-q summary{cursor:pointer;list-style:none;display:flex;justify-content:space-between;gap:12px;align-items:center;padding:12px 0;font-weight:700;font-size:15.5px}
.help-q summary::-webkit-details-marker{display:none}
.help-q summary::after{content:"+";flex-shrink:0;font-size:20px;font-weight:500;color:var(--primary);line-height:1}
.help-q[open] summary::after{content:"–"}
.help-q p{margin:0 0 14px;color:var(--muted);line-height:1.5;font-size:15px}
.help-page textarea{width:100%;min-height:140px;resize:vertical}
/* Profil : activite recente */
.pf-active{display:inline-flex;align-items:center;gap:8px;margin:0 0 10px;padding:5px 12px;border-radius:999px;background:var(--surface);border:1px solid var(--line);font-size:13.5px;font-weight:700;color:var(--ink)}
.pf-active .pf-dot{width:9px;height:9px;border-radius:50%;background:#23804E}
/* Decouvrir : elargir la recherche */
.dv-widen{display:flex;flex-direction:column;gap:10px;padding:14px 16px;border-radius:18px;background:var(--blush)}
.dv-widen-row{display:flex;flex-wrap:wrap;gap:8px}
body > .help-page{margin:0 auto;padding:16px 16px 64px;width:100%;box-sizing:border-box}

/* Barres de defilement aux couleurs du site (menus deroulants, panneaux, page), en clair comme en sombre */
*::-webkit-scrollbar{width:12px;height:12px}
*::-webkit-scrollbar-track{background:transparent}
*::-webkit-scrollbar-thumb{background:var(--field);border-radius:999px;border:3px solid transparent;background-clip:padding-box;min-height:36px}
*::-webkit-scrollbar-thumb:hover,*::-webkit-scrollbar-thumb:active{background:var(--primary);border:3px solid transparent;background-clip:padding-box}
*::-webkit-scrollbar-button{display:none;width:0;height:0}
*::-webkit-scrollbar-corner{background:transparent}
@supports (-moz-appearance:none){*{scrollbar-width:thin;scrollbar-color:var(--field) transparent}}
/* Listes des menus deroulants : barre plus fine, dans la couleur du membre */
.cs-list::-webkit-scrollbar{width:10px}
.cs-list::-webkit-scrollbar-thumb{background:var(--rose);border:3px solid transparent;background-clip:padding-box}
.cs-list::-webkit-scrollbar-thumb:hover{background:var(--primary);border:3px solid transparent;background-clip:padding-box}
.cs-list{overscroll-behavior:contain}
@supports (-moz-appearance:none){.cs-list{scrollbar-color:var(--rose) transparent}}
.cs-list::-webkit-scrollbar-track{margin:10px 0}

/* Conseils de securite : bloc « La regle d'or » */
.tips-rule{display:flex;gap:18px;align-items:flex-start;padding:22px 24px;border-radius:24px;background:var(--surface);border:1px solid var(--line);border-left:6px solid var(--apricot);box-shadow:0 10px 28px rgba(45,26,38,.06)}
.tips-rule-ico{flex-shrink:0;width:52px;height:52px;border-radius:16px;display:grid;place-items:center;background:var(--apricot);color:#2D1A26}
.tips-rule-txt{min-width:0;display:flex;flex-direction:column;gap:8px}
.tips-rule-tag{align-self:flex-start;font-size:12px;font-weight:700;letter-spacing:.07em;text-transform:uppercase;color:var(--muted)}
.tips-rule h2{margin:0;font-size:23px;line-height:1.2;color:var(--ink)}
.tips-rule p{margin:0;color:var(--muted);line-height:1.5}
.tips-rule-list{display:flex;flex-wrap:wrap;gap:8px;margin:2px 0 0;padding:0;list-style:none}
.tips-rule-list li{padding:7px 14px;border-radius:999px;background:var(--blush);color:var(--ink);font-size:14.5px;font-weight:600}
.tips-rule .tips-rule-foot{margin-top:4px;padding-top:12px;border-top:1px solid var(--line);color:var(--ink);font-weight:600}
@media (max-width:600px){.tips-rule{flex-direction:column;gap:12px;padding:18px}.tips-rule h2{font-size:20px}}

/* Fleches des photos : pastille sombre et fleche blanche, lisibles sur toute photo et dans tous les themes */
html body .photo-nav{background:rgba(20,16,22,.58);color:#fff;border:1.5px solid rgba(255,255,255,.75);box-shadow:0 4px 14px rgba(0,0,0,.28);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);transition:background .15s ease,transform .15s ease}
html body .dv .photo-nav{color:#fff}
html body .photo-nav svg{width:22px;height:22px;stroke-width:2.6}
html body .photo-nav:hover{background:rgba(20,16,22,.8);transform:scale(1.06)}
html body .photo-nav:focus-visible{outline:3px solid #fff;outline-offset:2px}
@media (max-width:900px){html body .dv .photo-nav,html body .dv .photo-nav:hover{background:none;border:0;box-shadow:none;-webkit-backdrop-filter:none;backdrop-filter:none;transform:none}}

/* Decouvrir : bouton « Revenir » redessine (pastille teintee, fleche dans la couleur du membre) */
html body .actions-fixed form.dv-undo-b .btn{background:var(--blush);border:0;color:var(--primary);box-shadow:inset 0 0 0 1.5px var(--rose);transition:background .15s ease,color .15s ease,transform .15s ease,box-shadow .15s ease}
html body .actions-fixed form.dv-undo-b .btn:hover{background:var(--primary);color:#fff;box-shadow:0 8px 20px rgba(45,26,38,.22);transform:translateY(-1px)}
html body .actions-fixed form.dv-undo-b .btn:hover svg{transform:rotate(-35deg)}
html body .actions-fixed form.dv-undo-b .btn svg{transition:transform .2s ease}
html body .actions-fixed form.dv-undo-b .btn:active{transform:scale(.94)}
html[data-theme="dark"] body .actions-fixed form.dv-undo-b .btn{color:var(--wine)}
html[data-theme="dark"] body .actions-fixed form.dv-undo-b .btn:hover{color:#fff}

/* Menus deroulants : choix indisponible (ex. age maximum plus petit que le minimum) */
.cs-list li[aria-disabled="true"]{opacity:.35;cursor:not-allowed}
.cs-list li[aria-disabled="true"].on{background:none}

/* Page d'un profil : la photo et la fiche occupent toute la largeur disponible (ordinateur) */
@media (min-width:901px){
  html[data-design="riviera"] body .discover.pf-full{gap:28px;align-items:flex-start}
  html[data-design="riviera"] body .discover.pf-full .photo-main{width:min(46%,600px);aspect-ratio:3/4;max-height:calc(100vh - 56px - var(--topbar,0px));position:sticky;top:16px;box-shadow:0 22px 50px rgba(26,34,45,.14)}
  html[data-design="riviera"] body .discover.pf-full .details{max-width:none;flex:1 1 0}
}

/* Pages locales « Rencontres a ... » */
.city{max-width:980px;margin:0 auto;padding:8px 20px 72px;display:flex;flex-direction:column;gap:44px}
.city-hero{display:flex;flex-direction:column;align-items:flex-start;gap:14px;padding:44px 40px;border-radius:36px;background:linear-gradient(120deg,#FBE3E6 0%,#F3E6F3 50%,#E3ECFB 100%);color:#2D1A26}
.city-tag{display:inline-flex;align-items:center;gap:6px;padding:7px 14px;border-radius:999px;background:rgba(255,255,255,.75);font-size:13.5px;font-weight:700}
.city-hero h1{margin:0;font-size:46px;line-height:1.05;letter-spacing:-1px;color:#2D1A26}
.city-lead{margin:0;max-width:640px;font-size:19px;line-height:1.45;color:#4A3A44}
.city-cta{display:flex;flex-wrap:wrap;gap:10px;margin-top:6px}
.city-hero .muted{color:#6F5B66}
.city-block{display:flex;flex-direction:column;gap:16px}
.city-block h2,.city-end h2{margin:0;font-size:28px;line-height:1.15}
.city-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.city-card{padding:22px;display:flex;flex-direction:column;gap:8px}
.city-card h3{margin:0;font-size:19px}
.city-card p{margin:0;color:var(--muted);line-height:1.5}
.city-ideas{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:12px}
.city-ideas li{display:flex;gap:16px;align-items:flex-start;padding:18px 20px;border-radius:22px;background:var(--surface);border:1px solid var(--line)}
.city-num{flex-shrink:0;width:38px;height:38px;border-radius:50%;display:grid;place-items:center;background:var(--blush);color:var(--primary);font-family:var(--display);font-weight:700;font-size:18px}
.city-ideas strong{font-family:var(--display);font-size:18px}
.city-ideas p{margin:4px 0 0;color:var(--muted);line-height:1.5}
.city-near{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:8px}
.city-near li{padding:8px 16px;border-radius:999px;background:var(--surface);border:1px solid var(--line);font-weight:600;font-size:14.5px}
.city-end{display:flex;flex-direction:column;align-items:center;gap:12px;text-align:center;padding:40px 24px;border-radius:32px;background:var(--surface);border:1px solid var(--line)}
.city-end p{margin:0;max-width:520px;color:var(--muted);line-height:1.5}
@media (max-width:800px){.city{gap:32px;padding:0 16px 56px}.city-hero{padding:28px 22px;border-radius:28px}.city-hero h1{font-size:34px}.city-lead{font-size:17px}.city-grid{grid-template-columns:1fr}.city-block h2,.city-end h2{font-size:23px}.city-cta .btn{width:100%}}
.home-cities{display:flex;flex-direction:column;align-items:center;gap:10px;margin-top:28px}
.home-cities .city-near{justify-content:center}
.city-near li:has(a){padding:0}
.city-near a{display:inline-flex;align-items:center;gap:6px;padding:8px 16px;border-radius:999px;color:inherit;text-decoration:none}
.city-near a:hover{color:var(--primary)}
html body .home-cities .city-near li{background:rgba(255,255,255,.18);border:1px solid rgba(255,255,255,.28)}
html body .home-cities .city-near a{color:#fff}
html body .home-cities .city-near li:hover,html body .home-cities .city-near li:focus-within{background:#fff}
html body .home-cities .city-near li:hover a,html body .home-cities .city-near a:focus-visible{color:#BE2F5E}
/* Pages de ville : meme mise en page que l accueil */
.city-hero2 .duo-tags span{display:inline-flex;align-items:center;gap:6px}
html body .hw-step.city-step{border-top:8px solid #FBE3E6}
html body .hw-step.city-step.s2{border-top-color:#EBDDF0}
html body .hw-step.city-step.s3{border-top-color:#E3ECFB}
.city-step .hw-num svg{display:block}
.city-note{text-align:center;margin:0}
.city-end-p{margin:0;max-width:560px;font-size:17px;line-height:1.45;opacity:.92}
html body .tr-box .btn.city-btn-w{align-self:center;background:#fff;color:#7A3F92;border-color:#fff;box-shadow:0 10px 26px rgba(0,0,0,.18)}
html body .tr-box .btn.city-btn-w:hover{background:#FFF4F6;color:#BE2F5E}
.dv-wait{display:flex;gap:12px;align-items:flex-start;margin:0;padding:14px 16px;border-radius:18px;background:var(--blush);color:var(--ink);line-height:1.45}
.dv-wait svg{flex-shrink:0;color:var(--primary);margin-top:2px}
/* Offre Premium reequilibree : 8 avantages, profil devoile de la semaine */
html body .pm-benefits.pm-b8{grid-template-columns:repeat(4,minmax(0,1fr))}
html body .pm-b8 .pm-benefit,html body .pm-b8 .pm-benefit:nth-child(4){grid-column:auto}
@media (max-width:1100px){html body .pm-benefits.pm-b8{grid-template-columns:repeat(2,minmax(0,1fr))}}
.lr-free{display:flex;flex-direction:column;gap:16px;max-width:680px}
.lr-reveal{display:flex;flex-direction:column;gap:14px;border:2px solid var(--primary)}
.lr-kicker{display:inline-flex;align-items:center;gap:6px;align-self:flex-start;padding:6px 12px;border-radius:999px;background:var(--blush);color:var(--primary);font-size:13px;font-weight:700}
.lr-row{display:flex;gap:18px;align-items:flex-start}
.lr-row>.stack-sm{min-width:0;flex:1}
.lr-photo{width:150px;flex-shrink:0}
.lr-name{font-family:var(--display);font-size:20px}
.lr-row .row{flex-wrap:wrap}
html body .card.lr-lock{background:linear-gradient(120deg,#BE2F5E 0%,#7A3F92 55%,#2F6DBE 100%);color:#fff;border:none}
html body .lr-lock h2{color:#fff;margin:0}
html body .lr-lock p{color:rgba(255,255,255,.9);margin:0}
html body .lr-lock .btn{background:#fff;color:#7A3F92;border-color:#fff}
.chip-prem{display:inline-block;padding:2px 9px;border-radius:999px;background:var(--blush);color:var(--primary);font-size:12px;font-weight:700;vertical-align:middle}
@media (max-width:560px){.lr-row{flex-direction:column}.lr-photo{width:100%;max-width:220px}}
/* Coup de coeur */
.crush-note{display:flex;flex-direction:column;gap:6px;padding:16px 18px;border-radius:20px;background:linear-gradient(120deg,#BE2F5E 0%,#7A3F92 55%,#2F6DBE 100%);color:#fff}
.crush-note p{margin:0;font-family:var(--display);font-size:19px;line-height:1.3;overflow-wrap:anywhere}
.crush-note .small{color:rgba(255,255,255,.88)}
.crush-kicker{display:inline-flex;align-items:center;gap:6px;font-size:13px;font-weight:700}
.crush-fold{display:block;padding:14px 16px;border-radius:18px;background:var(--surface);border:1px dashed var(--primary);color:var(--ink);text-decoration:none}
.crush-fold>summary,a.crush-teaser{display:flex;flex-wrap:wrap;align-items:center;gap:8px;font-weight:700;cursor:pointer;list-style:none}
.crush-fold>summary::-webkit-details-marker{display:none}
.crush-fold>summary svg,a.crush-teaser svg{color:var(--primary);flex-shrink:0}
.crush-fold[open]>summary{margin-bottom:12px}
.crush-fold textarea{width:100%;resize:vertical;min-height:64px}
.crush-quote{display:flex;flex-direction:column;gap:2px;margin:0;padding:10px 12px;border-radius:14px;background:var(--blush);color:var(--ink);font-size:14.5px;line-height:1.35;overflow-wrap:anywhere}
.crush-quote .crush-kicker{color:var(--primary);font-size:12px}
/* Coup de coeur : gros bouton rond entre Passer et J aime, et fenetre du petit mot */
html body .actions-fixed .dv-crush-b{--crush-star:#BE2F5E;flex:0 0 auto;position:relative;display:grid;place-items:center;width:68px;height:68px;margin:-8px 4px;padding:0;border:3px solid var(--surface);border-radius:50%;background:linear-gradient(135deg,#BE2F5E 0%,#7A3F92 55%,#2F6DBE 100%);color:#fff;cursor:pointer;text-decoration:none;box-shadow:0 10px 24px rgba(122,63,146,.38);transition:transform .15s ease,box-shadow .15s ease}
html body .actions-fixed .dv-crush-b svg{width:34px;height:34px;transition:transform .2s ease}
html body .actions-fixed .dv-crush-b span{position:absolute;left:50%;bottom:calc(100% + 8px);transform:translateX(-50%);padding:5px 10px;border-radius:999px;background:var(--ink);color:var(--bg);font-size:12px;font-weight:700;white-space:nowrap;opacity:0;pointer-events:none;transition:opacity .15s ease}
html body .actions-fixed .dv-crush-b:hover{transform:translateY(-3px) scale(1.05);box-shadow:0 14px 30px rgba(122,63,146,.5)}
html body .actions-fixed .dv-crush-b:hover svg{transform:scale(1.12)}
html body .actions-fixed .dv-crush-b:hover span,html body .actions-fixed .dv-crush-b:focus-visible span{opacity:1}
html body .actions-fixed .dv-crush-b:active{transform:scale(.94)}
html body .actions-fixed .dv-crush-b:focus-visible{outline:3px solid var(--primary);outline-offset:3px}
@media (max-width:900px){html body .actions-fixed .dv-crush-b{width:60px;height:60px;margin:-6px 2px}html body .actions-fixed .dv-crush-b svg{width:30px;height:30px}}
@media (prefers-reduced-motion:reduce){html body .actions-fixed .dv-crush-b,html body .actions-fixed .dv-crush-b svg{transition:none}}
html body .crush-dialog{background:var(--surface);color:var(--ink);width:min(460px,calc(100vw - 32px))}
.crush-head{display:flex;align-items:center;gap:12px;margin-bottom:12px;color:#BE2F5E;--crush-star:#fff}
.crush-head h3{margin:0;color:var(--ink);font-size:21px}
.crush-dialog textarea{width:100%;resize:vertical;min-height:84px}
.crush-actions{justify-content:flex-end;margin-top:6px}
html body .actions-fixed .dv-crush-b{align-self:center}
@media (max-width:560px){html body .dv>.actions-fixed{gap:8px}html body .dv>.actions-fixed form{min-width:0}html body .dv>.actions-fixed form:not(.dv-undo-b) .btn{padding:0 8px;gap:6px}html body .actions-fixed .dv-crush-b{width:56px;height:56px;margin:-4px 0}html body .actions-fixed .dv-crush-b svg{width:28px;height:28px}}
@media (max-width:560px){html body .dv>.actions-fixed:has(.dv-crush-b) form.dv-undo-b + form,html body .dv>.actions-fixed:has(.dv-crush-b) form:not(.dv-undo-b){flex:1 1 0}}
@media (max-width:420px){html body .dv>.actions-fixed:has(.dv-crush-b):has(.dv-undo-b) form:not(.dv-undo-b) .btn svg{display:none}}
/* Avec le bouton coup de coeur au milieu, Passer et J aime ont la meme largeur */
html body .dv>.actions-fixed:has(.dv-crush-b) form:not(.dv-undo-b){flex:1 1 0}
@media (min-width:901px){html body .dv>.actions-fixed:has(.dv-crush-b) form:not(.dv-undo-b){flex:0 1 270px}}
/* Coup de coeur grise pour les membres gratuits */
html body .actions-fixed .dv-crush-b.dv-crush-off{--crush-star:var(--muted);background:var(--line);color:var(--surface);box-shadow:none;border-color:var(--surface);cursor:help}
html body .actions-fixed a.dv-crush-b.dv-crush-off{cursor:pointer}
html body .actions-fixed .dv-crush-b.dv-crush-off svg{opacity:.95}
html body .actions-fixed .dv-crush-b.dv-crush-off:hover{transform:none;box-shadow:none;background:var(--muted)}
html body .actions-fixed .dv-crush-b.dv-crush-off:hover svg{transform:none}
html body .actions-fixed .dv-crush-b.dv-crush-off span{white-space:normal;width:max-content;max-width:230px;text-align:center;line-height:1.3;padding:8px 12px;border-radius:14px}
html body .actions-fixed .dv-crush-b.dv-crush-off:focus span{opacity:1}
html body .card.lr-crush{border-color:transparent;background:linear-gradient(var(--surface),var(--surface)) padding-box,linear-gradient(120deg,#BE2F5E 0%,#7A3F92 55%,#2F6DBE 100%) border-box;border:2px solid transparent}
.lr-crush .crush-quote{font-family:var(--display);font-size:17px}
html body .maint-bar.maint-soon{background:linear-gradient(90deg,#BE2F5E,#7A3F92,#2F6DBE);color:#fff}
/* Tarifs sur l accueil */
.hp-prices{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px;max-width:900px;width:100%;margin:0 auto}
.hp-price{display:flex;flex-direction:column;gap:10px;padding:26px;border-radius:28px;background:var(--surface);border:1px solid var(--line)}
.hp-name{font-family:var(--display);font-size:22px}
.hp-amount{font-family:var(--display);font-size:30px;font-weight:700}
.hp-amount small{font-size:15px;font-weight:500;color:var(--muted)}
.hp-price ul{margin:0;padding-left:18px;display:flex;flex-direction:column;gap:6px;color:var(--muted);line-height:1.4}
html body .hp-price.hp-prem{background:linear-gradient(120deg,#BE2F5E 0%,#7A3F92 55%,#2F6DBE 100%);border:none;color:#fff}
html body .hp-prem ul,html body .hp-prem .hp-amount small,html body .hp-prem .small{color:rgba(255,255,255,.9)}
html body .hp-prem a{color:#fff}
@media (max-width:800px){.hp-prices{grid-template-columns:1fr;gap:14px}.hp-price{padding:20px}}
/* Curseur double de tranche d age */
.age-range{display:flex;flex-direction:column;gap:10px;margin-top:4px;padding-top:12px;border-top:1px solid rgba(0,0,0,.06)}
.age-range-head{display:flex;justify-content:space-between;align-items:baseline;gap:10px;font-size:14px}
.age-range-head strong{font-family:var(--display);font-size:17px;color:var(--primary)}
.age-range-track{position:relative;height:28px}
.age-range-track::before{content:"";position:absolute;left:0;right:0;top:12px;height:5px;border-radius:5px;background:linear-gradient(90deg,var(--line) 0 var(--a),var(--primary) var(--a) var(--b),var(--line) var(--b) 100%)}
.age-range-track input[type=range]{position:absolute;inset:0;width:100%;height:28px;margin:0;background:none;pointer-events:none;-webkit-appearance:none;appearance:none;z-index:2}
.age-range-track input[type=range]::-webkit-slider-runnable-track{background:none;border:none;height:28px}
.age-range-track input[type=range]::-moz-range-track{background:none;border:none}
.age-range-track input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;pointer-events:auto;width:24px;height:24px;margin-top:2px;border-radius:50%;background:#fff;border:3px solid var(--primary);box-shadow:0 2px 6px rgba(0,0,0,.2);cursor:grab}
.age-range-track input[type=range]::-moz-range-thumb{pointer-events:auto;width:18px;height:18px;border-radius:50%;background:#fff;border:3px solid var(--primary);box-shadow:0 2px 6px rgba(0,0,0,.2);cursor:grab}
.age-range-track input[type=range]:focus-visible::-webkit-slider-thumb{outline:3px solid var(--primary);outline-offset:2px}

/* Filtres : curseur d'age dans le volet */
html body .age-range-fl{margin-top:0;padding-top:0;border-top:0;gap:6px}
html body .age-range-fl .age-range-head{font-size:14px;font-weight:600}
html body .age-range-fl .age-range-head strong{font-size:16px}
html body .age-range-track input[type=range]{height:28px;min-height:0;max-height:28px;padding:0;border:0;box-shadow:none;border-radius:0;background:none}
/* Curseur d'age : pas de cadre au clic ; anneau discret seulement au clavier */
html body .age-range-track input[type=range]:focus{outline:none;box-shadow:none;border:0;background:none}
html body .age-range-track input[type=range]:focus::-webkit-slider-thumb{outline:none}
html body .age-range-track input[type=range]:focus-visible::-webkit-slider-thumb{box-shadow:0 0 0 4px color-mix(in srgb,var(--primary) 25%,transparent),0 2px 6px rgba(0,0,0,.2)}
html body .age-range-track input[type=range]:focus-visible::-moz-range-thumb{box-shadow:0 0 0 4px color-mix(in srgb,var(--primary) 25%,transparent),0 2px 6px rgba(0,0,0,.2)}

/* Page « ouvre bientot » : liens vers le site */
html body .maint-links{display:flex;gap:10px;flex-wrap:wrap;justify-content:center;margin-top:4px}

/* Pages publiques : boutons principaux en degrade rose > violet > bleu, comme les e-mails */
html body.pub .btn:not(.btn-ghost):not(.btn-dark):not(.city-btn-w){background-color:#7A3F92;background-image:linear-gradient(120deg,#BE2F5E 0%,#7A3F92 55%,#2F6DBE 100%);border-color:transparent;color:#fff;box-shadow:0 8px 20px rgba(122,63,146,.22);transition:filter .15s,box-shadow .15s,transform .15s}
html body.pub .btn:not(.btn-ghost):not(.btn-dark):not(.city-btn-w):hover{filter:brightness(1.08);box-shadow:0 10px 26px rgba(122,63,146,.32);transform:translateY(-1px);color:#fff}
html body.pub input:not([type=checkbox]):not([type=radio]):not([type=range]):focus,html body.pub select:focus,html body.pub textarea:focus{outline:3px solid rgba(122,63,146,.18);border-color:#7A3F92}
html[data-theme="dark"] body.pub .btn:not(.btn-ghost):not(.btn-dark):not(.city-btn-w){box-shadow:0 8px 20px rgba(0,0,0,.35)}

/* Logo en degrade (coeurs + mot LoveMe), partout sur le site */
html body .logo.logo-grad .lm-word{font-weight:800;letter-spacing:-.5px;color:#7A3F92;background:linear-gradient(120deg,#BE2F5E 0%,#7A3F92 55%,#2F6DBE 100%);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}
html[data-theme="dark"] body .logo.logo-grad .lm-word{background:linear-gradient(120deg,#E0587F 0%,#A56BC4 55%,#5B93E0 100%);-webkit-background-clip:text;background-clip:text}

/* Admin acquisition : QR code du lien suivi */
.acq-qr{display:flex;gap:18px;align-items:center;flex-wrap:wrap}
.acq-qr-img{width:168px;height:168px;flex-shrink:0;background:#fff;border-radius:12px;padding:6px;border:1px solid var(--field)}
.acq-qr-img svg{display:block;width:100%;height:100%}
