/* ============================================================
   TOKENS — dérivés de l'identité visuelle du bot (cards.py) :
   fond quasi-noir, accent "blurple" discret, or réservé au premium.
   ============================================================ */
:root{
  --bg:#101014;
  --bg-elev:#16161c;
  --card:#1b1b22;
  --card-hover:#212129;
  --border:#2a2a34;
  --border-soft:#212129;
  --text:#f1f1f5;
  --muted:#8b8b98;
  --muted-2:#5f5f6b;
  --accent:#7289da;
  --accent-soft:rgba(114,137,218,.12);
  --accent-line:rgba(114,137,218,.35);
  --gold:#d4af37;
  --gold-soft:rgba(212,175,55,.12);
  --gold-line:rgba(212,175,55,.4);
  --danger:#e35b5b;
  --radius:14px;
  --radius-sm:8px;
  --display:'Space Grotesk',sans-serif;
  --body:'Inter',sans-serif;
  --mono:'JetBrains Mono',monospace;
  --ease:cubic-bezier(.22,.61,.36,1);
}
html[data-theme="light"]{
  --bg:#f4f4f7;
  --bg-elev:#ffffff;
  --card:#ffffff;
  --card-hover:#f0f0f4;
  --border:#e2e2ea;
  --border-soft:#ececf1;
  --text:#17171d;
  --muted:#6b6b78;
  --muted-2:#96969f;
  --accent-soft:rgba(114,137,218,.10);
}
html[data-theme="light"] body::before{
  background:
    radial-gradient(ellipse 900px 500px at 12% -10%, rgba(114,137,218,.06), transparent 60%),
    radial-gradient(ellipse 700px 500px at 100% 10%, rgba(212,175,55,.05), transparent 60%);
}
*{margin:0;padding:0;box-sizing:border-box;}
body{
  background:var(--bg);
  color:var(--text);
  font-family:var(--body);
  line-height:1.5;
  -webkit-font-smoothing:antialiased;
  min-height:100vh;
}
::selection{background:var(--accent-soft);color:var(--text);}
a{color:inherit;text-decoration:none;}
button{font-family:inherit;cursor:pointer;border:none;background:none;color:inherit;}
:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:4px;}

/* subtle noise/vignette background, no gradients-as-crutch */
body::before{
  content:'';position:fixed;inset:0;pointer-events:none;z-index:0;
  background:
    radial-gradient(ellipse 900px 500px at 12% -10%, rgba(114,137,218,.07), transparent 60%),
    radial-gradient(ellipse 700px 500px at 100% 10%, rgba(212,175,55,.04), transparent 60%);
}

/* ============================================================
   TOPBAR — deux niveaux : une barre fine (liens utilitaires) posée
   sur une barre principale (logo + statut + nav directe), sans menu
   flottant au milieu de la page.
   ============================================================ */
.bar-thin{
  display:flex;align-items:center;justify-content:flex-end;gap:22px;
  padding:8px 28px;background:#0a0a0d;border-bottom:1px solid var(--border-soft);
  font-size:12px;color:var(--muted);
}
.bar-thin a,.bar-thin button{display:flex;align-items:center;gap:6px;color:var(--muted);transition:color .15s var(--ease);}
.bar-thin a:hover,.bar-thin button:hover{color:var(--text);}
.bar-thin .divider{width:1px;height:12px;background:var(--border);}
.gear-wrap{position:relative;}
.gear-menu{
  position:absolute;top:calc(100% + 10px);right:0;min-width:200px;
  background:var(--card);border:1px solid var(--border);border-radius:var(--radius-sm);
  padding:12px;display:none;box-shadow:0 12px 32px rgba(0,0,0,.5);z-index:60;
}
.gear-menu.open{display:block;}
.gear-menu .gm-label{font-size:10px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted-2);margin-bottom:6px;padding:0 8px;font-family:var(--mono);}
.menu-row{
  display:flex;align-items:center;gap:10px;padding:9px 8px;border-radius:8px;
  cursor:pointer;transition:background .12s var(--ease);
}
.menu-row:hover{background:var(--card-hover);}
.menu-row .mr-label{flex:1;font-size:13px;color:var(--text);font-weight:500;}
.menu-row .mr-arrow{color:var(--muted-2);font-size:14px;}
.menu-sep{height:1px;background:var(--border-soft);margin:6px 4px;}

