/* Profil joueur : Aperçu · Promotions · Équipement · Talents & Classe */
.pv-dialog .pv-legacy, .pv-dialog .dialog-card > :not(.pv):not(.dialog-close) { display: none !important; }
.dialog.pv-dialog { width: min(1280px, calc(100vw - 32px)); max-width: none; }
.pv-dialog .dialog-card { width: 100%; box-sizing: border-box; height: min(92vh, 880px); max-height: 92vh; display: flex; flex-direction: column; overflow: hidden; }
.pv { --line: #22324d; --panel: #0a1322; --soft: #142238; --muted: #8ea0bf; --accent: #5fe0ff; --gold: #f2c45a; --good: #54e39e;
  flex: 1; min-height: 0; display: flex; flex-direction: column; gap: 14px; }
.pv .gold { color: var(--gold); } .pv .green { color: #9ff0c4; } .pv .red { color: #ff9aa6; } .pv .accent { color: var(--accent); } .pv .leg { color: #fbbf24; }
.pv-ico { fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; flex: none; }
.pv-sr { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
.pv-lab { font-size: .7rem; font-weight: 800; letter-spacing: .08em; color: var(--muted); }
.pv-lab.gold { color: var(--gold); }
.pv-muted { color: var(--muted); font-size: .85rem; }
.pv-big { font-family: Sora, sans-serif; font-size: 1.2rem; }
.pv-row { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; }
.pv .grow { flex: 1; }
.pv-between { display: flex; justify-content: space-between; align-items: center; gap: 8px; }

/* En-tête */
.pv-head { display: flex; align-items: center; gap: 18px; padding-right: 44px; flex-wrap: wrap; }
.pv-crest { width: 76px; height: 76px; border-radius: 50%; display: grid; place-items: center; background: var(--bg); border: 3px solid #d6b56a; flex: none; overflow: hidden; }
.pv-crest .fantasy-class-icon { width: 100%; height: 100%; margin: 0; }
.pv-crest .fantasy-class-icon svg { width: 100%; height: 100%; }
.pv-pawn { font-size: 2rem; color: #fff6dc; }
.pv-id { flex: 1; min-width: 240px; display: grid; gap: 4px; }
.pv-id .eyebrow { margin: 0; }
.pv-name { display: flex; align-items: center; gap: 6px; color: var(--muted); }
.pv-name input { field-sizing: content; min-width: 120px; max-width: 100%; height: 40px; padding: 0 10px; margin-left: -10px; border-radius: 10px; border: 1px solid transparent; background: transparent; color: #e8eefc; font: 700 1.6rem Sora, sans-serif; }
.pv-name input:hover { border-color: var(--line); }
.pv-name input:focus { outline: none; border-color: var(--accent); background: var(--panel); }
.pv-chips { display: flex; gap: 6px; flex-wrap: wrap; }
.pv-chip { padding: 4px 10px; border-radius: 99px; background: var(--soft); color: #b8c6e0; font-size: .75rem; font-weight: 700; }
.pv-chip.cls { background: #2a1414; color: #ffb4b4; }
.pv-level { width: 300px; display: grid; gap: 6px; }
.pv-level > div { display: flex; justify-content: space-between; align-items: baseline; }
.pv-level span { color: var(--muted); font-size: .85rem; }
.pv-level strong { font: 700 2rem Sora, sans-serif; }
.pv-level i, .pv-cond i, .pv-pbar i, .pv-tfoot i, .pv-acts i { display: block; height: 8px; border-radius: 99px; background: #1f2d45; overflow: hidden; }
.pv-level i { height: 10px; }
.pv i s { display: block; height: 100%; text-decoration: none; background: var(--accent); }
.pv-level small { font-size: .78rem; color: var(--muted); }
.pv-level small.gold { color: var(--gold); }

.pv-tabs { display: flex; gap: 6px; padding-bottom: 12px; border-bottom: 1px solid var(--line); flex-wrap: wrap; }
.pv-tab { min-height: 44px; padding: 0 18px; border-radius: 12px; border: 0; background: var(--soft); color: #b8c6e0; font: inherit; font-weight: 700; cursor: pointer; display: inline-flex; align-items: center; gap: 6px; }
.pv-tab.active { background: var(--accent); color: #06202a; }
.pv-tab em { font-style: normal; padding: 1px 7px; border-radius: 99px; background: var(--good); color: #062a18; font-size: .75rem; }
.pv-tab em.ready { background: var(--gold); color: #2a1c00; }
.pv-body { flex: 1; min-height: 0; overflow: hidden; display: flex; }
.pv-body > div { flex: 1; min-height: 0; display: grid; gap: 16px; }
.pv-col { display: flex; flex-direction: column; gap: 12px; min-width: 0; min-height: 0; overflow: auto; padding-right: 4px; }
.pv-side { display: flex; flex-direction: column; gap: 12px; min-height: 0; overflow: auto; }

.pv-btn { min-height: 44px; padding: 0 16px; border-radius: 12px; border: 1px solid #2c4060; background: transparent; color: #e8eefc; font: inherit; font-weight: 700; cursor: pointer; }
.pv-btn.sm { min-height: 40px; padding: 0 14px; font-size: .85rem; border-radius: 10px; }
.pv-btn.xs { min-height: 34px; padding: 0 10px; font-size: .8rem; border-radius: 9px; }
.pv-btn.primary { border: 0; background: var(--accent); color: #06202a; }
.pv-btn.gold { border: 0; background: var(--gold); color: #2a1c00; }
.pv-btn.danger { border-color: #5a2a35; color: #ff9aa6; }
.pv-btn:disabled { opacity: .5; cursor: not-allowed; }
.pv-btn:hover:not(:disabled) { filter: brightness(1.12); }
.pv-link { border: 0; background: none; color: var(--accent); font: inherit; font-size: .85rem; font-weight: 700; cursor: pointer; text-align: center; padding: 6px; }
.pv-card { display: flex; flex-direction: column; gap: 10px; padding: 16px; border-radius: 16px; background: var(--panel); border: 1px solid var(--line); }
.pv-card h3, .pv-gearhead h3 { margin: 0; font-size: 1rem; }
.pv-badge { padding: 3px 9px; border-radius: 99px; font-size: .7rem; font-weight: 800; }
.pv-badge.gold { background: #3a2f10; color: var(--gold); } .pv-badge.ok { background: #0e3a26; color: #9ff0c4; }

/* Aperçu */
.pv-overview { grid-template-columns: minmax(0, 1fr) 380px; }
.pv-kpis { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; }
.pv-kpis > div { display: grid; gap: 2px; padding: 14px; border-radius: 14px; background: var(--panel); border: 1px solid var(--line); }
.pv-kpis span { font-size: .75rem; color: var(--muted); }
.pv-kpis strong { font: 700 1.5rem Sora, sans-serif; }
.pv-acts { display: grid; grid-template-columns: 130px minmax(0, 1fr) 80px 80px 64px; align-items: center; gap: 10px; padding: 9px 4px; border-top: 1px solid #1a2840; font-size: .9rem; }
.pv-acts.head { border-top: 0; padding-top: 0; font-size: .7rem; font-weight: 800; letter-spacing: .06em; color: var(--muted); }
.pv-acts > span, .pv-acts > b { text-align: right; font-weight: 700; }
.pv-acts i { display: flex; height: 10px; }
.pv-acts i s.w { background: var(--good); } .pv-acts i s.l { background: #ff7d8d; }
.pv-ranks { display: grid; grid-template-columns: repeat(9, minmax(0, 1fr)); gap: 8px; }
.pv-ranks > div { display: grid; justify-items: center; gap: 2px; padding: 10px 4px; border-radius: 12px; background: #0e1828; }
.pv-ranks > div.dim { opacity: .4; }
.pv-ranks strong { font: 700 1rem Sora, sans-serif; color: var(--accent); }
.pv-ranks span { font-weight: 800; }
.pv-promo { display: flex; flex-direction: column; gap: 12px; padding: 18px; border-radius: 18px; background: #13233b; border: 1px solid #5a4a1c; }
.pv-cond { display: grid; gap: 6px; }
.pv-cond > div { display: flex; justify-content: space-between; gap: 10px; font-size: .9rem; }
.pv-cond strong.ok { color: var(--good); }
.pv-unlock { display: grid; gap: 4px; padding: 12px; border-radius: 12px; background: #0e1828; font-size: .9rem; }

/* Promotions */
.pv-promos { grid-template-columns: minmax(0, 1fr) 400px; }
.pv-plist { display: flex; flex-direction: column; gap: 6px; overflow: auto; padding-right: 4px; }
.pv-prow { display: grid; grid-template-columns: 52px minmax(0, 1fr) 160px 110px; align-items: center; gap: 14px; padding: 8px 14px; text-align: left; border-radius: 14px; border: 1px solid var(--line); background: var(--panel); color: #e8eefc; font: inherit; cursor: pointer; opacity: .8; }
.pv-prow.on { border: 2px solid var(--accent); opacity: 1; }
.pv-prow.cur, .pv-prow.ready, .pv-prow.ok { opacity: 1; }
.pv-prow.cur.on, .pv-prow.ready.on { border-color: var(--gold); background: #13233b; }
.pv-pbadge { width: 44px; height: 44px; border-radius: 12px; display: grid; place-items: center; background: var(--soft); color: var(--muted); font: 700 1rem Sora, sans-serif; }
.pv-prow.cur .pv-pbadge, .pv-prow.ready .pv-pbadge { background: var(--gold); color: #2a1c00; }
.pv-prow.ok .pv-pbadge { background: #0e3a26; color: #9ff0c4; }
.pv-ptext { display: grid; gap: 2px; min-width: 0; }
.pv-ptext small, .pv-pbar small { font-size: .75rem; color: var(--muted); }
.pv-pbar { display: grid; gap: 4px; }
.pv-prow.ok .pv-pbar s { background: var(--good); }
.pv-pstate { justify-self: end; padding: 4px 10px; border-radius: 99px; background: var(--soft); color: var(--muted); font-size: .75rem; font-weight: 800; }
.pv-prow.cur .pv-pstate { background: #3a2f10; color: var(--gold); }
.pv-prow.ready .pv-pstate { background: var(--gold); color: #2a1c00; }
.pv-prow.ok .pv-pstate { background: #0e3a26; color: #9ff0c4; }

/* Équipement */
.pv-gear { grid-template-columns: minmax(0, 1fr) 380px; }
.pv-gearhead { display: flex; justify-content: space-between; align-items: center; gap: 10px; flex-wrap: wrap; }
.pv-gearhead > div:first-child { display: grid; gap: 2px; }
.pv-slots { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; }
.pv-slot { --c: #fff; display: flex; align-items: center; gap: 10px; padding: 9px 10px; text-align: left; border-radius: 12px; border: 1px solid var(--line); background: var(--panel); color: #e8eefc; font: inherit; cursor: pointer; min-width: 0; }
.pv-slot.empty { border-style: dashed; border-color: #2c4060; }
.pv-slot.on { border: 2px solid var(--accent); background: #13233b; }
.pv-sico { width: 38px; height: 38px; border-radius: 10px; display: grid; place-items: center; background: #13233b; color: var(--c); flex: none; }
.pv-stext { display: grid; min-width: 0; }
.pv-stext small { font-size: .7rem; color: var(--muted); }
.pv-stext small:first-child { font-weight: 800; letter-spacing: .06em; font-size: .62rem; }
.pv-stext strong { font-size: .82rem; color: var(--c); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.pv-totals { display: grid; grid-template-columns: repeat(auto-fill, minmax(130px, 1fr)); gap: 8px; margin-top: auto; }
.pv-totals > div { display: grid; gap: 2px; padding: 10px 12px; border-radius: 12px; background: var(--panel); border: 1px solid var(--line); }
.pv-totals span { font-size: .75rem; color: var(--muted); }
.pv-totals strong { font-size: 1.05rem; }
.pv-cur { --c: #fff; display: grid; gap: 6px; padding: 12px; border-radius: 12px; background: #0e1828; border: 1px solid color-mix(in srgb, var(--c) 45%, #22324d); }
.pv-cur > strong { color: var(--c); }
.pv-cur > small { color: var(--muted); font-size: .78rem; }
.pv-kv { display: flex; justify-content: space-between; font-size: .88rem; }
.pv-kv b { color: #9ff0c4; }
.pv-talent { padding: 8px 10px; border-radius: 10px; background: #2a2410; color: #fbbf24; font-size: .82rem; font-weight: 700; }
.pv-cands { display: grid; gap: 6px; }
.pv-cand { --c: #fff; display: flex; align-items: center; gap: 10px; padding: 9px 10px; border-radius: 12px; background: #0e1828; border: 1px solid #1a2840; }
.pv-cand > span { display: grid; flex: 1; min-width: 0; }
.pv-cand strong { font-size: .82rem; color: var(--c); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.pv-cand small { font-size: .7rem; color: var(--muted); }
.pv-cand b { font-size: .82rem; white-space: nowrap; }

/* Talents & Classe */
.pv-talents { grid-template-columns: minmax(0, 1fr) 420px; }
.pv-points { padding: 8px 14px; border-radius: 12px; background: #0e3a26; color: #9ff0c4; font-weight: 800; }
.pv-tgrid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.pv-tal { --c: #fff; display: grid; gap: 10px; padding: 14px; border-radius: 14px; background: var(--panel); border: 1px solid var(--line); }
.pv-thead { display: flex; align-items: center; gap: 10px; }
.pv-thead > span:nth-child(2) { display: grid; flex: 1; }
.pv-thead small { font-size: .78rem; color: #b8c6e0; }
.pv-thead b { font: 700 1.3rem Sora, sans-serif; }
.pv-tfoot { display: flex; align-items: center; gap: 8px; }
.pv-tfoot i { flex: 1; height: 6px; }
.pv-tfoot i s { background: var(--c); }
.pv-tfoot small { font-size: .7rem; color: var(--muted); width: 84px; text-align: right; }
.pv-classhead { display: flex; align-items: center; gap: 12px; }
.pv-classhead > div { display: grid; }
.pv-path { display: flex; align-items: center; gap: 6px; flex-wrap: wrap; color: var(--accent); font-size: .82rem; font-weight: 700; }
.pv-step { padding: 5px 10px; border-radius: 9px; border: 1px dashed #2c4060; color: var(--muted); }
.pv-step.done { border: 0; background: #2a1414; color: #ffb4b4; }
.pv-spec { display: grid; gap: 2px; padding: 10px 12px; text-align: left; border-radius: 12px; background: #0e1828; border: 1px solid #1a2840; color: #e8eefc; font: inherit; cursor: pointer; }
.pv-spec:disabled { cursor: default; color: #e8eefc; opacity: .6; }
.pv-spec.on:disabled { opacity: 1; }
.pv-spec.on { border: 2px solid var(--accent); }
.pv-spec small { font-size: .78rem; color: #b8c6e0; }
.pv-spec em { font-style: normal; font-size: .75rem; font-weight: 800; }
.pv-classpick { display: flex; align-items: center; gap: 10px; padding: 10px; text-align: left; border-radius: 12px; background: #0e1828; border: 1px solid #1a2840; color: #e8eefc; font: inherit; cursor: pointer; }
.pv-classpick:hover { border-color: var(--accent); }
.pv-classpick span { display: grid; }
.pv-classpick small { color: var(--muted); font-size: .78rem; }

@media (max-width: 1000px) {
  .pv-body { overflow: auto; }
  .pv-body { display: block; }
  .pv-body > div { display: flex; flex-direction: column; min-width: 0; }
  .pv-col > *, .pv-side > * { flex: none; }
  .pv-col, .pv-side, .pv-plist { overflow: visible; }
  .pv-tgrid { grid-template-columns: minmax(0, 1fr); }
  .pv-kpis { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .pv-slots { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .pv-ranks { grid-template-columns: repeat(5, minmax(0, 1fr)); }
  .pv-prow { grid-template-columns: 52px minmax(0, 1fr) 90px; }
  .pv-pbar { display: none; }
  .pv-level { width: 100%; }
}

.pv-classpick:disabled { opacity: .5; cursor: not-allowed; }
.pv-classpick.excl { border-color: rgba(192, 132, 252, .35); }
.pv-excl { margin-left: 6px; padding: 1px 6px; border-radius: 999px; background: rgba(192, 132, 252, .18); color: #e9d5ff; font-style: normal; font-size: .7rem; }
