/* 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)}
.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)}
