/* v0.22 — guildboss : boss de guilde hebdomadaire */
#guildboss .craft-body { max-width: 1040px; margin: 0 auto; width: 100%; display: grid; grid-template-columns: minmax(0, 1fr); gap: 12px; padding-bottom: 24px; }

/* En-tête : portrait, niveau, réserve de PV */
.gb-head { display: flex; align-items: center; gap: 16px; padding: 14px 16px; }
.gb-face { flex: 0 0 auto; width: 150px; height: 150px; display: grid; place-items: center; overflow: hidden; border-radius: 10px;
  background: radial-gradient(circle at 50% 60%, rgba(216, 69, 46, .35), rgba(16, 26, 58, .2) 70%); border: 1px solid rgba(200, 160, 74, .45); }
.gb-info { flex: 1; min-width: 0; display: grid; gap: 6px; }
.gb-kicker { font-family: var(--font-title); font-size: 12px; letter-spacing: .12em; color: var(--c-gold2); text-transform: uppercase; }
.gb-name { font-family: var(--font-title); font-size: 24px; margin: 0; color: #f7e3a8; }
.gb-lvl { display: flex; align-items: baseline; gap: 10px; flex-wrap: wrap; }
.gb-lvl b { font-size: 18px; color: #ffcf8a; }
.gb-lvl small, .gb-sub { color: var(--muted); font-size: 12px; }
.gb-pool { display: grid; gap: 3px; }
.gb-bar { height: 14px; border-radius: 7px; }
.gb-bar.sm { height: 8px; }
.gb-pool-txt { font-size: 13px; color: var(--muted); }
.gb-pool-txt b { color: var(--text); }

/* Colonnes : attaque + classement, récompenses en dessous */
.gb-grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 12px; align-items: start; }
.gb-grid .gb-rewards { grid-column: 1 / -1; }
.gb-attack, .gb-rank, .gb-rewards, .gb-result { padding: 12px 14px; display: grid; gap: 10px; }
.gb-grid .section-h.small, .gb-result .section-h.small { margin: 0; }
.gb-attack .hint, .gb-rewards .hint { font-size: 12px; line-height: 1.45; margin: 0; }
.gb-tries { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; font-size: 14px; }
.gb-pips { display: inline-flex; gap: 4px; }
.gb-pips i { width: 14px; height: 14px; border-radius: 50%; border: 1px solid var(--c-gold); background: rgba(255, 255, 255, .06); }
.gb-pips i.on { background: radial-gradient(circle at 35% 35%, #fff1c4, var(--c-gold2) 60%, #7a5a1c); }
.gb-pips.sm i { width: 8px; height: 8px; }
.gb-pips i.used { background: var(--c-gold2); }
.gb-team { margin: 0; padding: 6px 0; background: none; border: 0; box-shadow: none; }
.gb-team::before, .gb-team::after { display: none; }
.gb-go { font-size: 16px; padding: 12px; }
.gb-attack .link-btn { color: var(--c-gold2); justify-self: center; }

/* Classement */
.gb-rows { display: grid; gap: 2px; }
.gb-row { display: grid; grid-template-columns: 28px minmax(0, 1fr) auto; align-items: center; gap: 8px; padding: 6px 4px; border-bottom: 1px solid rgba(255, 255, 255, .06); }
.gb-row:last-child { border-bottom: 0; }
.gb-row.me { background: rgba(226, 189, 95, .12); border-radius: 4px; }
.gb-row.gone { opacity: .6; }
.gb-pos { font-family: var(--font-title); font-weight: 900; text-align: center; color: var(--muted); }
.gb-pos.p1 { color: #ffd76a; } .gb-pos.p2 { color: #d9e2ee; } .gb-pos.p3 { color: #e0a36a; }
.gb-who { display: grid; min-width: 0; }
.gb-who b { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.gb-who small { color: var(--muted); font-size: 11px; }
.gb-dmg { display: grid; justify-items: end; gap: 3px; }
.gb-dmg b { color: #ffcf8a; font-variant-numeric: tabular-nums; }

/* Récompenses */
.gb-rw { display: grid; grid-template-columns: 220px minmax(0, 1fr); gap: 10px; font-size: 13px; padding: 4px 0; border-top: 1px solid rgba(255, 255, 255, .06); }
.gb-rw span { color: var(--muted); }
.gb-rw.next b { color: #9fe3a8; }

/* Rejeu et bilan */
.gb-replay { display: grid; grid-template-columns: minmax(0, 1fr); gap: 8px; min-width: 0; }
#gbView { min-width: 0; }
.gb-replay.done .bv-top, .gb-replay.done .bv-order, .gb-replay.done #gbSpeed, .gb-replay.done #gbSkip { display: none; }
.gb-rp-top { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; padding: 8px 12px; }
.gb-live b { color: #ffcf8a; font-variant-numeric: tabular-nums; }
#guildboss .battle-layout { background: rgba(16, 26, 58, .92); border: 1px solid var(--c-gold); padding: 6px; color: #eef2ff; }
#guildboss .bv-cards .card { cursor: default; }
.gb-res { display: grid; gap: 10px; }
.gb-total { display: grid; justify-items: center; gap: 2px; text-align: center; }
.gb-total small { color: var(--muted); text-transform: uppercase; letter-spacing: .12em; font-size: 11px; }
.gb-total b { font-family: var(--font-title); font-size: 34px; color: #ffcf8a; line-height: 1.1; }
.gb-clear { text-align: center; font-weight: 800; color: #9fe3a8; padding: 6px; border: 1px solid rgba(159, 227, 168, .45); border-radius: 6px; background: rgba(159, 227, 168, .08); }
.gb-per { display: grid; gap: 4px; }
.gb-ph { display: grid; grid-template-columns: 30px 90px minmax(0, 1fr) 72px 40px; align-items: center; gap: 8px; font-size: 13px; }
.gb-phf { width: 30px; height: 30px; display: grid; place-items: center; overflow: hidden; }
.gb-phn { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.gb-ph .bar { margin: 0; height: 8px; }
.gb-ph b { text-align: right; font-variant-numeric: tabular-nums; }
.gb-ph small { color: var(--muted); text-align: right; }
.gb-gain { text-align: center; font-weight: 800; color: #f7e3a8; }
.gb-actions { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; }
.gb-empty { padding: 16px; display: grid; gap: 10px; justify-items: start; }

/* Résumé (onglet Boss de l'écran Guilde) */
.gb-sum { padding: 12px; display: grid; grid-template-columns: minmax(0, 1fr); gap: 10px; min-width: 0; }
.gb-sum-head { display: flex; align-items: center; gap: 12px; }
.gb-sum-face { flex: 0 0 auto; width: 64px; height: 64px; display: grid; place-items: center; overflow: hidden; border-radius: 8px; background: rgba(216, 69, 46, .18); border: 1px solid rgba(200, 160, 74, .35); }
.gb-sum-txt { flex: 1; min-width: 0; display: grid; gap: 4px; }
.gb-sum-top { display: flex; gap: 14px; flex-wrap: wrap; font-size: 13px; }

/* 5 onglets dans l'écran Guilde : ils passent à la ligne au besoin */
#gTabs { flex-wrap: wrap; }
#gTab { grid-template-columns: minmax(0, 1fr); }
@media (max-width: 420px) { #gTabs { gap: 4px; padding-left: 8px; padding-right: 8px; } #gTabs button { padding: 4px 9px; } }

@media (max-width: 760px) {
  .gb-grid { grid-template-columns: minmax(0, 1fr); }
  .gb-head { gap: 10px; padding: 10px; }
  .gb-face { width: 96px; height: 96px; }
  .gb-face .px, .gb-face canvas, .gb-face img { max-width: 150%; }
  .gb-name { font-size: 19px; }
  .gb-rw { grid-template-columns: minmax(0, 1fr); gap: 2px; }
  .gb-ph { grid-template-columns: 26px 70px minmax(0, 1fr) 62px; }
  .gb-ph small { display: none; }
}
/* v0.23.1 : la compagnie passe sur sa propre ligne (colonne étroite) */
.gb-team { flex-wrap: wrap; }
.gb-team .tp-current { flex: 1 1 100%; order: 3; display: flex; flex-direction: row; flex-wrap: wrap; justify-content: space-around; min-width: 0; }
.gb-team .tp-edit { margin-left: auto; }
/* Rejeu : compteur de manches et réserve de PV de la guilde à la place de la barre du boss (qui ne peut pas tomber) */
.gb-replay .enemy-actor .bar.mini { display: none; }
.gb-round { font-weight: 800; color: var(--c-gold2); }
.gb-end { margin: 8px 0; padding: 10px 14px; text-align: center; font-weight: 800; border: 1px solid var(--c-gold); background: rgba(226, 189, 95, .12); border-radius: 6px; }
.gb-end small { display: block; font-weight: 500; opacity: .85; }

/* ---------- v0.31 : progression permanente, journées, disponibilité ---------- */
.gb-avail { display: flex; align-items: baseline; gap: 10px; flex-wrap: wrap; padding: 8px 14px; border-radius: 8px; font-size: 14px;
  background: linear-gradient(90deg, #6a2216, #1b2a55 75%); border: 1px solid var(--c-gold); color: #fff1c4; }
.gb-avail b { color: #ffcf8a; }
.gb-avail small { color: #c9cfe0; margin-left: auto; }
.gb-avail.off { background: #1b2a55; border-color: rgba(255, 255, 255, .2); }
.gb-avail.off b { color: var(--muted); }
.gb-killed { font-size: 12px; font-weight: 800; color: #9fe3a8; }
.gb-levels { padding: 12px 14px; display: grid; gap: 8px; min-width: 0; }
.gb-levels .hint { font-size: 12px; margin: 0; }
.gb-lv-head { display: flex; align-items: baseline; gap: 10px; flex-wrap: wrap; }
.gb-lv-head .section-h.small { margin: 0; }
.gb-lv-list { display: flex; gap: 6px; overflow-x: auto; padding: 2px 2px 6px; scroll-snap-type: x proximity; }
.gb-lv { flex: 0 0 auto; width: 74px; display: grid; justify-items: center; gap: 3px; padding: 6px 4px; border-radius: 8px; scroll-snap-align: center;
  background: rgba(255, 255, 255, .05); border: 1px solid rgba(200, 160, 74, .35); color: var(--text); cursor: pointer; font: inherit; }
.gb-lv b { font-family: var(--font-title); font-size: 18px; color: #f7e3a8; line-height: 1.1; }
.gb-lv small { font-size: 10px; color: var(--muted); white-space: nowrap; }
.gb-lv .bar { width: 100%; height: 5px; margin: 0; }
.gb-lv.on { border-color: #ffcf8a; background: rgba(226, 189, 95, .22); box-shadow: 0 0 0 2px rgba(255, 207, 138, .45); }
.gb-lv.killed small { color: #9fe3a8; font-weight: 800; }
.gb-lv.lock { opacity: .55; cursor: default; border-style: dashed; }
.gb-tier { display: inline-block; padding: 0 6px; border-radius: 4px; font-size: 11px; font-weight: 800; line-height: 17px; }
.gb-tier.t0 { background: rgba(255, 255, 255, .1); color: #d8dbe6; }
.gb-tier.t1 { background: rgba(44, 98, 168, .45); color: #cfe4ff; }
.gb-tier.t2 { background: rgba(106, 63, 160, .5); color: #e8d8ff; }
.gb-tier.t3 { background: rgba(154, 116, 24, .6); color: #ffecb0; }
.gb-tiers { display: grid; }
.gb-rw.cur { background: rgba(226, 189, 95, .1); border-radius: 4px; }
.gb-mine { font-size: 13px; padding: 8px 10px; border-radius: 6px; background: rgba(159, 227, 168, .08); border: 1px solid rgba(159, 227, 168, .3); }
.gb-mine b { color: #9fe3a8; }
.gb-contrib { text-align: center; font-size: 13px; color: var(--muted); }
.gb-contrib b { color: #ffcf8a; }
/* Bandeau de l'écran Guilde et pastille de l'onglet Boss */
.gb-banner { display: flex; align-items: center; gap: 12px; width: 100%; padding: 10px 14px; text-align: left; cursor: pointer; font: inherit; color: var(--text);
  background: linear-gradient(90deg, #6a2216, #1b2a55 70%); border: 1px solid var(--c-gold); box-shadow: 0 0 12px rgba(255, 207, 138, .25); }
.gb-banner.off { background: #1b2a55; border-color: rgba(255, 255, 255, .2); box-shadow: none; }
.gb-banner:hover { filter: brightness(1.1); }
.gb-bn-ic { font-size: 22px; color: #ffcf8a; }
.gb-banner.off .gb-bn-ic { color: var(--muted); }
.gb-bn-txt { flex: 1; display: grid; gap: 1px; min-width: 0; }
.gb-bn-txt b { color: #ffcf8a; }
.gb-banner.off .gb-bn-txt b { color: var(--muted); }
.gb-bn-txt small { color: var(--muted); font-size: 12px; }
.gb-bn-go { font-weight: 800; color: #f7e3a8; white-space: nowrap; }
#gTabs button { position: relative; }
#gTabs button.badge-on::after { content: ""; position: absolute; top: -3px; right: -3px; width: 10px; height: 10px; border-radius: 50%; background: var(--c-red); border: 2px solid var(--c-ink, #101a3a); }
#hub [data-badge="guild"] small.gb-ready { color: #ffcf8a; font-weight: 800; }
@media (max-width: 760px) {
  .gb-avail small { margin-left: 0; flex-basis: 100%; }
  .gb-lv { width: 64px; }
}

/* ---------- v0.31 : coffre de guilde (équipement en cases couleur de rareté) ---------- */
.gbk-gear { display: grid; gap: 8px; min-width: 0; }
.gbk-head { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.gbk-head .section-h.small { margin: 0; }
.gbk-filters { display: flex; gap: 4px; flex-wrap: wrap; }
.gbk-f { font: inherit; font-size: 11px; font-weight: 800; padding: 2px 8px; border-radius: 10px; cursor: pointer;
  background: rgba(255, 255, 255, .06); border: 1px solid rgba(200, 160, 74, .35); color: var(--muted); }
.gbk-f.on { background: rgba(226, 189, 95, .25); color: #fff1c4; border-color: var(--c-gold); }
.gbk-help { font-size: 11px; }
.gbk-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(210px, 1fr)); gap: 6px; }
.gbk-item { display: grid; gap: 1px; text-align: left; padding: 6px 8px; border-radius: 6px; cursor: pointer; font: inherit; min-width: 0;
  color: #fff8e8; border: 1px solid rgba(255, 255, 255, .2); background: rgba(255, 255, 255, .06); }
.gbk-item[class*="rq-"], .pick-row.gbk-pick[class*="rq-"] { background: var(--rq-bg); border-color: var(--rq-ring); }
.gbk-item:hover, .gbk-item:focus-visible { filter: brightness(1.12); outline: none; box-shadow: 0 0 0 2px var(--rq-ring, var(--c-gold)); }
.gbk-top { display: flex; align-items: center; gap: 6px; min-width: 0; }
.gbk-top b { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; text-shadow: 0 1px 2px rgba(0, 0, 0, .6); font-size: 13px; }
.gbk-ilvl { flex: 0 0 auto; font-family: var(--font-title); font-weight: 900; font-size: 13px; padding: 0 5px; border-radius: 4px; background: rgba(0, 0, 0, .3); color: var(--rq-ring, #fff); }
.gbk-item small { font-size: 11px; color: var(--rq-sub, var(--muted)); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.gbk-item .gbk-st { color: #fff8e8; font-weight: 700; }
.gbk-item .gbk-by { opacity: .75; }
.gbk-lqe { flex: 0 0 auto; font-size: 9px; font-weight: 900; letter-spacing: .04em; padding: 0 4px; border-radius: 3px; background: rgba(0, 0, 0, .35); color: #9fe3a8; border: 1px solid rgba(159, 227, 168, .5); }
.pick-row.gbk-pick { display: grid; gap: 1px; text-align: left; color: #fff8e8; }
.pick-row.gbk-pick b { text-shadow: 0 1px 2px rgba(0, 0, 0, .6); }
.pick-row.gbk-pick small { color: var(--rq-sub, var(--muted)); }
.pick-row.gbk-pick .gbk-lqe { justify-self: start; }
.gbk-sheet { text-align: left; display: grid; gap: 2px; padding: 8px 10px; border-radius: 6px; background: rgba(0, 0, 0, .25); }
.gbk-sheet hr { border: 0; border-top: 1px solid rgba(255, 255, 255, .12); margin: 4px 0; width: 100%; }
@media (max-width: 760px) {
  .gbk-grid { grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); }
  .gbk-help { display: none; }
}
.gbk-sheet { font-size: 13px; line-height: 1.45; background: rgba(8, 12, 24, .9); border: 1px solid var(--gold-soft, rgba(200, 160, 74, .45)); }
.gbk-sheet .t-name { font-weight: 900; font-size: 15px; }
.gbk-sheet .t-sub { color: var(--muted); font-size: 12px; }
.gbk-sheet .t-stat { color: #fff; font-weight: 700; }
.gbk-sheet .t-up { color: var(--hp, #6fdc8c); } .gbk-sheet .t-down { color: var(--danger, #ff7a6a); }
.gbk-sheet .t-set { font-size: 12px; color: #9fe3a8; }
/* Bouton Guilde du Camp : pastille « ⚔ 3/3 » (boss de guilde disponible) */
#hub .cn small.gb-ready { display: block; position: absolute; top: 4px; left: 50%; transform: translateX(-125%); padding: 0 5px; border-radius: 8px;
  font-size: 10px; line-height: 16px; font-weight: 900; color: #1a1408; background: #ffcf8a; box-shadow: 0 0 8px rgba(255, 207, 138, .6); white-space: nowrap; }
@media (max-width: 760px) { #hub .cn small.gb-ready { top: 2px; font-size: 9px; line-height: 14px; } }
/* v0.31 : « Lié quand équipé » / « Lié » dans l'inventaire et les infobulles */
.lqe-tag { color: #9fe3a8; font-weight: 700; }
.lqe-tag.bound { color: #e3c69f; }
.t-lqe b { color: #9fe3a8; }
.t-bound b { color: #e3c69f; }
