
:root{
  --player-h: 0px;   /* mis à jour dynamiquement par JS quand le lecteur est visible */
  --nav-h: 62px;     /* hauteur bottom-nav */
  --safe-bottom: env(safe-area-inset-bottom, 0px);
  --bg:#1a0a28;--surface:#230d35;--surface2:#2c1040;--border:rgba(255,45,155,0.15);--text:#fff0f8;--muted:#b088c0;--pink:#ff2d9b;--cyan:#00e5ff;--amber:#ffd700;--green:#00ffaa;--red:#ff4466;--purple:#cc44ff;--taxi-gold:#ffd700;--taxi-dark:#1a0a28;}
html{overflow-x:hidden;max-width:100vw;scrollbar-gutter:stable;overflow-y:scroll;}
*{margin:0;padding:0;box-sizing:border-box;-webkit-tap-highlight-color:transparent;}
body{background:var(--bg);color:var(--text);font-family:'DM Sans',sans-serif;min-height:100vh;overflow-x:hidden;padding-bottom:calc(var(--nav-h) + var(--player-h));padding-top:116px;max-width:100%;width:100%;}
body::before{content:'';position:fixed;inset:0;background:radial-gradient(ellipse at 10% 10%,rgba(255,45,155,0.12) 0%,transparent 50%),radial-gradient(ellipse at 90% 30%,rgba(0,229,255,0.10) 0%,transparent 50%),radial-gradient(ellipse at 50% 90%,rgba(204,68,255,0.08) 0%,transparent 50%);pointer-events:none;z-index:0;/* PERF: will-change supprimé — fond statique, pas d'animation */}
/* Optimisation GPU pour les éléments animés */
.live-dot,.heb-dot,.dispo-updated-dot,.cef-live,.hero-eyebrow-dot{will-change:opacity,transform;}
@keyframes pulse{0%,100%{opacity:1;transform:scale(1)}50%{opacity:0.4;transform:scale(0.7)}}
@keyframes fadeIn{from{opacity:0}to{opacity:1}}

/* ═══════════════════════════════════════════════════════════════ */
/* ══ STABILISER LE LAYOUT — Éviter les sauts latéraux ══════════ */
/* ═══════════════════════════════════════════════════════════════ */
main, section, .pane, .tab-pane, [role="tabpanel"] {
  width: 100%;
  overflow-x: hidden;
}

/* ══ ACTIVER le scroll latéral UNIQUEMENT où c'est pertinent ══ */
.soc-tabs, .socpub-filter-row, .igm-steps, .header-guide-bar,
.demo-nav-profil, .af-filter-row {
  overflow-x: auto !important;
}

/* ══ FORUM PUBLICATION CHIPS ══ */
.forum-fchip{flex-shrink:0;padding:0.35rem 0.8rem;border-radius:20px;border:1.5px solid rgba(255,255,255,0.1);font-size:0.72rem;font-weight:700;cursor:pointer;background:rgba(255,255,255,0.04);color:var(--muted);transition:all 0.2s;white-space:nowrap;}
.forum-fchip.active{background:rgba(255,45,155,0.15);border-color:rgba(255,45,155,0.5);color:var(--pink);}
/* ══ FORUM CARDS ══ */
.forum-card{background:var(--surface);border:1.5px solid rgba(255,255,255,0.07);border-radius:16px;padding:1rem;margin-bottom:0.85rem;transition:border-color 0.2s;}
.forum-card:hover{border-color:rgba(255,45,155,0.25);}
.forum-card-header{display:flex;align-items:center;gap:0.65rem;margin-bottom:0.7rem;}
.forum-card-avatar{width:38px;height:38px;border-radius:50%;background:linear-gradient(135deg,var(--pink),var(--purple));display:flex;align-items:center;justify-content:center;font-weight:800;font-size:0.95rem;color:#fff;flex-shrink:0;}
.forum-card-meta{flex:1;min-width:0;}
.forum-card-author{font-weight:700;font-size:0.82rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.forum-card-time{font-size:0.65rem;color:var(--muted);margin-top:0.05rem;}
.forum-card-text{font-size:0.83rem;line-height:1.6;margin-bottom:0.65rem;word-break:break-word;}
.forum-card-media-grid{display:grid;gap:3px;border-radius:12px;overflow:hidden;margin-bottom:0.65rem;}
.forum-card-media-grid.g1{grid-template-columns:1fr;}
.forum-card-media-grid.g2{grid-template-columns:1fr 1fr;}
.forum-card-media-grid.g3{grid-template-columns:1fr 1fr 1fr;}
.forum-card-img{width:100%;object-fit:cover;display:block;cursor:pointer;}
.forum-card-img.tall{height:220px;}
.forum-card-img.short{height:130px;}
.forum-card-video{width:100%;max-height:280px;border-radius:10px;display:block;background:#000;}
.forum-card-actions{display:flex;gap:0.4rem;margin-top:0.5rem;}
.forum-action-btn{flex:1;display:flex;align-items:center;justify-content:center;gap:0.3rem;padding:0.42rem 0.3rem;border-radius:10px;border:1px solid rgba(255,255,255,0.08);background:rgba(255,255,255,0.03);font-size:0.72rem;font-weight:700;color:var(--muted);cursor:pointer;transition:all 0.18s;}
.forum-action-btn:active{transform:scale(0.96);}
.forum-action-btn.liked{color:var(--pink);border-color:rgba(255,45,155,0.3);background:rgba(255,45,155,0.07);}
/* ══ FORUM COMMENTS ══ */
.forum-comments-section{margin-top:0.6rem;border-top:1px solid rgba(255,255,255,0.06);padding-top:0.6rem;display:none;}
.forum-comment{display:flex;gap:0.5rem;margin-bottom:0.5rem;}
.forum-comment-avatar{width:28px;height:28px;border-radius:50%;background:linear-gradient(135deg,var(--cyan),var(--purple));display:flex;align-items:center;justify-content:center;font-size:0.68rem;font-weight:800;color:#fff;flex-shrink:0;}
.forum-comment-bubble{background:rgba(255,255,255,0.04);border:1px solid rgba(255,255,255,0.07);border-radius:12px 12px 12px 4px;padding:0.45rem 0.65rem;flex:1;}
.forum-comment-author{font-size:0.68rem;font-weight:700;color:var(--cyan);margin-bottom:0.15rem;}
.forum-comment-text{font-size:0.75rem;line-height:1.5;color:var(--text);}
.forum-comment-input-row{display:flex;gap:0.4rem;margin-top:0.5rem;align-items:flex-end;}
.forum-comment-input{flex:1;background:rgba(255,255,255,0.04);border:1px solid rgba(255,255,255,0.1);border-radius:12px;color:var(--text);font-family:'DM Sans',sans-serif;font-size:0.78rem;padding:0.45rem 0.7rem;outline:none;resize:none;max-height:90px;}
.forum-comment-send{background:linear-gradient(135deg,var(--pink),var(--purple));border:none;border-radius:10px;color:#fff;font-size:1rem;width:36px;height:36px;cursor:pointer;flex-shrink:0;}
/* ══ EMOJI PICKER ══ */
.forum-emoji-picker{display:none;position:absolute;bottom:calc(100% + 6px);right:0;background:var(--surface2);border:1px solid rgba(255,45,155,0.25);border-radius:14px;padding:0.5rem;z-index:50;display:flex;flex-wrap:wrap;gap:0.25rem;width:220px;max-height:150px;overflow-y:auto;}
/* ══ FORUM PUBLISH MODAL ══ */
#forumPubModal{display:none;position:fixed;inset:0;z-index:700;background:rgba(0,0,0,0.88);backdrop-filter:blur(12px);align-items:flex-end;justify-content:center;}
#forumPubModal.open{display:flex;}
.forum-modal-sheet{background:var(--surface);border-radius:24px 24px 0 0;width:100%;max-width:520px;max-height:92vh;overflow-y:auto;padding-bottom:env(safe-area-inset-bottom,12px);}
.forum-modal-body{padding:1rem 1.1rem 0.5rem;}
.forum-modal-footer{padding:0.75rem 1.1rem;border-top:1px solid rgba(255,255,255,0.07);position:sticky;bottom:0;background:var(--surface);}
.forum-type-chip{padding:0.3rem 0.75rem;border-radius:20px;border:1.5px solid rgba(255,255,255,0.1);font-size:0.72rem;font-weight:700;cursor:pointer;background:rgba(255,255,255,0.03);color:var(--muted);transition:all 0.2s;white-space:nowrap;flex-shrink:0;}
.forum-type-chip.active{background:rgba(255,45,155,0.15);border-color:rgba(255,45,155,0.5);color:var(--pink);}
.forum-submit-btn{width:100%;background:linear-gradient(135deg,var(--pink),var(--purple));border:none;border-radius:14px;color:#fff;font-family:'Syne',sans-serif;font-weight:800;font-size:0.9rem;padding:0.85rem;cursor:pointer;transition:all 0.2s;}
.forum-submit-btn:disabled{opacity:0.45;cursor:not-allowed;}
.forum-media-btn{display:flex;align-items:center;gap:0.4rem;padding:0.45rem 0.8rem;border-radius:10px;border:1.5px solid rgba(255,255,255,0.1);background:rgba(255,255,255,0.03);color:var(--muted);font-size:0.73rem;font-weight:700;cursor:pointer;transition:all 0.18s;white-space:nowrap;}
.forum-media-btn:hover{border-color:rgba(255,45,155,0.35);color:var(--pink);}
.forum-daily-dot{width:11px;height:11px;border-radius:3px;background:rgba(255,255,255,0.1);}
.forum-daily-dot.used{background:var(--amber);}
.forum-daily-dot.vid.used{background:var(--cyan);}
/* ══ MEDIA GRID OVERLAYS ══ */
.fm-overlay-more{position:absolute;inset:0;background:rgba(0,0,0,0.58);display:flex;align-items:center;justify-content:center;font-family:'Syne',sans-serif;font-size:1.35rem;font-weight:900;color:#fff;letter-spacing:-0.02em;z-index:2;}
.fm-vid-badge{position:absolute;bottom:7px;left:7px;background:rgba(0,0,0,0.68);border-radius:50%;width:26px;height:26px;display:flex;align-items:center;justify-content:center;font-size:0.7rem;color:#fff;z-index:2;}

/* ══════════════════════════════════════════════════════════════
   ══ OPTION 1 — FLASH ÉVÉNEMENT (bandeau dans la carte)       ══
   ══════════════════════════════════════════════════════════════ */
/* ══ IMPORT MAPS — GALERIE PHOTOS ══════════════════════════════ */
.igm-gallery-panel{background:rgba(0,229,255,0.04);border:1.5px solid rgba(0,229,255,0.2);border-radius:16px;padding:1.1rem;margin-top:1rem;}
.igm-gallery-title{font-family:'Syne',sans-serif;font-size:0.9rem;font-weight:800;color:var(--cyan);display:flex;align-items:center;gap:0.5rem;margin-bottom:0.25rem;}
.igm-gallery-sub{font-size:0.68rem;color:var(--muted);line-height:1.5;margin-bottom:1rem;}
.igm-etab-picker{width:100%;background:var(--surface);border:1.5px solid rgba(0,229,255,0.25);border-radius:10px;color:var(--text);padding:0.6rem 0.75rem;font-size:0.82rem;font-family:'DM Sans',sans-serif;margin-bottom:1rem;outline:none;}
.igm-etab-picker:focus{border-color:rgba(0,229,255,0.55);}
.igm-gallery-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:0.45rem;margin-bottom:0.75rem;}
.igm-gallery-thumb{position:relative;aspect-ratio:1;border-radius:10px;overflow:hidden;background:rgba(255,255,255,0.04);border:2px solid rgba(255,255,255,0.07);cursor:pointer;transition:all 0.2s;}
.igm-gallery-thumb:hover{border-color:rgba(0,229,255,0.4);}
.igm-gallery-thumb img{width:100%;height:100%;object-fit:cover;display:block;}
.igm-gallery-thumb.igm-profile-thumb{border-color:var(--amber);box-shadow:0 0 10px rgba(255,215,0,0.35);}
.igm-gallery-thumb .igm-profile-crown{position:absolute;top:4px;left:4px;background:var(--amber);color:#1a0a28;font-size:0.58rem;font-weight:900;padding:0.12rem 0.35rem;border-radius:5px;z-index:3;text-transform:uppercase;letter-spacing:0.05em;}
.igm-gallery-thumb .igm-thumb-del{position:absolute;top:4px;right:4px;background:rgba(255,68,102,0.85);border:none;color:#fff;width:20px;height:20px;border-radius:50%;font-size:0.6rem;cursor:pointer;display:flex;align-items:center;justify-content:center;z-index:3;opacity:0;transition:opacity 0.15s;}
.igm-gallery-thumb:hover .igm-thumb-del{opacity:1;}
.igm-gallery-thumb .igm-set-profile-btn{position:absolute;bottom:0;left:0;right:0;background:rgba(0,0,0,0.72);border:none;color:var(--amber);font-size:0.58rem;font-weight:800;font-family:'Syne',sans-serif;padding:0.28rem 0.2rem;cursor:pointer;opacity:0;transition:opacity 0.15s;text-align:center;text-transform:uppercase;letter-spacing:0.04em;}
.igm-gallery-thumb:hover .igm-set-profile-btn{opacity:1;}
.igm-gallery-add{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:0.3rem;aspect-ratio:1;border-radius:10px;border:2px dashed rgba(0,229,255,0.3);background:rgba(0,229,255,0.03);color:var(--cyan);font-size:1.4rem;cursor:pointer;transition:all 0.2s;}
.igm-gallery-add:hover{border-color:rgba(0,229,255,0.6);background:rgba(0,229,255,0.07);}
.igm-gallery-add small{font-size:0.55rem;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:0.05em;}
.igm-perm-row{display:flex;align-items:center;justify-content:space-between;background:rgba(255,215,0,0.06);border:1px solid rgba(255,215,0,0.2);border-radius:10px;padding:0.65rem 0.85rem;margin-bottom:0.75rem;gap:0.5rem;}
.igm-perm-label{font-size:0.73rem;font-weight:700;color:var(--amber);flex:1;}
.igm-perm-sub{font-size:0.6rem;color:var(--muted);line-height:1.4;margin-top:0.1rem;}
.igm-perm-toggle{position:relative;width:38px;height:21px;flex-shrink:0;}
.igm-perm-toggle input{opacity:0;width:0;height:0;position:absolute;}
.igm-perm-slider{position:absolute;inset:0;background:rgba(255,255,255,0.1);border-radius:21px;cursor:pointer;transition:0.25s;}
.igm-perm-slider:before{content:'';position:absolute;width:15px;height:15px;left:3px;top:3px;background:#fff;border-radius:50%;transition:0.25s;}
.igm-perm-toggle input:checked+.igm-perm-slider{background:var(--amber);}
.igm-perm-toggle input:checked+.igm-perm-slider:before{transform:translateX(17px);}
.igm-gallery-status{font-size:0.68rem;color:var(--muted);text-align:center;padding:0.4rem;min-height:1.4rem;}
.igm-gallery-status.ok{color:var(--green);}
.igm-gallery-status.err{color:var(--red);}
.igm-gallery-uploading{display:flex;align-items:center;gap:0.4rem;font-size:0.7rem;color:var(--cyan);}
.igm-gallery-uploading .igm-spin{width:14px;height:14px;border:2px solid rgba(0,229,255,0.25);border-top-color:var(--cyan);border-radius:50%;animation:igmSpin 0.7s linear infinite;flex-shrink:0;}
@keyframes igmSpin{to{transform:rotate(360deg)}}
.igm-profile-preview{display:flex;align-items:center;gap:0.75rem;background:rgba(255,215,0,0.05);border:1px solid rgba(255,215,0,0.25);border-radius:12px;padding:0.75rem;margin-bottom:0.75rem;}
.igm-profile-preview img{width:56px;height:56px;border-radius:50%;object-fit:cover;border:2.5px solid var(--amber);flex-shrink:0;}
.igm-profile-preview-placeholder{width:56px;height:56px;border-radius:50%;background:rgba(255,215,0,0.1);border:2px dashed rgba(255,215,0,0.3);flex-shrink:0;display:flex;align-items:center;justify-content:center;font-size:1.3rem;}
.igm-profile-preview-info{flex:1;min-width:0;}
.igm-profile-preview-lbl{font-size:0.62rem;font-weight:800;color:var(--amber);text-transform:uppercase;letter-spacing:0.06em;margin-bottom:0.15rem;}
.igm-profile-preview-name{font-size:0.8rem;font-weight:700;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.igm-profile-preview-status{font-size:0.62rem;color:var(--muted);margin-top:0.1rem;}
/* ══ IMPORT GOOGLE MAPS PANEL ══════════════════════════════════ */
.igm-steps{display:flex;gap:0.4rem;margin-bottom:1.2rem;overflow-x:auto;padding-bottom:0.2rem;}
.igm-step{display:flex;align-items:center;gap:0.35rem;padding:0.38rem 0.7rem;border-radius:20px;border:1px solid rgba(255,45,155,0.18);font-size:0.68rem;font-weight:700;white-space:nowrap;color:var(--muted);background:var(--surface2);transition:all 0.25s;}
.igm-step.igm-active{background:rgba(0,255,170,0.1);border-color:rgba(0,255,170,0.4);color:var(--green);}
.igm-step.igm-done{background:rgba(0,255,170,0.06);border-color:rgba(0,255,170,0.25);color:var(--green);opacity:0.6;}
.igm-step-num{width:16px;height:16px;border-radius:50%;background:currentColor;color:var(--bg);display:flex;align-items:center;justify-content:center;font-size:0.58rem;font-weight:900;flex-shrink:0;}
.igm-section{display:none;}
.igm-section.igm-active{display:block;}
.igm-panel{background:var(--surface2);border:1px solid rgba(255,45,155,0.18);border-radius:16px;padding:1.2rem;margin-bottom:1rem;}
.igm-panel-title{font-family:'Syne',sans-serif;font-size:0.9rem;font-weight:800;margin-bottom:0.4rem;display:flex;align-items:center;gap:0.4rem;}
.igm-panel-sub{font-size:0.7rem;color:var(--muted);line-height:1.5;margin-bottom:1rem;}
.igm-cat-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:0.45rem;margin-bottom:1rem;}
.igm-cat-btn{background:rgba(255,255,255,0.03);border:1.5px solid rgba(255,45,155,0.18);border-radius:11px;padding:0.6rem 0.35rem;text-align:center;cursor:pointer;transition:all 0.2s;user-select:none;}
.igm-cat-btn.igm-cat-sel{border-color:var(--green);background:rgba(0,255,170,0.08);}
.igm-cat-icon{font-size:1.3rem;display:block;margin-bottom:0.15rem;}
.igm-cat-name{font-size:0.58rem;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:0.04em;}
.igm-cat-btn.igm-cat-sel .igm-cat-name{color:var(--green);}
.igm-cat-count{font-size:0.52rem;color:var(--cyan);margin-top:0.1rem;font-weight:700;}
.igm-btn{display:inline-flex;align-items:center;justify-content:center;gap:0.4rem;padding:0.65rem 1.2rem;border-radius:10px;font-family:'DM Sans',sans-serif;font-weight:700;font-size:0.82rem;cursor:pointer;border:none;transition:all 0.2s;width:100%;}
.igm-btn:active{transform:scale(0.97);}
.igm-btn-primary{background:linear-gradient(135deg,var(--pink),var(--purple));color:#fff;box-shadow:0 4px 16px rgba(255,45,155,0.28);}
.igm-btn-primary:disabled{opacity:0.4;cursor:not-allowed;transform:none;}
.igm-btn-green{background:linear-gradient(135deg,#00c878,var(--green));color:#001a0e;box-shadow:0 4px 14px rgba(0,255,170,0.22);}
.igm-btn-outline{background:transparent;border:1.5px solid rgba(255,255,255,0.15);color:var(--muted);}
.igm-btn-sm{padding:0.3rem 0.7rem;font-size:0.68rem;border-radius:7px;width:auto;}
.igm-stat-row{display:grid;grid-template-columns:repeat(3,1fr);gap:0.5rem;margin-bottom:1rem;}
.igm-stat-chip{background:rgba(255,255,255,0.03);border:1px solid rgba(255,255,255,0.07);border-radius:11px;padding:0.65rem;text-align:center;}
.igm-stat-val{font-family:'Syne',sans-serif;font-size:1.2rem;font-weight:800;}
.igm-stat-lbl{font-size:0.56rem;color:var(--muted);margin-top:0.08rem;font-weight:700;text-transform:uppercase;letter-spacing:0.04em;}
.igm-results-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:0.7rem;flex-wrap:wrap;gap:0.4rem;}
.igm-results-count{font-size:0.7rem;color:var(--muted);}
.igm-results-count strong{color:var(--cyan);}
.igm-result-card{background:rgba(255,255,255,0.03);border:2.5px solid rgba(255,255,255,0.07);border-radius:10px;padding:0.75rem;margin-bottom:0.45rem;display:flex;align-items:flex-start;gap:0.65rem;transition:all 0.15s;cursor:pointer;}
.igm-result-card:hover{border-color:rgba(255,45,155,0.3);}
.igm-result-card.igm-rc-sel{border-color:rgba(0,255,170,0.4);background:rgba(0,255,170,0.04);}

/* ══════════════════════════════════════════════════════════════
   ══ BORDURES COLORÉES PAR TYPE D'ÉTABLISSEMENT               ══
   ══════════════════════════════════════════════════════════════ */
   
/* Restaurant — Bordure DORÉ/ORANGE VIF */
.igm-result-card.card-restaurant{border-color:#ff9500;box-shadow:0 0 10px rgba(255,149,0,0.25),inset 0 0 8px rgba(255,149,0,0.1);}
.igm-result-card.card-restaurant:hover{border-color:#ffb000;box-shadow:0 0 15px rgba(255,149,0,0.4),inset 0 0 8px rgba(255,149,0,0.15);}

/* Bar — Bordure ROSE/MAGENTA VIF */
.igm-result-card.card-bar{border-color:#ff1493;box-shadow:0 0 10px rgba(255,20,147,0.25),inset 0 0 8px rgba(255,20,147,0.1);}
.igm-result-card.card-bar:hover{border-color:#ff3cb0;box-shadow:0 0 15px rgba(255,20,147,0.4),inset 0 0 8px rgba(255,20,147,0.15);}


/* Boîte de nuit — Bordure VIOLET/POURPRE VIF */
.igm-result-card.card-nightclub{border-color:#cc44ff;box-shadow:0 0 10px rgba(204,68,255,0.25),inset 0 0 8px rgba(204,68,255,0.1);}
.igm-result-card.card-nightclub:hover{border-color:#dd66ff;box-shadow:0 0 15px rgba(204,68,255,0.4),inset 0 0 8px rgba(204,68,255,0.15);}

/* Café — Bordure VERT CITRON/LIME VIF */
.igm-result-card.card-cafe{border-color:#00ffaa;box-shadow:0 0 10px rgba(0,255,170,0.25),inset 0 0 8px rgba(0,255,170,0.1);}
.igm-result-card.card-cafe:hover{border-color:#33ffbb;box-shadow:0 0 15px rgba(0,255,170,0.4),inset 0 0 8px rgba(0,255,170,0.15);}

/* Discothèque — Bordure ROSE ÉLECTRIQUE/NÉON */
.igm-result-card.card-disco{border-color:#ff006e;box-shadow:0 0 10px rgba(255,0,110,0.3),inset 0 0 8px rgba(255,0,110,0.12);}
.igm-result-card.card-disco:hover{border-color:#ff2e8f;box-shadow:0 0 15px rgba(255,0,110,0.45),inset 0 0 8px rgba(255,0,110,0.18);}

/* Pub — Bordure AMBRE/CUIVRE */
.igm-result-card.card-pub{border-color:#ffaa00;box-shadow:0 0 10px rgba(255,170,0,0.25),inset 0 0 8px rgba(255,170,0,0.1);}
.igm-result-card.card-pub:hover{border-color:#ffbb22;box-shadow:0 0 15px rgba(255,170,0,0.4),inset 0 0 8px rgba(255,170,0,0.15);}

/* Lounge — Bordure ROSE PÂLE/MAGENTA DOUX */
.igm-result-card.card-lounge{border-color:#ff45b8;box-shadow:0 0 10px rgba(255,69,184,0.25),inset 0 0 8px rgba(255,69,184,0.1);}
.igm-result-card.card-lounge:hover{border-color:#ff66c9;box-shadow:0 0 15px rgba(255,69,184,0.4),inset 0 0 8px rgba(255,69,184,0.15);}

/* Poker Club — Bordure ROUGE VIF */
.igm-result-card.card-poker{border-color:#ff4466;box-shadow:0 0 10px rgba(255,68,102,0.25),inset 0 0 8px rgba(255,68,102,0.1);}
.igm-result-card.card-poker:hover{border-color:#ff6688;box-shadow:0 0 15px rgba(255,68,102,0.4),inset 0 0 8px rgba(255,68,102,0.15);}

/* Sélectionné — gère les couleurs + surbrillance */
.igm-result-card.igm-rc-sel.card-restaurant{border-color:#ffb000;background:rgba(255,149,0,0.08);}
.igm-result-card.igm-rc-sel.card-bar{border-color:#ff3cb0;background:rgba(255,20,147,0.08);}
.igm-result-card.igm-rc-sel.card-nightclub{border-color:#dd66ff;background:rgba(204,68,255,0.08);}
.igm-result-card.igm-rc-sel.card-cafe{border-color:#33ffbb;background:rgba(0,255,170,0.08);}
.igm-result-card.igm-rc-sel.card-disco{border-color:#ff2e8f;background:rgba(255,0,110,0.08);}
.igm-result-card.igm-rc-sel.card-pub{border-color:#ffbb22;background:rgba(255,170,0,0.08);}
.igm-result-card.igm-rc-sel.card-lounge{border-color:#ff66c9;background:rgba(255,69,184,0.08);}
.igm-result-card.igm-rc-sel.card-poker{border-color:#ff6688;background:rgba(255,68,102,0.08);}
.igm-result-card.igm-rc-exists{border-color:rgba(255,215,0,0.25);background:rgba(255,215,0,0.02);opacity:0.55;}
.igm-rc-check{width:18px;height:18px;border-radius:5px;border:1.5px solid rgba(255,255,255,0.15);flex-shrink:0;display:flex;align-items:center;justify-content:center;margin-top:0.1rem;font-size:0.72rem;transition:all 0.15s;}
.igm-result-card.igm-rc-sel .igm-rc-check{background:var(--green);border-color:var(--green);color:#001a0e;}
.igm-rc-name{font-family:'Syne',sans-serif;font-size:0.78rem;font-weight:800;color:var(--text);margin-bottom:0.15rem;line-height:1.3;}
.igm-rc-meta{display:flex;flex-wrap:wrap;gap:0.25rem;margin-bottom:0.15rem;}
.igm-rc-tag{font-size:0.56rem;font-weight:700;padding:0.08rem 0.35rem;border-radius:5px;}
.igm-rc-tag-type{background:rgba(255,45,155,0.1);color:var(--pink);border:1px solid rgba(255,45,155,0.2);}
.igm-rc-tag-rating{background:rgba(255,215,0,0.1);color:var(--amber);border:1px solid rgba(255,215,0,0.2);}
.igm-rc-tag-reviews{background:rgba(0,229,255,0.08);color:var(--cyan);border:1px solid rgba(0,229,255,0.18);}
.igm-rc-tag-exists{background:rgba(255,215,0,0.1);color:var(--amber);border:1px solid rgba(255,215,0,0.2);}
.igm-rc-addr{font-size:0.62rem;color:var(--muted);line-height:1.4;}
.igm-progress-wrap{margin:0.8rem 0;}
.igm-progress-bar{height:5px;background:rgba(255,255,255,0.06);border-radius:10px;overflow:hidden;}
.igm-progress-fill{height:100%;background:linear-gradient(90deg,var(--green),var(--cyan));border-radius:10px;transition:width 0.4s ease;width:0%;}
.igm-progress-label{font-size:0.65rem;color:var(--muted);margin-top:0.3rem;display:flex;justify-content:space-between;}
.igm-log-wrap{background:rgba(0,0,0,0.35);border:1px solid rgba(255,255,255,0.05);border-radius:10px;padding:0.7rem;max-height:160px;overflow-y:auto;font-size:0.63rem;font-family:monospace;line-height:1.7;}
.igm-log-line{color:var(--muted);}
.igm-log-line.igm-ok{color:var(--green);}
.igm-log-line.igm-warn{color:var(--amber);}
.igm-log-line.igm-err{color:var(--red);}
/* ══ AJOUTER AMI — liste membres ══ */
.af-filter-btn{flex-shrink:0;padding:0.26rem 0.6rem;border-radius:20px;border:1px solid rgba(255,255,255,0.1);background:rgba(255,255,255,0.03);color:var(--muted);font-size:0.67rem;font-weight:700;cursor:pointer;font-family:'DM Sans',sans-serif;transition:all 0.2s;white-space:nowrap;}
.af-filter-btn.af-active{background:rgba(255,45,155,0.12);border-color:rgba(255,45,155,0.4);color:var(--pink);}
.af-member-row{display:flex;align-items:center;gap:0.6rem;padding:0.55rem 0.45rem;border-radius:11px;cursor:pointer;transition:background 0.15s;margin-bottom:0.18rem;user-select:none;-webkit-tap-highlight-color:transparent;}
.af-member-row.af-selected{background:rgba(0,255,170,0.06);}
.af-check{width:20px;height:20px;border-radius:6px;border:1.5px solid rgba(255,255,255,0.18);flex-shrink:0;display:flex;align-items:center;justify-content:center;font-size:0.72rem;transition:all 0.15s;color:transparent;}
.af-member-row.af-selected .af-check{background:var(--green);border-color:var(--green);color:#001a0e;}
.af-avatar{width:38px;height:38px;border-radius:50%;background:rgba(255,255,255,0.06);display:flex;align-items:center;justify-content:center;font-size:1.05rem;flex-shrink:0;position:relative;}
.af-status-dot{position:absolute;bottom:1px;right:1px;width:8px;height:8px;border-radius:50%;background:var(--green);border:1.5px solid var(--bg);}
.af-name{font-family:'Syne',sans-serif;font-size:0.78rem;font-weight:800;color:var(--text);margin-bottom:0.1rem;}
.af-meta{display:flex;flex-wrap:wrap;gap:0.2rem;align-items:center;}
.af-badge{font-size:0.54rem;font-weight:800;padding:0.06rem 0.3rem;border-radius:4px;text-transform:uppercase;letter-spacing:0.04em;}
.af-badge-membre,.af-badge-user{background:rgba(0,229,255,0.08);color:var(--cyan);border:1px solid rgba(0,229,255,0.18);}
.af-badge-chauffeur{background:rgba(255,215,0,0.1);color:var(--amber);border:1px solid rgba(255,215,0,0.22);}
.af-badge-establishment{background:rgba(0,255,170,0.09);color:var(--green);border:1px solid rgba(0,255,170,0.2);}
.af-badge-admin,.af-badge-super_admin{background:rgba(255,45,155,0.1);color:var(--pink);border:1px solid rgba(255,45,155,0.22);}
.af-etab{font-size:0.62rem;color:var(--muted);margin-left:0.15rem;}
.af-already{opacity:0.42;pointer-events:none;}
.af-already .af-check{background:rgba(255,215,0,0.1);border-color:rgba(255,215,0,0.3);color:var(--amber);}
.af-empty{text-align:center;padding:2.2rem 1rem;color:var(--muted);font-size:0.78rem;}
.af-empty-icon{font-size:2rem;margin-bottom:0.5rem;}

.igm-guide{background:linear-gradient(135deg,rgba(0,229,255,0.07),rgba(0,255,170,0.05));border:1px solid rgba(0,229,255,0.22);border-radius:16px;padding:1.1rem 1.1rem 0.9rem;margin-bottom:1rem;}
.igm-guide-title{font-family:'Syne',sans-serif;font-size:0.85rem;font-weight:800;color:var(--cyan);margin-bottom:0.85rem;display:flex;align-items:center;gap:0.4rem;}
.igm-guide-steps{display:flex;flex-direction:column;gap:0.7rem;margin-bottom:0.85rem;}
.igm-gs{display:flex;align-items:flex-start;gap:0.7rem;}
.igm-gs-num{width:22px;height:22px;border-radius:50%;background:linear-gradient(135deg,var(--cyan),var(--green));color:#001a0e;font-size:0.65rem;font-weight:900;display:flex;align-items:center;justify-content:center;flex-shrink:0;margin-top:0.05rem;}
.igm-gs-body{flex:1;}
.igm-gs-label{font-size:0.78rem;font-weight:700;color:var(--text);margin-bottom:0.12rem;}
.igm-gs-desc{font-size:0.67rem;color:var(--muted);line-height:1.5;}
.igm-guide-note{font-size:0.65rem;color:rgba(0,229,255,0.7);background:rgba(0,229,255,0.06);border-radius:8px;padding:0.45rem 0.65rem;line-height:1.5;}
/* ══════════════════════════════════════════════════════════════ */

.card-event-flash{
  display:flex;align-items:center;gap:0.6rem;
  background:linear-gradient(135deg,rgba(255,45,155,0.16),rgba(204,68,255,0.10));
  border:1.5px solid rgba(255,45,155,0.45);
  border-radius:12px;margin:0.7rem 0.8rem 0.3rem;
  padding:0.55rem 0.75rem;position:relative;overflow:hidden;
  cursor:pointer;
}
.card-event-flash::before{
  content:'';position:absolute;inset:0;
  background:linear-gradient(90deg,transparent,rgba(255,255,255,0.04),transparent);
  animation:evtShimmer 2.5s infinite;
}
@keyframes evtShimmer{0%{transform:translateX(-100%)}100%{transform:translateX(100%)}}
.cef-live{width:8px;height:8px;border-radius:50%;background:var(--red);
  box-shadow:0 0 8px rgba(255,68,102,0.8);flex-shrink:0;animation:pulse 1.2s infinite;}
.cef-body{flex:1;min-width:0;}
.cef-tag{font-size:0.52rem;font-weight:800;letter-spacing:0.1em;text-transform:uppercase;color:var(--pink);margin-bottom:0.1rem;}
.cef-title{font-family:'Syne',sans-serif;font-size:0.8rem;font-weight:700;color:var(--text);line-height:1.3;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.cef-sub{font-size:0.62rem;color:var(--muted);margin-top:0.1rem;}
.cef-expire{font-size:0.55rem;color:var(--red);margin-top:0.15rem;}
.cef-actions{display:flex;flex-direction:column;gap:0.25rem;flex-shrink:0;}
.cef-btn-open{background:rgba(255,45,155,0.2);border:1px solid rgba(255,45,155,0.5);color:var(--pink);font-size:0.58rem;font-weight:800;padding:0.22rem 0.5rem;border-radius:6px;cursor:pointer;font-family:'DM Sans',sans-serif;white-space:nowrap;}
.cef-btn-open:active{opacity:0.7;}

/* ══════════════════════════════════════════════════════════════
   ══ OPTION 2 — BANDEAU ACCUEIL (strip soirée en tête)        ══
   ══════════════════════════════════════════════════════════════ */
.home-event-banner{
  display:none;/* masqué si pas d'évt actif */
  align-items:center;gap:0.55rem;
  background:linear-gradient(90deg,rgba(255,215,0,0.12),rgba(255,45,155,0.08));
  border-bottom:2px solid rgba(255,215,0,0.4);
  padding:0.55rem 1rem;
  position:relative;overflow:hidden;
  animation:slideDown 0.4s ease;
  cursor:pointer;
}
.home-event-banner.show{display:flex;}
@keyframes slideDown{from{transform:translateY(-100%);opacity:0}to{transform:translateY(0);opacity:1}}
.heb-dot{width:7px;height:7px;border-radius:50%;background:var(--amber);
  box-shadow:0 0 8px rgba(255,215,0,0.7);animation:pulse 1.5s infinite;flex-shrink:0;}
.heb-body{flex:1;min-width:0;}
.heb-eyebrow{font-size:0.5rem;font-weight:800;letter-spacing:0.1em;text-transform:uppercase;color:var(--amber);margin-bottom:0.06rem;}
.heb-text{font-family:'Syne',sans-serif;font-size:0.78rem;font-weight:800;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.heb-sub{font-size:0.6rem;color:var(--muted);margin-top:0.06rem;}
.heb-cta{background:rgba(255,215,0,0.2);border:1px solid rgba(255,215,0,0.5);color:var(--amber);font-size:0.62rem;font-weight:800;padding:0.28rem 0.55rem;border-radius:8px;white-space:nowrap;flex-shrink:0;font-family:'DM Sans',sans-serif;}

/* ══ MODAL ÉVÉNEMENT (création flash) ══ */
.evt-modal-wrap{background:var(--surface);border:1px solid rgba(255,45,155,0.35);border-radius:24px;padding:1.6rem 1.4rem;width:min(380px,100%);max-height:92vh;overflow-y:auto;position:relative;animation:popIn 0.3s cubic-bezier(0.34,1.56,0.64,1);}
.evt-modal-title{font-family:'Syne',sans-serif;font-size:1rem;font-weight:800;color:var(--pink);margin-bottom:0.25rem;}
.evt-modal-sub{font-size:0.75rem;color:var(--muted);margin-bottom:1.2rem;line-height:1.5;}
.evt-duration-row{display:flex;gap:0.35rem;flex-wrap:wrap;margin-bottom:0.9rem;}
.evt-dur-btn{flex:1;min-width:60px;padding:0.45rem 0.4rem;border-radius:8px;border:1px solid rgba(255,45,155,0.25);background:rgba(255,45,155,0.06);color:var(--muted);font-size:0.7rem;font-weight:700;cursor:pointer;font-family:'DM Sans',sans-serif;text-align:center;transition:all 0.2s;}
.evt-dur-btn.active{background:rgba(255,45,155,0.18);border-color:var(--pink);color:var(--pink);}
.evt-dur-btn:active{opacity:0.7;}

/* ══════════════════════════════════════════════════════════════ */

/* ══ NOTIFICATIONS SYSTEM — AMBI241 PRO ══ */
.notif-bell-wrap{position:relative;display:inline-flex;}
.notif-bell-btn{background:rgba(255,45,155,0.1);border:1px solid rgba(255,45,155,0.25);color:var(--pink);font-size:0.9rem;width:28px;height:28px;border-radius:50%;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all 0.2s;position:relative;}
.notif-bell-btn:active{transform:scale(0.92);}
/* Badge pulsant enrichi */
.notif-badge{position:absolute;top:-5px;right:-5px;min-width:18px;height:18px;border-radius:99px;background:var(--red);color:#fff;font-size:0.55rem;font-weight:900;font-family:'Syne',sans-serif;display:none;align-items:center;justify-content:center;padding:0 4px;border:2px solid var(--bg);box-shadow:0 0 8px rgba(255,68,102,0.55);}
.notif-badge.show{display:flex;animation:ambiNotifBadgePulse 1.4s ease-in-out infinite;}
@keyframes ambiNotifBadgePulse{0%,100%{transform:scale(1)}50%{transform:scale(1.18)}}

/* Panneau notifications plein écran */
.notif-panel{display:none;position:fixed;top:0;left:0;right:0;z-index:1000;background:rgba(10,2,20,0.7);backdrop-filter:blur(6px);}
.notif-panel.open{display:block;}
.notif-panel-inner{position:absolute;top:0;left:0;right:0;max-height:88vh;background:linear-gradient(180deg,var(--surface2) 0%,var(--surface) 100%);border-bottom:1px solid rgba(255,45,155,0.15);border-radius:0 0 24px 24px;overflow:hidden;box-shadow:0 16px 48px rgba(0,0,0,0.7),0 0 0 1px rgba(255,45,155,0.1);animation:ambiPanelSlideDown 0.3s cubic-bezier(.175,.885,.32,1.275);display:flex;flex-direction:column;}
@keyframes ambiPanelSlideDown{from{opacity:0;transform:translateY(-16px) scale(0.97)}to{opacity:1;transform:translateY(0) scale(1)}}
.notif-panel-head{padding:1rem 1rem 0.8rem;border-bottom:1px solid rgba(255,255,255,0.06);display:flex;align-items:center;justify-content:space-between;flex-shrink:0;background:linear-gradient(135deg,rgba(255,45,155,0.08),rgba(204,68,255,0.05));}
.notif-panel-head-left{display:flex;align-items:center;gap:0.75rem;}
.notif-panel-app-icon{width:40px;height:40px;border-radius:12px;background:linear-gradient(135deg,var(--purple),var(--pink));display:flex;align-items:center;justify-content:center;font-size:1.2rem;box-shadow:0 0 14px rgba(255,45,155,0.44);flex-shrink:0;position:relative;}
.notif-panel-head h3{font-family:'Syne',sans-serif;font-size:0.95rem;font-weight:900;color:var(--text);}
.notif-panel-head-sub{font-size:0.62rem;color:var(--muted);}
.notif-panel-head-right{display:flex;align-items:center;gap:0.5rem;}
.notif-clear-btn{font-size:0.63rem;color:var(--cyan);font-weight:700;background:rgba(0,229,255,0.1);border:1px solid rgba(0,229,255,0.34);border-radius:8px;padding:5px 10px;cursor:pointer;font-family:'Syne',sans-serif;}
.notif-panel-close-btn{background:rgba(255,255,255,0.05);border:1px solid rgba(255,255,255,0.12);color:var(--muted);border-radius:8px;padding:5px 10px;font-size:0.7rem;cursor:pointer;}

/* Filtres par type */
.notif-filter-row{display:flex;gap:0.5rem;padding:0.6rem 0.8rem;border-bottom:1px solid rgba(255,255,255,0.05);overflow-x:auto;scrollbar-width:none;flex-shrink:0;}
.notif-filter-row::-webkit-scrollbar{display:none;}
.notif-filter-btn{flex-shrink:0;padding:0.25rem 0.75rem;border-radius:99px;font-size:0.65rem;font-weight:700;cursor:pointer;font-family:'Syne',sans-serif;border:1px solid rgba(255,255,255,0.1);background:rgba(255,255,255,0.03);color:var(--muted);transition:all 0.2s;white-space:nowrap;}
.notif-filter-btn.active{background:rgba(255,45,155,0.12);border-color:rgba(255,45,155,0.5);color:var(--pink);}
.notif-filter-btn:active{opacity:0.7;}

.notif-list{overflow-y:auto;flex:1;padding:0.25rem 0;}

/* Item enrichi */
.notif-item{display:flex;align-items:center;gap:0.75rem;padding:0.8rem 1rem;border-bottom:1px solid rgba(255,255,255,0.04);cursor:pointer;transition:background 0.15s;border-left:3px solid transparent;}
.notif-item:hover{background:rgba(255,255,255,0.03);}
.notif-item.unread{background:rgba(255,45,155,0.05);border-left-color:var(--pink);}
.notif-item-avatar-wrap{position:relative;flex-shrink:0;}
.notif-item-avatar{width:46px;height:46px;border-radius:50%;background:linear-gradient(135deg,var(--surface2),var(--surface));border:2px solid rgba(255,45,155,0.22);display:flex;align-items:center;justify-content:center;font-size:1.35rem;}
.notif-item.unread .notif-item-avatar{box-shadow:0 0 10px rgba(255,45,155,0.22);}
.notif-type-badge{position:absolute;bottom:-2px;right:-2px;width:18px;height:18px;border-radius:50%;border:2px solid var(--bg);display:flex;align-items:center;justify-content:center;font-size:0.55rem;}
.notif-msg-count-badge{position:absolute;top:-4px;right:-4px;min-width:18px;height:18px;border-radius:99px;background:var(--red);color:#fff;font-size:0.52rem;font-weight:900;font-family:'Syne',sans-serif;display:flex;align-items:center;justify-content:center;padding:0 4px;border:2px solid var(--bg);}
.notif-item .ni-body{flex:1;min-width:0;}
.notif-item .ni-top-row{display:flex;justify-content:space-between;align-items:center;margin-bottom:0.15rem;}
.notif-item .ni-title{font-size:0.78rem;font-weight:800;color:var(--text);font-family:'Syne',sans-serif;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.notif-item.unread .ni-title{color:var(--text);}
.notif-item:not(.unread) .ni-title{color:rgba(255,240,248,0.78);}
.notif-item .ni-time{font-size:0.6rem;color:var(--muted);flex-shrink:0;}
.notif-item .ni-msg{font-size:0.68rem;color:rgba(255,240,248,0.62);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:1.35;}
.notif-type-pill{display:inline-block;margin-top:4px;font-size:0.52rem;font-weight:800;padding:0.12rem 0.45rem;border-radius:99px;text-transform:uppercase;letter-spacing:0.05em;font-family:'Syne',sans-serif;}
.notif-unread-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0;}

.notif-item .ni-icon{font-size:1.1rem;flex-shrink:0;margin-top:0.05rem;}
.notif-item .ni-channel{display:inline-block;font-size:0.6rem;font-weight:700;padding:0.1rem 0.4rem;border-radius:4px;margin-top:0.25rem;}
.ni-ch-push{background:rgba(0,229,255,0.12);color:var(--cyan);}
.ni-ch-sms{background:rgba(0,255,170,0.12);color:var(--green);}
.ni-ch-email{background:rgba(255,215,0,0.12);color:var(--amber);}
.ni-ch-wa{background:rgba(37,211,102,0.15);color:#25d366;}
.notif-empty{text-align:center;padding:2.5rem 1rem;color:var(--muted);font-size:0.8rem;}
.notif-empty span{font-size:2rem;display:block;margin-bottom:0.5rem;}
.notif-prefs-panel{padding:0.8rem 1rem;border-top:1px solid rgba(255,255,255,0.06);flex-shrink:0;max-height:220px;overflow-y:auto;}
.notif-prefs-title{font-size:0.68rem;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:0.08em;margin-bottom:0.6rem;}
.notif-pref-row{display:flex;align-items:center;justify-content:space-between;margin-bottom:0.45rem;}
.notif-pref-label{font-size:0.75rem;color:var(--text);}
.notif-pref-sub{font-size:0.65rem;color:var(--muted);}
.notif-toggle{position:relative;width:36px;height:20px;flex-shrink:0;}
.notif-toggle input{opacity:0;width:0;height:0;}
.notif-toggle-slider{position:absolute;inset:0;background:rgba(255,255,255,0.1);border-radius:20px;cursor:pointer;transition:0.25s;}
.notif-toggle-slider:before{content:'';position:absolute;width:14px;height:14px;left:3px;top:3px;background:#fff;border-radius:50%;transition:0.25s;}
.notif-toggle input:checked+.notif-toggle-slider{background:var(--pink);}
.notif-toggle input:checked+.notif-toggle-slider:before{transform:translateX(16px);}

/* ── Toast riche style AMBI241 ── */
.notif-toast{position:fixed;top:68px;left:50%;transform:translateX(-50%) translateY(-24px);width:calc(100% - 32px);max-width:400px;background:linear-gradient(135deg,var(--surface2),var(--surface));border:1px solid rgba(255,45,155,0.3);border-radius:16px;padding:10px 12px;display:flex;align-items:center;gap:10px;box-shadow:0 8px 32px rgba(0,0,0,0.6),0 0 0 1px rgba(255,45,155,0.12);opacity:0;transition:all 0.35s cubic-bezier(.175,.885,.32,1.275);z-index:9999;pointer-events:none;backdrop-filter:blur(20px);}
.notif-toast.show{opacity:1;transform:translateX(-50%) translateY(0);}
.notif-toast-icon{width:38px;height:38px;border-radius:10px;background:linear-gradient(135deg,var(--purple),var(--pink));display:flex;align-items:center;justify-content:center;font-size:1.1rem;flex-shrink:0;box-shadow:0 0 12px rgba(255,45,155,0.44);}
.notif-toast-body{flex:1;min-width:0;}
.notif-toast-label{font-size:0.62rem;font-weight:800;color:var(--pink);font-family:'Syne',sans-serif;text-transform:uppercase;letter-spacing:0.06em;margin-bottom:1px;}
.notif-toast-title{font-size:0.75rem;font-weight:700;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.notif-toast-msg{font-size:0.65rem;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}


/* ══════════════════════════════════════════════════════════════
   ══ ONBOARDING NOTIFICATIONS — Modal professionnel par rôle   ══
   ══════════════════════════════════════════════════════════════ */
#notifOnboardOverlay{
  display:none;position:fixed;inset:0;z-index:100000;
  background:rgba(8,2,18,0.82);
  backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);
  align-items:flex-end;justify-content:center;
  animation:fadeIn 0.3s ease;
}
#notifOnboardOverlay.show{display:flex;}
#notifOnboardModal{
  width:100%;max-width:480px;
  background:linear-gradient(175deg,#1e0a30 0%,#160825 100%);
  border:1px solid rgba(255,45,155,0.22);
  border-bottom:none;
  border-radius:28px 28px 0 0;
  padding:0 0 env(safe-area-inset-bottom,16px);
  box-shadow:0 -16px 60px rgba(0,0,0,0.7),0 0 0 1px rgba(255,45,155,0.1);
  animation:slideUpModal 0.45s cubic-bezier(.175,.885,.32,1.15) both;
  max-height:92vh;
  overflow-y:auto;
  scrollbar-width:none;
}
#notifOnboardModal::-webkit-scrollbar{display:none;}
@keyframes slideUpModal{
  from{transform:translateY(100%);opacity:0}
  to{transform:translateY(0);opacity:1}
}
/* Drag handle */
.nob-handle{
  width:40px;height:4px;
  background:rgba(255,255,255,0.15);
  border-radius:2px;
  margin:12px auto 0;
}
/* Header : logo + titre */
.nob-header{
  display:flex;flex-direction:column;align-items:center;
  padding:20px 24px 12px;
  position:relative;
}
.nob-logo-wrap{
  width:72px;height:72px;border-radius:20px;
  background:linear-gradient(135deg,rgba(255,45,155,0.2),rgba(204,68,255,0.15));
  border:1px solid rgba(255,45,155,0.3);
  display:flex;align-items:center;justify-content:center;
  margin-bottom:14px;
  box-shadow:0 0 30px rgba(255,45,155,0.25);
  position:relative;overflow:hidden;
}
.nob-logo-wrap img{
  width:52px;height:52px;border-radius:14px;object-fit:cover;
}
.nob-logo-ring{
  position:absolute;inset:-8px;
  border-radius:28px;
  border:2px solid rgba(255,45,155,0.2);
  animation:notifOnboardPulse 2.5s ease-in-out infinite;
}
.nob-logo-ring2{
  position:absolute;inset:-18px;
  border-radius:36px;
  border:1.5px solid rgba(204,68,255,0.12);
  animation:notifOnboardPulse 2.5s ease-in-out 0.8s infinite;
}
@keyframes notifOnboardPulse{
  0%,100%{opacity:0.6;transform:scale(1)}
  50%{opacity:0.2;transform:scale(1.05)}
}
.nob-bell-badge{
  position:absolute;
  top:-6px;right:-6px;
  width:26px;height:26px;border-radius:50%;
  background:linear-gradient(135deg,var(--pink),var(--purple));
  display:flex;align-items:center;justify-content:center;
  font-size:0.85rem;
  border:2.5px solid #160825;
  animation:ambiIconPulse 1.5s ease-in-out infinite;
}
.nob-title{
  font-family:'Syne',sans-serif;font-size:1.2rem;font-weight:800;
  color:#fff;text-align:center;margin-bottom:6px;
}
.nob-subtitle{
  font-size:0.72rem;color:rgba(255,255,255,0.5);
  text-align:center;line-height:1.55;
  max-width:280px;
}
/* Pill rôle */
.nob-role-pill{
  display:inline-flex;align-items:center;gap:5px;
  padding:4px 12px;border-radius:20px;
  font-size:0.62rem;font-weight:800;
  text-transform:uppercase;letter-spacing:0.08em;
  margin:10px 0 0;
  font-family:'Syne',sans-serif;
}
/* Divider */
.nob-divider{
  height:1px;
  background:linear-gradient(90deg,transparent,rgba(255,45,155,0.2),transparent);
  margin:4px 20px;
}
/* Section titre */
.nob-section-title{
  font-size:0.62rem;font-weight:800;
  color:rgba(255,255,255,0.35);
  text-transform:uppercase;letter-spacing:0.1em;
  padding:14px 22px 6px;
  font-family:'Syne',sans-serif;
}
/* Liste des notifications */
.nob-list{
  padding:0 16px;
  display:flex;flex-direction:column;gap:6px;
  margin-bottom:4px;
}
.nob-item{
  display:flex;align-items:center;gap:12px;
  padding:11px 12px;
  background:rgba(255,255,255,0.03);
  border:1px solid rgba(255,255,255,0.06);
  border-radius:14px;
  transition:background 0.2s,border-color 0.2s;
}
.nob-item.nob-item-on{
  background:rgba(255,45,155,0.07);
  border-color:rgba(255,45,155,0.2);
}
.nob-item-icon{
  width:38px;height:38px;
  border-radius:11px;
  background:rgba(255,255,255,0.06);
  display:flex;align-items:center;justify-content:center;
  font-size:1.2rem;
  flex-shrink:0;
}
.nob-item-text{flex:1;min-width:0;}
.nob-item-label{
  font-size:0.78rem;font-weight:700;color:#fff;
  margin-bottom:2px;
}
.nob-item-desc{
  font-size:0.62rem;color:rgba(255,255,255,0.4);
  line-height:1.4;
}
/* Toggle switch */
.nob-toggle{position:relative;width:44px;height:26px;flex-shrink:0;}
.nob-toggle input{opacity:0;width:0;height:0;position:absolute;}
.nob-toggle-track{
  position:absolute;inset:0;
  background:rgba(255,255,255,0.1);
  border-radius:13px;
  cursor:pointer;
  transition:background 0.25s;
  border:1px solid rgba(255,255,255,0.1);
}
.nob-toggle input:checked ~ .nob-toggle-track{
  background:linear-gradient(90deg,var(--pink),var(--purple));
  border-color:transparent;
}
.nob-toggle-thumb{
  position:absolute;
  width:20px;height:20px;
  border-radius:50%;
  background:#fff;
  top:2px;left:3px;
  transition:transform 0.25s cubic-bezier(.175,.885,.32,1.275);
  box-shadow:0 2px 6px rgba(0,0,0,0.3);
  pointer-events:none;
}
.nob-toggle input:checked ~ .nob-toggle-track .nob-toggle-thumb{
  transform:translateX(18px);
}
/* Boutons */
.nob-actions{
  padding:16px 16px 8px;
  display:flex;flex-direction:column;gap:10px;
}
.nob-btn-primary{
  width:100%;padding:15px;
  border-radius:16px;border:none;
  background:linear-gradient(135deg,var(--pink),var(--purple));
  color:#fff;
  font-family:'Syne',sans-serif;font-size:0.92rem;font-weight:800;
  cursor:pointer;
  display:flex;align-items:center;justify-content:center;gap:8px;
  box-shadow:0 6px 24px rgba(255,45,155,0.35);
  transition:transform 0.15s,box-shadow 0.15s;
}
.nob-btn-primary:active{transform:scale(0.97);box-shadow:0 3px 12px rgba(255,45,155,0.25);}
.nob-btn-skip{
  width:100%;padding:10px;
  border-radius:14px;border:none;
  background:transparent;
  color:rgba(255,255,255,0.3);
  font-family:'DM Sans',sans-serif;font-size:0.78rem;font-weight:500;
  cursor:pointer;
  transition:color 0.2s;
}
.nob-btn-skip:active{color:rgba(255,255,255,0.5);}
/* Badge permission navigateur */
.nob-perm-badge{
  margin:0 16px 4px;
  padding:10px 14px;
  background:rgba(0,229,255,0.06);
  border:1px solid rgba(0,229,255,0.2);
  border-radius:12px;
  display:flex;align-items:center;gap:10px;
  font-size:0.68rem;color:rgba(0,229,255,0.8);
  line-height:1.45;
}
.nob-perm-badge span{font-size:1.3rem;flex-shrink:0;}
/* ── Overlay Appel Entrant ── */
#ambiIncomingCall{display:none;position:fixed;inset:0;z-index:10000;background:rgba(10,2,20,0.93);backdrop-filter:blur(12px);flex-direction:column;align-items:center;justify-content:center;animation:fadeIn 0.3s ease;}
#ambiIncomingCall.show{display:flex;}
.ambicall-wave{position:absolute;border-radius:50%;border:2px solid var(--green);}
.ambicall-avatar{width:96px;height:96px;border-radius:50%;background:linear-gradient(135deg,var(--purple),var(--cyan));display:flex;align-items:center;justify-content:center;font-size:2.8rem;margin-bottom:16px;position:relative;box-shadow:0 0 0 4px var(--bg),0 0 0 6px rgba(0,255,170,0.44);z-index:1;}
.ambicall-badge{position:absolute;bottom:0;right:0;width:26px;height:26px;border-radius:50%;background:var(--green);border:2px solid var(--bg);display:flex;align-items:center;justify-content:center;font-size:0.8rem;animation:ambiIconPulse 1s ease-in-out infinite;}
.ambicall-label{font-size:0.7rem;color:var(--green);font-weight:800;font-family:'Syne',sans-serif;letter-spacing:0.15em;text-transform:uppercase;margin-bottom:8px;z-index:1;}
.ambicall-name{font-size:1.5rem;font-weight:800;color:var(--text);font-family:'Syne',sans-serif;margin-bottom:4px;z-index:1;}
.ambicall-type{font-size:0.75rem;color:var(--muted);margin-bottom:48px;z-index:1;}
.ambicall-btns{display:flex;gap:48px;z-index:1;}
.ambicall-btn-wrap{display:flex;flex-direction:column;align-items:center;gap:8px;}
.ambicall-btn{width:64px;height:64px;border-radius:50%;border:none;cursor:pointer;font-size:1.6rem;display:flex;align-items:center;justify-content:center;}
.ambicall-btn-decline{background:linear-gradient(135deg,#ff2244,#cc1133);box-shadow:0 4px 20px rgba(255,68,102,0.55);}
.ambicall-btn-accept{background:linear-gradient(135deg,#00dd88,var(--green));box-shadow:0 4px 20px rgba(0,255,170,0.55);animation:ambiIconPulse 1s ease-in-out infinite;}
.ambicall-btn-label{font-size:0.65rem;font-weight:700;font-family:'Syne',sans-serif;}
.ambicall-btn-label-decline{color:var(--muted);}
.ambicall-btn-label-accept{color:var(--green);}
@keyframes ambiIconPulse{0%,100%{transform:scale(1)}50%{transform:scale(1.12)}}
@keyframes ambiRingWave{0%{transform:scale(0.5);opacity:0.6}100%{transform:scale(1.8);opacity:0}}

/* ══════════════════════════════════════════════════════
   ══ SYSTÈME DISPONIBILITÉS LIVE (GÉRANT PRO)        ══
   ══════════════════════════════════════════════════════ */

/* ── Affichage public sur la carte ── */
.dispo-live-strip{
  display:flex;flex-wrap:wrap;gap:0.35rem;
  padding:0.55rem 0.75rem;
  background:rgba(0,0,0,0.25);
  border-top:1px solid rgba(255,255,255,0.05);
  border-bottom:1px solid rgba(255,255,255,0.05);
}
.dispo-chip{
  display:inline-flex;align-items:center;gap:0.3rem;
  background:rgba(255,255,255,0.04);
  border:1px solid rgba(255,255,255,0.1);
  border-radius:20px;padding:0.22rem 0.55rem;
  font-size:0.65rem;font-weight:700;
  color:var(--text);white-space:nowrap;
  transition:all 0.2s;
}
.dispo-chip.ok{background:rgba(0,255,170,0.1);border-color:rgba(0,255,170,0.3);color:var(--green);}
.dispo-chip.low{background:rgba(255,215,0,0.1);border-color:rgba(255,215,0,0.35);color:var(--amber);}
.dispo-chip.empty{background:rgba(255,68,102,0.1);border-color:rgba(255,68,102,0.3);color:var(--red);}
.dispo-chip-icon{font-size:0.85rem;line-height:1;}
.dispo-chip-val{font-family:'Syne',sans-serif;font-size:0.72rem;font-weight:800;}
.dispo-chip-label{font-size:0.58rem;color:inherit;opacity:0.8;}
.dispo-updated{font-size:0.55rem;color:var(--muted);padding:0 0.75rem 0.35rem;display:flex;align-items:center;gap:0.3rem;}
.dispo-updated-dot{width:5px;height:5px;border-radius:50%;background:var(--green);animation:pulse 2s infinite;flex-shrink:0;}

/* ── Panneau gérant (dans edit-panel) ── */
.dispo-manager-panel{
  margin-top:0.8rem;padding-top:0.8rem;
  border-top:1px solid rgba(0,229,255,0.18);
}
.dispo-manager-title{
  font-family:'Syne',sans-serif;font-size:0.75rem;font-weight:800;
  color:var(--cyan);text-transform:uppercase;letter-spacing:0.08em;
  margin-bottom:0.65rem;display:flex;align-items:center;gap:0.4rem;
}
.dispo-manager-title::after{content:'';flex:1;height:1px;background:rgba(0,229,255,0.15);}
.dispo-item-row{
  display:grid;grid-template-columns:1fr auto;
  align-items:center;gap:0.5rem;
  background:rgba(255,255,255,0.03);
  border:1px solid rgba(255,255,255,0.07);
  border-radius:11px;padding:0.5rem 0.65rem;
  margin-bottom:0.4rem;transition:border-color 0.2s;
}
.dispo-item-row:focus-within{border-color:rgba(0,229,255,0.35);}
.dispo-item-left{display:flex;align-items:center;gap:0.45rem;min-width:0;}
.dispo-item-icon{font-size:1.05rem;flex-shrink:0;}
.dispo-item-name{font-size:0.75rem;font-weight:700;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.dispo-item-sublabel{font-size:0.58rem;color:var(--muted);margin-top:0.05rem;}
.dispo-item-controls{display:flex;align-items:center;gap:0.3rem;flex-shrink:0;}
.dispo-minus,.dispo-plus{
  width:26px;height:26px;border-radius:50%;border:none;
  font-size:1rem;font-weight:800;cursor:pointer;
  display:flex;align-items:center;justify-content:center;
  transition:all 0.15s;user-select:none;-webkit-tap-highlight-color:transparent;
}
.dispo-minus{background:rgba(255,68,102,0.15);color:var(--red);}
.dispo-minus:active{background:rgba(255,68,102,0.35);transform:scale(0.9);}
.dispo-plus{background:rgba(0,255,170,0.15);color:var(--green);}
.dispo-plus:active{background:rgba(0,255,170,0.35);transform:scale(0.9);}
.dispo-val-display{
  font-family:'Syne',sans-serif;font-size:1rem;font-weight:800;
  min-width:32px;text-align:center;
  color:var(--text);line-height:1;
}
.dispo-val-display.val-ok{color:var(--green);}
.dispo-val-display.val-low{color:var(--amber);}
.dispo-val-display.val-empty{color:var(--red);}
.dispo-status-dot{
  width:7px;height:7px;border-radius:50%;flex-shrink:0;
  transition:background 0.3s;
}
.dispo-status-dot.ok{background:var(--green);box-shadow:0 0 6px rgba(0,255,170,0.6);}
.dispo-status-dot.low{background:var(--amber);box-shadow:0 0 6px rgba(255,215,0,0.6);}
.dispo-status-dot.empty{background:var(--red);box-shadow:0 0 6px rgba(255,68,102,0.6);}

/* ── Toggle activer/désactiver un item ── */
.dispo-toggle-row{
  display:flex;align-items:center;justify-content:space-between;
  margin-bottom:0.45rem;
}
.dispo-toggle-label{font-size:0.68rem;color:var(--muted);}
.dispo-add-item-btn{
  width:100%;padding:0.48rem;border-radius:9px;
  background:rgba(0,229,255,0.06);border:1.5px dashed rgba(0,229,255,0.3);
  color:var(--cyan);font-size:0.72rem;font-weight:700;
  cursor:pointer;font-family:'DM Sans',sans-serif;
  transition:all 0.2s;margin-top:0.35rem;
}
.dispo-add-item-btn:active{background:rgba(0,229,255,0.12);}

/* ── Modal ajout item custom ── */
.dispo-modal-wrap{
  background:var(--surface);border:1px solid rgba(0,229,255,0.3);
  border-radius:22px;padding:1.5rem 1.3rem;
  width:min(360px,100%);position:relative;
  animation:popIn 0.25s cubic-bezier(0.34,1.56,0.64,1);
}
.dispo-modal-title{
  font-family:'Syne',sans-serif;font-size:0.95rem;font-weight:800;
  color:var(--cyan);margin-bottom:0.2rem;
}
.dispo-modal-sub{font-size:0.75rem;color:var(--muted);margin-bottom:1.1rem;}
.dispo-emoji-grid{
  display:grid;grid-template-columns:repeat(6,1fr);gap:0.3rem;
  margin-bottom:0.9rem;
}
.dispo-emoji-opt{
  padding:0.4rem;border-radius:8px;border:2px solid transparent;
  background:rgba(255,255,255,0.04);font-size:1.2rem;text-align:center;
  cursor:pointer;transition:all 0.15s;user-select:none;
}
.dispo-emoji-opt.sel{border-color:var(--cyan);background:rgba(0,229,255,0.1);}
.dispo-emoji-opt:active{transform:scale(0.92);}

/* ── Preset rapides (modal) ── */
.dispo-preset-chips{display:flex;flex-wrap:wrap;gap:0.3rem;margin-bottom:0.9rem;}
.dispo-preset-chip{
  padding:0.28rem 0.6rem;border-radius:100px;
  background:rgba(255,255,255,0.04);border:1px solid rgba(255,255,255,0.1);
  font-size:0.68rem;font-weight:700;color:var(--muted);cursor:pointer;
  transition:all 0.15s;
}
.dispo-preset-chip:active{background:rgba(0,229,255,0.12);border-color:var(--cyan);color:var(--cyan);}

/* ── Chip type dans modal ── */
.dispo-type-row{display:flex;gap:0.35rem;margin-bottom:0.9rem;}
.dispo-type-btn{
  flex:1;padding:0.45rem 0.3rem;border-radius:9px;
  border:1.5px solid rgba(255,255,255,0.1);
  background:rgba(255,255,255,0.03);
  color:var(--muted);font-size:0.65rem;font-weight:700;
  cursor:pointer;font-family:'DM Sans',sans-serif;text-align:center;
  transition:all 0.2s;
}
.dispo-type-btn.active{border-color:var(--cyan);background:rgba(0,229,255,0.1);color:var(--cyan);}

/* ── Synthèse dispo (histo) ── */
.dispo-history-bar{
  display:flex;align-items:flex-end;gap:2px;height:28px;margin-top:0.35rem;
}
.dispo-hbar{
  flex:1;border-radius:2px 2px 0 0;
  background:rgba(0,255,170,0.5);min-height:4px;transition:height 0.3s;
}

/* ══ REG INSCRIPTION : TYPE TILES ══ */
.reg-type-tile{border-radius:13px;padding:0.7rem 0.3rem 0.6rem;text-align:center;cursor:pointer;border:2px solid rgba(255,255,255,0.1);background:rgba(255,255,255,0.03);transition:all 0.22s;user-select:none;-webkit-tap-highlight-color:transparent;}
.reg-type-tile:active{transform:scale(0.93);}
.reg-type-tile:hover{background:rgba(255,255,255,0.06);}
/* ══ REG CHECKBOXES ══ */
.reg-chk-label{display:flex;align-items:center;gap:0.35rem;font-size:0.7rem;color:var(--text);background:rgba(255,255,255,0.03);border:1px solid rgba(255,255,255,0.09);border-radius:8px;padding:0.32rem 0.5rem;cursor:pointer;transition:all 0.15s;user-select:none;}
.reg-chk-label:has(input:checked){background:rgba(255,45,155,0.1);border-color:rgba(255,45,155,0.4);color:var(--pink);}
.reg-chk-amber:has(input:checked){background:rgba(157,132,255,0.1);border-color:rgba(157,132,255,0.4);color:var(--amber);}
.reg-chk-label input[type=checkbox]{accent-color:var(--pink);width:13px;height:13px;flex-shrink:0;}
.reg-chk-amber input[type=checkbox]{accent-color:var(--amber);}
/* ══ REG ID TYPE BUTTONS ══ */
.reg-id-type-btn{display:flex;flex-direction:column;flex:1;align-items:center;justify-content:center;padding:0.45rem 0.3rem;border-radius:9px;border:1.5px solid rgba(255,255,255,0.1);background:rgba(255,255,255,0.03);font-size:0.7rem;font-weight:700;color:var(--text);cursor:pointer;text-align:center;transition:all 0.2s;user-select:none;}
.reg-id-type-btn:has(input:checked){border-color:var(--pink);background:rgba(255,45,155,0.1);color:var(--pink);}
.reg-id-type-btn input[type=radio]{display:none;}
#regIdDropZone:hover{border-color:rgba(255,45,155,0.6);background:rgba(255,45,155,0.07);}

/* ══════════════════════════════════════════════════════════════
   ══ 🎵 CHANSON DE LA SEMAINE — STYLES                        ══
   ══════════════════════════════════════════════════════════════ */

/* Bouton header musique — TOUJOURS VISIBLE si chanson active */
#weekSongHeaderBtn{
  background:rgba(15,5,24,0.75);
  backdrop-filter:blur(12px);
  -webkit-backdrop-filter:blur(12px);
  border:1px solid rgba(255,45,155,0.5);
  color:var(--pink);
  font-size:0.68rem;font-weight:800;
  padding:0.22rem 0.5rem;
  border-radius:20px;cursor:pointer;
  font-family:'DM Sans',sans-serif;
  display:flex;align-items:center;gap:0.22rem;
  white-space:nowrap;flex-shrink:0;
  transition:all 0.2s;
  box-shadow:0 2px 10px rgba(255,45,155,0.2);
}
#weekSongHeaderBtn:active{transform:scale(0.92);opacity:0.85;}
#weekSongHeaderBtn .wshb-dot{
  width:5px;height:5px;border-radius:50%;
  background:var(--pink);flex-shrink:0;
  animation:pulse 1.5s infinite;
}

/* Mini-player fixe en bas */
/* ══ LECTEUR SEMAINE — structure colonne ══ */
#weekSongPlayer{
  position:fixed;bottom:calc(var(--nav-h) + env(safe-area-inset-bottom,0px));left:0;right:0;z-index:145;
  background:rgba(13,3,20,0.97);
  backdrop-filter:blur(22px);-webkit-backdrop-filter:blur(22px);
  border-top:1.5px solid rgba(255,45,155,0.3);
  display:none;flex-direction:column;
  box-shadow:0 -4px 24px rgba(0,0,0,0.7);
  animation:wspSlideUp 0.35s cubic-bezier(0.34,1.56,0.64,1);
  max-width:100vw;box-sizing:border-box;overflow:hidden;
}
#weekSongPlayer.show{display:flex;}
@keyframes wspSlideUp{from{transform:translateY(100%);opacity:0}to{transform:translateY(0);opacity:1}}

/* ── Barre de titre toujours visible (minimize + titre + close) ── */
.wsp-topbar{
  display:flex;align-items:center;gap:0.5rem;
  padding:0.28rem 0.7rem;
  background:rgba(255,45,155,0.07);
  border-bottom:1px solid rgba(255,45,155,0.12);
  min-height:30px;flex-shrink:0;
}
.wsp-minimize-btn{
  display:flex;align-items:center;justify-content:center;
  background:rgba(255,45,155,0.15);
  border:1.5px solid rgba(255,45,155,0.45);
  color:var(--pink);font-size:1.1rem;font-weight:900;line-height:1;
  width:32px;height:22px;border-radius:6px;cursor:pointer;
  flex-shrink:0;transition:all 0.2s;padding:0;
}
.wsp-minimize-btn:active{background:rgba(255,45,155,0.35);transform:scale(0.93);}
.wsp-topbar-label{
  flex:1;min-width:0;
  font-size:0.6rem;font-weight:700;letter-spacing:0.07em;text-transform:uppercase;
  color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
}
.wsp-topbar-label span{color:var(--pink);}
.wsp-close-btn{
  display:flex;align-items:center;justify-content:center;
  background:rgba(255,68,102,0.12);border:1.5px solid rgba(255,68,102,0.3);
  color:rgba(255,68,102,0.8);font-size:0.85rem;
  width:26px;height:22px;border-radius:6px;cursor:pointer;
  flex-shrink:0;transition:all 0.2s;
}
.wsp-close-btn:active{background:rgba(255,68,102,0.35);color:#fff;}

/* ── Corps du lecteur (caché quand minimisé) ── */
.wsp-body{
  display:flex;align-items:center;gap:0.55rem;
  padding:0.45rem 0.75rem 0.5rem;
  position:relative;
}

/* Pochette */
.wsp-art{
  width:40px;height:40px;min-width:40px;border-radius:9px;
  background:linear-gradient(135deg,var(--pink),var(--purple));
  display:flex;align-items:center;justify-content:center;
  font-size:1.3rem;overflow:hidden;flex-shrink:0;
  box-shadow:0 2px 10px rgba(255,45,155,0.35);
}
.wsp-art img{width:100%;height:100%;object-fit:cover;border-radius:9px;}

/* Infos */
.wsp-info{flex:1;min-width:0;}
.wsp-eyebrow{font-size:0.42rem;font-weight:800;letter-spacing:0.1em;text-transform:uppercase;
  color:var(--pink);display:flex;align-items:center;gap:0.2rem;margin-bottom:0.05rem;}
.wsp-eyebrow::before{content:'';width:4px;height:4px;border-radius:50%;
  background:var(--pink);box-shadow:0 0 4px rgba(255,45,155,0.8);animation:pulse 1.5s infinite;}
.wsp-title{font-family:'Syne',sans-serif;font-size:0.78rem;font-weight:800;
  color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.wsp-artist{font-size:0.6rem;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}

/* Waveform */
.wsp-wave{display:flex;align-items:center;gap:1.5px;height:16px;flex-shrink:0;opacity:0;transition:opacity 0.3s;}
.wsp-wave.on{opacity:1;}
.wsp-wave span{width:2px;border-radius:2px;background:var(--pink);animation:wspWave 1.1s ease-in-out infinite;}
.wsp-wave span:nth-child(1){height:4px;animation-delay:0s;}
.wsp-wave span:nth-child(2){height:10px;animation-delay:0.1s;}
.wsp-wave span:nth-child(3){height:16px;animation-delay:0.2s;}
.wsp-wave span:nth-child(4){height:10px;animation-delay:0.3s;}
.wsp-wave span:nth-child(5){height:5px;animation-delay:0.4s;}
@keyframes wspWave{0%,100%{transform:scaleY(0.35)}50%{transform:scaleY(1)}}

/* Temps */
.wsp-time{font-size:0.55rem;color:var(--muted);font-weight:700;white-space:nowrap;flex-shrink:0;min-width:52px;text-align:center;}

/* Volume */
.wsp-vol{-webkit-appearance:none;appearance:none;width:44px;height:3px;
  border-radius:3px;background:rgba(255,255,255,0.1);cursor:pointer;outline:none;flex-shrink:0;}
.wsp-vol::-webkit-slider-thumb{-webkit-appearance:none;width:11px;height:11px;
  border-radius:50%;background:var(--pink);cursor:pointer;}
.wsp-vol::-moz-range-thumb{width:11px;height:11px;border-radius:50%;background:var(--pink);border:none;}

/* Contrôles */
.wsp-controls{display:flex;align-items:center;gap:0.3rem;flex-shrink:0;}
.wsp-btn{background:rgba(255,255,255,0.06);border:1px solid rgba(255,255,255,0.1);
  color:var(--text);width:30px;height:30px;border-radius:50%;cursor:pointer;
  display:flex;align-items:center;justify-content:center;font-size:0.8rem;
  transition:all 0.15s;flex-shrink:0;}
.wsp-btn:active{transform:scale(0.88);}
.wsp-btn.play{background:linear-gradient(135deg,var(--pink),var(--purple));border:none;
  width:36px;height:36px;font-size:0.95rem;box-shadow:0 2px 10px rgba(255,45,155,0.4);}

/* Barre progression */
.wsp-prog-wrap{position:absolute;bottom:0;left:0;right:0;height:3px;
  background:rgba(255,255,255,0.07);cursor:pointer;}
.wsp-prog-bar{height:100%;width:0%;background:linear-gradient(90deg,var(--pink),var(--cyan));
  border-radius:0 2px 2px 0;transition:width 0.4s linear;}

/* ── État minimisé : seule la topbar reste visible ── */
#weekSongPlayer.minimized .wsp-body{display:none;}
#weekSongPlayer.minimized .wsp-topbar{
  background:rgba(255,45,155,0.1);
  border-bottom:none;
}
/* Barre de prog en bas de la topbar quand minimisé */
#weekSongPlayer.minimized .wsp-prog-wrap{
  position:absolute;bottom:0;left:0;right:0;height:3px;
  background:rgba(255,255,255,0.08);
}
/* Coller visuellement le lecteur à la barre de navigation */
#weekSongPlayer{border-bottom:none;}
/* Masquer proprement les images de galerie cassées */
#sec-profil .gallery-item img[src=""]{display:none;}
#sec-profil .gallery-item:empty{display:none;}
#sec-profil .gallery-item img:not([src]){display:none;}

/* Ajustement body quand lecteur visible */
/* body.wsp-open géré dynamiquement via --player-h */
/* body.wsp-open.wsp-minimized géré dynamiquement via --player-h */

/* ── Modal Admin chanson ── */
#weekSongAdminModal{
  display:none;position:fixed;inset:0;z-index:400;
  background:rgba(0,0,0,0.88);backdrop-filter:blur(12px);
  align-items:center;justify-content:center;padding:1rem;
}
#weekSongAdminModal.show{display:flex;}
.wsam-wrap{
  background:var(--surface);border:1.5px solid rgba(255,45,155,0.4);
  border-radius:24px;padding:1.5rem 1.3rem;width:min(400px,100%);
  max-height:90vh;overflow-y:auto;position:relative;
  animation:popIn 0.3s cubic-bezier(0.34,1.56,0.64,1);
}
.wsam-title{font-family:'Syne',sans-serif;font-size:1rem;font-weight:800;color:var(--pink);margin-bottom:0.2rem;}
.wsam-sub{font-size:0.72rem;color:var(--muted);margin-bottom:1.1rem;line-height:1.5;}
.wsam-label{font-size:0.68rem;color:var(--muted);font-weight:600;margin-bottom:0.25rem;display:block;}
.wsam-input{width:100%;background:var(--surface2);border:1px solid rgba(255,45,155,0.2);
  border-radius:10px;color:var(--text);font-family:'DM Sans',sans-serif;
  font-size:0.83rem;padding:0.55rem 0.8rem;outline:none;box-sizing:border-box;
  transition:border-color 0.2s;margin-bottom:0.65rem;}
.wsam-input:focus{border-color:rgba(255,45,155,0.5);}
.wsam-input::placeholder{color:var(--muted);}
.wsam-input[type=file]{padding:0.4rem;font-size:0.75rem;cursor:pointer;}
.wsam-section{font-size:0.6rem;font-weight:800;color:var(--cyan);text-transform:uppercase;
  letter-spacing:0.1em;margin:0.9rem 0 0.45rem;}
.wsam-audio-drop{
  border:2px dashed rgba(255,45,155,0.3);border-radius:12px;
  padding:1rem;text-align:center;cursor:pointer;
  background:rgba(255,45,155,0.03);position:relative;transition:all 0.2s;margin-bottom:0.65rem;
}
.wsam-audio-drop:hover,.wsam-audio-drop.drag{border-color:rgba(255,45,155,0.6);background:rgba(255,45,155,0.07);}
.wsam-audio-drop input{position:absolute;inset:0;opacity:0;cursor:pointer;width:100%;height:100%;}
.wsam-audio-drop .wad-icon{font-size:1.6rem;margin-bottom:0.25rem;}
.wsam-audio-drop .wad-txt{font-size:0.72rem;color:var(--muted);}
.wsam-audio-ok{display:none;align-items:center;gap:0.4rem;
  background:rgba(0,255,170,0.07);border:1px solid rgba(0,255,170,0.22);
  border-radius:8px;padding:0.38rem 0.65rem;margin-bottom:0.65rem;font-size:0.7rem;color:var(--green);font-weight:700;}
.wsam-audio-ok.show{display:flex;}
.wsam-toggle-row{display:flex;align-items:center;justify-content:space-between;
  background:rgba(255,255,255,0.03);border:1px solid rgba(255,255,255,0.07);
  border-radius:10px;padding:0.55rem 0.75rem;margin-bottom:0.5rem;}
.wsam-toggle-label{font-size:0.76rem;color:var(--text);font-weight:600;}
.wsam-toggle-sub{font-size:0.6rem;color:var(--muted);}
.wsam-tgl{position:relative;width:38px;height:20px;flex-shrink:0;}
.wsam-tgl input{opacity:0;width:0;height:0;}
.wsam-tgl-s{position:absolute;inset:0;background:rgba(255,255,255,0.1);border-radius:20px;cursor:pointer;transition:0.25s;}
.wsam-tgl-s:before{content:'';position:absolute;width:14px;height:14px;left:3px;top:3px;background:#fff;border-radius:50%;transition:0.25s;}
.wsam-tgl input:checked+.wsam-tgl-s{background:var(--pink);}
.wsam-tgl input:checked+.wsam-tgl-s:before{transform:translateX(18px);}
/* Cloudinary upload progress */
.wsam-upload-progress{display:none;margin-bottom:0.65rem;}
.wsam-upload-progress.show{display:block;}
.wsam-upload-progress-bar-wrap{background:rgba(255,255,255,0.07);border-radius:20px;height:8px;overflow:hidden;margin-top:0.35rem;}
.wsam-upload-progress-bar{height:100%;width:0%;background:linear-gradient(90deg,var(--pink),var(--cyan));border-radius:20px;transition:width 0.3s ease;}
.wsam-upload-progress-label{font-size:0.65rem;color:var(--muted);display:flex;justify-content:space-between;}
/* Config Cloudinary */
.wsam-cld-config{background:rgba(0,229,255,0.04);border:1px solid rgba(0,229,255,0.18);border-radius:10px;padding:0.7rem 0.8rem;margin-bottom:0.65rem;}
.wsam-cld-config summary{font-size:0.68rem;font-weight:700;color:var(--cyan);cursor:pointer;list-style:none;display:flex;align-items:center;gap:0.4rem;}
.wsam-cld-config summary::before{content:'⚙️';}
.wsam-cld-config[open] summary::before{content:'⚙️';}
.wsam-cld-inner{margin-top:0.6rem;display:flex;flex-direction:column;gap:0.35rem;}
.wsam-cld-config .wsam-input{margin-bottom:0;}
.wsam-cld-hint{font-size:0.6rem;color:var(--muted);line-height:1.5;margin-top:0.3rem;}
.wsam-cld-hint a{color:var(--cyan);text-decoration:none;}
.wsam-cld-status{font-size:0.65rem;padding:0.25rem 0.5rem;border-radius:6px;display:inline-block;margin-top:0.3rem;}
.wsam-cld-status.ok{background:rgba(0,255,170,0.1);color:var(--green);}
.wsam-cld-status.nok{background:rgba(255,68,102,0.1);color:var(--red);}
.wsam-btn-row{display:flex;gap:0.4rem;margin-top:1.1rem;}
/* Onglets source audio */
.wsam-src-tabs{display:flex;gap:0.35rem;margin-bottom:0.65rem;}
.wsam-src-tab{flex:1;padding:0.45rem 0.5rem;border-radius:8px;border:1px solid rgba(255,45,155,0.2);background:rgba(255,45,155,0.04);color:var(--muted);font-size:0.72rem;font-weight:700;cursor:pointer;font-family:"DM Sans",sans-serif;transition:all 0.2s;}
.wsam-src-tab.active{background:rgba(255,45,155,0.15);border-color:var(--pink);color:var(--pink);}
.wsam-src-tab:active{opacity:0.7;}
.wsam-url-actions{display:flex;gap:0.35rem;margin-bottom:0.5rem;}
.wsam-url-btn{flex:1;padding:0.42rem 0.5rem;border-radius:8px;border:1px solid rgba(0,229,255,0.3);background:rgba(0,229,255,0.06);color:var(--cyan);font-size:0.68rem;font-weight:700;cursor:pointer;font-family:"DM Sans",sans-serif;transition:all 0.2s;}
.wsam-url-btn.test{border-color:rgba(0,255,170,0.3);background:rgba(0,255,170,0.06);color:var(--green);}
.wsam-url-btn:active{opacity:0.7;}
.wsam-url-guide{font-size:0.62rem;color:var(--muted);line-height:1.6;background:rgba(255,255,255,0.03);border-radius:8px;padding:0.55rem 0.7rem;margin-bottom:0.65rem;}
.wsam-url-test-result{font-size:0.68rem;font-weight:700;padding:0.35rem 0.6rem;border-radius:7px;margin-bottom:0.45rem;display:none;}
.wsam-url-test-result.ok{display:block;background:rgba(0,255,170,0.1);color:var(--green);border:1px solid rgba(0,255,170,0.2);}
.wsam-url-test-result.err{display:block;background:rgba(255,68,102,0.1);color:var(--red);border:1px solid rgba(255,68,102,0.2);}
.wsam-local-warn{font-size:0.65rem;color:var(--amber);background:rgba(255,215,0,0.06);border:1px solid rgba(255,215,0,0.2);border-radius:8px;padding:0.45rem 0.65rem;margin-top:0.4rem;line-height:1.5;}
.wsam-btn{flex:1;padding:0.7rem;border-radius:12px;border:none;
  font-family:'Syne',sans-serif;font-weight:800;font-size:0.82rem;cursor:pointer;transition:opacity 0.2s;}
.wsam-btn:active{opacity:0.8;}
.wsam-btn.ok{background:linear-gradient(135deg,var(--pink),var(--purple));color:#fff;}
.wsam-btn.del{background:rgba(255,68,102,0.12);color:var(--red);border:1px solid rgba(255,68,102,0.28);}
.wsam-btn.cancel{background:rgba(255,255,255,0.06);color:var(--muted);border:1px solid rgba(255,255,255,0.1);}

/* ══════════════════════════════════════════════════════════════
   ══ ADMIN SOCIAL MEDIA MANAGER                               ══
   ══════════════════════════════════════════════════════════════ */
/* ── Layout général ── */
#panelSocialMedia{animation:fadeUp 0.3s ease both;}
@keyframes fadeUp{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}
.asm-section{margin-bottom:1.4rem;}
.asm-section-title{font-family:'Syne',sans-serif;font-size:0.72rem;font-weight:800;text-transform:uppercase;letter-spacing:0.09em;color:var(--cyan);margin-bottom:0.7rem;display:flex;align-items:center;gap:0.4rem;padding-bottom:0.4rem;border-bottom:1px solid rgba(0,229,255,0.12);}
.asm-section-title::after{content:'';flex:1;height:1px;background:rgba(0,229,255,0.08);}

/* ── KPI cards ── */
.asm-kpi-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:0.6rem;}
.asm-kpi{background:rgba(255,255,255,0.03);border:1px solid rgba(255,255,255,0.08);border-radius:14px;padding:0.85rem 0.9rem;position:relative;overflow:hidden;transition:border-color 0.2s;}
.asm-kpi:hover{border-color:rgba(255,255,255,0.15);}
.asm-kpi-value{font-family:'Syne',sans-serif;font-size:1.6rem;font-weight:900;line-height:1;}
.asm-kpi-label{font-size:0.62rem;color:var(--muted);margin-top:0.2rem;line-height:1.3;}
.asm-kpi-delta{font-size:0.6rem;font-weight:700;margin-top:0.3rem;}
.asm-kpi-delta.up{color:var(--green);}
.asm-kpi-delta.down{color:var(--red);}
.asm-kpi-delta.stable{color:var(--amber);}
.asm-kpi-icon{position:absolute;top:0.7rem;right:0.8rem;font-size:1.3rem;opacity:0.3;}
.asm-kpi.pink{border-color:rgba(255,45,155,0.25);background:rgba(255,45,155,0.05);}
.asm-kpi.pink .asm-kpi-value{color:var(--pink);}
.asm-kpi.cyan{border-color:rgba(0,229,255,0.25);background:rgba(0,229,255,0.05);}
.asm-kpi.cyan .asm-kpi-value{color:var(--cyan);}
.asm-kpi.green{border-color:rgba(0,255,170,0.25);background:rgba(0,255,170,0.05);}
.asm-kpi.green .asm-kpi-value{color:var(--green);}
.asm-kpi.amber{border-color:rgba(255,215,0,0.25);background:rgba(255,215,0,0.05);}
.asm-kpi.amber .asm-kpi-value{color:var(--amber);}

/* ── Platform tabs ── */
.asm-plt-tabs{display:flex;gap:0.35rem;margin-bottom:0.9rem;flex-wrap:wrap;}
.asm-plt-tab{display:flex;align-items:center;gap:0.3rem;padding:0.4rem 0.65rem;border-radius:20px;border:1px solid rgba(255,255,255,0.1);background:rgba(255,255,255,0.03);color:var(--muted);font-size:0.7rem;font-weight:700;cursor:pointer;font-family:'DM Sans',sans-serif;transition:all 0.2s;white-space:nowrap;}
.asm-plt-tab.active-ig{background:rgba(225,48,108,0.15);border-color:rgba(225,48,108,0.45);color:#e1306c;}
.asm-plt-tab.active-fb{background:rgba(24,119,242,0.15);border-color:rgba(24,119,242,0.45);color:#1877f2;}
.asm-plt-tab.active-tk{background:rgba(255,255,255,0.08);border-color:rgba(255,255,255,0.3);color:#fff;}
.asm-plt-tab.active-wa{background:rgba(37,211,102,0.12);border-color:rgba(37,211,102,0.4);color:#25d366;}
.asm-plt-tab:active{opacity:0.7;}
.asm-plt-dot{width:7px;height:7px;border-radius:50%;flex-shrink:0;}
.asm-plt-dot.ig{background:#e1306c;}
.asm-plt-dot.fb{background:#1877f2;}
.asm-plt-dot.tk{background:#fff;}
.asm-plt-dot.wa{background:#25d366;}

/* ── Bar chart ── */
.asm-bar-chart{display:flex;flex-direction:column;gap:0.5rem;}
.asm-bar-row{display:flex;align-items:center;gap:0.55rem;}
.asm-bar-label{font-size:0.7rem;color:var(--muted);min-width:48px;text-align:right;flex-shrink:0;}
.asm-bar-track{flex:1;height:10px;background:rgba(255,255,255,0.06);border-radius:20px;overflow:hidden;}
.asm-bar-fill{height:100%;border-radius:20px;transition:width 0.6s cubic-bezier(0.34,1.1,0.64,1);}
.asm-bar-val{font-size:0.7rem;font-weight:700;color:var(--text);min-width:36px;flex-shrink:0;}

/* ── Post scheduler ── */
.asm-post-card{background:rgba(255,255,255,0.03);border:1px solid rgba(255,255,255,0.08);border-radius:14px;padding:0.9rem;margin-bottom:0.6rem;transition:all 0.2s;}
.asm-post-card:hover{border-color:rgba(255,45,155,0.25);}
.asm-post-header{display:flex;align-items:flex-start;gap:0.6rem;margin-bottom:0.55rem;}
.asm-post-platforms{display:flex;gap:0.25rem;flex-shrink:0;margin-top:0.1rem;}
.asm-post-plat-icon{font-size:0.82rem;line-height:1;}
.asm-post-body{flex:1;min-width:0;}
.asm-post-caption{font-size:0.78rem;color:var(--text);line-height:1.4;margin-bottom:0.35rem;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;}
.asm-post-meta{display:flex;align-items:center;gap:0.5rem;flex-wrap:wrap;}
.asm-post-date{font-size:0.62rem;color:var(--muted);}
.asm-post-status{font-size:0.58rem;font-weight:800;padding:0.12rem 0.45rem;border-radius:20px;}
.asm-post-status.scheduled{background:rgba(0,229,255,0.12);color:var(--cyan);border:1px solid rgba(0,229,255,0.3);}
.asm-post-status.published{background:rgba(0,255,170,0.1);color:var(--green);border:1px solid rgba(0,255,170,0.3);}
.asm-post-status.draft{background:rgba(255,255,255,0.05);color:var(--muted);border:1px solid rgba(255,255,255,0.1);}
.asm-post-status.failed{background:rgba(255,68,102,0.1);color:var(--red);border:1px solid rgba(255,68,102,0.3);}
.asm-post-actions{display:flex;gap:0.3rem;flex-shrink:0;margin-left:auto;}
.asm-icon-btn{width:28px;height:28px;border-radius:8px;border:1px solid rgba(255,255,255,0.1);background:rgba(255,255,255,0.04);color:var(--muted);font-size:0.78rem;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all 0.15s;flex-shrink:0;}
.asm-icon-btn:active{transform:scale(0.9);}
.asm-icon-btn.edit:hover{border-color:var(--cyan);color:var(--cyan);}
.asm-icon-btn.del:hover{border-color:var(--red);color:var(--red);}

/* ── Comment modération ── */
.asm-comment-item{background:rgba(255,255,255,0.03);border:1px solid rgba(255,255,255,0.07);border-radius:12px;padding:0.75rem 0.9rem;margin-bottom:0.5rem;transition:border-color 0.2s;}
.asm-comment-item.flagged{border-color:rgba(255,68,102,0.35);background:rgba(255,68,102,0.04);}
.asm-comment-item.approved{border-color:rgba(0,255,170,0.25);background:rgba(0,255,170,0.03);}
.asm-comment-top{display:flex;align-items:flex-start;gap:0.5rem;margin-bottom:0.4rem;}
.asm-comment-avatar{width:28px;height:28px;border-radius:50%;background:rgba(255,45,155,0.15);border:1px solid rgba(255,45,155,0.3);display:flex;align-items:center;justify-content:center;font-size:0.85rem;flex-shrink:0;}
.asm-comment-info{flex:1;min-width:0;}
.asm-comment-author{font-size:0.75rem;font-weight:700;color:var(--text);}
.asm-comment-platform{font-size:0.58rem;color:var(--muted);margin-left:0.35rem;}
.asm-comment-time{font-size:0.6rem;color:var(--muted);margin-top:0.05rem;}
.asm-comment-text{font-size:0.75rem;color:var(--muted);line-height:1.45;margin-bottom:0.45rem;}
.asm-comment-btns{display:flex;gap:0.35rem;flex-wrap:wrap;}
.asm-comment-btn{padding:0.22rem 0.6rem;border-radius:7px;font-size:0.62rem;font-weight:700;cursor:pointer;font-family:'DM Sans',sans-serif;border:1px solid;transition:all 0.15s;}
.asm-comment-btn.approve{background:rgba(0,255,170,0.08);border-color:rgba(0,255,170,0.3);color:var(--green);}
.asm-comment-btn.hide{background:rgba(255,215,0,0.08);border-color:rgba(255,215,0,0.3);color:var(--amber);}
.asm-comment-btn.delete{background:rgba(255,68,102,0.08);border-color:rgba(255,68,102,0.3);color:var(--red);}
.asm-comment-btn.reply{background:rgba(0,229,255,0.07);border-color:rgba(0,229,255,0.3);color:var(--cyan);}
.asm-comment-btn:active{opacity:0.7;}
.asm-flag-badge{font-size:0.58rem;padding:0.1rem 0.38rem;border-radius:5px;background:rgba(255,68,102,0.15);color:var(--red);border:1px solid rgba(255,68,102,0.3);font-weight:800;}

/* ── Hashtag / Trends ── */
.asm-trend-list{display:flex;flex-direction:column;gap:0.4rem;}
.asm-trend-item{display:flex;align-items:center;gap:0.55rem;background:rgba(255,255,255,0.03);border:1px solid rgba(255,255,255,0.07);border-radius:11px;padding:0.6rem 0.8rem;cursor:pointer;transition:all 0.2s;}
.asm-trend-item:active{background:rgba(255,45,155,0.06);}
.asm-trend-rank{font-family:'Syne',sans-serif;font-size:0.78rem;font-weight:800;color:var(--muted);min-width:20px;text-align:right;flex-shrink:0;}
.asm-trend-tag{font-size:0.8rem;font-weight:700;color:var(--pink);flex:1;}
.asm-trend-vol{font-size:0.68rem;color:var(--muted);}
.asm-trend-badge{font-size:0.58rem;font-weight:800;padding:0.1rem 0.38rem;border-radius:5px;}
.asm-trend-badge.hot{background:rgba(255,68,102,0.15);color:var(--red);border:1px solid rgba(255,68,102,0.3);}
.asm-trend-badge.rise{background:rgba(0,255,170,0.1);color:var(--green);border:1px solid rgba(0,255,170,0.3);}
.asm-trend-badge.new{background:rgba(0,229,255,0.1);color:var(--cyan);border:1px solid rgba(0,229,255,0.3);}

/* ── Compose modal ── */
#asmComposeModal{display:none;position:fixed;inset:0;z-index:500;background:rgba(0,0,0,0.85);backdrop-filter:blur(10px);align-items:flex-end;justify-content:center;padding-bottom:0;}
#asmComposeModal.open{display:flex;}
.asm-compose-sheet{background:var(--surface);border:1px solid rgba(255,45,155,0.3);border-radius:24px 24px 0 0;width:100%;max-width:540px;max-height:92vh;overflow-y:auto;padding:1.4rem 1.2rem 2rem;animation:slideUpSheet 0.35s cubic-bezier(0.34,1.2,0.64,1);}
@keyframes slideUpSheet{from{transform:translateY(100%)}to{transform:translateY(0)}}
.asm-compose-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:1.1rem;}
.asm-compose-title{font-family:'Syne',sans-serif;font-size:1rem;font-weight:800;color:var(--pink);}
.asm-compose-close{width:30px;height:30px;border-radius:50%;background:rgba(255,255,255,0.06);border:1px solid rgba(255,255,255,0.1);color:var(--muted);font-size:0.9rem;cursor:pointer;display:flex;align-items:center;justify-content:center;}
.asm-plt-selector{display:flex;gap:0.4rem;flex-wrap:wrap;margin-bottom:0.9rem;}
.asm-plt-check{display:flex;align-items:center;gap:0.3rem;padding:0.38rem 0.65rem;border-radius:20px;border:1px solid rgba(255,255,255,0.1);background:rgba(255,255,255,0.03);cursor:pointer;font-size:0.72rem;font-weight:700;font-family:'DM Sans',sans-serif;color:var(--muted);transition:all 0.2s;user-select:none;}
.asm-plt-check input{display:none;}
.asm-plt-check.checked-ig{background:rgba(225,48,108,0.15);border-color:rgba(225,48,108,0.5);color:#e1306c;}
.asm-plt-check.checked-fb{background:rgba(24,119,242,0.15);border-color:rgba(24,119,242,0.5);color:#1877f2;}
.asm-plt-check.checked-tk{background:rgba(255,255,255,0.1);border-color:rgba(255,255,255,0.4);color:#fff;}
.asm-plt-check.checked-wa{background:rgba(37,211,102,0.12);border-color:rgba(37,211,102,0.45);color:#25d366;}
.asm-compose-textarea{width:100%;background:rgba(255,255,255,0.04);border:1px solid rgba(255,255,255,0.1);border-radius:12px;color:var(--text);font-family:'DM Sans',sans-serif;font-size:0.88rem;padding:0.75rem 0.9rem;outline:none;resize:vertical;min-height:100px;margin-bottom:0.7rem;transition:border-color 0.2s;line-height:1.5;}
.asm-compose-textarea:focus{border-color:rgba(255,45,155,0.5);}
.asm-compose-textarea::placeholder{color:var(--muted);}
.asm-char-count{font-size:0.62rem;color:var(--muted);text-align:right;margin-top:-0.55rem;margin-bottom:0.7rem;}
.asm-char-count.over{color:var(--red);}
.asm-compose-row{display:flex;gap:0.5rem;margin-bottom:0.8rem;}
.asm-compose-input{flex:1;background:rgba(255,255,255,0.04);border:1px solid rgba(255,255,255,0.1);border-radius:10px;color:var(--text);font-family:'DM Sans',sans-serif;font-size:0.82rem;padding:0.55rem 0.75rem;outline:none;transition:border-color 0.2s;}
.asm-compose-input:focus{border-color:rgba(255,45,155,0.5);}
.asm-compose-input::placeholder{color:var(--muted);}
.asm-media-upload{display:flex;align-items:center;justify-content:center;gap:0.5rem;padding:0.7rem;border-radius:12px;border:1.5px dashed rgba(255,255,255,0.15);background:rgba(255,255,255,0.02);color:var(--muted);font-size:0.78rem;font-weight:600;cursor:pointer;margin-bottom:0.8rem;transition:all 0.2s;}
.asm-media-upload:active{background:rgba(255,45,155,0.06);}
.asm-hashtag-suggest{display:flex;flex-wrap:wrap;gap:0.3rem;margin-bottom:0.8rem;}
.asm-hashtag-chip{padding:0.22rem 0.55rem;border-radius:20px;background:rgba(255,45,155,0.08);border:1px solid rgba(255,45,155,0.2);color:var(--pink);font-size:0.68rem;font-weight:700;cursor:pointer;transition:all 0.15s;}
.asm-hashtag-chip:active{background:rgba(255,45,155,0.2);}
.asm-compose-actions{display:flex;gap:0.5rem;margin-top:0.4rem;}
.asm-compose-btn{flex:1;padding:0.75rem;border-radius:12px;border:none;font-family:'Syne',sans-serif;font-weight:800;font-size:0.85rem;cursor:pointer;transition:all 0.2s;}
.asm-compose-btn.primary{background:linear-gradient(135deg,var(--pink),var(--purple));color:#fff;}
.asm-compose-btn.secondary{background:rgba(255,255,255,0.06);border:1px solid rgba(255,255,255,0.12);color:var(--muted);}
.asm-compose-btn:active{opacity:0.8;}

/* ── Insights graphe miniature ── */
.asm-sparkline-wrap{display:flex;flex-direction:column;gap:0.6rem;}
.asm-sparkline-row{display:flex;align-items:center;gap:0.7rem;}
.asm-sparkline-label{font-size:0.7rem;color:var(--muted);min-width:70px;flex-shrink:0;}
.asm-sparkline{flex:1;height:28px;position:relative;}
.asm-sparkline svg{width:100%;height:100%;}

/* ── Report export ── */
.asm-export-row{display:flex;gap:0.5rem;flex-wrap:wrap;}
.asm-export-btn{flex:1;min-width:100px;display:flex;align-items:center;justify-content:center;gap:0.4rem;padding:0.6rem 0.8rem;border-radius:11px;font-size:0.75rem;font-weight:700;cursor:pointer;font-family:'DM Sans',sans-serif;transition:all 0.2s;border:1px solid;}
.asm-export-btn.csv{background:rgba(0,255,170,0.06);border-color:rgba(0,255,170,0.3);color:var(--green);}
.asm-export-btn.pdf{background:rgba(255,68,102,0.06);border-color:rgba(255,68,102,0.3);color:var(--red);}
.asm-export-btn.json{background:rgba(0,229,255,0.06);border-color:rgba(0,229,255,0.3);color:var(--cyan);}
.asm-export-btn:active{opacity:0.75;transform:scale(0.97);}

/* ── Filter bar ── */
.asm-filter-bar{display:flex;gap:0.4rem;margin-bottom:0.85rem;flex-wrap:wrap;}
.asm-filter-chip{padding:0.28rem 0.65rem;border-radius:20px;border:1px solid rgba(255,255,255,0.1);background:rgba(255,255,255,0.03);color:var(--muted);font-size:0.68rem;font-weight:700;cursor:pointer;font-family:'DM Sans',sans-serif;transition:all 0.2s;}
.asm-filter-chip.active{background:rgba(255,45,155,0.15);border-color:var(--pink);color:var(--pink);}
.asm-filter-chip:active{opacity:0.75;}

/* ── Audience donut-style ── */
.asm-audience-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:0.55rem;}
.asm-audience-card{background:rgba(255,255,255,0.03);border:1px solid rgba(255,255,255,0.07);border-radius:12px;padding:0.75rem;text-align:center;}
.asm-audience-pct{font-family:'Syne',sans-serif;font-size:1.3rem;font-weight:900;}
.asm-audience-label{font-size:0.62rem;color:var(--muted);margin-top:0.15rem;line-height:1.3;}

/* ── CTA bouton nouveau post ── */
.asm-new-post-cta{width:100%;display:flex;align-items:center;justify-content:center;gap:0.5rem;padding:0.8rem;border-radius:13px;border:1.5px dashed rgba(255,45,155,0.45);background:rgba(255,45,155,0.06);color:var(--pink);font-family:'Syne',sans-serif;font-weight:800;font-size:0.88rem;cursor:pointer;transition:all 0.2s;margin-bottom:0.9rem;}

/* ══════════════════════════════════════════════════════════════
   ══ SOCIAL — PANEL PUBLICATIONS (Posts · Discussions · Likes) ══
   ══════════════════════════════════════════════════════════════ */

/* ── Barre de composition rapide ── */
.socpub-compose-bar{
  display:flex;align-items:center;gap:0.6rem;
  background:var(--surface);border:1.5px solid rgba(255,45,155,0.28);
  border-radius:18px;padding:0.75rem 1rem;
  cursor:pointer;margin-bottom:0.8rem;
  transition:border-color 0.2s,box-shadow 0.2s,transform 0.15s;
  box-shadow:0 2px 16px rgba(255,45,155,0.1),0 1px 4px rgba(0,0,0,0.25);
  width:100%;position:relative;z-index:3;outline:none;
}
.socpub-compose-bar:hover{
  border-color:rgba(255,45,155,0.58);
  box-shadow:0 0 0 3px rgba(255,45,155,0.12),0 4px 18px rgba(255,45,155,0.14);
  transform:translateY(-1px);
}
.socpub-compose-bar:active{transform:scale(0.984);}
.socpub-compose-bar:focus-visible{outline:2px solid var(--pink);outline-offset:2px;}
.socpub-compose-avatar{
  width:36px;height:36px;border-radius:50%;flex-shrink:0;
  background:linear-gradient(135deg,var(--pink),var(--purple));
  display:flex;align-items:center;justify-content:center;
  font-weight:800;font-size:0.9rem;color:#fff;
}
.socpub-compose-prompt{flex:1;min-width:0;}
.socpub-compose-text{font-size:0.8rem;color:rgba(255,240,248,0.68);}
.socpub-compose-actions{display:flex;gap:0.3rem;flex-shrink:0;position:relative;z-index:10;}
.socpub-quick-btn{
  width:36px;height:36px;border-radius:50%;border:1.5px solid rgba(255,255,255,0.15);
  background:rgba(255,255,255,0.05);cursor:pointer;font-size:1.05rem;
  display:flex;align-items:center;justify-content:center;
  transition:all 0.18s;-webkit-tap-highlight-color:transparent;
}
.socpub-quick-btn:hover{transform:scale(1.12);}
.socpub-quick-btn:active{transform:scale(0.88);}
.socpub-quick-btn.img{border-color:rgba(255,45,155,0.5);background:rgba(255,45,155,0.08);}
.socpub-quick-btn.img:active{background:rgba(255,45,155,0.18);}
.socpub-quick-btn.vid{border-color:rgba(0,229,255,0.5);background:rgba(0,229,255,0.07);}
.socpub-quick-btn.vid:active{background:rgba(0,229,255,0.16);}
.socpub-quick-btn.ev{border-color:rgba(255,215,0,0.5);background:rgba(255,215,0,0.07);}
.socpub-quick-btn.ev:active{background:rgba(255,215,0,0.16);}

/* ── Filtre catégories ── */
.socpub-filter-row{
  display:flex;gap:0.35rem;overflow-x:auto;scrollbar-width:none;
  padding-bottom:0.55rem;margin-bottom:0.6rem;
  width:100%;
}
.socpub-filter-row::-webkit-scrollbar{display:none;}
.soc-tab,.socpub-fchip,.socpub-type-chip,.socpub-action-btn,.socpub-comment-submit,.pub-tab,.pub-quickbar-btn{touch-action:manipulation;}
.socpub-fchip{
  flex-shrink:0;padding:0.3rem 0.75rem;border-radius:20px;
  border:1px solid rgba(255,255,255,0.1);background:rgba(255,255,255,0.03);
  color:var(--muted);font-size:0.72rem;font-weight:700;
  cursor:pointer;font-family:'DM Sans',sans-serif;
  white-space:nowrap;transition:all 0.2s;
}
.socpub-fchip.active{background:rgba(255,45,155,0.15);border-color:var(--pink);color:var(--pink);}
.socpub-fchip:active{opacity:0.75;}

/* ── Card publication ── */
.socpub-card{
  background:var(--surface);border:1px solid var(--border);
  border-radius:20px;overflow:hidden;
  margin-bottom:0.85rem;
  box-shadow:0 4px 20px rgba(0,0,0,0.3);
  transition:border-color 0.2s;
  animation:fadeUp 0.35s ease both;
  width:100%;
}
.socpub-card:hover{border-color:rgba(255,45,155,0.22);}

/* Header de la card */
.socpub-card-header{
  display:flex;align-items:center;gap:0.6rem;
  padding:0.9rem 1rem 0.55rem;
}
.socpub-avatar{
  width:40px;height:40px;border-radius:50%;flex-shrink:0;
  background:linear-gradient(135deg,var(--pink),var(--purple));
  display:flex;align-items:center;justify-content:center;
  font-weight:800;font-size:1rem;color:#fff;
  border:2px solid rgba(255,45,155,0.3);
}
.socpub-avatar.etab{border-color:rgba(255,215,0,0.4);}
.socpub-meta{flex:1;min-width:0;}
.socpub-author{font-size:0.82rem;font-weight:700;color:var(--text);display:flex;align-items:center;gap:0.35rem;flex-wrap:wrap;}
.socpub-badge{font-size:0.55rem;font-weight:800;padding:0.1rem 0.45rem;border-radius:20px;text-transform:uppercase;letter-spacing:0.06em;}
.socpub-badge.admin{background:rgba(255,45,155,0.15);color:var(--pink);border:1px solid rgba(255,45,155,0.35);}
.socpub-badge.etab{background:rgba(255,215,0,0.12);color:var(--amber);border:1px solid rgba(255,215,0,0.3);}
.socpub-badge.verifie{background:rgba(0,229,255,0.12);color:var(--cyan);border:1px solid rgba(0,229,255,0.3);}
.socpub-time{font-size:0.65rem;color:var(--muted);margin-top:0.07rem;}
.socpub-more-btn{
  width:32px;height:32px;border-radius:50%;border:none;
  background:rgba(255,255,255,0.04);color:var(--muted);
  font-size:1.1rem;cursor:pointer;display:flex;align-items:center;justify-content:center;
  flex-shrink:0;transition:background 0.15s;
}
.socpub-more-btn:active{background:rgba(255,255,255,0.1);}

/* Texte de la publication */
.socpub-text{
  font-size:0.88rem;color:var(--text);line-height:1.55;
  padding:0 1rem 0.6rem;
}

/* Tags */
.socpub-tags-row{display:flex;flex-wrap:wrap;gap:0.28rem;padding:0 1rem 0.55rem;}
.socpub-tag{
  font-size:0.65rem;font-weight:700;color:var(--pink);
  background:rgba(255,45,155,0.08);border:1px solid rgba(255,45,155,0.2);
  border-radius:20px;padding:0.12rem 0.5rem;cursor:pointer;
}
.socpub-tag:active{background:rgba(255,45,155,0.18);}

/* ── Grilles médias ── */
.socpub-media-grid{
  display:grid;gap:2px;margin-bottom:0.5rem;
  border-radius:0;overflow:hidden;
}
.socpub-media-grid.single{grid-template-columns:1fr;}
.socpub-media-grid.duo{grid-template-columns:1fr 1fr;}
.socpub-media-grid.trio{grid-template-columns:1fr 1fr;grid-template-rows:auto auto;}
.socpub-media-grid.quad{grid-template-columns:1fr 1fr;grid-template-rows:120px 120px;}
.socpub-media-thumb{
  background:rgba(255,255,255,0.05);
  min-height:100px;cursor:pointer;
  position:relative;overflow:hidden;
}
.socpub-media-thumb img{width:100%;height:100%;object-fit:cover;display:block;}
.socpub-media-thumb.more::after{
  content:'';position:absolute;inset:0;
  background:rgba(0,0,0,0.45);
}
.socpub-media-thumb.more>*{position:relative;z-index:1;}
.socpub-media-grid.single .socpub-media-thumb{height:220px;border-radius:14px;margin:0 1rem 0.6rem;}

/* ── Barre réactions ── */
.socpub-reactions-bar{
  display:flex;align-items:center;justify-content:space-between;
  padding:0.4rem 1rem;border-top:1px solid rgba(255,255,255,0.07);
  font-size:0.7rem;color:rgba(255,240,248,0.65);
}
.socpub-reactions-summary{display:flex;align-items:center;gap:0.3rem;}
.socpub-react-emoji{font-size:0.9rem;line-height:1;}
.socpub-react-count{font-size:0.68rem;color:rgba(255,240,248,0.65);}
.socpub-stats-mini{display:flex;gap:0.6rem;}

/* ── Barre d'actions ── */
.socpub-action-bar{
  display:flex;border-top:1px solid rgba(255,255,255,0.06);
}
.socpub-action-btn{
  flex:1;display:flex;align-items:center;justify-content:center;gap:0.35rem;
  padding:0.65rem 0.4rem;font-size:0.78rem;font-weight:700;
  color:rgba(255,240,248,0.72);background:none;border:none;cursor:pointer;
  font-family:'DM Sans',sans-serif;transition:all 0.15s;
  border-right:1px solid rgba(255,255,255,0.06);
  min-height:44px;
}
.socpub-action-btn:last-child{border-right:none;}
.socpub-action-btn:active{background:rgba(255,255,255,0.05);}
.socpub-action-btn.like:active,.socpub-action-btn.like.active{color:var(--pink);}
.socpub-action-btn.comment:active{color:var(--cyan);}
.socpub-action-btn.share:active{color:var(--green);}
.socpub-action-icon{font-size:1.15rem;}
.socpub-action-count{font-size:0.72rem;opacity:0.88;}

/* ── Emoji Picker rapide ── */
.socpub-emoji-picker{
  display:flex;gap:0.4rem;padding:0.5rem 1rem;
  border-top:1px solid rgba(255,255,255,0.06);
  background:rgba(255,255,255,0.02);
  animation:slideInRight 0.2s ease;
}
.socpub-emoji-picker button{
  width:36px;height:36px;border-radius:50%;border:1px solid rgba(255,255,255,0.1);
  background:rgba(255,255,255,0.04);font-size:1.2rem;cursor:pointer;
  display:flex;align-items:center;justify-content:center;
  transition:all 0.15s;
}
.socpub-emoji-picker button:active{transform:scale(1.25);}

/* ── Événement Banner ── */
.socpub-event-banner{
  display:flex;gap:0.8rem;align-items:flex-start;
  background:linear-gradient(135deg,rgba(255,215,0,0.08),rgba(255,45,155,0.06));
  border:1px solid rgba(255,215,0,0.2);
  border-radius:14px;margin:0 1rem 0.65rem;padding:0.85rem;
}
.socpub-event-date-block{
  background:rgba(255,215,0,0.12);border:1px solid rgba(255,215,0,0.3);
  border-radius:10px;padding:0.4rem 0.7rem;text-align:center;flex-shrink:0;
}
.socpub-event-day{font-size:0.58rem;font-weight:800;text-transform:uppercase;letter-spacing:0.08em;color:var(--amber);}
.socpub-event-num{font-family:'Syne',sans-serif;font-size:1.6rem;font-weight:900;color:var(--amber);line-height:1;}
.socpub-event-info{flex:1;min-width:0;}
.socpub-event-title{font-family:'Syne',sans-serif;font-size:0.88rem;font-weight:800;color:var(--text);margin-bottom:0.35rem;}
.socpub-event-details{display:flex;gap:0.6rem;flex-wrap:wrap;font-size:0.68rem;color:var(--muted);margin-bottom:0.22rem;}

/* ── CTA Événement (intéressé/participe) ── */
.socpub-event-cta-row{
  display:flex;gap:0.4rem;padding:0 1rem 0.65rem;flex-wrap:wrap;
}
.socpub-event-cta{
  flex:1;min-width:90px;padding:0.45rem 0.5rem;border-radius:10px;
  font-size:0.72rem;font-weight:700;cursor:pointer;
  font-family:'DM Sans',sans-serif;border:1px solid;
  transition:all 0.15s;white-space:nowrap;
  display:flex;align-items:center;justify-content:center;gap:0.3rem;
}
.socpub-event-cta.interested{background:rgba(255,215,0,0.08);border-color:rgba(255,215,0,0.3);color:var(--amber);}
.socpub-event-cta.interested.active{background:rgba(255,215,0,0.2);border-color:var(--amber);}
.socpub-event-cta.going{background:rgba(0,255,170,0.08);border-color:rgba(0,255,170,0.3);color:var(--green);}
.socpub-event-cta.going.active{background:rgba(0,255,170,0.2);border-color:var(--green);}
.socpub-event-cta.share-ev{background:rgba(0,229,255,0.07);border-color:rgba(0,229,255,0.3);color:var(--cyan);}
.socpub-event-cta:active{opacity:0.75;}

/* ── Avis / Review Card ── */
.socpub-avis-header{padding:0 1rem 0.45rem;display:flex;flex-direction:column;gap:0.3rem;}
.socpub-avis-etab{font-size:0.78rem;font-weight:700;color:var(--cyan);}
.socpub-stars{display:flex;align-items:center;gap:0.18rem;}
.socpub-star{font-size:1rem;color:rgba(255,255,255,0.15);}
.socpub-star.filled{color:var(--amber);}
.socpub-stars-label{font-size:0.72rem;font-weight:700;color:var(--amber);margin-left:0.3rem;}
.socpub-avis-criteria{padding:0 1rem 0.65rem;display:flex;flex-direction:column;gap:0.4rem;}
.socpub-criterion{display:grid;grid-template-columns:80px 1fr 30px;align-items:center;gap:0.5rem;font-size:0.68rem;color:var(--muted);}
.socpub-criterion-bar{height:6px;background:rgba(255,255,255,0.07);border-radius:20px;overflow:hidden;}
.socpub-criterion-bar>div{height:100%;border-radius:20px;transition:width 0.6s ease;}

/* ── Section commentaires ── */
.socpub-comments-section{
  border-top:1px solid rgba(255,255,255,0.06);
  background:rgba(0,0,0,0.12);
  padding:0.6rem 0.8rem 0.8rem;
  animation:fadeUp 0.2s ease;
}
.socpub-comments-list{display:flex;flex-direction:column;gap:0.55rem;margin-bottom:0.6rem;}
.socpub-comment{display:flex;gap:0.45rem;align-items:flex-start;}
.socpub-comment.reply{padding-left:2.5rem;}
.socpub-comment-avatar{
  width:32px;height:32px;border-radius:50%;flex-shrink:0;
  background:linear-gradient(135deg,var(--pink),var(--purple));
  display:flex;align-items:center;justify-content:center;
  font-weight:800;font-size:0.78rem;color:#fff;
}
.socpub-comment-body{flex:1;min-width:0;}
.socpub-comment-author{font-size:0.72rem;font-weight:700;color:var(--text);}
.socpub-comment-time{font-size:0.6rem;color:var(--muted);font-weight:400;}
.socpub-comment-text{font-size:0.78rem;color:rgba(255,240,248,0.85);line-height:1.4;margin-top:0.12rem;word-break:break-word;}
.socpub-comment-actions{display:flex;gap:0.5rem;margin-top:0.25rem;}
.socpub-comment-actions button{
  background:none;border:none;font-size:0.68rem;color:rgba(255,240,248,0.6);
  cursor:pointer;font-family:'DM Sans',sans-serif;
  padding:0.25rem 0.45rem;border-radius:6px;min-height:32px;
  display:flex;align-items:center;gap:0.2rem;transition:color 0.15s,background 0.15s;
}
.socpub-comment-actions button:hover{background:rgba(255,255,255,0.06);color:var(--text);}
.socpub-comment-actions button:active{color:var(--pink);}
.socpub-replies{margin-top:0.45rem;display:flex;flex-direction:column;gap:0.4rem;}

/* ── Zone saisie commentaire ── */
.socpub-comment-compose{
  display:flex;align-items:center;gap:0.5rem;
  background:rgba(255,255,255,0.06);
  border:1.5px solid rgba(255,45,155,0.25);
  border-radius:30px;padding:0.35rem 0.35rem 0.35rem 0.6rem;
  margin-top:0.4rem;transition:border-color 0.2s;
}
.socpub-comment-compose:focus-within{border-color:rgba(255,45,155,0.55);background:rgba(255,255,255,0.08);}
.socpub-comment-compose-avatar{
  width:28px;height:28px;border-radius:50%;flex-shrink:0;
  background:linear-gradient(135deg,var(--pink),var(--purple));
  display:flex;align-items:center;justify-content:center;
  font-weight:800;font-size:0.7rem;color:#fff;
}
.socpub-comment-compose-input-wrap{display:flex;flex:1;align-items:center;gap:0.3rem;}
.socpub-comment-input{
  flex:1;background:none;border:none;color:var(--text);
  font-size:0.8rem;font-family:'DM Sans',sans-serif;outline:none;
}
.socpub-comment-input::placeholder{color:var(--muted);}
.socpub-comment-submit{
  width:28px;height:28px;border-radius:50%;background:var(--pink);
  border:none;color:#fff;font-size:0.85rem;cursor:pointer;
  display:flex;align-items:center;justify-content:center;
  flex-shrink:0;transition:all 0.15s;
}
.socpub-comment-submit:active{transform:scale(0.9);}

/* ── Load more ── */
.socpub-load-more{
  width:100%;padding:0.75rem;border-radius:12px;
  border:1px solid rgba(255,45,155,0.3);background:rgba(255,45,155,0.06);
  color:var(--pink);font-family:'Syne',sans-serif;font-weight:800;
  font-size:0.85rem;cursor:pointer;transition:all 0.2s;margin-top:0.2rem;
  display:block;
}
.socpub-load-more:active{background:rgba(255,45,155,0.12);}

/* ══ MODAL PUBLIER (SOCIAL) ══ */
#socPubModal{display:none;position:fixed;inset:0;z-index:700;background:rgba(0,0,0,0.88);backdrop-filter:blur(12px);align-items:flex-end;justify-content:center;}
#socPubModal.open{display:flex;}
.socpub-modal-sheet{
  background:var(--surface);border:1px solid rgba(255,45,155,0.3);
  border-radius:24px 24px 0 0;width:100%;max-width:560px;
  max-height:calc(94vh - var(--player-h));overflow:hidden;
  padding:0;
  display:flex;flex-direction:column;
  animation:slideUpSheet 0.35s cubic-bezier(0.34,1.2,0.64,1);
}
.socpub-modal-body{flex:1;overflow-y:auto;overflow-x:hidden;padding:1.5rem 1.2rem 0.5rem;-webkit-overflow-scrolling:touch;}
.socpub-modal-footer{
  flex-shrink:0;padding:0.75rem 1.2rem calc(0.75rem + env(safe-area-inset-bottom,0px));
  background:var(--surface);border-top:1px solid rgba(255,255,255,0.06);
  z-index:10;position:relative;
}
.socpub-modal-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:1rem;}
.socpub-modal-title{font-family:'Syne',sans-serif;font-size:1rem;font-weight:800;color:var(--pink);}
.socpub-modal-close{width:30px;height:30px;border-radius:50%;background:rgba(255,255,255,0.06);border:1px solid rgba(255,255,255,0.1);color:var(--muted);font-size:0.9rem;cursor:pointer;display:flex;align-items:center;justify-content:center;}

/* Type sélecteur publication */
.socpub-type-row{display:flex;gap:0.35rem;flex-wrap:wrap;margin-bottom:0.9rem;}
.socpub-type-chip{
  flex:1;min-width:70px;padding:0.5rem 0.4rem;border-radius:10px;
  border:1px solid rgba(255,255,255,0.1);background:rgba(255,255,255,0.03);
  color:var(--muted);font-size:0.7rem;font-weight:700;cursor:pointer;
  font-family:'DM Sans',sans-serif;text-align:center;transition:all 0.2s;
}
.socpub-type-chip.active{background:rgba(255,45,155,0.15);border-color:var(--pink);color:var(--pink);}
.socpub-type-chip:active{opacity:0.75;}

/* Zone saisie post */
.socpub-compose-textarea{
  width:100%;background:rgba(255,255,255,0.04);border:1px solid rgba(255,255,255,0.1);
  border-radius:14px;color:var(--text);font-family:'DM Sans',sans-serif;
  font-size:0.88rem;padding:0.8rem 0.95rem;outline:none;resize:vertical;
  min-height:110px;margin-bottom:0.7rem;transition:border-color 0.2s;line-height:1.55;
  box-sizing:border-box;
}
.socpub-compose-textarea:focus{border-color:rgba(255,45,155,0.5);}
.socpub-compose-textarea::placeholder{color:var(--muted);}

/* Toolbar média */
.socpub-media-toolbar{
  display:flex;gap:0.45rem;margin-bottom:0.85rem;flex-wrap:wrap;
}
.socpub-media-tool-btn{
  display:flex;align-items:center;gap:0.3rem;padding:0.42rem 0.75rem;
  border-radius:20px;border:1px solid rgba(255,255,255,0.1);
  background:rgba(255,255,255,0.03);color:var(--muted);font-size:0.72rem;
  font-weight:700;cursor:pointer;font-family:'DM Sans',sans-serif;transition:all 0.2s;
}
.socpub-media-tool-btn.photo{border-color:rgba(255,45,155,0.3);color:var(--pink);}
.socpub-media-tool-btn.video{border-color:rgba(0,229,255,0.3);color:var(--cyan);}
.socpub-media-tool-btn.event{border-color:rgba(255,215,0,0.3);color:var(--amber);}
.socpub-media-tool-btn.location{border-color:rgba(0,255,170,0.3);color:var(--green);}
.socpub-media-tool-btn:active{opacity:0.75;}
.socpub-media-tool-btn.gif{border-color:rgba(0,229,255,0.35);color:var(--cyan);font-weight:900;font-size:0.68rem;letter-spacing:0.05em;}
/* Mood chips */
.socpub-mood-chip{width:36px;height:36px;border-radius:10px;border:1.5px solid rgba(255,255,255,0.1);background:rgba(255,255,255,0.03);font-size:1.15rem;cursor:pointer;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:all 0.18s;}
.socpub-mood-chip.active{background:rgba(255,45,155,0.15);border-color:var(--pink);transform:scale(1.12);}
.socpub-mood-chip:active{transform:scale(0.9);}
/* Visibility buttons */
.socpub-vis-btn{flex:1;padding:0.38rem 0.4rem;border-radius:9px;border:1px solid rgba(255,255,255,0.1);background:rgba(255,255,255,0.03);color:var(--muted);font-size:0.68rem;font-weight:700;cursor:pointer;font-family:'DM Sans',sans-serif;transition:all 0.18s;text-align:center;}
.socpub-vis-btn.active{background:rgba(0,229,255,0.1);border-color:rgba(0,229,255,0.4);color:var(--cyan);}
.socpub-vis-btn:active{opacity:0.75;}

/* Bouton publier */
.socpub-submit-btn{
  width:100%;padding:0.85rem;border-radius:14px;border:none;
  background:linear-gradient(135deg,var(--pink),var(--purple));
  color:#fff;font-family:'Syne',sans-serif;font-weight:800;font-size:0.92rem;
  cursor:pointer;transition:opacity 0.2s;
}
.socpub-submit-btn:active{opacity:0.85;}

/* ══ ADMIN — Panel Publications Social ══ */
.adm-socpub-kpi{display:grid;grid-template-columns:repeat(2,1fr);gap:0.6rem;margin-bottom:1.2rem;}
.adm-socpub-kpi-card{
  background:rgba(255,255,255,0.03);border:1px solid rgba(255,255,255,0.08);
  border-radius:14px;padding:0.85rem;position:relative;overflow:hidden;
}
.adm-socpub-kpi-val{font-family:'Syne',sans-serif;font-size:1.5rem;font-weight:900;line-height:1;}
.adm-socpub-kpi-lbl{font-size:0.62rem;color:var(--muted);margin-top:0.2rem;}
.adm-socpub-kpi-icon{position:absolute;top:0.6rem;right:0.7rem;font-size:1.2rem;opacity:0.25;}

/* Admin — post item modération */
.adm-socpub-post{
  background:rgba(255,255,255,0.03);border:1px solid rgba(255,255,255,0.07);
  border-radius:14px;padding:0.85rem;margin-bottom:0.6rem;
  transition:border-color 0.2s;
}
.adm-socpub-post.flagged{border-color:rgba(255,68,102,0.4);background:rgba(255,68,102,0.04);}
.adm-socpub-post.pinned{border-color:rgba(255,215,0,0.4);background:rgba(255,215,0,0.04);}
.adm-socpub-post-header{display:flex;align-items:flex-start;gap:0.5rem;margin-bottom:0.45rem;}
.adm-socpub-post-avatar{width:30px;height:30px;border-radius:50%;background:rgba(255,45,155,0.2);border:1px solid rgba(255,45,155,0.3);display:flex;align-items:center;justify-content:center;font-size:0.85rem;font-weight:800;color:var(--pink);flex-shrink:0;}
.adm-socpub-post-info{flex:1;}
.adm-socpub-post-author{font-size:0.75rem;font-weight:700;color:var(--text);}
.adm-socpub-post-time{font-size:0.6rem;color:var(--muted);margin-top:0.04rem;}
.adm-socpub-post-text{font-size:0.75rem;color:var(--muted);line-height:1.4;margin-bottom:0.45rem;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;}
.adm-socpub-post-stats{display:flex;gap:0.6rem;font-size:0.65rem;color:var(--muted);margin-bottom:0.45rem;flex-wrap:wrap;}
.adm-socpub-post-stat{display:flex;align-items:center;gap:0.2rem;}
.adm-socpub-post-actions{display:flex;gap:0.3rem;flex-wrap:wrap;}
.adm-socpub-post-btn{padding:0.22rem 0.65rem;border-radius:7px;font-size:0.62rem;font-weight:700;cursor:pointer;font-family:'DM Sans',sans-serif;border:1px solid;transition:all 0.15s;}
.adm-socpub-post-btn.pin{background:rgba(255,215,0,0.08);border-color:rgba(255,215,0,0.3);color:var(--amber);}
.adm-socpub-post-btn.hide{background:rgba(255,215,0,0.06);border-color:rgba(255,215,0,0.25);color:var(--amber);}
.adm-socpub-post-btn.flag{background:rgba(255,68,102,0.07);border-color:rgba(255,68,102,0.28);color:var(--red);}
.adm-socpub-post-btn.delete{background:rgba(255,68,102,0.1);border-color:rgba(255,68,102,0.35);color:var(--red);}
.adm-socpub-post-btn.approve{background:rgba(0,255,170,0.08);border-color:rgba(0,255,170,0.3);color:var(--green);}
.adm-socpub-post-btn:active{opacity:0.7;}

/* Rule control toggles admin */
.adm-socpub-rule-row{
  display:flex;align-items:center;justify-content:space-between;
  background:rgba(255,255,255,0.03);border:1px solid rgba(255,255,255,0.07);
  border-radius:12px;padding:0.6rem 0.85rem;margin-bottom:0.4rem;
}
.adm-socpub-rule-info{flex:1;}
.adm-socpub-rule-title{font-size:0.78rem;font-weight:700;color:var(--text);}
.adm-socpub-rule-sub{font-size:0.62rem;color:var(--muted);margin-top:0.05rem;}
.asm-new-post-cta:active{background:rgba(255,45,155,0.12);}

/* HEADER */
header{position:fixed;top:0;left:0;right:0;z-index:100;background:rgba(13,0,20,0.96);backdrop-filter:blur(20px);border-bottom:1px solid rgba(255,45,155,0.2);padding:0;width:100%;max-width:100vw;box-sizing:border-box;overflow:visible;display:flex;flex-direction:column;}
.header-top{display:flex;align-items:center;padding:0 0.75rem;height:56px;width:100%;}
.header-guide-bar{display:flex;align-items:center;justify-content:stretch;gap:0.3rem;padding:0.28rem 0.4rem;border-top:1px solid rgba(0,229,255,0.12);background:rgba(0,229,255,0.04);overflow:hidden;box-sizing:border-box;width:100%;}
.header-guide-bar .guide-btn{flex:1 1 0;min-width:0;justify-content:center;font-size:0.68rem;padding:0.3rem 0.3rem;border-radius:10px;text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;box-sizing:border-box;}
.header-guide-bar .guide-label{display:inline;}
@media(min-width:380px){.header-guide-bar .guide-label{display:inline;}}
.logo-wrap{display:flex;align-items:center;gap:0.35rem;cursor:pointer;text-decoration:none;flex-shrink:0;min-width:0;flex:0 0 auto;}
.logo-img{height:34px;width:34px;min-width:34px;border-radius:50%;object-fit:cover;box-shadow:0 0 10px rgba(255,45,155,0.6),0 0 18px rgba(0,229,255,0.3);flex-shrink:0;}
.logo-text{font-family:'Syne',sans-serif;font-weight:800;font-size:0.92rem;letter-spacing:-0.02em;color:var(--text);white-space:nowrap;}
.logo-text span{color:var(--pink);}
.header-right{display:flex;align-items:center;justify-content:center;gap:0.22rem;flex-shrink:0;overflow:hidden;flex-wrap:nowrap;margin-left:auto;margin-right:0;}
/* ═══════════════════════════════════════════════════════════
   ══ MENU HAMBURGER — PLAN DU SITE & PARAMÈTRES           ══
   ═══════════════════════════════════════════════════════════ */
.hamburger-btn{background:rgba(255,45,155,0.18);border:1.5px solid rgba(255,45,155,0.5);color:var(--pink);width:32px;height:32px;min-width:32px;border-radius:8px;cursor:pointer;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;flex-shrink:0;transition:all 0.2s;padding:0;box-shadow:0 0 8px rgba(255,45,155,0.25);}
.hamburger-btn:active{transform:scale(0.92);}
.hamburger-btn .hb-bar{display:block;width:16px;height:2px;background:var(--pink);border-radius:2px;transition:all 0.3s;}
.hamburger-btn.open .hb-bar:nth-child(1){transform:translateY(6px) rotate(45deg);}
.hamburger-btn.open .hb-bar:nth-child(2){opacity:0;transform:scaleX(0);}
.hamburger-btn.open .hb-bar:nth-child(3){transform:translateY(-6px) rotate(-45deg);}
/* Menu déroulant */
.sitenav-overlay{display:none;position:fixed;inset:0;z-index:200;background:rgba(0,0,0,0.4);backdrop-filter:blur(4px);}
.sitenav-overlay.open{display:block;}
.sitenav-panel{position:fixed;top:0;right:0;width:min(300px,88vw);height:100%;z-index:201;background:linear-gradient(180deg,var(--surface2) 0%,var(--surface) 100%);border-left:1px solid rgba(255,45,155,0.2);box-shadow:-8px 0 32px rgba(0,0,0,0.6);display:flex;flex-direction:column;transform:translateX(100%);transition:transform 0.3s cubic-bezier(.175,.885,.32,1.1);overflow-y:auto;}
.sitenav-panel.open{transform:translateX(0);}
.sitenav-head{padding:1rem;border-bottom:1px solid rgba(255,45,155,0.15);display:flex;align-items:center;justify-content:space-between;background:linear-gradient(135deg,rgba(255,45,155,0.1),rgba(204,68,255,0.06));}
.sitenav-title{font-family:"Syne",sans-serif;font-size:0.95rem;font-weight:800;color:var(--pink);display:flex;align-items:center;gap:0.5rem;}
.sitenav-close{background:rgba(255,45,155,0.12);border:1px solid rgba(255,45,155,0.3);color:var(--pink);width:28px;height:28px;border-radius:8px;cursor:pointer;font-size:1rem;display:flex;align-items:center;justify-content:center;transition:all 0.2s;}
.sitenav-close:active{transform:scale(0.9);}
.sitenav-section{padding:0.6rem 0.75rem 0.2rem;font-family:"Syne",sans-serif;font-size:0.58rem;font-weight:800;letter-spacing:0.1em;text-transform:uppercase;color:var(--muted);}
.sitenav-item{display:flex;align-items:center;gap:0.6rem;padding:0.65rem 1rem;cursor:pointer;transition:background 0.15s;border-radius:0;text-decoration:none;color:var(--text);font-family:"DM Sans",sans-serif;font-size:0.82rem;font-weight:500;border-bottom:1px solid rgba(255,255,255,0.04);}
.sitenav-item:active{background:rgba(255,45,155,0.08);}
.sitenav-item .sni-icon{font-size:1rem;width:22px;text-align:center;flex-shrink:0;}
.sitenav-item .sni-label{flex:1;}
.sitenav-item .sni-badge{font-size:0.58rem;font-weight:800;padding:0.1rem 0.35rem;border-radius:4px;background:rgba(255,45,155,0.12);color:var(--pink);}
.sitenav-divider{height:1px;background:rgba(255,255,255,0.06);margin:0.3rem 0;}
.sitenav-setting-row{display:flex;align-items:center;gap:0.6rem;padding:0.55rem 1rem;font-family:"DM Sans",sans-serif;font-size:0.78rem;color:var(--text);}
.sitenav-setting-row .sni-icon{font-size:1rem;width:22px;text-align:center;flex-shrink:0;}
.sitenav-toggle{position:relative;width:36px;height:20px;flex-shrink:0;margin-left:auto;}
.sitenav-toggle input{opacity:0;width:0;height:0;}
.sitenav-toggle-slider{position:absolute;inset:0;background:rgba(255,255,255,0.1);border-radius:20px;cursor:pointer;transition:0.25s;}
.sitenav-toggle-slider:before{content:"";position:absolute;width:14px;height:14px;left:3px;top:3px;background:#fff;border-radius:50%;transition:0.25s;}
.sitenav-toggle input:checked + .sitenav-toggle-slider{background:var(--pink);}
.sitenav-toggle input:checked + .sitenav-toggle-slider:before{transform:translateX(16px);}
.sitenav-footer{padding:1rem;margin-top:auto;border-top:1px solid rgba(255,255,255,0.06);text-align:center;font-size:0.65rem;color:var(--muted);}

.live-pill{display:flex;align-items:center;gap:0.2rem;background:rgba(0,255,170,0.1);border:1px solid rgba(0,255,170,0.3);color:var(--green);font-size:0.5rem;font-weight:700;letter-spacing:0.04em;text-transform:uppercase;padding:0.18rem 0.3rem;border-radius:100px;white-space:nowrap;flex-shrink:0;}
.live-dot{width:4px;height:4px;background:var(--green);border-radius:50%;animation:pulse 2s infinite;flex-shrink:0;}
.user-btn{background:rgba(0,229,255,0.1);border:1px solid rgba(0,229,255,0.3);color:var(--cyan);font-size:0.85rem;font-weight:700;padding:0;width:28px;height:28px;min-width:28px;border-radius:50%;cursor:pointer;font-family:'DM Sans',sans-serif;transition:all 0.2s;display:flex;align-items:center;justify-content:center;flex-shrink:0;}
.user-btn:active{transform:scale(0.92);}
.admin-btn{background:rgba(255,215,0,0.1);border:1px solid rgba(255,215,0,0.3);color:var(--amber);font-size:0.85rem;font-weight:700;padding:0;width:28px;height:28px;min-width:28px;border-radius:50%;cursor:pointer;font-family:'DM Sans',sans-serif;transition:all 0.2s;display:flex;align-items:center;justify-content:center;flex-shrink:0;}
.admin-btn.active{background:rgba(255,215,0,0.2);border-color:var(--amber);}
.admin-btn:active{transform:scale(0.92);}
.user-greeting{display:none;align-items:center;gap:0.2rem;background:rgba(255,45,155,0.1);border:1px solid rgba(255,45,155,0.3);padding:0.2rem 0.35rem;border-radius:20px;font-size:0.6rem;font-weight:700;color:var(--pink);white-space:nowrap;max-width:70px;overflow:hidden;text-overflow:ellipsis;flex-shrink:1;}
.user-greeting.show{display:flex;}
.logout-btn{background:rgba(255,68,102,0.1);border:1px solid rgba(255,68,102,0.3);color:var(--red);font-size:0.58rem;font-weight:700;padding:0.2rem 0.35rem;border-radius:20px;cursor:pointer;font-family:'DM Sans',sans-serif;transition:all 0.2s;display:none;flex-shrink:0;white-space:nowrap;}
.logout-btn.show{display:block;}
/* ══ PWA NAV BUTTON ══ */
/* bouton install supprimé — version web uniquement */

/* OVERLAYS */
.overlay{display:none;position:fixed;inset:0;z-index:200;background:rgba(0,0,0,0.9);backdrop-filter:blur(10px);align-items:center;justify-content:center;padding:1rem;}
.overlay.show{display:flex;}
.modal{background:var(--surface);border:1px solid rgba(255,45,155,0.3);border-radius:24px;padding:1.8rem 1.5rem;width:min(380px,100%);max-height:90vh;overflow-y:auto;box-shadow:0 0 40px rgba(255,45,155,0.2);animation:popIn 0.3s cubic-bezier(0.34,1.56,0.64,1);}
@keyframes popIn{from{opacity:0;transform:scale(0.85)}to{opacity:1;transform:scale(1)}}
.modal-title{font-family:'Syne',sans-serif;font-size:1.1rem;font-weight:800;color:var(--pink);margin-bottom:0.3rem;}
.modal-sub{font-size:0.78rem;color:var(--muted);margin-bottom:1.4rem;}
.modal-close{position:absolute;top:1rem;right:1rem;background:rgba(255,255,255,0.05);border:1px solid rgba(255,255,255,0.1);color:var(--muted);width:30px;height:30px;border-radius:50%;cursor:pointer;font-size:0.9rem;display:flex;align-items:center;justify-content:center;}
.pin-dots{display:flex;gap:0.5rem;justify-content:center;margin-bottom:1.4rem;}
.pin-dot{width:14px;height:14px;border-radius:50%;background:rgba(255,45,155,0.2);border:2px solid rgba(255,45,155,0.4);transition:all 0.2s;}
.pin-dot.filled{background:var(--pink);box-shadow:0 0 8px rgba(255,45,155,0.5);border-color:var(--pink);}
.pin-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:0.5rem;}
.pin-key{background:var(--surface2);border:1px solid rgba(255,45,155,0.25);border-radius:12px;padding:1rem;font-size:1.2rem;font-weight:700;font-family:'Syne',sans-serif;cursor:pointer;color:var(--text);transition:all 0.15s;user-select:none;-webkit-tap-highlight-color:transparent;}
.pin-key:active{background:rgba(255,45,155,0.25);border-color:var(--pink);transform:scale(0.94);}
.pin-error{color:var(--red);font-size:0.78rem;margin-top:0.6rem;display:none;text-align:center;}
.field{margin-bottom:0.9rem;}
.field label{display:block;font-size:0.75rem;font-weight:600;color:var(--muted);margin-bottom:0.35rem;text-transform:uppercase;letter-spacing:0.05em;}
.field input,.field select,.field textarea{width:100%;background:var(--surface2);border:1px solid rgba(255,45,155,0.2);border-radius:10px;color:var(--text);font-family:'DM Sans',sans-serif;font-size:0.88rem;padding:0.65rem 0.9rem;outline:none;transition:border-color 0.2s;}
.field input:focus,.field select:focus,.field textarea:focus{border-color:rgba(255,45,155,0.5);}
.field input::placeholder,.field textarea::placeholder{color:var(--muted);}
.field select option{background:var(--surface2);}
.field textarea{resize:vertical;min-height:70px;}
.req{color:var(--red);}
.modal-btn{width:100%;padding:0.8rem;border-radius:12px;border:none;background:linear-gradient(135deg,var(--pink),var(--cyan));color:#000;font-family:'Syne',sans-serif;font-weight:800;font-size:0.95rem;cursor:pointer;margin-top:0.5rem;transition:opacity 0.2s;}
.modal-btn:active{opacity:0.85;}
.modal-btn:disabled{opacity:0.5;cursor:not-allowed;}
.modal-btn.secondary{background:rgba(255,255,255,0.06);color:var(--muted);border:1px solid rgba(255,255,255,0.1);}
.modal-tabs{display:flex;gap:0.3rem;background:var(--surface2);border-radius:12px;padding:0.25rem;margin-bottom:1.2rem;}
.modal-tab{flex:1;padding:0.45rem;border-radius:8px;font-size:0.82rem;font-weight:700;cursor:pointer;border:none;background:transparent;color:var(--muted);font-family:'DM Sans',sans-serif;transition:all 0.2s;}
.modal-tab.active{background:var(--pink);color:#000;}
.divider{text-align:center;color:var(--muted);font-size:0.75rem;margin:0.8rem 0;position:relative;}
.divider::before{content:'';position:absolute;top:50%;left:0;right:0;height:1px;background:rgba(255,255,255,0.06);}
.divider span{background:var(--surface);padding:0 0.5rem;position:relative;}
.field-row{display:grid;grid-template-columns:1fr 1fr;gap:0.75rem;}
.upload-zone{background:var(--surface2);border:2px dashed rgba(255,45,155,0.3);border-radius:12px;padding:1.2rem;text-align:center;cursor:pointer;position:relative;}
.upload-zone input[type=file]{position:absolute;inset:0;opacity:0;cursor:pointer;width:100%;height:100%;}
.upload-icon{font-size:1.8rem;margin-bottom:0.3rem;}
.upload-text{font-size:0.78rem;color:var(--muted);}
.upload-preview{display:none;margin-top:0.6rem;}
.upload-preview img{width:100%;max-height:120px;object-fit:cover;border-radius:8px;}
.upload-name{font-size:0.7rem;color:var(--green);margin-top:0.2rem;}
.add-photo-btn{background:rgba(255,45,155,0.1);border:1px dashed rgba(255,45,155,0.4);color:var(--pink);font-size:0.68rem;font-weight:700;padding:0.35rem 0.6rem;border-radius:8px;cursor:pointer;font-family:'DM Sans',sans-serif;width:100%;transition:all 0.2s;}
.add-photo-btn:active{opacity:0.7;}
.change-photo-btn{background:rgba(0,229,255,0.08);border:1px solid rgba(0,229,255,0.25);color:var(--cyan);font-size:0.65rem;font-weight:600;padding:0.25rem 0.5rem;border-radius:6px;cursor:pointer;font-family:'DM Sans',sans-serif;margin-top:0.3rem;width:100%;transition:all 0.2s;}
.change-photo-btn:active{opacity:0.7;}
.gps-box{background:var(--surface2);border:1px solid rgba(255,45,155,0.2);border-radius:10px;padding:0.8rem;margin-bottom:0.9rem;}
.gps-btn{width:100%;padding:0.55rem;border-radius:8px;border:1px solid rgba(0,255,170,0.3);background:rgba(0,255,170,0.08);color:var(--green);font-family:'DM Sans',sans-serif;font-size:0.82rem;font-weight:700;cursor:pointer;}
.gps-result{display:none;margin-top:0.6rem;padding:0.6rem;background:rgba(0,255,170,0.06);border:1px solid rgba(0,255,170,0.2);border-radius:8px;}
.gps-coords{font-size:0.75rem;font-weight:600;color:var(--green);}
.gps-link{font-size:0.72rem;color:var(--cyan);text-decoration:none;display:block;margin-top:0.2rem;}
.consent-box{display:flex;gap:0.6rem;align-items:flex-start;background:rgba(0,229,255,0.05);border:1px solid rgba(0,229,255,0.15);border-radius:10px;padding:0.8rem;margin-bottom:0.8rem;}
.consent-box input[type=checkbox]{flex-shrink:0;margin-top:0.1rem;accent-color:var(--amber);width:15px;height:15px;}
.consent-text{font-size:0.75rem;color:var(--muted);line-height:1.5;}
.consent-text strong{color:var(--text);}
.success-msg{text-align:center;padding:1.5rem 0;}
.success-msg .s-icon{font-size:3rem;margin-bottom:0.8rem;}
.success-msg h3{font-family:'Syne',sans-serif;font-weight:800;color:var(--green);}
.success-msg p{font-size:0.82rem;color:var(--muted);margin-top:0.4rem;line-height:1.5;}

/* ══ SUBSCRIPTION PLAN CARDS ══ */
/* ══ SUBSCRIPTION PLAN CARDS (modal inscription) — même style que plan-card page Paiements ══ */
#subPlansGrid{display:grid;grid-template-columns:repeat(3,1fr);gap:0.45rem;width:100%;align-items:stretch;}
.sub-plan-card{position:relative;border-radius:13px;padding:0.9rem 0.35rem 0.75rem;text-align:center;cursor:pointer;display:flex;flex-direction:column;align-items:center;gap:0.15rem;box-sizing:border-box;overflow:hidden;transition:transform 0.18s,box-shadow 0.18s;user-select:none;-webkit-tap-highlight-color:transparent;}
.sub-plan-card:active{transform:scale(0.95);}
/* Couleurs par défaut */
.sub-plan-card[data-plan="mensuel"]{background:rgba(255,215,0,0.07);border:2px solid rgba(255,215,0,0.3);}
.sub-plan-card[data-plan="trimestriel"]{background:rgba(255,45,155,0.09);border:2px solid rgba(255,45,155,0.45);}
.sub-plan-card[data-plan="annuel"]{background:rgba(0,229,255,0.07);border:2px solid rgba(0,229,255,0.32);}
/* Actif : glow + border renforcée */
.sub-plan-card[data-plan="mensuel"].active{border-color:var(--amber);box-shadow:0 0 18px rgba(255,215,0,0.28);}
.sub-plan-card[data-plan="trimestriel"].active{border-color:var(--pink);box-shadow:0 0 18px rgba(255,45,155,0.28);}
.sub-plan-card[data-plan="annuel"].active{border-color:var(--cyan);box-shadow:0 0 18px rgba(0,229,255,0.28);}
/* Badge en bandeau haut */
.spc-badge{position:absolute;top:0;left:0;right:0;font-size:0.42rem;font-weight:800;padding:0.13rem 0;text-align:center;white-space:nowrap;letter-spacing:0.04em;color:#000;width:100%;text-transform:uppercase;}
.spc-badge.popular{background:var(--pink);}
.spc-badge.best{background:var(--cyan);}
.spc-badge:not(.popular):not(.best){display:none;}/* Masquer le badge "Flexible" vide */
.spc-icon{font-size:1.1rem;line-height:1;margin-top:0.65rem;}
.spc-name{font-family:'Syne',sans-serif;font-weight:800;font-size:clamp(0.5rem,2.6vw,0.72rem);line-height:1.1;width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding:0 0.1rem;}
.sub-plan-card[data-plan="mensuel"] .spc-name{color:var(--amber);}
.sub-plan-card[data-plan="trimestriel"] .spc-name{color:var(--pink);}
.sub-plan-card[data-plan="annuel"] .spc-name{color:var(--cyan);}
.spc-price{font-family:'Syne',sans-serif;font-weight:900;font-size:clamp(0.78rem,4vw,1.05rem);color:var(--text);line-height:1;white-space:nowrap;width:100%;text-align:center;}
.spc-price span{font-size:0.44rem;color:var(--muted);font-weight:400;display:block;}
.spc-period{font-size:0.5rem;color:var(--muted);white-space:nowrap;}
.spc-saving{font-size:0.46rem;font-weight:700;color:var(--green);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%;min-height:10px;}
/* Lien "Choisir →" */
.spc-cta{font-size:0.48rem;font-weight:800;margin-top:0.1rem;}
.sub-plan-card[data-plan="mensuel"] .spc-cta{color:var(--amber);}
.sub-plan-card[data-plan="trimestriel"] .spc-cta{color:var(--pink);}
.sub-plan-card[data-plan="annuel"] .spc-cta{color:var(--cyan);}
/* Admin subscription badge */
.sub-status-badge{display:inline-flex;align-items:center;gap:0.3rem;font-size:0.62rem;font-weight:700;padding:0.15rem 0.5rem;border-radius:6px;vertical-align:middle;}
.ssb-actif{background:rgba(0,255,170,0.12);color:var(--green);border:1px solid rgba(0,255,170,0.3);}
.ssb-expire{background:rgba(255,68,102,0.12);color:var(--red);border:1px solid rgba(255,68,102,0.3);}
.ssb-alerte{background:rgba(255,215,0,0.12);color:var(--amber);border:1px solid rgba(255,215,0,0.3);}
.ssb-attente{background:rgba(255,165,0,0.12);color:#ffa500;border:1px solid rgba(255,165,0,0.3);}
/* Renewal warning banner */
.renewal-banner{background:rgba(255,45,155,0.09);border:1.5px solid rgba(255,45,155,0.4);border-radius:13px;padding:0.85rem 1rem;margin-bottom:0.8rem;animation:pulse-border 2s infinite;}
@keyframes pulse-border{0%,100%{border-color:rgba(255,45,155,0.4)}50%{border-color:rgba(255,45,155,0.9)}}
/* LIGHTBOX */
.lightbox{display:none;position:fixed;inset:0;z-index:500;background:rgba(0,0,0,0.95);align-items:center;justify-content:center;}
.lightbox.show{display:flex;}
.lightbox img{max-width:95vw;max-height:90vh;object-fit:contain;border-radius:8px;}
.lightbox-close{position:absolute;top:1rem;right:1rem;background:rgba(255,255,255,0.1);border:none;color:white;width:40px;height:40px;border-radius:50%;cursor:pointer;font-size:1.2rem;display:flex;align-items:center;justify-content:center;}

/* LIGHTBOX PHOTO PERMANENTE — 100vw plein écran */
.perm-lightbox{display:none;position:fixed;inset:0;z-index:600;background:#000;flex-direction:column;}
.perm-lightbox.show{display:flex;}
.perm-lightbox-img-wrap{flex:1;overflow:hidden;position:relative;}
.perm-lightbox-img-wrap img{width:100vw;height:100%;object-fit:contain;display:block;}
.perm-lightbox-bar{display:flex;align-items:center;justify-content:space-between;padding:0.65rem 1rem;background:rgba(0,0,0,0.85);border-top:1px solid rgba(255,255,255,0.08);flex-shrink:0;gap:0.5rem;}
.perm-lightbox-title{font-family:'Syne',sans-serif;font-size:0.78rem;font-weight:800;color:var(--text);flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.perm-lightbox-close{background:rgba(255,255,255,0.08);border:1px solid rgba(255,255,255,0.15);color:#fff;width:36px;height:36px;border-radius:50%;cursor:pointer;font-size:1rem;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:background 0.2s;}
.perm-lightbox-close:active{background:rgba(255,255,255,0.2);}
.perm-lb-action{display:flex;align-items:center;gap:0.3rem;padding:0.4rem 0.75rem;border-radius:100px;font-size:0.72rem;font-weight:700;font-family:'DM Sans',sans-serif;cursor:pointer;border:none;transition:all 0.2s;flex-shrink:0;}
.perm-lb-action:active{opacity:0.75;transform:scale(0.95);}
.perm-lb-download{background:rgba(0,229,255,0.12);border:1px solid rgba(0,229,255,0.35);color:var(--cyan);}
.perm-lb-delete{background:rgba(255,68,102,0.12);border:1px solid rgba(255,68,102,0.35);color:var(--red);}
.perm-lb-edit{background:rgba(255,45,155,0.12);border:1px solid rgba(255,45,155,0.35);color:var(--pink);}

/* ══ RATING MODAL ══ */
.rating-modal-wrap{background:var(--surface);border:1px solid rgba(255,215,0,0.3);border-radius:24px;padding:1.8rem 1.5rem;width:min(380px,100%);max-height:90vh;overflow-y:auto;box-shadow:0 0 40px rgba(255,215,0,0.15);animation:popIn 0.3s cubic-bezier(0.34,1.56,0.64,1);position:relative;}
.rating-stars-row{display:flex;gap:0.4rem;justify-content:center;margin:1rem 0;}
.rating-star{font-size:2.2rem;cursor:pointer;transition:transform 0.15s,filter 0.15s;filter:grayscale(1);opacity:0.35;user-select:none;}
.rating-star.on{filter:none;opacity:1;color:#ffd700;}
.rating-star:hover{transform:scale(1.2);}
.rating-value-lbl{text-align:center;font-family:'Syne',sans-serif;font-weight:800;font-size:0.9rem;color:var(--amber);min-height:1.2rem;margin-bottom:0.5rem;}
.rating-submit-btn{width:100%;padding:0.8rem;border-radius:12px;border:none;background:linear-gradient(135deg,var(--amber),var(--pink));color:#000;font-family:'Syne',sans-serif;font-weight:800;font-size:0.95rem;cursor:pointer;margin-top:0.5rem;transition:opacity 0.2s;}
.rating-submit-btn:disabled{opacity:0.4;cursor:not-allowed;}
/* Live data badges in card */
.live-note-badge{display:inline-flex;align-items:center;gap:0.2rem;background:rgba(255,215,0,0.12);border:1px solid rgba(255,215,0,0.3);border-radius:6px;padding:0.12rem 0.45rem;font-size:0.72rem;font-weight:800;color:var(--amber);}
.live-presence-dot{display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--green);box-shadow:0 0 6px rgba(0,255,170,0.7);animation:pulse 1.5s infinite;margin-right:3px;}
.rate-btn{background:rgba(255,215,0,0.08);border:1px solid rgba(255,215,0,0.3);color:var(--amber);font-size:0.72rem;font-weight:700;padding:0.28rem 0.6rem;border-radius:8px;cursor:pointer;font-family:'DM Sans',sans-serif;transition:all 0.2s;display:inline-flex;align-items:center;gap:0.25rem;}
.rate-btn:active{opacity:0.75;}

/* ══ PANNEAU PROFIL ÉTABLISSEMENT — VISIBLE DIRECTEMENT ══ */
.etab-profile-panel{
  border-top:1px solid rgba(255,255,255,0.06);
  padding:0.55rem 0.8rem 0.6rem;
  background:rgba(0,0,0,0.15);
  display:flex;flex-direction:column;gap:0.38rem;
}
/* Ligne chiffres capacité */
.epp-stats-row{
  display:flex;align-items:center;gap:0.5rem;flex-wrap:wrap;
}
.epp-stat{
  display:flex;align-items:center;gap:0.22rem;
  background:rgba(255,255,255,0.04);
  border:1px solid rgba(255,255,255,0.09);
  border-radius:8px;padding:0.28rem 0.55rem;
}
.epp-stat-icon{font-size:0.82rem;line-height:1;}
.epp-stat-val{
  font-family:'Syne',sans-serif;font-size:0.88rem;font-weight:800;
  color:var(--text);line-height:1;
}
.epp-stat-lbl{
  font-size:0.58rem;color:var(--muted);font-weight:500;
}
/* Tags âge / dress code */
.epp-tags-row{display:flex;gap:0.3rem;flex-wrap:wrap;}
.epp-tag{
  font-size:0.65rem;font-weight:700;
  padding:0.18rem 0.52rem;border-radius:100px;
  white-space:nowrap;
}
.epp-tag-age{
  background:rgba(0,229,255,0.09);
  border:1px solid rgba(0,229,255,0.22);
  color:var(--cyan);
}
.epp-tag-dress{
  background:rgba(255,215,0,0.09);
  border:1px solid rgba(255,215,0,0.22);
  color:var(--amber);
}
/* Genres musicaux */
.epp-music-row{
  display:flex;align-items:center;gap:0.28rem;flex-wrap:wrap;
}
.epp-music-icon{font-size:0.78rem;flex-shrink:0;}
.epp-genre{
  font-size:0.62rem;font-weight:700;
  padding:0.14rem 0.42rem;border-radius:100px;
  background:rgba(204,68,255,0.09);
  border:1px solid rgba(204,68,255,0.22);
  color:var(--purple);white-space:nowrap;
}

/* MAIN */
main{max-width:640px;margin:0 auto;padding:1rem;position:relative;z-index:1;width:100%;box-sizing:border-box;}
@keyframes cardHighlight{0%{box-shadow:0 0 0 3px rgba(255,45,155,0.9),0 8px 40px rgba(255,45,155,0.35)}50%{box-shadow:0 0 0 5px rgba(255,45,155,0.6),0 12px 50px rgba(255,45,155,0.25)}100%{box-shadow:none}}
/* @keyframes fadeUp — défini globalement ligne 949 */
@keyframes spin{to{transform:rotate(360deg)}}

/* ══ ANIMATIONS PROFESSIONNELLES ══ */
@keyframes shimmerCard{0%{background-position:-200% 0}100%{background-position:200% 0}}
/* rippleOut supprimé */
@keyframes slideInRight{from{opacity:0;transform:translateX(18px)}to{opacity:1;transform:translateX(0)}}
@keyframes slideUp{from{transform:translateY(100%);opacity:0}to{transform:translateY(0);opacity:1}}
@keyframes floatUp{0%,100%{transform:translateY(0)}50%{transform:translateY(-5px)}}
@keyframes glowPulse{0%,100%{box-shadow:0 0 12px rgba(255,45,155,0.3)}50%{box-shadow:0 0 24px rgba(255,45,155,0.65),0 0 40px rgba(204,68,255,0.25)}}

/* Shimmer subtil sur les cartes et nav */
.card::after,.nav-item::after{
  content:'';position:absolute;inset:0;pointer-events:none;
  background:linear-gradient(105deg,transparent 40%,rgba(255,255,255,0.045) 50%,transparent 60%);
  background-size:200% 100%;
  opacity:0;transition:opacity 0.3s;border-radius:inherit;
}
.card:hover::after,.nav-item:hover::after{opacity:1;animation:shimmerCard 1.4s ease}
/* nav ripple-active supprimé */
.nav-item{position:relative;overflow:visible !important;}
/* Shimmer sur panneaux admin/monétisation */
.admin-monetis-card::before{
  content:'';position:absolute;inset:0;
  background:linear-gradient(105deg,transparent 35%,rgba(255,255,255,0.05) 50%,transparent 65%);
  background-size:200% 100%;
  animation:shimmerCard 2.8s ease infinite;pointer-events:none;border-radius:inherit;
}

/* ══ HERO / PAGE ACCUEIL — LUXURY REDESIGN ══ */

.hero-section{
  padding: 0;
  animation: fadeUp 0.7s ease both;
  position: relative;
  overflow: hidden;
}

/* ── Bandeau Live en haut ── */
.hero-live-banner{
  display:flex;align-items:center;justify-content:space-between;
  padding:0.5rem 1rem;
  background:rgba(0,255,170,0.05);
  border-bottom:1px solid rgba(0,255,170,0.12);
  font-size:0.65rem;
  color:var(--green);
  letter-spacing:0.06em;
  text-transform:uppercase;
  font-weight:700;
}
.hero-live-banner .hlb-left{display:flex;align-items:center;gap:0.4rem;}
.hero-live-banner .hlb-dot{width:6px;height:6px;border-radius:50%;background:var(--green);animation:pulse 1.5s infinite;flex-shrink:0;}
.hero-live-banner .hlb-time{color:var(--muted);font-weight:400;font-size:0.6rem;}

/* ── Bandeau ticker (bande annonce circulante) ── */
@keyframes tickerGlow{
  0%,100%{box-shadow:0 0 8px rgba(255,215,0,0.25),0 2px 18px rgba(255,215,0,0.12),inset 0 1px 0 rgba(255,215,0,0.15);}
  50%{box-shadow:0 0 18px rgba(255,215,0,0.45),0 2px 28px rgba(255,215,0,0.22),inset 0 1px 0 rgba(255,215,0,0.25);}
}
@keyframes tickerShimmer{
  0%{background-position:200% center;}
  100%{background-position:-200% center;}
}
.hero-ticker-wrap{
  overflow:hidden;
  width:calc(100% + 2.4rem);
  margin-left:-1.2rem;
  margin-right:-1.2rem;
  background:linear-gradient(90deg,
    rgba(30,10,5,0.95) 0%,
    rgba(50,20,0,0.98) 20%,
    rgba(40,25,0,0.98) 50%,
    rgba(50,20,0,0.98) 80%,
    rgba(30,10,5,0.95) 100%
  );
  border-top:2px solid rgba(255,215,0,0.55);
  border-bottom:2px solid rgba(255,215,0,0.55);
  padding:0.55rem 0;
  position:relative;
  animation:tickerGlow 3s ease-in-out infinite;
}
/* Ligne de lumière dorée en haut */
.hero-ticker-wrap::before{
  content:'';
  position:absolute;top:0;left:0;right:0;
  height:1px;
  background:linear-gradient(90deg,
    transparent 0%,
    rgba(255,215,0,0.9) 30%,
    rgba(255,255,180,1) 50%,
    rgba(255,215,0,0.9) 70%,
    transparent 100%
  );
  z-index:3;
}
/* Ligne de lumière en bas */
.hero-ticker-wrap::after{
  content:'';
  position:absolute;bottom:0;left:0;right:0;
  height:1px;
  background:linear-gradient(90deg,
    transparent 0%,
    rgba(255,215,0,0.9) 30%,
    rgba(255,255,180,1) 50%,
    rgba(255,215,0,0.9) 70%,
    transparent 100%
  );
  z-index:3;
}
/* Fondu latéral remplacé par pseudo-éléments sur l'inner */
.hero-ticker-fade-l,.hero-ticker-fade-r{
  display:none;
}
.hero-ticker-inner{
  display:inline-flex;white-space:nowrap;
  animation:tickerScroll 26s linear infinite;
  position:relative;z-index:2;
}
@keyframes tickerScroll{
  0%{transform:translateX(0)}
  100%{transform:translateX(-50%)}
}
.hero-ticker-text{
  font-family:'Syne','Cormorant Garamond',serif;
  font-size:0.84rem;
  font-weight:700;
  letter-spacing:0.06em;
  text-transform:uppercase;
  padding:0 2rem;
  display:inline-flex;align-items:center;gap:0.7rem;
  /* Texte jaune doré avec shimmer */
  background:linear-gradient(90deg,
    #ffd700 0%,
    #fff8aa 25%,
    #ffec6e 45%,
    #fff0a0 55%,
    #ffd700 75%,
    #ffe680 100%
  );
  background-size:200% auto;
  -webkit-background-clip:text;
  -webkit-text-fill-color:transparent;
  background-clip:text;
  animation:tickerShimmer 4s linear infinite;
  filter:drop-shadow(0 0 4px rgba(255,215,0,0.6));
}
.hero-ticker-sep{
  -webkit-text-fill-color:rgba(255,215,0,0.9);
  color:rgba(255,215,0,0.9);
  font-size:0.7rem;
  filter:drop-shadow(0 0 3px rgba(255,215,0,0.8));
  flex-shrink:0;
}

/* ── Bloc principal hero ── */
.hero-main{
  position:relative;
  padding:0.9rem 1.2rem 1rem;
  text-align:center;
}
.hero-main::before{
  content:'';position:absolute;inset:0;
  background:
    radial-gradient(ellipse 80% 60% at 50% 0%,rgba(255,45,155,0.13) 0%,transparent 70%),
    radial-gradient(ellipse 50% 40% at 80% 100%,rgba(0,229,255,0.08) 0%,transparent 60%);
  pointer-events:none;
}

/* Logo accent décoratif — style bandeau live vert */
.hero-eyebrow{
  display:flex;align-items:center;justify-content:center;gap:0.4rem;
  background:rgba(0,255,170,0.05);
  border:none;
  border-bottom:1px solid rgba(0,255,170,0.12);
  border-radius:0;
  padding:0.5rem 1rem;
  font-size:0.65rem;
  font-weight:700;
  letter-spacing:0.06em;
  text-transform:uppercase;
  color:var(--green);
  margin-bottom:0;
  margin-left:-1.2rem;
  width:calc(100% + 2.4rem);
}
.hero-eyebrow-dot{width:6px;height:6px;border-radius:50%;background:var(--green);animation:pulse 1.5s infinite;flex-shrink:0;}

/* Titre principal */
.hero-title{
  font-family:'Cormorant Garamond','Syne',serif;
  font-size:2.4rem;
  font-weight:600;
  line-height:1.08;
  letter-spacing:-0.02em;
  color:var(--text);
  margin-bottom:0.2rem;
  position:relative;
}
.hero-title .ht-city{
  display:block;
  color:var(--pink);
  font-style:italic;
  font-size:2.7rem;
  text-shadow:0 0 40px rgba(255,45,155,0.35);
}
.hero-title .ht-sub-line{
  display:block;
  font-family:'DM Sans',sans-serif;
  font-style:normal;
  font-size:0.82rem;
  font-weight:400;
  color:var(--muted);
  letter-spacing:0.18em;
  text-transform:uppercase;
  margin-top:0.7rem;
}

/* Clock block */
.hero-clock-block{
  display:inline-flex;flex-direction:column;align-items:center;
  background:rgba(255,45,155,0.06);
  border:1px solid rgba(255,45,155,0.18);
  border-radius:12px;
  padding:0.38rem 0.9rem;
  margin:0.6rem 0 0.7rem;
  position:relative;
}
.hero-clock{
  font-family:'Syne',sans-serif;
  font-size:1.15rem;
  font-weight:800;
  letter-spacing:0.08em;
  color:var(--text);
  line-height:1;
}
.hero-clock .hc-colon{color:var(--pink);animation:blink-colon 1s step-end infinite;}
@keyframes blink-colon{0%,100%{opacity:1}50%{opacity:0.15}}
.hero-date{
  font-size:0.65rem;
  color:var(--muted);
  margin-top:0.3rem;
  letter-spacing:0.05em;
  text-transform:capitalize;
}

/* ══ WIDGET MÉTÉO ══ */
.meteo-strip{
  display:flex;align-items:center;justify-content:center;
  gap:0.4rem;flex-wrap:wrap;
  background:rgba(0,158,96,0.18);
  border:1.5px solid rgba(0,158,96,0.55);
  border-radius:11px;
  padding:0.38rem 0.8rem;
  margin:0.4rem 0 0;
  max-width:100%;
  width:100%;
  transition:opacity 0.5s ease, border-color 0.4s, background 0.4s;
  animation:fadeUp 0.5s ease both;
}
.meteo-main{
  display:flex;align-items:center;gap:0.28rem;
}
.meteo-icon{font-size:1rem;line-height:1;}
.meteo-temp{
  font-family:'Syne',sans-serif;font-weight:800;
  font-size:0.88rem;color:#fff;
}
.meteo-feel{font-size:0.5rem;color:rgba(255,255,255,0.75);margin-top:0.02rem;}
.meteo-divider{width:1px;height:22px;background:rgba(255,255,255,0.2);}
.meteo-details{display:flex;flex-direction:column;gap:0.1rem;}
.meteo-detail-row{display:flex;align-items:center;gap:0.25rem;font-size:0.52rem;color:rgba(255,255,255,0.8);}
.meteo-detail-row span{color:#fff;font-weight:600;}
.meteo-desc{
  font-size:0.54rem;color:#a8ffd4;font-weight:700;
  text-transform:capitalize;letter-spacing:0.03em;
  text-align:center;width:100%;margin-top:0.06rem;
}
.meteo-alert{
  font-size:0.58rem;color:var(--amber);
  background:rgba(255,215,0,0.08);border:1px solid rgba(255,215,0,0.2);
  border-radius:6px;padding:0.2rem 0.5rem;
  text-align:center;width:100%;
}
.meteo-mini{
  display:inline-flex;align-items:center;gap:0.25rem;
  font-size:0.62rem;color:var(--muted);
  background:rgba(0,229,255,0.06);
  border:1px solid rgba(0,229,255,0.15);
  border-radius:20px;padding:0.18rem 0.55rem;
  white-space:nowrap;
}

/* CTA Buttons */
.hero-actions{
  display:flex;gap:0.5rem;justify-content:stretch;
  margin-top:0.5rem;flex-wrap:wrap;
  width:100%;
}
.hero-actions:empty{display:none;margin:0;}
.hero-btn{
  display:inline-flex;align-items:center;justify-content:center;gap:0.35rem;
  padding:0.55rem 1.1rem;
  border-radius:100px;
  font-size:0.76rem;
  font-weight:800;
  border:none;
  cursor:pointer;
  font-family:'Syne',sans-serif;
  transition:all 0.22s;
  letter-spacing:0.01em;
  flex:1;
}
.hero-btn:active{transform:scale(0.95);}
.hero-btn-primary{
  background:linear-gradient(135deg,var(--pink) 0%,#e0009a 50%,var(--cyan) 100%);
  color:#fff;
  box-shadow:0 4px 22px rgba(255,45,155,0.45),0 1px 0 rgba(255,255,255,0.15) inset;
}
.hero-btn-primary:hover{box-shadow:0 6px 28px rgba(255,45,155,0.6);}
.hero-btn-secondary{
  background:rgba(255,255,255,0.05);
  color:var(--muted);
  border:1px solid rgba(255,255,255,0.1);
}

/* ══ RUBRIQUE TYPES D'ÉTABLISSEMENTS ══ */
/* ═══════════════════════════════════════════════
   ANIMATIONS LUXE CARTES
   ═══════════════════════════════════════════════ */
@keyframes tileShimmer{
  0%{transform:translateX(-120%) skewX(-15deg);}
  100%{transform:translateX(220%) skewX(-15deg);}
}
@keyframes borderGlow{
  0%,100%{opacity:0.6;}
  50%{opacity:1;}
}
@keyframes tileEntree{
  from{opacity:0;transform:translateY(18px) scale(0.96);}
  to{opacity:1;transform:translateY(0) scale(1);}
}

.home-types-section{
  margin: 0.8rem 0 1.4rem;
  padding: 0 0.2rem;
  animation: fadeUp 0.6s 0.15s ease both;
}
.home-section-label{
  font-family:'Syne',sans-serif;
  font-size:0.7rem;font-weight:700;letter-spacing:0.22em;text-transform:uppercase;
  color:var(--cyan);margin-bottom:0.85rem;display:flex;align-items:center;justify-content:center;gap:0.55rem;
  text-align:center;
}
.home-section-label::before{content:'';flex:1;height:1px;background:linear-gradient(to right,transparent,rgba(0,229,255,0.25));}
.home-section-label::after{content:'';flex:1;height:1px;background:linear-gradient(to left,transparent,rgba(0,229,255,0.25));}

.types-grid{
  display:grid;
  grid-template-columns:repeat(2,1fr);
  gap:0.45rem;
}
/* Centrer la dernière tuile quand elle est seule sur sa ligne */
.types-grid .type-tile:last-child:nth-child(odd){
  grid-column: 1 / -1;
  width: calc(50% - 0.325rem);
  margin: 0 auto;
}

/* ── BASE CARTE ── */
.type-tile{
  position:relative;
  border-radius:20px;
  padding:1.1rem 0.5rem 0.95rem;
  text-align:center;
  cursor:pointer;
  transition:transform 0.25s cubic-bezier(.34,1.3,.64,1), box-shadow 0.25s ease;
  overflow:hidden;
  user-select:none;
  -webkit-tap-highlight-color:transparent;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  min-height:140px;
  animation:tileEntree 0.5s ease both;
  border:2px solid transparent;
}
/* Entrée en cascade */
.type-tile:nth-child(1){animation-delay:0.05s;}
.type-tile:nth-child(2){animation-delay:0.12s;}
.type-tile:nth-child(3){animation-delay:0.19s;}
.type-tile:nth-child(4){animation-delay:0.26s;}
.type-tile:nth-child(5){animation-delay:0.33s;}
.type-tile:nth-child(6){animation-delay:0.40s;}

/* Reflet haut de carte */
.type-tile::before{
  content:'';position:absolute;top:0;left:0;right:0;height:50%;
  background:linear-gradient(180deg,rgba(255,255,255,0.30) 0%,transparent 100%);
  pointer-events:none;z-index:1;border-radius:inherit;
}
/* Sweep shimmer animé — SUPPRIMÉ (gain GPU : 6 layers animés en moins) */
.type-tile::after{
  content:'';
  position:absolute;top:0;left:0;width:45%;height:100%;
  background:linear-gradient(90deg,transparent,rgba(255,255,255,0.28),transparent);
  pointer-events:none;z-index:3;
  opacity:0; /* désactivé */
}
/* animation-delay supprimés avec tileShimmer */

.type-tile:active{transform:scale(0.93);}
.type-tile:hover{transform:translateY(-4px) scale(1.02);}

/* ══ HÔTELS — or profond ══ */

/* ══ Photo filigrane en arrière-plan des tuiles ══ */
.tt-bgphoto{
  position:absolute;inset:0;
  background-size:cover;background-position:center;
  opacity:0.55;
  filter:brightness(0.75) saturate(1);
  /* mix-blend-mode:luminosity; */
  z-index:0;border-radius:inherit;
  pointer-events:none;
}
.type-tile .tt-icon,.type-tile .tt-name,.type-tile .tt-count{position:relative;z-index:2;}
.type-tile-bar          .tt-bgphoto{background-image:url('./bg-bar.jpg');}
.type-tile-bar-terrasse .tt-bgphoto{background-image:url('./bg-bar-terrasse.jpg');}
.type-tile-snack        .tt-bgphoto{background-image:url('./bg-snack.jpg');}
.type-tile-resto        .tt-bgphoto{background-image:url('./bg-resto.jpg');}
.type-tile-disco        .tt-bgphoto{background-image:url('./bg-disco.jpg');}

/* ══ BARS — rose fuchsia ══ */
.type-tile-bar{
  background:linear-gradient(145deg,#ff416c 0%,#ff6fa3 50%,#ffaac8 100%);
  border-color:rgba(255,65,108,0.55);
  box-shadow:0 6px 22px rgba(255,65,108,0.38), inset 0 1px 0 rgba(255,255,255,0.35);
}
.type-tile-bar:hover{box-shadow:0 12px 32px rgba(255,65,108,0.55);}

/* ══ BAR TERRASSE — bleu saphir électrique ══ */
.type-tile-bar-terrasse{
  background:linear-gradient(145deg,#0052d4 0%,#4388f5 50%,#74b0ff 100%);
  border-color:rgba(0,82,212,0.55);
  box-shadow:0 6px 22px rgba(0,82,212,0.38), inset 0 1px 0 rgba(255,255,255,0.30);
}
.type-tile-bar-terrasse:hover{box-shadow:0 12px 32px rgba(0,82,212,0.55);}

/* ══ SNACKS — vert émeraude ══ */
.type-tile-snack{
  background:linear-gradient(145deg,#00b09b 0%,#38d878 50%,#80ffb0 100%);
  border-color:rgba(0,176,155,0.55);
  box-shadow:0 6px 22px rgba(0,176,155,0.38), inset 0 1px 0 rgba(255,255,255,0.30);
}
.type-tile-snack:hover{box-shadow:0 12px 32px rgba(0,176,155,0.55);}

/* ══ RESTOS — ambre chaud ══ */
.type-tile-resto{
  background:linear-gradient(145deg,#f7971e 0%,#ffd200 50%,#ffe566 100%);
  border-color:rgba(247,151,30,0.60);
  box-shadow:0 6px 22px rgba(247,151,30,0.40), inset 0 1px 0 rgba(255,255,255,0.35);
}
.type-tile-resto:hover{box-shadow:0 12px 32px rgba(247,151,30,0.55);}

/* ══ CLUBS — violet néon ══ */
.type-tile-disco{
  background:linear-gradient(145deg,#7b2ff7 0%,#b060ff 50%,#d49cff 100%);
  border-color:rgba(123,47,247,0.55);
  box-shadow:0 6px 22px rgba(123,47,247,0.38), inset 0 1px 0 rgba(255,255,255,0.28);
}
.type-tile-disco:hover{box-shadow:0 12px 32px rgba(123,47,247,0.55);}

/* ══ SALLES — rouge bordeaux scène ══ */
.type-tile-salle{
  background:linear-gradient(145deg,#c0392b 0%,#e74c3c 50%,#ff8072 100%);
  border-color:rgba(192,57,43,0.55);
  box-shadow:0 6px 22px rgba(192,57,43,0.38), inset 0 1px 0 rgba(255,255,255,0.28);
}
.type-tile-salle:hover{box-shadow:0 12px 32px rgba(192,57,43,0.55);}

/* ══ STADES — vert gazon ══ */
.type-tile-stade{
  background:linear-gradient(145deg,#1a7a1a 0%,#2ecc40 50%,#7dffa0 100%);
  border-color:rgba(26,122,26,0.55);
  box-shadow:0 6px 22px rgba(26,122,26,0.38), inset 0 1px 0 rgba(255,255,255,0.30);
}
.type-tile-stade:hover{box-shadow:0 12px 32px rgba(26,122,26,0.55);}

/* ══ TOURISME — bleu-vert nature ══ */
.type-tile-tourisme{
  background:linear-gradient(145deg,#006064 0%,#00acc1 50%,#4dd0e1 100%);
  border-color:rgba(0,96,100,0.55);
  box-shadow:0 6px 22px rgba(0,96,100,0.38), inset 0 1px 0 rgba(255,255,255,0.28);
}
.type-tile-tourisme:hover{box-shadow:0 12px 32px rgba(0,96,100,0.55);}

/* ── ICÔNE ── */
.tt-icon{
  font-size:1.45rem;
  margin-bottom:0.35rem;
  line-height:1;
  position:relative;
  z-index:2;
  filter:drop-shadow(0 2px 6px rgba(0,0,0,0.22));
}

/* ── NOM ── */
.tt-name{
  font-family:'Playfair Display',Georgia,serif;
  font-weight:700;
  font-size:0.95rem;
  color:#fff;
  text-transform:capitalize;
  letter-spacing:0.01em;
  position:relative;
  z-index:2;
  text-shadow:0 1px 4px rgba(0,0,0,0.20);
  line-height:1.25;
  width:100%;
  text-align:center;
  word-break:normal;
  overflow-wrap:break-word;
  hyphens:none;
  padding:0 0.2rem;
  text-decoration:underline;
  text-decoration-style:dotted;
  text-underline-offset:3px;
  cursor:pointer;
}
/* Fonds CLAIRS → texte foncé */
.type-tile-bar      .tt-name{color:#fff;text-shadow:0 1px 3px rgba(0,0,0,0.85),0 0 8px rgba(0,0,0,0.5);}
.type-tile-snack    .tt-name{color:#fff;text-shadow:0 1px 3px rgba(0,0,0,0.85),0 0 8px rgba(0,0,0,0.5);}
.type-tile-resto    .tt-name{color:#fff;text-shadow:0 1px 3px rgba(0,0,0,0.85),0 0 8px rgba(0,0,0,0.5);}
/* Fonds FONCÉS → texte blanc */
.type-tile-bar-terrasse .tt-name{color:#fff;text-shadow:0 1px 6px rgba(0,30,100,0.45);}
.type-tile-disco        .tt-name{color:#fff;text-shadow:0 1px 6px rgba(60,0,120,0.45);}
.type-tile-salle        .tt-name{color:#fff;text-shadow:0 1px 6px rgba(80,0,0,0.45);}
.type-tile-stade        .tt-name{color:#fff;text-shadow:0 1px 6px rgba(0,50,0,0.45);}
.type-tile-tourisme     .tt-name{color:#fff;text-shadow:0 1px 6px rgba(0,40,50,0.45);}

/* ── BADGE COMPTEUR ── */
.tt-count{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  margin-top:0.42rem;
  font-family:'DM Sans',sans-serif;
  font-size:0.68rem;
  font-weight:700;
  padding:0.14rem 0.65rem;
  border-radius:100px;
  position:relative;
  z-index:2;
  transition:all 0.2s;
  letter-spacing:0.02em;
  background:rgba(0,0,0,0.18);
  border:1px solid rgba(255,255,255,0.35);
  color:#fff;
  box-shadow:0 2px 8px rgba(0,0,0,0.18), inset 0 1px 0 rgba(255,255,255,0.25);
  backdrop-filter:blur(4px);
}
/* Toutes les cartes — base */
.tt-count-bar,.tt-count-disco,.tt-count-resto,
.tt-count-bar-terrasse,.tt-count-snack,/* Fonds CLAIRS → badge sombre */
.tt-count-bar{background:rgba(92,0,32,0.14);color:#5c0020;border:1px solid rgba(92,0,32,0.28);box-shadow:inset 0 1px 0 rgba(255,255,255,0.45);}
.tt-count-snack{background:rgba(0,61,26,0.14);color:#003d1a;border:1px solid rgba(0,61,26,0.28);box-shadow:inset 0 1px 0 rgba(255,255,255,0.45);}
.tt-count-resto{background:rgba(61,30,0,0.14);color:#3d1e00;border:1px solid rgba(61,30,0,0.28);box-shadow:inset 0 1px 0 rgba(255,255,255,0.45);}
/* Fonds FONCÉS → badge blanc */
.tt-count-bar-terrasse{background:rgba(255,255,255,0.18);color:#fff;border:1px solid rgba(255,255,255,0.38);box-shadow:inset 0 1px 0 rgba(255,255,255,0.25);}
.tt-count-disco{background:rgba(255,255,255,0.18);color:#fff;border:1px solid rgba(255,255,255,0.38);box-shadow:inset 0 1px 0 rgba(255,255,255,0.25);}
.tt-count-salle{background:rgba(255,255,255,0.18);color:#fff;border:1px solid rgba(255,255,255,0.38);box-shadow:inset 0 1px 0 rgba(255,255,255,0.25);}
.tt-count-stade{background:rgba(255,255,255,0.18);color:#fff;border:1px solid rgba(255,255,255,0.38);box-shadow:inset 0 1px 0 rgba(255,255,255,0.25);}
.tt-count-tourisme{background:rgba(255,255,255,0.18);color:#fff;border:1px solid rgba(255,255,255,0.38);box-shadow:inset 0 1px 0 rgba(255,255,255,0.25);}

/* ══ TOP 3 LIEUX ══ */
.home-top6-section{
  margin-bottom:0.9rem;
  animation:fadeUp 0.6s 0.25s ease both;
  padding:0 1rem;
}
.top6-header{
  display:flex;align-items:center;justify-content:space-between;
  margin-bottom:0.65rem;
}
.top6-title{
  font-family:'Syne',sans-serif;font-weight:800;font-size:0.88rem;
  color:var(--text);
  display:flex;align-items:center;gap:0.45rem;
}
.top6-title .t6-flame{font-size:1.1rem;}
.top6-title .t6-sub{
  font-family:'DM Sans',sans-serif;font-weight:400;font-size:0.68rem;
  color:var(--muted);margin-left:0.15rem;
}
.top6-see-all{
  font-size:0.68rem;font-weight:700;color:var(--pink);
  background:rgba(255,45,155,0.08);border:1px solid rgba(255,45,155,0.2);
  padding:0.22rem 0.7rem;border-radius:100px;cursor:pointer;
  font-family:'DM Sans',sans-serif;
  transition:all 0.2s;
  white-space:nowrap;
}
.top6-see-all:active{opacity:0.7;}

/* Barres horizontales compactes */
.top6-grid{display:flex;flex-direction:column;gap:0.42rem;}
.top6-card{
  position:relative;
  background:var(--surface);
  border:2px solid;
  border-radius:10px;
  padding:0.48rem 0.6rem;
  display:flex;align-items:center;gap:0.5rem;
  cursor:pointer;
  transition:all 0.22s;
  overflow:hidden;
  -webkit-tap-highlight-color:transparent;
  user-select:none;
  min-height:48px;height:auto;
}
.top6-card:active{transform:scale(0.98);opacity:0.85;}
.top6-card:hover{transform:translateX(3px);}

/* Couleurs exactes par catégorie - MÊMES QUE LES RECTANGLES */
.top6-card.bar{
  border-color:rgba(255,105,150,0.35);
  background:linear-gradient(90deg,#ffe0ef,#ffc8e0);
}
.top6-card.bar:hover{border-color:rgba(255,75,130,0.55);box-shadow:0 4px 12px rgba(255,100,150,0.3);}

.top6-card.club{
  border-color:rgba(160,90,220,0.32);
  background:linear-gradient(90deg,#ecdeff,#dbc4ff);
}
.top6-card.club:hover{border-color:rgba(140,60,200,0.5);box-shadow:0 4px 12px rgba(160,80,220,0.3);}

.top6-card.restaurant{
  border-color:rgba(200,160,20,0.32);
  background:linear-gradient(90deg,#fff7d6,#ffe89a);
}
.top6-card.restaurant:hover{border-color:rgba(180,140,0,0.5);box-shadow:0 4px 12px rgba(200,160,20,0.3);}

.top6-card.terrasse{
  border-color:rgba(0,170,210,0.32);
  background:linear-gradient(90deg,#d6f4ff,#b3e8ff);
}
.top6-card.terrasse:hover{border-color:rgba(0,150,195,0.5);box-shadow:0 4px 12px rgba(0,180,220,0.3);}

.top6-card.snack{
  border-color:rgba(0,170,100,0.28);
  background:linear-gradient(90deg,#d6fff0,#aaffd8);
}
.top6-card.snack:hover{border-color:rgba(0,150,90,0.48);box-shadow:0 4px 12px rgba(0,180,110,0.3);}

  border-color:rgba(200,130,0,0.32);
  background:linear-gradient(90deg,#fff3e0,#ffe0b0);
}

.top6-card.salle{
  border-color:rgba(192,57,43,0.32);
  background:linear-gradient(90deg,#ffebee,#ffcdd2);
}
.top6-card.salle:hover{border-color:rgba(160,40,30,0.5);box-shadow:0 4px 12px rgba(192,57,43,0.3);}

.top6-card.stade{
  border-color:rgba(26,122,26,0.28);
  background:linear-gradient(90deg,#e8f5e9,#c8e6c9);
}
.top6-card.stade:hover{border-color:rgba(20,100,20,0.48);box-shadow:0 4px 12px rgba(26,122,26,0.3);}

.top6-card.tourisme{
  border-color:rgba(0,96,100,0.28);
  background:linear-gradient(90deg,#e0f7fa,#b2ebf2);
}
.top6-card.tourisme:hover{border-color:rgba(0,80,90,0.48);box-shadow:0 4px 12px rgba(0,96,100,0.3);}


/* ── Numéro rang — design podium ── */
.t6c-rank{
  font-family:'Syne',sans-serif;font-weight:900;font-size:0.58rem;
  flex-shrink:0;min-width:28px;text-align:center;
  letter-spacing:0.01em;color:var(--muted);
  transition:all 0.2s;
}
/* 🥇 N°1 — or */
.top6-grid .top6-card:nth-child(1) .t6c-rank,
.t6c-rank.t6c-rank-1{
  font-size:0.68rem;
  background:linear-gradient(160deg,#ffe566 20%,#ffb300 55%,#ff8c00 100%);
  -webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;
  filter:drop-shadow(0 0 4px rgba(255,200,0,0.55));
}
/* 🥈 N°2 — argent */
.top6-grid .top6-card:nth-child(2) .t6c-rank,
.t6c-rank.t6c-rank-2{
  font-size:0.64rem;
  background:linear-gradient(160deg,#e8e8f0 20%,#b0b8cc 55%,#8898aa 100%);
  -webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;
  filter:drop-shadow(0 0 3px rgba(180,190,210,0.45));
}
/* 🥉 N°3 — bronze */
.top6-grid .top6-card:nth-child(3) .t6c-rank,
.t6c-rank.t6c-rank-3{
  font-size:0.62rem;
  background:linear-gradient(160deg,#ffb07a 20%,#cc7840 55%,#a05020 100%);
  -webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;
  filter:drop-shadow(0 0 3px rgba(200,120,60,0.4));
}
/* N°4+ — lilas discret */
.top6-grid .top6-card:nth-child(n+4) .t6c-rank,
.t6c-rank.t6c-rank-other{
  color:rgba(176,136,192,0.55);
  font-size:0.55rem;
}


/* Icon établissement */
.t6c-icon{
  font-size:1.5rem;width:28px;height:28px;display:flex;align-items:center;justify-content:center;flex-shrink:0;
}

/* Infos compactes */
.t6c-info{flex:1;min-width:0;}
.t6c-cat{
  font-size:0.52rem;font-weight:800;color:#2a0040;
  text-transform:uppercase;letter-spacing:0.07em;
  opacity:0.65;margin-bottom:0.08rem;
}
.t6c-name{
  font-family:'DM Sans',sans-serif;font-weight:800;font-size:0.76rem;
  color:#2a0040;white-space:normal;word-break:break-word;
  line-height:1.25;
  text-decoration:underline;text-decoration-style:dotted;text-underline-offset:3px;
  cursor:pointer;
}
.t6c-type{
  font-size:0.52rem;font-weight:800;color:#2a0040;
  text-transform:uppercase;letter-spacing:0.06em;
  margin-top:0.05rem;
}
.t6c-heat{
  display:flex;align-items:center;gap:0.15rem;
  font-size:0.48rem;font-weight:700;color:#8a6000;
  margin-top:0.04rem;
}

.t6c-right{
  display:flex;align-items:center;gap:0.25rem;flex-shrink:0;
  font-size:0.65rem;font-weight:800;color:#2a0040;
}
.t6c-note{color:#8a6000;}
.t6c-arrow{color:#c0145a;opacity:0.7;font-size:0.58rem;}

@media(max-width:600px){
  .top6-card{min-height:45px;height:auto;padding:0.4rem 0.5rem;}
  .t6c-icon{font-size:1.4rem;}
}

@media(max-width:420px){
  .top6-card{min-height:42px;height:auto;padding:0.35rem 0.45rem;}
  .t6c-icon{font-size:1.3rem;}
  .t6c-name{font-size:0.72rem;}
  .t6c-type{font-size:0.48rem;}
}

/* ══ STATS STRIP ACCUEIL (4 chips) ══ */
.home-stats-strip{
  display:grid;grid-template-columns:repeat(4,1fr);gap:0.5rem;
  margin-bottom:1.2rem;
  padding:0 1rem;
  animation:fadeUp 0.6s 0.1s ease both;
}
.hss-chip{
  background:var(--surface);border:1px solid rgba(255,255,255,0.07);
  border-radius:12px;padding:0.7rem 0.5rem;text-align:center;
  cursor:pointer;transition:transform 0.15s,border-color 0.2s,box-shadow 0.2s;
  -webkit-tap-highlight-color:transparent;user-select:none;
}
.hss-chip:hover{border-color:rgba(255,45,155,0.3);box-shadow:0 2px 12px rgba(255,45,155,0.08);}
.hss-chip:active{transform:scale(0.93);opacity:0.8;}
.hss-val{font-family:'Syne',sans-serif;font-weight:800;font-size:1.05rem;line-height:1;}
.hss-lbl{font-size:0.52rem;text-transform:uppercase;letter-spacing:0.07em;color:var(--muted);margin-top:0.2rem;}
.hss-pink .hss-val{color:var(--pink);}
.hss-green .hss-val{color:var(--green);}
.hss-red .hss-val{color:var(--red);}
.hss-cyan .hss-val{color:var(--cyan);}
.hss-amber .hss-val{color:var(--amber);}

/* ══ INSCRIRE CTA ACCUEIL ══ */
.home-inscrire-cta{
  background:linear-gradient(135deg,rgba(255,45,155,0.1) 0%,rgba(0,229,255,0.06) 100%);
  border:1px solid rgba(255,45,155,0.2);
  border-radius:16px;padding:1.1rem 1.2rem;
  margin-bottom:1.4rem;
  display:flex;align-items:center;gap:0.9rem;
  animation:fadeUp 0.6s 0.3s ease both;
}
.hic-icon{font-size:1.6rem;flex-shrink:0;}
.hic-text{flex:1;}
.hic-title{font-family:'Syne',sans-serif;font-weight:800;font-size:0.82rem;color:var(--text);margin-bottom:0.15rem;}
.hic-sub{font-size:0.68rem;color:var(--muted);line-height:1.4;}
.hic-btn{
  flex-shrink:0;
  background:linear-gradient(135deg,var(--pink),var(--cyan));
  border:none;color:#000;
  font-family:'Syne',sans-serif;font-weight:800;font-size:0.68rem;
  padding:0.5rem 0.8rem;border-radius:10px;cursor:pointer;
  white-space:nowrap;transition:opacity 0.2s;
}
.hic-btn:active{opacity:0.8;transform:scale(0.96);}

/* SYNC / TRAFFIC */
.sync-bar{display:flex;align-items:center;justify-content:space-between;background:rgba(0,255,170,0.06);border:1px solid rgba(0,255,170,0.15);border-radius:10px;padding:0.5rem 0.9rem;margin-bottom:1rem;font-size:0.72rem;color:var(--green);}
.sync-left{display:flex;align-items:center;gap:0.4rem;}
.sync-time{color:var(--muted);font-size:0.68rem;}
.sync-spinner{width:12px;height:12px;border:2px solid rgba(0,255,170,0.2);border-top-color:var(--green);border-radius:50%;animation:spin 0.8s linear infinite;display:none;}
.traffic-badge{background:rgba(204,68,255,0.08);border:1px solid rgba(204,68,255,0.2);border-radius:10px;padding:0.6rem 0.9rem;margin-bottom:1rem;display:none;align-items:center;justify-content:space-between;}
.traffic-badge.show{display:flex;}
.tb-left{display:flex;align-items:center;gap:0.5rem;font-size:0.78rem;color:var(--purple);}
.tb-val{font-family:'Syne',sans-serif;font-weight:800;font-size:1.1rem;color:var(--purple);}

/* INSCRIPTION BTN */
.inscrire-banner{background:linear-gradient(135deg,rgba(255,45,155,0.12),rgba(0,229,255,0.08));border:1px solid rgba(255,45,155,0.25);border-radius:16px;padding:1.1rem;margin-bottom:1.2rem;animation:fadeUp 0.4s ease both;}
.inscrire-banner .ib-text{font-size:0.82rem;color:var(--muted);margin-bottom:0.7rem;}
.inscrire-banner .ib-text strong{color:var(--text);}
.inscrire-big-btn{display:block;width:100%;padding:0.75rem;border-radius:12px;border:none;background:linear-gradient(135deg,var(--pink),var(--cyan));color:#000;font-family:'Syne',sans-serif;font-weight:800;font-size:0.9rem;cursor:pointer;text-align:center;text-decoration:none;box-shadow:0 4px 20px rgba(255,45,155,0.3);}

/* STATS */
.stats-scroll{display:grid;grid-template-columns:repeat(4,1fr);gap:0.5rem;margin-bottom:1.2rem;padding:0 1rem;}
.stats-scroll::-webkit-scrollbar{display:none;}
.stat-chip{border-radius:12px;padding:0.7rem 0.4rem;text-align:center;cursor:pointer;transition:transform 0.15s,border-color 0.2s,box-shadow 0.2s;-webkit-tap-highlight-color:transparent;user-select:none;border:1px solid rgba(255,255,255,0.07);}
.stat-chip:active{transform:scale(0.93);opacity:0.8;}
.stat-chip .val{font-family:'Syne',sans-serif;font-weight:800;font-size:1.05rem;line-height:1;}
.stat-chip .lbl{font-size:0.52rem;text-transform:uppercase;letter-spacing:0.07em;color:var(--muted);margin-top:0.2rem;}
.sc-pink{background:rgba(255,45,155,0.12);border:1px solid rgba(255,45,155,0.25);}.sc-pink .val{color:var(--pink);}
.sc-amber{background:rgba(255,215,0,0.08);border:1px solid rgba(255,215,0,0.22);}.sc-amber .val{color:var(--amber);}
.sc-green{background:rgba(0,255,170,0.1);border:1px solid rgba(0,255,170,0.2);}.sc-green .val{color:var(--green);}
.sc-red{background:rgba(255,68,102,0.1);border:1px solid rgba(255,68,102,0.2);}.sc-red .val{color:var(--red);}
.sc-cyan{background:rgba(0,229,255,0.1);border:1px solid rgba(0,229,255,0.2);}.sc-cyan .val{color:var(--cyan);}
.sc-purple{background:rgba(204,68,255,0.1);border:1px solid rgba(204,68,255,0.2);}.sc-purple .val{color:var(--purple);}

/* SEARCH & FILTERS */
.search-wrap{display:flex;align-items:center;gap:0.5rem;background:rgba(255,255,255,0.04);border:1px solid rgba(255,45,155,0.2);border-radius:12px;padding:0.6rem 0.9rem;margin-bottom:0.8rem;transition:border-color 0.2s;}
.search-wrap:focus-within{border-color:rgba(255,45,155,0.5);}
.search-wrap input{background:none;border:none;outline:none;color:var(--text);font-family:'DM Sans',sans-serif;font-size:0.85rem;width:100%;}
.search-wrap input::placeholder{color:var(--muted);}
.filter-row{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:0.35rem;margin-bottom:0.55rem;}
.filter-row::-webkit-scrollbar{display:none;}

/* ── CHIPS CATÉGORIES — centrage parfait icône + texte ── */
.fchip{
  flex-shrink:0;
  display:inline-flex;align-items:center;justify-content:center;gap:4px;
  padding:0.3rem 0.65rem;
  border-radius:100px;
  font-size:0.67rem;font-weight:700;
  border:1.5px solid rgba(255,255,255,0.1);
  background:rgba(255,255,255,0.05);
  color:var(--muted);
  cursor:pointer;
  font-family:'DM Sans',sans-serif;
  transition:all 0.2s;
  white-space:nowrap;
  line-height:1;
  vertical-align:middle;
  width:100%;
  box-sizing:border-box;
  text-align:center;
  overflow:hidden;
}
.fchip svg{flex-shrink:0;display:block;max-width:1.6em;max-height:1.1em;}
.fchip.active{background:var(--pink);border-color:var(--pink);color:#fff;box-shadow:0 0 10px rgba(255,45,155,0.35);}
.fchip:active{transform:scale(0.95);}

/* ── CHIPS STATUT — couleurs propres à chaque état ── */
.fchip.schip-all{border-color:rgba(255,45,155,0.35);background:rgba(255,45,155,0.1);color:rgba(255,100,180,0.9);}
.fchip.schip-all.active{background:var(--pink);border-color:var(--pink);color:#fff;box-shadow:0 0 10px rgba(255,45,155,0.35);}
.fchip.schip-bonde{border-color:rgba(255,68,102,0.3);background:rgba(255,68,102,0.07);color:var(--muted);}
.fchip.schip-bonde.active{background:rgba(255,68,102,0.22);border-color:rgba(255,68,102,0.7);color:#ff4466;box-shadow:0 0 8px rgba(255,68,102,0.3);}
.fchip.schip-anime{border-color:rgba(0,255,170,0.25);background:rgba(0,255,170,0.06);color:var(--muted);}
.fchip.schip-anime.active{background:rgba(0,255,170,0.18);border-color:rgba(0,255,170,0.6);color:var(--green);box-shadow:0 0 8px rgba(0,255,170,0.25);}
.fchip.schip-calme{border-color:rgba(255,215,0,0.25);background:rgba(255,215,0,0.06);color:var(--muted);}
.fchip.schip-calme.active{background:rgba(255,215,0,0.18);border-color:rgba(255,215,0,0.6);color:var(--amber);box-shadow:0 0 8px rgba(255,215,0,0.25);}

/* ── SORT & VIEW ── */
.sort-row{display:flex;align-items:center;justify-content:center;margin-bottom:0.8rem;gap:0.4rem;flex-wrap:nowrap;overflow:hidden;width:100%;}
.sort-label{font-size:0.65rem;color:var(--muted);text-transform:uppercase;letter-spacing:0.07em;white-space:nowrap;flex-shrink:0;}
.sort-btns{display:flex;background:var(--surface);border:1px solid rgba(255,45,155,0.15);border-radius:8px;padding:0.18rem;gap:0.15rem;flex-shrink:0;}
.sort-btn{padding:0.25rem 0.5rem;border-radius:6px;font-size:0.65rem;font-weight:700;border:none;background:transparent;color:var(--muted);cursor:pointer;font-family:'DM Sans',sans-serif;transition:all 0.2s;white-space:nowrap;}
.sort-btn.active{background:var(--pink);color:#fff;}
.view-btns{display:flex;background:var(--surface);border:1px solid rgba(255,45,155,0.15);border-radius:8px;padding:0.18rem;gap:0.15rem;flex-shrink:0;}
.view-btn{padding:0.25rem 0.5rem;border-radius:6px;font-size:0.68rem;font-weight:700;border:none;background:transparent;color:var(--muted);cursor:pointer;transition:all 0.2s;}
.view-btn.active{background:var(--pink);color:#fff;}

/* ══ VUE COMPACTE — lignes condensées déployables ══ */
.compact-list{display:flex;flex-direction:column;gap:0;border:1px solid rgba(255,45,155,0.15);border-radius:14px;overflow:hidden;background:var(--surface);}
.compact-row{
  display:flex;align-items:center;gap:0.55rem;
  padding:0.52rem 0.75rem;
  border-bottom:1px solid rgba(255,255,255,0.05);
  cursor:pointer;
  transition:background 0.15s;
  position:relative;
  -webkit-tap-highlight-color:transparent;
  user-select:none;
}
.compact-row:last-child{border-bottom:none;}
.compact-row:active{background:rgba(255,45,155,0.07);}
.compact-row.expanded{background:rgba(255,45,155,0.04);}
/* Rang */
.cr-rank{
  font-family:'Syne',sans-serif;font-weight:900;font-size:0.58rem;
  color:var(--muted);min-width:20px;text-align:center;flex-shrink:0;
}
.cr-rank.gold{color:#ffd700;}
.cr-rank.silver{color:#c0c0c0;}
.cr-rank.bronze{color:#cd7f32;}
/* Icone type */
.cr-icon{font-size:1.15rem;width:24px;text-align:center;flex-shrink:0;line-height:1;}
/* Nom */
.cr-name{
  flex:1;min-width:0;
  font-family:'DM Sans',sans-serif;font-weight:700;font-size:0.8rem;
  color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
}
/* Nom vert clignotant — proche GPS ou correspondance recherche */
@keyframes nameGreenBlink{0%,100%{opacity:1;color:var(--green);}50%{opacity:0.55;color:#00e0a0;}}
.cr-name.search-match-near{
  animation:nameGreenBlink 1.4s ease-in-out infinite;
  font-weight:800;
}
/* Vue cartes : nom vert clignotant pour les proches GPS */
.card-prox-near .card-name,
.card-prox-near .card-name button.etab-name-order-btn{
  animation:nameGreenBlink 1.4s ease-in-out infinite;
  color:var(--green) !important;
  font-weight:800;
}
/* Statut pill */
.cr-status{
  font-size:0.55rem;font-weight:800;padding:0.12rem 0.38rem;
  border-radius:100px;white-space:nowrap;flex-shrink:0;
}
.cr-status.bonde{background:rgba(255,68,102,0.15);color:var(--red);border:1px solid rgba(255,68,102,0.3);}
.cr-status.anime{background:rgba(0,255,170,0.12);color:var(--green);border:1px solid rgba(0,255,170,0.25);}
.cr-status.calme{background:rgba(255,215,0,0.12);color:var(--amber);border:1px solid rgba(255,215,0,0.25);}
.cr-status.inconnu{background:rgba(255,255,255,0.06);color:var(--muted);border:1px solid rgba(255,255,255,0.1);}
/* Score */
.cr-score{
  display:flex;align-items:center;gap:0.18rem;
  font-family:'Syne',sans-serif;font-weight:800;font-size:0.7rem;
  color:var(--amber);flex-shrink:0;min-width:34px;justify-content:flex-end;
}
/* Chevron expand */
.cr-chevron{
  font-size:0.6rem;color:var(--muted);flex-shrink:0;
  transition:transform 0.2s;
}
.compact-row.expanded .cr-chevron{transform:rotate(180deg);}
/* Panneau déployé */
.compact-detail{
  display:none;
  border-bottom:1px solid rgba(255,255,255,0.06);
  background:rgba(0,0,0,0.25);
  animation:slideDown 0.22s ease;
}
.compact-detail.open{display:block;}
.compact-detail .card-top{padding:0.75rem 0.9rem 0.55rem;}
.compact-detail .card-photos{border-radius:0;}
.compact-detail .card-contact-row{padding:0.5rem 0.9rem;}
/* Barre de score compacte dans l'expanded */
.cr-score-bar-wrap{
  display:flex;align-items:center;gap:0.5rem;
  padding:0.45rem 0.9rem 0.5rem;
  border-top:1px solid rgba(255,255,255,0.05);
  font-size:0.62rem;color:var(--muted);
}
.cr-score-bar{flex:1;background:rgba(255,255,255,0.07);border-radius:100px;height:5px;overflow:hidden;}
.cr-score-fill{height:100%;border-radius:100px;background:linear-gradient(90deg,var(--pink),var(--amber));}

/* ══ GPS / PRÈS DE CHEZ VOUS ══ */
.gps-nearby-btn{display:flex;align-items:center;gap:0.5rem;width:100%;padding:0.75rem 1rem;border-radius:14px;border:2px solid rgba(0,229,255,0.35);background:linear-gradient(135deg,rgba(0,229,255,0.08),rgba(0,255,170,0.06));color:var(--cyan);font-family:'Syne',sans-serif;font-weight:800;font-size:0.88rem;cursor:pointer;transition:all 0.25s;margin-bottom:0.9rem;position:relative;overflow:hidden;}
.gps-nearby-btn:active{transform:scale(0.97);}
.gps-nearby-btn.active{background:linear-gradient(135deg,rgba(0,229,255,0.18),rgba(0,255,170,0.12));border-color:var(--cyan);box-shadow:0 0 20px rgba(0,229,255,0.25);}
.gps-nearby-btn .gnb-icon{font-size:1.2rem;flex-shrink:0;}
.gps-nearby-btn .gnb-text{flex:1;text-align:left;}
.gps-nearby-btn .gnb-sub{font-size:0.65rem;color:var(--muted);font-family:'DM Sans',sans-serif;font-weight:400;display:block;margin-top:0.1rem;}
.gps-nearby-btn .gnb-badge{background:var(--cyan);color:#000;font-size:0.62rem;font-weight:800;padding:0.15rem 0.5rem;border-radius:20px;flex-shrink:0;}
.gps-nearby-btn .gnb-pulse{position:absolute;right:1rem;top:50%;transform:translateY(-50%);width:10px;height:10px;border-radius:50%;background:var(--cyan);animation:pulse 1.5s infinite;}
.gps-nearby-btn.locating{border-color:rgba(255,215,0,0.5);background:linear-gradient(135deg,rgba(255,215,0,0.08),rgba(255,165,0,0.06));color:var(--amber);}
.gps-nearby-btn.locating .gnb-pulse{background:var(--amber);}
.gps-nearby-btn.error-state{border-color:rgba(255,68,102,0.4);background:rgba(255,68,102,0.06);color:var(--red);}

/* Panel Près de chez vous */
.gps-panel{background:var(--surface);border:1px solid rgba(0,229,255,0.2);border-radius:18px;padding:1rem;margin-bottom:1rem;display:none;animation:fadeUp 0.3s ease;}
.gps-panel.show{display:block;}
.gps-panel-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:0.8rem;}
.gps-panel-title{font-family:'Syne',sans-serif;font-weight:800;font-size:0.9rem;color:var(--cyan);}
.gps-panel-close{background:none;border:none;color:var(--muted);cursor:pointer;font-size:1rem;padding:0.2rem;}
.gps-radius-row{display:flex;gap:0.35rem;margin-bottom:0.85rem;flex-wrap:wrap;}
.gps-radius-btn{flex:1;min-width:50px;padding:0.38rem 0.3rem;border-radius:8px;border:1px solid rgba(0,229,255,0.2);background:rgba(0,229,255,0.04);color:var(--muted);font-size:0.72rem;font-weight:700;cursor:pointer;font-family:'DM Sans',sans-serif;text-align:center;transition:all 0.2s;}
.gps-radius-btn.active{background:rgba(0,229,255,0.15);border-color:var(--cyan);color:var(--cyan);}
.gps-sort-row{display:flex;gap:0.35rem;margin-bottom:0.85rem;}
.gps-sort-btn{flex:1;padding:0.35rem;border-radius:8px;border:1px solid rgba(255,255,255,0.08);background:transparent;color:var(--muted);font-size:0.7rem;font-weight:700;cursor:pointer;font-family:'DM Sans',sans-serif;transition:all 0.2s;}
.gps-sort-btn.active{background:rgba(0,229,255,0.12);border-color:rgba(0,229,255,0.3);color:var(--cyan);}
.gps-user-loc{display:flex;align-items:center;gap:0.6rem;background:rgba(0,229,255,0.05);border:1px solid rgba(0,229,255,0.15);border-radius:10px;padding:0.6rem 0.8rem;margin-bottom:0.85rem;font-size:0.75rem;color:var(--cyan);}
.gps-user-loc .gul-dot{width:10px;height:10px;border-radius:50%;background:var(--cyan);box-shadow:0 0 8px rgba(0,229,255,0.6);flex-shrink:0;animation:pulse 2s infinite;}
.gps-user-loc .gul-info{flex:1;}
.gps-user-loc .gul-coords{font-size:0.62rem;color:var(--muted);margin-top:0.1rem;}
.gps-accuracy-bar{height:3px;background:rgba(255,255,255,0.06);border-radius:2px;margin-top:0.6rem;overflow:hidden;}
.gps-accuracy-fill{height:100%;border-radius:2px;background:linear-gradient(90deg,var(--green),var(--cyan));transition:width 0.5s;}
.gps-result-count{font-size:0.72rem;color:var(--muted);margin-bottom:0.6rem;display:flex;align-items:center;gap:0.4rem;}
.gps-result-count strong{color:var(--cyan);}
.gps-no-result{text-align:center;padding:1.5rem;color:var(--muted);font-size:0.82rem;}
.gps-no-result span{display:block;font-size:2rem;margin-bottom:0.5rem;}

/* ══ GÉOLOCALISATION AVANCÉE — MÉTHODE DE SÉLECTION ══ */
.geo-method-sheet{display:none;position:fixed;inset:0;z-index:600;background:rgba(0,0,0,0.82);backdrop-filter:blur(8px);align-items:flex-end;justify-content:center;}
.geo-method-sheet.open{display:flex;}
.geo-method-box{width:min(480px,100%);background:var(--surface);border:1.5px solid rgba(0,229,255,0.3);border-bottom:none;border-radius:26px 26px 0 0;padding:0 1.1rem 2.5rem;animation:slideUp 0.35s cubic-bezier(0.34,1.1,0.64,1);max-height:88vh;overflow-y:auto;display:flex;flex-direction:column;}
.geo-method-drag{width:38px;height:4px;border-radius:2px;background:rgba(255,255,255,0.15);margin:0.75rem auto 1.1rem;}
.geo-method-title{font-family:'Syne',sans-serif;font-weight:800;font-size:1rem;color:var(--cyan);text-align:center;margin-bottom:0.35rem;}
.geo-method-sub{font-size:0.72rem;color:var(--muted);text-align:center;margin-bottom:1.3rem;line-height:1.5;}
.geo-method-options{display:flex;flex-direction:column;gap:0.65rem;margin-bottom:1rem;}
.geo-method-btn{display:flex;align-items:center;gap:0.85rem;padding:0.9rem 1rem;border-radius:16px;border:1.5px solid rgba(255,255,255,0.1);background:rgba(255,255,255,0.03);cursor:pointer;transition:all 0.2s;text-align:left;width:100%;font-family:'DM Sans',sans-serif;}
.geo-method-btn:active{transform:scale(0.97);}
.geo-method-btn.gm-gps{border-color:rgba(0,229,255,0.3);background:rgba(0,229,255,0.06);}
.geo-method-btn.gm-gps:hover{background:rgba(0,229,255,0.12);border-color:rgba(0,229,255,0.5);}
.geo-method-btn.gm-wa{border-color:rgba(37,211,102,0.3);background:rgba(37,211,102,0.06);}
.geo-method-btn.gm-wa:hover{background:rgba(37,211,102,0.12);border-color:rgba(37,211,102,0.5);}
.geo-method-btn.gm-manual{border-color:rgba(255,215,0,0.25);background:rgba(255,215,0,0.04);}
.geo-method-btn.gm-manual:hover{background:rgba(255,215,0,0.1);border-color:rgba(255,215,0,0.4);}
.geo-method-icon{font-size:1.7rem;flex-shrink:0;width:42px;text-align:center;}
.geo-method-label{font-family:'Syne',sans-serif;font-weight:800;font-size:0.88rem;}
.geo-method-desc{font-size:0.68rem;color:var(--muted);margin-top:0.15rem;line-height:1.4;}
.gm-gps .geo-method-label{color:var(--cyan);}
.gm-wa .geo-method-label{color:#25d366;}
.gm-manual .geo-method-label{color:var(--amber);}
.geo-method-cancel{width:100%;padding:0.7rem;border-radius:13px;border:1px solid rgba(255,255,255,0.1);background:rgba(255,255,255,0.04);color:var(--muted);font-family:'DM Sans',sans-serif;font-weight:600;font-size:0.82rem;cursor:pointer;margin-top:auto;position:sticky;bottom:0;padding-top:1rem;background:linear-gradient(180deg,transparent,var(--surface) 50%,var(--surface));}
/* WhatsApp location input */
.geo-wa-input-wrap{display:none;background:rgba(37,211,102,0.05);border:1.5px solid rgba(37,211,102,0.25);border-radius:14px;padding:0.85rem;margin-bottom:0.65rem;}
.geo-wa-input-wrap.show{display:block;}
.geo-wa-label{font-size:0.7rem;color:#25d366;font-weight:700;margin-bottom:0.5rem;display:flex;align-items:center;gap:0.4rem;}
.geo-wa-steps{font-size:0.65rem;color:var(--muted);line-height:1.7;margin-bottom:0.7rem;}
.geo-wa-input{width:100%;padding:0.55rem 0.75rem;background:rgba(0,0,0,0.35);border:1px solid rgba(37,211,102,0.3);border-radius:9px;color:var(--text);font-family:'DM Sans',sans-serif;font-size:0.82rem;margin-bottom:0.55rem;outline:none;}
.geo-wa-input::placeholder{color:var(--muted);}
.geo-wa-confirm{width:100%;padding:0.6rem;border-radius:10px;border:none;background:linear-gradient(135deg,#25d366,#128c50);color:#fff;font-family:'Syne',sans-serif;font-weight:800;font-size:0.82rem;cursor:pointer;}
/* Manuel input */
.geo-manual-wrap{display:none;background:rgba(255,215,0,0.04);border:1.5px solid rgba(255,215,0,0.2);border-radius:14px;padding:0.85rem;margin-bottom:0.65rem;}
.geo-manual-wrap.show{display:block;}
.geo-manual-label{font-size:0.7rem;color:var(--amber);font-weight:700;margin-bottom:0.5rem;}
.geo-manual-row{display:grid;grid-template-columns:1fr 1fr;gap:0.5rem;margin-bottom:0.55rem;}
.geo-manual-input{width:100%;padding:0.5rem 0.65rem;background:rgba(0,0,0,0.35);border:1px solid rgba(255,215,0,0.25);border-radius:9px;color:var(--text);font-family:'DM Sans',sans-serif;font-size:0.82rem;outline:none;}
.geo-manual-input::placeholder{color:var(--muted);}
.geo-manual-confirm{width:100%;padding:0.6rem;border-radius:10px;border:none;background:linear-gradient(135deg,var(--amber),#ff9900);color:#000;font-family:'Syne',sans-serif;font-weight:800;font-size:0.82rem;cursor:pointer;}
/* Secteur proximité dans la liste */
.proximity-section-header{display:flex;align-items:center;gap:0.6rem;padding:0.55rem 0.75rem;border-radius:12px;margin-bottom:0.6rem;font-family:'Syne',sans-serif;font-weight:800;font-size:0.78rem;}
.proximity-section-header.prox-near{background:rgba(0,255,170,0.08);border:1px solid rgba(0,255,170,0.25);color:var(--green);}
.proximity-section-header.prox-far{background:rgba(255,255,255,0.03);border:1px solid rgba(255,255,255,0.07);color:var(--muted);margin-top:0.8rem;}
.prox-dot{width:9px;height:9px;border-radius:50%;flex-shrink:0;}
.prox-dot-near{background:var(--green);box-shadow:0 0 8px rgba(0,255,170,0.7);animation:pulse 2s infinite;}
.prox-dot-far{background:var(--muted);}
/* Surbrillance carte proche */
.card-prox-near{border-color:rgba(0,255,170,0.28) !important;box-shadow:0 0 0 1px rgba(0,255,170,0.15) inset;}
/* Badge GPS actif sur le bouton */
.gps-nearby-btn.geo-method-active{background:linear-gradient(135deg,rgba(0,255,170,0.12),rgba(0,229,255,0.08));border-color:var(--green);color:var(--green);}
/* Badge méthode */
.gnb-method-badge{font-size:0.58rem;font-weight:700;padding:0.1rem 0.4rem;border-radius:6px;background:rgba(0,255,170,0.15);color:var(--green);border:1px solid rgba(0,255,170,0.3);margin-left:0.3rem;vertical-align:middle;}
/* Badge distance sur les cartes */
.dist-badge{display:inline-flex;align-items:center;gap:0.2rem;background:rgba(0,229,255,0.08);border:1px solid rgba(0,229,255,0.2);color:var(--cyan);font-size:0.55rem;font-weight:500;padding:0.06rem 0.3rem;border-radius:5px;margin-left:0.3rem;vertical-align:middle;text-transform:lowercase;opacity:0.85;}
.dist-badge.dist-close{background:rgba(0,255,170,0.08);border-color:rgba(0,255,170,0.2);color:var(--green);}
.dist-badge.dist-far{background:rgba(255,215,0,0.08);border-color:rgba(255,215,0,0.2);color:var(--amber);}

/* Modal GPS détails */
.gps-detail-modal .modal-title{color:var(--cyan);}
.gps-stat-grid{display:grid;grid-template-columns:1fr 1fr;gap:0.7rem;margin-bottom:1rem;}
.gps-stat-box{background:var(--surface2);border:1px solid rgba(255,255,255,0.06);border-radius:12px;padding:0.85rem;text-align:center;}
.gps-stat-val{font-family:'Syne',sans-serif;font-weight:800;font-size:1.2rem;color:var(--cyan);}
.gps-stat-lbl{font-size:0.62rem;color:var(--muted);margin-top:0.15rem;}
.gps-permission-banner{background:rgba(255,68,102,0.06);border:1px solid rgba(255,68,102,0.2);border-radius:12px;padding:0.9rem;margin-bottom:0.8rem;font-size:0.78rem;color:var(--muted);text-align:center;display:none;}
.gps-permission-banner.show{display:block;}
.gps-permission-banner strong{color:var(--red);display:block;margin-bottom:0.3rem;}
.gps-watch-btn{width:100%;padding:0.6rem;border-radius:10px;border:1px solid rgba(0,229,255,0.3);background:rgba(0,229,255,0.07);color:var(--cyan);font-family:'Syne',sans-serif;font-weight:700;font-size:0.82rem;cursor:pointer;transition:all 0.2s;margin-bottom:0.5rem;}
.gps-watch-btn.watching{background:rgba(0,255,170,0.1);border-color:rgba(0,255,170,0.3);color:var(--green);}
.gps-refresh-btn{width:100%;padding:0.55rem;border-radius:10px;border:1px solid rgba(255,255,255,0.1);background:rgba(255,255,255,0.04);color:var(--muted);font-family:'DM Sans',sans-serif;font-weight:600;font-size:0.78rem;cursor:pointer;transition:all 0.2s;}
.gps-refresh-btn:active{opacity:0.7;}


/* CATEGORY HEADERS */
.cat-section{margin-bottom:1.4rem;animation:fadeUp 0.4s ease both;}
.cat-header{display:flex;align-items:center;gap:0.6rem;margin-bottom:0.7rem;padding:0.55rem 0.8rem;border-radius:12px;background:rgba(255,255,255,0.03);border:1px solid rgba(255,255,255,0.06);}
.cat-icon{font-size:1.2rem;}
.cat-name{font-family:'Syne',sans-serif;font-weight:800;font-size:0.88rem;color:var(--text);}
.cat-count{font-size:0.68rem;margin-left:auto;background:rgba(255,45,155,0.1);border:1px solid rgba(255,45,155,0.2);padding:0.12rem 0.45rem;border-radius:100px;color:var(--pink);}
/* ── Grille catégories accordion (vue groupe) ── */
.cat-grid-wrap{display:grid;grid-template-columns:repeat(3,1fr);gap:0.55rem;margin-bottom:0.5rem;}
.cat-cell{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:0.28rem;padding:0.65rem 0.3rem 0.55rem;border-radius:14px;cursor:pointer;user-select:none;background:rgba(255,255,255,0.04);border:1px solid rgba(255,255,255,0.08);transition:background 0.18s,border-color 0.18s,transform 0.15s;-webkit-tap-highlight-color:transparent;}
.cat-cell:active{transform:scale(0.95);}
.cat-cell.open{background:rgba(255,45,155,0.10);border-color:rgba(255,45,155,0.45);box-shadow:0 0 0 2px rgba(255,45,155,0.25),0 4px 18px rgba(255,45,155,0.15);}
.cat-cell-icon{font-size:1.45rem;line-height:1;}
.cat-cell-name{font-family:'Syne',sans-serif;font-weight:800;font-size:0.62rem;color:var(--text);text-align:center;line-height:1.25;word-break:break-word;}
.cat-cell-count{font-size:0.6rem;font-weight:700;background:rgba(255,45,155,0.12);border:1px solid rgba(255,45,155,0.25);color:var(--pink);padding:0.08rem 0.38rem;border-radius:100px;}
.cat-cell-arrow{position:absolute;bottom:4px;right:6px;font-size:0.6rem;color:rgba(255,255,255,0.25);transition:transform 0.22s,color 0.18s;}
.cat-cell.open .cat-cell-arrow{transform:rotate(180deg);color:var(--pink);}
.cat-ribbon{overflow:hidden;max-height:0;transition:max-height 0.38s cubic-bezier(0.4,0,0.2,1);border-radius:0 0 14px 14px;margin-bottom:0;}
.cat-ribbon.open{max-height:99999px;}
.cat-ribbon-inner{background:rgba(255,255,255,0.015);border:1px solid rgba(255,255,255,0.07);border-top:none;border-radius:0 0 14px 14px;padding:0.3rem 0;margin-bottom:0.9rem;}

/* CARDS */
.cards-list{display:flex;flex-direction:column;gap:0.9rem;}
.card{background:var(--surface);border:1px solid rgba(255,45,155,0.12);border-radius:18px;overflow:hidden;animation:fadeUp 0.4s ease both;transition:border-color 0.3s,box-shadow 0.3s;width:100%;box-sizing:border-box;contain:layout style;}
.card:hover{border-color:rgba(255,45,155,0.3);box-shadow:0 4px 20px rgba(255,45,155,0.1);}

/* ══════════════════════════════════════════════════════════════
   ══ BORDURES COLORÉES FICHES PUBLIQUES — PAR TYPE            ══
   ══════════════════════════════════════════════════════════════ */

/* Bar — Rose Magenta Vif */
.card.type-bar{border:2px solid #ff1493;box-shadow:0 0 12px rgba(255,20,147,0.3),inset 0 0 10px rgba(255,20,147,0.06);}
.card.type-bar:hover{border-color:#ff3cb0;box-shadow:0 0 22px rgba(255,20,147,0.5),inset 0 0 12px rgba(255,20,147,0.1);}

/* Restaurant — Doré Orange Vif */
.card.type-restaurant{border:2px solid #ff9500;box-shadow:0 0 12px rgba(255,149,0,0.3),inset 0 0 10px rgba(255,149,0,0.06);}
.card.type-restaurant:hover{border-color:#ffb000;box-shadow:0 0 22px rgba(255,149,0,0.5),inset 0 0 12px rgba(255,149,0,0.1);}

/* Discothèque — Rose Électrique Néon */
.card.type-discotheque{border:2px solid #ff006e;box-shadow:0 0 14px rgba(255,0,110,0.35),inset 0 0 10px rgba(255,0,110,0.07);}
.card.type-discotheque:hover{border-color:#ff2e8f;box-shadow:0 0 26px rgba(255,0,110,0.55),inset 0 0 14px rgba(255,0,110,0.12);}


/* Snack — Vert Lime Vif */
.card.type-snack{border:2px solid #aaff00;box-shadow:0 0 12px rgba(170,255,0,0.28),inset 0 0 10px rgba(170,255,0,0.06);}
.card.type-snack:hover{border-color:#c4ff33;box-shadow:0 0 22px rgba(170,255,0,0.45),inset 0 0 12px rgba(170,255,0,0.1);}

/* Bar Terrasse / Rooftop — Turquoise Vif */
.card.type-terrasse{border:2px solid #00ffcc;box-shadow:0 0 12px rgba(0,255,204,0.28),inset 0 0 10px rgba(0,255,204,0.06);}
.card.type-terrasse:hover{border-color:#33ffdd;box-shadow:0 0 22px rgba(0,255,204,0.45),inset 0 0 12px rgba(0,255,204,0.1);}

/* Salle de spectacle — Violet / Pourpre */
.card.type-salle{border:2px solid #cc44ff;box-shadow:0 0 12px rgba(204,68,255,0.28),inset 0 0 10px rgba(204,68,255,0.06);}
.card.type-salle:hover{border-color:#dd66ff;box-shadow:0 0 22px rgba(204,68,255,0.45),inset 0 0 12px rgba(204,68,255,0.1);}

/* Stade — Vert Émeraude */
.card.type-stade{border:2px solid #00ff88;box-shadow:0 0 12px rgba(0,255,136,0.28),inset 0 0 10px rgba(0,255,136,0.06);}
.card.type-stade:hover{border-color:#33ff99;box-shadow:0 0 22px rgba(0,255,136,0.45),inset 0 0 12px rgba(0,255,136,0.1);}

/* Tourisme — Ambre / Or */
.card.type-tourisme{border:2px solid #ffcc00;box-shadow:0 0 12px rgba(255,204,0,0.28),inset 0 0 10px rgba(255,204,0,0.06);}
.card.type-tourisme:hover{border-color:#ffd633;box-shadow:0 0 22px rgba(255,204,0,0.45),inset 0 0 12px rgba(255,204,0,0.1);}



/* ══ AVATAR SYSTÈME COMPLET ══ */
/* ── Ring profil (overlay Mon Profil) ── */
.user-avatar-ring{
  width:96px;height:96px;border-radius:50%;
  border:3px solid transparent;
  background:linear-gradient(var(--bg),var(--bg)) padding-box,
             linear-gradient(135deg,var(--pink),var(--purple),var(--cyan)) border-box;
  padding:4px;margin:0 auto 0.7rem;display:block;cursor:pointer;position:relative;
  transition:transform 0.2s,box-shadow 0.2s;
}
.user-avatar-ring:hover{transform:scale(1.05);box-shadow:0 0 24px rgba(255,45,155,0.45);}
.user-avatar-ring img{width:100%;height:100%;border-radius:50%;object-fit:cover;display:block;}
.user-avatar-initiale{
  width:84px;height:84px;border-radius:50%;
  background:linear-gradient(135deg,var(--pink),var(--purple));
  display:flex;align-items:center;justify-content:center;
  font-family:Syne,sans-serif;font-weight:800;font-size:2rem;color:#fff;
  user-select:none;
}
/* Overlay caméra au survol/tap */
.avatar-cam-overlay{
  position:absolute;inset:0;border-radius:50%;
  background:rgba(0,0,0,0.52);
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  gap:0.12rem;opacity:0;transition:opacity 0.2s;pointer-events:none;
}
.user-avatar-ring:hover .avatar-cam-overlay,
.user-avatar-ring:active .avatar-cam-overlay{ opacity:1; }
.avatar-cam-overlay span{ font-size:1.4rem;line-height:1; }
.avatar-cam-overlay small{ font-size:0.5rem;color:#fff;font-weight:800;letter-spacing:0.05em;text-transform:uppercase; }
/* Badge crayon coin bas-droit */
.user-avatar-edit-btn{
  position:absolute;bottom:2px;right:2px;
  width:26px;height:26px;border-radius:50%;
  background:linear-gradient(135deg,var(--pink),var(--purple));
  border:2.5px solid var(--bg);
  display:flex;align-items:center;justify-content:center;
  font-size:0.68rem;cursor:pointer;
  box-shadow:0 2px 10px rgba(255,45,155,0.55);
  transition:transform 0.15s,box-shadow 0.15s;
}
.user-avatar-edit-btn:hover{transform:scale(1.1);box-shadow:0 4px 16px rgba(255,45,155,0.7);}
.user-avatar-edit-btn:active{transform:scale(0.88);}

/* profil visitable */
.vp-avatar{width:72px;height:72px;border-radius:50%;border:3px solid var(--pink);padding:3px;margin:0 auto 0.5rem;display:block;}
.vp-avatar img{width:100%;height:100%;border-radius:50%;object-fit:cover;display:block;}
.vp-avatar-init{width:66px;height:66px;border-radius:50%;background:linear-gradient(135deg,var(--pink),var(--purple));display:flex;align-items:center;justify-content:center;font-family:Syne,sans-serif;font-weight:800;font-size:1.6rem;color:#fff;}

/* ════════════════════════════════════════════════════════════════
   SYSTÈME PHOTOS DE PROFIL UTILISATEUR
   • Photo de profil (avatar)
   • Photo d'identité (CNI/Passeport) pour paiements
   ════════════════════════════════════════════════════════════════ */

.user-profile-photos {
  display: flex;
  flex-direction: column;
  gap: 1.2rem;
  padding: 1rem;
  background: rgba(255, 45, 155, 0.04);
  border-radius: 12px;
  margin: 1rem 0;
}

.photo-section {
  display: flex;
  flex-direction: column;
  gap: 0.6rem;
}

.photo-section-title {
  font-size: 0.75rem;
  font-weight: 800;
  color: var(--cyan);
  text-transform: uppercase;
  letter-spacing: 0.1em;
}

.photo-upload-box {
  position: relative;
  width: 140px;
  height: 140px;
  border: 2px dashed rgba(255, 45, 155, 0.3);
  border-radius: 12px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: rgba(255, 45, 155, 0.03);
  cursor: pointer;
  transition: all 0.3s;
  overflow: hidden;
}

.photo-upload-box:hover {
  border-color: rgba(255, 45, 155, 0.6);
  background: rgba(255, 45, 155, 0.08);
  transform: scale(1.03);
}

.photo-upload-box img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  position: absolute;
}

.photo-upload-placeholder {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 0.3rem;
  font-size: 2.5rem;
  opacity: 0.5;
}

.photo-upload-placeholder small {
  font-size: 0.6rem;
  color: var(--muted);
  text-align: center;
}

.photo-cni-box {
  width: 200px;
  height: 125px;
  border: 2px dashed rgba(0, 229, 255, 0.3);
  border-radius: 12px;
  background: rgba(0, 229, 255, 0.03);
  overflow: hidden;
  position: relative;
  cursor: pointer;
  transition: all 0.3s;
}

.photo-cni-box:hover {
  border-color: rgba(0, 229, 255, 0.6);
  background: rgba(0, 229, 255, 0.08);
}

.photo-cni-box img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.photo-cni-placeholder {
  width: 100%;
  height: 100%;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 0.2rem;
  font-size: 2rem;
  opacity: 0.4;
}

.photo-cni-placeholder small {
  font-size: 0.5rem;
  color: var(--muted);
}

.identity-verified-badge {
  display: inline-flex;
  align-items: center;
  gap: 0.3rem;
  font-size: 0.65rem;
  font-weight: 700;
  color: #fff;
  background: rgba(0, 255, 170, 0.9);
  padding: 0.2rem 0.5rem;
  border-radius: 6px;
  margin-top: 0.5rem;
}

.identity-pending-badge {
  display: inline-flex;
  align-items: center;
  gap: 0.3rem;
  font-size: 0.65rem;
  font-weight: 700;
  color: #fff;
  background: rgba(255, 184, 0, 0.8);
  padding: 0.2rem 0.5rem;
  border-radius: 6px;
  margin-top: 0.5rem;
}

.identity-rejected-badge {
  display: inline-flex;
  align-items: center;
  gap: 0.3rem;
  font-size: 0.65rem;
  font-weight: 700;
  color: #fff;
  background: rgba(255, 68, 102, 0.8);
  padding: 0.2rem 0.5rem;
  border-radius: 6px;
  margin-top: 0.5rem;
}

/* ── Header greeting avec mini-avatar photo ── */
.user-greeting{
  display:none;align-items:center;gap:0.3rem;
  background:rgba(255,45,155,0.08);
  border:1.5px solid rgba(255,45,155,0.3);
  padding:0.15rem 0.5rem 0.15rem 0.15rem;
  border-radius:24px;font-size:0.6rem;font-weight:700;color:var(--pink);
  white-space:nowrap;max-width:100px;overflow:hidden;text-overflow:ellipsis;
  flex-shrink:1;cursor:pointer;transition:border-color 0.2s,background 0.2s;
  -webkit-tap-highlight-color:transparent;
}
.user-greeting.show{display:flex;}
.user-greeting:hover{border-color:var(--pink);background:rgba(255,45,155,0.14);}
.user-greeting:active{transform:scale(0.94);}
/* Miniature avatar dans header */
#headerAvatarThumb{
  width:22px;height:22px;border-radius:50%;flex-shrink:0;overflow:hidden;
  background:linear-gradient(135deg,var(--pink),var(--purple));
  display:flex;align-items:center;justify-content:center;
  font-size:0.62rem;font-weight:800;color:#fff;
  border:1.5px solid rgba(255,45,155,0.5);
}
#headerAvatarThumb img{width:100%;height:100%;object-fit:cover;border-radius:50%;display:block;}

/* ── Zone drag-drop avatar ── */
.avatar-drop-zone{
  border:2px dashed rgba(255,45,155,0.3);border-radius:14px;
  padding:0.6rem 0.5rem;text-align:center;cursor:pointer;
  transition:border-color 0.2s,background 0.2s;margin-top:0.4rem;
  font-size:0.68rem;color:var(--muted);
}
.avatar-drop-zone:hover,.avatar-drop-zone.drag-over{
  border-color:var(--pink);background:rgba(255,45,155,0.06);color:var(--pink);
}
/* ── Progress upload ── */
#avatarUploadStatus{
  display:flex;align-items:center;justify-content:center;gap:0.4rem;
  min-height:1.4em;font-size:0.72rem;font-weight:700;
  transition:color 0.2s;text-align:center;
}

/* ── Comment avatars avec photo ── */
.pub-comment-avatar{
  width:30px;height:30px;border-radius:50%;
  background:linear-gradient(135deg,var(--cyan),var(--purple));
  display:flex;align-items:center;justify-content:center;
  font-size:0.65rem;font-weight:800;color:#fff;flex-shrink:0;
  overflow:hidden;
}
.pub-comment-avatar img{width:100%;height:100%;object-fit:cover;border-radius:50%;display:block;}
.pub-cmt-reply-avatar{
  width:22px;height:22px;border-radius:50%;
  display:flex;align-items:center;justify-content:center;
  font-size:0.55rem;font-weight:800;color:#fff;flex-shrink:0;margin-top:0.1rem;
  background:linear-gradient(135deg,var(--cyan),var(--green));overflow:hidden;
}
.pub-cmt-reply-avatar img{width:100%;height:100%;object-fit:cover;border-radius:50%;display:block;}
/* SLOTS MEDIA (vidéo + photo) */
.card-photos{display:flex;flex-direction:row;gap:2px;background:var(--surface2);width:100%;overflow:hidden;}
.media-slot{display:flex;flex-direction:column;background:var(--surface2);flex:1;min-width:0;}
.media-slot .video-wrap{height:120px;}
.media-slot .photo-wrap{height:120px;}
.media-action-bar{display:flex;gap:2px;padding:2px;}
.mab-btn{flex:1;padding:0.28rem 0.2rem;font-size:0.62rem;font-weight:700;border:none;border-radius:5px;cursor:pointer;font-family:'DM Sans',sans-serif;white-space:nowrap;}
.mab-upload{background:rgba(0,229,255,0.13);color:var(--cyan);border:1px solid rgba(0,229,255,0.25);}
.mab-del{background:rgba(255,68,102,0.13);color:var(--red);border:1px solid rgba(255,68,102,0.25);}
.mab-btn:active{opacity:0.7;transform:scale(0.97);}
.photo-wrap{position:relative;overflow:hidden;cursor:pointer;}
.photo-wrap img{width:100%;height:100%;object-fit:cover;transition:transform 0.3s;}
.photo-label{position:absolute;bottom:3px;left:4px;font-size:0.56rem;font-weight:700;color:rgba(255,255,255,0.9);background:rgba(0,0,0,0.55);padding:0.12rem 0.35rem;border-radius:4px;text-transform:uppercase;letter-spacing:0.05em;z-index:2;}
.no-photo{background:var(--surface2);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:0.2rem;}
.no-photo span{font-size:1.5rem;opacity:0.4;}
.no-photo small{font-size:0.6rem;color:var(--muted);}
/* VIDEO */
.video-wrap{position:relative;overflow:hidden;cursor:pointer;background:#000;}
.video-wrap video{width:100%;height:100%;object-fit:cover;display:block;}
.video-play-icon{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background:rgba(0,0,0,0.35);font-size:1.6rem;transition:opacity 0.2s;pointer-events:none;z-index:3;}
.video-wrap.playing .video-play-icon{opacity:0;}
.video-play-btn{position:absolute;inset:0;z-index:4;background:transparent;border:none;cursor:pointer;width:100%;height:100%;}
.video-label{position:absolute;bottom:3px;left:4px;font-size:0.56rem;font-weight:700;color:rgba(255,255,255,0.9);background:rgba(0,0,0,0.6);padding:0.12rem 0.35rem;border-radius:4px;text-transform:uppercase;letter-spacing:0.04em;z-index:2;}
.soiree-photos{padding:0.6rem 0.9rem 0.4rem;border-top:1px solid rgba(255,45,155,0.1);}
.soiree-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:0.5rem;}
.soiree-title-txt{font-size:0.65rem;color:var(--pink);font-weight:700;text-transform:uppercase;letter-spacing:0.08em;}
.soiree-timer{font-size:0.62rem;color:var(--muted);}
.soiree-grid{display:flex;gap:0.4rem;overflow-x:auto;scrollbar-width:none;}
.soiree-grid::-webkit-scrollbar{display:none;}
.soiree-img{flex-shrink:0;width:65px;height:65px;border-radius:8px;object-fit:cover;border:1px solid rgba(255,45,155,0.2);cursor:pointer;}
.add-soiree-btn{flex-shrink:0;width:65px;height:65px;border-radius:8px;border:2px dashed rgba(255,45,155,0.3);background:rgba(255,45,155,0.05);color:var(--pink);font-size:1.5rem;cursor:pointer;display:flex;align-items:center;justify-content:center;}
.card-top{padding:0.8rem 0.9rem 0.6rem;width:100%;box-sizing:border-box;}
.card-row1{display:flex;justify-content:space-between;align-items:flex-start;width:100%;gap:0.3rem;overflow:hidden;}
.card-num{font-size:0.58rem;font-family:'Syne',sans-serif;font-weight:900;display:inline-block;margin-bottom:0.2rem;min-width:28px;text-align:center;letter-spacing:0.01em;transition:all 0.2s;}
.card-num.rank-1{font-size:0.68rem;background:linear-gradient(160deg,#ffe566 20%,#ffb300 55%,#ff8c00 100%);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;filter:drop-shadow(0 0 4px rgba(255,200,0,0.55));}
.card-num.rank-2{font-size:0.64rem;background:linear-gradient(160deg,#e8e8f0 20%,#b0b8cc 55%,#8898aa 100%);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;filter:drop-shadow(0 0 3px rgba(180,190,210,0.45));}
.card-num.rank-3{font-size:0.62rem;background:linear-gradient(160deg,#ffb07a 20%,#cc7840 55%,#a05020 100%);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;filter:drop-shadow(0 0 3px rgba(200,120,60,0.4));}
.card-num.rank-other{font-size:0.55rem;color:rgba(176,136,192,0.55);}
.card-name{font-family:'Syne',sans-serif;font-weight:800;font-size:1rem;margin-top:0.15rem;line-height:1.2;color:var(--text);}
.cat-badge{font-size:0.64rem;font-weight:700;padding:0.15rem 0.5rem;border-radius:6px;margin-top:0.25rem;display:inline-block;}
.cb-bar{background:rgba(255,45,155,0.12);color:var(--pink);border:1px solid rgba(255,45,155,0.25);}
.cb-club{background:rgba(204,68,255,0.12);color:var(--purple);border:1px solid rgba(204,68,255,0.25);}
.cb-resto{background:rgba(255,215,0,0.12);color:var(--amber);border:1px solid rgba(255,215,0,0.25);}
.cb-roof{background:rgba(0,229,255,0.12);color:var(--cyan);border:1px solid rgba(0,229,255,0.25);}
.cb-snack{background:rgba(0,255,170,0.12);color:var(--green);border:1px solid rgba(0,255,170,0.25);}

/* ══ CONTACT BUTTONS ══ */
.card-contact-row{display:flex;gap:0.4rem;padding:0.55rem 0.9rem;flex-wrap:wrap;border-top:1px solid rgba(255,255,255,0.05);align-items:center;width:100%;box-sizing:border-box;overflow:hidden;}
.cc-btn{display:inline-flex;align-items:center;gap:0.3rem;padding:0.38rem 0.7rem;border-radius:20px;font-size:0.72rem;font-weight:700;text-decoration:none;cursor:pointer;border:none;font-family:'DM Sans',sans-serif;transition:all 0.18s;flex-shrink:0;max-width:calc(50% - 0.2rem);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.cc-btn:active{opacity:0.75;transform:scale(0.96);}
.cc-btn-wa{background:rgba(37,211,102,0.12);border:1px solid rgba(37,211,102,0.3);color:#25d366;}
.cc-btn-tel{background:rgba(0,229,255,0.1);border:1px solid rgba(0,229,255,0.3);color:var(--cyan);}
.cc-btn-mail{background:rgba(255,215,0,0.1);border:1px solid rgba(255,215,0,0.3);color:var(--amber);}
.status-pill{display:inline-flex;align-items:center;padding:0.28rem 0.6rem;border-radius:100px;font-size:0.62rem;font-weight:700;white-space:nowrap;flex-shrink:0;margin-left:0.5rem;max-width:90px;overflow:hidden;text-overflow:ellipsis;}
.s-rouge{background:rgba(255,68,102,0.15);color:#ff6680;border:1px solid rgba(255,68,102,0.3);}
.s-vert{background:rgba(0,255,170,0.12);color:#00ffaa;border:1px solid rgba(0,255,170,0.25);}
.s-jaune{background:rgba(255,215,0,0.12);color:#ffd700;border:1px solid rgba(255,215,0,0.25);}
.s-noir{background:rgba(255,255,255,0.06);color:#aaa;border:1px solid rgba(255,255,255,0.1);}
.card-ambiance{margin-top:0.5rem;display:flex;justify-content:space-between;align-items:center;}
.card-ambiance .lbl{font-size:0.72rem;color:var(--muted);}
.card-ambiance .val{font-size:0.82rem;font-weight:600;color:var(--pink);}
.affluence-bar{margin-top:0.5rem;}
.affluence-label{font-size:0.68rem;color:var(--muted);margin-bottom:0.2rem;display:flex;justify-content:space-between;}
.affluence-track{background:rgba(255,255,255,0.06);border-radius:100px;height:6px;overflow:hidden;}
.affluence-fill{height:100%;border-radius:100px;background:linear-gradient(90deg,var(--green),var(--amber),var(--red));transition:width 0.5s ease;}
.info-line{font-size:0.75rem;color:var(--muted);display:flex;align-items:center;gap:0.4rem;margin-top:0.4rem;}
.info-line span:last-child{color:var(--text);}
.maps-btn{display:inline-flex;align-items:center;gap:0.35rem;margin-top:0.5rem;background:rgba(0,229,255,0.12);border:1px solid rgba(0,229,255,0.35);color:var(--cyan);font-size:0.75rem;font-weight:700;padding:0.38rem 0.85rem;border-radius:10px;text-decoration:none;transition:all 0.2s;letter-spacing:0.01em;-webkit-tap-highlight-color:transparent;}
.maps-btn:hover{background:rgba(0,229,255,0.22);border-color:rgba(0,229,255,0.6);box-shadow:0 0 10px rgba(0,229,255,0.2);}
.maps-btn:active{transform:scale(0.95);opacity:0.8;}
.card-bottom{display:flex;align-items:center;justify-content:space-between;padding:0.6rem 0.9rem;border-top:1px solid rgba(255,45,155,0.1);}
.stars{display:flex;gap:1px;}
.star{font-size:0.7rem;}.star.on{color:var(--amber);}.star.off{color:rgba(255,255,255,0.1);}
.note{font-family:'Syne',sans-serif;font-weight:800;font-size:0.88rem;color:var(--amber);margin-left:0.3rem;}
.avis{font-size:0.68rem;color:var(--muted);margin-left:0.2rem;}
.pay-tag{font-size:0.65rem;font-weight:700;padding:0.22rem 0.55rem;border-radius:20px;}
.pay-ok{background:rgba(0,255,170,0.1);color:var(--green);border:1px solid rgba(0,255,170,0.25);}
.pay-wait{background:rgba(255,215,0,0.1);color:var(--amber);border:1px solid rgba(255,215,0,0.2);}
.edit-panel{display:none;background:rgba(255,215,0,0.04);border-top:1px solid rgba(255,215,0,0.15);padding:0.75rem 0.9rem;}
.edit-panel.show{display:block;}
.edit-title{font-size:0.68rem;color:var(--amber);font-weight:700;text-transform:uppercase;letter-spacing:0.08em;margin-bottom:0.6rem;}
.edit-row{margin-bottom:0.7rem;}
.edit-lbl{font-size:0.72rem;color:var(--muted);margin-bottom:0.3rem;}
.edit-opts{display:flex;flex-wrap:wrap;gap:0.3rem;}
.opt-btn{padding:0.3rem 0.65rem;border-radius:8px;font-size:0.7rem;font-weight:600;border:1px solid rgba(255,255,255,0.1);background:rgba(255,255,255,0.04);color:var(--muted);cursor:pointer;font-family:'DM Sans',sans-serif;white-space:nowrap;}
.opt-btn:active{transform:scale(0.96);}
.opt-btn.sel-rouge{background:rgba(255,68,102,0.15);border-color:rgba(255,68,102,0.4);color:#ff6680;}
.opt-btn.sel-vert{background:rgba(0,255,170,0.15);border-color:rgba(0,255,170,0.4);color:var(--green);}
.opt-btn.sel-jaune{background:rgba(255,215,0,0.15);border-color:rgba(255,215,0,0.4);color:var(--amber);}
.opt-btn.sel-noir{background:rgba(255,255,255,0.08);border-color:rgba(255,255,255,0.2);color:#aaa;}
.opt-btn.sel-amb{background:rgba(255,45,155,0.15);border-color:rgba(255,45,155,0.4);color:var(--pink);}
.opt-btn.sel-pay{background:rgba(0,255,170,0.12);border-color:rgba(0,255,170,0.3);color:var(--green);}
.opt-btn.sel-paywait{background:rgba(255,215,0,0.12);border-color:rgba(255,215,0,0.3);color:var(--amber);}
.affluence-input{width:100%;background:var(--surface2);border:1px solid rgba(255,215,0,0.3);border-radius:8px;color:var(--text);font-family:'DM Sans',sans-serif;font-size:0.85rem;padding:0.5rem 0.7rem;outline:none;}

/* PAYMENTS */
.inscription-box{background:linear-gradient(135deg,rgba(255,215,0,0.08),rgba(0,255,170,0.05));border:1px solid rgba(255,215,0,0.2);border-radius:16px;padding:1.2rem;margin-bottom:1rem;width:100%;box-sizing:border-box;}
.ib-title{font-family:'Syne',sans-serif;font-size:0.72rem;font-weight:800;color:var(--amber);text-transform:uppercase;letter-spacing:0.1em;margin-bottom:0.8rem;}
.ib-price{font-family:'Syne',sans-serif;font-size:2rem;font-weight:800;color:var(--amber);}
.ib-price span{font-size:0.9rem;color:var(--muted);}
.ib-methods{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:0.6rem;margin-top:0.8rem;width:100%;box-sizing:border-box;}
.ib-method{background:var(--surface);border:1px solid rgba(255,255,255,0.08);border-radius:12px;padding:0.8rem;text-align:center;}
.im-icon{font-size:1.3rem;margin-bottom:0.3rem;}
.im-name{font-size:0.7rem;font-weight:700;font-family:'Syne',sans-serif;}
.im-num{font-size:0.76rem;color:var(--cyan);font-weight:600;margin-top:0.2rem;}
.pay-list{display:flex;flex-direction:column;gap:0.75rem;}
.pay-item{background:var(--surface);border:1px solid rgba(255,255,255,0.06);border-radius:14px;padding:1rem;width:100%;box-sizing:border-box;}
.pay-item-top{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:0.5rem;}
.pay-id{font-size:0.65rem;color:var(--muted);}
.pay-name{font-family:'Syne',sans-serif;font-weight:700;font-size:0.95rem;}
.pay-amount{font-family:'Syne',sans-serif;font-weight:800;font-size:1.1rem;color:var(--amber);white-space:nowrap;margin-left:0.5rem;}
.pay-chips{display:flex;gap:0.4rem;flex-wrap:wrap;margin-top:0.4rem;}
.pchip{font-size:0.7rem;padding:0.2rem 0.5rem;border-radius:6px;background:rgba(255,255,255,0.04);color:var(--muted);border:1px solid rgba(255,255,255,0.08);}
.pay-total-bar{background:rgba(0,255,170,0.06);border:1px solid rgba(0,255,170,0.2);border-radius:12px;padding:1rem;margin-top:1rem;text-align:center;}
.t-lbl{font-size:0.72rem;color:var(--muted);text-transform:uppercase;letter-spacing:0.08em;}
.t-val{font-family:'Syne',sans-serif;font-size:1.8rem;font-weight:800;color:var(--green);}

/* CONTACTS PAGE */
.cp-card{background:var(--surface);border:1px solid rgba(255,45,155,0.15);border-radius:16px;overflow:hidden;margin-bottom:1rem;width:100%;box-sizing:border-box;}
.cp-header{padding:1.1rem;background:linear-gradient(135deg,rgba(255,45,155,0.1),rgba(0,229,255,0.07));border-bottom:1px solid rgba(255,45,155,0.15);display:flex;align-items:center;gap:0.8rem;}
.cp-title{font-family:'Syne',sans-serif;font-weight:800;font-size:1rem;color:var(--pink);}
.cp-sub{font-size:0.75rem;color:var(--muted);margin-top:0.1rem;}
.cp-body{padding:1rem;}
.cp-row{display:flex;align-items:center;gap:0.75rem;padding:0.6rem 0;border-bottom:1px solid rgba(255,255,255,0.05);}
.cp-row:last-child{border-bottom:none;padding-bottom:0;}
.cp-row-icon{font-size:1.1rem;width:30px;text-align:center;flex-shrink:0;}
.cp-row-label{font-size:0.63rem;color:var(--muted);text-transform:uppercase;letter-spacing:0.07em;}
.cp-row-value{font-size:0.85rem;font-weight:600;margin-top:0.1rem;}
.cp-row-value a{color:var(--cyan);text-decoration:none;}
.cp-action{display:inline-flex;align-items:center;gap:0.3rem;margin-top:0.7rem;background:rgba(0,229,255,0.08);border:1px solid rgba(0,229,255,0.2);color:var(--cyan);font-size:0.75rem;font-weight:600;padding:0.4rem 0.8rem;border-radius:8px;text-decoration:none;}

/* ══ SECTION COMMENTAIRES ══ */
.comments-section{border-top:1px solid rgba(255,45,155,0.12);padding:0.8rem 0.9rem 0.5rem;}
.comments-toggle-btn{width:100%;display:flex;align-items:center;justify-content:space-between;background:rgba(255,45,155,0.05);border:1px solid rgba(255,45,155,0.15);border-radius:10px;padding:0.55rem 0.85rem;cursor:pointer;font-family:'DM Sans',sans-serif;font-size:0.78rem;font-weight:700;color:var(--pink);transition:all 0.2s;}
.comments-toggle-btn:active{opacity:0.8;}
.comments-toggle-btn .ct-count{font-size:0.65rem;background:rgba(255,45,155,0.15);border-radius:10px;padding:0.1rem 0.45rem;margin-left:0.4rem;color:var(--pink);}
.comments-body{margin-top:0.7rem;display:none;}
.comments-body.open{display:block;}
.comment-item{display:flex;gap:0.6rem;padding:0.6rem 0;border-bottom:1px solid rgba(255,255,255,0.05);}
.comment-item:last-child{border-bottom:none;}
.comment-avatar{width:30px;height:30px;border-radius:50%;background:linear-gradient(135deg,var(--pink),var(--purple));display:flex;align-items:center;justify-content:center;font-size:0.75rem;font-weight:800;color:#fff;flex-shrink:0;text-transform:uppercase;}
.comment-content{flex:1;min-width:0;}
.comment-header{display:flex;align-items:baseline;gap:0.4rem;flex-wrap:wrap;margin-bottom:0.2rem;}
.comment-author{font-size:0.76rem;font-weight:700;color:var(--text);}
.comment-author.is-owner{color:var(--amber);}
.comment-author.is-admin-tag{color:var(--pink);}
.comment-badge{font-size:0.55rem;font-weight:800;padding:0.08rem 0.35rem;border-radius:4px;text-transform:uppercase;letter-spacing:0.06em;}
.badge-owner{background:rgba(255,215,0,0.15);color:var(--amber);border:1px solid rgba(255,215,0,0.3);}
.badge-admin{background:rgba(255,45,155,0.15);color:var(--pink);border:1px solid rgba(255,45,155,0.3);}
.comment-time{font-size:0.62rem;color:rgba(255,255,255,0.3);margin-left:auto;}
.comment-text{font-size:0.8rem;color:var(--text);line-height:1.5;word-break:break-word;}
.comment-text.edited{font-style:italic;}
.comment-edited-tag{font-size:0.6rem;color:var(--muted);margin-left:0.3rem;}
.comment-reactions{display:flex;gap:0.35rem;margin-top:0.4rem;flex-wrap:wrap;align-items:center;}
.reaction-btn{background:rgba(255,255,255,0.04);border:1px solid rgba(255,255,255,0.08);border-radius:20px;padding:0.15rem 0.5rem;font-size:0.7rem;cursor:pointer;transition:all 0.2s;color:var(--muted);display:flex;align-items:center;gap:0.2rem;}
.reaction-btn:active{transform:scale(0.92);}
.reaction-btn.active-react{background:rgba(255,45,155,0.12);border-color:rgba(255,45,155,0.35);color:var(--pink);}
.comment-admin-btns{display:flex;gap:0.3rem;margin-left:auto;}
.cam-btn{background:none;border:none;cursor:pointer;font-size:0.72rem;padding:0.15rem 0.35rem;border-radius:6px;transition:all 0.2s;}
.cam-edit{color:var(--cyan);}
.cam-edit:hover{background:rgba(0,229,255,0.1);}
.cam-del{color:var(--red);}
.cam-del:hover{background:rgba(255,68,102,0.1);}
.comment-input-wrap{margin-top:0.7rem;background:rgba(255,255,255,0.03);border:1px solid rgba(255,45,155,0.15);border-radius:12px;padding:0.7rem;}
.comment-input-wrap textarea{width:100%;background:none;border:none;outline:none;color:var(--text);font-family:'DM Sans',sans-serif;font-size:0.82rem;resize:none;min-height:56px;line-height:1.5;}
.comment-input-wrap textarea::placeholder{color:var(--muted);}
.comment-input-footer{display:flex;align-items:center;justify-content:space-between;margin-top:0.4rem;}
.comment-char-count{font-size:0.65rem;color:var(--muted);}
.comment-emojis{display:flex;gap:0.2rem;}
.emoji-quick-btn{background:none;border:none;font-size:0.95rem;cursor:pointer;padding:0.1rem;border-radius:6px;transition:transform 0.15s;}
.emoji-quick-btn:active{transform:scale(0.85);}
.comment-send-btn{background:linear-gradient(135deg,var(--pink),var(--purple));border:none;color:#fff;font-family:'Syne',sans-serif;font-weight:800;font-size:0.75rem;padding:0.4rem 0.9rem;border-radius:20px;cursor:pointer;transition:opacity 0.2s;}
.comment-send-btn:active{opacity:0.8;}
.comment-send-btn:disabled{opacity:0.4;cursor:not-allowed;}
.comment-login-prompt{text-align:center;padding:0.8rem;font-size:0.78rem;color:var(--muted);}
.comment-login-prompt button{background:none;border:1px solid rgba(255,45,155,0.35);color:var(--pink);border-radius:20px;padding:0.3rem 0.8rem;font-size:0.75rem;font-weight:700;cursor:pointer;margin-top:0.4rem;font-family:'DM Sans',sans-serif;}
.comments-load-more{width:100%;background:none;border:1px solid rgba(255,255,255,0.07);color:var(--muted);font-size:0.72rem;padding:0.5rem;border-radius:8px;cursor:pointer;font-family:'DM Sans',sans-serif;margin-top:0.5rem;transition:all 0.2s;}
.comments-load-more:hover{border-color:rgba(255,45,155,0.3);color:var(--pink);}
.comment-edit-wrap{margin-top:0.4rem;}
.comment-edit-input{width:100%;background:var(--surface2);border:1px solid rgba(255,45,155,0.3);border-radius:8px;color:var(--text);font-family:'DM Sans',sans-serif;font-size:0.8rem;padding:0.5rem 0.7rem;outline:none;resize:none;min-height:50px;}
.comment-edit-actions{display:flex;gap:0.4rem;margin-top:0.4rem;}
.ced-btn{flex:1;padding:0.4rem;border-radius:8px;font-size:0.72rem;font-weight:700;cursor:pointer;font-family:'DM Sans',sans-serif;border:none;}
.ced-save{background:var(--pink);color:#000;}
.ced-cancel{background:rgba(255,255,255,0.07);color:var(--muted);}
.comments-empty{text-align:center;padding:1.2rem 0.5rem;color:var(--muted);font-size:0.78rem;}
.comments-empty span{display:block;font-size:1.8rem;margin-bottom:0.4rem;}

/* ══ RÉPONSES AUX COMMENTAIRES ══ */
.reply-btn{background:none;border:none;color:var(--muted);font-size:0.68rem;font-weight:700;cursor:pointer;padding:0.15rem 0.3rem;border-radius:5px;transition:color 0.15s;font-family:'DM Sans',sans-serif;}
.reply-btn:hover,.reply-btn:active{color:var(--pink);}
.replies-list{margin-top:0.5rem;padding-left:0.8rem;border-left:2px solid rgba(255,45,155,0.2);display:flex;flex-direction:column;gap:0.4rem;}
.reply-item{display:flex;gap:0.45rem;padding:0.4rem 0;}
.reply-avatar{width:24px;height:24px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:0.6rem;font-weight:800;color:#fff;flex-shrink:0;}
.reply-content{flex:1;min-width:0;}
.reply-author{font-size:0.72rem;font-weight:700;color:var(--text);}
.reply-text{font-size:0.76rem;color:var(--text);line-height:1.45;word-break:break-word;margin-top:0.1rem;}
.reply-time{font-size:0.6rem;color:rgba(255,255,255,0.3);margin-left:0.3rem;}
.reply-del-btn{background:none;border:none;color:rgba(255,68,102,0.5);font-size:0.68rem;cursor:pointer;padding:0.1rem 0.25rem;border-radius:4px;transition:color 0.15s;margin-left:auto;}
.reply-del-btn:hover{color:var(--red);}
.reply-input-wrap{margin-top:0.5rem;padding-left:0.8rem;border-left:2px solid rgba(255,45,155,0.3);display:none;}
.reply-input-wrap.open{display:block;}
.reply-input-row{display:flex;gap:0.4rem;align-items:flex-end;}
.reply-textarea{flex:1;background:rgba(255,255,255,0.04);border:1px solid rgba(255,45,155,0.2);border-radius:10px;color:var(--text);font-family:'DM Sans',sans-serif;font-size:0.78rem;padding:0.5rem 0.7rem;outline:none;resize:none;min-height:40px;line-height:1.4;}
.reply-textarea:focus{border-color:rgba(255,45,155,0.45);}
.reply-textarea::placeholder{color:var(--muted);}
.reply-send-btn{background:linear-gradient(135deg,var(--pink),var(--purple));border:none;color:#fff;font-family:'Syne',sans-serif;font-weight:800;font-size:0.7rem;padding:0.4rem 0.75rem;border-radius:10px;cursor:pointer;white-space:nowrap;flex-shrink:0;}
.reply-send-btn:disabled{opacity:0.4;cursor:not-allowed;}
.reply-cancel-btn{background:none;border:none;color:var(--muted);font-size:0.68rem;cursor:pointer;padding:0.2rem;margin-left:0.2rem;}

/* ══ PRÉSENCE & VOTES SYSTÈME ══ */
/* Bouton Je suis là — circulaire jaune */
.presence-btn{width:48px;height:48px;border-radius:50%;background:linear-gradient(135deg,#ffd700,#ffaa00);border:3px solid rgba(255,215,0,0.5);color:#000;font-size:1.1rem;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all 0.25s;box-shadow:0 0 14px rgba(255,215,0,0.45),0 2px 8px rgba(0,0,0,0.4);flex-shrink:0;position:relative;}
.presence-btn:active{transform:scale(0.88);}
.presence-btn.active-presence{background:linear-gradient(135deg,#00ffaa,#00e5ff);border-color:rgba(0,255,170,0.6);box-shadow:0 0 18px rgba(0,255,170,0.55),0 2px 8px rgba(0,0,0,0.4);}
.presence-count{position:absolute;top:-5px;right:-5px;background:var(--red);color:#fff;font-size:0.5rem;font-weight:800;min-width:16px;height:16px;border-radius:8px;display:flex;align-items:center;justify-content:center;border:2px solid var(--bg);padding:0 2px;}
.presence-count.green-count{background:var(--green);color:#000;}
/* Zone présence + votes sur la card */
.card-presence-row{display:flex;align-items:center;gap:0.6rem;padding:0.6rem 0.9rem;border-top:1px solid rgba(255,215,0,0.1);background:rgba(255,215,0,0.03);width:100%;box-sizing:border-box;flex-wrap:wrap;}
.presence-info{flex:1;min-width:0;}
.presence-label{font-size:0.62rem;color:var(--amber);font-weight:700;text-transform:uppercase;letter-spacing:0.07em;margin-bottom:0.1rem;}
.presence-live{font-size:0.72rem;color:var(--text);display:flex;align-items:center;gap:0.35rem;}
.presence-dot{width:7px;height:7px;border-radius:50%;background:var(--green);animation:pulse 1.5s infinite;flex-shrink:0;}
.presence-dot.orange{background:var(--amber);}
.presence-dot.red-dot{background:var(--red);}
/* Votes positif/négatif */
.vote-btns{display:flex;gap:0.4rem;align-items:center;flex-shrink:0;}
.vote-btn{display:flex;align-items:center;gap:0.25rem;padding:0.3rem 0.55rem;border-radius:20px;font-size:0.72rem;font-weight:700;cursor:pointer;transition:all 0.2s;border:1px solid;font-family:'DM Sans',sans-serif;white-space:nowrap;}
.vote-btn:active{transform:scale(0.9);}
.vote-pos{background:rgba(0,255,170,0.08);border-color:rgba(0,255,170,0.3);color:var(--green);}
.vote-pos.voted{background:rgba(0,255,170,0.2);border-color:var(--green);box-shadow:0 0 8px rgba(0,255,170,0.3);}
.vote-neg{background:rgba(255,68,102,0.08);border-color:rgba(255,68,102,0.3);color:var(--red);}
.vote-neg.voted{background:rgba(255,68,102,0.2);border-color:var(--red);box-shadow:0 0 8px rgba(255,68,102,0.3);}
/* Barre affluence réelle */
.real-affluence-bar{margin:0.4rem 0.9rem 0;background:rgba(255,255,255,0.04);border-radius:100px;height:7px;overflow:hidden;width:calc(100% - 1.8rem);}
.real-affluence-fill{height:100%;border-radius:100px;background:linear-gradient(90deg,var(--green),var(--amber),var(--red));transition:width 0.8s cubic-bezier(.22,1,.36,1);}
.real-affluence-label{display:flex;justify-content:space-between;align-items:center;padding:0.2rem 0.9rem 0.5rem;font-size:0.65rem;color:var(--muted);}
.real-affluence-label .ral-val{font-weight:800;font-size:0.78rem;}
/* Classement live */
.ranking-badge{display:inline-flex;align-items:center;gap:0.2rem;font-size:0.62rem;font-weight:800;padding:0.12rem 0.45rem;border-radius:6px;margin-left:0.4rem;}
.rank-1{background:rgba(255,215,0,0.2);color:var(--amber);border:1px solid rgba(255,215,0,0.4);}
.rank-2{background:rgba(192,192,192,0.15);color:#c0c0c0;border:1px solid rgba(192,192,192,0.3);}
.rank-3{background:rgba(205,127,50,0.15);color:#cd7f32;border:1px solid rgba(205,127,50,0.3);}
.rank-other{background:rgba(255,255,255,0.05);color:var(--muted);border:1px solid rgba(255,255,255,0.1);}
/* Modal vérification présence */
.presence-modal-opts{display:flex;flex-direction:column;gap:0.7rem;margin-top:1rem;}
.presence-opt-btn{display:flex;align-items:center;gap:0.85rem;padding:0.85rem 1rem;border-radius:14px;border:1px solid;cursor:pointer;text-align:left;font-family:'DM Sans',sans-serif;transition:all 0.2s;width:100%;}
.presence-opt-btn:active{transform:scale(0.97);}
.pob-wa{background:rgba(37,211,102,0.08);border-color:rgba(37,211,102,0.3);color:#25d366;}
.pob-gps{background:rgba(0,229,255,0.08);border-color:rgba(0,229,255,0.3);color:var(--cyan);}
.pob-icon{font-size:1.6rem;flex-shrink:0;}
.pob-text{flex:1;}
.pob-title{font-weight:700;font-size:0.85rem;}
.pob-sub{font-size:0.7rem;opacity:0.75;margin-top:0.1rem;}

/* FOOTER */
footer{background:rgba(13,0,20,0.95);border-top:1px solid rgba(255,45,155,0.15);padding:1.5rem 1rem 6rem;position:relative;z-index:1;margin-top:2rem;display:none;}
.footer-inner{max-width:640px;margin:0 auto;}
.footer-logo{display:flex;align-items:center;gap:0.5rem;margin-bottom:1rem;}
.footer-logo img{width:32px;height:32px;border-radius:50%;object-fit:cover;}
.footer-logo-text{font-family:'Syne',sans-serif;font-weight:800;font-size:0.95rem;}
.footer-logo-text span{color:var(--pink);}
.footer-desc{font-size:0.78rem;color:var(--muted);line-height:1.6;margin-bottom:1rem;}
.footer-grid{display:grid;grid-template-columns:1fr 1fr;gap:1rem;margin-bottom:1rem;}
.footer-col h4{font-family:'Syne',sans-serif;font-size:0.7rem;font-weight:700;color:var(--pink);text-transform:uppercase;letter-spacing:0.1em;margin-bottom:0.5rem;}
.footer-col p,.footer-col a{font-size:0.75rem;color:var(--muted);display:block;margin-bottom:0.25rem;text-decoration:none;line-height:1.5;}
.footer-col a:hover{color:var(--cyan);}
.footer-divider{border:none;border-top:1px solid rgba(255,255,255,0.05);margin:0.8rem 0;}
.footer-bottom{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:0.5rem;}
.footer-copy{font-size:0.7rem;color:var(--muted);}
.footer-links{display:flex;gap:0.8rem;}
.footer-links a{font-size:0.7rem;color:var(--muted);text-decoration:none;}
.footer-links a:hover{color:var(--cyan);}

/* TOAST */
.toast{position:fixed;bottom:calc(var(--nav-h) + var(--player-h) + 18px);left:50%;transform:translateX(-50%) translateY(20px);background:linear-gradient(135deg,var(--pink),var(--cyan));color:#000;font-weight:800;font-size:0.82rem;padding:0.6rem 1.4rem;border-radius:100px;opacity:0;transition:all 0.3s;pointer-events:none;z-index:300;white-space:nowrap;box-shadow:0 4px 20px rgba(255,45,155,0.4);}
.toast.show{opacity:1;transform:translateX(-50%) translateY(0);}

/* ── BARRE DE PROGRESSION UPLOAD GLOBALE ── */
#uploadProgressBar{
  position:fixed;bottom:calc(var(--nav-h) + var(--player-h));left:0;right:0;z-index:400;
  padding:0 0;
  pointer-events:none;
  opacity:0;
  transform:translateY(6px);
  transition:opacity 0.25s,transform 0.25s;
}
#uploadProgressBar.show{opacity:1;transform:translateY(0);}
#uploadProgressBar .upb-inner{
  background:rgba(13,0,20,0.92);
  backdrop-filter:blur(10px);
  border-top:1px solid rgba(0,255,170,0.18);
  padding:5px 14px 6px;
  display:flex;
  align-items:center;
  gap:8px;
}
#uploadProgressBar .upb-label{
  font-size:0.6rem;font-weight:700;
  color:var(--green);
  white-space:nowrap;
  flex-shrink:0;
  font-family:'DM Sans',sans-serif;
  letter-spacing:0.04em;
  min-width:56px;
  text-align:right;
}
#uploadProgressBar .upb-track{
  flex:1;
  height:4px;
  background:rgba(255,255,255,0.08);
  border-radius:100px;
  overflow:hidden;
}
#uploadProgressBar .upb-fill{
  height:100%;
  width:0%;
  background:linear-gradient(90deg,var(--green),var(--cyan));
  border-radius:100px;
  transition:width 0.3s ease;
  box-shadow:0 0 6px rgba(0,255,170,0.5);
}
#uploadProgressBar .upb-icon{
  font-size:0.8rem;
  flex-shrink:0;
}
/* BOTTOM NAV */
/* bottom-nav — styles de base (complets dans section nav ci-dessous) */
.bottom-nav{position:fixed;bottom:0;left:0;right:0;z-index:650;background:rgba(13,0,20,0.97);backdrop-filter:blur(20px);border-top:1px solid rgba(255,45,155,0.15);display:flex;height:62px;padding:0;padding-bottom:env(safe-area-inset-bottom,0px);width:100%;box-sizing:border-box;overflow:visible;}
.section-hidden{display:none;}
.loading-state{text-align:center;padding:3rem 1rem;color:var(--muted);}
.loading-spin{font-size:2.5rem;animation:spin 1s linear infinite;display:inline-block;}
.error-state{background:rgba(255,68,102,0.08);border:1px solid rgba(255,68,102,0.2);border-radius:12px;padding:1rem;text-align:center;color:#ff6680;font-size:0.82rem;margin-bottom:1rem;}
@media(max-width:480px){.field-row{grid-template-columns:1fr;}.footer-grid{grid-template-columns:1fr;}}

/* == RESERVATION VIP == */
.card-vip-row{padding:0.55rem 0.9rem 0.75rem;border-top:1px solid rgba(255,215,0,0.12);}
.vip-reserve-btn{width:100%;padding:0.6rem;border-radius:12px;border:1px solid rgba(255,215,0,0.4);background:linear-gradient(135deg,rgba(255,215,0,0.13),rgba(255,140,0,0.08));color:var(--amber);font-family:'Syne',sans-serif;font-weight:800;font-size:0.85rem;cursor:pointer;transition:all 0.2s;box-shadow:0 0 10px rgba(255,215,0,0.1);display:flex;align-items:center;justify-content:center;gap:0.4rem;}

/* ══ BOUTON FLOTTANT NOM ÉTABLISSEMENT → RÉSERVATION DIRECTE ══ */
/* Rend le nom de l'établissement cliquable comme un chauffeur taxi */
.etab-name-order-btn {
  background: none; border: none; padding: 0; margin: 0;
  cursor: pointer; font-family: inherit; font-size: inherit;
  font-weight: inherit; color: inherit; text-align: left;
  display: inline-flex; align-items: center; gap: 5px;
  transition: color 0.18s; -webkit-tap-highlight-color: transparent;
  position: relative;
}
.etab-name-order-btn:hover { color: var(--amber); }
.etab-name-order-btn:active { opacity: 0.75; }
.etab-name-order-pulse {
  display: inline-flex; align-items: center; justify-content: center;
  width: 14px; height: 14px; border-radius: 50%;
  background: linear-gradient(135deg, var(--amber), #ff8800);
  color: #000; font-size: 0.45rem; font-weight: 900;
  flex-shrink: 0;
  /* animation: pulse supprimée — gain : ~65 layers animés en moins (1 par carte) */
  box-shadow: 0 0 5px rgba(157,132,255,0.6);
  opacity: 0; transition: opacity 0.2s;
}
.etab-name-order-btn:hover .etab-name-order-pulse,
.card:hover .etab-name-order-pulse { opacity: 1; }

/* ══ SHEET RÉSERVATION DIRECTE ÉTABLISSEMENT (style taxi pro) ══ */
.etab-qorder-overlay {
  display: none; position: fixed; inset: 0;
  background: rgba(0,0,0,0.88); z-index: 10060;
  align-items: flex-end; justify-content: center;
  animation: fadeIn 0.2s;
}
.etab-qorder-overlay.open { display: flex; }
.etab-qorder-sheet {
  background: var(--surface);
  border: 2px solid rgba(255,215,0,0.35);
  border-radius: 26px 26px 0 0;
  width: min(500px, 100%); max-height: 92vh; overflow-y: auto;
  padding: 0 0 2rem;
  animation: slideUp 0.32s cubic-bezier(0.34,1.1,0.64,1);
}
.etab-qorder-drag { width: 40px; height: 4px; border-radius: 2px; background: rgba(255,255,255,0.15); margin: 0.75rem auto 0; }
.etab-qorder-head {
  padding: 1rem 1.3rem 0.7rem;
  border-bottom: 1px solid rgba(255,215,0,0.12);
  display: flex; align-items: center; gap: 0.75rem; position: relative;
}
.etab-qorder-avatar {
  width: 52px; height: 52px; border-radius: 14px;
  background: linear-gradient(135deg, var(--amber), #ff8800);
  display: flex; align-items: center; justify-content: center;
  font-size: 1.6rem; flex-shrink: 0;
  border: 2px solid rgba(255,215,0,0.4);
  overflow: hidden;
}
.etab-qorder-avatar img { width: 100%; height: 100%; object-fit: cover; border-radius: 12px; }
.etab-qorder-info { flex: 1; }
.etab-qorder-name { font-family: 'Syne', sans-serif; font-weight: 800; font-size: 1rem; color: var(--text); }
.etab-qorder-sub { font-size: 0.7rem; color: var(--muted); margin-top: 2px; }
.etab-qorder-status {
  display: inline-flex; align-items: center; gap: 4px;
  font-size: 0.65rem; font-weight: 700; color: var(--green); margin-top: 3px;
}
.etab-qorder-close {
  position: absolute; top: 0.9rem; right: 1rem;
  background: rgba(255,68,102,0.12); border: 1px solid rgba(255,68,102,0.3);
  color: var(--red); width: 30px; height: 30px; border-radius: 50%;
  cursor: pointer; font-size: 1rem;
  display: flex; align-items: center; justify-content: center;
}
.etab-qorder-close:active { opacity: 0.6; }
.etab-qorder-body { padding: 1rem 1.3rem 0; }
.etab-qorder-section {
  font-size: 0.6rem; font-weight: 800; letter-spacing: 0.1em;
  text-transform: uppercase; color: var(--muted);
  margin-bottom: 0.55rem; display: flex; align-items: center; gap: 0.4rem;
}
.etab-qorder-section::after { content: ''; flex: 1; height: 1px; background: rgba(255,255,255,0.06); }

/* Type réservation */
.etab-qorder-type-grid {
  display: grid; grid-template-columns: repeat(2,1fr); gap: 8px; margin-bottom: 1rem;
}
.etab-qorder-type-btn {
  padding: 10px 8px; border-radius: 12px;
  border: 1.5px solid rgba(255,215,0,0.18);
  background: rgba(255,215,0,0.05);
  color: var(--muted); font-size: 0.72rem; font-weight: 700;
  cursor: pointer; text-align: center; transition: all 0.2s;
  font-family: 'DM Sans', sans-serif;
  display: flex; flex-direction: column; align-items: center; gap: 4px;
}
.etab-qorder-type-btn .ticon { font-size: 1.3rem; }
.etab-qorder-type-btn.active {
  background: linear-gradient(135deg,rgba(255,215,0,0.22),rgba(255,140,0,0.12));
  border-color: var(--amber); color: var(--amber);
  box-shadow: 0 4px 12px rgba(255,215,0,0.2);
}
.etab-qorder-type-btn:active { transform: scale(0.95); }

/* Inputs */
.etab-qorder-input {
  width: 100%; padding: 10px 12px;
  background: rgba(255,215,0,0.05);
  border: 1.5px solid rgba(255,215,0,0.18);
  border-radius: 10px; color: var(--text);
  font-family: 'DM Sans', sans-serif; font-size: 0.82rem;
  margin-bottom: 0.6rem; transition: border-color 0.2s;
  box-sizing: border-box;
}
.etab-qorder-input:focus { outline: none; border-color: var(--amber); background: rgba(255,215,0,0.09); }
.etab-qorder-input::placeholder { color: rgba(255,215,0,0.3); }
.etab-qorder-row { display: flex; gap: 0.5rem; margin-bottom: 0.6rem; }
.etab-qorder-row .etab-qorder-input { flex: 1; margin-bottom: 0; }

/* Bouton WhatsApp envoi */
.etab-qorder-wa-btn {
  width: 100%; padding: 14px;
  background: linear-gradient(135deg, #25d366, #128c7e);
  border: none; border-radius: 14px;
  color: #fff; font-family: 'Syne', sans-serif;
  font-weight: 800; font-size: 1rem;
  cursor: pointer; display: flex; align-items: center; justify-content: center; gap: 8px;
  box-shadow: 0 6px 20px rgba(37,211,102,0.35);
  margin-bottom: 0.6rem; transition: all 0.2s;
}
.etab-qorder-wa-btn:active { transform: scale(0.97); opacity: 0.9; }

/* Confirmation */
.etab-qorder-sent {
  text-align: center; padding: 1.8rem 1rem; display: none;
  animation: fadeIn 0.3s ease;
}
.etab-qorder-sent.show { display: block; }
.etab-qorder-sent-icon { font-size: 3rem; margin-bottom: 0.7rem; }
.etab-qorder-sent-title { font-family: 'Syne', sans-serif; font-weight: 800; font-size: 1rem; color: var(--green); margin-bottom: 0.3rem; }
.etab-qorder-sent-sub { font-size: 0.78rem; color: var(--muted); line-height: 1.5; }
.etab-qorder-token {
  display: inline-block; margin-top: 0.7rem;
  font-family: monospace; font-size: 0.68rem;
  background: rgba(0,255,170,0.08); border: 1px solid rgba(0,255,170,0.2);
  border-radius: 8px; padding: 0.28rem 0.65rem;
  color: var(--green); letter-spacing: 0.06em;
}
.vip-reserve-btn:active{opacity:0.8;transform:scale(0.98);}
.adm-reserv-card{background:rgba(255,215,0,0.04);border:1px solid rgba(255,215,0,0.15);border-radius:14px;padding:0.85rem;margin-bottom:0.65rem;}
.adm-reserv-card .arc-head{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:0.45rem;}
.adm-reserv-card .arc-nom{font-weight:800;font-size:0.85rem;color:var(--text);}
.adm-reserv-card .arc-etab{font-size:0.72rem;color:var(--amber);}
.adm-reserv-card .arc-tel{font-size:0.72rem;color:var(--cyan);}
.adm-reserv-card .arc-actions{display:flex;gap:0.4rem;margin-top:0.55rem;}
.arc-btn-ok{flex:1;padding:0.42rem;border-radius:8px;border:1px solid var(--green);background:rgba(0,255,170,0.08);color:var(--green);font-family:'Syne',sans-serif;font-weight:800;font-size:0.73rem;cursor:pointer;}
.arc-btn-no{flex:1;padding:0.42rem;border-radius:8px;border:1px solid var(--red);background:rgba(255,68,102,0.08);color:var(--red);font-family:'Syne',sans-serif;font-weight:800;font-size:0.73rem;cursor:pointer;}
.reserv-statut-bar{padding:0.6rem 0.9rem;border-radius:10px;font-size:0.78rem;font-weight:700;text-align:center;margin-bottom:1rem;}
.rsb-sature{background:rgba(255,68,102,0.12);border:1px solid rgba(255,68,102,0.3);color:var(--red);}
.rsb-bonde{background:rgba(255,215,0,0.1);border:1px solid rgba(255,215,0,0.3);color:var(--amber);}
.rsb-dispo{background:rgba(0,255,170,0.08);border:1px solid rgba(0,255,170,0.25);color:var(--green);}
/* Badge paiement en attente */
.badge-pending{display:inline-block;background:rgba(255,165,0,0.15);border:1px solid rgba(255,165,0,0.4);color:#ffa500;font-size:0.6rem;font-family:'DM Sans',sans-serif;font-weight:700;padding:0.08rem 0.35rem;border-radius:5px;margin-left:0.3rem;vertical-align:middle;}

/* ══ PUBLICATIONS ══ */
/* ══ BARRE PUBLIER PERMANENTE ══ */
.pub-quickbar{display:flex;align-items:center;gap:0.55rem;background:var(--surface);border:1.5px solid rgba(255,45,155,0.25);border-radius:16px;padding:0.65rem 0.85rem;margin-bottom:1rem;cursor:pointer;transition:border-color 0.2s,background 0.2s;}
.pub-quickbar:hover{border-color:rgba(255,45,155,0.5);background:var(--surface2);}
.pub-quickbar-avatar{width:34px;height:34px;border-radius:50%;background:linear-gradient(135deg,var(--pink),var(--purple));display:flex;align-items:center;justify-content:center;font-family:Syne,sans-serif;font-weight:800;font-size:0.85rem;color:#fff;flex-shrink:0;}
.pub-quickbar-input{flex:1;min-width:0;}
.pub-quickbar-placeholder{font-size:0.78rem;color:var(--muted);display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.pub-quickbar-btn{background:linear-gradient(135deg,var(--pink),var(--cyan));border:none;color:#000;font-family:Syne,sans-serif;font-weight:800;font-size:0.72rem;padding:0.38rem 0.75rem;border-radius:12px;cursor:pointer;white-space:nowrap;flex-shrink:0;transition:opacity 0.2s;}
.pub-quickbar-btn:active{opacity:0.8;}
/* ══ RÉACTIONS COMMENTAIRES PUBLICATIONS ══ */
.pub-cmt-reaction-bar{display:flex;align-items:center;gap:0.3rem;flex-wrap:wrap;margin-top:0.35rem;}
.pub-cmt-react-btn{background:rgba(255,255,255,0.04);border:1px solid rgba(255,255,255,0.08);border-radius:20px;padding:0.12rem 0.4rem;font-size:0.68rem;cursor:pointer;transition:all 0.18s;color:var(--muted);display:inline-flex;align-items:center;gap:0.18rem;}
.pub-cmt-react-btn:active{transform:scale(0.9);}
.pub-cmt-react-btn.reacted{background:rgba(255,45,155,0.12);border-color:rgba(255,45,155,0.35);color:var(--pink);}
.pub-cmt-reply-btn{background:none;border:none;font-size:0.68rem;color:var(--muted);cursor:pointer;padding:0.12rem 0.3rem;border-radius:6px;transition:color 0.15s;display:inline-flex;align-items:center;gap:0.2rem;}
.pub-cmt-reply-btn:hover{color:var(--cyan);}
.pub-cmt-reply-form{display:none;margin-top:0.4rem;padding-top:0.4rem;border-top:1px solid rgba(255,255,255,0.05);}
.pub-cmt-reply-form.open{display:flex;gap:0.35rem;align-items:flex-end;}
.pub-cmt-reply-textarea{flex:1;background:rgba(255,255,255,0.04);border:1px solid rgba(0,229,255,0.22);border-radius:8px;color:var(--text);font-family:DM Sans,sans-serif;font-size:0.75rem;padding:0.35rem 0.55rem;outline:none;resize:none;min-height:32px;line-height:1.4;}
.pub-cmt-reply-textarea:focus{border-color:rgba(0,229,255,0.45);}
.pub-cmt-reply-textarea::placeholder{color:var(--muted);}
.pub-cmt-reply-send{background:linear-gradient(135deg,var(--cyan),var(--purple));border:none;color:#fff;font-family:Syne,sans-serif;font-weight:800;font-size:0.65rem;padding:0.32rem 0.6rem;border-radius:8px;cursor:pointer;white-space:nowrap;flex-shrink:0;}
.pub-cmt-reply-send:disabled{opacity:0.4;cursor:not-allowed;}
.pub-cmt-replies{margin-top:0.5rem;padding-left:0.8rem;border-left:2px solid rgba(0,229,255,0.15);display:flex;flex-direction:column;gap:0.45rem;}
.pub-cmt-reply-item{display:flex;gap:0.4rem;align-items:flex-start;}
.pub-cmt-reply-avatar{width:22px;height:22px;border-radius:50%;background:linear-gradient(135deg,var(--cyan),var(--green));display:flex;align-items:center;justify-content:center;font-size:0.55rem;font-weight:800;color:#fff;flex-shrink:0;margin-top:0.1rem;}
.pub-cmt-reply-body{flex:1;background:rgba(0,229,255,0.04);border-radius:8px;padding:0.35rem 0.5rem;}
.pub-cmt-reply-meta{display:flex;align-items:center;gap:0.3rem;margin-bottom:0.12rem;}
.pub-cmt-reply-author{font-size:0.7rem;font-weight:700;color:var(--cyan);}
.pub-cmt-reply-time{font-size:0.58rem;color:rgba(255,255,255,0.25);}
.pub-cmt-reply-text{font-size:0.75rem;color:var(--muted);line-height:1.45;word-break:break-word;}
.pub-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:1.1rem;}
.pub-header-title{font-family:'Syne',sans-serif;font-weight:800;font-size:1.15rem;color:var(--text);}
.pub-header-title span{color:var(--pink);}
.pub-compose-btn{background:linear-gradient(135deg,var(--pink),var(--cyan));border:none;color:#000;font-family:'Syne',sans-serif;font-weight:800;font-size:0.78rem;padding:0.45rem 0.9rem;border-radius:20px;cursor:pointer;transition:opacity 0.2s;}
.pub-compose-btn:active{opacity:0.8;}
.pub-tabs{display:flex;gap:0.3rem;background:var(--surface2);border-radius:12px;padding:0.25rem;margin-bottom:1rem;}
.pub-tab{flex:1;padding:0.42rem;border-radius:8px;font-size:0.78rem;font-weight:700;cursor:pointer;border:none;background:transparent;color:var(--muted);font-family:'DM Sans',sans-serif;transition:all 0.2s;}
.pub-tab.active{background:var(--pink);color:#000;}
.pub-card{background:var(--surface);border:1px solid var(--border);border-radius:18px;margin-bottom:0.85rem;overflow:hidden;animation:fadeUp 0.35s ease both;}
.pub-card-head{display:flex;align-items:center;gap:0.65rem;padding:0.85rem 1rem 0.6rem;}
.pub-avatar{width:38px;height:38px;border-radius:50%;background:linear-gradient(135deg,var(--pink),var(--purple));display:flex;align-items:center;justify-content:center;font-family:'Syne',sans-serif;font-weight:800;font-size:0.9rem;color:#fff;flex-shrink:0;cursor:pointer;transition:transform 0.15s,box-shadow 0.15s;-webkit-tap-highlight-color:transparent;}
.pub-avatar:hover{transform:scale(1.08);box-shadow:0 0 12px rgba(255,45,155,0.4);}
.pub-avatar:active{transform:scale(0.93);}
.pub-meta{flex:1;}
.pub-author{font-weight:700;font-size:0.82rem;color:var(--text);cursor:pointer;transition:color 0.15s;}
.pub-author:hover{color:var(--pink);}
.pub-time{font-size:0.65rem;color:var(--muted);margin-top:0.08rem;}
.pub-badge{display:inline-block;font-size:0.58rem;font-weight:800;padding:0.1rem 0.38rem;border-radius:6px;margin-left:0.3rem;text-transform:uppercase;letter-spacing:0.06em;}
.pub-badge-admin{background:rgba(255,215,0,0.15);color:var(--amber);border:1px solid rgba(255,215,0,0.3);}
.pub-badge-etab{background:rgba(255,45,155,0.12);color:var(--pink);border:1px solid rgba(255,45,155,0.25);}
.pub-badge-member{background:rgba(0,229,255,0.1);color:var(--cyan);border:1px solid rgba(0,229,255,0.2);}
.pub-type-chip{font-size:0.6rem;font-weight:700;padding:0.12rem 0.45rem;border-radius:20px;border:1px solid;}
.pub-type-annonce{background:rgba(255,215,0,0.08);color:var(--amber);border-color:rgba(255,215,0,0.25);}
.pub-type-soiree{background:rgba(204,68,255,0.08);color:var(--purple);border-color:rgba(204,68,255,0.25);}
.pub-type-avis{background:rgba(0,255,170,0.08);color:var(--green);border-color:rgba(0,255,170,0.25);}
.pub-type-news{background:rgba(0,229,255,0.08);color:var(--cyan);border-color:rgba(0,229,255,0.25);}
.pub-body{padding:0 1rem 0.7rem;}
.pub-title{font-family:'Syne',sans-serif;font-weight:800;font-size:0.92rem;color:var(--text);margin-bottom:0.35rem;}
.pub-text{font-size:0.8rem;color:var(--muted);line-height:1.6;}
.pub-img{width:100%;max-height:200px;object-fit:cover;display:block;}
.pub-footer{display:flex;align-items:center;gap:0.6rem;padding:0.6rem 1rem;border-top:1px solid rgba(255,255,255,0.05);}
.pub-action-btn{display:flex;align-items:center;gap:0.3rem;background:none;border:none;color:var(--muted);font-family:'DM Sans',sans-serif;font-size:0.72rem;font-weight:600;cursor:pointer;padding:0.3rem 0.55rem;border-radius:8px;transition:all 0.18s;}
.pub-action-btn:hover{background:rgba(255,255,255,0.04);color:var(--text);}
.pub-action-btn.liked{color:var(--pink);}
.pub-action-btn.liked svg, .pub-action-btn.liked span{color:var(--pink);}
.pub-etab-tag{margin-left:auto;font-size:0.65rem;color:var(--cyan);background:rgba(0,229,255,0.06);padding:0.18rem 0.5rem;border-radius:6px;border:1px solid rgba(0,229,255,0.2);cursor:pointer;transition:background 0.15s,border-color 0.15s;-webkit-tap-highlight-color:transparent;}
.pub-etab-tag:hover{background:rgba(0,229,255,0.12);border-color:rgba(0,229,255,0.4);}
.pub-etab-tag:active{opacity:0.7;}
.pub-compose-modal .pub-type-row{display:flex;gap:0.4rem;flex-wrap:wrap;margin-bottom:0.8rem;}
.pub-compose-modal .ptc{padding:0.32rem 0.75rem;border-radius:20px;font-size:0.75rem;font-weight:700;cursor:pointer;border:1px solid rgba(255,255,255,0.12);background:rgba(255,255,255,0.04);color:var(--muted);transition:all 0.18s;}
.pub-compose-modal .ptc.active{background:var(--pink);border-color:var(--pink);color:#000;}
.pub-empty{text-align:center;padding:3rem 1rem;color:var(--muted);}
.pub-empty span{font-size:2.5rem;display:block;margin-bottom:0.6rem;}
.pub-load-more{display:block;width:100%;padding:0.65rem;border-radius:12px;border:1px solid rgba(255,255,255,0.1);background:rgba(255,255,255,0.04);color:var(--muted);font-family:'DM Sans',sans-serif;font-size:0.8rem;font-weight:600;cursor:pointer;text-align:center;margin-top:0.5rem;transition:all 0.2s;}
.pub-load-more:hover{border-color:rgba(255,45,155,0.3);color:var(--pink);}
/* ══ NAV DISCUSSIONS BADGE ACTIF ══ */
.nav-item .nav-disc-badge{display:none;position:absolute;top:4px;right:calc(50% - 18px);width:8px;height:8px;background:var(--pink);border-radius:50%;border:2px solid var(--bg);box-shadow:0 0 6px rgba(255,45,155,0.8);animation:pulsePink 1.8s infinite;}
/* ══ BADGES NOTIFICATIONS NAV BAR ══ */
@keyframes navBadgePop{0%{transform:scale(0.4);opacity:0}65%{transform:scale(1.25)}100%{transform:scale(1);opacity:1}}
@keyframes navBadgePulse{0%,100%{box-shadow:0 0 0 0 rgba(255,68,102,0.7)}70%{box-shadow:0 0 0 5px rgba(255,68,102,0)}}
.nav-unread-badge{
  position:absolute;top:2px;right:calc(50% - 22px);
  min-width:17px;height:17px;
  border-radius:99px;
  background:var(--red);
  color:#fff;
  font-size:0.48rem;font-weight:900;font-family:'Syne',sans-serif;
  display:none;align-items:center;justify-content:center;
  padding:0 4px;
  border:2px solid var(--bg);
  box-shadow:0 0 8px rgba(255,68,102,0.6);
  z-index:10;
  pointer-events:none;
}
.nav-unread-badge.show{display:flex;animation:navBadgePop 0.35s cubic-bezier(0.34,1.56,0.64,1) forwards, navBadgePulse 2s 0.35s ease-in-out infinite;}
.nav-item{position:relative;overflow:visible !important;}
@keyframes pulsePink{0%,100%{transform:scale(1);opacity:1}50%{transform:scale(1.4);opacity:0.6}}
.nav-item[data-section="publications"]{position:relative;}
.nav-item[data-section="publications"].has-new .nav-disc-badge{display:block;}
/* ══ VIDEO PUBLICATION ══ */
.pub-video-compose{margin-bottom:0.85rem;}
.pub-video-compose-label{font-size:0.75rem;font-weight:600;color:var(--muted);text-transform:uppercase;letter-spacing:0.05em;margin-bottom:0.45rem;display:flex;align-items:center;gap:0.4rem;}
.pub-video-compose-label .pvcl-badge{font-size:0.6rem;background:rgba(0,229,255,0.12);color:var(--cyan);border:1px solid rgba(0,229,255,0.3);padding:0.08rem 0.38rem;border-radius:20px;font-weight:700;text-transform:uppercase;}
.pub-video-add-btn{display:flex;align-items:center;justify-content:center;gap:0.35rem;width:100%;padding:0.5rem 0.7rem;border-radius:8px;border:1.5px dashed rgba(0,229,255,0.4);background:rgba(0,229,255,0.05);color:var(--cyan);font-size:0.75rem;font-weight:700;cursor:pointer;font-family:'DM Sans',sans-serif;transition:all 0.2s;}
.pub-video-add-btn:hover{background:rgba(0,229,255,0.1);}
.pub-video-add-btn:disabled{opacity:0.4;cursor:not-allowed;}
.pub-video-preview-wrap{position:relative;border-radius:10px;overflow:hidden;background:#000;aspect-ratio:9/16;max-height:200px;margin-bottom:0.4rem;}
.pub-video-preview-wrap video{width:100%;height:100%;object-fit:cover;display:block;}
.pub-video-del{position:absolute;top:6px;right:6px;background:rgba(255,68,102,0.9);border:none;color:#fff;width:24px;height:24px;border-radius:50%;font-size:0.7rem;cursor:pointer;display:flex;align-items:center;justify-content:center;}
.pub-video-duration{position:absolute;bottom:6px;left:6px;background:rgba(0,0,0,0.7);color:#fff;font-size:0.65rem;font-weight:700;padding:0.12rem 0.45rem;border-radius:20px;}
.pub-video-duration.over{color:var(--red);}
.pub-video-err{font-size:0.72rem;color:var(--red);margin-top:0.25rem;display:none;}
/* video dans la pub-card publiée */
.pub-video-player{width:100%;max-height:280px;object-fit:cover;border-radius:0;display:block;background:#000;}
/* Limite journalière */
.pub-daily-info{display:flex;align-items:center;justify-content:space-between;background:rgba(0,229,255,0.06);border:1px solid rgba(0,229,255,0.18);border-radius:10px;padding:0.55rem 0.75rem;margin-bottom:0.8rem;font-size:0.72rem;}
.pub-daily-info .pdi-label{color:var(--muted);}
.pub-daily-info .pdi-count{font-weight:800;color:var(--cyan);}
.pub-daily-info .pdi-count.warning{color:var(--amber);}
.pub-daily-info .pdi-count.maxed{color:var(--red);}
.pub-daily-limit-banner{background:rgba(255,68,102,0.08);border:1px solid rgba(255,68,102,0.35);border-radius:12px;padding:0.75rem 1rem;margin-bottom:0.85rem;text-align:center;font-size:0.8rem;color:var(--red);font-weight:700;display:none;}
.pub-daily-limit-banner.show{display:block;}
/* ══ PHOTOS PUBLICATION ══ */
.pub-photos-compose{margin-bottom:0.85rem;}
.pub-photos-compose-label{font-size:0.75rem;font-weight:600;color:var(--muted);text-transform:uppercase;letter-spacing:0.05em;margin-bottom:0.45rem;}
.pub-photos-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;margin-bottom:0.4rem;}
.pub-photo-thumb{position:relative;border-radius:8px;overflow:hidden;aspect-ratio:1;background:var(--surface2);}
.pub-photo-thumb img{width:100%;height:100%;object-fit:cover;display:block;}
.pub-photo-del{position:absolute;top:3px;right:3px;background:rgba(255,68,102,0.85);border:none;color:#fff;width:20px;height:20px;border-radius:50%;font-size:0.65rem;cursor:pointer;display:flex;align-items:center;justify-content:center;line-height:1;}
.pub-photo-add-btn{display:flex;align-items:center;justify-content:center;gap:0.3rem;width:100%;padding:0.45rem 0.7rem;border-radius:8px;border:1.5px dashed rgba(255,45,155,0.4);background:rgba(255,45,155,0.05);color:var(--pink);font-size:0.75rem;font-weight:700;cursor:pointer;font-family:'DM Sans',sans-serif;transition:all 0.2s;}
.pub-photo-add-btn:hover{background:rgba(255,45,155,0.1);}
.pub-photo-add-btn:disabled{opacity:0.4;cursor:not-allowed;}
/* photos dans la card publiée */
.pub-photos{padding:0 0.75rem 0.75rem;}
.pub-photos-row{display:grid;gap:5px;}
.pub-photos-row.count-1{grid-template-columns:1fr;}
.pub-photos-row.count-2{grid-template-columns:1fr 1fr;}
.pub-photos-row.count-3{grid-template-columns:1fr 1fr 1fr;}
.pub-photos-row.count-4{grid-template-columns:1fr 1fr;grid-template-rows:1fr 1fr;}
.pub-photos-row.count-5{grid-template-columns:1fr 1fr 1fr;grid-template-rows:auto auto;}
.pub-photo-img{width:100%;object-fit:cover;border-radius:8px;cursor:pointer;display:block;max-height:220px;}
.pub-photo-img.tall{max-height:320px;}
/* ══ COMMENTAIRES DANS LA PUB-CARD ══ */
.pub-comments-section{border-top:1px solid rgba(255,255,255,0.05);padding:0.65rem 1rem 0.8rem;}
.pub-comments-section.hidden{display:none;}
.pub-comment-item{display:flex;gap:0.45rem;margin-bottom:0.6rem;}
.pub-comment-avatar{width:28px;height:28px;border-radius:50%;background:linear-gradient(135deg,var(--cyan),var(--purple));display:flex;align-items:center;justify-content:center;font-size:0.65rem;font-weight:800;color:#fff;flex-shrink:0;}
.pub-comment-body{flex:1;background:rgba(255,255,255,0.03);border-radius:10px;padding:0.45rem 0.6rem;}
.pub-comment-meta{display:flex;align-items:center;gap:0.4rem;margin-bottom:0.2rem;}
.pub-comment-author{font-size:0.72rem;font-weight:700;color:var(--text);}
.pub-comment-time{font-size:0.6rem;color:rgba(255,255,255,0.3);margin-left:auto;}
.pub-comment-text{font-size:0.78rem;color:var(--muted);line-height:1.5;word-break:break-word;}
.pub-comment-del{background:none;border:none;color:rgba(255,68,102,0.5);font-size:0.65rem;cursor:pointer;padding:0.1rem;transition:color 0.15s;margin-left:0.3rem;}
.pub-comment-del:hover{color:var(--red);}
.pub-comment-input-row{display:flex;gap:0.4rem;align-items:flex-end;margin-top:0.55rem;}
.pub-comment-textarea{flex:1;background:rgba(255,255,255,0.04);border:1px solid rgba(255,45,155,0.2);border-radius:10px;color:var(--text);font-family:'DM Sans',sans-serif;font-size:0.78rem;padding:0.45rem 0.65rem;outline:none;resize:none;min-height:38px;line-height:1.4;}
.pub-comment-textarea:focus{border-color:rgba(255,45,155,0.45);}
.pub-comment-textarea::placeholder{color:var(--muted);}
.pub-comment-send{background:linear-gradient(135deg,var(--pink),var(--purple));border:none;color:#fff;font-family:'Syne',sans-serif;font-weight:800;font-size:0.7rem;padding:0.4rem 0.75rem;border-radius:10px;cursor:pointer;white-space:nowrap;flex-shrink:0;}
.pub-comment-send:disabled{opacity:0.4;cursor:not-allowed;}
.pub-comments-empty{font-size:0.75rem;color:var(--muted);text-align:center;padding:0.5rem 0;}
.pub-action-btn.active-comment{color:var(--cyan);}

/* ══ HISTORIQUE CONNEXIONS ══ */
.conn-card{background:var(--surface);border:1px solid rgba(0,229,255,0.12);border-radius:14px;padding:0.85rem 1rem;margin-bottom:0.6rem;position:relative;overflow:hidden;animation:fadeUp 0.3s ease both;}
.conn-card::before{content:'';position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--cyan);}
.conn-card.conn-new::before{background:var(--green);}
.conn-card.conn-suspicious::before{background:var(--red);}
.conn-card-head{display:flex;align-items:center;gap:0.65rem;margin-bottom:0.5rem;}
.conn-avatar{width:36px;height:36px;border-radius:50%;background:linear-gradient(135deg,var(--cyan),var(--purple));display:flex;align-items:center;justify-content:center;font-weight:800;font-size:0.9rem;color:#000;flex-shrink:0;}
.conn-user-info{flex:1;min-width:0;}
.conn-pseudo{font-weight:700;font-size:0.82rem;color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.conn-email{font-size:0.65rem;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.conn-time-badge{text-align:right;flex-shrink:0;}
.conn-date{font-size:0.65rem;color:var(--cyan);font-weight:700;}
.conn-hour{font-size:0.6rem;color:var(--muted);}
.conn-details{display:grid;grid-template-columns:1fr 1fr;gap:0.3rem 0.6rem;}
.conn-detail-row{display:flex;align-items:center;gap:0.35rem;font-size:0.68rem;color:var(--muted);}
.conn-detail-row span:first-child{flex-shrink:0;font-size:0.8rem;}
.conn-detail-val{color:var(--text);font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.conn-badge{display:inline-flex;align-items:center;gap:0.2rem;font-size:0.58rem;font-weight:800;padding:0.1rem 0.38rem;border-radius:6px;text-transform:uppercase;letter-spacing:0.05em;}
.conn-badge-new{background:rgba(0,255,170,0.12);color:var(--green);border:1px solid rgba(0,255,170,0.25);}
.conn-badge-return{background:rgba(0,229,255,0.1);color:var(--cyan);border:1px solid rgba(0,229,255,0.2);}
.conn-badge-suspicious{background:rgba(255,68,102,0.12);color:var(--red);border:1px solid rgba(255,68,102,0.25);}
.conn-actions{display:flex;gap:0.35rem;margin-top:0.55rem;flex-wrap:wrap;}
.conn-action-btn{font-size:0.62rem;font-weight:700;padding:0.22rem 0.5rem;border-radius:6px;cursor:pointer;font-family:'DM Sans',sans-serif;border:1px solid;background:none;transition:all 0.15s;}
.conn-filter-bar{display:flex;gap:0.4rem;flex-wrap:wrap;margin-bottom:1rem;}
.conn-filter-btn{padding:0.3rem 0.7rem;border-radius:20px;font-size:0.72rem;font-weight:700;border:1px solid rgba(255,255,255,0.1);background:rgba(255,255,255,0.04);color:var(--muted);cursor:pointer;transition:all 0.18s;font-family:'DM Sans',sans-serif;}
.conn-filter-btn.active{background:rgba(0,229,255,0.12);border-color:rgba(0,229,255,0.3);color:var(--cyan);}
.conn-stats-row{display:flex;gap:0.6rem;margin-bottom:1rem;overflow-x:auto;padding-bottom:0.3rem;scrollbar-width:none;}
.conn-stats-row::-webkit-scrollbar{display:none;}
.conn-stat-chip{flex-shrink:0;background:var(--surface2);border-radius:12px;padding:0.65rem 0.9rem;min-width:80px;border:1px solid rgba(255,255,255,0.06);}
.conn-stat-val{font-family:'Syne',sans-serif;font-weight:800;font-size:1.1rem;}
.conn-stat-lbl{font-size:0.58rem;color:var(--muted);text-transform:uppercase;letter-spacing:0.06em;margin-top:0.1rem;}
.conn-live-dot{width:7px;height:7px;background:var(--green);border-radius:50%;animation:pulse 1.5s infinite;display:inline-block;margin-right:0.3rem;}

/* ══ WHATSAPP BROADCAST ══ */
.wa-modal{background:var(--surface);border:1px solid rgba(37,211,102,0.35);border-radius:24px;padding:1.6rem 1.4rem;width:min(400px,100%);max-height:92vh;overflow-y:auto;box-shadow:0 0 40px rgba(37,211,102,0.15);animation:popIn 0.3s cubic-bezier(0.34,1.56,0.64,1);}
.wa-modal-title{font-family:'Syne',sans-serif;font-size:1.05rem;font-weight:800;color:#25d366;margin-bottom:0.25rem;display:flex;align-items:center;gap:0.45rem;}
.wa-modal-sub{font-size:0.75rem;color:var(--muted);margin-bottom:1.1rem;}
.wa-etab-list{display:flex;flex-direction:column;gap:0.45rem;max-height:260px;overflow-y:auto;margin-bottom:1rem;padding-right:0.2rem;}
.wa-etab-list::-webkit-scrollbar{width:3px;}
.wa-etab-list::-webkit-scrollbar-thumb{background:rgba(37,211,102,0.3);border-radius:3px;}
.wa-etab-item{display:flex;align-items:center;gap:0.65rem;background:rgba(37,211,102,0.05);border:1px solid rgba(37,211,102,0.15);border-radius:10px;padding:0.55rem 0.7rem;cursor:pointer;transition:all 0.15s;user-select:none;}
.wa-etab-item:active{opacity:0.8;}
.wa-etab-item.selected{background:rgba(37,211,102,0.12);border-color:rgba(37,211,102,0.45);}
.wa-etab-check{width:18px;height:18px;border-radius:5px;border:2px solid rgba(37,211,102,0.4);background:transparent;flex-shrink:0;display:flex;align-items:center;justify-content:center;font-size:0.7rem;transition:all 0.15s;}
.wa-etab-item.selected .wa-etab-check{background:#25d366;border-color:#25d366;color:#000;}
.wa-etab-name{font-size:0.82rem;font-weight:700;color:var(--text);flex:1;}
.wa-etab-num{font-size:0.68rem;color:var(--muted);}
.wa-etab-nonum{font-size:0.65rem;color:rgba(255,68,102,0.6);font-style:italic;}
.wa-select-all-row{display:flex;align-items:center;justify-content:space-between;margin-bottom:0.6rem;}
.wa-select-all-btn{background:none;border:1px solid rgba(37,211,102,0.3);color:#25d366;font-size:0.7rem;font-weight:700;padding:0.22rem 0.6rem;border-radius:6px;cursor:pointer;font-family:'DM Sans',sans-serif;transition:all 0.15s;}
.wa-select-all-btn:active{opacity:0.75;}
.wa-count-label{font-size:0.7rem;color:var(--muted);}
.wa-msg-field{margin-bottom:1rem;}
.wa-msg-field label{display:block;font-size:0.72rem;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:0.06em;margin-bottom:0.4rem;}
.wa-msg-field textarea{width:100%;background:var(--surface2);border:1px solid rgba(37,211,102,0.25);border-radius:10px;color:var(--text);font-family:'DM Sans',sans-serif;font-size:0.85rem;padding:0.65rem 0.85rem;outline:none;resize:vertical;min-height:80px;transition:border-color 0.2s;}
.wa-msg-field textarea:focus{border-color:rgba(37,211,102,0.55);}
.wa-msg-field textarea::placeholder{color:var(--muted);}
.wa-send-btn{width:100%;padding:0.8rem;border-radius:12px;border:none;background:linear-gradient(135deg,#25d366,#128c7e);color:#fff;font-family:'Syne',sans-serif;font-weight:800;font-size:0.95rem;cursor:pointer;transition:opacity 0.2s;display:flex;align-items:center;justify-content:center;gap:0.45rem;}
.wa-send-btn:active{opacity:0.85;}
.wa-send-btn:disabled{opacity:0.45;cursor:not-allowed;}
.wa-progress{margin-top:0.8rem;display:none;}
.wa-progress-bar{background:rgba(37,211,102,0.12);border-radius:100px;height:6px;overflow:hidden;margin-bottom:0.35rem;}
.wa-progress-fill{height:100%;background:linear-gradient(90deg,#25d366,#128c7e);border-radius:100px;transition:width 0.35s ease;}
.wa-progress-lbl{font-size:0.7rem;color:#25d366;text-align:center;}
.wa-admin-broadcast-btn{width:100%;padding:0.75rem;border-radius:12px;border:1px solid rgba(37,211,102,0.4);background:rgba(37,211,102,0.08);color:#25d366;font-family:'Syne',sans-serif;font-weight:800;font-size:0.88rem;cursor:pointer;margin-bottom:1rem;transition:all 0.2s;display:flex;align-items:center;justify-content:center;gap:0.4rem;}
.wa-admin-broadcast-btn:active{opacity:0.8;}

/* ══ SUPER-ADMIN GUIDE ══ */
.sa-sub-btn{padding:0.3rem 0.6rem;border-radius:7px;border:1px solid rgba(255,45,155,0.25);background:rgba(255,45,155,0.06);color:var(--muted);font-size:0.68rem;font-weight:700;cursor:pointer;font-family:'DM Sans',sans-serif;transition:all 0.2s;white-space:nowrap;}
.sa-sub-btn.active{background:rgba(255,45,155,0.18);border-color:var(--pink);color:var(--pink);}
.sa-sub-btn:active{opacity:0.7;}
.sa-panel{display:none;}
.sa-panel.active{display:block;}
.sa-section-title{font-family:'Syne',sans-serif;font-size:0.88rem;font-weight:800;color:var(--text);margin-bottom:0.9rem;padding-bottom:0.5rem;border-bottom:1px solid rgba(255,45,155,0.2);}
.sa-block-title{font-size:0.7rem;font-weight:800;text-transform:uppercase;letter-spacing:0.08em;color:var(--cyan);margin:1rem 0 0.5rem;}
.sa-table{display:flex;flex-direction:column;gap:0;}
.sa-row{display:flex;gap:0.7rem;align-items:flex-start;padding:0.55rem 0;border-bottom:1px solid rgba(255,255,255,0.04);}
.sa-row:last-child{border-bottom:none;}
.sa-icon{font-size:1rem;flex-shrink:0;width:24px;text-align:center;margin-top:0.1rem;}
.sa-step-num{width:22px;height:22px;border-radius:50%;background:linear-gradient(135deg,var(--red),var(--pink));color:#fff;font-family:'Syne',sans-serif;font-weight:800;font-size:0.7rem;display:flex;align-items:center;justify-content:center;flex-shrink:0;margin-top:0.1rem;}
.sa-info{flex:1;}
.sa-task{font-size:0.78rem;font-weight:700;color:var(--text);margin-bottom:0.15rem;}
.sa-how{font-size:0.7rem;color:var(--muted);line-height:1.45;}
.sa-how code{background:rgba(0,229,255,0.08);color:var(--cyan);padding:0.05rem 0.3rem;border-radius:4px;font-size:0.65rem;}
.sa-check-item{display:flex;align-items:flex-start;gap:0.7rem;padding:0.55rem 0.7rem;background:rgba(255,255,255,0.03);border:1px solid rgba(255,255,255,0.06);border-radius:9px;cursor:pointer;font-size:0.75rem;color:var(--text);transition:all 0.2s;line-height:1.4;}
.sa-check-item:active{opacity:0.7;}
.sa-check-item.done{background:rgba(0,255,170,0.06);border-color:rgba(0,255,170,0.2);color:var(--muted);text-decoration:line-through;}
.sa-check-box{font-size:1rem;flex-shrink:0;line-height:1.2;}

/* ══ MODAL GUIDE ══ */
.guide-btn{background:rgba(0,229,255,0.08);border:1px solid rgba(0,229,255,0.25);color:var(--cyan);font-size:0.75rem;font-weight:700;padding:0.2rem 0.4rem;border-radius:20px;cursor:pointer;font-family:'DM Sans',sans-serif;display:flex;align-items:center;gap:0.2rem;transition:all 0.2s;white-space:nowrap;flex-shrink:0;}
.guide-btn:active{opacity:0.75;}
.guide-btn .guide-label{display:none;}
@media(min-width:420px){.guide-btn .guide-label{display:inline;}}
.header-guide-bar .guide-btn .guide-label{display:inline !important;}
.guide-overlay{display:none;position:fixed;inset:0;z-index:300;background:rgba(0,0,0,0.88);backdrop-filter:blur(10px);align-items:center;justify-content:center;padding:1rem;}
.guide-overlay.show{display:flex;}
.guide-modal{background:var(--surface);border:1px solid rgba(0,229,255,0.25);border-radius:24px;width:min(420px,100%);max-height:88vh;overflow-y:auto;box-shadow:0 0 40px rgba(0,229,255,0.12);animation:popIn 0.3s cubic-bezier(0.34,1.56,0.64,1);position:relative;}
.guide-modal-head{padding:1.4rem 1.5rem 0.8rem;border-bottom:1px solid rgba(255,255,255,0.07);display:flex;align-items:center;justify-content:space-between;gap:0.8rem;position:sticky;top:0;background:var(--surface);z-index:1;border-radius:24px 24px 0 0;}
.guide-modal-title{font-family:'Syne',sans-serif;font-weight:800;font-size:1.05rem;color:var(--cyan);}
.guide-close{background:rgba(255,255,255,0.05);border:1px solid rgba(255,255,255,0.1);color:var(--muted);width:30px;height:30px;border-radius:50%;cursor:pointer;font-size:0.9rem;display:flex;align-items:center;justify-content:center;flex-shrink:0;}
.guide-tabs{display:flex;gap:0.3rem;background:var(--surface2);border-radius:10px;padding:0.25rem;margin:1rem 1.5rem 0;}
.guide-tab{flex:1;padding:0.4rem 0.3rem;border-radius:7px;font-size:0.75rem;font-weight:700;cursor:pointer;border:none;background:transparent;color:var(--muted);font-family:'DM Sans',sans-serif;transition:all 0.2s;text-align:center;}
.guide-tab.active{background:var(--cyan);color:#000;}
.guide-body{padding:1rem 1.5rem 1.5rem;}
.guide-panel{display:none;}
.guide-panel.active{display:block;}
.guide-step{display:flex;gap:0.8rem;margin-bottom:1rem;align-items:flex-start;}
.guide-step-num{width:26px;height:26px;border-radius:50%;background:linear-gradient(135deg,var(--cyan),var(--pink));color:#000;font-family:'Syne',sans-serif;font-weight:800;font-size:0.75rem;display:flex;align-items:center;justify-content:center;flex-shrink:0;margin-top:0.05rem;}
.guide-step-text{flex:1;}
.guide-step-title{font-family:'Syne',sans-serif;font-weight:700;font-size:0.85rem;color:var(--text);margin-bottom:0.2rem;}
.guide-step-desc{font-size:0.75rem;color:var(--muted);line-height:1.5;}
.guide-role-card{background:var(--surface2);border-radius:12px;padding:0.85rem;margin-bottom:0.7rem;border:1px solid rgba(255,255,255,0.06);}
.guide-role-title{font-family:'Syne',sans-serif;font-weight:800;font-size:0.85rem;margin-bottom:0.5rem;}
.guide-role-list{font-size:0.75rem;color:var(--muted);line-height:1.8;padding-left:1rem;}
.guide-tool-row{display:flex;gap:0.7rem;align-items:flex-start;padding:0.6rem 0;border-bottom:1px solid rgba(255,255,255,0.04);}
.guide-tool-row:last-child{border-bottom:none;}
.guide-tool-icon{font-size:1.1rem;flex-shrink:0;width:24px;text-align:center;margin-top:0.05rem;}
.guide-tool-info{flex:1;}
.guide-tool-name{font-size:0.8rem;font-weight:700;color:var(--text);}
.guide-tool-desc{font-size:0.72rem;color:var(--muted);margin-top:0.1rem;line-height:1.4;}

/* ════════════════════════════════════════════════════════════════
   PHOTOS CHAUFFEURS & LOGO TAXI PRO
   ════════════════════════════════════════════════════════════════ */

.taxi-pro-logo {
  width: 120px;
  height: 120px;
  margin: 0 auto 1rem;
  background: linear-gradient(135deg, #9D84FF, #7C5FE8);
  border-radius: 20px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 60px;
  box-shadow: 0 12px 32px rgba(255, 184, 0, 0.35);
  border: 3px solid rgba(255, 255, 255, 0.15);
}

.taxi-pro-branding {
  text-align: center;
  margin-bottom: 1.5rem;
}

.taxi-pro-title {
  font-family: 'Syne', sans-serif;
  font-size: 1.3rem;
  font-weight: 900;
  background: linear-gradient(135deg, #9D84FF, #7C5FE8);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
  letter-spacing: 0.05em;
  margin: 0.5rem 0;
}

.taxi-pro-subtitle {
  font-size: 0.75rem;
  color: var(--muted);
  text-transform: uppercase;
  letter-spacing: 0.1em;
  font-weight: 700;
}

.driver-photo-upload {
  width: 100%;
  padding: 1rem;
  margin-bottom: 1rem;
  background: rgba(255, 184, 0, 0.08);
  border: 2px dashed rgba(255, 184, 0, 0.3);
  border-radius: 12px;
  text-align: center;
  cursor: pointer;
  transition: all 0.3s;
}

.driver-photo-upload:hover {
  background: rgba(255, 184, 0, 0.12);
  border-color: rgba(255, 184, 0, 0.5);
}

.driver-photo-preview {
  width: 100px;
  height: 100px;
  border-radius: 12px;
  object-fit: cover;
  border: 3px solid var(--taxi-gold);
  margin: 0 auto 0.5rem;
  display: block;
}

.driver-initials-circle {
  width: 100px;
  height: 100px;
  border-radius: 12px;
  background: linear-gradient(135deg, #9D84FF, #7C5FE8);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 36px;
  font-weight: 900;
  color: var(--taxi-dark);
  margin: 0 auto 0.5rem;
  font-family: 'Syne', sans-serif;
}

/* ── TAXI CARD V2 : numéro + WhatsApp + photo chauffeur ── */
.taxi-card-v2{align-items:center;}
.taxi-phone-row{display:flex;align-items:center;gap:6px;margin-top:5px;}
.taxi-phone-num{font-size:11px;color:var(--taxi-gold);font-weight:600;letter-spacing:0.02em;opacity:0.85;}
.taxi-action-col{display:flex;flex-direction:column;align-items:flex-end;gap:7px;flex-shrink:0;}
.taxi-wa-btn{background:rgba(37,211,102,0.18);border:1.5px solid rgba(37,211,102,0.5);color:#25d366;width:36px;height:28px;border-radius:8px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all 0.2s;flex-shrink:0;}
.taxi-wa-btn:hover{background:rgba(37,211,102,0.3);box-shadow:0 3px 10px rgba(37,211,102,0.3);}
.taxi-wa-btn:active{transform:scale(0.92);}
.taxi-call-wrap{position:relative;display:flex;align-items:center;}
.taxi-driver-avatar{width:26px;height:26px;border-radius:50%;object-fit:cover;border:2px solid var(--taxi-gold);position:absolute;left:-14px;top:50%;transform:translateY(-50%);box-shadow:0 2px 8px rgba(0,0,0,0.5);z-index:1;}
.taxi-driver-initials{width:26px;height:26px;border-radius:50%;background:linear-gradient(135deg,#9D84FF,#7C5FE8);border:2px solid rgba(255,255,255,0.3);position:absolute;left:-14px;top:50%;transform:translateY(-50%);box-shadow:0 2px 8px rgba(0,0,0,0.5);z-index:1;display:flex;align-items:center;justify-content:center;font-size:9px;font-weight:800;color:var(--taxi-dark);}
.taxi-call-wrap .taxi-contact-action{padding-left:18px;}

.taxi-admin-form{background:linear-gradient(135deg,rgba(157,132,255,0.12),rgba(157,132,255,0.06));border:2px solid rgba(157,132,255,0.25);border-radius:12px;padding:16px;margin-bottom:18px;backdrop-filter:blur(10px);}

.taxi-admin-btn{width:100%;padding:13px;background:rgba(157,132,255,0.2);border:1.5px solid rgba(157,132,255,0.4);color:var(--taxi-gold);border-radius:10px;font-size:14px;font-weight:800;cursor:pointer;transition:all 0.25s ease;font-family:'DM Sans',sans-serif;margin-bottom:10px;text-transform:uppercase;letter-spacing:0.03em;}

.taxi-admin-btn:hover{background:rgba(157,132,255,0.3);border-color:var(--taxi-gold);box-shadow:0 4px 12px rgba(157,132,255,0.2);}

.taxi-admin-btn.delete{background:rgba(255,68,102,0.15);border-color:rgba(255,68,102,0.35);color:var(--red);}

.taxi-admin-btn.delete:hover{background:rgba(255,68,102,0.25);border-color:var(--red);box-shadow:0 4px 12px rgba(255,68,102,0.2);}

.taxi-admin-lock{background:linear-gradient(135deg,rgba(255,68,102,0.15),rgba(255,68,102,0.08));border:1.5px solid rgba(255,68,102,0.3);border-radius:10px;padding:14px;margin-bottom:18px;display:flex;align-items:center;gap:10px;color:var(--red);font-size:13px;font-weight:700;}

.taxi-admin-lock::before{content:'🔒';font-size:18px;}

/* ════════════════════════════════════════════════
   TABLEAU DE BORD CONDUCTEUR / LIVREUR
   ════════════════════════════════════════════════ */

/* Barre de rôle */
.tdb-role-bar{display:flex;gap:6px;margin-bottom:16px;background:rgba(157,132,255,0.06);border:1.5px solid rgba(157,132,255,0.15);border-radius:14px;padding:5px;}
.tdb-role-btn{flex:1;padding:9px 6px;border-radius:10px;border:none;background:transparent;color:var(--muted);font-size:12px;font-weight:700;cursor:pointer;font-family:'DM Sans',sans-serif;transition:all 0.22s;white-space:nowrap;text-align:center;}
.tdb-role-btn.active{background:linear-gradient(135deg,rgba(157,132,255,0.3),rgba(157,132,255,0.15));color:var(--taxi-gold);box-shadow:0 3px 10px rgba(157,132,255,0.18);}
.tdb-role-btn:active{transform:scale(0.94);}

/* Carte statut */
.tdb-status-card{display:flex;align-items:center;justify-content:space-between;background:rgba(255,255,255,0.025);border:1.5px solid rgba(157,132,255,0.15);border-radius:14px;padding:14px 16px;margin-bottom:16px;transition:border-color 0.3s;}
.tdb-status-left{display:flex;align-items:center;gap:10px;}
.tdb-status-dot{width:10px;height:10px;border-radius:50%;background:rgba(255,68,102,0.6);flex-shrink:0;transition:all 0.3s;}
.tdb-status-dot.tdb-dot-active{background:var(--green);box-shadow:0 0 10px rgba(0,255,170,0.5);animation:pulse 1.4s infinite;}
.tdb-status-label{font-family:'Syne',sans-serif;font-weight:800;font-size:14px;color:var(--text);}
.tdb-status-sub{font-size:11px;color:var(--muted);margin-top:2px;}
/* Toggle */
.tdb-toggle{position:relative;width:46px;height:26px;flex-shrink:0;}
.tdb-toggle input{opacity:0;width:0;height:0;}
.tdb-toggle-slider{position:absolute;inset:0;background:rgba(255,255,255,0.1);border-radius:26px;cursor:pointer;transition:.25s;border:1.5px solid rgba(255,255,255,0.1);}
.tdb-toggle-slider:before{content:'';position:absolute;width:18px;height:18px;left:3px;top:2px;background:#fff;border-radius:50%;transition:.25s;box-shadow:0 2px 6px rgba(0,0,0,0.3);}
.tdb-toggle input:checked+.tdb-toggle-slider{background:linear-gradient(135deg,var(--green),#00cc88);border-color:rgba(0,255,170,0.4);}
.tdb-toggle input:checked+.tdb-toggle-slider:before{transform:translateX(20px);}

/* KPI Grid */
.tdb-kpi-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:16px;}
.tdb-kpi{background:rgba(255,255,255,0.025);border:1.5px solid rgba(157,132,255,0.12);border-radius:13px;padding:12px 10px;text-align:center;transition:border-color 0.2s;}
.tdb-kpi:hover{border-color:rgba(157,132,255,0.3);}
.tdb-kpi-icon{font-size:18px;margin-bottom:4px;}
.tdb-kpi-val{font-family:'Syne',sans-serif;font-weight:800;font-size:15px;color:var(--taxi-gold);line-height:1;}
.tdb-kpi-lbl{font-size:10px;color:var(--muted);margin-top:3px;text-transform:uppercase;letter-spacing:0.04em;}

/* Mission en cours */
.tdb-mission-card{background:linear-gradient(135deg,rgba(157,132,255,0.12),rgba(157,132,255,0.06));border:2px solid rgba(157,132,255,0.35);border-radius:16px;padding:14px 16px;margin-bottom:16px;animation:popIn .3s cubic-bezier(.34,1.56,.64,1);}
.tdb-mission-head{display:flex;align-items:center;gap:8px;margin-bottom:12px;}
.tdb-mission-pulse{width:8px;height:8px;border-radius:50%;background:var(--taxi-gold);box-shadow:0 0 8px rgba(157,132,255,.7);animation:pulse 1.2s infinite;flex-shrink:0;}
.tdb-mission-title{font-family:'Syne',sans-serif;font-weight:800;font-size:13px;color:var(--taxi-gold);flex:1;}
.tdb-mission-timer{font-family:'Syne',sans-serif;font-weight:800;font-size:18px;color:var(--text);background:rgba(0,0,0,.3);padding:3px 10px;border-radius:8px;letter-spacing:.05em;}
.tdb-mission-route{background:rgba(0,0,0,.2);border-radius:10px;padding:10px 12px;margin-bottom:10px;}
.tdb-route-row{display:flex;align-items:center;gap:8px;}
.tdb-route-dot{width:10px;height:10px;border-radius:50%;flex-shrink:0;}
.tdb-dot-green{background:var(--green);box-shadow:0 0 6px rgba(0,255,170,.5);}
.tdb-dot-gold{background:var(--taxi-gold);box-shadow:0 0 6px rgba(157,132,255,.5);}
.tdb-route-line{width:2px;height:12px;background:rgba(255,255,255,.15);margin:2px 0 2px 4px;}
.tdb-route-txt{font-size:13px;color:var(--text);font-weight:600;}
.tdb-mission-client{display:flex;align-items:center;gap:10px;background:rgba(255,255,255,.03);border-radius:10px;padding:8px 10px;margin-bottom:10px;}
.tdb-client-avatar{font-size:22px;flex-shrink:0;}
.tdb-client-name{font-size:13px;font-weight:700;color:var(--text);}
.tdb-client-info{font-size:11px;color:var(--muted);margin-top:1px;}
.tdb-call-btn{margin-left:auto;background:rgba(0,255,170,.15);border:1.5px solid rgba(0,255,170,.35);color:var(--green);width:36px;height:36px;border-radius:50%;cursor:pointer;font-size:15px;display:flex;align-items:center;justify-content:center;flex-shrink:0;}
.tdb-call-btn:active{transform:scale(.9);}
.tdb-mission-actions{display:flex;gap:8px;}
.tdb-act-btn{flex:1;padding:10px 8px;border-radius:10px;font-size:12px;font-weight:800;cursor:pointer;font-family:'DM Sans',sans-serif;border:1.5px solid;transition:all .2s;display:flex;align-items:center;justify-content:center;gap:4px;}
.tdb-btn-start{background:rgba(0,255,170,.15);border-color:rgba(0,255,170,.4);color:var(--green);}
.tdb-btn-end{background:rgba(157,132,255,.2);border-color:var(--taxi-gold);color:var(--taxi-gold);}
.tdb-btn-report{background:rgba(255,68,102,.1);border-color:rgba(255,68,102,.3);color:var(--red);}
.tdb-act-btn:active{transform:scale(.93);}

/* Nouvelle demande */
.tdb-request-card{background:linear-gradient(135deg,rgba(0,229,255,0.1),rgba(0,229,255,0.05));border:2px solid rgba(0,229,255,0.4);border-radius:16px;padding:14px 16px;margin-bottom:16px;animation:popIn .3s cubic-bezier(.34,1.56,.64,1);}
.tdb-req-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px;}
.tdb-req-badge{font-size:10px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--cyan);background:rgba(0,229,255,.12);border:1px solid rgba(0,229,255,.3);padding:3px 8px;border-radius:6px;}
.tdb-req-countdown{font-family:'Syne',sans-serif;font-weight:800;font-size:18px;color:var(--red);}
.tdb-req-body{background:rgba(0,0,0,.2);border-radius:10px;padding:10px;margin-bottom:10px;}
.tdb-req-row{display:flex;align-items:center;gap:8px;padding:4px 0;font-size:13px;color:var(--text);}
.tdb-req-icon{font-size:14px;flex-shrink:0;width:20px;text-align:center;}
.tdb-req-actions{display:flex;gap:8px;}
.tdb-req-accept{flex:1;padding:11px;border-radius:10px;background:linear-gradient(135deg,rgba(0,255,170,.25),rgba(0,255,170,.12));border:1.5px solid rgba(0,255,170,.45);color:var(--green);font-size:14px;font-weight:800;cursor:pointer;font-family:'DM Sans',sans-serif;}
.tdb-req-decline{flex:1;padding:11px;border-radius:10px;background:rgba(255,68,102,.1);border:1.5px solid rgba(255,68,102,.3);color:var(--red);font-size:14px;font-weight:800;cursor:pointer;font-family:'DM Sans',sans-serif;}
.tdb-req-accept:active,.tdb-req-decline:active{transform:scale(.95);}

/* Section title */
.tdb-section-title{font-family:'Syne',sans-serif;font-weight:800;font-size:11px;color:var(--taxi-gold);text-transform:uppercase;letter-spacing:.08em;display:flex;align-items:center;gap:6px;margin-bottom:10px;}
.tdb-section-title::after{content:'';flex:1;height:1px;background:rgba(255,184,0,.15);}

/* Info card (conducteur/livreur) */
.tdb-info-card{background:rgba(255,255,255,.025);border:1.5px solid rgba(255,184,0,.12);border-radius:13px;padding:12px 14px;margin-bottom:10px;}
.tdb-info-row{display:flex;align-items:center;justify-content:space-between;padding:5px 0;border-bottom:1px solid rgba(255,255,255,.05);font-size:12px;color:var(--muted);}
.tdb-info-row:last-child{border-bottom:none;}
.tdb-info-val{font-weight:700;color:var(--text);font-size:12px;}
.tdb-amber{color:var(--amber)!important;}
.tdb-green{color:var(--green)!important;}
.tdb-red{color:var(--red)!important;}

/* Tools grid */
.tdb-tools-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;}
.tdb-tool-btn{display:flex;flex-direction:column;align-items:center;gap:5px;padding:12px 8px;background:rgba(255,255,255,.025);border:1.5px solid rgba(255,184,0,.12);border-radius:12px;color:var(--text);font-size:11px;font-weight:700;cursor:pointer;font-family:'DM Sans',sans-serif;transition:all .2s;text-align:center;}
.tdb-tool-btn:hover{background:rgba(255,184,0,.1);border-color:rgba(255,184,0,.3);}
.tdb-tool-btn:active{transform:scale(.93);}
.tdb-tool-icon{font-size:20px;}

/* Zones actives */
.tdb-zones-list{display:flex;flex-direction:column;gap:6px;}
.tdb-zone-item{display:flex;align-items:center;gap:8px;background:rgba(255,255,255,.025);border:1px solid rgba(255,255,255,.06);border-radius:10px;padding:9px 12px;font-size:12px;color:var(--text);}
.tdb-zone-item:nth-child(2){flex:1;}
.tdb-zone-badge{margin-left:auto;font-size:10px;font-weight:700;color:var(--muted);background:rgba(255,255,255,.06);padding:2px 7px;border-radius:6px;white-space:nowrap;}
.tdb-zone-hot{border-color:rgba(255,68,102,.2);background:rgba(255,68,102,.05);}
.tdb-zone-med{border-color:rgba(255,215,0,.2);background:rgba(255,215,0,.04);}
.tdb-zone-low{border-color:rgba(0,255,170,.15);background:rgba(0,255,170,.04);}

/* Horaires conducteur */
.tdb-schedule-list{display:flex;flex-direction:column;gap:6px;}
.tdb-schedule-item{display:flex;align-items:center;gap:10px;background:rgba(255,255,255,.025);border:1px solid rgba(255,255,255,.06);border-radius:10px;padding:9px 12px;font-size:12px;color:var(--muted);}
.tdb-schedule-item span:first-child{font-family:'Syne',sans-serif;font-weight:800;font-size:12px;color:var(--text);min-width:40px;}
.tdb-schedule-item span:nth-child(2){flex:1;}
.tdb-sch-badge{font-size:10px;font-weight:700;padding:2px 7px;border-radius:6px;white-space:nowrap;}
.tdb-done{background:rgba(0,255,170,.1);color:var(--green);}
.tdb-now{background:rgba(157,132,255,.2);color:var(--taxi-gold);}
.tdb-sch-done{opacity:.6;}
.tdb-sch-now{border-color:rgba(255,184,0,.3);background:rgba(255,184,0,.06);}
.tdb-sch-badge:not(.tdb-done):not(.tdb-now){background:rgba(255,255,255,.06);color:var(--muted);}

/* Livraisons */
.tdb-delivery-item{display:flex;align-items:center;gap:10px;background:rgba(255,255,255,.025);border:1.5px solid rgba(255,184,0,.1);border-radius:12px;padding:10px 12px;margin-bottom:8px;transition:opacity .3s;}
.tdb-del-num{width:24px;height:24px;border-radius:50%;background:linear-gradient(135deg,#9D84FF,#7C5FE8);color:#ffffff;font-weight:800;font-size:12px;display:flex;align-items:center;justify-content:center;flex-shrink:0;}
.tdb-del-info{flex:1;min-width:0;}
.tdb-del-name{font-size:12px;font-weight:700;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.tdb-del-addr{font-size:11px;color:var(--muted);margin-top:1px;}
.tdb-del-note{font-size:10px;color:var(--amber);margin-top:2px;}
.tdb-del-btn{background:rgba(0,255,170,.12);border:1.5px solid rgba(0,255,170,.3);color:var(--green);font-size:11px;font-weight:800;padding:6px 10px;border-radius:8px;cursor:pointer;white-space:nowrap;font-family:'DM Sans',sans-serif;flex-shrink:0;}
.tdb-del-btn:active{transform:scale(.9);}

/* Historique */
.tdb-history-list{display:flex;flex-direction:column;gap:7px;}
.tdb-history-item{display:flex;align-items:center;gap:10px;background:rgba(255,255,255,.02);border:1px solid rgba(255,255,255,.06);border-radius:12px;padding:10px 12px;transition:all .2s;}
.tdb-history-item.tdb-hist-new{border-color:rgba(255,184,0,.3);background:rgba(255,184,0,.05);animation:popIn .4s cubic-bezier(.34,1.56,.64,1);}
.tdb-hist-icon{width:28px;height:28px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:13px;flex-shrink:0;}
.tdb-done-icon{background:rgba(0,255,170,.12);color:var(--green);border:1.5px solid rgba(0,255,170,.25);}
.tdb-hist-info{flex:1;min-width:0;}
.tdb-hist-route{font-size:12px;font-weight:700;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.tdb-hist-time{font-size:10px;color:var(--muted);margin-top:1px;}
.tdb-hist-price{font-family:'Syne',sans-serif;font-weight:800;font-size:12px;color:var(--taxi-gold);white-space:nowrap;margin-right:4px;}
.tdb-hist-stars{font-size:10px;white-space:nowrap;}
.tdb-hist-more{background:rgba(255,184,0,.08);border:1.5px solid rgba(157,132,255,.2);color:var(--muted);font-size:12px;font-weight:700;padding:8px 20px;border-radius:20px;cursor:pointer;font-family:'DM Sans',sans-serif;transition:all .2s;}
.tdb-hist-more:hover{background:rgba(255,184,0,.15);color:var(--taxi-gold);}

/* ═════════════════════════════════════════════════════════════════
   TAXI PRO PROFESSIONNEL - SYSTÈME DE COMMANDE AVANCÉ
   ═════════════════════════════════════════════════════════════════ */

.taxi-pro-command-step { display: none; }
.taxi-pro-command-step.active { display: block; animation: fadeIn 0.4s ease; }

.taxi-vehicle-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin-bottom: 16px; }
.taxi-vehicle-card { padding: 14px; background: rgba(157,132,255,0.08); border: 2px solid rgba(157,132,255,0.2); border-radius: 12px; text-align: center; cursor: pointer; transition: all 0.3s; }
.taxi-vehicle-card.selected { background: rgba(157,132,255,0.2); border-color: var(--taxi-gold); box-shadow: 0 4px 12px rgba(157,132,255,0.25); }
.taxi-vehicle-icon { font-size: 32px; margin-bottom: 6px; }
.taxi-vehicle-name { font-weight: 700; font-size: 13px; color: var(--text); }
.taxi-vehicle-info { font-size: 11px; color: var(--muted); margin-top: 4px; }

.taxi-currency-ribbon { display: flex; gap: 8px; overflow-x: auto; margin-bottom: 12px; padding-bottom: 8px; }
.taxi-currency-badge { padding: 6px 14px; background: rgba(157,132,255,0.08); border: 1.5px solid rgba(157,132,255,0.2); border-radius: 20px; cursor: pointer; font-size: 12px; font-weight: 700; white-space: nowrap; transition: all 0.2s; }
.taxi-currency-badge.active { background: rgba(157,132,255,0.25); border-color: var(--taxi-gold); color: var(--taxi-gold); }

.taxi-drivers-available { max-height: 220px; overflow-y: auto; border: 2px solid rgba(157,132,255,0.15); border-radius: 12px; margin: 12px 0; }
.taxi-driver-item { padding: 10px; border-bottom: 1px solid rgba(157,132,255,0.1); cursor: pointer; display: flex; align-items: center; gap: 10px; transition: all 0.2s; }
.taxi-driver-item:hover { background: rgba(157,132,255,0.08); }
.taxi-driver-item.selected { background: rgba(157,132,255,0.15); border-left: 3px solid var(--taxi-gold); }
.taxi-driver-avatar { width: 40px; height: 40px; border-radius: 50%; background: linear-gradient(135deg, #9D84FF, #7C5FE8); display: flex; align-items: center; justify-content: center; font-weight: 700; flex-shrink: 0; color: var(--taxi-dark); }
.taxi-driver-info { flex: 1; min-width: 0; }
.taxi-driver-name { font-weight: 700; font-size: 12px; color: var(--text); }
.taxi-driver-meta { font-size: 11px; color: var(--muted); margin-top: 2px; }
.taxi-driver-status { font-size: 10px; padding: 2px 8px; border-radius: 10px; background: rgba(0,255,170,0.15); color: var(--green); font-weight: 700; white-space: nowrap; }

.taxi-gps-options { display: flex; gap: 8px; margin-bottom: 12px; }
.taxi-gps-btn { flex: 1; padding: 8px; background: rgba(157,132,255,0.08); border: 1.5px solid rgba(157,132,255,0.2); border-radius: 8px; cursor: pointer; font-size: 11px; font-weight: 700; color: var(--muted); transition: all 0.2s; }
.taxi-gps-btn.active { background: rgba(0,229,255,0.15); border-color: var(--cyan); color: var(--cyan); }

.taxi-price-display { font-family: 'Syne', sans-serif; font-weight: 900; font-size: 24px; color: var(--taxi-gold); margin-top: 8px; }

.taxi-step-indicator { font-size: 11px; color: var(--muted); text-transform: uppercase; letter-spacing: 0.05em; font-weight: 700; margin-bottom: 12px; }

.taxi-driver-response-modal { position: fixed; inset: 0; background: rgba(0,0,0,0.85); z-index: 700; display: none; align-items: center; justify-content: center; }
.taxi-driver-response-modal.show { display: flex; animation: fadeIn 0.3s; }
.taxi-response-box { background: var(--surface); border: 2px solid rgba(157,132,255,0.3); border-radius: 16px; padding: 20px; width: min(320px, 95vw); text-align: center; }
.taxi-response-icon { font-size: 48px; margin-bottom: 12px; }
.taxi-response-title { font-family: 'Syne', sans-serif; font-size: 16px; font-weight: 800; color: var(--text); margin-bottom: 8px; }
.taxi-response-msg { font-size: 13px; color: var(--muted); margin-bottom: 16px; line-height: 1.5; }
.taxi-response-actions { display: flex; flex-direction: column; gap: 8px; }
.taxi-response-btn { padding: 10px; border: none; border-radius: 8px; font-weight: 700; cursor: pointer; font-size: 12px; transition: all 0.2s; }
.taxi-response-accept { background: linear-gradient(135deg, var(--green), rgba(0,255,170,0.8)); color: #000; }
.taxi-response-reject { background: rgba(255,68,102,0.15); border: 1px solid rgba(255,68,102,0.3); color: var(--red); }
.taxi-response-counter { background: rgba(157,132,255,0.15); border: 1px solid rgba(157,132,255,0.3); color: var(--taxi-gold); }

.taxi-tracking-active { position: fixed; bottom: 90px; left: 10px; right: 10px; background: linear-gradient(135deg, rgba(0,255,170,0.12), rgba(0,229,255,0.08)); border: 2px solid var(--green); border-radius: 14px; padding: 12px; z-index: 300; display: none; animation: slideUp 0.4s; }
.taxi-tracking-active.show { display: block; }
.taxi-tracking-title { font-family: 'Syne', sans-serif; font-weight: 800; color: var(--green); margin-bottom: 6px; font-size: 13px; }
.taxi-tracking-status { display: flex; align-items: center; gap: 6px; font-size: 12px; color: var(--text); margin-bottom: 8px; }
.taxi-tracking-dot { width: 8px; height: 8px; border-radius: 50%; background: var(--green); animation: pulse 1.5s infinite; }
.taxi-tracking-driver { background: rgba(255,255,255,0.04); padding: 8px; border-radius: 8px; font-size: 11px; margin-bottom: 8px; }
.taxi-tracking-actions { display: flex; gap: 6px; }
.taxi-tracking-btn { flex: 1; padding: 6px; background: rgba(157,132,255,0.15); border: 1px solid rgba(157,132,255,0.3); border-radius: 6px; color: var(--taxi-gold); font-size: 10px; font-weight: 700; cursor: pointer; }

.taxi-toast-notif { position: fixed; top: 90px; left: 50%; transform: translateX(-50%); background: var(--taxi-gold); color: var(--taxi-dark); padding: 10px 16px; border-radius: 30px; z-index: 600; font-weight: 700; font-size: 12px; animation: slideDown 0.3s; }
@keyframes slideDown { from { opacity: 0; transform: translateX(-50%) translateY(-20px); } to { opacity: 1; transform: translateX(-50%) translateY(0); } }

/* ═════════════════════════════════════════════════════════════════
   ADMIN TAXI PRO - GESTION DES TRANSACTIONS
   ═════════════════════════════════════════════════════════════════ */

.taxi-trans-card { background: linear-gradient(135deg, rgba(157,132,255,0.12), rgba(157,132,255,0.06)); border: 1.5px solid rgba(157,132,255,0.25); border-radius: 10px; padding: 10px; transition: all 0.3s; }
.taxi-trans-card:hover { background: linear-gradient(135deg, rgba(157,132,255,0.18), rgba(157,132,255,0.1)); border-color: var(--taxi-gold); }
.taxi-trans-header { display: flex; justify-content: space-between; align-items: flex-start; margin-bottom: 8px; }
.taxi-trans-id { font-family: 'Syne', sans-serif; font-size: 12px; font-weight: 800; color: var(--taxi-gold); }
.taxi-trans-status { font-size: 10px; padding: 3px 8px; border-radius: 10px; font-weight: 700; }
.taxi-trans-status.pending { background: rgba(255,165,0,0.2); color: #ffa500; }
.taxi-trans-status.accepted { background: rgba(0,255,170,0.2); color: var(--green); }
.taxi-trans-status.rejected { background: rgba(255,68,102,0.2); color: var(--red); }
.taxi-trans-status.completed { background: rgba(0,229,255,0.2); color: var(--cyan); }
.taxi-trans-status.cancelled { background: rgba(255,68,102,0.15); color: var(--red); }

.taxi-trans-row { display: flex; justify-content: space-between; font-size: 11px; color: var(--muted); margin: 4px 0; }
.taxi-trans-label { font-weight: 700; color: var(--text); min-width: 80px; }
.taxi-trans-value { color: var(--amber); font-weight: 700; }

.taxi-trans-parties { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; margin: 8px 0; padding: 8px; background: rgba(255,255,255,0.03); border-radius: 8px; }
.taxi-trans-party { font-size: 10px; }
.taxi-trans-party-label { color: var(--muted); font-weight: 700; margin-bottom: 2px; }
.taxi-trans-party-name { color: var(--text); font-weight: 700; font-size: 11px; }
.taxi-trans-party-info { color: var(--muted); font-size: 9px; margin-top: 2px; }

.taxi-trans-actions { display: flex; gap: 6px; margin-top: 10px; }
.taxi-trans-btn { flex: 1; padding: 6px; font-size: 10px; border: none; border-radius: 6px; cursor: pointer; font-weight: 700; transition: all 0.2s; font-family: 'DM Sans', sans-serif; }
.taxi-trans-btn-approve { background: rgba(0,255,170,0.2); border: 1px solid rgba(0,255,170,0.4); color: var(--green); }
.taxi-trans-btn-approve:hover { background: rgba(0,255,170,0.3); }
.taxi-trans-btn-reject { background: rgba(255,68,102,0.2); border: 1px solid rgba(255,68,102,0.4); color: var(--red); }
.taxi-trans-btn-reject:hover { background: rgba(255,68,102,0.3); }
.taxi-trans-btn-info { background: rgba(0,229,255,0.2); border: 1px solid rgba(0,229,255,0.4); color: var(--cyan); }
.taxi-trans-btn-info:hover { background: rgba(0,229,255,0.3); }
.taxi-trans-btn-refund { background: rgba(255,215,0,0.2); border: 1px solid rgba(255,215,0,0.4); color: var(--amber); }
.taxi-trans-btn-refund:hover { background: rgba(255,215,0,0.3); }


/* ════════════════════════════════════════════════════════════════════════════ */
/* ── Profil : cacher onglets rôle quand membre connecté ── */
#sec-profil .demo-nav-profil.role-locked { display: none !important; }

/* ══ ÉCRAN VISITEUR — choix d'inscription depuis l'onglet Profil ══ */
#profil-visitor-screen {
  display: none;
  padding: 2rem 1.2rem 6rem;
  max-width: 480px;
  margin: 0 auto;
  text-align: center;
}
#profil-visitor-screen.show { display: block; }
#profil-visitor-screen .pvs-title {
  font-family: 'Syne', sans-serif;
  font-size: 1.5rem;
  font-weight: 800;
  color: var(--text);
  margin-bottom: 0.4rem;
  text-align: center;
}
#profil-visitor-screen .pvs-sub {
  font-size: 0.82rem;
  color: var(--muted);
  margin-bottom: 1.8rem;
  line-height: 1.6;
  text-align: center;
}
/* Cartes en colonne, hauteur uniforme via min-height */
.pvs-cards { display: flex; flex-direction: column; gap: 0.85rem; }
.pvs-card {
  background: var(--surface2);
  border-radius: 20px;
  padding: 1.2rem 1.4rem;
  display: flex;
  align-items: center;
  gap: 1rem;
  cursor: pointer;
  border: 1.5px solid rgba(255,255,255,0.06);
  transition: all 0.22s;
  text-align: left;
  position: relative;
  overflow: hidden;
  /* hauteur uniforme : les 3 cartes s'alignent quelle que soit la longueur du texte */
  min-height: 96px;
  box-sizing: border-box;
}
.pvs-card:active { transform: scale(0.97); }
.pvs-card::before {
  content: '';
  position: absolute;
  inset: 0;
  opacity: 0;
  transition: opacity 0.22s;
}
.pvs-card:hover::before { opacity: 1; }
.pvs-card.c-membre  { border-color: rgba(0,229,255,0.25); }
.pvs-card.c-membre::before  { background: rgba(0,229,255,0.05); }
.pvs-card.c-chauffeur { border-color: rgba(255,215,0,0.25); }
.pvs-card.c-chauffeur::before { background: rgba(255,215,0,0.05); }
.pvs-card.c-gerant  { border-color: rgba(255,45,155,0.25); }
.pvs-card.c-gerant::before  { background: rgba(255,45,155,0.05); }
.pvs-card-icon {
  font-size: 2.2rem;
  flex-shrink: 0;
  width: 56px;
  height: 56px;
  border-radius: 16px;
  display: flex;
  align-items: center;
  justify-content: center;
}
.pvs-card.c-membre  .pvs-card-icon { background: rgba(0,229,255,0.12); }
.pvs-card.c-chauffeur .pvs-card-icon { background: rgba(255,215,0,0.12); }
.pvs-card.c-gerant  .pvs-card-icon { background: rgba(255,45,155,0.12); }
/* body prend tout l'espace restant, texte ne déborde plus */
.pvs-card-body { flex: 1; min-width: 0; }
.pvs-card-title {
  font-family: 'Syne', sans-serif;
  font-weight: 800;
  font-size: 1rem;
  color: var(--text);
  margin-bottom: 0.25rem;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.pvs-card.c-membre  .pvs-card-title { color: #00e5ff; }
.pvs-card.c-chauffeur .pvs-card-title { color: #ffd700; }
.pvs-card.c-gerant  .pvs-card-title { color: var(--pink); }
.pvs-card-desc {
  font-size: 0.72rem;
  color: var(--muted);
  line-height: 1.5;
  /* empêche le texte de déborder hors de la carte */
  word-break: break-word;
  overflow-wrap: break-word;
}
.pvs-card-arrow {
  font-size: 1.2rem;
  color: rgba(255,255,255,0.2);
  flex-shrink: 0;
}
.pvs-login-link {
  margin-top: 1.6rem;
  font-size: 0.78rem;
  color: var(--muted);
  text-align: center;
}
.pvs-login-link button {
  background: none; border: none;
  color: var(--cyan); cursor: pointer;
  font-size: 0.78rem; font-weight: 700;
  font-family: 'DM Sans', sans-serif;
  text-decoration: underline;
}


/* ════════════════════════════════════════════════════════════════════════════ */

.user-profile-modal{display:none;position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,0.85);z-index:500;align-items:center;justify-content:center;padding:1rem;animation:fadeIn 0.25s;}
.user-profile-modal.open{display:flex;}
/* @keyframes fadeIn — défini globalement */

.profile-card-wrap{background:var(--surface);border:1px solid rgba(255,45,155,0.3);border-radius:24px;width:min(420px,100%);max-height:90vh;overflow-y:auto;position:relative;}
.profile-header{background:linear-gradient(135deg,rgba(255,45,155,0.15),rgba(204,68,255,0.1));padding:1.5rem 1.5rem 1rem;border-bottom:1px solid rgba(255,255,255,0.05);position:relative;}
.profile-close-btn{position:absolute;top:1rem;right:1rem;background:rgba(255,255,255,0.1);border:none;color:var(--text);width:32px;height:32px;border-radius:50%;cursor:pointer;font-size:1.2rem;display:flex;align-items:center;justify-content:center;}
.profile-close-btn:active{opacity:0.6;}

.profile-photo-section{text-align:center;margin-bottom:1.2rem;}
.profile-photo{width:100px;height:100px;border-radius:50%;background:rgba(255,45,155,0.15);border:2px solid var(--pink);object-fit:cover;margin:0 auto 0.8rem;cursor:pointer;}
.profile-photo.pro::after{content:'🥇';position:absolute;font-size:1.8rem;bottom:0;right:0;background:var(--amber);width:32px;height:32px;border-radius:50%;display:flex;align-items:center;justify-content:center;margin-bottom:-4px;margin-right:-4px;}

.profile-info{padding:1.5rem;}
.profile-name{font-family:'Syne',sans-serif;font-size:1.1rem;font-weight:800;color:var(--text);margin-bottom:0.3rem;}
.profile-username{font-size:0.8rem;color:var(--muted);margin-bottom:1rem;}
.profile-status-badge{display:inline-block;padding:0.3rem 0.75rem;border-radius:20px;font-size:0.65rem;font-weight:700;margin-bottom:1rem;}
.profile-status-badge.pro{background:rgba(255,215,0,0.2);color:var(--amber);border:1px solid rgba(255,215,0,0.4);}
.profile-status-badge.member{background:rgba(255,45,155,0.2);color:var(--pink);border:1px solid rgba(255,45,155,0.4);}

.profile-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:0.8rem;margin-bottom:1.5rem;padding:1rem;background:rgba(255,255,255,0.03);border-radius:12px;border:1px solid rgba(255,255,255,0.05);}
.profile-stat-item{text-align:center;}
.profile-stat-value{font-family:'Syne',sans-serif;font-size:0.95rem;font-weight:800;color:var(--pink);}
.profile-stat-label{font-size:0.65rem;color:var(--muted);margin-top:0.2rem;text-transform:uppercase;letter-spacing:0.08em;}

.profile-info-grid{display:grid;gap:0.8rem;margin-bottom:1.5rem;}
.profile-info-row{display:flex;align-items:flex-start;gap:0.6rem;padding:0.75rem;background:rgba(255,255,255,0.02);border-radius:8px;border:1px solid rgba(255,255,255,0.04);}
.profile-info-icon{font-size:1rem;flex-shrink:0;margin-top:0.1rem;}
.profile-info-content{flex:1;}
.profile-info-label{font-size:0.65rem;color:var(--muted);text-transform:uppercase;letter-spacing:0.08em;}
.profile-info-value{font-size:0.8rem;color:var(--text);margin-top:0.2rem;word-break:break-word;}

.profile-id-gallery{margin-bottom:1.5rem;}
.profile-gallery-title{font-family:'Syne',sans-serif;font-size:0.85rem;font-weight:800;color:var(--pink);margin-bottom:0.8rem;display:flex;align-items:center;gap:0.5rem;}
.profile-gallery-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:0.6rem;}
.profile-gallery-item{aspect-ratio:1;background:rgba(255,255,255,0.04);border:1px solid rgba(255,45,155,0.2);border-radius:8px;overflow:hidden;cursor:pointer;transition:all 0.2s;position:relative;}
.profile-gallery-item:hover{border-color:var(--pink);background:rgba(255,45,155,0.1);}
.profile-gallery-item img{width:100%;height:100%;object-fit:cover;}
.profile-gallery-item.empty{display:flex;align-items:center;justify-content:center;color:var(--muted);font-size:1.5rem;}
.profile-gallery-item.verified::after{content:'✓';position:absolute;top:2px;right:2px;background:var(--green);color:#000;width:20px;height:20px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:0.75rem;font-weight:800;}

.profile-actions{padding:1.5rem;border-top:1px solid rgba(255,255,255,0.05);display:flex;gap:0.6rem;flex-wrap:wrap;}
.profile-action-btn{flex:1;min-width:100px;padding:0.6rem 0.8rem;border-radius:8px;border:1px solid rgba(255,45,155,0.3);background:rgba(255,45,155,0.1);color:var(--pink);font-size:0.75rem;font-weight:700;cursor:pointer;font-family:'DM Sans',sans-serif;transition:all 0.2s;}
.profile-action-btn:active{opacity:0.6;}

.taxi-pro-badge{display:inline-flex;align-items:center;gap:0.35rem;padding:0.25rem 0.6rem;background:linear-gradient(135deg,rgba(255,215,0,0.2),rgba(255,45,155,0.1));border:1px solid rgba(255,215,0,0.4);border-radius:20px;font-size:0.65rem;font-weight:700;color:var(--amber);}

.taxi-pro-modal{display:none;position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,0.85);z-index:510;align-items:center;justify-content:center;padding:1rem;animation:fadeIn 0.25s;}
.taxi-pro-modal.open{display:flex;}

.taxi-pro-card-wrap{background:var(--surface);border:2px solid rgba(255,215,0,0.3);border-radius:24px;width:min(420px,100%);max-height:90vh;overflow-y:auto;position:relative;}
.taxi-pro-header{background:linear-gradient(135deg,rgba(255,215,0,0.15),rgba(255,45,155,0.08));padding:1.5rem;border-bottom:1px solid rgba(255,215,0,0.2);position:relative;}
.taxi-pro-close{position:absolute;top:1rem;right:1rem;background:rgba(255,255,255,0.1);border:none;color:var(--text);width:32px;height:32px;border-radius:50%;cursor:pointer;font-size:1.2rem;display:flex;align-items:center;justify-content:center;}
.taxi-pro-close:active{opacity:0.6;}

.taxi-pro-title{font-family:'Syne',sans-serif;font-size:1rem;font-weight:800;color:var(--amber);}
.taxi-pro-subtitle{font-size:0.7rem;color:var(--muted);margin-top:0.3rem;}

.taxi-pro-info{padding:1.5rem;}
.taxi-pro-license-input{width:100%;padding:0.6rem;background:rgba(255,255,255,0.05);border:1px solid rgba(255,215,0,0.2);border-radius:8px;color:var(--text);font-family:'DM Sans',sans-serif;margin-bottom:0.8rem;font-size:0.8rem;}
.taxi-pro-license-input::placeholder{color:var(--muted);}

.taxi-pro-docs{margin-bottom:1.5rem;}
.taxi-pro-docs-title{font-size:0.75rem;font-weight:700;color:var(--amber);margin-bottom:0.8rem;text-transform:uppercase;letter-spacing:0.08em;}
.taxi-pro-doc-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:0.6rem;}
.taxi-pro-doc-item{padding:0.8rem;background:rgba(255,215,0,0.05);border:1px dashed rgba(255,215,0,0.3);border-radius:8px;text-align:center;cursor:pointer;transition:all 0.2s;}
.taxi-pro-doc-item:hover{background:rgba(255,215,0,0.1);border-color:var(--amber);}
.taxi-pro-doc-icon{font-size:1.5rem;margin-bottom:0.3rem;}
.taxi-pro-doc-label{font-size:0.7rem;color:var(--muted);}
.taxi-pro-doc-item.uploaded .taxi-pro-doc-icon::after{content:'✓';position:absolute;font-size:0.8rem;color:var(--green);font-weight:800;}

.taxi-pro-action-buttons{padding:1.5rem;border-top:1px solid rgba(255,215,0,0.2);display:flex;gap:0.6rem;}
.taxi-pro-btn{
  background: linear-gradient(135deg, #9D84FF 0%, #7C5FE8 50%, #B8A7FF 100%);
  border: 2px solid rgba(157, 132, 255, 0.6);
  color: #1a0a00;
  padding: 0.7rem 1.5rem;
  border-radius: 20px;
  cursor: pointer;
  font-weight: 800;
  font-size: 0.9rem;
  font-family: 'Syne', sans-serif;
  transition: all 0.3s cubic-bezier(0.34, 1.56, 0.64, 1);
  box-shadow: 0 8px 30px rgba(255, 184, 0, 0.5), 0 0 20px rgba(255, 215, 0, 0.3);
  letter-spacing: 0.05em;
  text-transform: uppercase;
  position: relative;
  overflow: hidden;
}
.taxi-pro-btn::before{
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.2), transparent);
  animation: luxeShine 3s infinite;
}
@keyframes luxeShine{
  0%{ transform: translateX(-100%); }
  100%{ transform: translateX(100%); }
}
.taxi-pro-btn:hover{
  background: linear-gradient(135deg, #B8A7FF 0%, #9D84FF 50%, #a0d8ff 100%);
  transform: translateY(-4px) scale(1.05);
  box-shadow: 0 12px 40px rgba(255, 184, 0, 0.7), 0 0 30px rgba(255, 215, 0, 0.4);
  letter-spacing: 0.08em;
}
.taxi-pro-btn:active{
  transform: translateY(-1px) scale(0.97);
  box-shadow: 0 4px 15px rgba(255, 184, 0, 0.6);
  opacity: 0.95;
}
.taxi-pro-btn-primary{background:var(--amber);color:#000;}
.taxi-pro-btn-primary:active{opacity:0.8;}
.taxi-pro-btn-secondary{background:rgba(255,215,0,0.15);border:1px solid rgba(255,215,0,0.4);color:var(--amber);}
.taxi-pro-btn-secondary:active{opacity:0.6;}

.taxi-pro-members-list{padding:1.5rem;border-top:1px solid rgba(255,215,0,0.15);}
.taxi-pro-member-item{padding:0.8rem;background:rgba(255,215,0,0.05);border:1px solid rgba(255,215,0,0.2);border-radius:8px;margin-bottom:0.6rem;display:flex;align-items:center;justify-content:space-between;}
.taxi-pro-member-info{flex:1;}
.taxi-pro-member-name{font-size:0.8rem;font-weight:700;color:var(--text);}
.taxi-pro-member-license{font-size:0.65rem;color:var(--muted);margin-top:0.2rem;}
.taxi-pro-member-actions{display:flex;gap:0.4rem;}
.taxi-pro-member-btn{
  padding: 0.45rem 0.85rem;
  border: none;
  border-radius: 8px;
  cursor: pointer;
  font-weight: 700;
  font-size: 0.78rem;
  font-family: 'DM Sans', sans-serif;
  transition: all 0.2s;
  white-space: nowrap;
}
.taxi-pro-member-btn:hover{
  transform: translateY(-2px);
  box-shadow: 0 4px 12px rgba(0,0,0,0.3);
}
.taxi-pro-member-btn:active{
  transform: scale(0.95);
}
.taxi-pro-member-btn.promote{
  background: rgba(0,255,170,0.2);
  border: 1px solid var(--green);
  color: var(--green);
}
.taxi-pro-member-btn.revoke{
  background: rgba(255,68,102,0.2);
  border: 1px solid var(--red);
  color: var(--red);
}

.taxi-pro-member-btn.promote:active{opacity:0.6;}

/* ═══ AMBI241 — Animations Féminines & Luxe v2.1 (stable) ═══ */

/* ── Keyframes légers ── */
@keyframes floatPetal{
  0%{transform:translate3d(0,0,0) rotate(0deg);opacity:.85}
  50%{transform:translate3d(8px,-45px,0) rotate(150deg);opacity:.5}
  100%{transform:translate3d(-4px,-88px,0) rotate(320deg);opacity:0}
}
/* heartFloat + starPop supprimés */
@keyframes pearlShimmer{
  0%{transform:translateX(-110%) skewX(-15deg);opacity:0}
  40%{opacity:.35}
  100%{transform:translateX(260%) skewX(-15deg);opacity:0}
}
/* navBloom supprimé */
@keyframes softBounce{
  0%{transform:scale(1)}
  40%{transform:scale(1.18)}
  70%{transform:scale(.94)}
  100%{transform:scale(1)}
}
@keyframes slideReveal{
  from{opacity:0;transform:translate3d(0,18px,0)}
  to{opacity:1;transform:translate3d(0,0,0)}
}
@keyframes progressShimmer{
  0%{background-position:0% center}
  100%{background-position:200% center}
}

/* ── Scroll progress bar ── */
#ambi-progress{
  position:fixed;top:0;left:0;height:2px;width:0%;
  background:linear-gradient(90deg,var(--pink),var(--amber),var(--cyan),var(--pink));
  background-size:200% auto;
  animation:progressShimmer 2s linear infinite;
  z-index:9990;pointer-events:none;
  box-shadow:0 0 5px rgba(255,45,155,.5);
  will-change:width;
}

/* ── Particule flottante ── */
/* ambi-particle, ambi-burst, ambi-star, nav-bloom supprimés */

/* nav-icon-anim supprimé */

/* ── Boutons CTA — pearl shimmer ── */
.hero-btn-primary,
.modal-btn,
.inscrire-big-btn{
  position:relative;overflow:hidden;
}
.hero-btn-primary::after,
.modal-btn::after,
.inscrire-big-btn::after{
  content:'';position:absolute;
  top:-10%;left:-60%;width:38%;height:120%;
  background:linear-gradient(90deg,transparent,rgba(255,255,255,.3),transparent);
  transform:skewX(-15deg);
  animation:pearlShimmer 3.5s ease-in-out infinite;
  pointer-events:none;
}

/* ── Live pill glow ── */
.live-pill{
  box-shadow:0 0 7px rgba(0,255,170,.4),0 0 14px rgba(0,255,170,.15);
}

/* ── Scroll reveal ── */
.card-reveal{
  animation:slideReveal .4s cubic-bezier(.16,1,.3,1) both;
}

/* ── Type tile shimmer on hover ── */
.type-tile{position:relative;overflow:hidden;}
.type-tile .tt-shim{
  position:absolute;top:-10%;left:-80%;width:45%;height:120%;
  background:linear-gradient(90deg,transparent,rgba(255,255,255,.22),transparent);
  transform:skewX(-15deg);
  transition:left .4s ease;
  pointer-events:none;z-index:3;
}
.type-tile:hover .tt-shim{left:130%;}

/* ── Stat chips micro lift ── */
.stat-chip{transition:transform .2s cubic-bezier(.34,1.56,.64,1);}
.stat-chip:hover{transform:scale(1.05) translateY(-2px);}

/* ── Filter chips pop ── */
.fchip{transition:all .22s cubic-bezier(.34,1.56,.64,1);}

/* ── CHIPS CATÉGORIES — couleurs harmonisées avec les tuiles d'accueil ── */
.fchip[data-type="Bar"]          {border-color:rgba(255,65,108,0.45);background:rgba(255,65,108,0.13);color:rgba(255,100,140,0.9);}
.fchip[data-type="Bar"].active   {background:linear-gradient(135deg,#ff416c,#ff6fa3);border-color:rgba(255,65,108,0.7);color:#fff;box-shadow:0 0 12px rgba(255,65,108,0.4);}
.fchip[data-type="Bar Terrasse"]        {border-color:rgba(0,82,212,0.45);background:rgba(0,82,212,0.13);color:rgba(80,150,255,0.9);}
.fchip[data-type="Bar Terrasse"].active {background:linear-gradient(135deg,#0052d4,#4388f5);border-color:rgba(0,82,212,0.7);color:#fff;box-shadow:0 0 12px rgba(0,82,212,0.4);}
.fchip[data-type="Snack"]        {border-color:rgba(0,176,155,0.45);background:rgba(0,176,155,0.13);color:rgba(0,220,190,0.9);}
.fchip[data-type="Snack"].active {background:linear-gradient(135deg,#00b09b,#38d878);border-color:rgba(0,176,155,0.7);color:#003d1a;box-shadow:0 0 12px rgba(0,176,155,0.4);}
.fchip[data-type="Restaurant"]        {border-color:rgba(247,151,30,0.45);background:rgba(247,151,30,0.13);color:rgba(255,185,60,0.9);}
.fchip[data-type="Restaurant"].active {background:linear-gradient(135deg,#f7971e,#ffd200);border-color:rgba(247,151,30,0.7);color:#3d1e00;box-shadow:0 0 12px rgba(247,151,30,0.4);}
.fchip[data-type="Discotheque"]        {border-color:rgba(123,47,247,0.45);background:rgba(123,47,247,0.13);color:rgba(170,100,255,0.9);}
.fchip[data-type="Discotheque"].active {background:linear-gradient(135deg,#7b2ff7,#b060ff);border-color:rgba(123,47,247,0.7);color:#fff;box-shadow:0 0 12px rgba(123,47,247,0.4);}

/* ── CENTRAGE GLOBAL — anti-débordement ── */
button,
.fchip,
.sort-btn,
.view-btn,
.soc-cat-btn,
.adm-tab,
.stab {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  text-align:center;
  box-sizing:border-box;
  max-width:100%;
  overflow:hidden;
}
/* SVG dans les stab : centrage vertical parfait */
.stab svg, .fchip svg { vertical-align:middle; flex-shrink:0; }
/* Empêcher tout texte de sortir des conteneurs */
.cr-name, .tt-name, .forum-card-author {
  max-width:100%;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
/* Nom fiche complète : autoriser retour à la ligne + taille réduite si long */
.card-name {
  max-width:100%;
  overflow:hidden;
  white-space:normal;
  word-break:break-word;
  font-size:clamp(0.78rem,4vw,1rem);
}

/* ── Search wrap focus ring ── */
.search-wrap:focus-within{
  border-color:rgba(255,45,155,.55)!important;
  box-shadow:0 0 0 3px rgba(255,45,155,.1),0 0 18px rgba(255,45,155,.12);
}

/* ── Modal pop in ── */
@keyframes popIn{
  from{opacity:0;transform:scale(.9) translateY(8px)}
  70%{transform:scale(1.02) translateY(-1px)}
  to{opacity:1;transform:scale(1) translateY(0)}
}

/* ── Android exit overlay amélioré ── */
#androidExitOverlay{
  transition:opacity .25s ease;
}

/* ═══════════════════════════════════════
   SECTION PROFIL — AMBI241
═══════════════════════════════════════ */
#sec-profil .profile-shell{max-width:680px;margin:0 auto;padding:0 0 6rem;position:relative;z-index:1;width:100%;}
#sec-profil .demo-nav-profil{display:flex;align-items:center;gap:0.5rem;padding:0.6rem 1rem;background:rgba(15,6,24,.9);backdrop-filter:blur(20px);border-bottom:1px solid rgba(255,45,155,0.15);overflow-x:auto;scrollbar-width:none;width:100%;}
#sec-profil .demo-nav-profil::-webkit-scrollbar{display:none;}
#sec-profil .demo-tab-profil{padding:.32rem .75rem;border-radius:20px;font-size:.7rem;font-weight:700;cursor:pointer;border:1.5px solid transparent;transition:all .22s;white-space:nowrap;font-family:'DM Sans',sans-serif;background:none;color:var(--muted);}
#sec-profil .demo-tab-profil.active{color:#fff;border-color:var(--pink);background:rgba(255,45,155,.14);}
#sec-profil .demo-tab-profil[data-role="membre"].active{border-color:#00e5ff;color:#00e5ff;background:rgba(0,229,255,.1);}
#sec-profil .demo-tab-profil[data-role="chauffeur"].active{border-color:#ffd700;color:#ffd700;background:rgba(255,215,0,.1);}
#sec-profil .demo-tab-profil[data-role="etab"].active{border-color:var(--pink);color:var(--pink);background:rgba(255,45,155,.14);}
#sec-profil .profil-views .profil-view{display:none;}
#sec-profil .profil-views .profil-view.active{display:block;}
#sec-profil .cover{position:relative;height:200px;overflow:hidden;background:linear-gradient(135deg,#1a0a28,#2c1040);}
#sec-profil .cover img{width:100%;height:100%;object-fit:cover;}
#sec-profil .cover-overlay{position:absolute;inset:0;background:linear-gradient(to bottom,transparent 30%,rgba(15,6,24,.95) 100%);}
#sec-profil .cover-edit-btn{position:absolute;top:.8rem;right:.8rem;background:rgba(0,0,0,.55);backdrop-filter:blur(8px);border:1px solid rgba(255,255,255,.18);color:#fff;font-size:.7rem;font-weight:700;padding:.32rem .65rem;border-radius:20px;cursor:pointer;display:flex;align-items:center;gap:.35rem;font-family:'DM Sans',sans-serif;transition:all .2s;}
#sec-profil .cover-edit-btn:hover{background:rgba(255,45,155,.25);border-color:var(--pink);}
#sec-profil .avatar-zone{position:relative;z-index:2;display:flex;align-items:flex-end;gap:1rem;padding:0 1.2rem;margin-top:-52px;}
#sec-profil .avatar-wrap{position:relative;flex-shrink:0;}
#sec-profil .p-avatar{width:100px;height:100px;border-radius:50%;border:3.5px solid var(--bg);background:var(--surface2);object-fit:cover;display:flex;align-items:center;justify-content:center;font-family:'Syne',sans-serif;font-weight:800;font-size:2.6rem;user-select:none;position:relative;overflow:hidden;cursor:pointer;}
#sec-profil .p-avatar img{width:100%;height:100%;object-fit:cover;border-radius:50%;position:absolute;inset:0;}
#sec-profil .avatar-upload-btn{position:absolute;bottom:4px;right:4px;width:28px;height:28px;border-radius:50%;background:var(--pink);border:2.5px solid var(--bg);display:flex;align-items:center;justify-content:center;cursor:pointer;font-size:.8rem;transition:transform .2s;box-shadow:0 2px 10px rgba(255,45,155,.5);}
#sec-profil .avatar-upload-btn:hover{transform:scale(1.12);}
#sec-profil .avatar-status-dot{position:absolute;top:4px;right:4px;width:14px;height:14px;border-radius:50%;background:var(--green);border:2.5px solid var(--bg);box-shadow:0 0 8px rgba(0,255,170,.6);}
#sec-profil .p-role-badge{display:inline-flex;align-items:center;gap:.3rem;padding:.22rem .65rem;border-radius:20px;font-size:.65rem;font-weight:800;text-transform:uppercase;letter-spacing:.08em;margin-bottom:.4rem;}
#sec-profil .rb-membre{background:rgba(0,229,255,.12);color:#00e5ff;border:1px solid rgba(0,229,255,.3);}
#sec-profil .rb-chauffeur{background:rgba(255,215,0,.12);color:#ffd700;border:1px solid rgba(255,215,0,.3);}
#sec-profil .rb-etab{background:rgba(255,45,155,.12);color:var(--pink);border:1px solid rgba(255,45,155,.3);}
#sec-profil .rb-dot{width:6px;height:6px;border-radius:50%;animation:pulse 1.8s infinite;}
#sec-profil .rb-membre .rb-dot{background:#00e5ff;}
#sec-profil .rb-chauffeur .rb-dot{background:#ffd700;}
#sec-profil .rb-etab .rb-dot{background:var(--pink);}
#sec-profil .avatar-meta{flex:1;padding-bottom:.5rem;min-width:0;}
#sec-profil .profile-header{padding:.8rem 1.2rem 0;}
#sec-profil .profile-name{font-family:'Syne',sans-serif;font-size:1.45rem;font-weight:800;color:var(--text);line-height:1.1;display:flex;align-items:center;gap:.45rem;flex-wrap:wrap;}
#sec-profil .verified-icon{width:20px;height:20px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;font-size:.7rem;flex-shrink:0;}
#sec-profil .vi-cyan{background:#00e5ff;color:#000;}
#sec-profil .vi-gold{background:#ffd700;color:#000;}
#sec-profil .vi-pink{background:var(--pink);color:#fff;}
#sec-profil .profile-handle{font-size:.82rem;color:var(--muted);margin-top:.15rem;display:flex;align-items:center;gap:.5rem;flex-wrap:wrap;}
#sec-profil .handle-sep{color:rgba(255,255,255,.2);}
#sec-profil .profile-bio{font-size:.88rem;color:var(--muted);line-height:1.6;margin-top:.75rem;}
#sec-profil .profile-tags{display:flex;gap:.4rem;flex-wrap:wrap;margin-top:.7rem;}
#sec-profil .ptag-item{font-size:.68rem;font-weight:600;padding:.2rem .55rem;border-radius:20px;background:rgba(255,255,255,.06);color:var(--muted);border:1px solid rgba(255,255,255,.08);}
#sec-profil .profile-actions{display:flex;gap:.55rem;padding:1rem 1.2rem;}
#sec-profil .btn-p-primary{flex:1;padding:.65rem;border-radius:12px;border:none;font-family:'DM Sans',sans-serif;font-size:.85rem;font-weight:700;cursor:pointer;transition:all .22s;display:flex;align-items:center;justify-content:center;gap:.4rem;}
#sec-profil .btn-p-edit{background:linear-gradient(135deg,var(--pink),#cc1f7f);color:#fff;box-shadow:0 4px 20px rgba(255,45,155,.35);}
#sec-profil .btn-p-edit:hover{transform:translateY(-2px);box-shadow:0 6px 28px rgba(255,45,155,.5);}
#sec-profil .btn-p-outline{background:none;border:1.5px solid rgba(255,255,255,.15);color:var(--muted);border-radius:12px;font-size:.85rem;font-weight:700;padding:.65rem .9rem;cursor:pointer;transition:all .22s;display:flex;align-items:center;justify-content:center;gap:.4rem;font-family:'DM Sans',sans-serif;}
#sec-profil .btn-p-outline:hover{border-color:rgba(255,255,255,.35);color:#fff;}
#sec-profil .stats-row{display:grid;gap:1px;background:rgba(255,255,255,.07);border-radius:16px;overflow:hidden;margin:0 1.2rem;border:1px solid rgba(255,255,255,.07);}
#sec-profil .stats-row-3{grid-template-columns:repeat(3,1fr);}
#sec-profil .stats-row-4{grid-template-columns:repeat(4,1fr);}
#sec-profil .stat-cell{background:var(--surface2);padding:.9rem .5rem;text-align:center;cursor:pointer;transition:background .18s;}
#sec-profil .stat-cell:hover{background:var(--surface);}
#sec-profil .stat-val{font-family:'Syne',sans-serif;font-size:1.2rem;font-weight:800;color:var(--text);line-height:1;}
#sec-profil .stat-lbl{font-size:.62rem;color:var(--muted);margin-top:.18rem;text-transform:uppercase;letter-spacing:.06em;}
#sec-profil .p-section-block{margin:1rem 1.2rem 0;background:var(--surface2);border:1px solid rgba(255,255,255,.07);border-radius:18px;overflow:hidden;}
#sec-profil .section-head{display:flex;align-items:center;justify-content:space-between;padding:.9rem 1rem .6rem;}
#sec-profil .section-title{font-family:'Syne',sans-serif;font-size:.78rem;font-weight:800;text-transform:uppercase;letter-spacing:.1em;color:var(--muted);}
#sec-profil .section-action{font-size:.72rem;color:var(--pink);font-weight:700;background:none;border:none;cursor:pointer;font-family:'DM Sans',sans-serif;}
#sec-profil .info-list{padding:0 1rem 1rem;display:flex;flex-direction:column;gap:.6rem;}
#sec-profil .info-row{display:flex;align-items:center;gap:.7rem;}
#sec-profil .info-icon{width:32px;height:32px;border-radius:10px;background:rgba(255,255,255,.05);display:flex;align-items:center;justify-content:center;font-size:.95rem;flex-shrink:0;}
#sec-profil .info-text{flex:1;}
#sec-profil .info-label{font-size:.68rem;color:var(--muted);text-transform:uppercase;letter-spacing:.06em;}
#sec-profil .info-value{font-size:.85rem;color:var(--text);margin-top:.05rem;font-weight:500;}
#sec-profil .gallery-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:2px;padding:0 1rem 1rem;}
#sec-profil .gallery-item{aspect-ratio:1;border-radius:8px;overflow:hidden;background:var(--surface);cursor:pointer;position:relative;}
#sec-profil .gallery-item img{width:100%;height:100%;object-fit:cover;transition:transform .3s;}
#sec-profil .gallery-item:hover img{transform:scale(1.06);}
#sec-profil .gallery-add{display:flex;align-items:center;justify-content:center;font-size:1.4rem;color:var(--muted);border:2px dashed rgba(255,255,255,.07);cursor:pointer;border-radius:8px;aspect-ratio:1;transition:all .2s;}
#sec-profil .gallery-add:hover{border-color:var(--pink);color:var(--pink);}
#sec-profil .activity-list{padding:0 1rem 1rem;display:flex;flex-direction:column;gap:.8rem;}
#sec-profil .activity-item{display:flex;gap:.75rem;align-items:flex-start;}
#sec-profil .act-avatar{width:38px;height:38px;border-radius:50%;background:var(--surface);flex-shrink:0;display:flex;align-items:center;justify-content:center;font-size:1rem;overflow:hidden;}
#sec-profil .act-avatar img{width:100%;height:100%;object-fit:cover;}
#sec-profil .act-body{flex:1;}
#sec-profil .act-name{font-size:.82rem;font-weight:700;color:var(--text);}
#sec-profil .act-msg{font-size:.78rem;color:var(--muted);line-height:1.45;margin-top:.1rem;}
#sec-profil .act-time{font-size:.65rem;color:var(--muted);margin-top:.2rem;}
#sec-profil .act-stars{color:var(--amber);font-size:.75rem;margin-top:.15rem;}
#sec-profil .p-divider{height:1px;background:rgba(255,255,255,.07);margin:.1rem 1rem;}
#sec-profil .fav-scroll{display:flex;gap:.75rem;padding:0 1rem 1rem;overflow-x:auto;scrollbar-width:none;}
#sec-profil .fav-scroll::-webkit-scrollbar{display:none;}
#sec-profil .fav-card{flex-shrink:0;width:130px;background:var(--surface);border-radius:14px;overflow:hidden;cursor:pointer;border:1px solid rgba(255,255,255,.07);transition:transform .2s,border-color .2s;}
#sec-profil .fav-card:hover{transform:translateY(-3px);border-color:rgba(255,45,155,.3);}
#sec-profil .fav-img{height:80px;overflow:hidden;background:linear-gradient(135deg,rgba(255,45,155,.2),rgba(0,229,255,.15));display:flex;align-items:center;justify-content:center;font-size:1.8rem;}
#sec-profil .fav-img img{width:100%;height:100%;object-fit:cover;}
#sec-profil .fav-info{padding:.55rem .6rem;}
#sec-profil .fav-name{font-size:.75rem;font-weight:700;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
#sec-profil .fav-cat{font-size:.62rem;color:var(--muted);margin-top:.08rem;}
#sec-profil .fav-live{display:inline-flex;align-items:center;gap:.25rem;font-size:.58rem;font-weight:800;color:var(--green);margin-top:.2rem;}
#sec-profil .fav-live-dot{width:5px;height:5px;border-radius:50%;background:var(--green);animation:pulse 1.2s infinite;}
#sec-profil .sch-row{display:flex;align-items:center;justify-content:space-between;padding:.5rem .6rem;border-radius:10px;transition:background .15s;}
#sec-profil .sch-row:hover{background:rgba(255,255,255,.03);}
#sec-profil .sch-row.today{background:rgba(255,45,155,.06);border:1px solid rgba(255,45,155,.15);}
#sec-profil .sch-day{font-size:.82rem;font-weight:600;color:var(--muted);}
#sec-profil .sch-day.today-label{color:var(--pink);font-weight:800;}
#sec-profil .sch-time{font-size:.82rem;color:var(--text);font-weight:500;}
#sec-profil .sch-closed{color:var(--muted);font-style:italic;}
#sec-profil .sch-open-badge{font-size:.6rem;font-weight:800;text-transform:uppercase;letter-spacing:.08em;color:var(--green);background:rgba(0,255,170,.1);border:1px solid rgba(0,255,170,.25);padding:.12rem .4rem;border-radius:6px;margin-left:.5rem;}
#sec-profil .schedule-list{padding:0 1rem 1rem;display:flex;flex-direction:column;gap:.5rem;}
#sec-profil .vehicle-card{margin:0 1rem 1rem;background:linear-gradient(135deg,rgba(255,215,0,.08),rgba(255,45,155,.06));border:1px solid rgba(255,215,0,.2);border-radius:16px;padding:1rem;display:flex;gap:.9rem;align-items:center;}
#sec-profil .vehicle-icon{width:56px;height:56px;border-radius:14px;background:rgba(255,215,0,.12);display:flex;align-items:center;justify-content:center;font-size:1.8rem;flex-shrink:0;}
#sec-profil .vehicle-info{flex:1;}
#sec-profil .vehicle-name{font-family:'Syne',sans-serif;font-size:.95rem;font-weight:800;color:var(--amber);}
#sec-profil .vehicle-plate{display:inline-block;background:#fff;color:#000;font-weight:900;font-size:.75rem;letter-spacing:.08em;padding:.12rem .5rem;border-radius:5px;margin:.25rem 0;font-family:'Syne',sans-serif;border:2px solid #000;}
#sec-profil .vehicle-details{font-size:.72rem;color:var(--muted);display:flex;gap:.6rem;flex-wrap:wrap;}
#sec-profil .dispo-toggle-wrap{margin:0 1.2rem 1rem;background:var(--surface2);border-radius:16px;border:1.5px solid rgba(255,215,0,.2);padding:.8rem 1rem;display:flex;align-items:center;justify-content:space-between;gap:1rem;}
#sec-profil .dispo-left{flex:1;}
#sec-profil .dispo-title{font-family:'Syne',sans-serif;font-size:.88rem;font-weight:800;color:var(--text);display:flex;align-items:center;gap:.45rem;}
#sec-profil .p-dispo-dot{width:9px;height:9px;border-radius:50%;background:var(--green);box-shadow:0 0 10px rgba(0,255,170,.7);animation:pulse 1.5s infinite;}
#sec-profil .p-dispo-dot.off{background:var(--muted);box-shadow:none;animation:none;}
#sec-profil .dispo-sub{font-size:.72rem;color:var(--muted);margin-top:.15rem;}
#sec-profil .big-toggle{position:relative;width:52px;height:28px;flex-shrink:0;}
#sec-profil .big-toggle input{opacity:0;width:0;height:0;}
#sec-profil .big-toggle-slider{position:absolute;inset:0;background:rgba(255,255,255,.12);border-radius:28px;cursor:pointer;transition:.25s;}
#sec-profil .big-toggle-slider::before{content:'';position:absolute;width:22px;height:22px;left:3px;top:3px;background:#fff;border-radius:50%;transition:.25s;box-shadow:0 2px 6px rgba(0,0,0,.35);}
#sec-profil .big-toggle input:checked+.big-toggle-slider{background:var(--green);box-shadow:0 0 14px rgba(0,255,170,.4);}
#sec-profil .big-toggle input:checked+.big-toggle-slider::before{transform:translateX(24px);}
#sec-profil .rating-showcase{margin:0 1.2rem 1rem;background:var(--surface2);border-radius:18px;border:1px solid rgba(255,255,255,.07);overflow:hidden;}
#sec-profil .rating-top{padding:1rem;display:flex;gap:1rem;align-items:center;border-bottom:1px solid rgba(255,255,255,.07);}
#sec-profil .rating-big{font-family:'Syne',sans-serif;font-size:3rem;font-weight:800;color:var(--amber);line-height:1;}
#sec-profil .rating-right{flex:1;}
#sec-profil .rating-stars{font-size:1.1rem;color:var(--amber);letter-spacing:.05em;}
#sec-profil .rating-count{font-size:.72rem;color:var(--muted);margin-top:.2rem;}
#sec-profil .rating-bars{padding:.7rem 1rem;display:flex;flex-direction:column;gap:.4rem;}
#sec-profil .rbar-row{display:flex;align-items:center;gap:.6rem;}
#sec-profil .rbar-label{font-size:.7rem;color:var(--muted);width:14px;text-align:right;flex-shrink:0;}
#sec-profil .rbar-track{flex:1;height:5px;background:rgba(255,255,255,.07);border-radius:5px;overflow:hidden;}
#sec-profil .rbar-fill{height:100%;border-radius:5px;background:var(--amber);}
#sec-profil .rbar-count{font-size:.65rem;color:var(--muted);width:22px;text-align:right;flex-shrink:0;}
#sec-profil .ambiance-meters{padding:0 1rem 1rem;display:flex;flex-direction:column;gap:.7rem;}
#sec-profil .amb-row{display:flex;flex-direction:column;gap:.3rem;}
#sec-profil .amb-top{display:flex;justify-content:space-between;font-size:.78rem;}
#sec-profil .amb-label{color:var(--muted);font-weight:600;}
#sec-profil .amb-val{color:var(--text);font-weight:800;}
#sec-profil .amb-track{height:8px;background:rgba(255,255,255,.07);border-radius:8px;overflow:hidden;}
#sec-profil .amb-fill{height:100%;border-radius:8px;transition:width 1s cubic-bezier(.22,1,.36,1);}
#sec-profil .trips-list{padding:0 1rem 1rem;display:flex;flex-direction:column;gap:.7rem;}
#sec-profil .trip-item{display:flex;gap:.75rem;align-items:center;padding:.65rem .75rem;border-radius:12px;background:var(--surface);border:1px solid rgba(255,255,255,.07);transition:border-color .2s;}
#sec-profil .trip-item:hover{border-color:rgba(255,215,0,.2);}
#sec-profil .trip-icon{width:38px;height:38px;border-radius:10px;background:rgba(255,215,0,.1);display:flex;align-items:center;justify-content:center;font-size:1rem;flex-shrink:0;}
#sec-profil .trip-body{flex:1;min-width:0;}
#sec-profil .trip-dest{font-size:.82rem;font-weight:700;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
#sec-profil .trip-meta{font-size:.68rem;color:var(--muted);margin-top:.1rem;}
#sec-profil .trip-price{font-family:'Syne',sans-serif;font-size:.88rem;font-weight:800;color:var(--amber);flex-shrink:0;}
#sec-profil .section-tabs-p{display:flex;gap:0;overflow:hidden;border-radius:12px;background:var(--surface);padding:3px;margin:0 1.2rem .8rem;}
#sec-profil .stab-p{flex:1;padding:.45rem;text-align:center;font-size:.72rem;font-weight:700;color:var(--muted);cursor:pointer;border-radius:10px;border:none;background:none;font-family:'DM Sans',sans-serif;transition:all .2s;}
#sec-profil .stab-p.active{background:var(--surface2);color:var(--text);}
#sec-profil .np-row{display:flex;justify-content:space-between;align-items:center;padding:.65rem 0;border-bottom:1px solid rgba(255,255,255,.07);}
#sec-profil .np-row:last-child{border-bottom:none;}
#sec-profil .np-left{flex:1;}
#sec-profil .np-label{font-size:.82rem;color:var(--text);font-weight:500;}
#sec-profil .np-sub{font-size:.7rem;color:var(--muted);margin-top:.1rem;}
#sec-profil .notif-prefs-p{padding:0 1rem 1rem;}
#sec-profil .toggle-sm{position:relative;width:40px;height:22px;flex-shrink:0;}
#sec-profil .toggle-sm input{opacity:0;width:0;height:0;}
#sec-profil .tsl{position:absolute;inset:0;background:rgba(255,255,255,.1);border-radius:22px;cursor:pointer;transition:.25s;}
#sec-profil .tsl::before{content:'';position:absolute;width:16px;height:16px;left:3px;top:3px;background:#fff;border-radius:50%;transition:.25s;}
#sec-profil .toggle-sm input:checked+.tsl{background:var(--pink);}
#sec-profil .toggle-sm input:checked+.tsl::before{transform:translateX(18px);}
#sec-profil .ambiance-live{margin:0 1.2rem 1rem;background:linear-gradient(135deg,rgba(255,45,155,.1),rgba(0,229,255,.06));border:1.5px solid rgba(255,45,155,.3);border-radius:18px;padding:1rem 1.1rem;display:flex;align-items:center;gap:.9rem;}
#sec-profil .al-pulse{width:48px;height:48px;border-radius:14px;background:rgba(255,45,155,.12);display:flex;align-items:center;justify-content:center;font-size:1.6rem;flex-shrink:0;animation:ambGlow 2s infinite;}
@keyframes ambGlow{0%,100%{box-shadow:0 0 0 0 rgba(255,45,155,0)}50%{box-shadow:0 0 18px 4px rgba(255,45,155,.25)}}
#sec-profil .al-body{flex:1;}
#sec-profil .al-title{font-family:'Syne',sans-serif;font-size:.9rem;font-weight:800;color:var(--text);}
#sec-profil .al-sub{font-size:.72rem;color:var(--muted);margin-top:.1rem;}
#sec-profil .al-btn{background:rgba(255,45,155,.15);border:1.5px solid rgba(255,45,155,.4);color:var(--pink);font-size:.72rem;font-weight:800;padding:.4rem .75rem;border-radius:20px;cursor:pointer;font-family:'DM Sans',sans-serif;transition:all .2s;white-space:nowrap;}
#sec-profil .al-btn:hover{background:rgba(255,45,155,.28);}
#sec-profil .verify-banner{margin:.8rem 1.2rem 0;background:linear-gradient(135deg,rgba(255,215,0,.1),rgba(255,45,155,.06));border:1.5px solid rgba(255,215,0,.3);border-radius:14px;padding:.75rem 1rem;display:flex;align-items:center;gap:.8rem;}
#sec-profil .vb-icon{font-size:1.4rem;flex-shrink:0;}
#sec-profil .vb-body{flex:1;}
#sec-profil .vb-title{font-size:.82rem;font-weight:700;color:var(--amber);}
#sec-profil .vb-sub{font-size:.7rem;color:var(--muted);margin-top:.08rem;}
#sec-profil .vb-btn{background:rgba(255,215,0,.15);border:1px solid rgba(255,215,0,.4);color:var(--amber);font-size:.7rem;font-weight:800;padding:.32rem .7rem;border-radius:20px;cursor:pointer;font-family:'DM Sans',sans-serif;white-space:nowrap;transition:all .2s;}
#sec-profil .vb-btn:hover{background:rgba(255,215,0,.25);}
/* Modals profil */
.profil-modal-overlay{display:none;position:fixed;inset:0;z-index:500;background:rgba(0,0,0,.75);backdrop-filter:blur(8px);align-items:flex-end;justify-content:center;}
.profil-modal-overlay.open{display:flex;}
.profil-modal-sheet{width:min(640px,100vw);background:var(--surface);border-radius:24px 24px 0 0;border:1px solid rgba(255,45,155,.2);border-bottom:none;max-height:92vh;overflow-y:auto;animation:slideUpP .35s cubic-bezier(.22,1,.36,1);}
@keyframes slideUpP{from{transform:translateY(100%);opacity:0}to{transform:translateY(0);opacity:1}}
.profil-modal-handle{width:40px;height:4px;border-radius:4px;background:rgba(255,255,255,.12);margin:.8rem auto .2rem;}
.profil-modal-head{padding:.6rem 1.4rem 1rem;display:flex;align-items:center;justify-content:space-between;}
.profil-modal-title{font-family:'Syne',sans-serif;font-size:1.1rem;font-weight:800;color:var(--text);}
.profil-modal-close{width:32px;height:32px;border-radius:50%;background:rgba(255,255,255,.08);border:none;color:var(--muted);font-size:1rem;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s;}
.profil-modal-close:hover{background:rgba(255,45,155,.2);color:var(--pink);}
.profil-avatar-editor{display:flex;flex-direction:column;align-items:center;padding:1rem 1.4rem 1.4rem;gap:1rem;border-bottom:1px solid rgba(255,255,255,.07);}
.profil-avatar-edit-preview{width:90px;height:90px;border-radius:50%;border:3px solid var(--pink);background:var(--surface2);display:flex;align-items:center;justify-content:center;font-size:2.2rem;font-family:'Syne',sans-serif;font-weight:800;position:relative;overflow:hidden;cursor:pointer;box-shadow:0 0 0 4px rgba(255,45,155,.2);}
.profil-avatar-edit-preview img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;}
.profil-avatar-edit-preview .p-overlay{position:absolute;inset:0;background:rgba(0,0,0,.5);display:flex;align-items:center;justify-content:center;font-size:1.5rem;opacity:0;transition:.2s;}
.profil-avatar-edit-preview:hover .p-overlay{opacity:1;}
.profil-avatar-actions{display:flex;gap:.6rem;}
.profil-btn-upload{padding:.4rem .9rem;border-radius:20px;font-size:.75rem;font-weight:700;cursor:pointer;font-family:'DM Sans',sans-serif;transition:all .2s;background:rgba(255,45,155,.14);border:1.5px solid rgba(255,45,155,.4);color:var(--pink);}
.profil-btn-upload:hover{background:rgba(255,45,155,.25);}
.profil-btn-remove{background:none;border:1.5px solid rgba(255,255,255,.1);color:var(--muted);padding:.4rem .9rem;border-radius:20px;font-size:.75rem;font-weight:700;cursor:pointer;font-family:'DM Sans',sans-serif;transition:all .2s;}
.profil-btn-remove:hover{border-color:rgba(255,68,102,.4);color:#ff4466;}
.profil-form-body{padding:.6rem 1.4rem 2rem;display:flex;flex-direction:column;gap:1rem;}
.profil-form-group{display:flex;flex-direction:column;gap:.4rem;}
.profil-form-row{display:grid;grid-template-columns:1fr 1fr;gap:.75rem;}
.profil-form-label{font-size:.72rem;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.07em;}
.profil-form-input,.profil-form-select,.profil-form-textarea{background:var(--surface);border:1.5px solid rgba(255,255,255,.09);border-radius:12px;color:var(--text);font-family:'DM Sans',sans-serif;font-size:.9rem;padding:.7rem .9rem;width:100%;outline:none;transition:border-color .2s,box-shadow .2s;appearance:none;}
.profil-form-input:focus,.profil-form-select:focus,.profil-form-textarea:focus{border-color:rgba(255,45,155,.5);box-shadow:0 0 0 3px rgba(255,45,155,.1);}
.profil-form-textarea{min-height:90px;resize:vertical;line-height:1.5;}
.profil-form-select option{background:#1a0a28;}
.profil-form-input::placeholder,.profil-form-textarea::placeholder{color:var(--muted);}
.profil-chips-row{display:flex;gap:.4rem;flex-wrap:wrap;}
.profil-chip{padding:.3rem .7rem;border-radius:20px;font-size:.72rem;font-weight:700;cursor:pointer;background:rgba(255,255,255,.05);border:1.5px solid rgba(255,255,255,.1);color:var(--muted);transition:all .2s;}
.profil-chip.selected{background:rgba(255,45,155,.15);border-color:rgba(255,45,155,.5);color:var(--pink);}
.profil-form-save{background:linear-gradient(135deg,var(--pink),#cc1f7f);color:#fff;border:none;border-radius:14px;padding:.85rem;font-size:.9rem;font-weight:800;cursor:pointer;font-family:'DM Sans',sans-serif;transition:all .22s;margin-top:.5rem;box-shadow:0 4px 20px rgba(255,45,155,.35);}
.profil-form-save:hover{transform:translateY(-2px);box-shadow:0 8px 30px rgba(255,45,155,.5);}
.profil-upload-zone{border:2px dashed rgba(255,45,155,.3);border-radius:14px;padding:1.8rem;display:flex;flex-direction:column;align-items:center;gap:.5rem;cursor:pointer;transition:all .2s;background:rgba(255,45,155,.03);}
.profil-upload-zone:hover{border-color:rgba(255,45,155,.6);background:rgba(255,45,155,.07);}
@media(max-width:480px){#sec-profil .profile-name{font-size:1.25rem;}#sec-profil .p-avatar{width:84px;height:84px;font-size:2.2rem;}#sec-profil .cover{height:160px;}}


/* ════════════════════════════════════════════════════════════════
   AMBI241 — MODULE SOCIAL : CSS Amis & Communautés
   ════════════════════════════════════════════════════════════════ */
/* ── Conteneur section sociale ── */
#sec-social{position:relative;z-index:1;width:100%;isolation:isolate;}

/* ── En-tête social ── */
.soc-hero{
  padding:1.2rem 1rem 0.8rem;
  background:linear-gradient(180deg,rgba(255,45,155,0.08) 0%,transparent 100%);
  border-bottom:1px solid rgba(255,45,155,0.12);
  display:flex;flex-direction:column;align-items:center;text-align:center;
}
.soc-hero-title{
  font-family:'Syne',sans-serif;font-size:1.25rem;font-weight:800;
  color:var(--text);display:flex;align-items:center;justify-content:center;gap:0.5rem;
}
.soc-hero-title span{
  color:#ffffff;
}
.soc-hero-sub{font-size:0.72rem;color:var(--muted);margin-top:0.2rem;}

/* ── Barre de recherche globale ── */
.soc-search-bar{
  display:flex;align-items:center;gap:0.5rem;
  margin:0.8rem 1rem;
  background:rgba(255,255,255,0.04);
  border:1.5px solid rgba(255,45,155,0.2);
  border-radius:14px;padding:0.5rem 0.75rem;
  transition:border-color 0.2s;
}
.soc-search-bar:focus-within{border-color:rgba(255,45,155,0.55);}
.soc-search-bar input{
  flex:1;background:none;border:none;outline:none;
  color:var(--text);font-size:0.82rem;font-family:'DM Sans',sans-serif;
}
.soc-search-bar input::placeholder{color:var(--muted);}
.soc-search-icon{color:var(--muted);font-size:0.95rem;flex-shrink:0;}

/* ── Onglets sociaux principaux ── */
.soc-tabs{
  display:flex;gap:0;overflow-x:auto;scrollbar-width:none;
  border-bottom:1px solid rgba(255,255,255,0.07);
  padding:0 0.5rem;
  width:100%;
}
.soc-tabs::-webkit-scrollbar{display:none;}
.soc-tabs, .socpub-filter-row{
  mask-image: linear-gradient(to right, transparent 0, black 24px, black calc(100% - 24px), transparent 100%);
  -webkit-mask-image: linear-gradient(to right, transparent 0, black 24px, black calc(100% - 24px), transparent 100%);
}
.soc-tab{
  flex-shrink:0;padding:0.65rem 0.9rem;
  font-family:'DM Sans',sans-serif;font-size:0.75rem;font-weight:700;
  color:var(--muted);border-bottom:2.5px solid transparent;
  cursor:pointer;transition:all 0.2s;white-space:nowrap;
  display:flex;align-items:center;gap:0.3rem;
}
.soc-tab.active{color:var(--pink);border-bottom-color:var(--pink);}
.soc-tab-badge{
  background:var(--pink);color:#fff;
  font-size:0.55rem;font-weight:800;
  padding:0.1rem 0.35rem;border-radius:20px;
  min-width:16px;text-align:center;
}

/* ── Panneaux de contenu ── */
.soc-pane{display:none;padding:0.8rem 0;width:100%;position:relative;z-index:2;}
.soc-pane.active{display:block;width:100%;}

/* ── Carte d'ami ── */
.friend-card{
  display:flex;align-items:center;gap:0.75rem;
  padding:0.85rem 1rem;
  background:rgba(255,255,255,0.015);
  border:1px solid rgba(255,45,155,0.1);
  border-radius:16px;
  margin:0 0.75rem 0.55rem;
  transition:all 0.2s;position:relative;
  cursor:pointer;
  box-shadow:0 2px 12px rgba(0,0,0,0.15);
}
.friend-card:hover{background:rgba(255,45,155,0.06);border-color:rgba(255,45,155,0.25);transform:translateY(-1px);box-shadow:0 4px 18px rgba(255,45,155,0.12);}
.friend-card:active{transform:scale(0.98);background:rgba(255,255,255,0.03);}
/* Badge non-lu sur bouton message */
.friend-msg-wrap{position:relative;display:inline-flex;}
.friend-unread-badge{
  position:absolute;top:-5px;right:-5px;
  min-width:16px;height:16px;border-radius:8px;
  background:var(--pink);color:#fff;
  font-size:0.58rem;font-weight:900;
  display:flex;align-items:center;justify-content:center;
  padding:0 3px;border:2px solid var(--bg);
  animation:pulse 1.8s ease-in-out infinite;
  pointer-events:none;
}

/* ── Avatar ── */
.soc-avatar{
  width:42px;height:42px;border-radius:50%;flex-shrink:0;
  background:linear-gradient(135deg,var(--pink),var(--purple));
  display:flex;align-items:center;justify-content:center;
  font-size:1rem;font-weight:800;color:#fff;
  position:relative;overflow:hidden;
}
.soc-avatar img{width:100%;height:100%;object-fit:cover;}
.soc-avatar.sz-lg{width:58px;height:58px;font-size:1.4rem;}
.soc-online-dot{
  position:absolute;bottom:1px;right:1px;
  width:10px;height:10px;border-radius:50%;
  background:var(--green);border:2px solid var(--bg);
}
.soc-online-dot.away{background:var(--amber);}
.soc-online-dot.offline{background:var(--muted);opacity:0.5;}

/* ── Info ami ── */
.friend-info{flex:1;min-width:0;}
.friend-name{
  font-family:'Syne',sans-serif;font-size:0.85rem;font-weight:800;
  color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
}
.friend-meta{font-size:0.67rem;color:var(--muted);margin-top:0.1rem;display:flex;align-items:center;gap:0.3rem;}
.friend-meta-dot{width:3px;height:3px;border-radius:50%;background:var(--muted);}
.friend-tag{
  display:inline-block;font-size:0.58rem;font-weight:700;
  padding:0.08rem 0.4rem;border-radius:4px;
  background:rgba(255,45,155,0.12);color:var(--pink);
}
.friend-tag.cyan{background:rgba(0,229,255,0.1);color:var(--cyan);}
.friend-tag.amber{background:rgba(255,215,0,0.1);color:var(--amber);}
.friend-tag.green{background:rgba(0,255,170,0.1);color:var(--green);}

/* ── Actions rapides ami ── */
.friend-actions{display:flex;gap:0.3rem;flex-shrink:0;}
.friend-act-btn{
  width:30px;height:30px;border-radius:50%;border:none;
  display:flex;align-items:center;justify-content:center;
  font-size:0.85rem;cursor:pointer;transition:all 0.2s;
}
.friend-act-btn.msg{background:rgba(0,229,255,0.12);color:var(--cyan);}
.friend-act-btn.del{background:rgba(255,68,102,0.1);color:var(--red);}
.friend-act-btn.blk{background:rgba(255,255,255,0.06);color:var(--muted);}
.friend-act-btn.ok{background:rgba(0,255,170,0.12);color:var(--green);}
.friend-act-btn:active{transform:scale(0.88);opacity:0.8;}

/* ── Demande d'ami ── */
.friend-req-card{
  background:rgba(255,45,155,0.05);
  border:1px solid rgba(255,45,155,0.18);
  border-radius:14px;margin:0.4rem 1rem;
  padding:0.8rem;
}
.friend-req-top{display:flex;align-items:center;gap:0.7rem;margin-bottom:0.65rem;}
.friend-req-msg{font-size:0.72rem;color:var(--muted);font-style:italic;margin-bottom:0.65rem;line-height:1.4;}
.friend-req-actions{display:flex;gap:0.4rem;}
.friend-req-accept{
  flex:2;padding:0.45rem;border-radius:9px;
  background:rgba(0,255,170,0.12);border:1.5px solid rgba(0,255,170,0.35);
  color:var(--green);font-size:0.75rem;font-weight:800;
  cursor:pointer;font-family:'DM Sans',sans-serif;
  transition:all 0.2s;
}
.friend-req-accept:active{background:rgba(0,255,170,0.25);}
.friend-req-decline{
  flex:1;padding:0.45rem;border-radius:9px;
  background:rgba(255,68,102,0.08);border:1.5px solid rgba(255,68,102,0.25);
  color:var(--red);font-size:0.75rem;font-weight:700;
  cursor:pointer;font-family:'DM Sans',sans-serif;
  transition:all 0.2s;
}
.friend-req-decline:active{background:rgba(255,68,102,0.2);}

/* ── Suggestions d'amis ── */
.soc-suggest-strip{
  padding:0.5rem 1rem;
  border-bottom:1px solid rgba(255,255,255,0.06);
}
.soc-suggest-label{
  font-size:0.62rem;font-weight:800;letter-spacing:0.1em;text-transform:uppercase;
  color:var(--amber);margin-bottom:0.6rem;
}
.soc-suggest-row{display:flex;gap:0.6rem;overflow-x:auto;scrollbar-width:none;padding-bottom:0.3rem;}
.soc-suggest-row::-webkit-scrollbar{display:none;}
.soc-suggest-item{
  flex-shrink:0;width:70px;text-align:center;
}
.soc-suggest-avatar{
  width:48px;height:48px;border-radius:50%;
  background:linear-gradient(135deg,var(--cyan),var(--purple));
  display:flex;align-items:center;justify-content:center;
  font-size:1.15rem;margin:0 auto 0.3rem;
  border:2px solid rgba(255,255,255,0.1);
  transition:border-color 0.2s;
}
.soc-suggest-name{font-size:0.62rem;font-weight:700;color:var(--text);line-height:1.2;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.soc-suggest-sub{font-size:0.55rem;color:var(--muted);}
.soc-suggest-add{
  margin-top:0.3rem;padding:0.2rem 0.45rem;border-radius:20px;
  background:rgba(255,45,155,0.12);border:1px solid rgba(255,45,155,0.35);
  color:var(--pink);font-size:0.6rem;font-weight:800;
  cursor:pointer;font-family:'DM Sans',sans-serif;
  transition:all 0.15s;
}
.soc-suggest-add:active{background:rgba(255,45,155,0.25);}

/* ── COMMUNAUTÉS ── */
.comm-card{
  margin:0.5rem 1rem;
  background:var(--surface);
  border:1px solid rgba(255,255,255,0.07);
  border-radius:16px;overflow:hidden;
  transition:border-color 0.2s,transform 0.15s;
  cursor:pointer;
}
.comm-card:active{transform:scale(0.98);border-color:rgba(255,45,155,0.3);}
.comm-cover{
  height:75px;background:linear-gradient(135deg,var(--surface2),rgba(255,45,155,0.15));
  position:relative;overflow:hidden;display:flex;align-items:center;justify-content:center;
  font-size:2rem;
}
.comm-cover::after{
  content:'';position:absolute;inset:0;
  background:linear-gradient(0deg,rgba(26,10,40,0.7),transparent);
}
.comm-body{padding:0.7rem 0.8rem;}
.comm-name{
  font-family:'Syne',sans-serif;font-size:0.9rem;font-weight:800;
  color:var(--text);margin-bottom:0.15rem;
}
.comm-desc{font-size:0.7rem;color:var(--muted);line-height:1.4;
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;}
.comm-footer{
  display:flex;align-items:center;justify-content:space-between;
  padding:0.5rem 0.8rem;
  border-top:1px solid rgba(255,255,255,0.05);
}
.comm-stats{display:flex;gap:0.7rem;}
.comm-stat{display:flex;align-items:center;gap:0.25rem;font-size:0.65rem;color:var(--muted);}
.comm-stat span{font-weight:700;color:var(--text);}
.comm-join-btn{
  padding:0.3rem 0.75rem;border-radius:20px;
  background:rgba(255,45,155,0.12);border:1.5px solid rgba(255,45,155,0.4);
  color:var(--pink);font-size:0.65rem;font-weight:800;
  cursor:pointer;font-family:'DM Sans',sans-serif;transition:all 0.2s;
}
.comm-join-btn.joined{
  background:rgba(0,255,170,0.1);border-color:rgba(0,255,170,0.35);color:var(--green);
}
.comm-join-btn:active{opacity:0.7;}

/* Badge catégorie communauté */
.comm-cat-badge{
  position:absolute;top:0.4rem;right:0.4rem;z-index:2;
  font-size:0.55rem;font-weight:800;letter-spacing:0.08em;text-transform:uppercase;
  padding:0.15rem 0.45rem;border-radius:6px;
  background:rgba(0,0,0,0.55);backdrop-filter:blur(6px);
  color:var(--amber);border:1px solid rgba(255,215,0,0.3);
}

/* ── PROJETS ── */
.proj-card{
  margin:0.5rem 1rem;
  background:linear-gradient(135deg,rgba(0,229,255,0.06),rgba(204,68,255,0.04));
  border:1px solid rgba(0,229,255,0.18);
  border-radius:16px;padding:0.85rem;
  cursor:pointer;transition:all 0.2s;
}
.proj-card:active{transform:scale(0.98);}
.proj-header{display:flex;align-items:flex-start;gap:0.65rem;margin-bottom:0.6rem;}
.proj-icon{
  width:40px;height:40px;border-radius:10px;flex-shrink:0;
  background:linear-gradient(135deg,var(--cyan),var(--purple));
  display:flex;align-items:center;justify-content:center;
  font-size:1.1rem;
}
.proj-info{flex:1;min-width:0;}
.proj-name{
  font-family:'Syne',sans-serif;font-size:0.88rem;font-weight:800;
  color:var(--text);margin-bottom:0.1rem;
}
.proj-type-badge{
  display:inline-flex;align-items:center;gap:0.2rem;
  font-size:0.58rem;font-weight:700;text-transform:uppercase;letter-spacing:0.08em;
  padding:0.1rem 0.4rem;border-radius:5px;
  background:rgba(0,229,255,0.1);color:var(--cyan);border:1px solid rgba(0,229,255,0.2);
}
.proj-desc{font-size:0.72rem;color:var(--muted);line-height:1.45;margin-bottom:0.65rem;}
.proj-meta-row{display:flex;align-items:center;gap:0.5rem;flex-wrap:wrap;}
.proj-meta-chip{
  display:flex;align-items:center;gap:0.22rem;
  font-size:0.6rem;color:var(--muted);
  background:rgba(255,255,255,0.04);
  border:1px solid rgba(255,255,255,0.08);
  padding:0.15rem 0.5rem;border-radius:20px;
}
.proj-progress{
  margin-top:0.6rem;
  background:rgba(255,255,255,0.06);
  height:4px;border-radius:2px;overflow:hidden;
}
.proj-progress-bar{
  height:100%;border-radius:2px;
  background:linear-gradient(90deg,var(--cyan),var(--purple));
  transition:width 0.6s ease;
}
.proj-member-row{display:flex;align-items:center;gap:0.35rem;margin-top:0.5rem;}
.proj-member-av{
  width:22px;height:22px;border-radius:50%;
  background:linear-gradient(135deg,var(--pink),var(--purple));
  display:flex;align-items:center;justify-content:center;
  font-size:0.6rem;color:#fff;font-weight:800;
  border:1.5px solid var(--bg);margin-left:-8px;
}
.proj-member-av:first-child{margin-left:0;}
.proj-more-members{
  font-size:0.62rem;color:var(--muted);margin-left:0.2rem;
}

/* ── BOUTON FLOTTANT CRÉER ── */
.soc-fab{
  position:fixed;bottom:calc(var(--nav-h) + var(--player-h) + 20px);right:1rem;
  width:48px;height:48px;border-radius:50%;
  background:linear-gradient(135deg,var(--pink),var(--purple));
  border:none;color:#fff;font-size:1.4rem;
  display:none;align-items:center;justify-content:center;
  box-shadow:0 4px 18px rgba(255,45,155,0.45);
  cursor:pointer;z-index:150;
  transition:all 0.25s cubic-bezier(0.34,1.56,0.64,1);
}
.soc-fab:active{transform:scale(0.88);}
.soc-fab-menu{
  position:fixed;bottom:calc(var(--nav-h) + var(--player-h) + 76px);right:0.7rem;
  display:flex;flex-direction:column;gap:0.5rem;
  z-index:149;
  /* Toujours flex — masqué par opacity/transform pour animation instantanée */
  opacity:0;
  pointer-events:none;
  transform:scale(0.85) translateY(12px);
  transform-origin:bottom right;
  transition:opacity 0.15s ease, transform 0.15s cubic-bezier(0.34,1.56,0.64,1);
}
.soc-fab-menu.open{
  opacity:1;
  pointer-events:auto;
  transform:scale(1) translateY(0);
}
.soc-fab-item{
  display:flex;align-items:center;gap:0.5rem;justify-content:flex-end;
  transition:opacity 0.12s ease, transform 0.12s ease;
}
/* Entrée décalée pour chaque item */
.soc-fab-menu.open .soc-fab-item:nth-child(1){transition-delay:0.05s;}
.soc-fab-menu.open .soc-fab-item:nth-child(2){transition-delay:0.08s;}
.soc-fab-menu.open .soc-fab-item:nth-child(3){transition-delay:0.11s;}
.soc-fab-item-btn{
  padding:0.4rem 0.75rem;border-radius:20px;
  background:var(--surface);border:1px solid rgba(255,45,155,0.35);
  color:var(--text);font-size:0.73rem;font-weight:700;
  cursor:pointer;font-family:'DM Sans',sans-serif;
  box-shadow:0 2px 12px rgba(0,0,0,0.5);
  transition:background 0.12s;white-space:nowrap;
  touch-action:manipulation;-webkit-tap-highlight-color:transparent;
}
.soc-fab-item-btn:active{background:rgba(255,45,155,0.18);transform:scale(0.96);}
.soc-fab-item-icon{
  width:36px;height:36px;border-radius:50%;
  background:var(--surface);border:1px solid rgba(255,45,155,0.3);
  display:flex;align-items:center;justify-content:center;font-size:0.95rem;
  box-shadow:0 2px 10px rgba(0,0,0,0.5);
}
/* FAB lui-même : réaction tactile sans délai */
.soc-fab{touch-action:manipulation;-webkit-tap-highlight-color:transparent;}

/* ── MODAL OVERLAY ── */
.soc-modal-overlay{
  position:fixed;inset:0;background:rgba(0,0,0,0.75);
  backdrop-filter:blur(8px);z-index:500;
  display:none;align-items:flex-end;justify-content:center;
  /* nav bar + lecteur si actif */
  padding-bottom:calc(var(--nav-h) + var(--player-h));
}
.soc-modal-overlay.open{display:flex;}
/* @keyframes slideUp — défini globalement */
.soc-modal-sheet{
  width:100%;max-width:480px;
  /* max-height tient compte du padding-bottom de l'overlay */
  max-height:calc(90vh - 62px);
  overflow-y:auto;
  background:var(--surface);
  border-radius:22px 22px 0 0;
  border-top:1px solid rgba(255,45,155,0.25);
  padding-bottom:env(safe-area-inset-bottom,0.5rem);
  animation:slideUp 0.35s cubic-bezier(0.34,1.56,0.64,1);
}
.soc-modal-handle{
  width:36px;height:4px;border-radius:2px;
  background:rgba(255,255,255,0.15);
  margin:0.75rem auto 0;
}
.soc-modal-head{
  padding:0.8rem 1rem 0.6rem;
  border-bottom:1px solid rgba(255,255,255,0.06);
  display:flex;align-items:center;justify-content:space-between;
}
.soc-modal-title{font-family:'Syne',sans-serif;font-size:1rem;font-weight:800;color:var(--pink);}
.soc-modal-close{
  width:28px;height:28px;border-radius:50%;
  background:rgba(255,255,255,0.07);border:none;
  color:var(--muted);font-size:0.9rem;cursor:pointer;
  display:flex;align-items:center;justify-content:center;
}
.soc-modal-close:active{opacity:0.6;}
.soc-modal-body{padding:1rem;}

/* ── DM Chat Modal ── */
/* padding-bottom : nav bar + lecteur, via variable globale --player-h */
#modalDMChat{
  padding-bottom: calc(var(--nav-h) + var(--player-h)) !important;
}
#modalDMChat .soc-modal-sheet{
  display:flex;flex-direction:column;
  height:72vh;max-height:72vh;
  overflow:hidden;
}
.dm-peer-info{display:flex;align-items:center;gap:0.6rem;}
.dm-peer-av{
  width:34px;height:34px;border-radius:50%;
  background:linear-gradient(135deg,var(--pink),var(--purple));
  display:flex;align-items:center;justify-content:center;font-size:1.1rem;
  flex-shrink:0;
}
.dm-peer-name{font-family:'Syne',sans-serif;font-size:0.95rem;font-weight:800;color:var(--pink);}
.dm-peer-status{font-size:0.6rem;color:var(--green);}
.dm-messages{
  flex:1;overflow-y:auto;
  padding:0.9rem 1rem;
  display:flex;flex-direction:column;gap:0.55rem;
  scroll-behavior:smooth;
}
.dm-bubble{
  max-width:78%;padding:0.55rem 0.85rem;
  border-radius:16px;font-size:0.82rem;line-height:1.5;
  word-break:break-word;
}
.dm-bubble.dm-me{
  background:linear-gradient(135deg,var(--pink),var(--purple));
  color:#fff;align-self:flex-end;border-bottom-right-radius:4px;
}
.dm-bubble.dm-them{
  background:var(--surface2);border:1px solid rgba(255,255,255,0.07);
  color:var(--text);align-self:flex-start;border-bottom-left-radius:4px;
}
.dm-bubble-time{font-size:0.54rem;opacity:0.55;margin-top:0.25rem;text-align:right;}
.dm-bubble.dm-them .dm-bubble-time{text-align:left;}
.dm-empty{
  flex:1;display:flex;flex-direction:column;
  align-items:center;justify-content:center;
  color:var(--muted);gap:0.4rem;
}
.dm-empty-icon{font-size:2rem;}
.dm-empty-txt{font-size:0.72rem;}
.dm-input-row{
  display:flex;align-items:center;gap:0.5rem;
  padding:0.6rem 1rem;
  padding-bottom:max(0.6rem, env(safe-area-inset-bottom, 0.6rem));
  border-top:1px solid rgba(255,255,255,0.07);
  background:var(--surface);flex-shrink:0;
  position:sticky;bottom:0;z-index:2;
}
.dm-text-input{
  flex:1;background:var(--surface2);
  border:1.5px solid rgba(255,45,155,0.2);border-radius:22px;
  padding:0.55rem 1rem;color:var(--text);
  font-family:'DM Sans',sans-serif;font-size:0.85rem;outline:none;
  transition:border-color 0.2s;
}
.dm-text-input:focus{border-color:rgba(255,45,155,0.55);}
.dm-text-input::placeholder{color:var(--muted);}
.dm-send-btn{
  width:38px;height:38px;border-radius:50%;flex-shrink:0;
  background:linear-gradient(135deg,var(--pink),var(--purple));
  border:none;color:#fff;font-size:1rem;cursor:pointer;
  display:flex;align-items:center;justify-content:center;
  transition:transform 0.15s,opacity 0.15s;
}
.dm-send-btn:active{transform:scale(0.88);opacity:0.8;}
.dm-send-btn:disabled{opacity:0.35;pointer-events:none;}

/* ── Formulaire ── */
.soc-form-field{margin-bottom:0.85rem;}
.soc-form-label{font-size:0.68rem;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:0.07em;margin-bottom:0.35rem;display:block;}
.soc-input{
  width:100%;padding:0.6rem 0.8rem;
  background:rgba(255,255,255,0.04);
  border:1.5px solid rgba(255,255,255,0.1);
  border-radius:11px;color:var(--text);
  font-size:0.82rem;font-family:'DM Sans',sans-serif;
  outline:none;transition:border-color 0.2s;
}
.soc-input:focus{border-color:rgba(255,45,155,0.55);}
.soc-input::placeholder{color:rgba(176,136,192,0.5);}
textarea.soc-input{resize:vertical;min-height:80px;line-height:1.5;}
.soc-select{
  width:100%;padding:0.6rem 0.8rem;
  background:rgba(255,255,255,0.04);
  border:1.5px solid rgba(255,255,255,0.1);
  border-radius:11px;color:var(--text);
  font-size:0.82rem;font-family:'DM Sans',sans-serif;
  outline:none;transition:border-color 0.2s;
  -webkit-appearance:none;appearance:none;
}
.soc-select:focus{border-color:rgba(255,45,155,0.55);}
.soc-select option{background:var(--surface);color:var(--text);}

/* ── Chips catégories ── */
.soc-cat-grid{display:flex;flex-wrap:wrap;gap:0.4rem;}
.soc-cat-btn{
  padding:0.35rem 0.7rem;border-radius:20px;
  background:rgba(255,255,255,0.04);border:1.5px solid rgba(255,255,255,0.1);
  color:var(--muted);font-size:0.7rem;font-weight:700;
  cursor:pointer;font-family:'DM Sans',sans-serif;transition:all 0.15s;
}
.soc-cat-btn.active{background:rgba(255,45,155,0.12);border-color:var(--pink);color:var(--pink);}
.soc-cat-btn.cyan.active{background:rgba(0,229,255,0.1);border-color:var(--cyan);color:var(--cyan);}
.soc-cat-btn:active{opacity:0.7;}

/* ── Bouton principal ── */
.soc-btn-primary{
  width:100%;padding:0.75rem;border-radius:13px;
  background:linear-gradient(135deg,var(--pink),var(--purple));
  border:none;color:#fff;font-size:0.85rem;font-weight:800;
  cursor:pointer;font-family:'Syne',sans-serif;
  letter-spacing:0.03em;transition:all 0.2s;
  box-shadow:0 4px 16px rgba(255,45,155,0.3);
}
.soc-btn-primary:active{transform:scale(0.98);opacity:0.9;}
.soc-btn-secondary{
  width:100%;padding:0.7rem;border-radius:13px;
  background:rgba(255,255,255,0.05);
  border:1.5px solid rgba(255,255,255,0.12);
  color:var(--text);font-size:0.82rem;font-weight:700;
  cursor:pointer;font-family:'DM Sans',sans-serif;
  transition:all 0.2s;margin-top:0.5rem;
}
.soc-btn-secondary:active{opacity:0.7;}

/* ── Vue profil membre ── */
.member-profile-header{
  position:relative;padding-top:80px;
  background:linear-gradient(180deg,rgba(255,45,155,0.2),transparent 70%);
  text-align:center;margin-bottom:0.5rem;
}
.member-profile-avatar{
  width:72px;height:72px;border-radius:50%;
  background:linear-gradient(135deg,var(--pink),var(--purple));
  display:flex;align-items:center;justify-content:center;
  font-size:1.8rem;margin:0 auto 0.6rem;
  border:3px solid var(--surface);
  box-shadow:0 4px 20px rgba(255,45,155,0.4);
}
.member-profile-name{font-family:'Syne',sans-serif;font-size:1.1rem;font-weight:800;color:var(--text);}
.member-profile-bio{font-size:0.75rem;color:var(--muted);margin-top:0.3rem;line-height:1.4;padding:0 1.5rem;}
.member-profile-stats{display:flex;justify-content:center;gap:1.5rem;margin:0.8rem 0;}
.member-stat{text-align:center;}
.member-stat-val{font-family:'Syne',sans-serif;font-size:1.1rem;font-weight:800;color:var(--text);}
.member-stat-label{font-size:0.6rem;color:var(--muted);text-transform:uppercase;letter-spacing:0.07em;}
.member-profile-actions{display:flex;gap:0.5rem;padding:0 1rem 0.8rem;}

/* ── Vue communauté étendue ── */
.comm-detail-cover{
  height:120px;background:linear-gradient(135deg,rgba(255,45,155,0.25),rgba(0,229,255,0.15));
  display:flex;align-items:center;justify-content:center;font-size:3rem;
  position:relative;overflow:hidden;
}
.comm-detail-cover::after{
  content:'';position:absolute;inset:0;
  background:linear-gradient(0deg,var(--surface) 0%,transparent 50%);
}
.comm-detail-info{padding:0.8rem 1rem;}
.comm-detail-name{font-family:'Syne',sans-serif;font-size:1.15rem;font-weight:800;color:var(--text);}
.comm-detail-desc{font-size:0.75rem;color:var(--muted);margin-top:0.3rem;line-height:1.5;}
.comm-detail-tags{display:flex;flex-wrap:wrap;gap:0.35rem;margin-top:0.5rem;}
.comm-tag{
  font-size:0.62rem;font-weight:700;padding:0.18rem 0.5rem;border-radius:6px;
  background:rgba(255,45,155,0.1);color:var(--pink);
  border:1px solid rgba(255,45,155,0.2);
}
.comm-members-strip{
  padding:0.7rem 1rem;border-top:1px solid rgba(255,255,255,0.05);
}
.comm-members-label{font-size:0.62rem;font-weight:800;letter-spacing:0.08em;text-transform:uppercase;color:var(--muted);margin-bottom:0.5rem;}
.comm-members-avatars{display:flex;align-items:center;}
.comm-member-av{
  width:30px;height:30px;border-radius:50%;
  background:linear-gradient(135deg,var(--cyan),var(--purple));
  display:flex;align-items:center;justify-content:center;
  font-size:0.75rem;color:#fff;font-weight:800;
  border:2px solid var(--surface);margin-left:-8px;
}
.comm-member-av:first-child{margin-left:0;}
.comm-members-count{font-size:0.68rem;color:var(--muted);margin-left:0.5rem;}

/* ── Vide/empty states ── */
.soc-empty{
  text-align:center;padding:2.5rem 1.5rem;
  display:flex;flex-direction:column;align-items:center;gap:0.6rem;
}
.soc-empty-icon{font-size:2.5rem;}
.soc-empty-title{font-family:'Syne',sans-serif;font-size:0.9rem;font-weight:800;color:var(--text);}
.soc-empty-sub{font-size:0.75rem;color:var(--muted);line-height:1.5;max-width:240px;}

/* ── Barre nav bottom (dupliqué ici pour démo) ── */
.nav-bar{
  position:fixed;bottom:0;left:0;right:0;
  background:rgba(26,10,40,0.97);backdrop-filter:blur(20px);
  border-top:1px solid rgba(255,45,155,0.18);
  display:flex;padding:0.3rem 0 0.5rem;z-index:200;
}
.nav-item{
  flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;
  gap:0.12rem;padding:0.4rem 0 0.35rem;cursor:pointer;
  color:var(--muted);font-size:0.48rem;font-weight:700;
  text-transform:uppercase;letter-spacing:0.03em;
  transition:color 0.12s,transform 0.1s;
  min-height:62px;min-width:0;
  text-align:center;line-height:1.1;
  /* Zone tactile max — doigt entier */
  touch-action:manipulation;
  -webkit-touch-callout:none;
  -webkit-tap-highlight-color:transparent;
  position:relative;
  border:none;background:transparent;outline:none;
  /* Padding invisible pour agrandir la zone sans changer le visuel */
  padding-left:0.5rem;padding-right:0.5rem;
}
/* Zone de clic invisible : 20px au-dessus, 10px sur les côtés */
.nav-item::before{
  content:'';
  position:absolute;
  top:-20px;left:-10px;right:-10px;bottom:-4px;
  z-index:1;
}
/* Label texte avec soulignement animé comme les tuiles et top du moment */
.nav-label{
  display:inline-block;
  position:relative;
  white-space:nowrap;
  line-height:1.1;
}
.nav-label::after{
  content:'';
  position:absolute;
  bottom:-1px;left:50%;right:50%;
  height:1.5px;
  background:var(--pink);
  transition:left 0.18s ease,right 0.18s ease,opacity 0.18s;
  opacity:0;
  border-radius:2px;
}
.nav-item.active .nav-label::after,
.nav-item:active .nav-label::after{
  left:0;right:0;opacity:1;
}
.nav-item.active .nav-label{color:var(--pink);}
.nav-item:active{
  transform:scale(0.9);
}
.nav-item:active .nav-label{color:var(--pink);}
.nav-item.active{color:var(--pink);}
.nav-icon{font-size:1.2rem;line-height:1;transition:transform 0.15s;}
.nav-item:active .nav-icon{transform:scale(0.85);}
.nav-item.active .nav-icon{filter:drop-shadow(0 0 4px rgba(255,45,155,0.6));}
.nav-active-dot{
  width:4px;height:4px;border-radius:50%;background:var(--pink);
  opacity:0;transition:opacity 0.2s;
}
.nav-item.active .nav-active-dot{opacity:1;}

/* ── Toast ── */
.soc-toast{
  position:fixed;bottom:80px;left:50%;transform:translateX(-50%) translateY(20px);
  background:rgba(0,0,0,0.9);border:1px solid rgba(255,45,155,0.35);
  color:var(--text);font-size:0.78rem;font-weight:700;
  padding:0.5rem 1.1rem;border-radius:30px;
  opacity:0;transition:all 0.3s;z-index:600;pointer-events:none;
  white-space:nowrap;box-shadow:0 4px 16px rgba(0,0,0,0.5);
}
.soc-toast.show{opacity:1;transform:translateX(-50%) translateY(0);}

/* Animations */
@keyframes popIn{from{transform:scale(0.9);opacity:0}to{transform:scale(1);opacity:1}}
/* @keyframes pulse — défini globalement */
@keyframes fadeIn{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}
.fade-in{animation:fadeIn 0.3s ease forwards;}

/* Scrollbar */
::-webkit-scrollbar{width:3px;height:3px;}
::-webkit-scrollbar-track{background:transparent;}
::-webkit-scrollbar-thumb{background:rgba(255,45,155,0.3);border-radius:2px;}

/* ════════════════════════════════════════════════════════════════
   QR CODE VOTE SYSTEM — Styles (AMBI241 Patch)
   ════════════════════════════════════════════════════════════════ */
.qr-card-icon{position:absolute;top:8px;right:8px;height:30px;width:auto;padding:0 10px 0 8px;background:rgba(0,10,30,0.78);border:1.5px solid rgba(0,229,255,0.75);border-radius:8px;display:inline-flex;align-items:center;justify-content:center;gap:5px;cursor:pointer;z-index:20;transition:all 0.2s cubic-bezier(0.34,1.56,0.64,1);backdrop-filter:blur(8px);font-size:0.72rem;font-weight:800;font-family:'DM Sans',sans-serif;color:var(--cyan);letter-spacing:0.01em;white-space:nowrap;box-shadow:0 2px 12px rgba(0,229,255,0.25),0 2px 6px rgba(0,0,0,0.5);}
.qr-card-icon:hover{background:rgba(0,40,60,0.88);border-color:rgba(0,229,255,0.9);transform:scale(1.04);box-shadow:0 2px 16px rgba(0,229,255,0.25);}
.qr-card-icon:active{transform:scale(0.96);}
.qr-card-icon.qr-locked{border-color:rgba(255,45,155,0.5);background:rgba(40,0,30,0.72);}
.qr-card-icon.qr-locked span{color:var(--pink)!important;}
/* Fix: overflow:hidden + contain:layout sur .card clippait l'icône QR positionnée en absolute */
.card{position:relative;overflow:visible !important;contain:style !important;}
.qr-modal-overlay{position:fixed;inset:0;background:rgba(0,0,0,0.82);backdrop-filter:blur(14px);z-index:9990;display:none;align-items:center;justify-content:center;padding:1rem;}
.qr-modal-overlay.open{display:flex;}
.qr-modal-sheet{background:linear-gradient(145deg,#1e0a30,#230d35);border:1.5px solid rgba(0,229,255,0.3);border-radius:24px;padding:1.4rem;width:min(400px,100%);max-height:92vh;overflow-y:auto;position:relative;animation:qrPopIn 0.35s cubic-bezier(0.34,1.56,0.64,1);}
@keyframes qrPopIn{from{transform:scale(0.82) translateY(30px);opacity:0;}to{transform:scale(1) translateY(0);opacity:1;}}
.qr-modal-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:0.8rem;}
.qr-modal-title{font-family:'Syne',sans-serif;font-size:1rem;font-weight:800;color:var(--cyan);display:flex;align-items:center;gap:0.4rem;}
.qr-modal-close{width:30px;height:30px;border-radius:50%;background:rgba(255,255,255,0.07);border:1px solid rgba(255,255,255,0.1);color:var(--muted);font-size:0.9rem;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all 0.15s;}
.qr-modal-close:active{opacity:0.6;}
.qr-canvas-wrap{background:#fff;border-radius:16px;padding:14px;display:flex;align-items:center;justify-content:center;margin:0.8rem auto;width:fit-content;box-shadow:0 8px 32px rgba(0,0,0,0.45),0 0 0 3px rgba(0,229,255,0.25);position:relative;}
.qr-canvas-wrap canvas{display:block;border-radius:8px;}
.qr-center-logo{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:36px;height:36px;background:#1a0a28;border-radius:8px;display:flex;align-items:center;justify-content:center;font-family:'Syne',sans-serif;font-size:0.55rem;font-weight:900;color:#ff2d9b;letter-spacing:-0.02em;border:2px solid #fff;}
.qr-etab-info{text-align:center;margin-bottom:1rem;}
.qr-etab-name{font-family:'Syne',sans-serif;font-size:0.95rem;font-weight:800;color:var(--text);margin-bottom:0.2rem;}
.qr-etab-sub{font-size:0.68rem;color:var(--muted);}
.qr-vote-counter{display:inline-flex;align-items:center;gap:0.35rem;background:rgba(0,255,170,0.1);border:1px solid rgba(0,255,170,0.3);border-radius:20px;padding:0.22rem 0.7rem;font-size:0.7rem;font-weight:700;color:var(--green);margin-top:0.4rem;font-family:'Syne',sans-serif;}
.qr-vote-counter-num{font-size:0.9rem;font-weight:900;}
.qr-instructions{background:rgba(0,229,255,0.06);border:1px solid rgba(0,229,255,0.18);border-radius:12px;padding:0.8rem;margin-bottom:1rem;font-size:0.7rem;color:rgba(255,240,248,0.75);line-height:1.7;}
.qr-instructions strong{color:var(--cyan);}
.qr-dl-section{margin-bottom:0.8rem;}
.qr-dl-label{font-size:0.62rem;font-weight:800;color:var(--muted);text-transform:uppercase;letter-spacing:0.08em;margin-bottom:0.5rem;}
.qr-dl-row{display:flex;gap:0.4rem;flex-wrap:wrap;}
.qr-dl-btn{flex:1;min-width:70px;padding:0.5rem 0.4rem;border-radius:10px;border:1.5px solid rgba(0,229,255,0.3);background:rgba(0,229,255,0.07);color:var(--cyan);font-size:0.68rem;font-weight:800;cursor:pointer;font-family:'DM Sans',sans-serif;text-align:center;transition:all 0.2s;display:flex;flex-direction:column;align-items:center;gap:0.2rem;}
.qr-dl-btn:active{transform:scale(0.94);background:rgba(0,229,255,0.15);}
.qr-dl-btn-icon{font-size:1.2rem;}
.qr-dl-btn-fmt{font-size:0.55rem;font-family:'Syne',sans-serif;}
/* ── QR Scanner caméra ── */
.qr-scanner-overlay{position:fixed;inset:0;background:#000;z-index:10100;display:none;flex-direction:column;align-items:center;justify-content:flex-start;}
.qr-scanner-overlay.open{display:flex;}
.qr-scanner-header{width:100%;display:flex;align-items:center;justify-content:space-between;padding:1rem 1.2rem;background:rgba(0,0,0,0.6);backdrop-filter:blur(10px);}
.qr-scanner-title{font-family:'Syne',sans-serif;font-weight:800;font-size:1rem;color:var(--cyan);}
.qr-scanner-close{width:34px;height:34px;border-radius:50%;background:rgba(255,255,255,0.1);border:1px solid rgba(255,255,255,0.2);color:#fff;font-size:1rem;cursor:pointer;display:flex;align-items:center;justify-content:center;}
.qr-scanner-viewport{position:relative;width:100%;flex:1;overflow:hidden;background:#000;}
.qr-scanner-viewport video{width:100%;height:100%;object-fit:cover;}
.qr-scanner-frame{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;pointer-events:none;}
.qr-scanner-box{width:220px;height:220px;position:relative;}
.qr-scanner-box::before,.qr-scanner-box::after{content:'';position:absolute;width:40px;height:40px;border-color:var(--cyan);border-style:solid;}
.qr-scanner-box::before{top:0;left:0;border-width:3px 0 0 3px;border-radius:4px 0 0 0;}
.qr-scanner-box::after{bottom:0;right:0;border-width:0 3px 3px 0;border-radius:0 0 4px 0;}
.qr-scanner-corner-tr{position:absolute;top:0;right:0;width:40px;height:40px;border-top:3px solid var(--cyan);border-right:3px solid var(--cyan);border-radius:0 4px 0 0;}
.qr-scanner-corner-bl{position:absolute;bottom:0;left:0;width:40px;height:40px;border-bottom:3px solid var(--cyan);border-left:3px solid var(--cyan);border-radius:0 0 0 4px;}
.qr-scanner-line{position:absolute;left:6px;right:6px;height:2px;background:linear-gradient(90deg,transparent,var(--cyan),transparent);animation:qrScanLine 2s ease-in-out infinite;top:50%;}
@keyframes qrScanLine{0%,100%{top:10%;opacity:0.8;}50%{top:88%;opacity:1;}}
.qr-scanner-hint{position:absolute;bottom:0;left:0;right:0;padding:1.2rem;background:linear-gradient(to top,rgba(0,0,0,0.85),transparent);text-align:center;}
.qr-scanner-hint-txt{font-size:0.78rem;color:rgba(255,255,255,0.8);line-height:1.5;}
.qr-scanner-status{font-size:0.7rem;color:var(--cyan);font-weight:700;margin-top:0.3rem;}
.qr-scanner-success{position:absolute;inset:0;background:rgba(0,255,170,0.15);display:flex;flex-direction:column;align-items:center;justify-content:center;backdrop-filter:blur(4px);display:none;}
.qr-scanner-success.show{display:flex;}
.qr-scanner-success-icon{font-size:4rem;margin-bottom:0.5rem;}
.qr-scanner-success-txt{font-family:'Syne',sans-serif;font-size:1rem;font-weight:800;color:var(--green);}
/* Bouton scanner membre */
.qr-scan-member-btn{width:100%;padding:0.75rem;border-radius:12px;border:1.5px solid rgba(0,229,255,0.4);background:rgba(0,229,255,0.07);color:var(--cyan);font-family:'Syne',sans-serif;font-weight:800;font-size:0.88rem;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:0.5rem;margin-bottom:0.8rem;transition:all 0.2s;}
.qr-scan-member-btn:active{transform:scale(0.97);background:rgba(0,229,255,0.15);}
.qr-vote-strip{display:flex;gap:0.5rem;margin-bottom:0.8rem;}
.qr-vote-quick-btn{flex:1;padding:0.65rem 0.5rem;border-radius:12px;border:none;cursor:pointer;font-family:'DM Sans',sans-serif;font-weight:800;font-size:0.8rem;transition:all 0.2s;display:flex;align-items:center;justify-content:center;gap:0.3rem;}
.qr-vote-quick-btn:active{transform:scale(0.94);}
.qr-vote-pos{background:linear-gradient(135deg,rgba(0,255,170,0.25),rgba(0,229,255,0.15));border:1.5px solid rgba(0,255,170,0.45);color:var(--green);}
.qr-vote-neg{background:linear-gradient(135deg,rgba(255,68,102,0.15),rgba(255,45,155,0.1));border:1.5px solid rgba(255,68,102,0.35);color:var(--red);}
.qr-vote-quick-btn.qr-voted{box-shadow:0 0 16px rgba(0,255,170,0.3);}
.qr-vote-confirm{display:none;text-align:center;padding:1rem;animation:qrFadeIn 0.4s ease;}
@keyframes qrFadeIn{from{opacity:0;transform:translateY(8px);}to{opacity:1;transform:translateY(0);}}
.qr-vote-confirm.show{display:block;}
.qr-vote-confirm-icon{font-size:2.5rem;margin-bottom:0.4rem;}
.qr-vote-confirm-title{font-family:'Syne',sans-serif;font-size:0.95rem;font-weight:800;color:var(--green);margin-bottom:0.3rem;}
.qr-vote-confirm-msg{font-size:0.72rem;color:var(--muted);line-height:1.5;}
.qr-scan-landing{display:none;position:fixed;inset:0;background:var(--bg);z-index:10000;overflow-y:auto;flex-direction:column;align-items:center;justify-content:flex-start;padding:2rem 1.2rem;}
.qr-scan-landing.show{display:flex;}
.qr-landing-logo{font-family:'Syne',sans-serif;font-size:1.3rem;font-weight:900;color:var(--pink);margin-bottom:0.3rem;letter-spacing:-0.03em;}
.qr-landing-etab-card{background:linear-gradient(145deg,#230d35,#2c1040);border:1.5px solid rgba(255,45,155,0.35);border-radius:20px;padding:1.4rem;width:100%;max-width:380px;margin:1.2rem 0;text-align:center;}
.qr-landing-etab-name{font-family:'Syne',sans-serif;font-size:1.3rem;font-weight:800;color:var(--text);margin-bottom:0.3rem;}
.qr-landing-etab-type{font-size:0.72rem;color:var(--muted);margin-bottom:1rem;}
.qr-landing-vote-btns{display:flex;gap:0.6rem;}
.qr-landing-vote-btn{flex:1;padding:0.9rem 0.5rem;border-radius:14px;border:none;cursor:pointer;font-family:'Syne',sans-serif;font-weight:800;font-size:1rem;transition:all 0.2s;}
.qr-landing-vote-btn:active{transform:scale(0.92);}
.qr-landing-pos{background:linear-gradient(135deg,#00c878,#00ffaa);color:#001a0e;}
.qr-landing-neg{background:linear-gradient(135deg,#ff2244,#ff4466);color:#fff;}
.qr-landing-signup-cta{background:rgba(255,45,155,0.07);border:1px solid rgba(255,45,155,0.25);border-radius:14px;padding:1.1rem;text-align:center;margin-top:0.5rem;width:100%;max-width:380px;}
.qr-landing-signup-title{font-family:'Syne',sans-serif;font-size:0.88rem;font-weight:800;color:var(--pink);margin-bottom:0.35rem;}
.qr-landing-signup-desc{font-size:0.7rem;color:var(--muted);line-height:1.5;margin-bottom:0.8rem;}
.qr-landing-signup-btn{display:block;width:100%;padding:0.7rem;border-radius:12px;border:none;background:linear-gradient(135deg,var(--pink),var(--purple));color:#fff;font-family:'Syne',sans-serif;font-weight:800;font-size:0.85rem;cursor:pointer;}
.qr-landing-signup-btn:active{opacity:0.85;}
.qr-card-icon{position:absolute;top:8px;right:8px;width:auto;min-width:32px;height:32px;padding:0 8px;background:linear-gradient(135deg,rgba(0,229,255,0.22),rgba(204,68,255,0.18));border:1.5px solid rgba(0,229,255,0.55);border-radius:8px;display:flex;align-items:center;justify-content:center;gap:4px;cursor:pointer;z-index:10;transition:all 0.2s cubic-bezier(0.34,1.56,0.64,1);backdrop-filter:blur(8px);font-size:0.95rem;box-shadow:0 2px 10px rgba(0,229,255,0.25);}
.qr-card-icon-tooltip{font-family:'Syne',sans-serif;font-size:0.6rem;font-weight:800;color:#ffffff;text-shadow:0 1px 4px rgba(0,0,0,0.8);letter-spacing:0.02em;white-space:nowrap;}

/* Visiteur non-inscrit : icône dorée avec cadenas */
.qr-card-icon.qr-guest{background:linear-gradient(135deg,rgba(255,215,0,0.18),rgba(255,45,155,0.13));border-color:rgba(255,215,0,0.45);box-shadow:0 2px 10px rgba(255,215,0,0.18);}
.qr-card-icon.qr-guest .qr-card-icon-tooltip{color:#ffd700;}

/* Établissement propriétaire : icône verte avec étoile */
.qr-card-icon.qr-owner{background:linear-gradient(135deg,rgba(0,255,170,0.22),rgba(0,229,255,0.18));border-color:rgba(0,255,170,0.55);box-shadow:0 4px 14px rgba(0,255,170,0.28);}
.qr-card-icon.qr-owner .qr-card-icon-tooltip{color:#00ffaa;}

/* ── MODAL — sections conditionnelles ── */
.qr-section-guest{display:none;}
.qr-section-member{display:none;}
.qr-section-owner{display:none;}

/* ── Bannière inscription (pour visiteurs dans le modal) ── */
.qr-signup-wall{background:linear-gradient(135deg,rgba(255,215,0,0.08),rgba(255,45,155,0.06));border:1.5px solid rgba(255,215,0,0.35);border-radius:16px;padding:1.2rem;text-align:center;margin-bottom:1rem;}
.qr-signup-wall-icon{font-size:2.2rem;margin-bottom:0.4rem;}
.qr-signup-wall-title{font-family:'Syne',sans-serif;font-size:0.95rem;font-weight:800;color:#ffd700;margin-bottom:0.3rem;}
.qr-signup-wall-desc{font-size:0.72rem;color:rgba(255,240,248,0.7);line-height:1.5;margin-bottom:0.9rem;}
.qr-signup-wall-btn{display:block;width:100%;padding:0.75rem;border-radius:12px;border:none;background:linear-gradient(135deg,#ffd700,#ff9500);color:#1a0a28;font-family:'Syne',sans-serif;font-weight:900;font-size:0.88rem;cursor:pointer;transition:all 0.2s;box-shadow:0 4px 16px rgba(255,215,0,0.3);}
.qr-signup-wall-btn:active{transform:scale(0.96);}

/* ── Badge "Déjà voté" ── */
.qr-already-voted{display:inline-flex;align-items:center;gap:0.4rem;background:rgba(255,215,0,0.1);border:1px solid rgba(255,215,0,0.3);border-radius:20px;padding:0.3rem 0.8rem;font-size:0.7rem;font-weight:700;color:#ffd700;font-family:'Syne',sans-serif;}

/* ── SECTION PROPRIÉTAIRE — outils pro ── */
.qr-owner-panel{background:linear-gradient(135deg,rgba(0,255,170,0.06),rgba(0,229,255,0.04));border:1.5px solid rgba(0,255,170,0.3);border-radius:16px;padding:1.1rem;margin-bottom:1rem;}
.qr-owner-panel-title{font-family:'Syne',sans-serif;font-size:0.82rem;font-weight:800;color:#00ffaa;display:flex;align-items:center;gap:0.4rem;margin-bottom:0.8rem;text-transform:uppercase;letter-spacing:0.05em;}
.qr-owner-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:0.5rem;margin-bottom:0.9rem;}
.qr-owner-stat{background:rgba(0,0,0,0.2);border-radius:10px;padding:0.55rem;text-align:center;}
.qr-owner-stat-val{font-family:'Syne',sans-serif;font-size:1.1rem;font-weight:900;}
.qr-owner-stat-val.pos{color:#00ffaa;}
.qr-owner-stat-val.neg{color:#ff4466;}
.qr-owner-stat-val.total{color:#00e5ff;}
.qr-owner-stat-lbl{font-size:0.52rem;color:rgba(255,240,248,0.5);font-weight:700;text-transform:uppercase;letter-spacing:0.04em;margin-top:0.1rem;}
.qr-owner-vote-self{width:100%;padding:0.7rem;border-radius:12px;border:1.5px solid rgba(0,255,170,0.4);background:rgba(0,255,170,0.08);color:#00ffaa;font-family:'Syne',sans-serif;font-weight:800;font-size:0.82rem;cursor:pointer;transition:all 0.2s;display:flex;align-items:center;justify-content:center;gap:0.4rem;margin-bottom:0.5rem;}
.qr-owner-vote-self:active{transform:scale(0.96);background:rgba(0,255,170,0.16);}
.qr-owner-vote-self:disabled{opacity:0.45;cursor:not-allowed;transform:none;}

/* ── SECTION TÉLÉCHARGEMENT PRO (bas du modal, propriétaire/admin uniquement) ── */
.qr-dl-section-pro{background:linear-gradient(135deg,rgba(0,229,255,0.06),rgba(204,68,255,0.04));border:1.5px solid rgba(0,229,255,0.25);border-radius:16px;padding:1rem 1rem 0.85rem;margin-top:0.7rem;}
.qr-dl-section-pro-title{font-family:'Syne',sans-serif;font-size:0.72rem;font-weight:800;color:var(--cyan);text-transform:uppercase;letter-spacing:0.07em;margin-bottom:0.6rem;display:flex;align-items:center;gap:0.4rem;}
.qr-dl-section-pro .qr-dl-row{display:flex;gap:0.45rem;flex-wrap:wrap;}
.qr-dl-section-pro .qr-dl-btn{flex:1;min-width:80px;padding:0.6rem 0.4rem;border-radius:12px;border:1.5px solid rgba(0,229,255,0.3);background:linear-gradient(135deg,rgba(0,229,255,0.09),rgba(204,68,255,0.06));color:var(--cyan);font-size:0.68rem;font-weight:800;cursor:pointer;font-family:'DM Sans',sans-serif;text-align:center;transition:all 0.2s;display:flex;flex-direction:column;align-items:center;gap:0.25rem;box-shadow:0 2px 8px rgba(0,229,255,0.1);}
.qr-dl-section-pro .qr-dl-btn:hover{border-color:rgba(0,229,255,0.6);background:linear-gradient(135deg,rgba(0,229,255,0.18),rgba(204,68,255,0.1));box-shadow:0 3px 12px rgba(0,229,255,0.2);}
.qr-dl-section-pro .qr-dl-btn:active{transform:scale(0.93);}
.qr-dl-section-pro .qr-dl-btn-icon{font-size:1.3rem;}
.qr-dl-section-pro .qr-dl-btn-fmt{font-size:0.52rem;font-family:'Syne',sans-serif;color:rgba(0,229,255,0.6);font-weight:700;}
.qr-dl-restricted{background:rgba(255,45,155,0.05);border:1px solid rgba(255,45,155,0.2);border-radius:12px;padding:0.65rem 0.85rem;font-size:0.68rem;color:var(--muted);text-align:center;margin-top:0.6rem;display:flex;align-items:center;justify-content:center;gap:0.4rem;}

/* ── BOUTON SCAN UNIVERSEL (visible pour tous dans le modal) ── */
.qr-scan-global-row{display:flex;align-items:center;gap:0.5rem;background:rgba(0,229,255,0.05);border:1px solid rgba(0,229,255,0.18);border-radius:12px;padding:0.55rem 0.75rem;margin-bottom:0.8rem;cursor:pointer;transition:all 0.2s;}
.qr-scan-global-row:active{background:rgba(0,229,255,0.12);}
.qr-scan-global-icon{font-size:1.25rem;flex-shrink:0;}
.qr-scan-global-text{flex:1;}
.qr-scan-global-label{font-family:'Syne',sans-serif;font-size:0.75rem;font-weight:800;color:var(--cyan);}
.qr-scan-global-sub{font-size:0.6rem;color:var(--muted);margin-top:0.06rem;}
.qr-scan-global-arrow{font-size:0.8rem;color:var(--muted);}

/* ── CONDITIONS DE VOTE — bandeau discret visible dans le modal ── */
.qr-vote-rules{background:rgba(255,215,0,0.05);border:1px dashed rgba(255,215,0,0.22);border-radius:10px;padding:0.5rem 0.75rem;margin-bottom:0.75rem;font-size:0.62rem;color:rgba(255,215,0,0.7);line-height:1.65;}
.qr-vote-rules b{color:rgba(255,215,0,0.95);}

/* ═══ FIN PATCH CSS ═══ */

/* ═══ PERF PATCH — Désactivation backdrop-filter sur mobile ═══
   backdrop-filter force le GPU à recalculer des calques entiers à chaque frame.
   Sur Android mid-range, c'est la cause principale des lags au scroll (20fps).
   On remplace par un fond opaque équivalent sur écrans ≤768px.
   ══════════════════════════════════════════════════════════════ */
@media (max-width: 768px) {
  /* Header & bottom nav — les deux éléments les plus impactants au scroll */
  header,
  .bottom-nav {
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
  }
  /* Modals / overlays — actifs ponctuellement, pas de lag au scroll mais on allège */
  #forumPubModal,
  #asmComposeModal,
  #socPubModal,
  .overlay,
  .guide-overlay,
  #ambiActivateModal,
  #ambiIncomingCall,
  .geo-method-sheet,
  .profil-modal-overlay,
  .sidenav-overlay,
  .sitenav-overlay,
  .taxi-modal-overlay,
  .qr-modal-overlay {
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
  }
  /* Panels & toasts */
  .notif-panel,
  .notif-toast,
  .taxi-cmd-btn,
  .taxi-contact-card,
  .taxi-admin-form,
  .qr-card-icon,
  .qr-scanner-header,
  .qr-scanner-success,
  #sec-profil .demo-nav-profil,
  #sec-profil .cover-edit-btn {
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
  }
  /* Renforcer les backgrounds pour maintenir la lisibilité sans blur */
  header { background: rgba(13,0,20,0.99) !important; }
  .bottom-nav { background: rgba(13,0,20,0.99) !important; }
  .notif-panel { background: rgba(10,2,20,0.97) !important; }
  .notif-toast { background: rgba(20,5,32,0.98) !important; }
  #sec-profil .demo-nav-profil { background: rgba(15,6,24,0.98) !important; }
}
/* ═══ FIN PERF PATCH backdrop-filter ═══ */


/* Fix icône Restaurant invisible sur fond jaune (top6) */
.top6-card.restaurant .t6c-icon svg [stroke="white"]{stroke:#5c3d00 !important;}
.top6-card.restaurant .t6c-icon svg [fill="white"]{fill:#5c3d00 !important;}
