/* Fiche de l'aventurier */
.dialog.aventurier-fiche { width: min(880px, calc(100% - 28px)); max-height: calc(100vh - 32px); }
.aventurier-fiche .dialog-card { width: auto; }
.aventurier-fiche #hunterManagementSummary,
.aventurier-fiche #hunterManagementTabs,
.aventurier-fiche #hunterManagementContent { display: none !important; }
#aventurierFiche { display: grid; gap: 14px; margin-top: 10px; }

.av-header { display: flex; gap: 16px; align-items: center; padding: 14px 16px; border: 1px solid var(--border); border-radius: 16px; background: rgba(255, 255, 255, .035); }
.av-portrait .fantasy-class-icon svg { width: 64px; height: 64px; }
.av-identity { flex: 1; min-width: 0; display: grid; gap: 6px; }
.av-tags { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; }
.av-rank { padding: 3px 10px; border-radius: 8px; font-weight: 800; color: #04111d; background: linear-gradient(135deg, var(--cyan), var(--blue)); }
.av-chip { padding: 3px 10px; border-radius: 999px; font-size: .82rem; font-weight: 700; border: 1px solid var(--border); background: rgba(99, 230, 255, .1); }
.av-chip-soft { background: rgba(255, 255, 255, .05); font-weight: 600; }
.av-path { margin: 0; color: var(--muted); font-size: .9rem; }
.av-level-line { display: flex; align-items: baseline; gap: 6px; }
.av-level-line span { color: var(--muted); }
.av-level-line small { margin-left: auto; color: var(--muted); }
.av-bar { height: 8px; border-radius: 999px; background: rgba(255, 255, 255, .08); overflow: hidden; margin-top: 4px; }
.av-bar i { display: block; height: 100%; border-radius: inherit; background: linear-gradient(90deg, var(--blue), var(--cyan)); }

.av-tabs { display: flex; gap: 6px; flex-wrap: wrap; border-bottom: 1px solid var(--border); padding-bottom: 10px; }
.av-tab { padding: 8px 16px; border: 1px solid var(--border); border-radius: 12px; background: rgba(255, 255, 255, .04); color: var(--text); font-weight: 700; cursor: pointer; }
.av-tab.active { background: var(--cyan); color: #04111d; border-color: transparent; }

.av-panel { display: grid; gap: 12px; }
.av-panel[hidden] { display: none; }
.av-card { padding: 14px 16px; border: 1px solid var(--border); border-radius: 16px; background: rgba(255, 255, 255, .03); }
.av-card h3 { margin: 0 0 10px; font-size: 1.05rem; }
.av-card h3 small { margin-left: 6px; color: var(--muted); font-weight: 500; font-size: .8rem; }
.av-note { margin: 10px 0 0; color: var(--muted); font-size: .82rem; line-height: 1.45; }
.av-locked { margin: 0 0 10px; color: var(--muted); font-size: .88rem; }
.av-ok { margin: 0 0 10px; color: var(--success); font-size: .88rem; font-weight: 600; }
.av-warn { color: var(--danger); }
.av-cost { margin: 6px 0 10px; }

.av-stats { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
.av-stat { display: flex; align-items: center; gap: 10px; padding: 10px 12px; border-radius: 12px; background: rgba(255, 255, 255, .04); }
.av-stat-icon { font-size: 1.2rem; }
.av-stat div { flex: 1; display: grid; }
.av-stat small { color: var(--muted); font-size: .76rem; }
.av-stat b { font-size: 1.15rem; }
.av-stat b em { font-style: normal; font-size: .8rem; color: var(--success); }

.av-derived { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 8px; }
.av-derived div { display: grid; gap: 2px; padding: 10px 12px; border-radius: 12px; background: rgba(255, 255, 255, .04); }
.av-derived span { color: var(--muted); font-size: .76rem; }
.av-derived strong { font-size: 1.1rem; }
.av-derived .hp { background: rgba(255, 95, 122, .12); }
.av-derived .mana { background: rgba(75, 163, 255, .14); }

.av-role-buttons { display: flex; gap: 8px; flex-wrap: wrap; }
.av-role { padding: 8px 14px; border-radius: 12px; border: 1px solid var(--border); background: rgba(255, 255, 255, .04); color: var(--text); font-weight: 700; cursor: pointer; }
.av-role.active { border-color: var(--cyan); background: rgba(99, 230, 255, .16); }

.av-class-head { display: flex; align-items: center; gap: 12px; }
.av-class-head small { color: var(--muted); }
.av-class-head h3 { margin: 0; }
.av-class p { margin: 10px 0 0; color: var(--muted); }

.av-specs { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; }
.av-spec { display: flex; flex-direction: column; gap: 8px; padding: 12px; border: 1px solid var(--border); border-radius: 14px; background: rgba(255, 255, 255, .03); }
.av-spec header { display: flex; gap: 10px; align-items: center; }
.av-spec header div { flex: 1; display: grid; }
.av-spec header small { color: var(--muted); font-size: .76rem; }
.av-spec-icon { font-size: 1.5rem; }
.av-spec p { margin: 0; font-size: .86rem; }
.av-spec ul { margin: 0; padding-left: 18px; color: var(--muted); font-size: .8rem; display: grid; gap: 2px; }
.av-spec .primary-button { margin-top: auto; }
.av-spec.chosen { border-color: var(--cyan); background: rgba(99, 230, 255, .08); }
.av-spec.dimmed { opacity: .45; }
.av-effects { color: var(--cyan); font-size: .76rem; }
.av-badge { padding: 2px 8px; border-radius: 999px; font-size: .68rem; font-weight: 800; color: #04111d; background: var(--cyan); white-space: nowrap; }
.av-evo-preview { display: flex; flex-wrap: wrap; gap: 8px; }
.av-evo-preview span { padding: 6px 10px; border-radius: 10px; background: rgba(255, 255, 255, .05); font-size: .85rem; }

.av-confirm { display: grid; gap: 8px; padding: 10px; border-radius: 12px; border: 1px solid rgba(255, 200, 87, .5); background: rgba(255, 200, 87, .08); }
.av-confirm p { margin: 0; font-size: .86rem; }
.av-confirm div { display: flex; gap: 8px; flex-wrap: wrap; }

.av-ranks { display: flex; gap: 4px; margin-bottom: 10px; flex-wrap: wrap; }
.av-ranks span { min-width: 38px; text-align: center; padding: 6px 4px; border-radius: 8px; font-weight: 800; font-size: .85rem; border: 1px solid var(--border); color: var(--muted); }
.av-ranks span.done { color: var(--text); background: rgba(255, 255, 255, .06); }
.av-ranks span.current { color: #04111d; background: var(--cyan); border-color: transparent; }

.av-skills, .av-passives { display: grid; gap: 8px; }
.av-skill { display: flex; gap: 12px; align-items: flex-start; padding: 10px 12px; border-radius: 12px; background: rgba(255, 255, 255, .04); }
.av-skill div { flex: 1; }
.av-skill p { margin: 3px 0 0; color: var(--muted); font-size: .82rem; }
.av-skill small { color: var(--muted); font-size: .76rem; white-space: nowrap; }
.av-skill .av-badge { margin-left: 8px; }
.av-skill.locked { opacity: .45; }
.av-skill.signature { border: 1px solid rgba(99, 230, 255, .4); }
.av-skill-icon { font-size: 1.2rem; }
.av-passive { display: grid; gap: 2px; padding: 10px 12px; border-radius: 12px; border: 1px solid rgba(157, 108, 255, .4); background: rgba(157, 108, 255, .08); }
.av-passive span { color: var(--cyan); font-size: .82rem; }
.av-passive small { color: var(--muted); font-size: .74rem; }

@media (max-width: 760px) {
  .av-specs { grid-template-columns: 1fr; }
  .av-derived { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .av-stats { grid-template-columns: 1fr; }
  .av-header { flex-direction: column; align-items: flex-start; }
}

/* Recrutement : compétence passive du candidat */
.av-candidate-passive { display: block; margin-top: 4px; color: #c9b2ff; font-weight: 700; font-size: .78rem; }
.av-candidate-passive.none { color: var(--muted); font-weight: 500; }

/* Sceaux des bâtiments */
.building-icon:has(svg.crest) { border: 0; background: transparent; padding: 0; filter: drop-shadow(0 2px 5px rgba(0,0,0,.45)); }
.building-icon svg.crest { width: 100%; height: 100%; }
.map-building-marker.crest-marker { width: 58px; height: 58px; padding: 0; border: 0 !important; background: transparent !important; box-shadow: none !important; filter: drop-shadow(0 6px 10px rgba(0,0,0,.6)); transition: transform .15s ease; }
.map-building-marker.crest-marker.guild-marker { width: 62px; height: 62px; }
.map-building-marker.crest-marker:hover, .map-building-marker.crest-marker:focus-visible { transform: scale(1.08); }
.map-building-marker.crest-marker svg { width: 100%; height: 100%; }
.guild-crest svg.crest { width: 88px; height: 88px; filter: drop-shadow(0 6px 12px rgba(0,0,0,.5)); }

/* Fenêtre du QG des Guildes : la carte (920 px) débordait d'une fenêtre de 720 px */
.dialog.guild-dialog { width: min(940px, calc(100% - 28px)); }
.dialog.guild-dialog .guild-card { width: auto; max-width: none; }

/* Fenêtre de construction : une carte par bâtiment */
#constructionOptions { display: grid; gap: 12px; margin-top: 16px; }
.construction-card { display: flex; align-items: center; gap: 16px; padding: 14px 16px; border: 1px solid var(--border); border-radius: 14px; background: rgba(255, 255, 255, .035); }
.construction-card .building-icon { width: 64px; height: 64px; flex: none; }
.construction-card .grow { flex: 1; display: grid; gap: 4px; }
.construction-card .grow p { margin: 0; color: var(--muted); }
.construction-card .grow small { color: var(--warning); font-weight: 700; }
@media (max-width: 640px) { .construction-card { flex-wrap: wrap; } .construction-card .primary-button { width: 100%; } }

/* Onglet Compétences : niveaux et Essence de Donjon */
.av-essence { display: flex; align-items: center; gap: 12px; padding: 12px 14px; border-radius: 14px; border: 1px solid rgba(95, 208, 255, .35); background: linear-gradient(135deg, rgba(95, 208, 255, .12), rgba(138, 92, 230, .08)); }
.av-essence-gem { font-size: 1.6rem; }
.av-essence div { display: grid; gap: 2px; }
.av-essence small { color: var(--muted); font-size: .8rem; }
.av-skill-body { flex: 1; min-width: 0; display: grid; gap: 4px; }
.av-skill-title { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.av-lvl { margin-left: auto; padding: 2px 8px; border-radius: 8px; background: rgba(95, 208, 255, .14); color: #bfefff; font-weight: 800; font-size: .8rem; font-variant-numeric: tabular-nums; }
.av-lvl small { opacity: .6; font-weight: 600; }
.av-skill-foot { display: flex; align-items: center; justify-content: space-between; gap: 8px; flex-wrap: wrap; }
.av-skill-foot small { color: var(--muted); }
.av-ups { display: flex; gap: 6px; flex-wrap: wrap; }
.av-up { min-height: 32px; padding: 4px 10px; border: 1px solid rgba(95, 208, 255, .45); border-radius: 9px; background: rgba(95, 208, 255, .1); color: var(--text); font: inherit; font-size: .8rem; font-weight: 800; cursor: pointer; }
.av-up span { opacity: .8; font-weight: 700; }
.av-up:hover:not(:disabled) { background: rgba(95, 208, 255, .22); }
.av-up:disabled { opacity: .4; cursor: not-allowed; }
.av-up.ghost { border-color: var(--border); background: transparent; }
.av-passive .av-ups { margin-top: 6px; }
.av-passive.empty { border-style: dashed; background: rgba(255, 255, 255, .02); }
.av-picker { display: grid; gap: 8px; margin-top: 8px; padding: 10px; border-radius: 12px; border: 1px solid rgba(255, 200, 87, .45); background: rgba(255, 200, 87, .06); }
.av-picker p { margin: 0; font-size: .86rem; }
.av-picker-list { display: grid; grid-template-columns: repeat(auto-fill, minmax(180px, 1fr)); gap: 6px; }
.av-pick { display: grid; gap: 2px; padding: 8px 10px; text-align: left; border: 1px solid var(--border); border-radius: 10px; background: rgba(255, 255, 255, .04); color: var(--text); font: inherit; cursor: pointer; }
.av-pick span { color: var(--cyan); font-size: .78rem; }
.av-pick:hover:not(:disabled) { border-color: var(--cyan); }
.av-pick:disabled { opacity: .45; cursor: not-allowed; }
.av-essence-icon { width: 34px; height: 34px; }
.av-up .res-icon { width: 1.1em; height: 1.1em; }

/* ------------------------------------------------------------ Équipement */
.av-panel[data-av-panel="equipment"] { display: grid; gap: 12px; }
.av-panel[data-av-panel="equipment"][hidden] { display: none; }
.eq-summary-head { display: flex; align-items: center; justify-content: space-between; gap: 10px; flex-wrap: wrap; }
.eq-summary-head h3 { margin: 0; }
.eq-summary-head > div { display: flex; gap: 6px; }
.eq-summary .av-note { margin-top: 6px; }
.eq-totals { display: grid; grid-template-columns: repeat(auto-fill, minmax(104px, 1fr)); gap: 6px; margin-top: 10px; }
.eq-total { display: grid; grid-template-columns: auto 1fr; grid-template-rows: auto auto; column-gap: 6px; padding: 6px 8px; border-radius: 10px; background: rgba(255, 255, 255, .04); }
.eq-total span { grid-row: span 2; align-self: center; font-size: 1.1rem; }
.eq-total small { color: var(--muted); font-size: .7rem; font-weight: 700; }
.eq-total b { font-variant-numeric: tabular-nums; color: #9ff0c4; }
.eq-total.zero b { color: var(--muted); }
.eq-total.power b { color: #ffd76a; }
.eq-talents { display: grid; gap: 4px; margin-top: 10px; padding: 8px 10px; border-radius: 10px; border: 1px solid rgba(245, 158, 11, .4); background: rgba(245, 158, 11, .08); font-size: .84rem; }
.eq-talents b { color: #fbbf24; }
.eq-talents small { color: var(--muted); }

.eq-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(230px, 1fr)); gap: 8px; }
.eq-slot { --rar: rgba(255, 255, 255, .18); display: flex; align-items: flex-start; gap: 10px; min-width: 0; padding: 10px; text-align: left; color: inherit; font: inherit; cursor: pointer;
  border: 1px solid color-mix(in srgb, var(--rar) 55%, transparent); border-left: 4px solid var(--rar); border-radius: 12px; background: rgba(255, 255, 255, .03); }
.eq-slot:hover, .eq-slot:focus-visible { background: rgba(255, 255, 255, .07); outline: none; }
.eq-slot.open { box-shadow: 0 0 0 2px var(--rar); }
.eq-slot.empty { border-style: dashed; border-left-width: 1px; opacity: .8; }
.eq-slot.legendary { background: linear-gradient(135deg, rgba(245, 158, 11, .14), rgba(255, 255, 255, .02) 60%); }
.eq-icon { flex: none; display: grid; place-items: center; width: 38px; height: 38px; border-radius: 10px; background: rgba(0, 0, 0, .25); font-size: 1.25rem; }
.eq-body { display: grid; gap: 2px; min-width: 0; }
.eq-body small { color: var(--muted); font-size: .7rem; font-weight: 800; text-transform: uppercase; letter-spacing: .04em; }
.eq-body strong, .eq-option-main strong { color: var(--rar); font-size: .92rem; line-height: 1.25; }
.eq-slot.empty strong { color: var(--muted); }
.eq-body em, .eq-option-main em { font-style: normal; color: var(--muted); font-size: .74rem; }
.eq-rarity { color: var(--rar); font-weight: 700; }
.eq-stats { display: flex; flex-wrap: wrap; gap: 2px 8px; font-size: .76rem; }
.eq-stats b { color: #9ff0c4; font-variant-numeric: tabular-nums; }
.eq-talent { color: #fbbf24 !important; font-size: .74rem !important; text-transform: none !important; letter-spacing: 0 !important; font-weight: 600 !important; }

.eq-picker { display: grid; gap: 8px; }
.eq-option { --rar: #fff; display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 8px 10px; border-radius: 10px; border-left: 4px solid var(--rar); background: rgba(255, 255, 255, .04); }
.eq-option-main { display: grid; gap: 2px; min-width: 0; }
.eq-option-side { display: grid; justify-items: end; gap: 6px; flex: none; }
.eq-delta { font-weight: 800; font-variant-numeric: tabular-nums; color: var(--muted); }
.eq-delta.up { color: #54e39e; }
.eq-delta.down { color: #ff5f7a; }
@media (max-width: 560px) {
  .eq-option { flex-direction: column; align-items: stretch; }
  .eq-option-side { grid-auto-flow: column; justify-content: space-between; align-items: center; }
}

/* Rangs de compétence (F → SSS) */
.av-srank { display: inline-grid; place-items: center; min-width: 26px; height: 22px; padding: 0 5px; margin-right: 6px; border-radius: 6px; border: 1.5px solid #5d6f8f; color: #b8c6e0; font-size: .7rem; font-weight: 900; flex: none; }
.av-srank.t1, .av-srank.t2 { border-color: #4ade80; color: #4ade80; }
.av-srank.t3, .av-srank.t4 { border-color: #7fb0ff; color: #7fb0ff; }
.av-srank.t5, .av-srank.t6 { border-color: #c99bff; color: #c99bff; }
.av-srank.t7, .av-srank.t8 { border-color: #fbbf24; color: #fbbf24; background: rgba(251, 191, 36, .12); }
.av-up.av-rankup { border-color: rgba(242, 196, 90, .5); background: rgba(242, 196, 90, .1); display: inline-flex; align-items: center; gap: 6px; flex-wrap: wrap; }
.av-up.av-rankup:hover:not(:disabled) { background: rgba(242, 196, 90, .22); }
.av-up.av-rankup span { display: inline-flex; align-items: center; gap: 2px; opacity: 1; }
.av-up.av-rankup .res-icon, .av-up.av-rankup svg { width: 14px; height: 14px; }
.av-miss { color: #ff8a98; }

/* ---------- Onglet Profil ---------- */
.pp-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 12px; margin-bottom: 12px; }
.pp-row { display: flex; justify-content: space-between; gap: 12px; padding: 6px 0; border-bottom: 1px solid rgba(255,255,255,.06); }
.pp-row:last-of-type { border-bottom: 0; }
.pp-row span { color: var(--muted); }
.pp-row strong { text-align: right; display: flex; flex-direction: column; align-items: flex-end; }
.pp-row strong small { color: var(--muted); font-weight: 500; font-size: .8rem; }
.pp-traits { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 10px; }
.pp-mood { color: #f2c45a; }
.pp-list { margin-top: 8px; }
.pp-list > span { display: block; color: var(--muted); font-size: .82rem; margin-bottom: 2px; }
.pp-list ul { margin: 0; padding-left: 18px; }
.pp-list p { margin: 0; }
.pp-links { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 8px; }
.pp-links li { display: grid; grid-template-columns: auto 1fr; gap: 2px 10px; align-items: center; }
.pp-links li small { grid-column: 2; color: var(--muted); }
.pp-link-kind { grid-row: span 2; padding: 3px 9px; border-radius: 999px; font-size: .78rem; font-weight: 700; background: rgba(99,230,255,.12); color: #9fefff; }
.pp-link-kind.famille { background: rgba(84,227,158,.14); color: #8ff0c2; }
.pp-link-kind.rival, .pp-link-kind.ex { background: rgba(255,125,141,.14); color: #ffa4b0; }
.pp-link-kind.mentor, .pp-link-kind.dette { background: rgba(242,196,90,.14); color: #f5d27f; }
.pp-name { all: unset; cursor: pointer; font-weight: 700; color: #9fefff; }
.pp-name:hover, .pp-name:focus-visible { text-decoration: underline; }
.pp-story p { margin: 0; line-height: 1.55; }

/* ---------- Pack Role Play : journal et profil modifiable ---------- */
.rp-locked { margin-top: 12px; border-style: dashed; }
.rp-journal { margin-top: 12px; display: flex; flex-direction: column; gap: 10px; }
.rp-head { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 8px; }
.rp-head h3 { margin: 0; }
.rp-head > span { display: inline-flex; gap: 6px; flex-wrap: wrap; }
.rp-days { display: flex; gap: 6px; overflow-x: auto; padding-bottom: 2px; }
.rp-days button { flex: none; padding: 5px 12px; border-radius: 999px; border: 1px solid var(--border); background: transparent; color: var(--text); font: inherit; font-size: .82rem; font-weight: 700; cursor: pointer; text-transform: capitalize; }
.rp-days button.on { background: rgba(242, 196, 90, .16); border-color: #f2c45a; color: #f5d27f; }
.rp-page { padding: 14px 16px; border-radius: 14px; background: #f4ead2; color: #3a2c17; font-family: Georgia, 'Times New Roman', serif; box-shadow: inset 0 0 0 1px rgba(58, 44, 23, .15); }
.rp-page h4 { margin: 0 0 8px; font-size: 1rem; text-transform: capitalize; color: #6b4a1c; }
.rp-entry { margin: 0 0 8px; line-height: 1.5; }
.rp-entry time { display: inline-block; min-width: 44px; margin-right: 6px; font-family: system-ui, sans-serif; font-size: .75rem; font-weight: 700; color: #8a6a3a; }
.rp-entry.loss { color: #6b2a1c; }
.rp-mood { margin: 10px 0 0; padding-top: 8px; border-top: 1px dashed rgba(58, 44, 23, .3); font-style: italic; }
.rp-edit h3 { margin-bottom: 12px; }
.rp-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 10px; }
.rp-f { display: grid; gap: 4px; font-size: .82rem; color: var(--muted); }
.rp-f.full { grid-column: 1 / -1; }
.rp-f input, .rp-f textarea { min-height: 38px; padding: 8px 10px; border-radius: 10px; border: 1px solid var(--border); background: #0e1828; color: var(--text); font: inherit; font-size: .92rem; }
.rp-f textarea { resize: vertical; line-height: 1.5; }
.rp-actions { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 12px; }
.rp-actions > span { flex: 1; }
/* Arbre avancé : spécialisation avancée (rang C) et évolution finale (rang B) */
.adv-icon { width: 46px; height: 46px; flex: 0 0 auto; display: grid; place-items: center; }
.adv-icon .fantasy-class-icon, .adv-icon svg { width: 46px; height: 46px; }
.adv-next { color: var(--muted); font-size: .76rem; }
.adv-confirm { display: grid; gap: 6px; font-size: .84rem; }
.adv-finals { grid-template-columns: repeat(2, minmax(0, 1fr)); }
@media (max-width: 640px) { .adv-finals { grid-template-columns: 1fr; } }
