/* ═══════════════════════════════════════════════════════════════════
   NEXUS DESIGN SYSTEM v2 — aligné DA lestudiogeek.fr
   Classes préfixées .nx- (zéro conflit avec styles.css).
   Application progressive, page par page.
   ═══════════════════════════════════════════════════════════════════ */

@import url('https://fonts.googleapis.com/css2?family=Orbitron:wght@400;600;700;900&family=Exo+2:wght@300;400;500;600;700&display=swap');

:root{
  --nx-dark:#1c2636;
  --nx-darker:#151d2b;
  --nx-mid:#374b69;
  --nx-light:#d7e9ff;
  --nx-muted:rgba(215,233,255,.6);
  --nx-dim:#96a3b5;
  --nx-accent:#c02f5c;
  --nx-accent-2:#a72850;
  --nx-photon:#7cc7ff;
  --nx-stroke:rgba(215,233,255,.1);
  --nx-stroke-m:rgba(215,233,255,.18);
  --nx-panel:rgba(55,75,105,.32);
  --nx-panel-2:rgba(55,75,105,.45);
  --nx-glow-red:0 0 26px rgba(167,40,80,.4);
  --nx-r:14px; --nx-r-lg:18px;
}
.nx{font-family:'Exo 2',sans-serif;color:var(--nx-light)}
.nx *{box-sizing:border-box}
.nx-orb{font-family:'Orbitron',sans-serif}
.nx-muted{color:var(--nx-muted)} .nx-dim{color:var(--nx-dim)} .nx-accent{color:var(--nx-accent)}

/* ── Section heading ─────────────────────────────────────────── */
.nx-section{margin-bottom:34px}
.nx-sec-head{display:flex;align-items:center;gap:14px;margin-bottom:18px}
.nx-sec-head h2{font-family:'Orbitron',sans-serif;font-size:14px;font-weight:600;letter-spacing:.2em;
  text-transform:uppercase;color:var(--nx-dim);margin:0}
.nx-sec-head .nx-ln{flex:1;height:1px;background:linear-gradient(90deg,var(--nx-stroke),transparent)}

/* ── Grids ───────────────────────────────────────────────────── */
.nx-grid{display:grid;gap:16px}
.nx-grid-2{grid-template-columns:repeat(auto-fit,minmax(270px,1fr))}
.nx-grid-3{grid-template-columns:repeat(auto-fit,minmax(210px,1fr))}
.nx-grid-4{grid-template-columns:repeat(auto-fit,minmax(170px,1fr))}

/* ── Card / panel ────────────────────────────────────────────── */
.nx-card{background:var(--nx-panel);border:1px solid var(--nx-stroke);
  border-radius:var(--nx-r-lg);padding:22px 24px;transition:.2s}
.nx-card:hover{border-color:var(--nx-stroke-m);background:var(--nx-panel-2)}

/* ── Hero (en-tête profil) ───────────────────────────────────── */
.nx-hero{display:flex;align-items:center;gap:24px;flex-wrap:wrap;
  background:
    radial-gradient(420px 200px at 90% -40%, rgba(167,40,80,.18), transparent 70%),
    var(--nx-panel-2);
  border:1px solid var(--nx-stroke);border-radius:var(--nx-r-lg);padding:28px}
