/* GEX Levels — member area design system (Claude Design tokens), CSP-safe.
   Shared by /account, /journal, /leaderboard and the affiliate dashboard. */
:root{
  --bg:#0b0805; --surface:#15100a; --surface-2:#16110a; --field:#0d0a06;
  --line:rgba(245,241,233,0.08); --line-2:rgba(245,241,233,0.12);
  --text:#f5f1e9; --muted:#9c9fa8; --muted-2:#8a8478; --faint:#7d776c;
  --gold:#d4b483; --gold-hi:#e0c79a; --gold-ink:#1a1408;
  --green:#b9c7a8; --red:#c79a9a;
  --serif:'Newsreader',Georgia,serif; --sans:'Hanken Grotesk',system-ui,sans-serif; --mono:'JetBrains Mono',ui-monospace,monospace;
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--text);font-family:var(--sans);-webkit-font-smoothing:antialiased;overflow-x:hidden}
::selection{background:rgba(212,180,131,0.28);color:#fff}
:focus-visible{outline:2px solid var(--gold);outline-offset:3px;border-radius:4px}
input::placeholder,textarea::placeholder{color:#6b665c}
a{color:inherit}
[hidden]{display:none !important}

/* top bar */
.rm-top{position:sticky;top:0;z-index:40;border-bottom:1px solid rgba(245,241,233,0.07);background:rgba(10,7,4,0.9);backdrop-filter:blur(14px)}
.rm-top__in{max-width:1240px;margin:0 auto;padding:13px 28px;display:flex;align-items:center;justify-content:space-between;gap:16px}
.rm-brand{display:flex;align-items:center;gap:11px;text-decoration:none}
.rm-brand img{display:block;border-radius:9px;border:1px solid rgba(212,180,131,0.22)}
.rm-brand__name{font-family:var(--serif);font-size:19px;font-weight:500;color:var(--text)}
.rm-brand__tag{font-family:var(--mono);font-size:10.5px;letter-spacing:0.14em;text-transform:uppercase;color:var(--faint);padding-left:10px;margin-left:4px;border-left:1px solid var(--line-2)}
.rm-top__user{display:flex;align-items:center;gap:16px}
.rm-top__id{display:flex;align-items:center;gap:10px}
.rm-avatar{width:32px;height:32px;border-radius:50%;background:linear-gradient(140deg,#d4b483,#a07f4e);color:var(--gold-ink);display:flex;align-items:center;justify-content:center;font-weight:700;font-size:14px}
.rm-top__email{font-size:13.5px;color:#b3ab9c}
.rm-signout{text-decoration:none;color:var(--muted);font-size:13.5px;font-weight:600;background:none;border:0;cursor:pointer;font-family:inherit}
.rm-signout:hover{color:var(--text)}

/* layout */
.rm-wrap{max-width:1240px;margin:0 auto;padding:clamp(20px,3vw,36px) 28px clamp(56px,7vw,80px)}
/* Marc 05/09/2026 : trop de vide sur les cotes et un tableau de trades qui defile ; sur les
   ecrans >= 1600px la zone membre passe a 1440px (meme logique que la landing a 1360). */
@media (min-width:1600px){ body .rm-wrap{max-width:1440px} }
.rm-grid{display:grid;grid-template-columns:248px minmax(0,1fr);gap:clamp(20px,3vw,40px);align-items:start}
.rm-side{position:sticky;top:84px;display:flex;flex-direction:column;gap:3px}
.rm-side a,.rm-side button{display:flex;align-items:center;gap:11px;padding:11px 13px;border-radius:9px;text-decoration:none;color:var(--muted);font-size:14.5px;font-weight:500;border:0;background:transparent;cursor:pointer;text-align:left;width:100%;font-family:inherit;transition:color .15s,background .15s}
.rm-side a:hover,.rm-side button:hover{color:var(--text);background:rgba(245,241,233,0.04)}
.rm-side a.is-active,.rm-side button.is-active{color:#f5e9d2;font-weight:600;background:rgba(212,180,131,0.12)}
.rm-side a svg,.rm-side button svg{flex-shrink:0}
.rm-side__div{height:1px;background:var(--line);margin:12px 8px}
.rm-main{display:flex;flex-direction:column;gap:20px;min-width:0}

/* headings */
.rm-eyebrow{font-family:var(--mono);font-size:11px;letter-spacing:0.16em;text-transform:uppercase;color:var(--muted);margin-bottom:8px}
.rm-h1{font-family:var(--serif);font-weight:500;font-size:clamp(26px,3.4vw,38px);line-height:1.04;letter-spacing:-0.02em;margin:0;color:var(--text)}
.rm-h2{font-family:var(--serif);font-weight:500;font-size:22px;color:var(--text);margin:0;letter-spacing:-0.01em}
.rm-lede{font-size:14px;color:var(--muted);margin:8px 0 0;line-height:1.55;max-width:60ch}

/* cards */
.rm-card{background:var(--surface);border:1px solid var(--line);border-radius:16px;padding:24px}
.rm-card--lg{padding:26px}
.rm-card__head{display:flex;align-items:center;gap:11px;margin-bottom:16px}
.rm-card__ic{width:34px;height:34px;border-radius:10px;background:rgba(212,180,131,0.1);border:1px solid rgba(212,180,131,0.2);display:flex;align-items:center;justify-content:center;color:var(--gold);flex-shrink:0}
.rm-card__label{font-family:var(--mono);font-size:10.5px;letter-spacing:0.16em;text-transform:uppercase;color:var(--muted-2);margin-bottom:14px}
.rm-muted{font-size:13.5px;color:var(--muted);line-height:1.55;margin:0}
.rm-status{font-size:13px;color:var(--muted);line-height:1.5;margin:0}
.rm-status[data-kind="error"]{color:#e0644b}
.rm-status[data-kind="ok"]{color:#3fae6e}
.rm-stack{display:flex;flex-direction:column;gap:14px}
.rm-grid-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:14px}

/* pills */
.rm-pill{display:inline-flex;align-items:center;font-family:var(--mono);font-size:9.5px;letter-spacing:0.1em;text-transform:uppercase;padding:4px 9px;border-radius:100px;white-space:nowrap;border:1px solid var(--line-2);color:var(--muted)}
.rm-pill.is-on{color:var(--green);background:rgba(185,199,168,0.12);border-color:rgba(185,199,168,0.32)}
.rm-pill.is-soon{color:var(--gold-hi);background:rgba(212,180,131,0.12);border-color:rgba(212,180,131,0.4)}
.rm-pill.is-off{color:var(--red);border-color:rgba(199,154,154,0.35)}

/* access strip */
.rm-access{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px}
.rm-access__it{background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:18px;display:flex;flex-direction:column;gap:6px}
.rm-access__name{font-size:14.5px;color:var(--text);font-weight:600}
.rm-access__note{font-size:12.5px;color:var(--muted-2);line-height:1.45}

/* buttons */
.rm-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:12px 20px;border-radius:10px;font-weight:600;font-size:14px;font-family:inherit;cursor:pointer;text-decoration:none;border:1px solid var(--line-2);background:transparent;color:var(--text);transition:background .18s,border-color .18s}
.rm-btn:hover{background:rgba(245,241,233,0.04)}
.rm-btn--primary{background:var(--gold);color:var(--gold-ink);border-color:var(--gold)}
.rm-btn--primary:hover{background:var(--gold-hi)}
.rm-btn--ghost{border-color:rgba(212,180,131,0.4)}
.rm-btn--ghost:hover{background:rgba(212,180,131,0.06)}
.rm-btn--danger{border-color:rgba(199,154,154,0.4);color:#d8b3b3}
.rm-btn--danger:hover{background:rgba(199,154,154,0.08)}
.rm-btn[disabled]{opacity:.5;cursor:not-allowed}
.rm-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:16px}

/* key-value */
.rm-kv{margin:0;display:flex;flex-direction:column;gap:0}
.rm-kv>div{display:flex;justify-content:space-between;gap:16px;padding:12px 0;border-bottom:1px solid rgba(245,241,233,0.05)}
.rm-kv>div:last-child{border-bottom:0}
.rm-kv dt{font-size:13px;color:var(--muted);margin:0}
.rm-kv dd{font-size:13.5px;color:var(--text);margin:0;text-align:right;font-family:var(--mono)}

/* fields */
.rm-field{display:flex;flex-direction:column;gap:7px}
.rm-field label,.rm-lab{font-size:12.5px;color:var(--muted)}
.rm-input,.rm-select,.rm-textarea{width:100%;background:var(--field);border:1px solid var(--line-2);border-radius:9px;padding:12px 13px;color:var(--text);font-family:inherit;font-size:14px;outline:none;transition:border-color .15s}
.rm-input:focus,.rm-select:focus,.rm-textarea:focus{border-color:var(--gold)}

/* stat */
.rm-stat{background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:22px}
.rm-stat__v{font-family:var(--mono);font-size:26px;color:var(--text);font-weight:500;letter-spacing:-0.01em}
.rm-stat__l{font-family:var(--mono);font-size:10px;letter-spacing:0.14em;text-transform:uppercase;color:var(--muted-2);margin-top:6px}

/* note */
.rm-note{display:flex;gap:11px;align-items:flex-start;background:rgba(212,180,131,0.06);border:1px solid rgba(212,180,131,0.18);border-radius:12px;padding:14px 16px;font-size:13px;color:#c4bdae;line-height:1.5}
.rm-note svg{flex-shrink:0;color:var(--gold);margin-top:1px}

/* table */
.rm-table{background:var(--surface);border:1px solid var(--line);border-radius:16px;overflow:hidden}
.rm-table__scroll{overflow-x:auto}
.rm-tr{display:grid;gap:12px;padding:14px 22px;border-bottom:1px solid var(--line);align-items:center}
.rm-tr:last-child{border-bottom:0}
.rm-th{font-family:var(--mono);font-size:10px;letter-spacing:0.12em;text-transform:uppercase;color:var(--faint)}
.rm-td{font-size:13.5px;color:var(--text)}
.rm-td--mono{font-family:var(--mono);color:var(--gold-hi)}

/* divider + soon banner */
.rm-soon{font-family:var(--mono);font-size:9.5px;letter-spacing:0.1em;text-transform:uppercase;color:var(--muted);border:1px dashed rgba(245,241,233,0.18);padding:4px 9px;border-radius:100px}
.rm-empty{border:1px dashed rgba(212,180,131,0.3);border-radius:14px;background:repeating-linear-gradient(135deg,transparent,transparent 9px,rgba(212,180,131,0.04) 9px,rgba(212,180,131,0.04) 18px);padding:22px;text-align:center;color:#b3ab9c;font-size:13.5px;line-height:1.5}

/* responsive */
@media(max-width:900px){.rm-grid{grid-template-columns:1fr}.rm-side{position:static;flex-direction:row;overflow-x:auto;gap:6px;padding-bottom:6px}.rm-side .rm-navlabel{display:none}.rm-side__div{display:none}}
@media(max-width:560px){.hide-sm{display:none}}

/* utilities (replace inline styles — keep CSP style-src 'self') */
.rm-skip{position:absolute;left:-9999px}
.rm-panel{display:flex;flex-direction:column;gap:18px;min-width:0}
.rm-mt-sm{margin-top:8px}
.rm-mt{margin-top:12px}
.rm-mt-lg{margin-top:14px}
.rm-h2--sm{font-size:20px}
.rm-cta-card{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap}
.rm-check{display:flex;gap:9px;align-items:flex-start;font-size:13px;color:var(--muted);line-height:1.4}
.rm-keyrow{display:flex;align-items:center;gap:12px;background:var(--field);border:1px solid rgba(245,241,233,0.1);border-radius:10px;padding:8px 8px 8px 16px;margin-top:12px}
.rm-key{font-family:var(--mono);font-size:13px;color:#c4bdae;flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

/* notification toggles (redesign-account-tabs.js) */
.rm-notiflist{display:flex;flex-direction:column}
.rm-notif{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:16px 0;border-bottom:1px solid rgba(245,241,233,0.05);cursor:pointer}
.rm-notif:last-child{border-bottom:0}
.rm-notif__t{display:flex;flex-direction:column;gap:3px;min-width:0}
.rm-notif__t b{font-size:14px;color:var(--text);font-weight:600}
.rm-notif__t span{font-size:12.5px;color:var(--muted);line-height:1.4}
.rm-switch{appearance:none;-webkit-appearance:none;width:42px;height:24px;border-radius:100px;background:rgba(245,241,233,0.14);position:relative;cursor:pointer;flex-shrink:0;transition:background .18s;border:0;margin:0;padding:0}
.rm-switch::after{content:"";position:absolute;top:3px;left:3px;width:18px;height:18px;border-radius:50%;background:var(--muted);transition:transform .18s,background .18s}
.rm-switch:checked{background:var(--gold)}
.rm-switch:checked::after{transform:translateX(18px);background:var(--gold-ink)}
.rm-switch:focus-visible{outline:2px solid var(--gold);outline-offset:2px}

/* 2FA (redesign-2fa.js) */
.rm-2fa-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:14px}
.rm-2fa-head .rm-card__label{margin-bottom:0}
.rm-2fa-link{color:var(--gold);font-size:13px;text-decoration:none}
.rm-2fa-link:hover{color:var(--gold-hi)}
.rm-backupgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:8px;margin-top:12px}
.rm-backupgrid code{font-family:var(--mono);font-size:13px;color:#c4bdae;background:var(--field);border:1px solid var(--line-2);border-radius:8px;padding:8px 10px;text-align:center;letter-spacing:0.04em}

/* --- wave 2: dynamic strip, QR, sessions, affiliate --- */
.rm-pill.is-off{color:var(--red);border-color:rgba(199,154,154,0.4);background:rgba(199,154,154,0.08)}

/* 2FA QR (rendered by /assets/qrcode.js into the canvas) */
.rm-2fa-qrwrap{display:flex;justify-content:center;margin:14px 0}
.rm-2fa-qr{width:190px;height:190px;border-radius:12px;background:#fff;padding:8px;border:1px solid var(--line-2)}

/* Active sessions table (app.js renderAuthSessions output) */
.rm-sessions table{width:100%;border-collapse:collapse;font-size:13.5px}
.rm-sessions th{text-align:left;color:var(--faint);font-weight:600;font-size:11.5px;letter-spacing:.05em;text-transform:uppercase;padding:8px 10px;border-bottom:1px solid var(--line)}
.rm-sessions td{padding:9px 10px;border-bottom:1px solid var(--line);color:var(--text)}
.rm-sessions tr:last-child td{border-bottom:0}
.rm-sessions .button{background:var(--field);border:1px solid var(--line-2);color:var(--red);border-radius:8px;padding:5px 12px;font-family:var(--sans);font-size:12.5px;cursor:pointer}
.rm-sessions .button:hover{border-color:var(--red)}
.rm-sessions .muted,.rm-panel .muted{color:var(--muted)}

/* Affiliate stats + referral links (affiliate.js output) */
.rm-affstats{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:10px;margin-top:6px}
.rm-affstats .card{background:var(--field);border:1px solid var(--line);border-radius:12px;padding:12px 14px}
.rm-affstats .card h3{font-size:11.5px;letter-spacing:.05em;text-transform:uppercase;color:var(--faint);margin:0 0 4px;font-weight:600}
.rm-affstats .card p{font-family:var(--serif);font-size:20px;margin:0;color:var(--text)}
.aff-links{display:flex;flex-direction:column;gap:8px}
.aff-links .copy-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap;background:var(--field);border:1px solid var(--line);border-radius:10px;padding:8px 10px}
.aff-links .copy-row code{font-family:var(--mono);font-size:12.5px;color:var(--gold);flex:1;min-width:0;overflow-wrap:anywhere}
.aff-links .button{background:transparent;border:1px solid var(--line-2);color:var(--text);border-radius:8px;padding:5px 12px;font-family:var(--sans);font-size:12.5px;cursor:pointer}
.aff-links .button:hover{border-color:var(--gold)}

/* 2FA factor sub-sections + passkey list */
.rm-2fa-sub{margin-top:18px;padding-top:18px;border-top:1px solid var(--line)}
.rm-pklist{display:flex;flex-direction:column;gap:8px;margin:10px 0}
.rm-pkrow{display:flex;align-items:center;justify-content:space-between;gap:10px;background:var(--field);border:1px solid var(--line);border-radius:10px;padding:9px 12px;font-size:13.5px}
.rm-pkrow b{font-weight:600;color:var(--text)}

/* Avatar upload (/account "Profile" tab, profile-edit.js). Preview mirrors the
   public .pf-avatar look (redesign-profile.css) so the account-page thumbnail
   matches the public card once approved. */
.rm-avatarblock{display:flex;gap:18px;align-items:flex-start;flex-wrap:wrap}
.rm-avatarblock__preview{
  width:76px;height:76px;flex-shrink:0;border-radius:50%;
  background:linear-gradient(145deg,#e0c79a,#a07f4e);
  color:var(--gold-ink);
  display:flex;align-items:center;justify-content:center;
  font-family:var(--serif);font-weight:600;font-size:28px;
  border:2px solid rgba(212,180,131,0.4);
  overflow:hidden;
}
.rm-avatarblock__preview img{width:100%;height:100%;object-fit:cover;display:block}
.rm-avatarblock__body{flex:1 1 260px;min-width:220px}

/* Community directory (public trader profiles) */
.rm-community-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:12px}
.rm-community-item{display:flex;flex-direction:column;gap:2px;padding:13px 15px;background:rgba(255,255,255,0.02);border:1px solid var(--line);border-radius:12px;text-decoration:none;transition:border-color .15s ease}
.rm-community-item:hover{border-color:var(--gold)}
.rm-community-item__name{font-weight:700;color:var(--gold);font-size:14px}
.rm-community-item__handle{font-family:var(--mono);font-size:11px;letter-spacing:.02em}
.rm-community-item__bio{font-size:12px;margin-top:3px}

/* Cancel-save modal — native <dialog> (backdrop, Esc, focus trap). CSP-safe:
   opened via showModal() in cancel-save.js, no inline style/script. Shared by
   the account billing tab and the legacy billing page. */
dialog.cs-modal { border: none; padding: 0; background: transparent; max-width: 460px; width: calc(100% - 32px); color: #f2ede0; }
dialog.cs-modal::backdrop { background: rgba(6, 8, 12, 0.72); }
.cs-modal__inner { position: relative; background: #14120e; border: 1px solid rgba(214, 178, 106, 0.28); border-radius: 16px; padding: 26px 24px 22px; box-shadow: 0 24px 64px rgba(0,0,0,0.55); }
.cs-modal__close { position: absolute; top: 10px; right: 12px; width: 32px; height: 32px; border: none; background: transparent; color: #9a9384; font-size: 24px; line-height: 1; cursor: pointer; border-radius: 8px; }
.cs-modal__close:hover { color: #f2ede0; background: rgba(255,255,255,0.06); }
.cs-modal__title { margin: 0 0 12px; font-size: 20px; font-weight: 600; color: #f2ede0; }
.cs-modal__lead { margin: 0 0 16px; color: #e8d9b5; font-size: 14px; line-height: 1.55; }
.cs-modal__field { display: block; margin: 0 0 18px; }
.cs-modal__label { display: block; font-size: 13px; color: #9a9384; margin-bottom: 7px; }
.cs-modal__select { width: 100%; padding: 10px 12px; border-radius: 10px; border: 1px solid rgba(255,255,255,0.16); background: rgba(0,0,0,0.4); color: inherit; font: inherit; }
.cs-modal__actions { display: flex; flex-direction: column; gap: 10px; }
.cs-modal__btn { display: inline-flex; align-items: center; justify-content: center; padding: 11px 16px; border-radius: 10px; border: 1px solid rgba(255,255,255,0.18); background: transparent; color: #f2ede0; font: inherit; font-weight: 500; text-decoration: none; cursor: pointer; text-align: center; }
.cs-modal__btn:hover { border-color: rgba(255,255,255,0.34); }
.cs-modal__btn--primary { background: linear-gradient(180deg, #e6c877, #d6b26a); border-color: #d6b26a; color: #1a1712; font-weight: 600; }
.cs-modal__btn--primary:hover { filter: brightness(1.05); }
.cs-modal__btn[hidden] { display: none; }
.cs-modal__status { margin: 14px 0 0; font-size: 13.5px; line-height: 1.5; }
.cs-modal__status[data-kind="ok"] { color: #73d0a0; }
.cs-modal__status[data-kind="warn"] { color: #e6b566; }
.cs-modal__status[data-kind="pending"] { color: #9a9384; }

/* ═══════════════════════════════════════════════════════════════════════════
   v-cs3 (2026-08-22) — the member area's opening film (account-intro.js).
   Plays once per browser for a signed-in member; the dashboard carries a
   "Replay" button. Motif is a control surface coming online — deliberately
   different from the Academy's starfield and the Library's drifting motes.
   CSP-safe: every colour is a class; JS only writes canvas size and bar width.
   ═══════════════════════════════════════════════════════════════════════════ */
#acctIntro{ position:fixed; inset:0; z-index:200; background:#070504; display:none }
#acctIntro.is-on{ display:block }
#acctIntro canvas{ position:absolute; inset:0; width:100%; height:100%; display:block }
.ai__vig{ position:absolute; inset:0; pointer-events:none;
  background:radial-gradient(120% 90% at 50% 50%,transparent 28%,rgba(0,0,0,.55) 76%,rgba(0,0,0,.93) 100%) }
.ai__stage{ position:absolute; inset:0; display:grid; place-items:center; padding:26px; text-align:center }
.ai__gate{ display:flex; flex-direction:column; align-items:center; gap:22px }
.ai__mark{ width:78px; height:78px; border-radius:22px; display:grid; place-items:center;
  font-size:30px; color:#181206; background:linear-gradient(150deg,#e8d2a4,#a8895a);
  box-shadow:0 0 0 1px rgba(232,210,164,.35),0 0 70px rgba(200,168,120,.32);
  animation:aiBreathe 3.4s ease-in-out infinite }
@keyframes aiBreathe{ 0%,100%{ transform:scale(1) } 50%{ transform:scale(1.04) } }
.ai__t{ font-family:Georgia,serif; font-weight:400; font-size:clamp(25px,4.4vw,42px); color:#fff; margin:0 }
.ai__s{ color:#a49d90; font-size:15px; max-width:44ch; margin:0; line-height:1.6 }
.ai__btn{ border:0; cursor:pointer; padding:15px 34px; border-radius:999px; font-family:inherit;
  font-weight:750; font-size:15px; letter-spacing:.06em; text-transform:uppercase; color:#181206;
  background:linear-gradient(180deg,#e8d2a4,#c8a878); box-shadow:0 10px 34px rgba(200,168,120,.3);
  transition:transform .16s ease }
.ai__btn:hover{ transform:translateY(-2px) }
.ai__skipgate{ background:none; border:0; color:#6f685b; cursor:pointer; font-family:inherit; font-size:13px; padding:6px }
.ai__skipgate:hover{ color:#a49d90 }
.ai__line{ font-family:Georgia,serif; font-weight:400; color:#fff; font-size:clamp(24px,4.3vw,48px);
  line-height:1.18; max-width:21ch; margin:0; opacity:0; transform:translateY(18px); filter:blur(6px);
  animation:aiIn 1.1s cubic-bezier(.2,.7,.2,1) forwards }
.ai__line em{ font-style:normal; color:#e8d2a4 }
.ai__line--hero{ font-size:clamp(28px,5.4vw,60px); max-width:16ch }
@keyframes aiIn{ to{ opacity:1; transform:none; filter:blur(0) } }
.ai__tiles{ display:flex; gap:11px; flex-wrap:wrap; justify-content:center; max-width:min(940px,94vw) }
.ai__tile{ flex:1 1 200px; min-width:190px; border:1px solid #2b2419; border-radius:15px; padding:18px; text-align:left;
  background:linear-gradient(180deg,rgba(28,22,14,.93),rgba(14,10,6,.82)); opacity:0; transform:translateY(20px);
  animation:aiIn .8s cubic-bezier(.2,.7,.2,1) forwards }
.ai__tile span{ display:block; font-size:10.5px; letter-spacing:.19em; text-transform:uppercase; color:#c8a878; font-weight:700 }
.ai__tile b{ display:block; font-family:Georgia,serif; font-size:26px; color:#fff; font-weight:600; line-height:1.05; margin-top:7px }
.ai__tile p{ margin:9px 0 0; font-size:13px; line-height:1.6; color:#a49d90 }
.ai__skip{ position:absolute; right:20px; bottom:20px; z-index:9; background:rgba(20,15,9,.6); border:1px solid #2b2419;
  color:#a49d90; border-radius:999px; padding:9px 18px; font-family:inherit; font-size:12.5px; cursor:pointer }
.ai__skip:hover{ color:#fff; border-color:#a8895a }
.ai__bar{ position:absolute; left:0; right:0; bottom:0; height:2px; background:rgba(255,255,255,.06); z-index:9 }
.ai__bar i{ display:block; height:100%; width:0; background:linear-gradient(90deg,#a8895a,#e8d2a4) }
body.ai-lock{ overflow:hidden }
@media (prefers-reduced-motion:reduce){ #acctIntro *{ animation:none !important } }

/* Affiliate promo card on the dashboard (2026-08-25) — surfaces the referral
   programme prominently; CTA switches to the Affiliate tab via redesign-account-tabs.js */
.rm-aff-promo{display:flex;align-items:center;justify-content:space-between;gap:20px;flex-wrap:wrap;border-color:rgba(200,168,120,.32);background:linear-gradient(160deg,rgba(200,168,120,.09),rgba(200,168,120,.02))}
.rm-aff-promo__text{flex:1;min-width:260px}
.rm-aff-promo__text strong{color:#e6c896}
.rm-aff-promo__cta{flex:none}

/* Dashboard "Get started" onboarding (redesign-account-onboarding.js) */
.aonb[hidden]{display:none}
.aonb{border-color:rgba(200,168,120,.28);background:linear-gradient(160deg,rgba(200,168,120,.07),rgba(200,168,120,.015))}
.aonb-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px}
.aonb-h{font-family:'Newsreader',Georgia,serif;font-size:18px;color:#f5f1e9;margin-top:4px}
.aonb-dismiss{flex:none;font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:#9c9fa8;background:transparent;border:1px solid rgba(255,255,255,.14);border-radius:100px;padding:5px 11px;cursor:pointer}
.aonb-dismiss:hover{color:#e6ddca;border-color:rgba(200,168,120,.4)}
.aonb-steps{list-style:none;margin:14px 0 0;padding:0;display:flex;flex-direction:column;gap:9px}
.aonb-step{display:flex;align-items:center;gap:12px;padding:11px 13px;background:rgba(0,0,0,.16);border:1px solid rgba(255,255,255,.06);border-radius:11px}
.aonb-step.is-done{background:rgba(115,240,176,.05);border-color:rgba(115,240,176,.16)}
.aonb-mark{flex:none;width:26px;height:26px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.12)}
.aonb-step.is-done .aonb-mark{background:rgba(115,240,176,.14);border-color:rgba(115,240,176,.4);color:#73f0b0}
.aonb-num{font-size:12px;color:#9c9fa8;font-weight:600}
.aonb-check{width:15px;height:15px;color:#73f0b0}
.aonb-body{display:flex;flex-direction:column;gap:2px;flex:1;min-width:0}
.aonb-title{font-size:14px;color:#f5f1e9;font-weight:600}
.aonb-step.is-done .aonb-title{color:#d7d0c2}
.aonb-why{font-size:12px;color:#9c9fa8;line-height:1.4}
.aonb-cta{flex:none;font-size:12.5px;font-weight:600;color:#1a1408;background:#c8a878;border-radius:8px;padding:7px 13px;text-decoration:none;white-space:nowrap}
.aonb-cta:hover{background:#e0c79a;text-decoration:none}
.aonb-done{flex:none;font-size:11px;letter-spacing:.05em;text-transform:uppercase;color:#73f0b0}
.aonb-practice{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap;margin-top:1rem;padding-top:1rem;border-top:1px solid rgba(255,255,255,.1);color:#c7c3b9;font-size:12px}.aonb-practice select{background:#151613;color:#f5f1e9;border:1px solid #62543c;border-radius:7px;padding:.4rem}.aonb-practice a{color:#e0c79a}.aonb-practice details{flex-basis:100%;line-height:1.5}.aonb-practice summary{cursor:pointer;color:#e0c79a}.aonb-practice details p{margin:.5rem 0;color:#aeb0ae}.aonb-practice button{background:#27251f;color:#f5f1e9;border:1px solid #62543c;border-radius:6px;padding:.35rem .7rem;cursor:pointer}
.rm-usage{display:grid;grid-template-columns:repeat(auto-fit,minmax(155px,1fr));gap:.65rem;margin-top:1rem}.rm-usage__row{display:grid;gap:.25rem;padding:.8rem;border:1px solid rgba(255,255,255,.1);border-radius:10px;background:rgba(0,0,0,.15)}.rm-usage__row strong{color:#f5f1e9}.rm-usage__row span{color:#e0c79a;font-size:13px}.rm-usage__row small{color:#9c9fa8}
@media(max-width:560px){.aonb-step{flex-wrap:wrap}.aonb-cta{margin-left:38px}}

/* --- 2FA backup-code management + security activity feed (2026-08-25) --- */
.rm-2fa-backupmanage{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}
.rm-activity{display:flex;flex-direction:column;gap:1px;background:var(--surface);border:1px solid var(--line);border-radius:12px;overflow:hidden}
.rm-activity-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:11px 16px;border-bottom:1px solid var(--line);font-size:13.5px}
.rm-activity-row:last-child{border-bottom:0}
.rm-activity-act{color:var(--text);font-weight:500}
.rm-activity-when{font-family:var(--mono);font-size:11.5px;color:var(--faint);white-space:nowrap;flex:none}
@media(max-width:480px){.rm-activity-row{flex-direction:column;align-items:flex-start;gap:3px}}

/* Gift / second-key card (2026-08-29) */
.rm-gold{color:var(--gold-hi)}
.rm-guest__cta{display:flex;align-items:center;gap:14px;flex-wrap:wrap}
.rm-guest__status{font-size:13px;color:var(--muted)}
.rm-btn--sm{padding:7px 13px;font-size:13px;border-radius:8px}
.rm-guest__list{margin-top:16px;border-top:1px solid var(--line);padding-top:14px}
.rm-guest__lh{font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--faint);margin-bottom:10px}
.rm-guest__row{display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:9px 0;border-top:1px solid var(--line)}
.rm-guest__row:first-of-type{border-top:0}
.rm-guest__pfx{font-family:var(--mono);font-size:13px;color:var(--gold-hi)}
.rm-guest__meta{font-size:12.5px;color:var(--muted)}
.rm-guest__row .rm-btn{margin-left:auto}
.rm-guest__key{flex-basis:100%;font-family:var(--mono);font-size:13px;color:var(--text);word-break:break-all;background:var(--field,rgba(245,241,233,0.04));border:1px solid var(--line-2);border-radius:8px;padding:8px 10px;margin-top:4px}
.rm-guest__fine{font-size:12px;color:var(--faint);margin-top:14px;line-height:1.5}


/* Marc 05/09/2026 : la meme barre laterale sur toutes les pages membre. Les reglages du compte
   ne disparaissent plus : ils se replient sous une fleche (details/summary, sans JS). */
.rm-side__more{margin:0}
.rm-side__more summary{list-style:none;cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:9px 12px;border-radius:10px;color:var(--muted,#8a8478);font-size:13.5px}
.rm-side__more summary::-webkit-details-marker{display:none}
.rm-side__more summary:hover{color:var(--ink,#f5f1e9);background:rgba(245,241,233,0.04)}
.rm-side__chev{width:8px;height:8px;border-right:1.6px solid currentColor;border-bottom:1.6px solid currentColor;transform:rotate(-45deg);transition:transform .18s ease;margin-right:4px}
.rm-side__more[open] .rm-side__chev{transform:rotate(45deg)}
.rm-side__more > a{padding-left:34px;font-size:13px}
@media (max-width:900px){.rm-side__more{display:none}}


/* Community hub (2026-09-05) : pulse, top 3, setups, Discord ; carte dashboard. */
.cm-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:14px}
.cm-pulse__grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:12px;margin-bottom:12px}
.cm-pulse__grid--dash{margin-bottom:4px}
.cm-pulse__it{display:flex;flex-direction:column;gap:4px;padding:12px 14px;border:1px solid var(--line);border-radius:12px;background:var(--field)}
.cm-pulse__v{font-family:var(--mono);font-size:24px;color:var(--text);letter-spacing:-0.01em}
.cm-pulse__k{font-size:12px;color:var(--muted-2)}
.cm-pulse__at{font-family:var(--mono);font-size:11px;color:var(--faint)}
.cm-top3{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}
.cm-top3 li{display:grid;grid-template-columns:28px 1fr auto;align-items:center;gap:10px;padding:10px 12px;border:1px solid var(--line);border-radius:10px;background:var(--field)}
.cm-top3__rank{font-family:var(--mono);font-size:13px;color:var(--gold);text-align:center}
.cm-top3__alias{font-size:14px;color:var(--text);font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.cm-top3__score{font-family:var(--mono);font-size:14px;color:var(--text)}
.cm-top3__score small{color:var(--muted-2);font-size:11px;font-family:var(--sans)}
.cm-setups{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}
.cm-setups li{display:flex;justify-content:space-between;gap:12px;align-items:baseline;padding:8px 12px;border:1px solid var(--line);border-radius:10px;background:var(--field);font-size:14px;color:var(--text)}
.cm-setups li small{font-family:var(--mono);font-size:11px;color:var(--muted-2);white-space:nowrap}
.rm-mt-sm{margin-top:10px}

/* ===== GEX THEMES (GENERATED - do not edit, run scripts/gen-themes.py) ===== */
/* -- theme dark -- */
html[data-theme="dark"] { --bg: #000000; --surface: #0b0c0e; --surface-2: #0c0d10; --field: #040405; --muted: #8f97a3; --faint: #7d8590; --gold-ink: #050506; }
html[data-theme="dark"] .rm-top { background: rgba(3, 3, 4, 0.9); }
html[data-theme="dark"] dialog.cs-modal::backdrop { background: rgba(3, 4, 5, 0.72); }
html[data-theme="dark"] .cs-modal__inner { background: #0c0d10; }
html[data-theme="dark"] .cs-modal__select { background: rgba(4, 4, 4, 0.4); }
html[data-theme="dark"] #acctIntro { background: #050403; }
html[data-theme="dark"] .ai__vig { background: radial-gradient(120% 90% at 50% 50%,transparent 28%,rgba(4, 4, 4, .55) 76%,rgba(4, 4, 4, .93) 100%); }
html[data-theme="dark"] .ai__mark { color: #0b0c0e; }
html[data-theme="dark"] .ai__s { color: #9aa3ae; }
html[data-theme="dark"] .ai__btn { color: #0b0c0e; }
html[data-theme="dark"] .ai__skipgate { color: #6b7380; }
html[data-theme="dark"] .ai__skipgate:hover { color: #9aa3ae; }
html[data-theme="dark"] .ai__tile { border-color: #1a1c21; }
html[data-theme="dark"] .ai__tile { background: linear-gradient(180deg,rgba(17, 18, 22, .93),rgba(5, 4, 3, .82)); }
html[data-theme="dark"] .ai__tile p { color: #9aa3ae; }
html[data-theme="dark"] .ai__skip { background: rgba(6, 5, 4, .6); }
html[data-theme="dark"] .ai__skip { color: #9aa3ae; }
html[data-theme="dark"] .ai__skip { border-color: #1a1c21; }
html[data-theme="dark"] .aonb-dismiss { color: #8f97a3; }
html[data-theme="dark"] .aonb-step { background: rgba(4, 4, 4, .16); }
html[data-theme="dark"] .aonb-num { color: #8f97a3; }
html[data-theme="dark"] .aonb-why { color: #8f97a3; }
html[data-theme="dark"] .aonb-cta { color: #050506; }
/* -- theme white -- */
html[data-theme="white"] { --bg: #faf8f4; --surface: #f4f0e8; --surface-2: #f2ede4; --field: #fbfaf7; --line: rgba(36, 31, 22, 0.08); --line-2: rgba(36, 31, 22, 0.12); --text: #241f16; --muted: #6c675d; --muted-2: #8a8478; --faint: #8a8478; --gold: #a5803c; --gold-hi: #b08a45; --gold-ink: #fdfbf7; --green: #5d7a45; --red: #a05656; }
html[data-theme="white"] ::selection { background: rgba(165, 128, 60, 0.28); }
html[data-theme="white"] ::selection { color: #211d16; }
html[data-theme="white"] .rm-top { background: rgba(252, 251, 249, 0.9); }
html[data-theme="white"] .rm-top { border-bottom-color: rgba(36, 31, 22, 0.07); }
html[data-theme="white"] .rm-brand img { border-color: rgba(165, 128, 60, 0.22); }
html[data-theme="white"] .rm-avatar { background: linear-gradient(140deg,#a5803c,#a07f4e); }
html[data-theme="white"] .rm-top__email { color: #6e6759; }
html[data-theme="white"] .rm-side a:hover, html[data-theme="white"] .rm-side button:hover { background: rgba(36, 31, 22, 0.04); }
html[data-theme="white"] .rm-side a.is-active, html[data-theme="white"] .rm-side button.is-active { color: #372d1b; }
html[data-theme="white"] .rm-side a.is-active, html[data-theme="white"] .rm-side button.is-active { background: rgba(165, 128, 60, 0.12); }
html[data-theme="white"] .rm-card__ic { background: rgba(165, 128, 60, 0.1); }
html[data-theme="white"] .rm-card__ic { border-color: rgba(165, 128, 60, 0.2); }
html[data-theme="white"] .rm-status[data-kind="error"] { color: #371f1b; }
html[data-theme="white"] .rm-status[data-kind="ok"] { color: #2d7c4e; }
html[data-theme="white"] .rm-pill.is-on { background: rgba(93, 122, 69, 0.12); }
html[data-theme="white"] .rm-pill.is-on { border-color: rgba(93, 122, 69, 0.32); }
html[data-theme="white"] .rm-pill.is-soon { background: rgba(165, 128, 60, 0.12); }
html[data-theme="white"] .rm-pill.is-soon { border-color: rgba(165, 128, 60, 0.4); }
html[data-theme="white"] .rm-pill.is-off { border-color: rgba(160, 86, 86, 0.35); }
html[data-theme="white"] .rm-btn:hover { background: rgba(36, 31, 22, 0.04); }
html[data-theme="white"] .rm-btn--ghost { border-color: rgba(165, 128, 60, 0.4); }
html[data-theme="white"] .rm-btn--ghost:hover { background: rgba(165, 128, 60, 0.06); }
html[data-theme="white"] .rm-btn--danger { border-color: rgba(160, 86, 86, 0.4); }
html[data-theme="white"] .rm-btn--danger { color: #8a4f4f; }
html[data-theme="white"] .rm-btn--danger:hover { background: rgba(160, 86, 86, 0.08); }
html[data-theme="white"] .rm-kv>div { border-bottom-color: rgba(36, 31, 22, 0.05); }
html[data-theme="white"] .rm-note { background: rgba(165, 128, 60, 0.06); }
html[data-theme="white"] .rm-note { color: #6e6553; }
html[data-theme="white"] .rm-note { border-color: rgba(165, 128, 60, 0.18); }
html[data-theme="white"] .rm-soon { border-color: rgba(36, 31, 22, 0.18); }
html[data-theme="white"] .rm-empty { color: #6e6759; }
html[data-theme="white"] .rm-empty { border-color: rgba(165, 128, 60, 0.3); }
html[data-theme="white"] .rm-empty { background: repeating-linear-gradient(135deg,transparent,transparent 9px,rgba(165, 128, 60, 0.04) 9px,rgba(165, 128, 60, 0.04) 18px); }
html[data-theme="white"] .rm-keyrow { border-color: rgba(36, 31, 22, 0.1); }
html[data-theme="white"] .rm-key { color: #6e6553; }
html[data-theme="white"] .rm-notif { border-bottom-color: rgba(36, 31, 22, 0.05); }
html[data-theme="white"] .rm-switch { background: rgba(36, 31, 22, 0.14); }
html[data-theme="white"] .rm-backupgrid code { color: #6e6553; }
html[data-theme="white"] .rm-pill.is-off { border-color: rgba(160, 86, 86, 0.4); }
html[data-theme="white"] .rm-pill.is-off { background: rgba(160, 86, 86, 0.08); }
html[data-theme="white"] .rm-avatarblock__preview { background: linear-gradient(145deg,#b08a45,#a07f4e); }
html[data-theme="white"] .rm-avatarblock__preview { border-color: rgba(165, 128, 60, 0.4); }
html[data-theme="white"] dialog.cs-modal { color: #3a352b; }
html[data-theme="white"] dialog.cs-modal::backdrop { background: rgba(241, 243, 246, 0.72); }
html[data-theme="white"] .cs-modal__inner { background: #f2efe9; }
html[data-theme="white"] .cs-modal__close { color: #6e6553; }
html[data-theme="white"] .cs-modal__close:hover { color: #3a352b; }
html[data-theme="white"] .cs-modal__title { color: #3a352b; }
html[data-theme="white"] .cs-modal__lead { color: #372f1b; }
html[data-theme="white"] .cs-modal__label { color: #6e6553; }
html[data-theme="white"] .cs-modal__select { background: rgba(244, 244, 244, 0.4); }
html[data-theme="white"] .cs-modal__btn { color: #3a352b; }
html[data-theme="white"] .cs-modal__status[data-kind="ok"] { color: #1b3728; }
html[data-theme="white"] .cs-modal__status[data-kind="warn"] { color: #372c1b; }
html[data-theme="white"] .cs-modal__status[data-kind="pending"] { color: #6e6553; }
html[data-theme="white"] #acctIntro { background: #f6f3f1; }
html[data-theme="white"] .ai__vig { background: radial-gradient(120% 90% at 50% 50%,transparent 28%,rgba(244, 244, 244, .55) 76%,rgba(244, 244, 244, .93) 100%); }
html[data-theme="white"] .ai__mark { color: #f4f0e8; }
html[data-theme="white"] .ai__mark { background: linear-gradient(150deg,#c3a05f,#8a6a30); }
html[data-theme="white"] .ai__t { color: #211d16; }
html[data-theme="white"] .ai__s { color: #75705f; }
html[data-theme="white"] .ai__btn { color: #f4f0e8; }
html[data-theme="white"] .ai__btn { background: linear-gradient(180deg,#c3a05f,#9a7434); }
html[data-theme="white"] .ai__skipgate { color: #9c968a; }
html[data-theme="white"] .ai__skipgate:hover { color: #75705f; }
html[data-theme="white"] .ai__line { color: #211d16; }
html[data-theme="white"] .ai__line em { color: #c3a05f; }
html[data-theme="white"] .ai__tile { border-color: #e7dfd0; }
html[data-theme="white"] .ai__tile { background: linear-gradient(180deg,rgba(236, 229, 216, .93),rgba(246, 244, 241, .82)); }
html[data-theme="white"] .ai__tile span { color: #9a7434; }
html[data-theme="white"] .ai__tile b { color: #211d16; }
html[data-theme="white"] .ai__tile p { color: #75705f; }
html[data-theme="white"] .ai__skip { background: rgba(246, 244, 241, .6); }
html[data-theme="white"] .ai__skip { color: #75705f; }
html[data-theme="white"] .ai__skip { border-color: #e7dfd0; }
html[data-theme="white"] .ai__skip:hover { color: #211d16; }
html[data-theme="white"] .ai__skip:hover { border-color: #8a6a30; }
html[data-theme="white"] .ai__bar i { background: linear-gradient(90deg,#8a6a30,#c3a05f); }
html[data-theme="white"] .rm-aff-promo { border-color: rgba(154, 116, 52, .32); }
html[data-theme="white"] .rm-aff-promo { background: linear-gradient(160deg,rgba(154, 116, 52, .09),rgba(154, 116, 52, .02)); }
html[data-theme="white"] .rm-aff-promo__text strong { color: #8f6f2c; }
html[data-theme="white"] .aonb { border-color: rgba(154, 116, 52, .28); }
html[data-theme="white"] .aonb { background: linear-gradient(160deg,rgba(154, 116, 52, .07),rgba(154, 116, 52, .015)); }
html[data-theme="white"] .aonb-h { color: #241f16; }
html[data-theme="white"] .aonb-dismiss { color: #6c675d; }
html[data-theme="white"] .aonb-dismiss:hover { color: #372e1b; }
html[data-theme="white"] .aonb-dismiss:hover { border-color: rgba(154, 116, 52, .4); }
html[data-theme="white"] .aonb-step { background: rgba(244, 244, 244, .16); }
html[data-theme="white"] .aonb-step.is-done { background: rgba(28, 125, 79, .05); }
html[data-theme="white"] .aonb-step.is-done { border-color: rgba(28, 125, 79, .16); }
html[data-theme="white"] .aonb-step.is-done .aonb-mark { background: rgba(28, 125, 79, .14); }
html[data-theme="white"] .aonb-step.is-done .aonb-mark { border-color: rgba(28, 125, 79, .4); }
html[data-theme="white"] .aonb-step.is-done .aonb-mark { color: #1c7d4f; }
html[data-theme="white"] .aonb-num { color: #6c675d; }
html[data-theme="white"] .aonb-check { color: #1c7d4f; }
html[data-theme="white"] .aonb-title { color: #241f16; }
html[data-theme="white"] .aonb-step.is-done .aonb-title { color: #6e6553; }
html[data-theme="white"] .aonb-why { color: #6c675d; }
html[data-theme="white"] .aonb-cta { color: #fdfbf7; }
html[data-theme="white"] .aonb-cta { background: #9a7434; }
html[data-theme="white"] .aonb-cta:hover { background: #b08a45; }
html[data-theme="white"] .aonb-done { color: #1c7d4f; }
html[data-theme="white"] .rm-guest__key { background: var(--field,rgba(36, 31, 22, 0.04)); }
html[data-theme="white"] .rm-side__more summary:hover { background: rgba(36, 31, 22, 0.04); }
html[data-theme="white"] .rm-side__more summary:hover { color: var(--ink,#241f16); }
/* ===== END GEX THEMES ===== */

















































/* ===== GEX THEMES MANUAL ===== */
.theme-pick .rm-btn[aria-pressed="true"] { border-color: currentColor; font-weight: 700; }