.topbar{
  position:sticky;top:0;z-index:50;
  display:flex;align-items:center;justify-content:space-between;
  padding:14px 28px;
  background:var(--bg-elev);
  border-bottom:1px solid var(--border-soft);
}
.brand{display:flex;align-items:center;gap:10px;font-family:var(--display);font-weight:600;font-size:17px;letter-spacing:-.01em;}
.brand .dot{width:7px;height:7px;border-radius:50%;background:#4ade80;box-shadow:0 0 0 4px rgba(74,222,128,.15);animation:pulse 2s infinite;}
@keyframes pulse{0%,100%{opacity:1;}50%{opacity:.4;}}
.brand .live{font-size:12px;color:var(--muted);font-weight:400;margin-left:2px;}
.main-nav{display:flex;align-items:center;gap:4px;}
.nav-link{
  padding:9px 14px;border-radius:var(--radius-sm);font-size:13px;color:var(--muted);
  transition:background .15s var(--ease),color .15s var(--ease);
}
.nav-link:hover{color:var(--text);background:var(--card-hover);}
.nav-link.active{color:var(--text);background:var(--card);}
.topbar-right{display:flex;align-items:center;gap:10px;}
.btn{
  padding:8px 16px;border-radius:var(--radius-sm);font-size:13px;font-weight:500;
  transition:all .15s var(--ease);border:1px solid transparent;
}
.btn-primary{background:var(--accent);color:#fff;}
.btn-primary:hover{background:#8296e0;}
.btn-ghost{border-color:var(--border);color:var(--muted);}
.btn-ghost:hover{border-color:var(--accent-line);color:var(--text);}
.btn-gold{background:var(--gold);color:#171308;font-weight:600;}
.btn-gold:hover{background:#e2c158;}
.btn-sm{padding:6px 12px;font-size:12px;}

main{position:relative;z-index:1;max-width:1080px;margin:0 auto;padding:0 28px 100px;}
.page-static{animation:fadeIn .35s var(--ease);}
@keyframes fadeIn{from{opacity:0;transform:translateY(6px);}to{opacity:1;transform:translateY(0);}}

/* ============================================================
   TYPOGRAPHY
   ============================================================ */
.eyebrow{font-family:var(--mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--accent);display:flex;align-items:center;gap:8px;}
.eyebrow::before{content:'';width:16px;height:1px;background:var(--accent-line);}
h1{font-family:var(--display);font-weight:600;font-size:clamp(34px,5vw,54px);line-height:1.08;letter-spacing:-.02em;margin:14px 0 16px;}
h2{font-family:var(--display);font-weight:600;font-size:26px;letter-spacing:-.01em;}
h3{font-family:var(--display);font-weight:600;font-size:16px;}
.lede{color:var(--muted);font-size:16px;max-width:520px;line-height:1.65;}
.muted{color:var(--muted);}
.mono{font-family:var(--mono);}

/* ============================================================
   HERO
   ============================================================ */
.hero{padding:76px 0 40px;display:grid;grid-template-columns:1.1fr .9fr;gap:56px;align-items:center;}
.hero-cta{display:flex;gap:10px;margin-top:26px;flex-wrap:wrap;}
.hero-stats{display:flex;gap:28px;margin-top:36px;padding-top:26px;border-top:1px solid var(--border-soft);}
.hstat b{display:block;font-family:var(--mono);font-size:22px;font-weight:600;}
.hstat span{font-size:11.5px;color:var(--muted-2);text-transform:uppercase;letter-spacing:.06em;}

/* ---- SIGNATURE ELEMENT: la carte "révélation" ----
   Reprend le cœur du produit (réponses privées → révélation groupée)
   comme micro-interaction : le contenu reste flouté jusqu'au clic. */
.reveal-card{
  background:var(--card);border:1px solid var(--border);border-radius:var(--radius);
  padding:22px;position:relative;overflow:hidden;
}
.reveal-card .rc-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px;}
.reveal-card .rc-head span{font-family:var(--mono);font-size:11px;color:var(--muted-2);}
.rc-body{display:flex;flex-direction:column;gap:10px;}
.rc-line{
  display:flex;gap:10px;align-items:flex-start;font-size:13.5px;padding:10px 12px;border-radius:8px;
  background:var(--bg-elev);filter:blur(6px);transition:filter .5s var(--ease),background .3s;
  user-select:none;
}
.reveal-card.revealed .rc-line{filter:blur(0);}
.reveal-card.revealed .rc-line{background:var(--bg-elev);}
.rc-line b{color:var(--accent);flex-shrink:0;}
.rc-trigger{
  margin-top:14px;width:100%;padding:10px;border:1px dashed var(--border);border-radius:8px;
  font-size:12px;color:var(--muted);transition:all .15s var(--ease);
}
.rc-trigger:hover{border-color:var(--accent-line);color:var(--text);}
.reveal-card.revealed .rc-trigger{display:none;}

/* ============================================================
   SECTION SHELL
   ============================================================ */
.section{padding:52px 0;border-top:1px solid var(--border-soft);}
.section-head{display:flex;justify-content:space-between;align-items:flex-end;margin-bottom:28px;gap:20px;flex-wrap:wrap;}

/* command-grid: mirrors bot slash-commands, each a small "panel" like EchoPanelView */
.cmd-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;}
.cmd-card{
  background:var(--card);border:1px solid var(--border);border-radius:var(--radius);
  padding:18px;transition:border-color .15s var(--ease),transform .15s var(--ease);
}
.cmd-card:hover{border-color:var(--accent-line);transform:translateY(-2px);}
.cmd-card .cc-tag{font-family:var(--mono);font-size:11px;color:var(--accent);background:var(--accent-soft);
  display:inline-block;padding:3px 8px;border-radius:5px;margin-bottom:10px;}
.cmd-card h3{margin-bottom:6px;}
.cmd-card p{font-size:12.5px;color:var(--muted);line-height:1.55;}

/* ============================================================
   CARD / PANEL — équivalent web des discord.ui.Container
   ============================================================ */
.panel{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;}
.panel-head{padding:18px 20px;display:flex;justify-content:space-between;align-items:center;}
.panel-head h2{font-size:17px;}
.panel-hr{height:1px;background:var(--border-soft);margin:0;}
.panel-body{padding:20px;}
.panel-foot{padding:16px 20px;font-size:11px;color:var(--muted-2);border-top:1px solid var(--border-soft);}

/* ============================================================
   LEADERBOARD
   ============================================================ */
.lb-tabs{display:flex;gap:8px;margin-bottom:18px;}
.lb-tabs button{padding:7px 14px;border-radius:99px;font-size:12.5px;border:1px solid var(--border);color:var(--muted);}
.lb-tabs button.active{background:var(--accent);border-color:var(--accent);color:#fff;}
.lb-tabs button:not(.active){background:transparent;}
.lb-row{
  display:grid;grid-template-columns:50px 1fr 78px 78px 88px;align-items:center;
  gap:6px;padding:13px 20px;font-size:13.5px;border-bottom:1px solid var(--border-soft);
  transition:background .15s var(--ease);position:relative;
}
.lb-row:last-child{border-bottom:none;}
.lb-row:hover{background:var(--bg-elev);}
.lb-row.top1{background:linear-gradient(90deg,rgba(212,175,55,.08),transparent 55%);}
.lb-row.top2{background:linear-gradient(90deg,rgba(200,203,214,.06),transparent 55%);}
.lb-row.top3{background:linear-gradient(90deg,rgba(205,127,50,.07),transparent 55%);}

.rank-badge{
  width:26px;height:26px;border-radius:50%;display:flex;align-items:center;justify-content:center;
  font-family:var(--mono);font-size:11.5px;font-weight:600;color:var(--muted-2);
  background:var(--bg-elev);border:1px solid var(--border-soft);
}
.rank-badge.gold{background:rgba(212,175,55,.16);border-color:rgba(212,175,55,.4);color:#e6c35c;}
.rank-badge.silver{background:rgba(200,203,214,.14);border-color:rgba(200,203,214,.4);color:#d9dae0;}
.rank-badge.bronze{background:rgba(205,127,50,.15);border-color:rgba(205,127,50,.4);color:#e0a068;}

.lb-who{display:flex;align-items:center;gap:12px;min-width:0;}
.lb-avatar{
  width:32px;height:32px;border-radius:50%;flex-shrink:0;
  display:flex;align-items:center;justify-content:center;
  font-family:var(--display);font-weight:600;font-size:12px;color:#fff;
  background:linear-gradient(135deg,var(--accent),#4a5a9e);
}
.lb-who-text{display:flex;flex-direction:column;gap:1px;min-width:0;}
.lb-who-text b{font-size:13.5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.lb-who-text span{font-size:11px;color:var(--muted-2);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.lb-name-link{cursor:pointer;}
.lb-name-link:hover b{text-decoration:underline;color:var(--accent);}

.lb-num{font-family:var(--mono);text-align:right;font-size:13px;color:var(--muted);}
.lb-num.active-col{color:var(--accent);font-weight:600;}
.lb-more-wrap{display:flex;justify-content:center;margin-top:14px;}
.lb-head-row{
  display:grid;grid-template-columns:50px 1fr 78px 78px 88px;padding:16px 20px 10px;
  font-size:10.5px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted-2);
}
.lb-head-row .lb-num{text-align:right;}
.lb-head-row .lb-num.active-col{color:var(--accent);}

/* ============================================================
   DASHBOARD (profil membre — mime /profil + /badges)
   ============================================================ */
.dash-grid{display:grid;grid-template-columns:280px 1fr;gap:20px;align-items:start;}
.profile-card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:22px;}
.avatar{
  width:56px;height:56px;border-radius:50%;background:linear-gradient(135deg,var(--accent),#4a5a9e);
  display:flex;align-items:center;justify-content:center;font-family:var(--display);font-weight:600;font-size:20px;
  margin-bottom:14px;
}
.avatar.premium{background:linear-gradient(135deg,var(--gold),#8a6d1a);color:#171308;}
.avatar img{width:100%;height:100%;border-radius:50%;object-fit:cover;display:block;}
.stat-row{display:flex;justify-content:space-between;padding:9px 0;border-bottom:1px solid var(--border-soft);font-size:13px;}
.stat-row:last-child{border-bottom:none;}
.stat-row b{font-family:var(--mono);}
.tag-pill{display:inline-flex;align-items:center;gap:6px;font-size:11px;padding:4px 10px;border-radius:99px;background:var(--accent-soft);color:var(--accent);margin-top:12px;}
.tag-pill.gold{background:var(--gold-soft);color:var(--gold);}
.tag-pill.red{background:rgba(227,91,91,.15);color:var(--danger);}
.tag-pill.purple{background:rgba(147,112,219,.15);color:#b399e8;}
.tag-pill.amber{background:rgba(245,158,11,.15);color:#f5b942;}

.badge-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px;}
.badge{
  background:var(--bg-elev);border:1px solid var(--border);border-radius:10px;padding:12px;
  display:flex;flex-direction:column;gap:4px;transition:border-color .15s var(--ease);
}
.badge.locked{opacity:.4;}
.badge:hover{border-color:var(--accent-line);}
.badge .b-em{font-size:20px;}
.badge b{font-size:12px;}
.badge span{font-size:10.5px;color:var(--muted-2);line-height:1.4;}

.cat-bar-wrap{display:flex;flex-direction:column;gap:10px;}
.cat-bar{display:grid;grid-template-columns:120px 1fr 34px;align-items:center;gap:10px;font-size:12px;}
.cat-track{height:6px;background:var(--bg-elev);border-radius:99px;overflow:hidden;}
.cat-fill{height:100%;background:var(--accent);border-radius:99px;}

/* ============================================================
   ADMIN
   ============================================================ */
.admin-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:20px;}
.kpi{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:18px;}
.kpi .kv{font-family:var(--mono);font-size:26px;font-weight:600;}
.kpi .kl{font-size:11px;color:var(--muted-2);text-transform:uppercase;letter-spacing:.05em;margin-top:4px;}
.admin-cols{display:grid;grid-template-columns:1fr 1fr;gap:18px;}
.list-row{display:flex;justify-content:space-between;align-items:center;gap:14px;padding:11px 20px;border-bottom:1px solid var(--border-soft);font-size:13px;transition:background .15s var(--ease);}
.list-row:hover{background:var(--bg-elev);}
.list-row:last-child{border-bottom:none;}
.az-label{display:inline-flex;align-items:center;gap:7px;min-width:0;}
.az-info{position:relative;display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;border:1px solid var(--muted-2);border-radius:50%;color:var(--muted);font-family:var(--mono);font-size:10px;font-weight:600;cursor:help;flex-shrink:0;}
.az-info:hover,.az-info:focus-visible{border-color:var(--accent);color:var(--accent);outline:none;}
.az-info-bubble{position:absolute;z-index:10;left:24px;bottom:calc(100% + 8px);width:min(300px,calc(100vw - 64px));padding:10px 12px;background:var(--card);border:1px solid var(--accent-line);border-radius:var(--radius-sm);box-shadow:0 10px 24px rgba(0,0,0,.35);color:var(--muted);font-family:var(--body);font-size:11px;font-weight:400;line-height:1.5;visibility:hidden;opacity:0;transform:translateY(4px);transition:opacity .15s var(--ease),transform .15s var(--ease),visibility .15s;pointer-events:none;}
.az-info-bubble::after{content:'';position:absolute;left:10px;bottom:-5px;width:8px;height:8px;background:var(--card);border-right:1px solid var(--accent-line);border-bottom:1px solid var(--accent-line);transform:rotate(45deg);}
.az-info:hover .az-info-bubble,.az-info:focus-visible .az-info-bubble{visibility:visible;opacity:1;transform:translateY(0);}
.az-panel-actions{display:flex;justify-content:flex-start;gap:6px;padding:10px 16px;border-top:1px solid var(--border-soft);}
.az-action{display:inline-flex;align-items:center;gap:6px;padding:5px 8px;border-radius:6px;color:var(--muted-2);font-size:11px;transition:background .15s var(--ease),color .15s var(--ease);}
.az-action:hover,.az-action:focus-visible{background:var(--accent-soft);color:var(--accent);outline:none;}
.az-date-picker{position:relative;}
.az-date-popover{position:absolute;z-index:20;left:0;bottom:calc(100% + 8px);display:none;gap:8px;align-items:flex-end;padding:12px;background:var(--card);border:1px solid var(--border);border-radius:var(--radius-sm);box-shadow:0 12px 28px rgba(0,0,0,.4);}
.az-date-popover label{display:flex;flex-direction:column;gap:5px;color:var(--muted);font-size:10px;font-family:var(--mono);}
.az-date-popover input{padding:6px 8px;border:1px solid var(--border);border-radius:6px;background:var(--bg-elev);color:var(--text);font:11px var(--body);}
.az-date-picker.open .az-date-popover{display:flex;}
.az-date-apply{padding:7px 10px;border-radius:6px;background:var(--accent);color:#fff;font-size:11px;font-weight:500;white-space:nowrap;}
.az-date-apply:hover{background:#8296e0;}
@media(max-width:560px){
  .az-panel-actions{flex-wrap:wrap;}
  .az-date-popover{flex-direction:column;align-items:stretch;}
}
.pill{font-size:10.5px;padding:2px 8px;border-radius:99px;font-family:var(--mono);}
.pill.high{background:rgba(227,91,91,.15);color:var(--danger);}
.pill.mid{background:rgba(212,175,55,.15);color:var(--gold);}
.pill.low{background:rgba(114,137,218,.15);color:var(--accent);}
.gate{
  display:flex;flex-direction:column;align-items:center;text-align:center;gap:14px;
  padding:60px 20px;background:var(--card);border:1px solid var(--border);border-radius:var(--radius);
}

/* ============================================================
   PREMIUM
   ============================================================ */
.pricing{display:grid;grid-template-columns:1fr 1fr;gap:20px;align-items:stretch;}
.plan{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:28px;display:flex;flex-direction:column;}
.plan.gold{border-color:var(--gold-line);background:linear-gradient(180deg,rgba(212,175,55,.06),transparent 40%),var(--card);position:relative;}
.plan.gold::before{
  content:'✨ RECOMMANDÉ';position:absolute;top:0;right:24px;transform:translateY(-50%);
  font-family:var(--mono);font-size:10px;letter-spacing:.08em;background:var(--gold);color:#171308;
  padding:4px 10px;border-radius:5px;font-weight:600;
}
.plan-price{display:flex;align-items:baseline;gap:6px;margin:14px 0 6px;}
.plan-price b{font-family:var(--mono);font-size:36px;font-weight:600;}
.plan-price span{color:var(--muted-2);font-size:13px;}
.plan-feat{list-style:none;margin:22px 0;display:flex;flex-direction:column;gap:11px;flex:1;}
.plan-feat li{display:flex;gap:10px;font-size:13px;color:var(--muted);align-items:flex-start;}
.plan-feat li b{color:var(--text);font-weight:500;}
.plan-feat li::before{content:'—';color:var(--accent-line);flex-shrink:0;}
.plan.gold .plan-feat li::before{color:var(--gold-line);}
.trial-note{font-size:11.5px;color:var(--muted-2);margin-top:10px;text-align:center;}

.compare{width:100%;border-collapse:collapse;margin-top:44px;font-size:13px;}
.compare th,.compare td{padding:12px 14px;text-align:left;border-bottom:1px solid var(--border-soft);}
.compare th{font-family:var(--mono);font-size:11px;text-transform:uppercase;letter-spacing:.05em;color:var(--muted-2);font-weight:500;}
.compare td.c{text-align:center;font-family:var(--mono);}
.check{color:var(--accent);}
.check.gold{color:var(--gold);}
.x{color:var(--muted-2);}

/* ============================================================
   DOCUMENTATION
   ============================================================ */
.docs-layout{display:grid;grid-template-columns:210px 1fr;gap:40px;align-items:start;}
.docs-side{position:sticky;top:90px;display:flex;flex-direction:column;gap:2px;}
.docs-side a{padding:8px 11px;border-radius:8px;font-size:13px;color:var(--muted);transition:all .15s var(--ease);}
.docs-side a:hover{background:var(--card);color:var(--text);}
.docs-side a.active{background:var(--accent-soft);color:var(--accent);}
.docs-section{margin-bottom:46px;scroll-margin-top:90px;}
.docs-section h2{margin-bottom:4px;}
.docs-section .sub{color:var(--muted-2);font-size:12.5px;margin-bottom:16px;}
.doc-cmd{padding:14px 0;border-bottom:1px solid var(--border-soft);}
.doc-cmd:last-child{border-bottom:none;}
.doc-cmd .tag{font-family:var(--mono);background:var(--accent-soft);color:var(--accent);padding:3px 9px;border-radius:5px;font-size:12px;display:inline-block;margin-bottom:7px;margin-right:6px;}
.doc-cmd .tag.team{background:var(--gold-soft);color:var(--gold);}
.doc-cmd p{font-size:13px;color:var(--muted);line-height:1.65;}
.docs-search{
  width:100%;padding:10px 14px;border-radius:var(--radius-sm);background:var(--card);
  border:1px solid var(--border);color:var(--text);font-size:13px;margin-bottom:24px;
}
.docs-search::placeholder{color:var(--muted-2);}
.doc-cmd.hidden{display:none;}

.legal-body h4{margin:22px 0 8px;font-family:var(--display);font-weight:600;font-size:14.5px;color:var(--text);}
.legal-body h4:first-child{margin-top:0;}
.legal-body p{font-size:13px;color:var(--muted);line-height:1.75;margin-bottom:8px;}
.legal-body ul{margin:6px 0 12px 18px;display:flex;flex-direction:column;gap:5px;}
.legal-body li{font-size:13px;color:var(--muted);line-height:1.7;}
.legal-body .note{font-size:12px;color:var(--muted-2);font-style:italic;border-left:2px solid var(--border);padding-left:12px;margin:10px 0;}
.legal-panel{display:none;}
.legal-panel.active{display:block;}
.legal-updated{font-size:11.5px;color:var(--muted-2);margin-bottom:0;}

.site-footer{padding:48px 28px 32px;border-top:1px solid var(--border-soft);position:relative;z-index:1;max-width:1080px;margin:0 auto;}
.footer-cols{display:grid;grid-template-columns:repeat(3,1fr);gap:32px;margin-bottom:32px;}
.footer-col{display:flex;flex-direction:column;gap:10px;}
.footer-col h4{font-family:var(--mono);font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:var(--muted-2);font-weight:600;margin-bottom:2px;}
.footer-col a{font-size:13px;color:var(--muted);transition:color .15s var(--ease);}
.footer-col a:hover{color:var(--text);}
.footer-bottom{
  display:flex;justify-content:space-between;flex-wrap:wrap;gap:6px;
  padding-top:20px;border-top:1px solid var(--border-soft);font-size:11.5px;color:var(--muted-2);
}

@media(max-width:860px){
  .hero{grid-template-columns:1fr;}
  .cmd-grid{grid-template-columns:1fr 1fr;}
  .dash-grid{grid-template-columns:1fr;}
  .admin-grid{grid-template-columns:1fr 1fr;}
  .admin-cols{grid-template-columns:1fr;}
  .pricing{grid-template-columns:1fr;}
  .docs-layout{grid-template-columns:1fr;}
  .docs-side{position:static;flex-direction:row;flex-wrap:wrap;margin-bottom:20px;}
  .main-nav{display:none;}
  .brand .live{display:none;}
  .footer-cols{grid-template-columns:repeat(2,1fr);}
}
@media(max-width:560px){
  .cmd-grid{grid-template-columns:1fr;}
  .lb-row,.lb-head-row{grid-template-columns:36px 1fr 58px 58px 64px;}
  .lb-num{font-size:11.5px;}
  .footer-cols{grid-template-columns:1fr;}
  .lb-avatar{width:28px;height:28px;font-size:11px;}
  .rank-badge{width:22px;height:22px;font-size:10.5px;}
}
/* ============================================================
   GEAR MENU — sous-menus type toggle (langue / thème), même style
   que les menu-row existants
   ============================================================ */
.mr-sub{display:block;font-size:11px;color:var(--muted-2);font-weight:400;margin-top:1px;}
.mr-back-arrow{width:16px;text-align:center;flex-shrink:0;color:var(--muted);font-size:15px;}
.lang-option.active{background:var(--accent-soft);}
.lang-option.active .mr-label{color:var(--accent);font-weight:600;}
.toggle-switch{width:34px;height:20px;border-radius:99px;background:var(--border);position:relative;flex-shrink:0;transition:background .15s var(--ease);}
.toggle-switch.on{background:var(--accent);}
.toggle-switch::after{content:'';position:absolute;top:2px;left:2px;width:16px;height:16px;border-radius:50%;background:#fff;transition:transform .15s var(--ease);}
.toggle-switch.on::after{transform:translateX(14px);}

/* Leaderboard global — 3 colonnes au lieu de 5 (plus de colonne serveur/streak séparée) */
.lb-row.simple,.lb-head-row.simple{grid-template-columns:50px 1fr 110px;}
@media(max-width:560px){
  .lb-row.simple,.lb-head-row.simple{grid-template-columns:36px 1fr 80px;}
}

/* ============================================================
   ADMIN PANEL — dashboard serveur (membres, sanctions, config)
   ============================================================ */
.guild-head-inner{display:flex;align-items:center;gap:14px;margin:22px 0;}
.guild-icon{
  width:52px;height:52px;border-radius:14px;flex-shrink:0;overflow:hidden;
  background:linear-gradient(135deg,var(--accent),#4a5a9e);color:#fff;
  display:flex;align-items:center;justify-content:center;font-family:var(--display);font-weight:600;font-size:16px;
}
.guild-icon img{width:100%;height:100%;object-fit:cover;display:block;}
.guild-head-inner h3{font-size:18px;}

.admin-grid-3{grid-template-columns:repeat(3,1fr);margin-bottom:22px;}
.kpi.sm{padding:14px;}
.kpi.sm .kv{font-size:20px;}

.lb-tabs-sub{margin-bottom:14px;}
.lb-tabs-sub button{padding:6px 12px;font-size:11.5px;}

.admin-tabpane{margin-top:18px;}

.search-inline{
  padding:7px 12px;border-radius:8px;background:var(--bg-elev);border:1px solid var(--border);
  color:var(--text);font-size:12.5px;width:220px;
}
.search-inline::placeholder{color:var(--muted-2);}

.member-row{
  display:grid;grid-template-columns:1fr auto auto;gap:16px;align-items:center;
  padding:13px 20px;border-bottom:1px solid var(--border-soft);
}
.member-row:last-child{border-bottom:none;}
.member-badges{display:flex;gap:6px;flex-wrap:wrap;}
.action-btns{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end;}

.pill.ok{background:rgba(74,222,128,.15);color:#4ade80;}

.btn-danger{border:1px solid rgba(227,91,91,.4);color:var(--danger);}
.btn-danger:hover{background:rgba(227,91,91,.12);}

/* ---- modal (sanctions) ---- */
.modal-overlay{display:none;position:fixed;inset:0;z-index:100;background:rgba(6,6,9,.68);align-items:center;justify-content:center;padding:20px;}
.modal-box{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:24px;max-width:380px;width:100%;}
.modal-box h3{margin-bottom:16px;font-size:16px;}
.form-field{margin-bottom:14px;display:flex;flex-direction:column;gap:6px;}
.form-field label{font-size:11px;text-transform:uppercase;letter-spacing:.05em;color:var(--muted-2);}
.form-field textarea,.form-field input{
  background:var(--bg-elev);border:1px solid var(--border);border-radius:8px;
  padding:9px 11px;color:var(--text);font-size:13px;font-family:inherit;resize:vertical;
}
.modal-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:4px;}

/* ---- modal (infos membre) ---- */
.modal-box-wide{max-width:460px;}
.info-row{padding:9px 0;border-bottom:1px solid var(--border-soft);font-size:13px;line-height:1.5;}
.info-row:last-child{border-bottom:none;}
.info-row b{color:var(--muted-2);font-weight:600;margin-right:4px;}
.info-evidence{max-width:100%;max-height:260px;object-fit:cover;border-radius:8px;margin-top:12px;display:block;}
.clickable-name{cursor:pointer;}
.clickable-name:hover{text-decoration:underline;}

/* ============================================================
   TEAM PANEL — signalements / bugs / blacklist
   ============================================================ */
.team-tabpane{margin-top:18px;}
.team-premium-form{display:grid;grid-template-columns:2fr 1fr 2fr auto;align-items:end;gap:12px;margin:16px 0 22px;}
.team-premium-form label{display:flex;flex-direction:column;gap:6px;font-size:11px;text-transform:uppercase;letter-spacing:.05em;color:var(--muted-2);}
.team-premium-form input{background:var(--bg-elev);border:1px solid var(--border);border-radius:8px;padding:9px 11px;color:var(--text);font:13px var(--body);}
.team-premium-row{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;}
.report-card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius-sm);padding:16px;margin-bottom:12px;}
.rc-card-head{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:6px;}
.rc-card-head b{font-size:14px;}
.rc-evidence{max-width:100%;max-height:220px;object-fit:cover;border-radius:8px;margin-top:10px;display:block;}
.empty-note{padding:28px 20px;text-align:center;color:var(--muted);font-size:13px;background:var(--card);border:1px solid var(--border);border-radius:var(--radius);}
.panel .empty-note,.az-card .empty-note{background:none;border:none;border-radius:0;}

@media(max-width:700px){
  .member-row{grid-template-columns:1fr;gap:8px;}
  .action-btns{justify-content:flex-start;}
  .admin-grid-3{grid-template-columns:1fr 1fr;}
  .team-premium-form{grid-template-columns:1fr;align-items:stretch;}
}

/* ============================================================
   GEAR MENU v2 — même style que la référence (header avatar/pseudo,
   icônes en pastille colorée, séparateurs, déconnexion en rouge)
   ============================================================ */
.gear-menu{min-width:236px;}
.gear-menu-header{display:flex;align-items:center;gap:11px;padding:6px 8px 14px;}
.gmh-avatar{width:40px;height:40px;border-radius:50%;flex-shrink:0;overflow:hidden;
  background:linear-gradient(135deg,var(--accent),#4a5a9e);display:flex;align-items:center;
  justify-content:center;font-family:var(--display);font-weight:600;font-size:15px;color:#fff;}
.gmh-avatar img{width:100%;height:100%;object-fit:cover;display:block;}
.gmh-text{display:flex;flex-direction:column;gap:3px;min-width:0;}
.gmh-name{font-size:14px;font-weight:600;color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.gmh-sub{font-size:11.5px;color:var(--muted-2);display:flex;align-items:center;gap:6px;}
.dot-sm{width:6px;height:6px;border-radius:50%;background:#4ade80;flex-shrink:0;}

.mr-icon{width:16px;height:16px;flex-shrink:0;color:var(--muted);transition:color .15s var(--ease);}
.menu-row:hover .mr-icon,.menu-toggle-row:hover .mr-icon{color:var(--text);}

.menu-row.danger .mr-icon,.menu-row.danger .mr-label{color:var(--danger);font-weight:500;}
.menu-row.danger:hover{background:rgba(227,91,91,.1);}

/* Trigger unique : roue crantée (déconnecté) ou avatar+pseudo (connecté) */
.gear-trigger{display:flex;align-items:center;gap:7px;}
.gt-caret{font-size:9px;opacity:.65;}
#gtAvatarImg{width:18px;height:18px;border-radius:50%;object-fit:cover;}
/* ============================================================
   COOKIES — bandeau de consentement
   ============================================================ */
.cookie-banner{
  position:fixed;left:20px;bottom:20px;z-index:200;width:min(400px,calc(100vw - 32px));
  background:var(--card);border:1px solid var(--border);border-radius:var(--radius);
  padding:18px;box-shadow:0 18px 48px rgba(0,0,0,.45);
  opacity:0;transform:translateY(16px);transition:opacity .25s var(--ease),transform .25s var(--ease);
}
.cookie-banner.show{opacity:1;transform:translateY(0);}
.cookie-head{display:flex;align-items:center;gap:8px;font-family:var(--display);font-size:15px;margin-bottom:6px;}
.cookie-banner p{font-size:12.5px;color:var(--muted);line-height:1.55;}
.cookie-banner p a{color:var(--accent);text-decoration:underline;text-underline-offset:2px;}
.cookie-prefs{display:none;flex-direction:column;gap:8px;margin-top:12px;}
.cookie-prefs.open{display:flex;}
.cookie-opt{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:10px 12px;border:1px solid var(--border-soft);border-radius:var(--radius-sm);background:var(--bg-elev);cursor:pointer;}
.cookie-opt b{display:block;font-size:12.5px;font-weight:600;}
.cookie-opt span{display:block;font-size:11.5px;color:var(--muted);margin-top:2px;}
.cookie-opt input{width:16px;height:16px;accent-color:var(--accent);flex-shrink:0;}
.cookie-actions{display:flex;gap:8px;margin-top:14px;flex-wrap:wrap;}
.cookie-actions .btn{flex:1;text-align:center;white-space:nowrap;}
@media(max-width:560px){.cookie-banner{left:16px;right:16px;bottom:16px;width:auto;}}

/* ============================================================
   ANALYTICS — cartes, KPI, barres, skeleton
   ============================================================ */
.az-card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;animation:fadeIn .3s var(--ease);}
.az-card.az-hero{border-color:var(--gold-line);background:linear-gradient(180deg,var(--gold-soft),transparent 140px),var(--card);}
.az-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:18px 20px;flex-wrap:wrap;}
.az-title{display:flex;align-items:center;gap:12px;min-width:0;}
.az-emoji{display:grid;place-items:center;width:36px;height:36px;border-radius:10px;background:var(--accent-soft);border:1px solid var(--accent-line);font-size:17px;flex-shrink:0;}
.az-title h2{font-size:18px;letter-spacing:-.01em;}
.az-title h2 small{font-family:var(--body);font-size:12px;font-weight:400;color:var(--muted);margin-left:8px;}
.az-head-r{display:flex;align-items:center;gap:8px;}
.az-btn{padding:6px 11px;border-radius:99px;font-size:12px;border:1px solid var(--border);color:var(--muted);transition:all .15s var(--ease);}
.az-btn:hover{color:var(--text);border-color:var(--accent-line);background:var(--accent-soft);}

.az-kpis{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;padding:0 20px 20px;}
.az-kpi{position:relative;background:var(--bg-elev);border:1px solid var(--border-soft);border-radius:12px;padding:16px 16px 14px;overflow:hidden;transition:transform .15s var(--ease),border-color .15s var(--ease);}
.az-kpi::before{content:'';position:absolute;left:0;top:0;right:0;height:2px;background:var(--accent);opacity:.7;}
.az-kpi.gold::before{background:var(--gold);}
.az-kpi:hover{transform:translateY(-2px);border-color:var(--accent-line);}
.az-kpi-v{font-family:var(--mono);font-size:28px;font-weight:600;letter-spacing:-.02em;line-height:1.1;}
.az-kpi.gold .az-kpi-v{color:var(--gold);}
.az-kpi-l{font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.05em;margin-top:8px;}
.az-empty{color:var(--muted-2)!important;}

.az-body{border-top:1px solid var(--border-soft);}
.az-row{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;padding:12px 20px;border-bottom:1px solid var(--border-soft);font-size:13px;transition:background .15s var(--ease);}
.az-row:last-child{border-bottom:none;}
.az-row:hover{background:var(--bg-elev);}
.az-row-l{display:flex;flex-direction:column;gap:3px;min-width:0;}
.az-note{font-size:11.5px;color:var(--muted-2);line-height:1.4;}
.az-val{font-family:var(--mono);font-weight:600;white-space:nowrap;padding:2px 9px;border-radius:99px;background:var(--accent-soft);color:var(--text);}
.az-val.az-empty{background:transparent;}
.az-sub{padding:16px 20px 8px;font-size:11px;font-weight:600;color:var(--muted);text-transform:uppercase;letter-spacing:.06em;background:var(--bg-elev);border-top:1px solid var(--border-soft);border-bottom:1px solid var(--border-soft);}
.az-body>.az-sub:first-child{border-top:none;}

.az-bar{display:grid;grid-template-columns:minmax(90px,170px) 1fr 52px;align-items:center;gap:12px;padding:9px 20px;font-size:12.5px;}
.az-bar-l{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--muted);}
.az-track{height:8px;background:var(--bg-elev);border:1px solid var(--border-soft);border-radius:99px;overflow:hidden;}
.az-fill{height:100%;width:var(--w);background:linear-gradient(90deg,var(--accent),#9bb0ee);border-radius:99px;transform-origin:left;animation:azGrow .6s var(--ease);}
.az-bar-v{font-family:var(--mono);font-size:12px;text-align:right;}
@keyframes azGrow{from{transform:scaleX(0);}to{transform:scaleX(1);}}

.az-nodata{padding:0 20px 20px;color:var(--muted);font-size:13px;}
.az-notice{margin-top:14px;padding:12px 14px;border:1px solid var(--accent-line);background:var(--accent-soft);border-radius:var(--radius-sm);font-size:12.5px;color:var(--muted);line-height:1.55;}
.az-notice.az-warn{margin:0 0 14px;border-color:rgba(227,91,91,.35);background:rgba(227,91,91,.08);color:var(--danger);}

.az-skel i{display:block;border-radius:12px;background:linear-gradient(90deg,var(--card) 25%,var(--card-hover) 50%,var(--card) 75%);background-size:200% 100%;animation:azShimmer 1.3s infinite linear;border:1px solid var(--border-soft);}
.az-skel-kpis{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:12px;}
.az-skel-kpis i{height:92px;}
.az-skel-block{height:64px;margin-bottom:10px;}
@keyframes azShimmer{from{background-position:200% 0;}to{background-position:-200% 0;}}

#analyticsSide a{display:block;padding:9px 12px;border-radius:var(--radius-sm);font-size:13px;color:var(--muted);border-left:2px solid transparent;}
#analyticsSide a:hover{background:var(--card-hover);color:var(--text);}
#analyticsSide a.active{background:var(--accent-soft);color:var(--text);border-left-color:var(--accent);font-weight:500;}

@media(max-width:700px){
  .az-kpis,.az-skel-kpis{grid-template-columns:1fr 1fr;}
  .az-bar{grid-template-columns:90px 1fr 46px;padding:9px 14px;}
  .az-row,.az-head{padding-left:14px;padding-right:14px;}
}

/* ============================================================
   DASHBOARD — formulaires de configuration, toasts
   ============================================================ */
.admin-tabs{flex-wrap:wrap;}
.cfg-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px;}
.cfg-wide{grid-column:1/-1;}
.cfg-body{padding:18px 20px;display:flex;flex-direction:column;gap:14px;}
.cfg-row2{display:grid;grid-template-columns:1fr 1fr;gap:12px;}
.cfg-row3{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;}
.cfg-field{display:flex;flex-direction:column;gap:6px;min-width:0;}
.cfg-label{font-size:12px;font-weight:600;color:var(--muted);}
.cfg-hint{font-size:11.5px;color:var(--muted-2);line-height:1.4;}
.cfg-input{
  width:100%;padding:9px 12px;border-radius:var(--radius-sm);background:var(--bg-elev);
  border:1px solid var(--border);color:var(--text);font:13px var(--body);
  transition:border-color .15s var(--ease),box-shadow .15s var(--ease);
}
textarea.cfg-input{resize:vertical;min-height:84px;}
.cfg-input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft);}
select.cfg-input{appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%238b8b98' stroke-width='2.5'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center;padding-right:34px;}
.cfg-chips{display:flex;flex-wrap:wrap;gap:8px;}
.cfg-chip{cursor:pointer;}
.cfg-chip input{position:absolute;opacity:0;pointer-events:none;}
.cfg-chip span{display:inline-block;padding:7px 14px;border-radius:99px;font-size:12.5px;border:1px solid var(--border);color:var(--muted);background:transparent;transition:all .15s var(--ease);user-select:none;}
.cfg-chip:hover span{border-color:var(--accent-line);color:var(--text);}
.cfg-chip input:checked+span{background:var(--accent);border-color:var(--accent);color:#fff;}
.cfg-chip input:focus-visible+span{outline:2px solid var(--accent);outline-offset:2px;}
.cfg-quick{display:flex;gap:6px;}
.cfg-savebar{
  position:sticky;bottom:16px;z-index:30;margin-top:18px;padding:12px 16px;
  display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;
  background:var(--card);border:1px solid var(--accent-line);border-radius:var(--radius);
  box-shadow:0 12px 32px rgba(0,0,0,.4);
}
.toast-box{position:fixed;right:20px;bottom:20px;z-index:300;display:flex;flex-direction:column;gap:8px;align-items:flex-end;}
.toast{max-width:340px;padding:11px 16px;border-radius:var(--radius-sm);font-size:13px;background:var(--card);border:1px solid var(--border);box-shadow:0 10px 28px rgba(0,0,0,.4);opacity:0;transform:translateY(8px);transition:opacity .2s var(--ease),transform .2s var(--ease);}
.toast.show{opacity:1;transform:translateY(0);}
.toast.ok{border-color:rgba(74,222,128,.45);}
.toast.err{border-color:rgba(227,91,91,.55);color:var(--danger);}
.toast.warn{border-color:var(--gold-line);color:var(--gold);}
@media(max-width:860px){.cfg-grid,.cfg-row3{grid-template-columns:1fr;}}
@media(max-width:560px){.cfg-row2{grid-template-columns:1fr;}.toast-box{left:16px;right:16px;align-items:stretch;}}

/* évite le flash de contenu français pendant le chargement de la traduction */
html.i18n-pending body{opacity:0;}
body{transition:opacity .12s ease;}

/* ---------- Logs (journal d'audit) ---------- */
.log-filters{display:flex;gap:6px;margin-bottom:12px;flex-wrap:wrap;}
.log-filters button{background:var(--bg-elev);border:1px solid var(--border-soft);color:var(--text-dim,inherit);padding:6px 14px;border-radius:999px;font-size:12px;cursor:pointer;transition:all .15s var(--ease);}
.log-filters button:hover{border-color:var(--border);}
.log-filters button.active{background:var(--accent,#5865f2);border-color:transparent;color:#fff;}
.log-list{border:1px solid var(--border-soft);border-radius:14px;overflow:hidden;background:var(--bg-elev);}
.log-row{display:grid;grid-template-columns:36px 1fr auto;gap:12px;align-items:center;padding:12px 16px;border-bottom:1px solid var(--border-soft);font-size:13px;}
.log-row:last-child{border-bottom:none;}
.log-ico{font-size:20px;text-align:center;}
.log-title{font-weight:600;}
.log-detail{color:var(--muted,#9aa0a6);font-size:12.5px;margin-top:2px;word-break:break-word;}
.log-meta{display:flex;flex-direction:column;align-items:flex-end;gap:3px;font-size:11px;white-space:nowrap;}
.log-pager{display:flex;align-items:center;justify-content:center;gap:12px;margin-top:12px;}
@media (max-width:640px){.log-row{grid-template-columns:30px 1fr;}.log-meta{grid-column:2;flex-direction:row;flex-wrap:wrap;align-items:center;gap:8px;}}