.nx-hero-avatar{width:84px;height:84px;border-radius:20px;display:grid;place-items:center;
  font-family:'Orbitron',sans-serif;font-weight:900;font-size:34px;color:#fff;
  background:linear-gradient(135deg,var(--nx-accent-2),#c9305d);box-shadow:var(--nx-glow-red)}
.nx-hero-main{flex:1;min-width:220px}
.nx-hero-name{font-family:'Orbitron',sans-serif;font-size:24px;font-weight:700;letter-spacing:.04em;margin:0 0 4px}
.nx-hero-id{font-size:13px;color:var(--nx-dim);letter-spacing:.06em}
.nx-hero-stats{display:flex;gap:26px;margin-top:16px;flex-wrap:wrap}
.nx-hero-stat .v{font-family:'Orbitron',sans-serif;font-size:22px;font-weight:700;line-height:1}
.nx-hero-stat .v.photon{color:var(--nx-photon)}
.nx-hero-stat .k{font-size:12px;color:var(--nx-muted);letter-spacing:.05em;text-transform:uppercase;margin-top:4px}

/* ── Stat card ───────────────────────────────────────────────── */
.nx-stat{background:var(--nx-panel);border:1px solid var(--nx-stroke);border-radius:var(--nx-r-lg);
  padding:20px 22px;transition:.2s}
.nx-stat:hover{border-color:var(--nx-stroke-m);background:var(--nx-panel-2)}
.nx-stat-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:13px}
.nx-stat-k{font-size:13px;color:var(--nx-muted);letter-spacing:.03em}
.nx-stat-ic{width:38px;height:38px;border-radius:11px;display:grid;place-items:center;font-size:18px;
  background:rgba(215,233,255,.05);border:1px solid var(--nx-stroke)}
.nx-stat-ic.red{background:rgba(167,40,80,.14);border-color:rgba(167,40,80,.3)}
.nx-stat-val{font-family:'Orbitron',sans-serif;font-size:28px;font-weight:700;line-height:1}
.nx-stat-sub{margin-top:9px;font-size:13px;color:var(--nx-accent);font-weight:600}
.nx-stat-sub.mut{color:var(--nx-muted);font-weight:400}

/* ── Level + XP ──────────────────────────────────────────────── */
.nx-level{display:flex;align-items:center;gap:24px;flex-wrap:wrap}
.nx-lvl-badge{width:88px;height:88px;border-radius:20px;display:grid;place-items:center;
  font-family:'Orbitron',sans-serif;font-weight:900;font-size:30px;color:#fff;
  background:linear-gradient(135deg,var(--nx-accent-2),#c9305d);box-shadow:var(--nx-glow-red)}
.nx-lvl-body{flex:1;min-width:230px}
.nx-lvl-row{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:10px}
.nx-lvl-title{font-family:'Orbitron',sans-serif;font-size:16px;letter-spacing:.03em}
.nx-lvl-xp{font-size:13px;color:var(--nx-muted)}
.nx-xpbar{height:12px;border-radius:999px;background:rgba(215,233,255,.08);
  overflow:hidden;border:1px solid var(--nx-stroke)}
.nx-xpfill{height:100%;border-radius:999px;background:linear-gradient(90deg,var(--nx-photon),var(--nx-light));
  box-shadow:0 0 16px rgba(124,199,255,.45);transition:width .5s ease}
.nx-lvl-note{margin-top:10px;font-size:13px;color:var(--nx-muted)}

/* ── Buttons ─────────────────────────────────────────────────── */
.nx-btn{font-family:'Orbitron',sans-serif;font-weight:600;font-size:13px;letter-spacing:.04em;
  text-transform:uppercase;padding:13px 24px;border-radius:12px;border:1px solid var(--nx-stroke-m);
  cursor:pointer;transition:.18s;background:rgba(255,255,255,.04);color:var(--nx-light);
  display:inline-flex;align-items:center;gap:8px;text-decoration:none}
.nx-btn:hover{background:rgba(255,255,255,.08)}
.nx-btn--primary{background:linear-gradient(135deg,var(--nx-accent-2),#c9305d);
  border-color:rgba(255,255,255,.12);box-shadow:var(--nx-glow-red);color:#fff}
.nx-btn--primary:hover{filter:brightness(1.08)}
.nx-btn--ghost:hover{border-color:rgba(215,233,255,.4)}

/* ── Form ────────────────────────────────────────────────────── */
.nx-field{margin-bottom:16px}
.nx-label{display:block;font-size:13px;color:var(--nx-muted);margin-bottom:7px;letter-spacing:.03em}
.nx-input{width:100%;padding:12px 14px;border-radius:12px;border:1px solid var(--nx-stroke-m);
  background:rgba(28,38,54,.8);color:var(--nx-light);font-family:'Exo 2',sans-serif;font-size:15px;transition:.15s}
.nx-input:focus{outline:none;border-color:rgba(215,233,255,.4);box-shadow:0 0 12px rgba(215,233,255,.1)}

/* ── Accordion ───────────────────────────────────────────────── */
.nx-acc{background:var(--nx-panel);border:1px solid var(--nx-stroke);border-radius:var(--nx-r-lg);
  margin-bottom:14px;overflow:hidden}
.nx-acc>summary{font-family:'Orbitron',sans-serif;font-size:14px;letter-spacing:.05em;padding:16px 22px;
  cursor:pointer;list-style:none;display:flex;align-items:center;justify-content:space-between}
.nx-acc>summary::-webkit-details-marker{display:none}
.nx-acc>summary::after{content:'+';color:var(--nx-dim);font-size:18px}
.nx-acc[open]>summary::after{content:'–'}
.nx-acc>summary:hover{background:rgba(255,255,255,.03)}
.nx-acc-body{padding:4px 22px 20px}

/* ── Danger zone ─────────────────────────────────────────────── */
.nx-danger{background:rgba(180,30,50,.08);border:1px solid rgba(220,50,70,.25);
  border-radius:var(--nx-r-lg);padding:24px}
.nx-danger h3{font-family:'Orbitron',sans-serif;color:#e05555;margin:0 0 8px;font-size:16px}

/* ── Section title (gros, type page) ─────────────────────────── */
.nx-page-title{font-family:'Orbitron',sans-serif;font-size:26px;font-weight:700;letter-spacing:.04em;
  margin:0 0 26px;display:flex;align-items:center;gap:12px}

/* ── Carte d'identité : stats complémentaires + tag titre ────── */
.nx-idstats{display:flex;gap:12px;flex-wrap:wrap;margin-top:16px}
.nx-idstat{background:rgba(28,38,54,.5);border:1px solid var(--nx-stroke);border-radius:12px;padding:10px 16px}
.nx-idstat .v{font-family:'Orbitron',sans-serif;font-weight:700;font-size:17px}
.nx-idstat .k{font-size:11px;color:var(--nx-muted);letter-spacing:.03em;margin-top:2px}
.nx-tag{display:inline-flex;align-items:center;gap:6px;background:rgba(167,40,80,.16);border:1px solid rgba(167,40,80,.4);
  color:#ff9bb5;font-family:'Orbitron',sans-serif;font-size:11px;letter-spacing:.05em;padding:4px 11px;border-radius:999px}

/* ── Grille de métriques (tableau de bord) ───────────────────── */
.nx-sublabel{font-family:'Orbitron',sans-serif;font-size:11px;letter-spacing:.16em;text-transform:uppercase;
  color:var(--nx-dim);margin:18px 0 12px}
.nx-metric{background:rgba(55,75,105,.28);border:1px solid var(--nx-stroke);border-radius:14px;padding:15px 18px}
.nx-metric .v{font-family:'Orbitron',sans-serif;font-size:23px;font-weight:700;line-height:1}
.nx-metric .v.ph{color:var(--nx-photon)} .nx-metric .v.gold{color:#ffcb5c}
.nx-metric .k{font-size:12px;color:var(--nx-muted);margin-top:6px;letter-spacing:.02em}

/* ── Titre de carte + code parrain ───────────────────────────── */
.nx-card-title{font-family:'Orbitron',sans-serif;font-size:15px;margin:0 0 14px;color:var(--nx-light);font-weight:600}
.nx-referral{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.nx-referral input{flex:1;min-width:140px;text-align:center;font-family:'Orbitron',sans-serif;font-size:18px;
  letter-spacing:3px;color:var(--nx-photon);background:rgba(124,199,255,.06);border:1px solid rgba(124,199,255,.3);
  border-radius:12px;padding:12px}

/* ════════ HEADER (topbar + navigation) ════════ */
.nx-hd{background:linear-gradient(180deg,rgba(10,16,28,.9),rgba(10,16,28,.6));
  border:1px solid var(--nx-stroke);border-radius:var(--nx-r-lg);margin-bottom:24px;backdrop-filter:blur(12px)}
.nx-hd-in{padding:14px 24px;display:flex;align-items:center;gap:22px;flex-wrap:wrap}
.nx-hd-brand{display:flex;align-items:center;gap:12px}
.nx-hd-logo{width:44px;height:44px;border-radius:13px;display:grid;place-items:center;font-size:22px;
  background:rgba(215,233,255,.06);border:1px solid var(--nx-stroke-m)}
.nx-hd-name{font-family:'Orbitron',sans-serif;font-weight:900;letter-spacing:.16em;font-size:18px;color:var(--nx-light)}
.nx-hd-name b{color:var(--nx-accent)}
.nx-hd-back{font-family:'Orbitron',sans-serif;font-size:10px;letter-spacing:.1em;color:var(--nx-muted);
  text-decoration:none;display:flex;align-items:center;gap:5px;margin-top:3px}
.nx-hd-back:hover{color:var(--nx-light)}
.nx-hd-spacer{flex:1}
.nx-hd-user{display:flex;align-items:center;gap:16px;flex-wrap:wrap}
.nx-hd-lvl{width:50px;height:50px;border-radius:14px;display:grid;place-items:center;flex-shrink:0;
  font-family:'Orbitron',sans-serif;font-weight:900;font-size:20px;color:#fff;
  background:linear-gradient(135deg,var(--nx-accent-2),#c9305d);box-shadow:var(--nx-glow-red)}
.nx-hd-id{min-width:180px}
.nx-hd-welcome{font-family:'Orbitron',sans-serif;font-size:14px;font-weight:600;color:var(--nx-light)}
.nx-hd-welcome .grade{color:var(--nx-photon)}
.nx-hd-xp{display:flex;align-items:center;gap:8px;margin-top:6px}
.nx-hd-xp-track{flex:1;height:8px;border-radius:999px;background:rgba(215,233,255,.1);overflow:hidden;border:1px solid var(--nx-stroke)}
.nx-hd-xp-fill{height:100%;border-radius:999px;background:linear-gradient(90deg,var(--nx-photon),var(--nx-light));box-shadow:0 0 10px rgba(124,199,255,.5);transition:width .5s ease}
.nx-hd-xp-text{font-size:10px;color:var(--nx-muted);font-family:'Orbitron',sans-serif;white-space:nowrap}
.nx-hd-photons{display:flex;align-items:center;gap:7px;background:rgba(124,199,255,.08);
  border:1px solid rgba(124,199,255,.28);border-radius:999px;padding:8px 16px}
.nx-hd-photons .val{font-family:'Orbitron',sans-serif;font-weight:700;font-size:16px;color:var(--nx-photon)}
.nx-hd-photons .lbl{font-size:11px;color:var(--nx-muted);text-transform:uppercase;letter-spacing:.05em}
.nx-hd-actions{display:flex;align-items:center;gap:8px}
.nx-hd-btn{width:42px;height:42px;border-radius:12px;display:grid;place-items:center;font-size:17px;cursor:pointer;
  background:rgba(215,233,255,.05);border:1px solid var(--nx-stroke-m);color:var(--nx-light);transition:.15s}
.nx-hd-btn:hover{background:rgba(215,233,255,.1)}
.nx-hd-btn.admin{background:rgba(167,40,80,.18);border-color:rgba(167,40,80,.4)}
.nx-hd-btn.logout:hover{background:rgba(255,80,80,.15);border-color:rgba(255,80,80,.4);color:#ff6b6b}

.nx-nav{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:28px}
.nx-nav-tab{position:relative;display:inline-flex;flex:0 0 auto !important;align-items:center;gap:8px;padding:11px 20px !important;border-radius:12px !important;
  font-family:'Orbitron',sans-serif;font-size:12px;letter-spacing:.06em;text-transform:uppercase;
  color:var(--nx-muted);cursor:pointer;background:transparent !important;border:1px solid transparent !important;transition:.15s}
.nx-nav-tab:hover{color:var(--nx-light);background:rgba(215,233,255,.04);border-color:var(--nx-stroke)}
.nx-nav-tab.active{color:#fff;background:linear-gradient(135deg,var(--nx-accent-2),#c9305d);
  box-shadow:var(--nx-glow-red);border-color:transparent}
.nx-nav-badge{position:absolute;top:-6px;right:-6px;background:#ff3b3b;color:#fff;border-radius:50%;
  width:20px;height:20px;font-size:11px;font-weight:700;line-height:20px;text-align:center;
  align-items:center;justify-content:center;box-shadow:0 0 10px rgba(255,59,59,.7);padding:0}

@media(max-width:1024px){
  .nx-hd-in{gap:14px}
  .nx-hd-spacer{display:none}
  .nx-hd-id{min-width:140px}
}

/* ════════ ACCUEIL (hero premium + promo) ════════ */
.nx-hero-home{position:relative;overflow:hidden;border-radius:24px;padding:54px 48px;margin-bottom:24px;
  background:linear-gradient(135deg,rgba(167,40,80,.22),rgba(28,38,54,.6) 55%,rgba(124,199,255,.1));
  border:1px solid var(--nx-stroke-m)}
.nx-hero-home::before{content:'';position:absolute;inset:0;pointer-events:none;
  background-image:linear-gradient(rgba(124,199,255,.05) 1px,transparent 1px),linear-gradient(90deg,rgba(124,199,255,.05) 1px,transparent 1px);
  background-size:38px 38px;-webkit-mask-image:radial-gradient(circle at 72% 40%,#000,transparent 75%);mask-image:radial-gradient(circle at 72% 40%,#000,transparent 75%)}
.nx-hero-orb{position:absolute;right:-40px;top:-30px;font-size:200px;opacity:.16;pointer-events:none}
.nx-hero-eyebrow{position:relative;font-family:'Orbitron',sans-serif;font-size:12px;letter-spacing:.4em;
  text-transform:uppercase;color:var(--nx-photon);text-shadow:0 0 14px rgba(124,199,255,.5);margin-bottom:14px}
.nx-hero-bigtitle{position:relative;font-family:'Orbitron',sans-serif;font-size:46px;font-weight:900;line-height:1.05;
  letter-spacing:.02em;color:#fff;margin:0 0 18px;max-width:660px}
.nx-hero-bigtitle .hl{color:#e05a7a;text-shadow:0 0 34px rgba(224,90,122,.5)}
.nx-hero-bigsub{position:relative;font-size:16px;line-height:1.8;color:rgba(215,233,255,.78);max-width:600px;margin:0 0 30px}
.nx-hero-cta{position:relative;display:flex;gap:14px;flex-wrap:wrap}
.nx-btn-xl{font-family:'Orbitron',sans-serif;font-weight:700;font-size:14px;letter-spacing:.06em;text-transform:uppercase;
  padding:16px 30px;border-radius:14px;border:1px solid transparent;cursor:pointer;transition:.18s;
  display:inline-flex;align-items:center;gap:9px;background:rgba(215,233,255,.06);color:var(--nx-light)}
.nx-btn-xl.primary{background:linear-gradient(135deg,var(--nx-accent-2),#c9305d);color:#fff;box-shadow:0 0 26px rgba(167,40,80,.45)}
.nx-btn-xl.primary:hover{transform:translateY(-2px);box-shadow:0 0 38px rgba(167,40,80,.6)}
.nx-btn-xl.ghost{border-color:var(--nx-stroke-m)}
.nx-btn-xl.ghost:hover{border-color:var(--nx-photon);color:#fff}

.nx-promo{position:relative;display:flex;align-items:center;gap:20px;flex-wrap:wrap;
  border-radius:18px;padding:24px 28px;margin-bottom:24px;
  background:linear-gradient(135deg,rgba(167,40,80,.2),rgba(28,38,54,.5));border:1px solid rgba(167,40,80,.35)}
.nx-promo-ic{font-size:40px;filter:drop-shadow(0 0 16px rgba(224,90,122,.5))}
.nx-promo-txt{flex:1;min-width:200px}
.nx-promo-txt h3{font-family:'Orbitron',sans-serif;font-size:16px;color:#fff;margin:0 0 4px;letter-spacing:.04em}
.nx-promo-txt p{color:var(--nx-muted);font-size:13px;margin:0}
.nx-promo-form{display:flex;gap:10px;flex:1;min-width:260px}
.nx-promo-form input{flex:1;padding:13px 16px;border-radius:12px;border:1px solid var(--nx-stroke-m);
  background:rgba(215,233,255,.05);color:var(--nx-light);font-family:'Orbitron',sans-serif;text-transform:uppercase;
  letter-spacing:2px;font-size:14px;text-align:center}
.nx-promo-form input:focus{outline:none;border-color:#e05a7a;box-shadow:0 0 14px rgba(224,90,122,.25)}
.nx-promo-form button{padding:13px 26px;border-radius:12px;border:none;cursor:pointer;
  font-family:'Orbitron',sans-serif;font-weight:700;text-transform:uppercase;letter-spacing:.05em;font-size:13px;
  background:linear-gradient(135deg,var(--nx-accent-2),#c9305d);color:#fff;box-shadow:0 0 20px rgba(167,40,80,.4);white-space:nowrap}

.nx-cols{display:grid;grid-template-columns:1.6fr 1fr;gap:20px}
.nx-earn-step{display:flex;gap:12px;align-items:flex-start;padding:13px 0;border-bottom:1px solid rgba(215,233,255,.06)}
.nx-earn-step:last-child{border:none}
.nx-earn-num{width:30px;height:30px;border-radius:9px;flex-shrink:0;display:grid;place-items:center;
  font-family:'Orbitron',sans-serif;font-weight:700;font-size:14px;color:#fff;background:linear-gradient(135deg,var(--nx-accent-2),#c9305d)}
.nx-earn-step .t{font-weight:600;color:var(--nx-light);font-size:14px}
.nx-earn-step .d{font-size:12px;color:var(--nx-muted);margin-top:2px}
@media(max-width:760px){
  .nx-cols{grid-template-columns:1fr}
  .nx-hero-bigtitle{font-size:32px}
  .nx-hero-orb{display:none}
  .nx-hero-home{padding:38px 26px}
  .nx-promo{flex-direction:column;align-items:stretch;text-align:center}
  .nx-promo-form{min-width:100%;flex-direction:column}
  .nx-promo-form input,.nx-promo-form button{width:100%;min-width:0}
}

/* ════════ BOUTIQUE ════════ */
.nx-balance{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:14px;
  background:linear-gradient(135deg,rgba(124,199,255,.14),rgba(28,38,54,.6));
  border:1px solid rgba(124,199,255,.3);border-radius:18px;padding:18px 26px;margin-bottom:30px}
.nx-balance-l{display:flex;align-items:center;gap:14px}
.nx-balance .ic{font-size:30px;filter:drop-shadow(0 0 12px rgba(124,199,255,.5))}
.nx-balance .lbl{font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--nx-muted);font-family:'Orbitron',sans-serif}
.nx-balance .val{font-family:'Orbitron',sans-serif;font-size:30px;font-weight:900;color:var(--nx-photon);line-height:1;text-shadow:0 0 18px rgba(124,199,255,.4)}
.nx-balance .val small{font-size:14px;color:var(--nx-muted);font-weight:600}
.nx-balance .hint{font-size:12px;color:var(--nx-muted);font-style:italic;text-align:right}

/* Cartes de collection (générées par displayCollections) — restylées premium via .nx */
.nx .collections-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:24px}
.nx .collection-item{position:relative;background:linear-gradient(180deg,rgba(55,75,105,.45),rgba(18,26,42,.9));
  border:1px solid rgba(124,199,255,.18);border-radius:20px;overflow:hidden;transition:.25s;display:flex;flex-direction:column;
  box-shadow:0 10px 30px rgba(0,0,0,.4)}
.nx .collection-item::after{content:'';position:absolute;top:0;left:0;right:0;height:2px;z-index:3;
  background:linear-gradient(90deg,transparent,rgba(124,199,255,.8),rgba(167,40,80,.8),transparent);opacity:.7}
.nx .collection-item:hover{transform:translateY(-8px);border-color:rgba(167,40,80,.6);
  box-shadow:0 24px 56px rgba(0,0,0,.55),0 0 46px rgba(167,40,80,.28)}
.nx .collection-cover{min-height:220px !important;overflow:hidden;position:relative;
  background:radial-gradient(180px 130px at 50% 38%,rgba(124,199,255,.25),transparent 65%),linear-gradient(160deg,#2c3656,#141c2e) !important;
  border-bottom:1px solid var(--nx-stroke)}
.nx .collection-cover img{max-width:84%;max-height:200px;object-fit:contain;transition:transform .35s ease;
  filter:drop-shadow(0 10px 22px rgba(0,0,0,.6))}
.nx .collection-item:hover .collection-cover img{transform:scale(1.08) translateY(-2px)}
.nx .collection-info{padding:18px 20px 20px;display:flex;flex-direction:column;gap:11px;flex:1}
.nx .collection-info h3{font-family:'Orbitron',sans-serif;font-size:18px;font-weight:700;color:#fff;margin:0;letter-spacing:.02em}
.nx .collection-price{display:inline-flex;align-items:center;gap:5px;align-self:flex-start;
  background:rgba(124,199,255,.12);border:1px solid rgba(124,199,255,.35);border-radius:999px;padding:5px 14px;
  font-family:'Orbitron',sans-serif;font-weight:700;font-size:15px;color:var(--nx-photon);box-shadow:0 0 14px rgba(124,199,255,.15)}
.nx .buy-collection-btn{margin-top:auto;width:100%;padding:15px;border:none;border-radius:13px;cursor:pointer;
  font-family:'Orbitron',sans-serif;font-weight:700;font-size:14px;letter-spacing:.1em;text-transform:uppercase;
  background:linear-gradient(135deg,var(--nx-accent-2),#c9305d);color:#fff;box-shadow:0 6px 20px rgba(167,40,80,.45);transition:.15s}
.nx .buy-collection-btn:hover{transform:translateY(-2px);filter:brightness(1.1);box-shadow:0 8px 28px rgba(167,40,80,.65)}
.nx .buy-collection-btn:disabled{opacity:.5;cursor:default;filter:grayscale(.3);transform:none}

.nx-earn-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px}
.nx-earn-card{display:flex;justify-content:space-between;align-items:center;gap:12px;
  background:rgba(28,38,54,.5);border:1px solid var(--nx-stroke);border-radius:14px;padding:14px 18px}
.nx-earn-card .t{font-weight:600;color:var(--nx-light);font-size:14px}
.nx-earn-card .d{font-size:12px;color:var(--nx-muted)}
.nx-earn-badge{background:linear-gradient(135deg,var(--nx-accent-2),#c9305d);color:#fff;font-family:'Orbitron',sans-serif;
  font-weight:700;font-size:12px;padding:6px 12px;border-radius:999px;white-space:nowrap}

/* Bloc Transmutation (mécanique Nexus) */
.nx-transmute{display:flex;align-items:center;gap:22px;flex-wrap:wrap;border-radius:18px;padding:24px 28px;margin:34px 0;
  background:linear-gradient(135deg,rgba(124,199,255,.16),rgba(28,38,54,.5));border:1px solid rgba(124,199,255,.38);
  box-shadow:0 0 30px rgba(124,199,255,.08)}
.nx-transmute-ic{font-size:44px;filter:drop-shadow(0 0 18px rgba(124,199,255,.6))}
.nx-transmute-txt{flex:1;min-width:240px}
.nx-transmute-txt h3{font-family:'Orbitron',sans-serif;font-size:17px;color:#fff;margin:0 0 6px;letter-spacing:.04em}
.nx-transmute-txt p{color:var(--nx-muted);font-size:13px;line-height:1.75;margin:0}
.nx-transmute-txt b{color:var(--nx-photon);font-weight:600}
.nx-btn--nexus{background:linear-gradient(135deg,#4a9eff,#7cc7ff) !important;color:#06131c !important;
  border-color:transparent !important;box-shadow:0 0 22px rgba(124,199,255,.45) !important}
.nx-btn--nexus:hover{filter:brightness(1.08)}

/* ════════ COLLECTION ════════ */
.nx .mini-progress-bar{width:100%;height:8px;background:rgba(215,233,255,.1);border-radius:999px;overflow:hidden;border:1px solid var(--nx-stroke);margin-top:6px}
.nx .mini-progress-fill{height:100%;background:linear-gradient(90deg,var(--nx-accent-2),#c9305d);border-radius:999px;transition:width .5s ease}

.nx-coll-header{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:12px;margin-bottom:22px}
.nx-coll-header h2{font-family:'Orbitron',sans-serif;font-size:22px;color:#fff;margin:0;letter-spacing:.04em}
.nx-share-btn{display:inline-flex;align-items:center;gap:8px;padding:11px 20px;border:none;border-radius:12px;cursor:pointer;
  font-family:'Orbitron',sans-serif;font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;
  background:linear-gradient(135deg,var(--nx-accent-2),#c9305d);color:#fff;box-shadow:0 4px 16px rgba(167,40,80,.4)}
.nx-share-btn:hover{filter:brightness(1.08)}

.nx-sortbar{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:18px;padding:12px 16px;
  background:rgba(12,18,30,.6);border-radius:14px;border:1px solid var(--nx-stroke)}
.nx-sortbar .lbl{font-family:'Orbitron',sans-serif;font-size:10px;color:var(--nx-dim);letter-spacing:.1em;text-transform:uppercase;margin-right:4px}
.nx .sort-btn{background:rgba(215,233,255,.05);border:1px solid var(--nx-stroke);color:var(--nx-muted);
  padding:8px 14px;border-radius:10px;cursor:pointer;font-family:'Orbitron',sans-serif;font-size:11px;letter-spacing:.03em;transition:.15s}
.nx .sort-btn:hover{color:var(--nx-light);border-color:var(--nx-stroke-m)}
.nx .sort-btn.active{background:linear-gradient(135deg,var(--nx-accent-2),#c9305d) !important;color:#fff !important;border-color:transparent !important}

/* Cartes à collectionner : bordure selon rareté (plus classe que le vert uniforme) */
.nx .card-item{background:linear-gradient(180deg,rgba(55,75,105,.42),rgba(18,26,42,.88)) !important;
  border:1px solid var(--nx-stroke-m) !important;border-radius:16px;transition:.22s}
.nx .card-item.owned{border-color:rgba(124,199,255,.3) !important;box-shadow:0 6px 20px rgba(0,0,0,.35) !important}
.nx .card-item.owned.rarity-rare{border-color:rgba(74,158,255,.55) !important}
.nx .card-item.owned.rarity-epic{border-color:rgba(177,92,255,.55) !important;box-shadow:0 0 22px rgba(177,92,255,.18) !important}
.nx .card-item.owned.rarity-legendary{border-color:rgba(255,203,92,.6) !important;box-shadow:0 0 26px rgba(255,203,92,.28) !important}
.nx .card-item:hover{transform:translateY(-9px) scale(1.03) !important;
  box-shadow:0 20px 46px rgba(0,0,0,.5),0 0 36px rgba(167,40,80,.3) !important}
.nx .card-item.not-owned{opacity:.65;filter:grayscale(.45)}
.nx .card-item.not-owned:hover{opacity:.85;transform:translateY(-5px) !important}
