/**
 * ╔══════════════════════════════════════════════════════════════╗
 * ║  ZoneH24 Social — THEME V7 "DARK NEON"                      ║
 * ║  Layout V5.1 (aucune régression) + Palette Dark Neon        ║
 * ║  Fond global personnalisable via --bg-wallpaper              ║
 * ╠══════════════════════════════════════════════════════════════╣
 * ║  POUR CHANGER LE FOND :                                      ║
 * ║  → Dans admin : onglet "Apparence" → uploader image         ║
 * ║  → Ou manuellement : changer --bg-wallpaper dans :root      ║
 * ╚══════════════════════════════════════════════════════════════╝
 */

:root {
    /* ════════════════════════════════
       FOND PERSONNALISABLE
       Géré automatiquement par l'admin
    ════════════════════════════════ */
    --bg-wallpaper:        none;           /* url('/assets/bg-custom.jpg') */
    --bg-wallpaper-size:   cover;
    --bg-wallpaper-pos:    center center;
    --bg-wallpaper-attach: fixed;

    /* ════════════════════════════════
       COULEURS DE BASE
    ════════════════════════════════ */
    --bg-deep:    #0d0f14;
    --bg-card:    rgba(21,25,34, 0.82);
    --bg-card2:   rgba(26,31,41, 0.78);
    --bg-input:   rgba(17,20,27, 0.92);

    /* ════════════════════════════════
       BORDURES
    ════════════════════════════════ */
    --border:     rgba(148,163,184, 0.20);
    --border-h:   rgba(148,163,184, 0.55);

    /* ════════════════════════════════
       ACCENTS NEON
    ════════════════════════════════ */
    --accent1:    #3b82f6;
    --accent2:    #3b82f6;
    --accent3:    #8ab4f8;
    --pink:       #3b82f6;
    --blue:       #3b82f6;
    --cyan:       #60a5fa;
    --green:      #22c55e;
    --gold:       #f59e0b;
    --like:       #ff4d7d;
    --repost:     #22c55e;
    --danger:     #ef4444;
    --success:    #22c55e;

    /* ════════════════════════════════
       DÉGRADÉS
    ════════════════════════════════ */
    --grad-main:   linear-gradient(135deg, #3b82f6 0%, #3b82f6 45%, #3b82f6 100%);
    --grad-hero:   linear-gradient(135deg, #0d0f14 0%, #151922 40%, #151922 100%);
    --grad-blue:   linear-gradient(135deg, #3b82f6 0%, #60a5fa 100%);
    --grad-green:  linear-gradient(135deg, #059669 0%, #22c55e 100%);
    --grad-gold:   linear-gradient(135deg, #d97706 0%, #f59e0b 100%);
    --grad-pink:   linear-gradient(135deg, #2563eb 0%, #3b82f6 100%);
    --grad-orange: linear-gradient(135deg, #ea580c 0%, #f97316 100%);

    /* ════════════════════════════════
       TEXTES
    ════════════════════════════════ */
    --text:       #e5e7eb;
    --text-sec:   #b4bac5;
    --text-muted: #8a92a0;

    /* ════════════════════════════════
       EFFETS
    ════════════════════════════════ */
    --shadow:     0 4px 24px rgba(0,0,0,0.6);
    --shadow-lg:  0 8px 40px rgba(0,0,0,0.7);
    --glow:       rgba(148,163,184,0.45);
    --glow-sm:    rgba(148,163,184,0.12);

    /* ════════════════════════════════
       GÉOMÉTRIE
    ════════════════════════════════ */
    --radius:     14px;
    --radius-sm:  8px;

    /* ════════════════════════════════
       HALOS D'AMBIANCE (fond)
    ════════════════════════════════ */
    --overlay-halos:
        radial-gradient(ellipse 80% 60% at 15% 20%, rgba(148,163,184,0.18) 0%, transparent 60%),
        radial-gradient(ellipse 60% 50% at 85% 75%, rgba(148,163,184,0.10) 0%, transparent 55%),
        radial-gradient(ellipse 50% 40% at 50% 0%,  rgba(59,130,246,0.08) 0%, transparent 50%);
    --overlay-top: rgba(13,15,20, 0.55);
}

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

html {
    scroll-behavior: smooth;
    background: transparent;
    position: relative;
}

/* Couche 1 : image de fond (derrière tout) — FIXE, ne défile pas avec le doigt */
html::before {
    content: '';
    position: fixed;
    inset: 0;
    z-index: -2;
    background-image: var(--bg-wallpaper);
    background-size: cover;
    background-position: center center;
    background-repeat: no-repeat;
    background-attachment: fixed;
    background-color: #0d0f14;
    /* Pas de background shorthand — on garde image ET couleur séparés */
}

/* Couche 2 : voile sombre + halos colorés (par-dessus le wallpaper) */
html::after {
    content: '';
    position: fixed;
    inset: 0;
    z-index: -1;
    background:
        var(--overlay-halos),
        var(--overlay-top);
}

body {
    color: var(--text);
    font-family: 'Z24 Emoji', 'Segoe UI', Roboto, -apple-system, BlinkMacSystemFont, sans-serif;   /* Z24 Emoji : emoji seulement (fin du fichier) */
    font-size: 14px;
    line-height: 1.5;
    min-height: 100vh;
    background: transparent;
    position: relative;
    z-index: 0;
}

a { color: var(--accent3); text-decoration: none; transition: color 0.2s; }
a:hover { color: #fff; }
button { cursor: pointer; font-family: inherit; transition: all 0.2s; border: none; }
img { max-width: 100%; }

/* ══════════════════════════════════════
   HEADER
══════════════════════════════════════ */
.header {
    background: rgba(13,15,20, 0.94);
    border-bottom: 1px solid var(--border);
    position: sticky;
    top: 0;
    z-index: 300;
    backdrop-filter: blur(20px);
    -webkit-backdrop-filter: blur(20px);
    /* Empêche tout débordement horizontal */
    overflow: hidden;
    max-width: 100vw;
}
/* Ligne néon subtile sous le header */
.header::after {
    content: '';
    position: absolute;
    bottom: 0; left: 0; right: 0;
    height: 1px;
    background: linear-gradient(90deg, transparent, var(--accent1) 25%, var(--pink) 50%, var(--blue) 75%, transparent);
    opacity: 0.30;
    pointer-events: none;
}
.header-inner {
    max-width: 1280px;
    margin: 0 auto;
    padding: 0 24px;
    height: 64px;
    display: flex;
    align-items: center;
    gap: 16px;
}
.logo {
    display: flex;
    align-items: center;
    gap: 10px;
    flex-shrink: 0;
    text-decoration: none;
}
.logo-icon {
    width: 36px; height: 36px;
    border-radius: 50%;
    background: var(--grad-main);
    display: flex; align-items: center; justify-content: center;
    font-size: 18px;
    box-shadow: 0 0 16px var(--glow);
}
.logo-text {
    font-size: 20px;
    font-weight: 700;
    letter-spacing: 1px;
    background: var(--grad-main);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
}
.header-search {
    flex: 1;
    max-width: 360px;
    position: relative;
}
.header-search form { position: relative; }
.header-search .search-icon {
    position: absolute;
    left: 12px; top: 50%;
    transform: translateY(-50%);
    color: var(--text-muted);
    font-size: 14px;
    pointer-events: none;
}
.search-input {
    width: 100%;
    padding: 9px 14px 9px 36px;
    background: var(--bg-card2);
    border: 1px solid var(--border);
    color: var(--text);
    border-radius: 24px;
    font-size: 13px;
    transition: all 0.2s;
    font-family: inherit;
}
.search-input:focus {
    outline: none;
    border-color: var(--accent1);
    box-shadow: 0 0 0 3px var(--glow-sm);
    background: var(--bg-input);
}
.header-ext-links {
    display: flex;
    align-items: center;
    gap: 4px;
    border-left: 1px solid var(--border);
    padding-left: 12px;
    margin-left: 4px;
}
.header-ext-links a {
    color: var(--text-muted);
    font-size: 12px;
    padding: 5px 10px;
    border-radius: 6px;
    border: 1px solid var(--border);
    transition: all 0.2s;
    white-space: nowrap;
}
.header-ext-links a:hover { border-color: var(--accent1); color: var(--accent3); background: var(--glow-sm); }
.header-nav {
    display: flex;
    align-items: center;
    gap: 4px;
    margin-left: auto;
    flex-shrink: 0;
}
.header-nav a {
    color: var(--text-muted);
    font-size: 13px;
    padding: 6px 12px;
    border-radius: 8px;
    transition: all 0.2s;
    white-space: nowrap;
    font-weight: 500;
}
.header-nav a:hover { color: var(--text); background: var(--glow-sm); }
.btn-signin {
    background: var(--grad-main) !important;
    color: #fff !important;
    padding: 8px 18px !important;
    border-radius: 20px !important;
    font-weight: 700 !important;
    font-size: 13px !important;
    -webkit-text-fill-color: #fff !important;
}
.btn-signin:hover { opacity: 0.9; box-shadow: 0 4px 14px var(--glow); transform: translateY(-1px); }
.notif-link { position: relative; }
.badge {
    display: inline-block;
    background: var(--like);
    color: #fff;
    border-radius: 8px;
    font-size: 10px;
    font-weight: 700;
    padding: 1px 5px;
    margin-left: 2px;
    vertical-align: middle;
    line-height: 1.4;
}

/* ══════════════════════════════════════
   ALERTES GLOBALES
══════════════════════════════════════ */
.global-alerts-bar { max-width: 1280px; margin: 10px auto 0; padding: 0 24px; }
.global-alert {
    padding: 10px 16px;
    border-radius: var(--radius-sm);
    font-size: 13px;
    margin-bottom: 8px;
    display: flex;
    gap: 8px;
    align-items: center;
}
.alert-info    { background: rgba(59,130,246,.12);  border-left: 3px solid var(--blue);  color: #93c5fd; }
.alert-warning { background: rgba(245,158,11,.12);  border-left: 3px solid var(--gold);  color: #fbbf24; }
.alert-danger  { background: rgba(255,77,125,.12);  border-left: 3px solid var(--like);  color: #fda4af; }
.alert-success { background: rgba(34,197,94,.12);   border-left: 3px solid var(--green); color: #86efac; }
.alert-error   { background: rgba(255,77,125,.08);  border-left: 3px solid var(--like);  color: #fda4af; padding: 10px 14px; border-radius: var(--radius-sm); font-size: 13px; }

/* ══════════════════════════════════════
   HERO BANNER
══════════════════════════════════════ */
.hero-section {
    background: var(--grad-hero);
    position: relative;
    overflow: hidden;
    padding: 0;
    border-bottom: 1px solid var(--border);
}
.hero-section::before {
    content: '';
    position: absolute; inset: 0;
    background:
        radial-gradient(ellipse at 20% 60%, rgba(148,163,184,0.45), transparent 55%),
        radial-gradient(ellipse at 75% 30%, rgba(148,163,184,0.30), transparent 50%),
        radial-gradient(ellipse at 50% 100%, rgba(59,130,246,0.20), transparent 60%);
    pointer-events: none;
}
.hero-inner {
    max-width: 1280px;
    margin: 0 auto;
    padding: 50px 24px;
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 40px;
    align-items: center;
    position: relative;
    z-index: 1;
}
.hero-left h1 {
    font-size: 42px;
    font-weight: 700;
    color: #fff;
    line-height: 1.15;
    margin-bottom: 14px;
}
.hero-left h1 span {
    background: var(--grad-main);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
}
.hero-left p {
    color: rgba(255,255,255,0.72);
    font-size: 16px;
    line-height: 1.65;
    margin-bottom: 28px;
    max-width: 420px;
}
.hero-btns { display: flex; gap: 14px; flex-wrap: wrap; }
.btn-hero-primary {
    padding: 13px 28px;
    background: var(--grad-main);
    color: #fff;
    border-radius: 24px;
    font-size: 15px;
    font-weight: 700;
    display: inline-block;
    transition: all 0.2s;
    box-shadow: 0 4px 20px var(--glow);
}
.btn-hero-primary:hover { transform: translateY(-2px); box-shadow: 0 8px 28px var(--glow); color: #fff; }
.btn-hero-secondary {
    padding: 12px 28px;
    background: rgba(255,255,255,0.08);
    color: #fff;
    border: 2px solid rgba(255,255,255,0.25);
    border-radius: 24px;
    font-size: 15px;
    font-weight: 700;
    display: inline-block;
    transition: all 0.2s;
    backdrop-filter: blur(8px);
}
.btn-hero-secondary:hover { background: rgba(255,255,255,0.15); border-color: rgba(255,255,255,0.5); color: #fff; transform: translateY(-1px); }

/* Illustration hero droite */
.hero-right {
    display: flex;
    justify-content: center;
    align-items: center;
    position: relative;
}
.hero-illustration {
    width: 100%;
    max-width: 460px;
    height: 280px;
    background: rgba(255,255,255,0.04);
    border: 1px solid rgba(255,255,255,0.1);
    border-radius: 20px;
    display: flex;
    align-items: center;
    justify-content: center;
    position: relative;
    overflow: hidden;
    backdrop-filter: blur(8px);
}
.hero-bubbles { position: absolute; inset: 0; pointer-events: none; }
.bubble {
    position: absolute;
    border-radius: 50%;
    opacity: 0.15;
    animation: floatBubble 6s ease-in-out infinite;
}
.bubble-1 { width:120px; height:120px; background:var(--grad-main); top:-20px; right:20px; animation-delay:0s; }
.bubble-2 { width:80px;  height:80px;  background:var(--grad-blue);  bottom:20px; left:30px; animation-delay:2s; }
.bubble-3 { width:60px;  height:60px;  background:var(--grad-pink);  top:40%; left:20px; animation-delay:4s; }
@keyframes floatBubble { 0%,100%{transform:translateY(0)} 50%{transform:translateY(-14px)} }

.hero-chars {
    display: flex;
    align-items: flex-end;
    gap: 16px;
    position: relative;
    z-index: 1;
}
.hero-char {
    width: 64px; height: 64px;
    border-radius: 50%;
    border: 3px solid rgba(255,255,255,0.3);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 28px;
    background: rgba(255,255,255,0.08);
    backdrop-filter: blur(6px);
    transition: transform 0.3s;
}
.hero-char:hover { transform: translateY(-6px) scale(1.1); }
.hero-char-lg { width: 80px; height: 80px; font-size: 36px; }
.hero-chat-icons {
    position: absolute;
    top: 16px; right: 16px;
    display: flex;
    gap: 8px;
}
.chat-bubble-icon {
    background: rgba(255,255,255,0.12);
    border: 1px solid rgba(255,255,255,0.2);
    border-radius: 50%;
    width: 36px; height: 36px;
    display: flex; align-items: center; justify-content: center;
    font-size: 16px;
    animation: floatBubble 4s ease-in-out infinite;
}
.chat-bubble-icon:nth-child(2) { animation-delay: 1.5s; }
.chat-bubble-icon:nth-child(3) { animation-delay: 3s; }

/* Hero stats visiteurs */
.hero-stats-row {
    display: flex;
    gap: 24px;
    margin-top: 24px;
    flex-wrap: wrap;
}
.hero-stat-item { text-align: center; }
.hero-stat-item .num {
    display: block;
    font-size: 24px;
    font-weight: 700;
    background: var(--grad-main);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
}
.hero-stat-item small { font-size: 11px; color: rgba(255,255,255,.55); display: block; }

/* ══════════════════════════════════════
   LAYOUT PRINCIPAL
══════════════════════════════════════ */
.main-layout {
    max-width: 1280px;
    margin: 0 auto;
    padding: 28px 24px 90px;
    display: grid;
    grid-template-columns: 1fr 300px;
    gap: 24px;
    align-items: start;
}
.feed-col { min-width: 0; }
.sidebar  { min-width: 0; position: sticky; top: 76px; }

/* Page layout (search, etc.) */
.page-layout {
    max-width: 1280px;
    margin: 0 auto;
    padding: 28px 24px 90px;
    display: grid;
    grid-template-columns: 1fr 280px;
    gap: 24px;
    align-items: start;
}
.page-main { min-width: 0; }
.page-sidebar { min-width: 0; position: sticky; top: 76px; }

/* ══════════════════════════════════════
   CARD GÉNÉRIQUE
══════════════════════════════════════ */
.card {
    background: var(--bg-card);
    border: 1px solid var(--border);
    border-radius: var(--radius);
    padding: 20px;
    backdrop-filter: blur(16px);
    -webkit-backdrop-filter: blur(16px);
}

/* ══════════════════════════════════════
   CATÉGORIES — POPULAR TOPICS
══════════════════════════════════════ */
.topics-section { margin-bottom: 24px; }
.section-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 16px;
    gap: 12px;
    flex-wrap: wrap;
}
.section-title {
    font-size: 16px;
    font-weight: 700;
    color: #fff;
    display: flex;
    align-items: center;
    gap: 8px;
}
.section-tabs {
    display: flex;
    gap: 2px;
    background: var(--bg-card2);
    border-radius: 10px;
    padding: 3px;
    border: 1px solid var(--border);
}
.tab-btn {
    padding: 5px 14px;
    border-radius: 7px;
    font-size: 12px;
    font-weight: 600;
    background: transparent;
    color: var(--text-muted);
    cursor: pointer;
    transition: all 0.2s;
    border: none;
}
.tab-btn.active, .tab-btn:hover { background: var(--accent1); color: #fff; }

.category-cards {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 12px;
}
.cat-card {
    background: var(--bg-card);
    border: 1px solid var(--border);
    border-radius: var(--radius);
    padding: 16px 14px;
    text-align: center;
    cursor: default;
    transition: all 0.25s;
    position: relative;
    overflow: hidden;
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
}
.cat-card:hover { border-color: var(--border-h); transform: translateY(-3px); box-shadow: var(--shadow); }
.cat-card::before {
    content: '';
    position: absolute; inset: 0;
    opacity: 0;
    transition: opacity 0.25s;
    border-radius: inherit;
}
.cat-crypto::before  { background: linear-gradient(135deg, rgba(148,163,184,0.18), rgba(148,163,184,0.10)); }
.cat-defi::before    { background: linear-gradient(135deg, rgba(59,130,246,0.18), rgba(148,163,184,0.10)); }
.cat-trading::before { background: linear-gradient(135deg, rgba(5,150,105,0.18), rgba(34,197,94,0.10)); }
.cat-nft::before     { background: linear-gradient(135deg, rgba(148,163,184,0.18), rgba(255,88,199,0.10)); }
.cat-card:hover::before { opacity: 1; }

.cat-icon-wrap {
    width: 50px; height: 50px;
    border-radius: 14px;
    display: flex; align-items: center; justify-content: center;
    font-size: 24px;
    margin: 0 auto 10px;
    position: relative; z-index: 1;
}
.cat-crypto  .cat-icon-wrap { background: var(--grad-main); }
.cat-defi    .cat-icon-wrap { background: var(--grad-blue); }
.cat-trading .cat-icon-wrap { background: var(--grad-green); }
.cat-nft     .cat-icon-wrap { background: var(--grad-pink); }

.cat-name { font-size: 13px; font-weight: 700; color: #fff; margin-bottom: 3px; position: relative; z-index: 1; }
.cat-desc { font-size: 11px; color: var(--text-muted); position: relative; z-index: 1; }
.cat-meta { font-size: 10px; color: var(--text-muted); margin-top: 6px; position: relative; z-index: 1; }

/* ══════════════════════════════════════
   COMPOSER
══════════════════════════════════════ */
.composer-card {
    background: var(--bg-card);
    border: 1px solid var(--border);
    border-radius: var(--radius);
    padding: 18px;
    margin-bottom: 16px;
    transition: border-color 0.2s;
    backdrop-filter: blur(16px);
    -webkit-backdrop-filter: blur(16px);
}
.composer-card:focus-within { border-color: var(--accent1); box-shadow: 0 0 0 3px var(--glow-sm); }
.composer-top { display: flex; gap: 12px; align-items: flex-start; margin-bottom: 12px; }
.composer-textarea {
    flex: 1;
    background: var(--bg-input);
    border: 1px solid var(--border);
    color: var(--text);
    border-radius: 10px;
    padding: 10px 14px;
    font-size: 14px;
    font-family: inherit;
    resize: vertical;
    min-height: 80px;
    transition: all 0.2s;
    width: 100%;
}
.composer-textarea:focus { outline: none; border-color: var(--accent1); }
.composer-textarea::placeholder { color: var(--text-muted); }
.composer-bottom {
    display: flex;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
}

/* ══════════════════════════════════════
   POST CARD
══════════════════════════════════════ */
.post-card {
    background: var(--bg-card);
    border: 1px solid var(--border);
    border-radius: var(--radius);
    padding: 0;
    margin-bottom: 12px;
    transition: all 0.2s;
    overflow: hidden;
    display: flex;
    backdrop-filter: blur(16px);
    -webkit-backdrop-filter: blur(16px);
}
.post-card:hover {
    border-color: var(--border-h);
    box-shadow: 0 4px 24px rgba(0,0,0,0.5), 0 0 0 1px rgba(148,163,184,0.15);
    transform: translateY(-1px);
}

/* Vignette colorée gauche */
.post-vignette {
    width: 56px;
    flex-shrink: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 22px;
    border-radius: var(--radius) 0 0 var(--radius);
}
.vig-crypto  { background: linear-gradient(180deg, #3b82f6, #3b82f6); }
.vig-defi    { background: linear-gradient(180deg, #3b82f6, #60a5fa); }
.vig-trading { background: linear-gradient(180deg, #059669, #22c55e); }
.vig-nft     { background: linear-gradient(180deg, #2563eb, #3b82f6); }
.vig-default { background: linear-gradient(180deg, #1f2633, #3b82f6); }

.post-body-wrap { flex: 1; padding: 16px 18px; min-width: 0; }
.post-header { display: flex; align-items: center; gap: 10px; margin-bottom: 8px; }
.post-avatar {
    width: 38px; height: 38px;
    border-radius: 50%;
    object-fit: cover;
    border: 2px solid var(--border);
    flex-shrink: 0;
    display: block;
}
.avatar-init {
    width: 38px; height: 38px;
    border-radius: 50%;
    display: flex; align-items: center; justify-content: center;
    font-weight: 700; color: #fff; font-size: 14px;
    flex-shrink: 0;
    border: 2px solid var(--border);
}
.post-author-link { flex-shrink: 0; display: block; }
.post-author-link:hover .post-avatar,
.post-author-link:hover .avatar-init { border-color: var(--accent1); }

.post-meta-wrap { flex: 1; min-width: 0; }
.post-author { font-weight: 700; font-size: 14px; color: #fff; display: block; }
.post-author:hover { color: var(--accent3); }
.post-time { font-size: 11px; color: var(--text-muted); }

.post-title-text { font-size: 15px; font-weight: 700; color: #fff; margin-bottom: 5px; }
.post-content { font-size: 13px; line-height: 1.6; color: var(--text); margin-bottom: 10px; word-wrap: break-word; }
/* Mobile : troncature à 3 lignes par défaut, expansion au clic */
@media (max-width: 768px) {
    .post-content.truncated {
        display: -webkit-box;
        -webkit-line-clamp: 3;
        -webkit-box-orient: vertical;
        overflow: hidden;
    }
    .post-expand-btn {
        display: inline-block;
        font-size: 11px;
        color: var(--accent3);
        cursor: pointer;
        margin-bottom: 8px;
        padding: 0;
        background: none;
        border: none;
    }
}
.post-image { margin: 8px 0; border-radius: 10px; overflow: hidden; }
.post-image img { width: 100%; max-height: 380px; object-fit: cover; display: block; }

/* Stats / actions post */
.post-stats {
    display: flex;
    align-items: center;
    gap: 4px;
    padding-top: 10px;
    border-top: 1px solid var(--border);
    flex-wrap: wrap;
}
.stat-btn {
    display: inline-flex; align-items: center; gap: 5px;
    padding: 5px 12px;
    border-radius: 18px;
    font-size: 12px;
    color: var(--text-muted);
    background: transparent;
    border: none;
    cursor: pointer;
    transition: all 0.2s;
    white-space: nowrap;
}
.stat-btn:hover { background: var(--glow-sm); color: var(--accent3); }
.stat-btn.liked    { color: var(--like); }
.stat-btn.reposted { color: var(--repost); }

.post-meta-right {
    margin-left: auto;
    display: flex;
    align-items: center;
    gap: 12px;
    font-size: 12px;
    color: var(--text-muted);
}
.post-meta-right span { display: flex; align-items: center; gap: 4px; }

/* Vidéo embed */
.video-embed { margin: 10px 0; border-radius: 10px; overflow: hidden; background: #000; }
.video-embed iframe { width: 100%; height: 240px; border: none; display: block; }

/* Commentaires */
.comments-zone { border-top: 1px solid var(--border); padding-top: 14px; margin-top: 2px; }
.comments-list { margin-bottom: 12px; }
.comment-item { display: flex; gap: 10px; margin-bottom: 10px; align-items: flex-start; }
.comment-avatar { flex-shrink: 0; display: block; }
.comment-avatar img { width: 30px; height: 30px; border-radius: 50%; object-fit: cover; display: block; }
.comment-body { flex: 1; background: var(--bg-card2); border-radius: 10px; padding: 8px 12px; }
.comment-author { font-size: 12px; font-weight: 700; color: var(--accent3); display: block; margin-bottom: 3px; }
.comment-body p { font-size: 13px; color: var(--text); word-wrap: break-word; margin: 0; }
.comment-form { display: flex; gap: 8px; align-items: center; }
.comment-input {
    flex: 1;
    padding: 8px 14px;
    background: var(--bg-input);
    border: 1px solid var(--border);
    color: var(--text);
    border-radius: 20px;
    font-size: 13px;
    font-family: inherit;
    transition: all 0.2s;
}
.comment-input:focus { outline: none; border-color: var(--accent1); }

/* ══════════════════════════════════════
   SIDEBAR WIDGETS
══════════════════════════════════════ */
.widget {
    background: var(--bg-card);
    border: 1px solid var(--border);
    border-radius: var(--radius);
    padding: 18px;
    margin-bottom: 16px;
    overflow: hidden;
    backdrop-filter: blur(16px);
    -webkit-backdrop-filter: blur(16px);
}
.widget-title {
    font-size: 14px;
    font-weight: 700;
    color: #fff;
    margin-bottom: 14px;
    padding-bottom: 10px;
    border-bottom: 1px solid var(--border);
    display: flex;
    align-items: center;
    gap: 7px;
}

/* Widget PUB (remplace Boost) */
.widget-boost {
    background: linear-gradient(135deg, #151922 0%, #151922 100%);
    border-color: var(--accent1);
    position: relative;
    overflow: hidden;
}
.widget-boost .widget-title { border-color: rgba(148,163,184,.3); }
.boost-desc { font-size: 13px; color: rgba(255,255,255,0.65); line-height: 1.55; margin-bottom: 14px; }
/* Zone principale pub */
.pub-main-layout {
    display: flex;
    gap: 12px;
    margin-bottom: 12px;
    align-items: flex-start;
}
.pub-main-img {
    width: 80px;
    height: 80px;
    border-radius: var(--radius-sm);
    object-fit: cover;
    flex-shrink: 0;
    border: 1px solid var(--border);
    background: var(--bg-card2);
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--text-muted);
    font-size: 28px;
}
.pub-main-img img { width:100%; height:100%; object-fit:cover; border-radius:var(--radius-sm); display:block; }
.pub-main-desc {
    flex: 1;
    min-width: 0;
}
.pub-main-title { font-size: 13px; font-weight: 700; color: #fff; margin-bottom: 5px; }
.pub-main-text { font-size: 12px; color: var(--text-muted); line-height: 1.5; }
/* Mini carrousel 10 images */
.pub-carousel {
    display: flex;
    gap: 4px;
    margin-top: 10px;
    overflow-x: auto;
    scrollbar-width: none;
    padding-bottom: 2px;
}
.pub-carousel::-webkit-scrollbar { display: none; }
.pub-thumb {
    width: 32px; height: 32px;
    border-radius: 6px;
    border: 2px solid transparent;
    object-fit: cover;
    flex-shrink: 0;
    cursor: pointer;
    background: var(--bg-card2);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 12px;
    color: var(--text-muted);
    transition: border-color 0.2s;
    overflow: hidden;
}
.pub-thumb.active { border-color: var(--accent1); }
.pub-thumb:hover { border-color: var(--accent2); }
.pub-thumb img { width:100%; height:100%; object-fit:cover; display:block; }

/* Top Members widget */
.top-member-item {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 8px 0;
    border-bottom: 1px solid rgba(30,36,46,.4);
}
.top-member-item:last-child { border-bottom: none; }
.top-member-avatar { flex-shrink: 0; display: block; }
.top-member-avatar img { width: 36px; height: 36px; border-radius: 50%; object-fit: cover; border: 2px solid var(--border); }
.top-member-info { flex: 1; min-width: 0; }
.top-member-name { font-size: 13px; font-weight: 600; color: #fff; display: block; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.top-member-name:hover { color: var(--accent3); }
.top-member-sub { font-size: 11px; color: var(--text-muted); }
.top-member-score {
    display: flex; align-items: center; gap: 4px;
    font-size: 13px; font-weight: 700;
    color: var(--gold);
    flex-shrink: 0;
}

/* Popular Tags */
.tags-wrap { display: flex; flex-wrap: wrap; gap: 7px; }
.tag-pill {
    padding: 5px 12px;
    border-radius: 20px;
    font-size: 12px;
    font-weight: 600;
    cursor: pointer;
    transition: all 0.2s;
    border: 1px solid transparent;
    display: inline-block;
}
.tag-pill:hover { filter: brightness(1.2); transform: translateY(-1px); }
.tag-purple { background: rgba(148,163,184,0.20); color: var(--accent3);  border-color: rgba(148,163,184,0.30); }
.tag-blue   { background: rgba(59,130,246,0.20); color: #60a5fa;          border-color: rgba(59,130,246,0.30); }
.tag-pink   { background: rgba(148,163,184,0.20); color: #c9ced6;          border-color: rgba(148,163,184,0.30); }
.tag-green  { background: rgba(34,197,94,0.20);  color: #86efac;          border-color: rgba(34,197,94,0.30); }
.tag-gold   { background: rgba(245,158,11,0.20); color: #fbbf24;          border-color: rgba(245,158,11,0.30); }
.tag-cyan   { background: rgba(148,163,184,0.20); color: #c9ced6;          border-color: rgba(148,163,184,0.30); }

/* Who's Online */
.online-grid { display: flex; flex-wrap: wrap; gap: 7px; }
.online-avatar-wrap {
    position: relative;
    width: 38px; height: 38px;
    cursor: pointer;
    transition: transform 0.2s;
    display: block;
}
.online-avatar-wrap:hover { transform: scale(1.1); }
.online-avatar-wrap img,
.online-avatar-inner {
    width: 38px; height: 38px;
    border-radius: 50%;
    object-fit: cover;
    display: flex; align-items: center; justify-content: center;
    font-weight: 700; font-size: 13px; color: #fff;
    border: 2px solid var(--border);
}
.online-dot {
    position: absolute;
    bottom: 1px; right: 1px;
    width: 9px; height: 9px;
    background: var(--green);
    border-radius: 50%;
    border: 2px solid var(--bg-deep);
}

/* Featured members */
.featured-member-item { display: flex; align-items: center; gap: 10px; padding: 8px 0; border-bottom: 1px solid rgba(30,36,46,.4); }
.featured-member-item:last-child { border-bottom: none; }
.featured-avatar { flex-shrink: 0; display: block; }
.featured-avatar img { width: 40px; height: 40px; border-radius: 50%; object-fit: cover; border: 2px solid var(--accent1); }
.featured-info { flex: 1; min-width: 0; }
.featured-name { font-size: 13px; font-weight: 700; color: #fff; display: block; }
.featured-name:hover { color: var(--accent3); }
.featured-desc { font-size: 11px; color: var(--text-muted); display: block; }

/* Ad widget */
.widget-ad { cursor: pointer; }
.widget-ad:hover { border-color: var(--border-h); }
.ad-image { width: 100%; max-height: 130px; object-fit: cover; border-radius: 9px; margin-bottom: 10px; display: block; }
.ad-title { font-size: 14px; font-weight: 700; color: #fff; margin-bottom: 5px; }
.ad-content { font-size: 12px; color: var(--text-muted); line-height: 1.5; }

/* Iframe CDN — publicités */
.ad-image-frame {
    width: 100%;
    height: 160px;
    border-radius: 9px;
    overflow: hidden;
    margin-bottom: 10px;
    background: #0a0620;
    position: relative;
}
.ad-image-iframe {
    width: 100%;
    height: 100%;
    border: none;
    display: block;
    border-radius: 9px;
}

/* Iframe CDN — images actualités (news) */
.news-img-iframe {
    width: 100%;
    height: 100%;
    border: none;
    display: block;
    background: #0d0f14;
}

/* Rules */
.rules-list { list-style: none; padding: 0; }
.rules-list li { font-size: 12px; color: var(--text-muted); padding: 5px 0; border-bottom: 1px solid rgba(30,36,46,.3); line-height: 1.5; }
.rules-list li:last-child { border-bottom: none; }
.rules-list li::before { content: '›'; color: var(--accent1); font-weight: 700; margin-right: 7px; }

/* Stats */
.stat-row { display: flex; justify-content: space-between; align-items: center; padding: 6px 0; border-bottom: 1px solid rgba(30,36,46,.3); font-size: 13px; color: var(--text-muted); }
.stat-row:last-child { border-bottom: none; }
.stat-row strong { color: #fff; font-weight: 700; }

/* ══════════════════════════════════════
   BARRE CRYPTO BAS DE PAGE
   — fixed en bas, invisible au départ
   — apparaît après scroll d'un écran
══════════════════════════════════════ */
.bottom-bar {
    position: fixed;
    bottom: 0;
    left: 0;
    right: 0;
    z-index: 400;
    background: rgba(13,15,20, 0.98);
    border-top: 1px solid var(--border);
    backdrop-filter: blur(20px);
    -webkit-backdrop-filter: blur(20px);
    display: flex;
    flex-direction: column;
    height: calc(20px + 28px + 12vh);
    max-height: 175px;
    min-height: 105px;
    /* Cachée par défaut */
    visibility: hidden;
    opacity: 0;
    transform: translateY(100%);
    transition: opacity 0.4s ease, transform 0.4s ease, visibility 0s linear 0.4s;
}
/* Visible une fois la classe ajoutée par JS */
.bottom-bar.visible {
    visibility: visible;
    opacity: 1;
    transform: translateY(0);
    transition: opacity 0.4s ease, transform 0.4s ease, visibility 0s linear 0s;
}
/* Ligne néon en haut */
.bottom-bar::before {
    content: '';
    position: absolute;
    top: 0; left: 0; right: 0;
    height: 1px;
    background: linear-gradient(90deg, transparent, var(--accent1), var(--accent2), var(--pink), var(--accent1), transparent);
    opacity: 0.5;
    pointer-events: none;
}
/* Copyright intégré dans la barre */
.bar-copyright {
    text-align: center;
    font-size: 10px;
    color: var(--text-muted);
    padding: 3px 12px 0;
    flex-shrink: 0;
    letter-spacing: 0.2px;
    opacity: 0.7;
}
/* Espace en bas du contenu quand la barre est visible */
body.bar-visible {
    padding-bottom: clamp(105px, calc(20px + 28px + 12vh), 175px);
}

/* ── Ticker défilant (animation CSS) ── */
@keyframes ticker-scroll {
    0%   { transform: translateX(0); }
    100% { transform: translateX(-50%); }
}
.crypto-ticker {
    height: 28px;
    flex-shrink: 0;
    overflow: hidden;
    border-bottom: 1px solid rgba(148,163,184,0.15);
    position: relative;
}
/* Masques gauche/droite pour un fondu propre */
.crypto-ticker::before,
.crypto-ticker::after {
    content: '';
    position: absolute;
    top: 0; bottom: 0;
    width: 40px;
    z-index: 2;
    pointer-events: none;
}
.crypto-ticker::before {
    left: 0;
    background: linear-gradient(to right, rgba(13,15,20,0.98), transparent);
}
.crypto-ticker::after {
    right: 0;
    background: linear-gradient(to left, rgba(13,15,20,0.98), transparent);
}
.ticker-inner {
    height: 28px;
    display: flex;
    align-items: center;
    gap: 0;
    white-space: nowrap;
    /* Le défilement est piloté par JS via animation CSS */
    will-change: transform;
}
.ticker-inner.running {
    animation: ticker-scroll linear infinite;
    /* La durée est définie inline par JS selon la longueur du contenu */
}
.tick-item { display: inline-flex; align-items: center; gap: 5px; padding: 0 16px; border-right: 1px solid rgba(148,163,184,0.2); flex-shrink: 0; white-space: nowrap; }
.tick-item:last-child { border-right: none; }
.tick-symbol { font-size: 11px; font-weight: 700; color: #fff; letter-spacing: 0.3px; }
.tick-price  { font-size: 11px; color: var(--text); }
.tick-up     { font-size: 10px; color: #86efac; background: rgba(34,197,94,.15); padding: 1px 5px; border-radius: 6px; font-weight: 600; }
.tick-down   { font-size: 10px; color: #fda4af; background: rgba(255,77,125,.15); padding: 1px 5px; border-radius: 6px; font-weight: 600; }

/* ── Treemap ── */
.treemap-zone {
    flex: 1;
    overflow: hidden;
    position: relative;
    min-height: 0;
}
.treemap-canvas {
    display: block;
    /* dimensions gérées en JS avec getBoundingClientRect */
}
.treemap-update-label {
    position: absolute;
    top: 3px; right: 6px;
    font-size: 9px;
    color: var(--text-muted);
    pointer-events: none;
    opacity: 0.6;
    letter-spacing: 0.3px;
}

/* ══════════════════════════════════════
   BUTTONS
══════════════════════════════════════ */
.btn {
    padding: 9px 18px;
    background: var(--grad-main);
    color: #fff;
    border: none;
    border-radius: var(--radius-sm);
    font-size: 13px;
    font-weight: 600;
    cursor: pointer;
    display: inline-block;
    text-align: center;
    text-decoration: none;
    transition: all 0.2s;
}
.btn:hover { opacity: 0.9; transform: translateY(-1px); box-shadow: 0 4px 14px var(--glow); color: #fff; }
.btn-primary { background: var(--grad-main); color: #fff; border: none; }
.btn-primary:hover { opacity: .9; box-shadow: 0 4px 14px var(--glow); }
.btn-secondary { background: transparent; color: var(--accent3); border: 1px solid var(--accent1); }
.btn-secondary:hover { background: var(--glow-sm); box-shadow: none; transform: none; }
.btn-small  { padding: 6px 13px; font-size: 12px; border-radius: 6px; }
.btn-sm     { padding: 6px 13px; font-size: 12px; border-radius: 6px; }
.btn-block  { width: 100%; display: block; text-align: center; }
.btn-danger { background: linear-gradient(135deg, #be123c, #f43f5e); }

/* ══════════════════════════════════════
   ALERTS
══════════════════════════════════════ */
.alert { padding: 11px 15px; border-radius: var(--radius-sm); margin-bottom: 14px; border-left: 3px solid; font-size: 13px; }

/* ══════════════════════════════════════
   FORMS
══════════════════════════════════════ */
.form-group { margin-bottom: 16px; }
label { display: block; margin-bottom: 6px; color: var(--accent3); font-weight: 500; font-size: 13px; }
input[type="text"], input[type="email"], input[type="password"], input[type="url"], input[type="number"], textarea, select {
    width: 100%;
    padding: 10px 14px;
    background: var(--bg-input);
    border: 1px solid var(--border);
    color: var(--text);
    border-radius: var(--radius-sm);
    font-size: 14px;
    font-family: inherit;
    transition: all 0.2s;
}
input:focus, textarea:focus, select:focus {
    outline: none;
    border-color: var(--accent1);
    background: rgba(35, 18, 70, 0.95);
    box-shadow: 0 0 0 3px var(--glow-sm);
}
textarea { resize: vertical; min-height: 90px; }

/* ══════════════════════════════════════
   AUTH
══════════════════════════════════════ */
.auth-container { max-width: 440px; margin: 50px auto; padding: 0 20px 80px; }
.auth-card {
    background: var(--bg-card);
    border: 1px solid var(--border);
    border-radius: var(--radius);
    padding: 36px;
    box-shadow: 0 0 50px rgba(148,163,184,0.14);
    position: relative;
    overflow: hidden;
    backdrop-filter: blur(20px);
    -webkit-backdrop-filter: blur(20px);
}
.auth-card::before { content: ''; position: absolute; top: 0; left: 0; right: 0; height: 3px; background: var(--grad-main); }
.auth-title {
    font-size: 22px; font-weight: 700;
    background: var(--grad-main);
    -webkit-background-clip: text; -webkit-text-fill-color: transparent; background-clip: text;
    text-align: center; margin-bottom: 24px;
}
.auth-link { text-align: center; margin-top: 16px; font-size: 13px; color: var(--text-muted); }
.auth-link a { color: var(--accent3); }

/* ══════════════════════════════════════
   PROFIL
══════════════════════════════════════ */
.profile-cover {
    height: 130px;
    background: linear-gradient(135deg, #151922 0%, #151922 40%, #151922 100%);
    border-radius: var(--radius) var(--radius) 0 0;
    position: relative;
    overflow: hidden;
}
.profile-cover::after {
    content: '';
    position: absolute; inset: 0;
    background:
        radial-gradient(ellipse at 30% 60%, rgba(148,163,184,.5), transparent 55%),
        radial-gradient(ellipse at 70% 40%, rgba(148,163,184,.3), transparent 55%);
}
.profile-cover-gradient { height: 100%; }
.profile-card {
    background: var(--bg-card);
    border: 1px solid var(--border);
    border-radius: 0 0 var(--radius) var(--radius);
    padding: 0 24px 24px;
    margin-bottom: 20px;
    border-top: none;
    backdrop-filter: blur(16px);
    -webkit-backdrop-filter: blur(16px);
}
.profile-top { display: flex; align-items: flex-start; gap: 16px; padding-top: 0; flex-wrap: wrap; }
.profile-avatar-wrap { margin-top: -52px; flex-shrink: 0; position: relative; z-index: 2; }
.profile-avatar { width: 96px; height: 96px; border-radius: 50%; object-fit: cover; border: 4px solid var(--bg-deep); box-shadow: 0 0 0 2px var(--accent1), 0 0 24px var(--glow); display: block; }
.avatar-init-lg { width: 96px; height: 96px; border-radius: 50%; display: flex; align-items: center; justify-content: center; font-size: 34px; font-weight: 700; color: #fff; border: 4px solid var(--bg-deep); box-shadow: 0 0 0 2px var(--accent1); }
.profile-info { flex: 1; min-width: 0; padding-top: 18px; }
.profile-username { font-size: 22px; font-weight: 700; background: var(--grad-main); -webkit-background-clip: text; -webkit-text-fill-color: transparent; background-clip: text; margin-bottom: 6px; }
.badge-admin { background: var(--grad-gold); color: #000; font-size: 10px; font-weight: 700; padding: 2px 8px; border-radius: 8px; margin-left: 8px; -webkit-text-fill-color: #000; }
.level-badge { font-size: 12px; background: rgba(148,163,184,.2); color: var(--accent3); padding: 2px 10px; border-radius: 20px; border: 1px solid rgba(148,163,184,.3); }
.profile-actions { display: flex; gap: 8px; flex-wrap: wrap; padding-top: 18px; margin-left: auto; }
.profile-stats-row { display: flex; gap: 24px; padding: 16px 0 4px; border-top: 1px solid var(--border); margin-top: 14px; flex-wrap: wrap; }
.profile-stat { text-align: center; }
.profile-stat small { display: block; font-size: 11px; color: var(--text-muted); margin-top: 2px; }

/* Profil V5 classes */
.profile-avatar-v5 { width: 96px; height: 96px; border-radius: 50%; object-fit: cover; border: 4px solid var(--bg-deep); box-shadow: 0 0 0 2px var(--accent1), 0 0 24px var(--glow); display: block; }
.profile-avatar-init-v5 { width: 96px; height: 96px; border-radius: 50%; display: flex; align-items: center; justify-content: center; font-size: 34px; font-weight: 700; color: #fff; border: 4px solid var(--bg-deep); box-shadow: 0 0 0 2px var(--accent1); }
.pstat { text-align: center; }
.pstat small { display: block; font-size: 11px; color: var(--text-muted); margin-top: 2px; }

/* ══════════════════════════════════════
   MESSAGERIE
══════════════════════════════════════ */
.messages-layout {
    max-width: 1280px;
    margin: 0 auto;
    padding: 24px 24px 80px;
    display: grid;
    grid-template-columns: 280px 1fr;
    gap: 20px;
    height: calc(100vh - 120px);
    min-height: 450px;
    align-items: start;
}
.conversations-list {
    background: var(--bg-card);
    border: 1px solid var(--border);
    border-radius: var(--radius);
    overflow-y: auto;
    height: calc(100vh - 164px);
    backdrop-filter: blur(16px);
    -webkit-backdrop-filter: blur(16px);
}
.conv-header { padding: 16px 18px; border-bottom: 1px solid var(--border); font-weight: 700; font-size: 15px; }
.conv-item { display: flex; align-items: center; gap: 10px; padding: 12px 16px; border-bottom: 1px solid rgba(30,36,46,.4); text-decoration: none; transition: background .2s; }
.conv-item:hover, .conv-item-active { background: var(--glow-sm); }
.conv-item:last-child { border-bottom: none; }
.conv-avatar { width: 40px; height: 40px; border-radius: 50%; overflow: hidden; flex-shrink: 0; }
.conv-avatar img { width: 100%; height: 100%; object-fit: cover; }
.conv-info { flex: 1; min-width: 0; }
.conv-name { font-size: 13px; font-weight: 600; color: var(--text); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.conv-preview { font-size: 11px; color: var(--text-muted); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; margin-top: 1px; }
.chat-area {
    background: var(--bg-card);
    border: 1px solid var(--border);
    border-radius: var(--radius);
    display: flex;
    flex-direction: column;
    height: calc(100vh - 164px);
    overflow: hidden;
    backdrop-filter: blur(16px);
    -webkit-backdrop-filter: blur(16px);
}
.chat-header { padding: 14px 18px; border-bottom: 1px solid var(--border); display: flex; align-items: center; gap: 10px; background: var(--bg-card2); }
.chat-messages { flex: 1; overflow-y: auto; padding: 18px; display: flex; flex-direction: column; gap: 10px; }
.message-bubble { max-width: 72%; padding: 10px 14px; border-radius: 14px; font-size: 13px; line-height: 1.5; word-wrap: break-word; }
.message-bubble.mine { background: var(--grad-main); color: #fff; align-self: flex-end; border-bottom-right-radius: 4px; }
.message-bubble.theirs { background: var(--bg-card2); color: var(--text); border: 1px solid var(--border); border-bottom-left-radius: 4px; }
.msg-time { font-size: 10px; opacity: .6; margin-top: 4px; }
.chat-input-zone { padding: 12px 16px; border-top: 1px solid var(--border); background: var(--bg-card2); }
.chat-input-zone form { display: flex; gap: 8px; align-items: flex-end; }
.chat-input { flex: 1; padding: 10px 14px; background: var(--bg-input); border: 1px solid var(--border); color: var(--text); border-radius: 10px; font-size: 13px; font-family: inherit; resize: none; transition: all .2s; }
.chat-input:focus { outline: none; border-color: var(--accent1); }

/* ══════════════════════════════════════
   NOTIFICATIONS
══════════════════════════════════════ */
.notif-card {
    background: var(--bg-card);
    border: 1px solid var(--border);
    border-radius: 10px;
    padding: 14px 16px;
    margin-bottom: 8px;
    display: flex;
    align-items: center;
    gap: 12px;
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
}
.notif-card.unread { border-left: 3px solid var(--accent1); background: rgba(148,163,184,0.06); }

/* ══════════════════════════════════════
   ADMIN
══════════════════════════════════════ */
.admin-table { width: 100%; border-collapse: collapse; background: var(--bg-card); border: 1px solid var(--border); border-radius: var(--radius); overflow: hidden; font-size: 12px; }
.admin-table thead { background: var(--bg-card2); }
.admin-table th { padding: 12px 14px; text-align: left; font-weight: 600; color: var(--accent3); font-size: 11px; text-transform: uppercase; letter-spacing: .5px; }
.admin-table td { padding: 11px 14px; border-bottom: 1px solid rgba(30,36,46,.4); color: var(--text); }
.admin-table tr:last-child td { border-bottom: none; }
.admin-table tr:hover td { background: rgba(148,163,184,.04); }

/* ══════════════════════════════════════
   SEARCH / PAGE LAYOUT
══════════════════════════════════════ */
.container { max-width: 900px; margin: 0 auto; padding: 28px 24px 90px; }
.categories-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
    gap: 12px;
    margin-bottom: 24px;
}
.category-card {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 24px 16px;
    border-radius: var(--radius);
    text-decoration: none;
    transition: all 0.25s;
    border: 1px solid var(--border);
    gap: 6px;
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
}
.category-card:hover { transform: translateY(-3px); box-shadow: var(--shadow); border-color: var(--border-h); }
.category-icon { font-size: 32px; }
.category-name { font-size: 14px; font-weight: 700; color: #fff; }
.category-meta { font-size: 11px; color: var(--text-muted); }
.cat-crypto  { background: rgba(148,163,184,0.14); }
.cat-defi    { background: rgba(59,130,246,0.14); }
.cat-trading { background: rgba(5,150,105,0.14); }
.cat-nft     { background: rgba(148,163,184,0.14); }

/* Niveau */
.lvl { font-size: 11px; padding: 2px 8px; border-radius: 10px; font-weight: 700; }
.lvl-1 { background: rgba(148,163,184,.2); color: var(--accent3); }
.lvl-2 { background: rgba(59,130,246,.2); color: #60a5fa; }
.lvl-3 { background: rgba(34,197,94,.2); color: #86efac; }
.lvl-4 { background: rgba(245,158,11,.2); color: #fbbf24; }
.lvl-5 { background: rgba(148,163,184,.2); color: #c9ced6; }

/* footer styles → voir section FOOTER SIMPLIFIÉ plus bas */

/* ══════════════════════════════════════
   UTILITAIRES
══════════════════════════════════════ */
.grad-text { background: var(--grad-main); -webkit-background-clip: text; -webkit-text-fill-color: transparent; background-clip: text; }
.text-muted { color: var(--text-muted); }
.text-center { text-align: center; }
.hidden { display: none; }
@keyframes slideIn { from { opacity: 0; transform: translateY(-8px); } to { opacity: 1; transform: translateY(0); } }
.fade-in { animation: slideIn .25s ease-out; }

/* ══════════════════════════════════════
   HAMBURGER MENU MOBILE
══════════════════════════════════════ */
.hamburger-btn {
    display: none;
    flex-direction: column;
    justify-content: center;
    gap: 5px;
    background: transparent;
    border: 1px solid var(--border);
    border-radius: 8px;
    padding: 8px 10px;
    cursor: pointer;
    flex-shrink: 0;
    /* Pas de margin-left:auto — géré par le header-inner */
}
.hamburger-btn span {
    display: block;
    width: 20px;
    height: 2px;
    background: var(--text-muted);
    border-radius: 2px;
    transition: all 0.2s;
}
.hamburger-btn.open span:nth-child(1) { transform: rotate(45deg) translate(5px, 5px); }
.hamburger-btn.open span:nth-child(2) { opacity: 0; }
.hamburger-btn.open span:nth-child(3) { transform: rotate(-45deg) translate(5px, -5px); }

/* Drawer mobile */
.mobile-nav-drawer {
    display: none;
    position: fixed;
    top: 58px;
    left: 0; right: 0;
    background: rgba(13,15,20, 0.98);
    border-bottom: 1px solid var(--border);
    backdrop-filter: blur(24px);
    -webkit-backdrop-filter: blur(24px);
    z-index: 299;
    padding: 12px 16px 16px;
    flex-direction: column;
    gap: 4px;
    box-shadow: 0 8px 32px rgba(0,0,0,0.5);
}
.mobile-nav-drawer.open { display: flex; }
.mobile-nav-drawer a {
    color: var(--text-muted);
    font-size: 14px;
    font-weight: 600;
    padding: 12px 16px;
    border-radius: 10px;
    text-decoration: none;
    transition: all 0.15s;
    display: flex;
    align-items: center;
    gap: 10px;
    border: 1px solid transparent;
}
.mobile-nav-drawer a:hover,
.mobile-nav-drawer a.active {
    color: var(--accent3);
    background: rgba(148,163,184,0.1);
    border-color: var(--border);
}
.mobile-nav-drawer .drawer-sep {
    height: 1px;
    background: var(--border);
    margin: 6px 0;
}
.mobile-nav-drawer .drawer-btn-row {
    display: flex;
    gap: 8px;
    margin-top: 4px;
}
.mobile-nav-drawer .drawer-btn-row a {
    flex: 1;
    justify-content: center;
    border: 1px solid var(--border);
}

/* ══════════════════════════════════════
   RESPONSIVE
══════════════════════════════════════ */
@media (max-width: 1024px) {
    .main-layout { grid-template-columns: 1fr; }
    .page-layout  { grid-template-columns: 1fr; }
    .sidebar { position: static; }
    .category-cards { grid-template-columns: repeat(2, 1fr); }
    .hero-inner { grid-template-columns: 1fr; }
    .hero-right { display: none; }
    .messages-layout { grid-template-columns: 1fr; height: auto; }
    .conversations-list, .chat-area { height: auto; max-height: 400px; }
}
@media (max-width: 768px) {
    /* Header : logo à gauche, hamburger à droite, rien au milieu */
    .header-inner {
        padding: 0 14px;
        height: 58px;
        display: flex;
        align-items: center;
        gap: 0;
        overflow: hidden;
        width: 100%;
        max-width: 100%;
        box-sizing: border-box;
    }
    .header-search   { display: none !important; }
    .header-ext-links { display: none !important; }
    .header-nav      { display: none !important; }
    .header-nav-main { display: none !important; }
    /* Logo prend tout l'espace libre, hamburger colle à droite */
    .logo { flex: 1; min-width: 0; overflow: hidden; }
    .hamburger-btn { display: flex; flex-shrink: 0; margin-left: 0; }
    .logo-text { font-size: 17px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
    .hero-left h1 { font-size: 28px; }
    .hero-inner { padding: 32px 16px; }
    .main-layout { padding: 16px 12px 80px; gap: 14px; }
    .post-vignette { width: 44px; font-size: 18px; }
    .category-cards { grid-template-columns: repeat(2, 1fr); gap: 8px; }
    .top-disc-grid { grid-template-columns: repeat(2, 1fr); }
    .newcomers-grid { grid-template-columns: repeat(3, 1fr); }
    .footer-markets-grid { grid-template-columns: repeat(3, 1fr); }
    /* Post stats : boutons plus petits mais visibles */
    .stat-btn { padding: 5px 9px; font-size: 12px; }
    .post-stats { gap: 3px; padding-top: 8px; }
    /* Commentaires : toujours accessibles */
    .comments-zone { padding-top: 12px; }
    .comment-form { gap: 6px; }
    .comment-input { padding: 7px 12px; font-size: 12px; }
}
@media (max-width: 480px) {
    .hero-btns { flex-direction: column; }
    .category-cards { grid-template-columns: repeat(2, 1fr); }
    .post-stats { flex-wrap: wrap; gap: 3px; }
    .footer-markets-grid { grid-template-columns: repeat(2, 1fr); }
    .top-disc-grid { grid-template-columns: 1fr 1fr; }
    .post-body-wrap { padding: 12px 14px; }
    .post-vignette { width: 38px; font-size: 16px; }
}

/* ══════════════════════════════════════
   HEADER — NAVIGATION PRINCIPALE V5
══════════════════════════════════════ */
.header-nav-main {
    display: flex;
    align-items: center;
    gap: 2px;
    flex-shrink: 0;
}
.nav-main-link {
    color: var(--text-muted);
    font-size: 13px;
    font-weight: 600;
    padding: 7px 12px;
    border-radius: 8px;
    transition: all 0.2s;
    white-space: nowrap;
}
.nav-main-link:hover { color: var(--text); background: var(--glow-sm); }
.nav-main-link.active { color: var(--accent3); background: rgba(148,163,184,0.12); }

/* ══════════════════════════════════════
   POST — DELETE BTN + CONTENT LINK
══════════════════════════════════════ */
.post-delete-btn {
    margin-left: auto;
    background: transparent;
    border: none;
    color: rgba(239,68,68,0.5);
    font-size: 14px;
    cursor: pointer;
    padding: 4px 6px;
    border-radius: 6px;
    transition: all 0.2s;
    flex-shrink: 0;
}
.post-delete-btn:hover { color: var(--danger); background: rgba(239,68,68,0.1); }
.post-content-link { display: block; text-decoration: none; }
.post-content-link:hover .post-content { color: var(--text); }
.post-view-link {
    margin-left: auto;
    font-size: 11px;
    color: var(--text-muted);
    padding: 4px 8px;
    border-radius: 6px;
    border: 1px solid var(--border);
    transition: all 0.2s;
    white-space: nowrap;
    text-decoration: none;
}
.post-view-link:hover { color: var(--accent3); border-color: var(--accent1); background: var(--glow-sm); }

/* ══════════════════════════════════════
   MODULE — TOP DISCUSSIONS
══════════════════════════════════════ */
.top-discussions-widget {
    background: var(--bg-card);
    border: 1px solid var(--border);
    border-radius: var(--radius);
    padding: 18px;
    backdrop-filter: blur(16px);
    -webkit-backdrop-filter: blur(16px);
}
.top-disc-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 10px;
}
.top-disc-card {
    background: var(--bg-card2);
    border: 1px solid var(--border);
    border-radius: var(--radius-sm);
    padding: 12px;
    text-decoration: none;
    display: flex;
    flex-direction: column;
    gap: 7px;
    transition: all 0.2s;
    position: relative;
    overflow: hidden;
}
.top-disc-card::before {
    content: '';
    position: absolute;
    top: 0; left: 0; right: 0;
    height: 3px;
}
.vig-crypto-card::before  { background: linear-gradient(90deg, #3b82f6, #3b82f6); }
.vig-defi-card::before    { background: linear-gradient(90deg, #3b82f6, #60a5fa); }
.vig-trading-card::before { background: linear-gradient(90deg, #059669, #22c55e); }
.vig-nft-card::before     { background: linear-gradient(90deg, #2563eb, #3b82f6); }
.vig-default-card::before { background: linear-gradient(90deg, #1f2633, #3b82f6); }
.top-disc-card:hover { border-color: var(--accent1); transform: translateY(-2px); box-shadow: 0 4px 16px rgba(148,163,184,0.2); }
.top-disc-header { display: flex; align-items: center; gap: 6px; }
.top-disc-av { width: 24px; height: 24px; border-radius: 50%; object-fit: cover; flex-shrink: 0; }
.top-disc-user { font-size: 11px; font-weight: 700; color: var(--accent3); flex: 1; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.top-disc-cat { font-size: 14px; }
.top-disc-preview { font-size: 12px; color: var(--text-muted); line-height: 1.45; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; flex: 1; }
.top-disc-meta { display: flex; gap: 8px; font-size: 11px; color: var(--text-muted); margin-top: auto; }

/* ══════════════════════════════════════
   MODULE — NOUVEAUX ARRIVANTS
══════════════════════════════════════ */
.newcomers-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 8px;
}
.newcomer-card {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 5px;
    text-decoration: none;
    padding: 8px 4px;
    border-radius: var(--radius-sm);
    transition: background 0.2s;
    position: relative;
}
.newcomer-card:hover { background: var(--glow-sm); }
.newcomer-av-wrap {
    position: relative;
    width: 44px; height: 44px;
}
.newcomer-av-wrap img,
.newcomer-av-wrap .avatar-init {
    width: 44px; height: 44px;
    border-radius: 50%;
    object-fit: cover;
    border: 2px solid var(--border);
}
.newcomer-badge {
    position: absolute;
    bottom: -2px; right: -4px;
    background: var(--green);
    color: #fff;
    font-size: 8px;
    font-weight: 700;
    padding: 1px 4px;
    border-radius: 6px;
    letter-spacing: 0.5px;
}
.newcomer-name {
    font-size: 11px;
    color: var(--text-muted);
    text-align: center;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    width: 100%;
}

/* ══════════════════════════════════════
   MODULE — LIENS EXTERNES WIDGET
══════════════════════════════════════ */
.ext-links-grid {
    display: flex;
    flex-direction: column;
    gap: 6px;
}
.ext-link-card {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 8px 12px;
    background: var(--bg-card2);
    border: 1px solid var(--border);
    border-radius: var(--radius-sm);
    text-decoration: none;
    transition: all 0.2s;
}
.ext-link-card:hover { border-color: var(--accent1); background: var(--glow-sm); }
.ext-link-label { font-size: 13px; color: var(--text-muted); font-weight: 500; }
.ext-link-card:hover .ext-link-label { color: var(--accent3); }
.ext-link-arrow { font-size: 14px; color: var(--text-muted); }

/* ══════════════════════════════════════
   FOOTER SIMPLIFIÉ
══════════════════════════════════════ */
/* footer supprimé — copyright intégré dans .bottom-bar > .bar-copyright */

/* ══════════════════════════════════════
   SCROLLBARS (discret neon)
══════════════════════════════════════ */
::-webkit-scrollbar { width: 6px; height: 6px; }
::-webkit-scrollbar-track { background: transparent; }
::-webkit-scrollbar-thumb { background: rgba(148,163,184,0.28); border-radius: 6px; }
::-webkit-scrollbar-thumb:hover { background: rgba(148,163,184,0.55); }


/* ══════════════════════════════════════
   FOND UNI (7 oct 2026) — sans image ni halos
   Pour revenir au fond image : supprimer ce bloc.
══════════════════════════════════════ */
html:root::before { background-image: none !important; background-color: #0d0f14 !important; }
html:root::after  { background: none !important; }
body { background: #0d0f14; }
.hero-simple { background: transparent; }
.hero-simple::before { display: none; }
.hero-simple .hero-inner { grid-template-columns: 1fr; padding: 36px 24px; }
.hero-simple .hero-left p { max-width: 640px; }

/* ══════════════════════════════════════
   PALETTE PRO (7 oct 2026) — sobre, une seule couleur d'accent (bleu)
   Remplace les couleurs néon violet/rose sans toucher à la mise en page.
   Pour revenir à l'ancienne palette : supprimer ce bloc.
══════════════════════════════════════ */
:root {
    --bg-deep:    #0d0f14;
    --bg-card:    #151922;
    --bg-card2:   #1a1f29;
    --bg-input:   #11141b;
    --border:     #252b36;
    --border-h:   #39414f;
    --accent1:    #3b82f6;
    --accent2:    #3b82f6;
    --accent3:    #8ab4f8;
    --pink:       #3b82f6;
    --blue:       #3b82f6;
    --cyan:       #60a5fa;
    --text:       #e5e7eb;
    --text-sec:   #b4bac5;
    --text-muted: #8a92a0;
    --glow:       transparent;
    --glow-sm:    rgba(59,130,246,0.10);
    --grad-main:  linear-gradient(#2563eb, #2563eb);
    --grad-hero:  linear-gradient(#0d0f14, #0d0f14);
    --grad-blue:  linear-gradient(#2563eb, #2563eb);
    --grad-pink:  linear-gradient(#2563eb, #2563eb);
    --overlay-halos: none;
}
/* En-tête : plus de ligne arc-en-ciel ni de logo dégradé */
.header { background: #11141b; backdrop-filter: none; -webkit-backdrop-filter: none; }
.header::after { display: none; }
.logo-icon { background: #2563eb; box-shadow: none; }
.logo-text { background: none; -webkit-text-fill-color: var(--text); color: var(--text); }
/* Boutons : couleur unie, sans lueur (formes inchangées) */
.btn-signin, .btn-hero-primary, .btn-primary { background: #2563eb !important; box-shadow: none !important; }
.btn-signin:hover, .btn-hero-primary:hover, .btn-primary:hover { background: #1d4ed8 !important; box-shadow: none !important; }
.btn-hero-secondary { background: transparent; border-color: #39414f; backdrop-filter: none; }
.btn-secondary { color: var(--text); border-color: #39414f; }
.btn-danger { background: #b91c1c; }
/* Catégories : barres et fonds colorés neutralisés */
.cat-crypto::before, .cat-defi::before, .cat-trading::before, .cat-nft::before { background: none; }
.vig-crypto, .vig-defi, .vig-trading, .vig-nft, .vig-default,
.vig-crypto-card::before, .vig-defi-card::before, .vig-trading-card::before,
.vig-nft-card::before, .vig-default-card::before { background: #39414f; }
.hero-stat-item .num { background: none; -webkit-text-fill-color: var(--text); color: var(--text); }
/* Cartes de catégories et encarts : fonds teintés neutralisés */
.cat-card { background: var(--bg-card) !important; border-color: var(--border) !important; }
.cat-icon-wrap { background: #1f2633 !important; box-shadow: none !important; }
.widget-boost { background: var(--bg-card) !important; border-color: var(--border) !important; }
.widget-title { border-color: var(--border) !important; }
/* Étiquettes, scores, pastilles : tons neutres uniformes */
.tag-pill, .tag-purple, .tag-blue, .tag-pink, .tag-green, .tag-gold, .tag-cyan {
    background: #1f2633 !important; color: #c9ced6 !important; border-color: #2c3442 !important;
}
.tag-pill:hover { filter: none; background: #263041 !important; }
.top-member-score { color: var(--text-sec); }
.bottom-bar { background: #11141b; backdrop-filter: none; -webkit-backdrop-filter: none; }
.bottom-bar::before { display: none; }
.mobile-nav-drawer { background: #11141b; }
.newcomer-badge { background: #39414f; }
/* « Sign up » dans l'en-tête : bouton secondaire à contour, lisible */
.header-nav a.btn-primary { background: transparent !important; border: 1px solid #39414f; color: var(--text) !important; }
.header-nav a.btn-primary:hover { background: #1f2633 !important; }
/* Rose vif remplacé par le rouge standard (astérisques obligatoires, cœurs « J aime ») */
:root { --like: #ef4444; }
/* Bande de catégorie à gauche des messages (₿, 📈…) : dégradé bleu doux (7 oct 2026) */
.vig-crypto, .vig-defi, .vig-trading, .vig-nft, .vig-default {
    background: #14233f !important;
    border-right: 1px solid #1d2f52;
    color: #fcd34d;
}
/* Indications sous les messages (♥ ↺ 💬 Voir discussion, Lire la suite) : ambre doré chaleureux */
.post-stats, .post-stats .stat-btn, .post-stats > span, .post-stats > div { color: #f4b860; }
.post-stats .stat-btn:hover { color: #ffd28a; }
.post-view-link {
    color: #f4b860 !important;
    border-color: rgba(244,184,96,0.40) !important;
    background: rgba(244,184,96,0.08);
}
.post-view-link:hover { color: #ffd28a !important; background: rgba(244,184,96,0.16); }
.post-expand-btn { background: none !important; border: none !important; padding: 2px 0 !important; color: #f4b860 !important; font-size: 12px; cursor: pointer; }
.post-expand-btn:hover { color: #ffd28a !important; text-decoration: underline; }

/* Avatars carrés aux bords arrondis, 15 % plus grands (identité visuelle ZONEH24, 7 oct 2026)
   Pour revenir aux ronds de taille normale : supprimer ce bloc. */
.avatar-init, .avatar-init-lg, .post-avatar, .comment-avatar, .comment-avatar img,
.top-member-avatar, .top-member-avatar img, .online-avatar-wrap img, .online-avatar-inner,
.featured-avatar, .featured-avatar img, .newcomer-av-wrap img, .newcomer-av-wrap .avatar-init,
.top-disc-av, .conv-avatar, .profile-avatar, .profile-avatar-wrap,
.profile-avatar-v5, .profile-avatar-init-v5, .post-main-av, .post-main-av-init, .reply-avatar {
    border-radius: 28% !important;
}
/* Agrandissement proportionnel (respecte les tailles propres à chaque endroit, sans cumul) */
.avatar-init:not(.comment-avatar *):not(.top-member-avatar *):not(.featured-avatar *):not(.post-avatar *):not(.reply-avatar *),
.post-avatar:not(.avatar-init), .comment-avatar, .top-member-avatar, .featured-avatar,
.online-avatar-wrap, .newcomer-av-wrap img, .conv-avatar:not(.avatar-init),
.post-main-av, .post-main-av-init, .reply-avatar:not(.avatar-init),
.profile-avatar-v5, .profile-avatar-init-v5 {
    zoom: 1.15;
}
/* Avatars des messages plus grands (7 oct 2026) */
.post-header .avatar-init:not(.reply-avatar *), .post-header .post-avatar:not(.avatar-init) { zoom: 1.4 !important; }      /* cartes de messages : 38 → ~53 px */
.post-main-av, .post-main-av-init { zoom: 1.35 !important; }                       /* auteur sur la page discussion : 48 → ~65 px */
.reply-avatar:not(.avatar-init) { zoom: 1.35 !important; }                                            /* réponses : 34 → ~46 px */
.reply-avatar img { border-radius: 28% !important; }
/* 👎 en rouge doux pour le distinguer de l'ambre des autres actions ; rouge franc une fois donné (7 oct 2026) */
.lose-btn { color: #f28b82 !important; }
.lose-btn:hover { color: #f6a9a2 !important; }
.lose-btn.lost { color: #ef4444 !important; border-color: rgba(239,68,68,0.45) !important; }
/* ── Reposts avec message (7 oct 2026) ── */
.repost-banner { margin: -4px 0 10px; padding: 8px 10px; border-left: 3px solid #f4b860; background: rgba(244,184,96,0.06); border-radius: 6px; }
.repost-banner-head { font-size: 12px; color: var(--text-muted); }
.repost-banner-head a { color: #f4b860; font-weight: 600; }
.repost-comment { margin: 6px 0 0; font-size: 14px; line-height: 1.5; color: var(--text); overflow-wrap: anywhere; }
.z24-rp-overlay { position: fixed; inset: 0; z-index: 2000; background: rgba(0,0,0,0.6); display: flex; align-items: center; justify-content: center; padding: 16px; }
.z24-rp-box { width: 100%; max-width: 480px; background: var(--bg-card); border: 1px solid var(--border); border-radius: 14px; padding: 18px; }
.z24-rp-title { font-size: 16px; font-weight: 700; color: var(--text); }
.z24-rp-hint { font-size: 12px; color: var(--text-muted); margin: 4px 0 10px; }
.z24-rp-text { width: 100%; background: var(--bg-input); color: var(--text); border: 1px solid var(--border); border-radius: 8px; padding: 10px; font: inherit; resize: vertical; }
.z24-rp-count { text-align: right; font-size: 12px; color: var(--text-muted); margin-top: 4px; }
.z24-rp-count.near { color: #f4b860; }
.z24-rp-actions { display: flex; justify-content: flex-end; gap: 8px; margin-top: 12px; }
.z24-rp-cancel { background: transparent; color: var(--text-sec); border: 1px solid var(--border); border-radius: 8px; padding: 8px 14px; }
.z24-rp-ok { background: #2563eb; color: #fff; border-radius: 8px; padding: 8px 16px; font-weight: 600; }
.z24-rp-ok:disabled { opacity: .6; }
/* ── Messages moins hauts + colonnes de côté fixes au défilement, comme X (7 oct 2026) ── */
.post-body-wrap { padding: 12px 16px; }
.post-header { margin-bottom: 6px; }
.post-content { margin-bottom: 6px; }
.post-content.truncated { display: -webkit-box; -webkit-line-clamp: 5; -webkit-box-orient: vertical; overflow: hidden; }
@media (max-width: 768px) { .post-content.truncated { -webkit-line-clamp: 3; } }
@media (min-width: 901px) {
    .main-layout, .profile-layout, .feed-3col, .post-detail-outer { align-items: start; }
    .sidebar, .profile-sidebar-left, .profile-sidebar-right,
    .feed-sidebar-left, .feed-sidebar-right, .post-detail-outer > aside {
        position: sticky; top: 76px; align-self: start;
        max-height: calc(100vh - 76px - 12vh - 64px);
        overflow-y: auto; scrollbar-width: thin; scrollbar-color: #2c3442 transparent;
    }
}
/* ── Accueil en 3 colonnes façon X (7 oct 2026) : navigation à gauche, messages au centre (600 px), modules à droite ── */
.sidebar-left { display: none; }
.side-nav { display: flex; flex-direction: column; gap: 2px; margin-bottom: 14px; }
.side-nav a { display: flex; align-items: center; gap: 12px; padding: 10px 12px; border-radius: 10px;
              color: var(--text); font-size: 15px; font-weight: 600; text-decoration: none; }
.side-nav a:hover { background: #1a1f29; color: #fff; }
.side-nav a.active { background: #1a2540; color: #fff; }
.side-badge { margin-left: auto; background: #2563eb; color: #fff; font-size: 11px; padding: 1px 7px; border-radius: 10px; }
.side-me { display: flex; align-items: center; gap: 10px; text-decoration: none; }
.side-me-name { font-weight: 700; color: var(--text); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.side-me-sub { font-size: 12px; color: #8ab4f8; }
.side-join p { font-size: 13px; color: var(--text-sec); margin: 0 0 10px; }
@media (min-width: 1101px) {
    .main-layout { grid-template-columns: 250px minmax(0, 600px) 300px; justify-content: center; max-width: 1240px; }
    .sidebar-left { display: flex; flex-direction: column; gap: 14px; min-width: 0;
                    position: sticky; top: 76px; align-self: start;
                    max-height: calc(100vh - 76px - 12vh - 64px); overflow-y: auto;
                    scrollbar-width: thin; scrollbar-color: #2c3442 transparent; }
}
@media (min-width: 1025px) and (max-width: 1100px) {
    .main-layout { grid-template-columns: minmax(0, 1fr) 300px; }
}
/* Barre crypto : disparition fluide (7 oct 2026) — sortie lente et douce, apparition inchangée (0,4 s) */
.bottom-bar {
    transition: opacity 0.7s ease, transform 0.7s cubic-bezier(0.4, 0, 0.2, 1), visibility 0s linear 0.7s;
}
.bottom-bar.visible {
    transition: opacity 0.4s ease, transform 0.4s ease, visibility 0s linear 0s;
}
body { transition: padding-bottom 0.7s cubic-bezier(0.4, 0, 0.2, 1); }


/* ══════════════════════════════════════════════════════════════════════
   THÈMES VISUELS (7 oct 2026) — choisis par le membre via le bouton 🎨 (assets/theme.js)
   Sans attribut data-theme = thème par défaut « Marine & Ambre ».
   Pour ajouter un thème : copier un bloc html[data-theme="…"] { --t-… } et l'ajouter dans theme.js.
   ══════════════════════════════════════════════════════════════════════ */

/* Bouton + menu du sélecteur (tous thèmes) */
.theme-wrap { position: relative; flex-shrink: 0; }
.theme-btn { width: 36px; height: 36px; border-radius: 10px; font-size: 17px; line-height: 1;
             background: transparent; border: 1px solid var(--border); cursor: pointer; }
.theme-btn:hover { background: rgba(127,127,127,0.12); }
.theme-menu { position: fixed; right: 12px; top: 60px; z-index: 1000; min-width: 210px; padding: 8px;
              background: var(--bg-card); border: 1px solid var(--border); border-radius: 12px;
              box-shadow: 0 10px 30px rgba(0,0,0,0.35); }
.theme-menu-title { font-size: 12px; color: var(--text-muted); padding: 4px 8px 8px; }
.theme-item { display: flex; align-items: center; gap: 10px; width: 100%; padding: 8px; border-radius: 8px;
              background: transparent; color: var(--text); font-size: 14px; text-align: left; cursor: pointer; }
.theme-item:hover { background: rgba(127,127,127,0.12); }
.theme-item.active { outline: 2px solid var(--accent1); }
.theme-sw { display: inline-flex; border-radius: 6px; overflow: hidden; border: 1px solid rgba(127,127,127,0.4); }
.theme-sw i { display: block; width: 12px; height: 18px; }
.header { overflow: visible !important; }   /* le menu doit pouvoir dépasser de la barre */

/* ── Palettes ── */
html[data-theme="nuit"] {   /* palette fournie par le propriétaire */
    --t-bg:#0C1422; --t-header:#101B2C; --t-side:#152237; --t-card:#1B2A40; --t-strip:#223752;
    --t-border:#30425A; --t-text:#E8EEF7; --t-text2:#A6B6CC; --t-link:#8DBEFF;
    --t-accent:#3678EB; --t-accent-text:#FFFFFF; --t-btn2-bg:#203B60; --t-btn2-text:#B8D6FF; --t-btn2-border:#385C86;
    --t-nav-active:#21324A; --t-avatar:#3C506B; --t-gold:#D6AF62; --t-action:#A6B6CC; --t-logo:#D6AF62;
    --t-input:#101B2C; --t-cover:linear-gradient(135deg,#1B2A40 0%,#223752 60%,#2c4a72 100%);
}
html[data-theme="graphite"] {   /* gris neutre, style GitHub */
    --t-bg:#0d1117; --t-header:#161b22; --t-side:#161b22; --t-card:#161b22; --t-strip:#21262d;
    --t-border:#30363d; --t-text:#e6edf3; --t-text2:#8b949e; --t-link:#58a6ff;
    --t-accent:#1f6feb; --t-accent-text:#ffffff; --t-btn2-bg:#21262d; --t-btn2-text:#c9d1d9; --t-btn2-border:#30363d;
    --t-nav-active:#21262d; --t-avatar:#30363d; --t-gold:#d29922; --t-action:#8b949e; --t-logo:#1f6feb;
    --t-input:#0d1117; --t-cover:linear-gradient(135deg,#161b22 0%,#21262d 100%);
}
html[data-theme="noir"] {   /* noir pur (OLED) */
    --t-bg:#000000; --t-header:#000000; --t-side:#0a0a0a; --t-card:#0a0a0a; --t-strip:#141414;
    --t-border:#262626; --t-text:#f0f0f0; --t-text2:#9a9a9a; --t-link:#4da3ff;
    --t-accent:#1d9bf0; --t-accent-text:#ffffff; --t-btn2-bg:#111111; --t-btn2-text:#e0e0e0; --t-btn2-border:#333333;
    --t-nav-active:#161616; --t-avatar:#262626; --t-gold:#f5c542; --t-action:#9a9a9a; --t-logo:#1d9bf0;
    --t-input:#0a0a0a; --t-cover:linear-gradient(135deg,#0a0a0a 0%,#1a1a1a 100%);
}
html[data-theme="clair"] {   /* thème clair classique */
    --t-bg:#f3f5f9; --t-header:#ffffff; --t-side:#ffffff; --t-card:#ffffff; --t-strip:#eef2f8;
    --t-border:#dfe5ee; --t-text:#18212f; --t-text2:#5b6b80; --t-link:#1d5fd1;
    --t-accent:#2563eb; --t-accent-text:#ffffff; --t-btn2-bg:#eef4ff; --t-btn2-text:#1d4ed8; --t-btn2-border:#c7d7f5;
    --t-nav-active:#e8efff; --t-avatar:#94a3b8; --t-gold:#b7791f; --t-action:#5b6b80; --t-logo:#2563eb;
    --t-input:#f3f5f9; --t-cover:linear-gradient(135deg,#dbe7fb 0%,#c3d6f7 100%);
}

/* ── Thème « Voice » (10 oct 2026) : mêmes couleurs que ZONEH24 Voice (voice.zoneh24.com) ── */
html[data-theme="voice-clair"] {
    --t-bg:#f6f8fa; --t-header:#0d2238; --t-side:#ffffff; --t-card:#ffffff; --t-strip:#eef2f6;
    --t-border:#e3e8ee; --t-text:#14212e; --t-text2:#5d6b78; --t-link:#0e7c7b;
    --t-accent:#0e7c7b; --t-accent-text:#ffffff; --t-btn2-bg:#e6f4f3; --t-btn2-text:#0e7c7b; --t-btn2-border:#b7dcdb;
    --t-nav-active:#e6f4f3; --t-avatar:#6b7c93; --t-gold:#f5a623; --t-action:#5d6b78; --t-logo:#3fc3d8;
    --t-input:#ffffff; --t-cover:linear-gradient(135deg,#0b2a55,#1f5fa8 60%,#7aa7d9);
    color-scheme: light;
}
html[data-theme="voice-sombre"] {
    --t-bg:#0e1621; --t-header:#0a121b; --t-side:#16212d; --t-card:#16212d; --t-strip:#1c2836;
    --t-border:#2a3747; --t-text:#e3eaf1; --t-text2:#97a6b5; --t-link:#14a3a1;
    --t-accent:#14a3a1; --t-accent-text:#ffffff; --t-btn2-bg:#123536; --t-btn2-text:#7fd6d4; --t-btn2-border:#24585a;
    --t-nav-active:#1c2836; --t-avatar:#3c506b; --t-gold:#f5a623; --t-action:#97a6b5; --t-logo:#3fc3d8;
    --t-input:#16212d; --t-cover:linear-gradient(135deg,#0b2a55,#1f5fa8 60%,#7aa7d9);
    color-scheme: dark;
}
/* Couleur principale : remplace l'accent, les liens et les boutons secondaires (fond clair assorti) */
html[data-theme="voice-clair"][data-accent="bleu"]   { --t-accent:#2563eb; --t-link:#2563eb; --t-btn2-text:#2563eb; --t-btn2-bg:#e8effd; --t-nav-active:#e8effd; --t-btn2-border:#bfd1f8; }
html[data-theme="voice-clair"][data-accent="violet"] { --t-accent:#7c3aed; --t-link:#7c3aed; --t-btn2-text:#7c3aed; --t-btn2-bg:#f1eafe; --t-nav-active:#f1eafe; --t-btn2-border:#d8c5fb; }
html[data-theme="voice-clair"][data-accent="orange"] { --t-accent:#d9620f; --t-link:#d9620f; --t-btn2-text:#d9620f; --t-btn2-bg:#fdf0e6; --t-nav-active:#fdf0e6; --t-btn2-border:#f6cfb0; }
html[data-theme="voice-sombre"][data-accent="bleu"]   { --t-accent:#4f8cff; --t-link:#4f8cff; --t-btn2-text:#a9c6ff; --t-btn2-bg:#16294a; --t-nav-active:#1a2a42; --t-btn2-border:#2c4a7c; }
html[data-theme="voice-sombre"][data-accent="violet"] { --t-accent:#9f6bff; --t-link:#9f6bff; --t-btn2-text:#cdb2ff; --t-btn2-bg:#2a1f45; --t-nav-active:#241f3a; --t-btn2-border:#4a3a78; }
html[data-theme="voice-sombre"][data-accent="orange"] { --t-accent:#f08a3c; --t-accent-text:#1a1206; --t-link:#f08a3c; --t-btn2-text:#ffc49a; --t-btn2-bg:#3a2414; --t-nav-active:#30241a; --t-btn2-border:#6a4224; }

/* Voice clair : barre du haut bleu marine, texte et icônes blancs dans la barre */
html[data-theme="voice-clair"] .header :is(.logo-text, .header-nav a, a, button, span, .nav-link, .hamburger-btn, .theme-btn) {
    color: #ffffff !important; -webkit-text-fill-color: #ffffff !important;
}
html[data-theme="voice-clair"] .header :is(.header-nav a.btn-primary, .theme-btn, .hamburger-btn, .btn-secondary) {
    border-color: rgba(255,255,255,0.35) !important; background: transparent !important;
}
html[data-theme="voice-clair"] .header .header-nav a:hover, html[data-theme="voice-clair"] .header .theme-btn:hover { background: rgba(255,255,255,0.12) !important; }
html[data-theme="voice-clair"] .header .btn-signin { background: var(--t-accent) !important; }
html[data-theme="voice-clair"] .header .theme-menu, html[data-theme="voice-clair"] .header .theme-menu * { -webkit-text-fill-color: initial !important; }
html[data-theme="voice-clair"] .header .theme-menu { color: var(--t-text) !important; }
html[data-theme="voice-clair"] .header .theme-menu :is(button, span, div) { color: var(--t-text) !important; }
html[data-theme="voice-clair"] .header .theme-menu .theme-menu-title { color: var(--t-text2) !important; }

/* Menu 🎨 : sections « Affichage », « Couleur principale », « Autres thèmes » (comme sur Voice) */
.theme-menu { width: 270px; max-width: calc(100vw - 24px); padding: 12px; }
.theme-menu .theme-menu-title { font-size: 11.5px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; padding: 2px 2px 8px; }
.theme-menu .theme-others { margin-top: 12px; padding-top: 12px; border-top: 1px solid var(--t-border, var(--border)); }
.theme-seg { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 6px; margin-bottom: 12px; }
.theme-acc { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 6px; }
.theme-seg button, .theme-acc button {
    border: 1.5px solid var(--t-border, var(--border)); background: var(--t-card, var(--bg-card)); color: var(--t-text, var(--text));
    border-radius: 8px; padding: 8px 2px; font-size: 12.5px; cursor: pointer; min-width: 0;
}
.theme-acc button { display: flex; flex-direction: column; align-items: center; gap: 4px; font-size: 11px; padding: 7px 2px; }
.theme-acc i { width: 20px; height: 20px; border-radius: 50%; display: block; }
.theme-seg button.on { border-color: var(--t-accent, var(--accent1)); background: var(--t-btn2-bg, rgba(127,127,127,.15)); font-weight: 700; }
.theme-acc button.on { border-color: var(--t-text, var(--text)); font-weight: 700; }

/* ── Application d'une palette (uniquement quand un thème est choisi) ── */
html[data-theme] {
    --bg-deep: var(--t-bg); --bg-card: var(--t-card); --bg-card2: var(--t-side); --bg-input: var(--t-input);
    --border: var(--t-border); --border-h: var(--t-btn2-border);
    --text: var(--t-text); --text-sec: var(--t-text2); --text-muted: var(--t-text2);
    --accent1: var(--t-accent); --accent2: var(--t-accent); --accent3: var(--t-link);
}
html[data-theme]:root::before { background-color: var(--t-bg) !important; background-image: none !important; }
html[data-theme] body { background: var(--t-bg) !important; color: var(--t-text); }
html[data-theme] .header, html[data-theme] .bottom-bar, html[data-theme] .mobile-nav-drawer { background: var(--t-header) !important; border-color: var(--t-border) !important; }
html[data-theme] .widget, html[data-theme] .widget-boost, html[data-theme] .cat-card,
html[data-theme] .ad-sidebar-widget { background: var(--t-side) !important; border-color: var(--t-border) !important; }
html[data-theme] .post-card, html[data-theme] .profile-main-card, html[data-theme] .z24-rp-box,
html[data-theme] .theme-menu { background: var(--t-card) !important; border-color: var(--t-border) !important; }
html[data-theme] .vig-crypto, html[data-theme] .vig-defi, html[data-theme] .vig-trading,
html[data-theme] .vig-nft, html[data-theme] .vig-default { background: var(--t-strip) !important; border-right-color: var(--t-border) !important; color: var(--t-gold) !important; }
html[data-theme] .logo-icon { background: var(--t-logo) !important; }
html[data-theme] .logo-text, html[data-theme] .profile-name-v5, html[data-theme] .side-me-name,
html[data-theme] .post-title-text, html[data-theme] .hero-left h1 { -webkit-text-fill-color: var(--t-text) !important; color: var(--t-text) !important; }
html[data-theme] .btn-signin, html[data-theme] .btn-hero-primary, html[data-theme] .btn-primary,
html[data-theme] .z24-rp-ok { background: var(--t-accent) !important; color: var(--t-accent-text) !important; -webkit-text-fill-color: var(--t-accent-text) !important; }
html[data-theme] .header-nav a.btn-primary { background: transparent !important; color: var(--t-text) !important; -webkit-text-fill-color: var(--t-text) !important; border-color: var(--t-border) !important; }
html[data-theme] .post-stats, html[data-theme] .post-stats .stat-btn, html[data-theme] .post-stats > span { color: var(--t-action) !important; }
html[data-theme] .post-view-link { background: var(--t-btn2-bg) !important; color: var(--t-btn2-text) !important; border-color: var(--t-btn2-border) !important; }
html[data-theme] .post-expand-btn { color: var(--t-link) !important; }
html[data-theme] .side-nav a { color: var(--t-text); }
html[data-theme] .side-nav a:hover, html[data-theme] .side-nav a.active { background: var(--t-nav-active); color: var(--t-text); }
html[data-theme] .avatar-init, html[data-theme] .online-avatar-inner, html[data-theme] .profile-avatar-init-v5,
html[data-theme] .post-main-av-init { background: var(--t-avatar) !important; color: #fff; }
html[data-theme] .profile-cover-v5:not(.has-cover) { background: var(--t-cover) !important; }
html[data-theme] .profile-main-card { background: var(--t-card) !important; }
html[data-theme] .pstat-val { -webkit-text-fill-color: var(--t-link) !important; color: var(--t-link) !important; }
html[data-theme] .profile-stats-v5, html[data-theme] .pstat { border-color: var(--t-border) !important; }
html[data-theme] .tag-pill { background: var(--t-strip) !important; color: var(--t-text2) !important; border-color: var(--t-border) !important; }
html[data-theme] .cat-icon-wrap { background: var(--t-strip) !important; }
html[data-theme] input, html[data-theme] textarea, html[data-theme] select,
html[data-theme] .search-input { background: var(--t-input) !important; color: var(--t-text) !important; border-color: var(--t-border) !important; }
html[data-theme] a { color: var(--t-link); }
html[data-theme] .repost-banner-head a { color: var(--t-gold); }

/* Ajustements propres au thème clair (le site d'origine est pensé en sombre) */
html:is([data-theme="clair"],[data-theme="voice-clair"]) .post-content, html:is([data-theme="clair"],[data-theme="voice-clair"]) .comment-body p,
html:is([data-theme="clair"],[data-theme="voice-clair"]) .repost-comment, html:is([data-theme="clair"],[data-theme="voice-clair"]) .profile-bio-v5 { color: var(--t-text) !important; }
html:is([data-theme="clair"],[data-theme="voice-clair"]) .theme-menu { box-shadow: 0 10px 30px rgba(15,23,42,0.15); }
html:is([data-theme="clair"],[data-theme="voice-clair"]) .bottom-bar, html:is([data-theme="clair"],[data-theme="voice-clair"]) .bottom-bar * { color: var(--t-text); }
html:is([data-theme="clair"],[data-theme="voice-clair"]) .hero-left p, html:is([data-theme="clair"],[data-theme="voice-clair"]) .hero-stat-item small { color: var(--t-text2) !important; }
html:is([data-theme="clair"],[data-theme="voice-clair"]) .hero-stat-item .num { -webkit-text-fill-color: var(--t-text) !important; color: var(--t-text) !important; }
html:is([data-theme="clair"],[data-theme="voice-clair"]) .btn-hero-secondary { color: var(--t-text) !important; border-color: var(--t-border) !important; }
/* Thèmes : corrections de lisibilité (7 oct 2026) */
html[data-theme] .post-author, html[data-theme] .comment-author, html[data-theme] .reply-author { color: var(--t-text) !important; -webkit-text-fill-color: var(--t-text) !important; }
html[data-theme] .level-badge-v5 { background: var(--t-btn2-bg) !important; border-color: var(--t-btn2-border) !important; color: var(--t-btn2-text) !important; }
html[data-theme] .status-badge-v5 { background: var(--t-strip) !important; }
html:is([data-theme="clair"],[data-theme="voice-clair"]) :is(h1, h2, h3, h4, h5, strong, b, .widget-title, .section-title, .cat-name, .pub-main-title,
    .stat-row strong, .top-member-name, .newcomer-name, .featured-name, .reply-author, .post-main-title,
    .post-title-text):not(.btn *):not(.side-badge):not(.badge) {
    color: var(--t-text) !important; -webkit-text-fill-color: var(--t-text) !important;
}
/* Thème clair : textes écrits en blanc directement dans le code des pages (sans fond propre) */
html:is([data-theme="clair"],[data-theme="voice-clair"]) :is(a, span, div, p)[style*="color:#fff"]:not([style*="background"]) { color: var(--t-text) !important; }
/* Pas d effet au survol des messages (7 oct 2026) : ni soulèvement, ni ombre, ni changement de bordure */
.post-card { transition: none !important; }
.post-card:hover { transform: none !important; box-shadow: none !important; border-color: var(--border) !important; }
/* Noms d'utilisateurs cliquables vers leur page (7 oct 2026) : apparence inchangée, soulignés au survol */
a.post-author, a.comment-author, a.post-main-author, a.reply-author { text-decoration: none; cursor: pointer; }
a.post-author:hover, a.comment-author:hover, a.post-main-author:hover, a.reply-author:hover { text-decoration: none; }
/* Photos de profil sans bordure ni anneau (7 oct 2026) */
.avatar-init, .avatar-init-lg, .post-avatar, .comment-avatar, .comment-avatar img, .top-member-avatar, .top-member-avatar img,
.online-avatar-wrap img, .online-avatar-inner, .featured-avatar, .featured-avatar img, .newcomer-av-wrap img,
.top-disc-av, .conv-avatar, .profile-avatar, .profile-avatar-wrap, .profile-avatar-v5, .profile-avatar-init-v5,
.post-main-av, .post-main-av-init, .reply-avatar, .reply-avatar img {
    border: none !important; box-shadow: none !important; outline: none !important;
}
/* Modules « Top discussions » / « Discussions » par hashtag (7 oct 2026) */
.ht-list { display: flex; flex-direction: column; }
.ht-item { display: flex; align-items: center; justify-content: space-between; gap: 8px; padding: 8px 4px;
           border-bottom: 1px solid var(--border); text-decoration: none; }
.ht-item:last-child { border-bottom: none; }
.ht-tag { color: var(--accent3); font-weight: 600; font-size: 14px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ht-meta { color: var(--text-muted); font-size: 12px; white-space: nowrap; }
.ht-empty { font-size: 13px; color: var(--text-muted); margin: 4px 0 2px; line-height: 1.5; }
.ht-results .ht-result { margin-bottom: 10px; }
.ht-result-head { font-size: 13px; margin-bottom: 6px; color: var(--text-muted); }
/* Colonnes de côté : contenu entier, plus de barre de défilement interne (7 oct 2026) — position gérée par theme.js */
.sidebar, .sidebar-left, .profile-sidebar-left, .profile-sidebar-right,
.feed-sidebar-left, .feed-sidebar-right, .post-detail-outer > aside { max-height: none !important; overflow: visible !important; }
/* Hashtags cliquables dans le texte des messages */
.ht-link { color: var(--accent3); font-weight: 600; cursor: pointer; }

/* ═══ Forum de test : hashtags payants ═══ */
.ph-testbar{position:relative;z-index:60;background:#3a2a10;color:#f4d9a6;font-size:12.5px;padding:6px 14px;display:flex;flex-wrap:wrap;gap:6px 16px;align-items:center;border-bottom:1px solid rgba(244,184,96,.35)}
.ph-testbar a{color:#ffd88a;font-weight:600;text-decoration:none}
.ph-testbar .ph-demo{margin-left:auto}.ph-testbar .ph-demo a{margin-left:8px}
.ph-preview{display:flex;flex-wrap:wrap;gap:6px 14px;font-size:12.5px;color:var(--text-muted);padding:6px 2px 2px}
.ph-preview b{color:var(--gold,var(--t-link,#f4b860))}.ph-preview .ph-total{color:var(--text);font-weight:700}
.ph-flash{background:rgba(52,168,83,.12);border:1px solid rgba(52,168,83,.35);border-radius:10px;padding:8px 12px;font-size:13px;margin-bottom:8px}
.ph-card{background:var(--card,#16233a);border:1px solid var(--border,var(--t-border,rgba(255,255,255,.08)));border-radius:14px;padding:16px 18px;margin-bottom:14px}
.ph-card h2,.ph-card h3{margin:0 0 8px}
.ph-muted{color:var(--text-muted);font-size:13px}
.ph-tbl{width:100%;border-collapse:collapse;font-size:13px}.ph-tbl td,.ph-tbl th{padding:6px 8px;border-bottom:1px solid var(--border,var(--t-border,rgba(255,255,255,.07)));text-align:left}
.ph-tbl .num{text-align:right;white-space:nowrap}.ph-pos{color:#5fd38d}.ph-neg{color:var(--t-neg,#f28b82)}
.ph-ok{background:rgba(52,168,83,.12);border:1px solid rgba(52,168,83,.35);border-radius:10px;padding:10px 14px;margin-bottom:14px}
.ph-err{background:rgba(242,139,130,.12);border:1px solid rgba(242,139,130,.4);border-radius:10px;padding:10px 14px;margin-bottom:14px}
.ph-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px}
.ph-big{font-size:20px;font-weight:700;margin-top:4px}

/* Module privé « Mon compteur » (forum de test) */
.ph-mod{background:linear-gradient(180deg,var(--t-btn2-bg,rgba(244,184,96,.07)),var(--t-btn2-bg,rgba(244,184,96,.02)));border:1px solid var(--t-accent,rgba(244,184,96,.28));border-radius:14px;padding:12px 14px;margin:14px 0}
.ph-mod-head{display:flex;justify-content:space-between;align-items:center;font-weight:700;font-size:14px;margin-bottom:8px}
.ph-mod-private{font-weight:400;font-size:11.5px;color:var(--text-muted)}
.ph-mod-live{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.ph-cnt{background:rgba(0,0,0,.18);border-radius:10px;padding:8px 10px;min-width:0}
.ph-cnt small{display:block;font-size:11px;color:var(--text-muted)}
.ph-cnt b{display:block;font-family:ui-monospace,Menlo,Consolas,monospace;font-size:16px;font-variant-numeric:tabular-nums;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;transition:color .4s}
.ph-gain b{color:#5fd38d}.ph-spend b{color:var(--t-neg,#f28b82)}
.ph-cnt b.ph-tick{text-shadow:0 0 10px currentColor}
.ph-mod-tot{font-size:12px;color:var(--text-muted);margin:8px 2px}
.ph-mod-tot b{color:var(--text);font-weight:600;font-variant-numeric:tabular-nums}
.ph-mod-pay{display:flex;flex-wrap:wrap;align-items:center;gap:6px 8px;font-size:12.5px;color:var(--text-muted)}
.ph-mod-pay button{background:transparent;border:1px solid var(--border,var(--t-border,rgba(255,255,255,.15)));color:var(--text);border-radius:999px;padding:4px 11px;font-size:12.5px;cursor:pointer}
.ph-mod-pay button.on{background:var(--t-accent,#f4b860);border-color:var(--t-accent,#f4b860);color:var(--t-accent-text,#1a1206);font-weight:700}
.ph-mod-pay input{width:4.5em;background:rgba(0,0,0,.2);border:1px solid var(--border,var(--t-border,rgba(255,255,255,.15)));color:var(--text);border-radius:6px;padding:3px 5px}
.ph-mod-saved{color:#5fd38d;font-weight:700}
@media(max-width:600px){.ph-mod-live{grid-template-columns:1fr 1fr}.ph-mod-live .ph-cnt:last-child{grid-column:span 2}.ph-cnt b{font-size:clamp(11.5px,3.7vw,15px);text-overflow:clip}.ph-cnt{padding:7px 8px}}

/* Forum de test : colonnes de côté immobiles */
html body .side-fixed{max-height:calc(100vh - 92px)!important;overflow:hidden!important;scrollbar-width:none}
html body .side-fixed *{scrollbar-width:none}
html body .side-fixed *::-webkit-scrollbar{display:none}
.side-fixed::-webkit-scrollbar{display:none}
html body .side-fixed > *{flex-shrink:0!important}

/* Profil : onglets à côté de la photo en icônes, sur une ligne alignée avec les boutons */
.profile-header-nav{flex-wrap:nowrap!important;gap:6px!important}
.profile-header-nav .pnl{display:none}
.profile-header-nav .profile-nav-link{padding:6px 10px!important;font-size:15px!important;line-height:1.2;white-space:nowrap}

/* Compteur : colonne de gauche sur grand écran, dans le fil quand la colonne est masquée (≤1024 px) */
@media (min-width:1025px){.ph-mod-main{display:none}}
.ph-mod-side{margin:0;padding:12px}
.ph-mod-side .ph-mod-head{flex-direction:column;align-items:flex-start;gap:2px}
.ph-mod-side .ph-mod-live{grid-template-columns:1fr}
.ph-mod-side .ph-mod-live .ph-cnt:last-child{grid-column:auto}
.ph-mod-side .ph-cnt b{font-size:15px}
.ph-mod-side .ph-mod-tot{line-height:1.6}
.ph-mod-side .ph-mod-pay{flex-direction:column;align-items:stretch}
.ph-mod-side .ph-mod-pay button{text-align:left}

/* ═══ Économie V2 (forum de test) ═══ */
.art-link{color:var(--t-link,#f4b860);font-weight:600;cursor:pointer;border-bottom:1px dotted var(--t-accent,rgba(244,184,96,.6))}
.art-link:hover{color:var(--t-link,#ffd08a)}
.art-tip{position:absolute;z-index:1000;max-width:340px;background:var(--bg-card,#16233a);border:1px solid var(--t-accent,rgba(244,184,96,.45));border-radius:12px;padding:12px 14px;box-shadow:0 10px 30px rgba(0,0,0,.45);font-size:13px}
.art-tip-a{color:var(--text-muted);font-size:12px;margin-bottom:4px}.art-tip b{font-size:15px}.art-tip p{margin:6px 0 8px;color:var(--text-sec,var(--text))}
.art-tip a{color:var(--t-link,#f4b860);font-weight:700}
.ph-art{margin-top:8px;border:1px dashed var(--t-accent,rgba(244,184,96,.45));border-radius:10px;padding:8px 10px}
.ph-art-addr{font-size:13px;color:var(--text-muted);margin-bottom:6px;display:flex;align-items:center;flex-wrap:wrap;gap:2px}
.ph-art-addr input{background:transparent;border:0;border-bottom:1px solid var(--t-accent,rgba(244,184,96,.5));color:var(--text);font-weight:700;padding:2px 4px;min-width:10em}
.ph-art textarea{width:100%;background:rgba(0,0,0,.18);border:1px solid var(--border,var(--t-border,rgba(255,255,255,.1)));border-radius:8px;color:var(--text);padding:8px;resize:vertical}
.ph-warn{color:var(--t-neg,#f28b82)}
.ph-article h1{margin:6px 0 12px;font-size:24px}.ph-art-body{line-height:1.65;font-size:15px}
.ph-art-cut{margin-top:14px;padding-top:14px;border-top:1px dashed var(--t-accent,rgba(244,184,96,.4))}
.ph-mod-quota{display:flex;flex-wrap:wrap;gap:4px 12px;font-size:12px;color:var(--text-muted);margin:2px 2px 8px}.ph-mod-quota b{color:var(--text)}
.ph-grid-tbl input{width:6.5em;text-align:right;background:rgba(0,0,0,.2);border:1px solid var(--border,var(--t-border,rgba(255,255,255,.12)));color:var(--text);border-radius:5px;padding:2px 4px}

/* Adresse @Nom.Titre : deux liens distincts */
.art-addr{white-space:nowrap}
.art-user{color:var(--t-link,#8fb8ff);font-weight:600;cursor:pointer}
.art-user:hover{color:#b9d3ff;text-decoration:underline}
.art-link{border-bottom:0!important}
.art-link:hover{text-decoration:underline}
.art-tip-u{display:flex;gap:10px;align-items:center;margin-bottom:6px}
.art-tip-u img{width:42px;height:42px;border-radius:28%;object-fit:cover}
.art-go{display:inline-block;margin-top:6px;color:var(--t-link,#f4b860);font-weight:700;cursor:pointer}
.ph-art-edit{margin-top:14px;border-top:1px dashed var(--t-accent,rgba(244,184,96,.35));padding-top:10px}
.ph-art-edit summary{cursor:pointer;color:var(--t-link,#f4b860);font-weight:600}
.ph-art-edit textarea{width:100%;margin:8px 0;background:rgba(0,0,0,.18);border:1px solid var(--border,var(--t-border,rgba(255,255,255,.1)));border-radius:8px;color:var(--text);padding:10px;line-height:1.55}

/* ═══ Mon compteur — design « carte » (maquette du 8 oct 2026) ═══ */
.phc{background:var(--t-card,#161b24);border:1px solid var(--t-border,rgba(255,255,255,.10));border-radius:18px;padding:16px;margin:14px 0;color:var(--t-text,#e6e9ef);background-image:none}
.phc small{display:block;font-size:12.5px;color:var(--t-text2,#c3c9d4);font-weight:500;line-height:1.3}
.phc-head{display:flex;align-items:center;gap:10px;margin-bottom:12px}
.phc-bag{width:38px;height:38px;flex:0 0 38px;display:flex;align-items:center;justify-content:center;font-size:20px;border:1px solid var(--t-border,rgba(255,255,255,.12));border-radius:10px;background:var(--t-strip,#1c2230)}
.phc-title{font-size:20px;font-weight:700;letter-spacing:-.2px}
.phc-priv{margin-left:auto;display:flex;align-items:flex-start;gap:6px;font-size:13px;color:var(--t-text,#dfe3ea)}
.phc-priv small{font-size:11.5px;color:var(--t-text2,#9aa3b2)}
.phc-priv .phc-ico{width:16px;height:16px;color:#9fb2d0;margin-top:2px}
.phc-box{display:flex;align-items:center;gap:12px;background:var(--t-strip,#11151d);border:1px solid var(--t-border,rgba(255,255,255,.10));border-radius:12px;padding:12px 14px;min-width:0}
.phc-box > div{min-width:0}
.phc-box b{display:block;font-size:22px;font-weight:700;font-variant-numeric:tabular-nums;white-space:nowrap;line-height:1.25;transition:text-shadow .4s}
.phc-box b.ph-tick{text-shadow:0 0 12px currentColor}
.phc-ico{width:26px;height:26px;flex:0 0 auto;color:#aeb6c4}
.phc-avail b{font-size:32px;color:var(--t-text,#fff)}
.phc-avail .phc-ico{width:34px;height:34px}
.phc-sec{display:flex;align-items:center;gap:12px;margin:16px 0 8px;font-size:13px;font-weight:700;letter-spacing:.6px;text-transform:uppercase;color:#9fb0c8}
.phc-sec::after{content:"";flex:1;height:1px;background:rgba(159,176,200,.25)}
.phc-two{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.phc-gain .phc-ico,.phc-gain b{color:var(--t-pos,#5fe3a1)}
.phc-spend .phc-ico,.phc-spend b{color:#f47b6f}
.phc-crypto{margin-top:8px}
.phc-crypto span{flex:1;font-size:15px}
.phc-crypto b{font-size:18px;color:var(--t-text,#fff)}
.phc-q .phc-qv{font-size:20px;color:var(--t-text2,#9aa3b2);white-space:nowrap}
.phc-q .phc-qv b{display:inline;font-size:22px;color:var(--t-text,#fff)}
.phc-col{flex-direction:column;align-items:stretch;gap:10px;margin-bottom:8px}
.phc-lbl{font-size:13.5px!important;font-weight:700!important;color:var(--t-text,#e6e9ef)!important}
.phc-lbl .ph-mod-saved{font-weight:600;color:var(--t-pos,#5fe3a1);margin-left:6px}
.phc-seg{display:grid;grid-template-columns:1fr 1fr;background:#0c1017;border:1px solid var(--t-border,rgba(255,255,255,.10));border-radius:10px;padding:2px}
.phc-seg button{background:transparent;border:0;border-radius:8px;color:var(--t-text2,#c3c9d4);font-weight:700;font-size:14px;padding:9px 6px;cursor:pointer}
.phc-seg button.on{background:var(--t-accent,#f4b860);color:var(--t-accent-text,#1a1206)}
.phc-input{display:flex;border:1px solid var(--t-border,rgba(255,255,255,.14));border-radius:10px;overflow:hidden}
.phc-input input{flex:1;min-width:0;background:#0c1017;border:0;color:var(--t-text,#fff);font-size:16px;padding:9px 12px}
.phc-input span{padding:9px 14px;border-left:1px solid var(--t-border,rgba(255,255,255,.14));color:var(--t-text2,#c3c9d4)}
/* Colonne de gauche (≈220 px) : version compacte, icône au-dessus */
.phc-side{padding:12px;margin:0}
.phc-side .phc-title{font-size:16px}.phc-side .phc-bag{width:30px;height:30px;flex-basis:30px;font-size:16px}
.phc-side .phc-priv > span{font-size:0}.phc-side .phc-priv small{display:none}
.phc-side .phc-box{padding:9px 10px;gap:8px}
.phc-side .phc-two .phc-box{flex-direction:column;align-items:flex-start;gap:4px}
.phc-side .phc-two .phc-ico{width:18px;height:18px}
.phc-side small{font-size:11px}
.phc-side .phc-box b{font-size:14px}
.phc-side .phc-avail b{font-size:22px}.phc-side .phc-avail .phc-ico{width:26px;height:26px}
.phc-side .phc-crypto span{font-size:12.5px}.phc-side .phc-crypto b{font-size:13px}
.phc-side .phc-q .phc-qv,.phc-side .phc-q .phc-qv b{font-size:14px}
.phc-side .phc-sec{font-size:11px;margin:12px 0 6px}
.phc-side .phc-seg button{font-size:12px;padding:7px 4px}
@media(max-width:420px){.phc{padding:12px}.phc-box b{font-size:17px}.phc-avail b{font-size:26px}.phc-q .phc-qv,.phc-q .phc-qv b{font-size:16px}.phc-box{padding:10px;gap:8px}.phc-ico{width:20px;height:20px}}
/* Colonne de gauche : version resserrée pour tenir dans la colonne figée */
.phc-side{padding:10px}
.phc-side .phc-head{margin-bottom:8px}
.phc-side .phc-sec{margin:9px 0 5px}
.phc-side .phc-two{gap:6px}
.phc-side .phc-box{padding:7px 9px}
.phc-side .phc-two .phc-box{gap:2px}
.phc-side .phc-two .phc-ico{display:none}
.phc-side .phc-crypto{margin-top:6px}
.phc-side .phc-q{flex-direction:row!important;align-items:center!important;gap:6px!important}
.phc-side .phc-q .phc-ico{display:block!important;width:15px;height:15px}
.phc-side .phc-q small{display:none}
.phc-side .phc-col{gap:6px;margin-bottom:6px}
.phc-side .phc-lbl{font-size:11.5px!important}
.phc-side .phc-input input,.phc-side .phc-input span{padding:6px 9px;font-size:13px}

/* ═══ Page « Mes gains » (8 oct 2026) ═══ */
.phc-more{display:block;margin-top:12px;text-align:center;background:var(--t-accent,#f4b860);color:var(--t-accent-text,#1a1206)!important;font-weight:700;border-radius:10px;padding:10px;text-decoration:none!important}
.phc-more:hover{background:var(--t-accent,#ffc877)}
.phg{max-width:1240px;margin:22px auto 90px;padding:0 18px;color:var(--t-text,#e6e9ef)}
.phg-i{width:22px;height:22px;flex:0 0 auto;color:#aeb6c4}
.phg-i.neg{color:#f47b6f}
.phg-top{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;flex-wrap:wrap;margin-bottom:18px}
.phg-titlebox{display:flex;gap:16px;align-items:center}
.phg-bag{width:62px;height:62px;display:flex;align-items:center;justify-content:center;font-size:32px;border:1px solid var(--t-border,rgba(255,255,255,.14));border-radius:14px;background:var(--t-card,#161b24)}
.phg h1{margin:0;font-size:30px;font-weight:700;display:flex;align-items:center;gap:16px;flex-wrap:wrap}
.phg-priv{display:inline-flex;align-items:center;gap:6px;font-size:14px;font-weight:500;color:var(--t-text2,#c3c9d4)}.phg-priv .phg-i{width:16px;height:16px}
.phg-titlebox p{margin:4px 0 0;color:var(--t-text2,#c3c9d4);font-size:16px}
.phg-actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.phg-actions select,.phg-filters select,.phg-btn{background:var(--t-strip,#11151d);border:1px solid var(--t-border,rgba(255,255,255,.16));color:var(--t-text,#e6e9ef);border-radius:10px;padding:10px 14px;font-size:15px}
.phg-btn{display:inline-flex;align-items:center;gap:8px;text-decoration:none!important;font-weight:600}.phg-btn .phg-i{width:18px;height:18px}
.phg-kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:18px}
.phg-kpi{display:flex;align-items:center;gap:16px;background:var(--t-card,#161b24);border:1px solid var(--t-border,rgba(255,255,255,.12));border-radius:14px;padding:22px 24px}
.phg-kpi .phg-i{width:40px;height:40px}
.phg-kpi small{display:block;font-size:15px;color:var(--t-text2,#c3c9d4)}
.phg-kpi b{display:block;font-size:30px;font-weight:700;font-variant-numeric:tabular-nums;white-space:nowrap}
.phg .pos,.phg .pos b{color:var(--t-pos,#5fe3a1)}.phg .neg,.phg .neg b{color:#f47b6f}
.phg-tabs{display:flex;gap:6px;border-bottom:1px solid var(--t-border,rgba(255,255,255,.12));margin-bottom:16px;overflow-x:auto}
.phg-tabs a{display:flex;align-items:center;gap:8px;padding:12px 18px;color:var(--t-text2,#c3c9d4);text-decoration:none!important;font-weight:600;border-bottom:3px solid transparent;white-space:nowrap}
.phg-tabs a.on{color:var(--t-link,#f4b860);border-bottom-color:var(--t-accent,#f4b860)}.phg-tabs a.on .phg-i{color:var(--t-link,#f4b860)}
.phg-filters{display:grid;grid-template-columns:1fr 1fr 1fr;gap:12px;margin-bottom:14px}
.phg-search{display:flex;align-items:center;gap:8px;background:var(--t-strip,#11151d);border:1px solid var(--t-border,rgba(255,255,255,.16));border-radius:10px;padding:0 12px}
.phg-search input{flex:1;background:transparent;border:0;color:var(--t-text,#fff);padding:10px 0;font-size:15px;outline:none}
.phg-table{background:var(--t-card,#161b24);border:1px solid var(--t-border,rgba(255,255,255,.12));border-radius:14px;overflow:hidden}
.phg-table table{width:100%;border-collapse:collapse}
.phg-table th{text-align:left;font-weight:600;color:var(--t-text2,#c3c9d4);padding:14px 16px;border-bottom:1px solid var(--t-border,rgba(255,255,255,.1));white-space:nowrap}
.phg-table th a{color:inherit;text-decoration:none!important}.phg-table th a.on{color:var(--t-text,#fff)}
.phg-table td{padding:13px 16px;border-bottom:1px solid var(--t-border,rgba(255,255,255,.07));font-variant-numeric:tabular-nums}
.phg-table .num{text-align:right}
.phg-table tbody tr{cursor:pointer;transition:background .15s}
.phg-table tbody tr:hover{background:rgba(255,255,255,.03)}
.phg-table tbody tr.sel{background:var(--t-btn2-bg,rgba(244,184,96,.06));box-shadow:inset 0 0 0 2px #f4b860}
.phg-pub{display:flex;align-items:center;gap:12px;font-weight:700}
.phg-pub span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:420px}
.phg-pub em{font-style:normal;font-size:12px;font-weight:700;padding:3px 10px;border-radius:999px;border:1px solid var(--t-border,rgba(255,255,255,.2));background:#1f2632;color:var(--t-text,#dfe3ea)}
.phg-pub em.art{border-color:var(--t-accent,rgba(244,184,96,.5));color:var(--t-link,#f4b860)}
.phg-chev{color:var(--t-text2,#c3c9d4);font-size:20px;text-align:center}
.phg-empty{text-align:center;color:var(--t-text2,#9aa3b2);padding:26px!important}
.phg-foot{padding:12px 16px;color:var(--t-text2,#9aa3b2);font-size:14px}.phg-foot span{margin:0 10px;opacity:.5}
.phg-detail{margin-top:16px;border:2px solid var(--t-accent,#f4b860);border-radius:14px;padding:16px;background:var(--t-card,#161b24)}
.phg-dhead{display:flex;align-items:center;gap:10px;font-size:17px;margin-bottom:14px;flex-wrap:wrap}
.phg-openlink{margin-left:auto;color:var(--t-link,#f4b860)!important;font-weight:700;text-decoration:none!important}
.phg-close{color:var(--t-text2,#c3c9d4)!important;font-size:20px;text-decoration:none!important;margin-left:14px}
.phg-dgrid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}
.phg-dcard{display:flex;gap:12px;background:var(--t-strip,#11151d);border:1px solid var(--t-border,rgba(255,255,255,.12));border-radius:12px;padding:14px}
.phg-dcard .phg-i{width:28px;height:28px}
.phg-dcard > div{flex:1;min-width:0}
.phg-dcard small{display:block;color:var(--t-text2,#9aa3b2);font-size:13px;padding-bottom:8px;margin-bottom:8px;border-bottom:1px solid var(--t-border,rgba(255,255,255,.1))}
.phg-dcard ul{list-style:none;margin:0;padding:0;font-size:14px}
.phg-dcard li{display:flex;justify-content:space-between;gap:8px;padding:3px 0;color:var(--t-text,#dfe3ea)}
.phg-dcard li span{color:var(--t-pos,#5fe3a1);font-weight:700;white-space:nowrap}
.phg-na{color:var(--t-text2,#9aa3b2);font-size:13px;margin:0}
.phg-note{color:var(--t-text2,#c3c9d4);margin-top:14px}
@media (max-width:1000px){.phg-kpis,.phg-dgrid{grid-template-columns:1fr 1fr}.phg-filters{grid-template-columns:1fr}}
/* Téléphone : chaque ligne devient une carte avec ses compteurs en petites cases */
@media (max-width:700px){
  .phg{padding:0 10px;margin-top:12px}
  .phg h1{font-size:24px}.phg-bag{width:48px;height:48px;font-size:24px}
  .phg-kpi{padding:14px;gap:10px}.phg-kpi .phg-i{width:28px;height:28px}.phg-kpi b{font-size:20px}.phg-kpi small{font-size:13px}
  .phg-table{background:transparent;border:0}
  .phg-table thead{display:none}
  .phg-table table,.phg-table tbody{display:block}
  .phg-table tbody tr{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;background:var(--t-card,#161b24);border:1px solid var(--t-border,rgba(255,255,255,.12));border-radius:12px;padding:12px;margin-bottom:10px}
  .phg-table td{display:block;border:0;padding:6px 8px;background:var(--t-strip,#11151d);border-radius:8px;text-align:left!important;font-size:14px}
  .phg-table td[data-l]::before{content:attr(data-l);display:block;font-size:11px;color:var(--t-text2,#9aa3b2)}
  .phg-table td.phg-pub{grid-column:1/-1;background:transparent;padding:0 0 4px}
  .phg-table td.phg-chev{display:none}
  .phg-pub span{white-space:normal}
  .phg-dgrid{grid-template-columns:1fr}
}
.phg-kpis{grid-template-columns:repeat(4,minmax(0,1fr))}.phg-kpi>div{min-width:0}@media (max-width:1000px){.phg-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* ═══ Écrire : Post / Article (profil) + éditeur d’articles ═══ */
.phx{background:var(--t-card,#161b24);border:1px solid var(--t-border,rgba(255,255,255,.12));border-radius:14px;padding:12px 14px;margin:14px 0}
.phx-tabs{display:flex;align-items:center;gap:6px;margin-bottom:10px;flex-wrap:wrap}
.phx-tabs button{background:var(--t-strip,#11151d);border:1px solid var(--t-border,rgba(255,255,255,.12));color:var(--t-text2,#c3c9d4);border-radius:999px;padding:7px 14px;font-weight:700;cursor:pointer}
.phx-tabs button small{font-weight:500;opacity:.8;margin-left:4px}
.phx-tabs button.on{background:var(--t-accent,#f4b860);border-color:var(--t-accent,#f4b860);color:var(--t-accent-text,#1a1206)}
.phx-q{margin-left:auto;font-size:12px;color:var(--t-text2,#9aa3b2)}
.phx textarea{width:100%;background:var(--t-strip,#11151d);border:1px solid var(--t-border,rgba(255,255,255,.12));border-radius:10px;color:var(--t-text,#e6e9ef);padding:10px 12px;resize:vertical;font:inherit}
.phx-foot{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-top:8px;flex-wrap:wrap}
.phx-drafts{margin-top:10px;display:flex;flex-direction:column;gap:4px;font-size:14px}
.phx-drafts a{color:var(--t-link,#f4b860)}.phx-drafts small{color:var(--t-text2,#9aa3b2);margin-left:6px}
.phe-new{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin-top:10px}
.phe-addr{color:var(--t-link,#8fb8ff);font-weight:700}.phe-addr.big{font-size:18px}
.phe-new input,.phe-title{background:var(--t-strip,#11151d);border:1px solid var(--t-border,rgba(255,255,255,.16));color:var(--t-link,#f4b860);font-weight:700;border-radius:8px;padding:8px 10px;min-width:12em}
.phe-head{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:12px}
.phe-badge{font-size:12px;font-weight:700;padding:4px 10px;border-radius:999px;background:var(--t-btn2-bg,rgba(244,184,96,.15));color:var(--t-link,#f4b860)}
.phe-badge.pub{background:rgba(95,227,161,.15);color:var(--t-pos,#5fe3a1)}
.phe-view{margin-left:auto;color:var(--t-link,#f4b860);font-weight:700}
.phe-body{width:100%;min-height:420px;background:var(--t-strip,#11151d);border:1px solid var(--t-border,rgba(255,255,255,.12));border-radius:10px;color:var(--t-text,#e6e9ef);padding:14px;line-height:1.65;font-size:15px;resize:vertical;font-family:inherit}
.phe-meta{font-size:12px;color:var(--t-text2,#9aa3b2);margin:6px 2px 10px}
.phe-actions{display:flex;gap:8px}
.phe-publish{margin-top:18px;padding-top:14px;border-top:1px dashed var(--t-accent,rgba(244,184,96,.4))}
.phe-publish textarea{width:100%;background:var(--t-strip,#11151d);border:1px solid var(--t-border,rgba(255,255,255,.12));border-radius:10px;color:var(--t-text,#e6e9ef);padding:10px;margin:6px 0 10px;font:inherit}
.phe-newbtn{display:block;text-align:center;margin-bottom:10px}
.phe-item{display:flex;flex-direction:column;padding:8px 10px;border-radius:8px;text-decoration:none!important;color:var(--t-text,#e6e9ef)}
.phe-item:hover,.phe-item.on{background:var(--t-btn2-bg,rgba(244,184,96,.08))}.phe-item small{color:var(--t-text2,#9aa3b2)}

/* ═══ Vitrine d’articles (profil) + bouton Écrire ═══ */
.phs-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px}
.phs-list li{display:flex;flex-direction:column;gap:2px;font-size:14px;line-height:1.35}
.phs-list .art-addr{white-space:normal;word-break:break-word}
.phs-list small{color:var(--text-muted);font-size:11.5px}
.phs-empty{font-size:13px;color:var(--text-muted);margin:0}
.phs-manage{margin-top:10px;border-top:1px solid var(--t-border,rgba(255,255,255,.08));padding-top:8px;font-size:13px}
.phs-manage summary{cursor:pointer;color:var(--t-link,#f4b860);font-weight:600}
.phs-manage label{display:flex;align-items:center;gap:6px;margin-top:6px;cursor:pointer}
.phs-saved{display:block;color:var(--t-pos,#5fe3a1);margin-top:6px}
.phs-new{display:block;margin-top:10px;font-size:13px;color:var(--t-link,#f4b860);font-weight:600}
@media (min-width:769px){.phs-main{display:none}}
.phx{padding:0;overflow:hidden}
.phx-toggle{width:100%;display:flex;align-items:center;gap:10px;background:transparent;border:0;color:var(--t-link,#f4b860);font-weight:700;font-size:15px;padding:12px 14px;cursor:pointer;text-align:left}
.phx-toggle small{color:var(--t-text2,#9aa3b2);font-weight:500;font-size:12px}
.phx-arrow{margin-left:auto;transition:transform .2s}
.phx.open .phx-arrow{transform:rotate(180deg)}
.phx-body{display:none;padding:0 14px 12px}
.phx.open .phx-body{display:block}
.phx-gohome{display:block;text-align:center;background:var(--t-card,#161b24);border:1px dashed var(--t-accent,rgba(244,184,96,.45));border-radius:12px;padding:10px;margin-bottom:14px;color:var(--t-link,#f4b860)!important;font-weight:700;text-decoration:none!important}
.phx-gohome:hover{background:var(--t-btn2-bg,rgba(244,184,96,.07))}
.ph-own-act{margin-left:auto;background:transparent;border:1px solid var(--t-border,rgba(255,255,255,.14));color:var(--t-text2,#c3c9d4);border-radius:8px;padding:4px 10px;cursor:pointer;font-size:13px}.ph-own-act:hover{border-color:#f28b82;color:var(--t-neg,#f28b82)}.like-btn.liked{color:var(--t-neg,#f28b82)}.repost-btn.reposted{color:var(--t-pos,#5fe3a1)}

/* ═══ Mes gains par interaction (maquette du 8 oct 2026) ═══ */
.phg-kpis[hidden]{display:none}
.phi-head{display:flex;justify-content:space-between;align-items:center;gap:18px;flex-wrap:wrap;margin:6px 0 18px}
.phi-head h2{margin:0;font-size:34px;font-weight:700;letter-spacing:-.4px}
.phi-head p{margin:4px 0 0;color:var(--t-text2,#aab3c2);font-size:18px}
.phi-total{display:grid;grid-template-columns:auto auto;align-items:center;column-gap:16px;background:var(--t-card,#161b24);border:1px solid var(--t-border,rgba(255,255,255,.12));border-radius:14px;padding:12px 22px}
.phi-total small{grid-column:1/-1;font-size:13px;letter-spacing:1.2px;text-transform:uppercase;color:var(--t-text2,#c3c9d4)}
.phi-total b{font-size:34px;font-weight:700;color:var(--t-pos,#5fe3a1);font-variant-numeric:tabular-nums}
.phi-total span{font-size:13px;color:var(--t-text2,#9aa3b2);border-left:1px solid var(--t-border,rgba(255,255,255,.15));padding-left:14px}
.phi-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.phi-card{background:var(--t-card,#161b24);border:1px solid var(--t-border,rgba(255,255,255,.12));border-radius:14px;padding:20px;display:flex;flex-direction:column;gap:14px}
.phi-card.on{border-color:var(--t-accent,#f4b860);box-shadow:0 0 0 1px #f4b860 inset}
.phi-top{display:flex;align-items:center;gap:18px;padding-bottom:14px;border-bottom:1px solid var(--t-border,rgba(255,255,255,.1))}
.phi-ic{width:52px;height:52px;flex:0 0 52px;color:var(--t-link,#f4b860)}
.phi-top b{display:block;font-size:21px;font-weight:700;letter-spacing:.4px}
.phi-top span{display:block;color:var(--t-text2,#c3c9d4);font-size:15px;margin-top:2px}
.phi-nums{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.phi-nums > div{background:var(--t-strip,#11151d);border:1px solid var(--t-border,rgba(255,255,255,.1));border-radius:10px;padding:12px 18px}
.phi-nums small{display:block;color:var(--t-text2,#c3c9d4);font-size:14px}
.phi-nums b{display:block;font-size:28px;font-weight:700;font-variant-numeric:tabular-nums;white-space:nowrap}
.phi-nums b.pos{color:var(--t-pos,#5fe3a1)}
.phi-more{color:var(--t-link,#f4b860)!important;font-weight:600;text-decoration:none!important}
.phi-more:hover{text-decoration:underline!important}
.phi-detail{margin-top:18px;border:2px solid var(--t-accent,#f4b860);border-radius:14px;padding:16px;background:var(--t-card,#161b24)}
.phi-dhead{display:flex;align-items:center;gap:12px;font-size:20px;margin-bottom:12px}
.phi-dhead .phi-ic{width:30px;height:30px;flex-basis:30px}
.phi-dhead .phg-close{margin-left:auto;transform:rotate(0)}
.phi-foot{text-align:center;color:var(--t-text2,#9aa3b2);font-size:13px;margin-top:20px}
.phi-foot a,.phi-back{color:var(--t-link,#f4b860)!important}
@media (max-width:1100px){.phi-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:700px){.phi-grid{grid-template-columns:1fr}.phi-head h2{font-size:26px}.phi-total b{font-size:26px}.phi-nums b{font-size:22px}.phi-ic{width:40px;height:40px;flex-basis:40px}}
.ph-langs{display:inline-flex;gap:2px;margin-left:10px;background:rgba(0,0,0,.25);border-radius:999px;padding:2px}.ph-langs a{padding:2px 8px;border-radius:999px;font-size:11.5px;color:var(--t-link,#f4d9a6)!important}.ph-langs a.on{background:var(--t-accent,#f4b860);color:var(--t-accent-text,#1a1206)!important}

/* ══ Thèmes (10 oct 2026) : compléments pour les fichiers de style récents (profil v2, composeur, éditeur, gains) ══ */
html[data-theme] { --t-pos:#3ee08f; --t-neg:#ff8a8a; }
html:is([data-theme="clair"],[data-theme="voice-clair"]) { --t-pos:#15803d; --t-neg:#c62828; }
/* Boutons posés sur l'image de couverture et lettre de l'avatar : toujours en blanc */
.pv-cover-act .pv-btn-ghost { color:#ffffff !important; }
html[data-theme] .pv-av span { color:#ffffff !important; }
/* Couverture par défaut : le dégradé du thème (bleu de Voice) */
html[data-theme] .pv-cover:not(.has-img) { background-image: var(--t-cover) !important; }
/* Barre « FORUM DE TEST » : garde ses couleurs propres (fond brun) quel que soit le thème */
html[data-theme] .ph-testbar, html[data-theme] .ph-testbar :is(b, span, strong, small) { color:#f4e3c0 !important; -webkit-text-fill-color:#f4e3c0 !important; }
html[data-theme] .ph-testbar a { color:#ffd28a !important; -webkit-text-fill-color:#ffd28a !important; }
/* Thèmes clairs : or et ambre plus foncés pour rester lisibles sur fond blanc */
html:is([data-theme="clair"],[data-theme="voice-clair"]) .repost-banner-head a { color:#a8650a !important; }
/* Anciennes variables du forum alignées sur le thème (Voice et Clair seulement : les autres thèmes ne changent pas) */
html:is([data-theme^="voice"],[data-theme="clair"]) {
    --bg-deep:var(--t-bg); --bg-card:var(--t-card); --bg-card2:var(--t-strip); --bg-input:var(--t-input); --card:var(--t-card);
    --border:var(--t-border); --border-h:var(--t-text2); --text:var(--t-text); --text-sec:var(--t-text2); --text-muted:var(--t-text2);
    --accent1:var(--t-accent); --accent3:var(--t-link); --grad-main:var(--t-accent); --glow-sm:var(--t-nav-active);
}
html:is([data-theme="clair"],[data-theme="voice-clair"]) .ph-pos, html:is([data-theme="clair"],[data-theme="voice-clair"]) .ph-gain b { color: var(--t-pos) !important; }
/* Thèmes (10 oct 2026) : derniers textes écrits en dur pour le fond sombre */
html[data-theme] .ph-testbar :is(b, span, strong, small, .ph-plan):not(#ph-z) { color:#f4e3c0 !important; -webkit-text-fill-color:#f4e3c0 !important; }
html:is([data-theme^="voice"],[data-theme="clair"]) .phc-sec { color: var(--t-text2); }
html:is([data-theme^="voice"],[data-theme="clair"]) .phc-sec::after { background: var(--t-border); }
html:is([data-theme^="voice"],[data-theme="clair"]) .phg-pub em { background: var(--t-strip); }
html:is([data-theme="clair"],[data-theme="voice-clair"]) .lose-btn { color: var(--t-neg) !important; }
html:is([data-theme^="voice"],[data-theme="clair"]) .alert-info { background: var(--t-btn2-bg); color: var(--t-btn2-text); border-left-color: var(--t-accent); }
/* Sélecteur de langue de la barre de test : couleurs propres à la barre, quel que soit le thème */
html .ph-testbar .ph-langs a:not(#ph-z) { color:#f4d9a6 !important; -webkit-text-fill-color:#f4d9a6 !important; }
html .ph-testbar .ph-langs a.on:not(#ph-z) { background:#f4b860 !important; color:#1a1206 !important; -webkit-text-fill-color:#1a1206 !important; }
/* Ordinateur, thèmes clairs : petits textes gris des colonnes de côté */
html:is([data-theme="clair"],[data-theme="voice-clair"]) .side-me-sub { color: var(--t-text2) !important; }
html:is([data-theme="clair"],[data-theme="voice-clair"]) .status-badge-v5 { color: var(--t-text2) !important; }
/* Voice clair : le menu 🎨 est rangé dans la barre du haut (texte blanc) → son propre texte reste foncé */
html[data-theme="voice-clair"] .header .theme-menu :is(button, span, div):not(#ph-z) { color: var(--t-text) !important; -webkit-text-fill-color: var(--t-text) !important; }
html[data-theme="voice-clair"] .header .theme-menu .theme-menu-title:not(#ph-z) { color: var(--t-text2) !important; -webkit-text-fill-color: var(--t-text2) !important; }
html[data-theme="voice-clair"] .header .theme-menu button:not(#ph-z) { background: var(--t-card) !important; }
html[data-theme="voice-clair"] .header .theme-menu .theme-seg button.on:not(#ph-z) { background: var(--t-btn2-bg) !important; }

/* ══ 11 oct 2026 : messages sur toute la largeur. La colonne de catégorie à gauche (₿, 📈…) est remplacée par
   une fine bande de couleur sur le bord gauche + une étiquette discrète dans l'en-tête du message. ══ */
.post-card > .post-vignette { display: none !important; }
.post-card[class*="cat-"] { --cat: var(--t-accent, #f4b860); box-shadow: inset 3px 0 0 var(--cat) !important; }
.post-card.cat-crypto  { --cat: #f59e0b; }
.post-card.cat-defi    { --cat: #14b8a6; }
.post-card.cat-trading { --cat: #22c55e; }
.post-card.cat-nft     { --cat: #8b5cf6; }
.post-card[class*="cat-"] > .post-body-wrap { padding-left: 20px; }
.post-cat {
    margin-left: auto; flex: 0 0 auto; display: inline-flex; align-items: center; gap: 4px;
    font-size: 11.5px; font-weight: 700; letter-spacing: .02em; line-height: 1;
    padding: 4px 9px; border-radius: 999px; white-space: nowrap;
    color: var(--cat, var(--t-text2, #9aa3b2));
    background: color-mix(in srgb, var(--cat, #888) 14%, transparent);
    border: 1px solid color-mix(in srgb, var(--cat, #888) 35%, transparent);
}
.post-cat + .post-delete-btn, .post-cat + .ph-own-act { margin-left: 8px; }
@media (max-width: 640px) {
    .post-card[class*="cat-"] > .post-body-wrap { padding-left: 14px; }
    .post-cat { font-size: 10.5px; padding: 3px 7px; }
}
/* 11 oct 2026 : l'heure du message passe en bas, à côté de ♥ 👎 ↺ 💬 */
.post-when { margin-left: auto; align-self: center; font-size: 12px; color: var(--t-text2, #9aa3b2); white-space: nowrap; padding-left: 8px; }

/* ══ 13 oct 2026 : vidéos YouTube sous les messages (lecteur proportionné, Short en vertical) + champ du bloc d'écriture ══ */
.video-embed.yt { aspect-ratio: 16 / 9; height: auto; margin: 10px 0 4px; border-radius: 12px; box-shadow: 0 4px 14px rgba(0,0,0,.22); }
.video-embed.yt iframe { width: 100%; height: 100%; border: 0; display: block; }
.video-embed.yt-short { aspect-ratio: 9 / 16; width: min(300px, 70%); margin-left: auto; margin-right: auto; }
.phx-vid { margin: 6px 0 2px; }
.phx-vid-t { background: transparent; border: 1px dashed var(--t-border, rgba(255,255,255,.2)); color: var(--t-text2, #9aa3b2); border-radius: 9px; padding: 6px 12px; font-size: 13px; font-weight: 600; cursor: pointer; }
.phx-vid-t:hover, .phx-vid-t.on { color: var(--t-link, #f4b860); border-color: var(--t-link, #f4b860); }
.phx-vid-b { margin-top: 8px; display: flex; flex-direction: column; gap: 6px; }
.phx-vid-b[hidden], .phx-vid-p[hidden], .phx-vid-e[hidden] { display: none; }
.phx-vid-b input { width: 100%; min-width: 0; padding: 9px 11px; border-radius: 9px; border: 1px solid var(--t-border, rgba(255,255,255,.18)); background: var(--t-card, #141a24); color: var(--t-text, #fff); font-size: 14px; }
.phx-vid-p { display: flex; align-items: center; gap: 10px; padding: 6px; border-radius: 10px; background: var(--t-strip, rgba(255,255,255,.04)); font-size: 13px; color: var(--t-pos, #3ee08f); }
.phx-vid-p img { width: 96px; aspect-ratio: 16 / 9; object-fit: cover; border-radius: 7px; flex: 0 0 auto; }
.phx-vid-p span { flex: 1; min-width: 0; }
.phx-vid-x { background: transparent; border: 0; color: var(--t-text2, #9aa3b2); cursor: pointer; font-size: 15px; padding: 4px 8px; }
.phx-vid-e { color: var(--t-neg, #ff8a8a); font-size: 12.5px; }

/* ── Bloc « moi » (colonne de gauche) : clic → menu du compte (13 oct 2026) ── */
.side-me-wrap { position: relative; z-index: 70; padding: 0; overflow: visible; }
.side-me-wrap .side-me { width: 100%; padding: 14px 16px; border: 0; background: transparent; color: inherit;
    font: inherit; cursor: pointer; border-radius: var(--radius); transition: background .15s; }
.side-me-wrap .side-me:hover, .side-me-wrap .side-me.open { background: rgba(127,127,127,0.10); }
.side-me-wrap .side-me:focus-visible { outline: 2px solid var(--accent1); outline-offset: -2px; }
.side-me-chev { color: var(--text-muted); font-size: 13px; transition: transform .18s; flex: 0 0 auto; }
.side-me.open .side-me-chev { transform: rotate(180deg); }
.side-me-menu { position: absolute; left: 0; right: 0; top: calc(100% + 6px); z-index: 60; padding: 6px;
    background: var(--t-card, var(--bg-card)); border: 1px solid var(--t-border, var(--border)); border-radius: 12px;
    box-shadow: 0 12px 30px rgba(0,0,0,0.28); animation: sideMeIn .14s ease-out; }
.side-me-menu[hidden] { display: none; }
@keyframes sideMeIn { from { opacity: 0; transform: translateY(-4px); } to { opacity: 1; transform: none; } }
.side-me-menu a, .side-me-menu button { display: flex; align-items: center; gap: 10px; width: 100%; padding: 9px 10px;
    border: 0; border-radius: 8px; background: transparent; color: var(--t-text, var(--text)); font: inherit; font-size: 14px;
    text-align: left; text-decoration: none; cursor: pointer; }
.side-me-menu a span, .side-me-menu button span { width: 20px; text-align: center; flex: 0 0 auto; }
.side-me-menu a:hover, .side-me-menu button:hover, .side-me-menu a:focus-visible, .side-me-menu button:focus-visible { background: rgba(127,127,127,0.12); outline: none; }
.side-me-sep { height: 1px; margin: 5px 4px; background: var(--t-border, var(--border)); }
.side-me-menu .side-me-out { color: #e5534b; font-weight: 600; }
.side-me-menu .side-me-out:hover { background: rgba(229,83,75,0.12); }
.side-me-menu .side-me-switch { display: flex; align-items: center; gap: 10px; padding: 9px 10px; border-radius: 8px; cursor: pointer;
    font-size: 14px; color: var(--t-text, var(--text)); line-height: 1.25; }
.side-me-menu .side-me-switch:hover { background: rgba(127,127,127,0.12); }
.side-me-switch > span { width: 20px; text-align: center; flex: 0 0 auto; }
.side-me-switch input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.side-me-switch i { margin-left: auto; flex: 0 0 auto; width: 32px; height: 18px; border-radius: 10px; background: rgba(127,127,127,0.35);
    position: relative; transition: background .15s; }
.side-me-switch i::after { content: ""; position: absolute; top: 2px; left: 2px; width: 14px; height: 14px; border-radius: 50%; background: #fff; transition: transform .15s; }
.side-me-switch input:checked + i { background: var(--accent1); }
.side-me-switch input:checked + i::after { transform: translateX(14px); }
.side-me-switch input:focus-visible + i { outline: 2px solid var(--accent1); outline-offset: 2px; }

/* ── Traduction des messages (13 oct 2026) : lien discret sous le texte ── */
.tr-bar { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; margin: 4px 0 2px; font-size: 12.5px; }
.tr-btn { border: 0; background: transparent; padding: 2px 0; color: var(--accent1); font: inherit; font-weight: 600; cursor: pointer; }
.tr-btn:hover { text-decoration: underline; }
.tr-btn:disabled { opacity: .6; cursor: progress; text-decoration: none; }
.tr-note { color: var(--text-muted); }
.tr-on { border-left: 2px solid var(--accent1); padding-left: 8px; }

/* ── Fond du site choisi dans le menu 🎨 (14 oct 2026) : uni, dégradé, motif ou couleur au choix ──
   Le fond est peint sur la couche fixe html::before (ne défile pas) ; le reste de la page laisse voir ce fond. */
html[data-bg][data-bg]:root::before { background: var(--z-bg) !important; background-attachment: scroll !important; }
html[data-bg]::after { display: none !important; }
html[data-bg][data-bg] body { background: transparent !important; }
.theme-menu { width: 292px; max-height: calc(100vh - 76px); overflow-y: auto; overscroll-behavior: contain; }
.theme-bg-row { display: flex; align-items: center; gap: 8px; margin-bottom: 8px; }
.theme-bg-row > span { flex: 0 0 62px; font-size: 12px; color: var(--t-text2, var(--text-muted)); }
.theme-bg-sw { display: flex; flex-wrap: wrap; gap: 6px; min-width: 0; }
.theme-bg-sw button, .theme-bg-pick {
    width: 26px; height: 26px; padding: 0; border-radius: 7px; cursor: pointer; flex: 0 0 auto;
    border: 1.5px solid var(--t-border, var(--border)); box-sizing: border-box;
}
.theme-bg-sw button.on, .theme-bg-pick.on { outline: 2px solid var(--t-accent, var(--accent1)); outline-offset: 2px; }
.theme-bg-pick { position: relative; overflow: hidden; display: inline-block;
    background: conic-gradient(#f43f5e, #f59e0b, #22c55e, #06b6d4, #6366f1, #d946ef, #f43f5e); }
.theme-bg-pick input { position: absolute; inset: -8px; width: 44px; height: 44px; border: 0; padding: 0; margin: 0; cursor: pointer; opacity: 0; }
.theme-bg-last > span { flex: 0 1 auto; }
.theme-bg-def { margin-left: auto; border: 1.5px solid var(--t-border, var(--border)); background: var(--t-card, var(--bg-card)); color: var(--t-text, var(--text));
    border-radius: 8px; padding: 5px 9px; font-size: 12px; cursor: pointer; white-space: nowrap; }
.theme-bg-def.on { border-color: var(--t-accent, var(--accent1)); background: var(--t-btn2-bg, rgba(127,127,127,.15)); font-weight: 700; }
/* Aperçus du fond : plus forts que la règle « boutons du menu = fond de carte » de la barre du haut en clair */
.theme-menu .theme-bg-sw button[data-tb]:not(#ph-z):not(#ph-y) { background: var(--sw) !important; }
.theme-menu .theme-bg-def.on:not(#ph-z):not(#ph-y) { background: var(--t-btn2-bg, rgba(127,127,127,.15)) !important; }

/* ══ 23 oct 2026 (Gérald) : messages et blocs « bruts » — plus de contour, ni bande de couleur à gauche, ni lueur, ni dégradé :
   seulement la couleur du bloc. :not(#ph-z) passe devant les règles des thèmes. La catégorie d'un message reste visible par
   son étiquette dans l'en-tête ; le message dont on lit les réponses n'a pas non plus de contour (Gérald, 23 oct). ══ */
.post-card:not(#ph-z), .post-card:not(#ph-z):hover, .post-main-card:not(#ph-z), .pd-top:not(#ph-z),
.widget:not(#ph-z), .widget-boost:not(#ph-z), .cat-card:not(#ph-z), .ad-sidebar-widget:not(#ph-z),
.profile-main-card:not(#ph-z), .z24-rp-box:not(#ph-z), .pv:not(#ph-z), .rp:not(#ph-z) { border-color: transparent !important; box-shadow: none !important; }
.zp:not(#ph-z) { background: var(--t-side, var(--bg-card, #16212d)) !important; border-color: transparent !important; box-shadow: none !important; }
#zp-feedslot .zp:not(#ph-z) { background: var(--t-card, var(--bg-card, #16212d)) !important; }
.zp:not(#ph-z)::after { display: none !important; }


/* ===== Emoji récents (27 oct 2026, demande de Gérald : les emoji de Windows 10 font vieux) ===== */
/* Emoji récents pour tous les appareils : Noto Color Emoji (Google, licence SIL OFL 1.1, voir fonts/emoji/OFL.txt).
   Seuls les navigateurs qui savent afficher ce format (COLRv1) la chargent ; les autres gardent leurs emoji.
   Un morceau n’est téléchargé que si la page contient un emoji de sa zone. */
@font-face{font-family:"Z24 Emoji";font-style:normal;font-weight:400;font-display:swap;src:url(fonts/emoji/e1.woff2) format("woff2") tech(color-COLRv1);unicode-range:U+1f1e6-1f1ff}
@font-face{font-family:"Z24 Emoji";font-style:normal;font-weight:400;font-display:swap;src:url(fonts/emoji/e2.woff2) format("woff2") tech(color-COLRv1);unicode-range:U+200d,U+2620,U+26a7,U+fe0f,U+1f308,U+1f38c,U+1f3c1,U+1f3f3-1f3f4,U+1f6a9,U+e0062-e0063,U+e0065,U+e0067,U+e006c,U+e006e,U+e0073-e0074,U+e0077,U+e007f}
@font-face{font-family:"Z24 Emoji";font-style:normal;font-weight:400;font-display:swap;src:url(fonts/emoji/e3.woff2) format("woff2") tech(color-COLRv1);unicode-range:U+200d,U+203c,U+2049,U+20e3,U+2139,U+23cf,U+23e9-23ef,U+23f8-23fa,U+24c2,U+2611,U+2622-2623,U+2626,U+262a,U+262e-262f,U+2638,U+2640,U+2642,U+2648-2653,U+2668,U+267b,U+267e-267f,U+2695,U+269b-269c,U+26a0,U+26a7,U+26aa-26ab,U+26ce,U+26d4,U+2705,U+2714,U+2716,U+271d,U+2721,U+2733-2734,U+2747,U+274c,U+274e,U+2753-2755,U+2757,U+2764,U+2795-2797,U+27b0,U+27bf,U+2b1b-2b1c,U+2b55,U+3030,U+303d,U+3297,U+3299,U+fe0f,U+1f170-1f171,U+1f17e-1f17f,U+1f18e,U+1f191-1f19a,U+1f201-1f202,U+1f21a,U+1f22f,U+1f232-1f23a,U+1f250-1f251,U+1f310,U+1f3a6,U+1f3b5-1f3b6,U+1f3bc,U+1f3e7,U+1f441,U+1f499-1f49c,U+1f49f-1f4a0,U+1f4ac-1f4ad,U+1f4b1-1f4b2,U+1f4b9,U+1f4db,U+1f4f2-1f4f6,U+1f500-1f507,U+1f515,U+1f518-1f524,U+1f52f-1f53d,U+1f549,U+1f54e,U+1f5a4,U+1f5e8,U+1f5ef,U+1f6ab,U+1f6ad-1f6b1,U+1f6b3,U+1f6b7-1f6bc,U+1f6be,U+1f6c2-1f6c5,U+1f6d0-1f6d1,U+1f6d7,U+1f6dc,U+1f7e0-1f7eb,U+1f7f0,U+1f90d-1f90e,U+1f9d1-1f9d2,U+1f9e1,U+1fa75-1fa77,U+1faaf}
@font-face{font-family:"Z24 Emoji";font-style:normal;font-weight:400;font-display:swap;src:url(fonts/emoji/e4.woff2) format("woff2") tech(color-COLRv1);unicode-range:U+200d,U+231a-231b,U+2328,U+23f0-23f3,U+2602,U+260e,U+2692,U+2694,U+2696-2697,U+2699,U+26b0-26b1,U+26cf,U+26d1,U+26d3,U+2702,U+2709,U+270f,U+2712,U+fe0f,U+1f302,U+1f321,U+1f392-1f393,U+1f3a9,U+1f3bd,U+1f3ee,U+1f3f7,U+1f3fa,U+1f451-1f462,U+1f484,U+1f489-1f48a,U+1f48c-1f48e,U+1f4a1,U+1f4a3,U+1f4a5,U+1f4b0,U+1f4b3-1f4b8,U+1f4bb-1f4da,U+1f4dc-1f4f1,U+1f4ff,U+1f508-1f514,U+1f516-1f517,U+1f526-1f529,U+1f52c-1f52e,U+1f550-1f567,U+1f56f-1f570,U+1f576,U+1f587,U+1f58a-1f58d,U+1f5a5,U+1f5a8,U+1f5b1-1f5b2,U+1f5c2-1f5c4,U+1f5d1-1f5d3,U+1f5dc-1f5de,U+1f5e1,U+1f5f3,U+1f6aa,U+1f6ac,U+1f6bd,U+1f6bf,U+1f6c1,U+1f6cb,U+1f6cd-1f6cf,U+1f6d2,U+1f6e0-1f6e1,U+1f6f0,U+1f97b-1f97f,U+1f9af,U+1f9ba,U+1f9e2-1f9e6,U+1f9ea-1f9ec,U+1f9ee-1f9f4,U+1f9f7-1f9ff,U+1fa71-1fa74,U+1fa79-1fa7b,U+1fa86,U+1fa8e-1fa8f,U+1fa91-1fa93,U+1fa96,U+1fa99-1faa0,U+1faa2-1faa7,U+1faaa-1faae}
@font-face{font-family:"Z24 Emoji";font-style:normal;font-weight:400;font-display:swap;src:url(fonts/emoji/e5.woff2) format("woff2") tech(color-COLRv1);unicode-range:U+265f,U+26bd-26be,U+26f3,U+26f8,U+fe0f,U+1f004,U+1f0cf,U+1f380-1f384,U+1f386-1f38b,U+1f38d-1f391,U+1f396-1f397,U+1f399-1f39b,U+1f39e-1f39f,U+1f3a3-1f3a5,U+1f3a7-1f3a9,U+1f3ab-1f3b4,U+1f3b7-1f3bb,U+1f3bd-1f3c0,U+1f3c5-1f3c6,U+1f3c8-1f3c9,U+1f3cf-1f3d3,U+1f3f8-1f3f9,U+1f47e,U+1f4e2,U+1f4f7-1f4fd,U+1f52b,U+1f579,U+1f58c-1f58d,U+1f5bc,U+1f6f7,U+1f6f9,U+1f6fc,U+1f93f,U+1f941,U+1f945,U+1f947-1f94f,U+1f9e7-1f9e9,U+1f9f5-1f9f6,U+1fa70-1fa71,U+1fa80-1fa81,U+1fa83-1fa85,U+1fa87-1fa8a,U+1fa94-1fa95,U+1fa97-1fa98,U+1faa1,U+1faa9,U+1fadf}
@font-face{font-family:"Z24 Emoji";font-style:normal;font-weight:400;font-display:swap;src:url(fonts/emoji/e6.woff2) format("woff2") tech(color-COLRv1);unicode-range:U+2693,U+26e9-26ea,U+26f1-26f2,U+26f4-26f5,U+26fa,U+26fd,U+2708,U+fe0f,U+1f301,U+1f303,U+1f306-1f307,U+1f309,U+1f310,U+1f3a0-1f3a2,U+1f3aa,U+1f3cd-1f3ce,U+1f3d5,U+1f3d7-1f3db,U+1f3df-1f3e6,U+1f3e8-1f3ed,U+1f3ef-1f3f0,U+1f488,U+1f492,U+1f4ba,U+1f54b-1f54d,U+1f5fa-1f5ff,U+1f680-1f6a2,U+1f6a4-1f6a8,U+1f6b2,U+1f6d1,U+1f6d5-1f6d6,U+1f6dd-1f6df,U+1f6e2-1f6e5,U+1f6e9,U+1f6eb-1f6ec,U+1f6f3-1f6f6,U+1f6f8,U+1f6fa-1f6fb,U+1f9bc-1f9bd,U+1f9ed,U+1f9f3,U+1fa7c}
@font-face{font-family:"Z24 Emoji";font-style:normal;font-weight:400;font-display:swap;src:url(fonts/emoji/e7.woff2) format("woff2") tech(color-COLRv1);unicode-range:U+200d,U+2615,U+fe0f,U+1f32d-1f330,U+1f336,U+1f33d,U+1f344-1f37f,U+1f382,U+1f52a,U+1f7e9,U+1f7eb,U+1f942-1f944,U+1f950-1f96f,U+1f99e,U+1f9aa,U+1f9c0-1f9cb,U+1fad0-1fadc}
@font-face{font-family:"Z24 Emoji";font-style:normal;font-weight:400;font-display:swap;src:url(fonts/emoji/e8.woff2) format("woff2") tech(color-COLRv1);unicode-range:U+200d,U+2600-2601,U+2603-2604,U+2614,U+2618,U+26a1,U+26c4-26c5,U+26c8,U+26f0,U+2728,U+2744,U+2b1b,U+2b50,U+fe0f,U+1f300,U+1f304-1f305,U+1f308,U+1f30a-1f30f,U+1f311-1f321,U+1f324-1f32c,U+1f331-1f335,U+1f337-1f33c,U+1f33e-1f344,U+1f3d4,U+1f3d6,U+1f3dc-1f3de,U+1f3f5,U+1f400-1f43f,U+1f490,U+1f4a7,U+1f4ae,U+1f525,U+1f54a,U+1f573,U+1f577-1f578,U+1f648-1f64a,U+1f6d8,U+1f940,U+1f980-1f9ae,U+1f9ba,U+1fa90,U+1faa8,U+1fab0-1fabf,U+1facd-1facf,U+1fae7}
@font-face{font-family:"Z24 Emoji";font-style:normal;font-weight:400;font-display:swap;src:url(fonts/emoji/e9.woff2) format("woff2") tech(color-COLRv1);unicode-range:U+200d,U+2640,U+2642,U+2695-2696,U+26f7,U+26f9,U+2708,U+2764,U+fe0f,U+1f33e,U+1f373,U+1f37c,U+1f384-1f385,U+1f393,U+1f3a4,U+1f3a8,U+1f3c2-1f3c4,U+1f3c7,U+1f3ca-1f3cc,U+1f3eb,U+1f3ed,U+1f3fb-1f3ff,U+1f430,U+1f466-1f469,U+1f46b-1f478,U+1f47c,U+1f481-1f483,U+1f486-1f487,U+1f48b,U+1f48f,U+1f491,U+1f4bb-1f4bc,U+1f527,U+1f52c,U+1f574-1f575,U+1f57a,U+1f645-1f647,U+1f64b,U+1f64d-1f64e,U+1f680,U+1f692,U+1f6a3,U+1f6b4-1f6b6,U+1f6c0,U+1f6cc,U+1f91d,U+1f926,U+1f930-1f931,U+1f934-1f93a,U+1f93c-1f93e,U+1f977,U+1f9af-1f9b3,U+1f9b8-1f9b9,U+1f9bc-1f9bd,U+1f9cc-1f9cf,U+1f9d1-1f9df,U+1fa70,U+1fa82,U+1fac3-1fac5,U+1fac8,U+1faef}
@font-face{font-family:"Z24 Emoji";font-style:normal;font-weight:400;font-display:swap;src:url(fonts/emoji/e10.woff2) format("woff2") tech(color-COLRv1);unicode-range:U+200d,U+2603,U+261d,U+2620,U+2639-263a,U+26a1,U+26c4,U+270a-270d,U+2728,U+2763-2764,U+2b50,U+fe0f,U+1f31a-1f31f,U+1f32b,U+1f389-1f38a,U+1f3fb-1f3ff,U+1f440-1f450,U+1f463-1f465,U+1f479-1f47b,U+1f47d-1f480,U+1f485,U+1f48b-1f48c,U+1f493-1f49f,U+1f4a2,U+1f4a4-1f4a6,U+1f4a8-1f4ab,U+1f4af,U+1f525,U+1f573,U+1f590,U+1f595-1f596,U+1f5a4,U+1f5e3,U+1f600-1f644,U+1f648-1f64a,U+1f64c,U+1f64f,U+1f90c-1f925,U+1f927-1f92f,U+1f932-1f933,U+1f970-1f976,U+1f978-1f97a,U+1f9a0,U+1f9b4-1f9b7,U+1f9bb,U+1f9be-1f9bf,U+1f9d0,U+1f9e0-1f9e1,U+1fa75-1fa79,U+1fac0-1fac2,U+1fac6,U+1fae0-1fae6,U+1fae8-1faea,U+1faef-1fafa}
@font-face{font-family:"Z24 Emoji";font-style:normal;font-weight:400;font-display:swap;src:url(fonts/emoji/e11.woff2) format("woff2") tech(color-COLRv1);unicode-range:U+1f6d9,U+1fa8b-1fa8d,U+1facc,U+1fadd,U+1faeb}
