/* Bureau de l'Association : Aperçu · Effectif · Recrutement */
.bv-dialog .bv-legacy { display: none !important; }
.dialog.bv-dialog { width: min(1180px, calc(100vw - 32px)); max-width: none; }
.bv-dialog .dialog-card { width: 100%; box-sizing: border-box; max-height: 92vh; display: flex; flex-direction: column; overflow: hidden; }
.bv { --line: #22324d; --panel: #0a1322; --soft: #142238; --muted: #8ea0bf; --accent: #5fe0ff; --gold: #f2c45a;
  --tank: #8fb4ff; --heal: #6ff0b0; --dps: #ff9aa6; --good: #54e39e; --bad: #ff7d8d;
  flex: 1; min-height: 0; display: flex; flex-direction: column; gap: 14px; }
.bv .gold { color: var(--gold); } .bv .bad { color: var(--bad); }
.bv-head { display: flex; align-items: center; gap: 14px; padding-right: 44px; }
.bv-crest { flex: none; display: grid; place-items: center; width: 64px; height: 64px; }
.bv-crest svg { width: 100%; height: 100%; }
.bv-title { flex: 1; min-width: 0; display: grid; gap: 2px; }
.bv-title .eyebrow { margin: 0; }
.bv-title small { color: var(--muted); }
.bv-name { display: flex; align-items: center; gap: 8px; }
.bv-name h2 { margin: 0; }
.bv-icon { display: grid; place-items: center; width: 36px; height: 36px; border-radius: 10px; border: 1px solid #2c4060; background: transparent; color: var(--muted); cursor: pointer; }
.bv-icon svg, .bv-gains svg, .bv-btn svg { width: 16px; height: 16px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.bv-level { padding: 8px 14px; border-radius: 999px; background: #2a2410; color: var(--gold); font-weight: 800; white-space: nowrap; }
.bv-tabs { display: flex; gap: 6px; padding-bottom: 12px; border-bottom: 1px solid var(--line); flex-wrap: wrap; }
.bv-tab { min-height: 44px; padding: 0 18px; border-radius: 12px; border: 0; background: var(--soft); color: #b8c6e0; font: inherit; font-weight: 700; cursor: pointer; }
.bv-tab.active { background: var(--accent); color: #06202a; }
.bv-badge { margin-left: 6px; padding: 1px 8px; border-radius: 999px; background: var(--gold); color: #2a1d00; font-size: .75rem; }
.bv-body { flex: 1; min-height: 0; overflow: auto; display: flex; flex-direction: column; gap: 14px; padding-right: 4px; }
.bv-muted { color: var(--muted); font-size: .88rem; }
.bv-empty { margin: 0; padding: 18px; text-align: center; color: var(--muted); border: 1px dashed var(--line); border-radius: 12px; }
.bv-row { display: flex; gap: 10px; align-items: center; flex-wrap: wrap; }

.bv-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; display: inline-flex; align-items: center; justify-content: center; gap: 6px; }
.bv-btn.sm { min-height: 36px; padding: 0 12px; font-size: .85rem; border-radius: 10px; }
.bv-btn.primary { border: 0; background: var(--accent); color: #06202a; }
.bv-btn.outline { border-color: var(--accent); color: var(--accent); }
.bv-btn.danger { border-color: #5a2a35; color: var(--dps); }
.bv-btn.danger-ghost { border-color: #5a2a35; color: var(--dps); }
.bv-btn:disabled { opacity: .45; cursor: not-allowed; }
.bv-btn:hover:not(:disabled) { filter: brightness(1.12); }
.bv-select { min-height: 36px; padding: 0 8px; border-radius: 10px; border: 1px solid var(--accent); background: #0e1828; color: #e8eefc; font: inherit; font-size: .85rem; }

/* Aperçu */
.bv-grid { display: grid; grid-template-columns: minmax(0, 1fr) 340px; gap: 14px; align-items: start; }
.bv-col { display: flex; flex-direction: column; gap: 14px; min-width: 0; }
.bv-kpis { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; }
.bv-kpi { display: grid; gap: 6px; padding: 14px; border-radius: 14px; background: var(--panel); border: 1px solid var(--line); }
.bv-kpi > span { font-size: .82rem; color: var(--muted); }
.bv-kpi strong { font-size: 1.6rem; }
.bv-kpi strong em { font-style: normal; font-size: 1rem; color: var(--muted); }
.bv-kpi small { font-size: .75rem; color: var(--muted); }
.bv-kpi i { display: block; height: 6px; border-radius: 9px; background: #1f2d45; overflow: hidden; }
.bv-kpi b { display: block; height: 6px; background: var(--accent); }
.bv-kpi b.gold { background: var(--gold); } .bv-kpi b.over { background: var(--bad); }
.bv-card { display: flex; flex-direction: column; gap: 10px; padding: 16px; border-radius: 16px; background: var(--panel); border: 1px solid var(--line); }
.bv-card h3, .bv-card-head h3 { margin: 0; font-size: 1rem; }
.bv-card-head { display: flex; justify-content: space-between; align-items: center; gap: 10px; flex-wrap: wrap; }
.bv-card-head small { color: var(--muted); }
.bv-drow { display: grid; grid-template-columns: 130px minmax(0, 1fr) 130px; align-items: center; gap: 12px; padding: 8px 0; border-top: 1px solid #1a2840; }
.bv-drow small { color: var(--muted); text-align: right; }
.bv-drow.off strong { color: #5d6f8f; }
.bv-chips { display: flex; gap: 6px; flex-wrap: wrap; }
.bv-chip { padding: 4px 10px; border-radius: 9px; border: 1px solid #2c4060; color: #5d6f8f; font-size: .82rem; font-weight: 700; }
.bv-chip.on { border-color: var(--accent); color: var(--accent); }
.bv-gate { display: grid; grid-template-columns: 34px minmax(0, 1fr) 70px 100px auto; align-items: center; gap: 12px; padding: 7px 0; border-top: 1px solid #1a2840; }
.bv-gate > div { display: grid; min-width: 0; }
.bv-gate small { color: var(--muted); font-size: .8rem; }
.bv-rank { display: grid; place-items: center; width: 30px; height: 30px; border-radius: 9px; border: 2px solid var(--accent); color: var(--accent); font-weight: 800; font-size: .85rem; flex: none; }
.bv-up { background: #13233b; border-color: #2c4060; }
.bv-gains { list-style: none; margin: 0; padding: 0; display: grid; gap: 6px; font-size: .92rem; }
.bv-gains li { display: flex; gap: 8px; align-items: center; }
.bv-gains li.plus svg { color: var(--good); } .bv-gains li.star svg { color: var(--gold); }
.bv-costs { display: grid; gap: 6px; }
.bv-costs > div { display: flex; justify-content: space-between; font-size: .9rem; }
.bv-costs span { color: var(--muted); }
.bv-costs .ok { color: var(--good); } .bv-costs .ko { color: var(--bad); }
.bv-step { display: grid; grid-template-columns: 58px minmax(0, 1fr); gap: 10px; align-items: start; }
.bv-step span { padding: 4px 6px; border-radius: 9px; background: #13233b; color: var(--accent); font-size: .75rem; font-weight: 800; text-align: center; }
.bv-step span.gold { background: #2a2410; }
.bv-step p { margin: 0; font-size: .9rem; color: #b8c6e0; }

/* Effectif */
.bv-compo { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; padding: 12px 16px; border-radius: 14px; background: var(--panel); border: 1px solid var(--line); }
.bv-compo-main { flex: 1; min-width: 240px; display: grid; gap: 6px; }
.bv-compo-main > span { font-size: .82rem; color: var(--muted); }
.bv-bar { display: flex; height: 10px; border-radius: 9px; overflow: hidden; gap: 2px; background: #1f2d45; }
.bv-bar .tank { background: #4f8cff; } .bv-bar .heal { background: #3fd28b; } .bv-bar .dps { background: #ff5f72; }
.bv-legend { display: flex; gap: 14px; flex-wrap: wrap; font-size: .85rem; color: var(--muted); }
.bv-legend .tank { color: var(--tank); } .bv-legend .heal { color: var(--heal); } .bv-legend .dps { color: var(--dps); }
.bv-cards { display: grid; grid-template-columns: repeat(auto-fill, minmax(320px, 1fr)); gap: 10px; }
.bv-hunter { display: grid; gap: 10px; padding: 12px 14px; border-radius: 14px; background: var(--panel); border: 1px solid var(--line); }
.bv-hunter.reeval { border-color: #2d6f86; }
.bv-hhead { display: flex; align-items: center; gap: 10px; }
.bv-hhead > div { flex: 1; min-width: 0; display: grid; }
.bv-hhead strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.bv-hhead small { color: var(--muted); font-size: .8rem; }
.bv .fantasy-class-icon { margin: 0; flex: none; }
.bv-hline { display: flex; align-items: center; gap: 8px; font-size: .85rem; }
.bv-hline i, .bv-stats i { flex: 1; display: block; height: 5px; border-radius: 9px; background: #1f2d45; overflow: hidden; }
.bv-hline s, .bv-stats s { display: block; height: 5px; background: var(--accent); text-decoration: none; }
.bv-role { padding: 3px 9px; border-radius: 999px; font-size: .75rem; font-weight: 800; white-space: nowrap; }
.bv-role.tank { background: #1c2c4f; color: var(--tank); } .bv-role.heal { background: #123826; color: var(--heal); } .bv-role.dps { background: #3d1a24; color: var(--dps); }
.bv-hfoot { display: flex; align-items: center; gap: 6px; }
.bv-status { flex: 1; display: inline-flex; align-items: center; gap: 6px; font-size: .78rem; font-weight: 800; }
.bv-status i { width: 8px; height: 8px; border-radius: 50%; background: currentColor; }
.bv-status.free { color: var(--good); } .bv-status.busy { color: var(--gold); } .bv-status.back { color: #9fb4ff; } .bv-status.reeval { color: var(--accent); }

/* Recrutement */
.bv-camps { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: 12px; }
.bv-camp { display: flex; align-items: center; gap: 14px; padding: 14px 16px; border-radius: 16px; background: var(--panel); border: 1px solid var(--line); }
.bv-camp.on { background: #13233b; border-color: #2c4060; }
.bv-camp > div { flex: 1; display: grid; gap: 4px; }
.bv-camp small { color: var(--muted); }
.bv-cands { display: grid; grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); gap: 10px; }
.bv-cand { display: flex; flex-direction: column; gap: 10px; padding: 14px; border-radius: 16px; background: var(--panel); border: 1px solid var(--line); }
.bv-cand.gifted { border-color: #5a4a1c; }
.bv-cand-id { display: grid; justify-items: center; gap: 4px; text-align: center; }
.bv-cand-id small { color: var(--muted); }
.bv-stats { display: grid; gap: 4px; }
.bv-stats > div { display: grid; grid-template-columns: 82px minmax(0, 1fr) 26px; align-items: center; gap: 6px; font-size: .75rem; }
.bv-stats span { color: var(--muted); }
.bv-stats b { text-align: right; }
.bv-passive { padding: 8px; border-radius: 10px; background: var(--soft); color: #5d6f8f; font-size: .8rem; font-weight: 700; text-align: center; display: grid; gap: 2px; }
.bv-passive.on { background: #2a2410; color: var(--gold); }
.bv-passive small { font-weight: 600; color: #d9c48a; }
.bv-cand-pow { display: flex; justify-content: space-between; font-size: .88rem; }
.bv-cand-pow span { color: var(--muted); }
.bv-cand .bv-btn { margin-top: auto; }

@media (max-width: 900px) {
  .bv-grid { grid-template-columns: 1fr; }
  .bv-kpis { grid-template-columns: 1fr; }
  .bv-drow { grid-template-columns: 1fr; }
  .bv-drow small { text-align: left; }
  .bv-gate { grid-template-columns: 34px minmax(0, 1fr) auto; }
  .bv-gate > span.bv-muted { display: none; }
}

/* Effectif : filtres */
.bv-filters { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; margin: 4px 0 10px; }
.bv-seg { display: flex; gap: 3px; padding: 3px; border-radius: 12px; background: #0a1322; border: 1px solid #22324d; flex-wrap: wrap; }
.bv-seg button { min-height: 34px; padding: 0 12px; border: 0; border-radius: 9px; background: transparent; color: #b8c6e0; font: inherit; font-size: .82rem; font-weight: 700; cursor: pointer; }
.bv-seg button.on { background: #22324d; color: #e8eefc; }
.bv-seg button.on.tank { background: rgba(143, 180, 255, .2); color: #8fb4ff; }
.bv-seg button.on.heal { background: rgba(111, 240, 176, .18); color: #6ff0b0; }
.bv-seg button.on.dps { background: rgba(255, 154, 166, .18); color: #ff9aa6; }
.bv-sortbox { display: flex; align-items: center; gap: 8px; margin-left: auto; font-size: .8rem; color: #8ea0bf; flex-wrap: wrap; }

/* ---------- Onglet Équipements ---------- */
.bv-eqbar { flex-wrap: wrap; }
.bv-eqbar small { color: var(--muted); }
.bv-eqconfirm { display: inline-flex; align-items: center; gap: 8px; flex-wrap: wrap; color: #ffb0ba; font-weight: 700; }
.bv-eqmsg { margin: 0 0 10px; padding: 9px 12px; border-radius: 10px; background: rgba(84, 227, 158, .12); color: #8ff0c2; }
.bv-eqcard { display: grid; gap: 10px; padding: 12px 14px; border-radius: 14px; background: var(--panel); border: 1px solid var(--line); }
.bv-eqcard.busy { opacity: .7; }
.bv-eqcard .bv-hhead > .gold { margin-left: auto; }
.bv-eqslots { display: flex; flex-wrap: wrap; gap: 3px; }
.bv-eqslot { display: grid; place-items: center; width: 26px; height: 26px; }
.bv-eqslot.empty { opacity: .45; }
.bv-eqgroup { display: flex; align-items: center; justify-content: space-between; gap: 10px; flex-wrap: wrap; margin: 14px 0 8px; }
.bv-eqgroup h3 { margin: 0; font-size: 1rem; }
.bv-eqgroup h3 small { color: var(--muted); font-weight: 500; margin-left: 6px; }
.bv-eqgroup > span { display: inline-flex; gap: 6px; }
.bv-empty { color: var(--muted); }
.bv-eqcard .bv-hfoot small { white-space: nowrap; }
.bv-excl { border-color: rgba(192, 132, 252, .45) !important; }
.bv-excl.locked { opacity: .6; }
#buildingDialog .bv-level { margin-top: 26px; }
