:root {
  color-scheme: dark;
  --bg: #07101d;
  --panel: rgba(16, 28, 48, 0.92);
  --panel-soft: rgba(28, 43, 70, 0.75);
  --border: rgba(124, 155, 210, 0.22);
  --text: #edf4ff;
  --muted: #8fa6c7;
  --blue: #4ba3ff;
  --cyan: #63e6ff;
  --purple: #9d6cff;
  --danger: #ff5f7a;
  --success: #54e39e;
  --warning: #ffc857;
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

* { box-sizing: border-box; }

body {
  margin: 0;
  min-height: 100vh;
  color: var(--text);
  background:
    radial-gradient(circle at 20% 10%, rgba(67, 102, 255, 0.18), transparent 32%),
    radial-gradient(circle at 80% 20%, rgba(141, 71, 255, 0.16), transparent 28%),
    linear-gradient(150deg, #040812 0%, var(--bg) 54%, #080c18 100%);
}

button { font: inherit; }

.app-shell { max-width: 1500px; margin: 0 auto; padding: 24px; }

.topbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  margin-bottom: 20px;
}

h1, h2, h3, p { margin-top: 0; }
h1 { margin-bottom: 0; font-size: clamp(1.8rem, 4vw, 3.1rem); letter-spacing: -0.05em; }
h2 { margin-bottom: 0; font-size: 1.25rem; }
h3 { margin-bottom: 12px; }

.eyebrow {
  margin-bottom: 5px;
  color: var(--cyan);
  font-size: 0.72rem;
  font-weight: 800;
  letter-spacing: 0.18em;
}

.resources {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 10px;
}

.resources span, .badge {
  padding: 10px 13px;
  border: 1px solid var(--border);
  border-radius: 999px;
  background: rgba(9, 19, 35, 0.8);
}

.dashboard {
  display: grid;
  grid-template-columns: minmax(0, 1.65fr) minmax(320px, 0.75fr);
  gap: 18px;
}

.panel {
  padding: 18px;
  border: 1px solid var(--border);
  border-radius: 20px;
  background: var(--panel);
  box-shadow: 0 24px 70px rgba(0, 0, 0, 0.22);
  backdrop-filter: blur(14px);
}

.map-panel { min-height: 600px; }
.side-column { display: grid; gap: 18px; }
.full-width { grid-column: 1 / -1; }

.panel-title-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  margin-bottom: 16px;
}

.city-map {
  position: relative;
  min-height: 520px;
  overflow: hidden;
  border: 1px solid var(--border);
  border-radius: 16px;
  background:
    linear-gradient(rgba(72, 109, 153, 0.12) 1px, transparent 1px),
    linear-gradient(90deg, rgba(72, 109, 153, 0.12) 1px, transparent 1px),
    radial-gradient(circle at 50% 50%, rgba(42, 78, 120, 0.5), rgba(5, 13, 27, 0.96));
  background-size: 46px 46px, 46px 46px, auto;
}

.city-map::before,
.city-map::after {
  content: "";
  position: absolute;
  inset: 10% 5%;
  border: 16px double rgba(110, 147, 190, 0.09);
  border-radius: 48% 52% 44% 56%;
  transform: rotate(-9deg);
}

.city-map::after {
  inset: 28% 12%;
  transform: rotate(17deg);
}

.gate-marker {
  position: absolute;
  width: 58px;
  height: 58px;
  border: 0;
  border-radius: 50%;
  color: white;
  cursor: pointer;
  background: radial-gradient(circle, #e9ddff 0 8%, var(--purple) 20%, rgba(107, 43, 235, 0.5) 48%, transparent 72%);
  filter: drop-shadow(0 0 14px rgba(151, 92, 255, 0.9));
  animation: pulse 2s infinite ease-in-out;
}

.gate-marker::after {
  content: attr(data-rank);
  position: absolute;
  left: 50%;
  top: 100%;
  transform: translateX(-50%);
  padding: 2px 7px;
  border-radius: 999px;
  background: rgba(5, 10, 20, 0.88);
  font-size: 0.7rem;
  font-weight: 900;
}

@keyframes pulse {
  50% { transform: scale(1.12); filter: drop-shadow(0 0 24px rgba(151, 92, 255, 1)); }
}

.stack-list { display: grid; gap: 10px; max-height: 270px; overflow: auto; padding-right: 4px; }

.list-card, .raid-card {
  padding: 13px;
  border: 1px solid var(--border);
  border-radius: 14px;
  background: var(--panel-soft);
}

.list-card { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.list-card p { margin-bottom: 3px; color: var(--muted); font-size: 0.83rem; }
.card-title { font-weight: 800; }

.rank {
  min-width: 34px;
  height: 34px;
  display: grid;
  place-items: center;
  border-radius: 10px;
  background: rgba(75, 163, 255, 0.14);
  color: var(--cyan);
  font-weight: 900;
}

.primary-button, .secondary-button {
  border-radius: 11px;
  padding: 9px 12px;
  cursor: pointer;
  font-weight: 800;
}

.primary-button {
  border: 0;
  color: #05101d;
  background: linear-gradient(135deg, var(--cyan), var(--blue));
}

.secondary-button {
  border: 1px solid var(--border);
  color: var(--text);
  background: rgba(15, 29, 51, 0.86);
}

button:disabled { opacity: 0.45; cursor: not-allowed; }

.raid-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 12px; }
.raid-card h3 { margin-bottom: 6px; }
.raid-card p { color: var(--muted); }

.progress-track {
  height: 10px;
  overflow: hidden;
  border-radius: 999px;
  background: rgba(5, 11, 22, 0.8);
}

.progress-fill {
  height: 100%;
  border-radius: inherit;
  background: linear-gradient(90deg, var(--purple), var(--cyan));
  transition: width 0.4s ease;
}

.dialog {
  width: min(720px, calc(100% - 28px));
  border: 0;
  padding: 0;
  border-radius: 20px;
  color: var(--text);
  background: transparent;
}
.dialog::backdrop { background: rgba(1, 5, 12, 0.8); backdrop-filter: blur(8px); }
.dialog-card { position: relative; padding: 24px; border: 1px solid var(--border); border-radius: 20px; background: #101c30; }
.dialog-close { position: absolute; right: 15px; top: 12px; border: 0; background: transparent; color: white; font-size: 1.8rem; cursor: pointer; }
.gate-summary { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; margin: 18px 0; }
.gate-summary div { padding: 10px; border-radius: 12px; background: rgba(5, 12, 24, 0.7); }
.gate-summary small { display: block; color: var(--muted); }
.selection-list { display: grid; grid-template-columns: repeat(auto-fit, minmax(210px, 1fr)); gap: 10px; }
.selection-card { display: flex; align-items: center; gap: 10px; padding: 10px; border: 1px solid var(--border); border-radius: 12px; background: rgba(6, 15, 29, 0.65); }
.dialog-actions { display: flex; justify-content: flex-end; gap: 10px; margin-top: 18px; }

.toast {
  position: fixed;
  right: 24px;
  bottom: 24px;
  max-width: 360px;
  padding: 13px 16px;
  border: 1px solid var(--border);
  border-radius: 13px;
  background: #101d31;
  opacity: 0;
  transform: translateY(15px);
  transition: 0.25s ease;
  pointer-events: none;
}
.toast.visible { opacity: 1; transform: translateY(0); }
.empty-state { color: var(--muted); text-align: center; padding: 18px; border: 1px dashed var(--border); border-radius: 14px; }

@media (max-width: 940px) {
  .dashboard { grid-template-columns: 1fr; }
  .full-width { grid-column: auto; }
  .topbar { align-items: flex-start; flex-direction: column; }
  .resources { justify-content: flex-start; }
  .map-panel { min-height: auto; }
  .city-map { min-height: 430px; }
}

/* Carte interactive façon centre d'opérations */
.map-actions, .gate-card-actions { display: flex; gap: 8px; align-items: center; }
.map-frame { position: relative; }
.city-map {
  z-index: 1;
  min-height: 590px;
  border-radius: 14px;
  background: #172335;
}
.city-map::before, .city-map::after { display: none; }
.leaflet-container { font-family: inherit; background: #172335; }
.leaflet-tile-pane { filter: saturate(0.62) brightness(0.62) contrast(1.16) hue-rotate(175deg); }
.leaflet-control-attribution { background: rgba(7, 16, 29, 0.82) !important; color: #aebdd2; }
.leaflet-control-attribution a { color: #7fc9ff; }
.leaflet-bar a { color: var(--text); background: rgba(13, 26, 45, 0.94); border-color: var(--border); }
.leaflet-bar a:hover { background: #203553; color: white; }
.leaflet-control-scale-line { color: var(--text); border-color: var(--text); background: rgba(7, 16, 29, 0.68); }
.gate-leaflet-wrapper { background: transparent; border: 0; }
.map-gate-marker {
  position: relative;
  width: 46px;
  height: 46px;
  padding: 0;
  border: 2px solid rgba(255,255,255,.82);
  border-radius: 50% 50% 50% 12px;
  color: white;
  cursor: pointer;
  transform: rotate(-45deg);
  box-shadow: 0 5px 18px rgba(0,0,0,.5), 0 0 18px currentColor;
  animation: map-marker-pulse 2.2s infinite ease-in-out;
}
.map-gate-marker span { display: grid; place-items: center; width: 100%; height: 100%; transform: rotate(45deg); font-weight: 950; font-size: 1rem; text-shadow: 0 2px 3px #000; }
.gate-rank-d { background: #548c68; color: #7ee2a1; }
.gate-rank-c { background: #3476a8; color: #75c7ff; }
.gate-rank-b { background: #6550b3; color: #a78bfa; }
.gate-rank-a { background: #ad5d21; color: #ffb56f; }
.gate-rank-s { background: #a62f4d; color: #ff668b; }
@keyframes map-marker-pulse { 50% { filter: brightness(1.3); transform: rotate(-45deg) scale(1.08); } }
.map-legend {
  position: absolute;
  z-index: 500;
  top: 12px;
  right: 12px;
  display: flex;
  gap: 7px;
  padding: 8px 10px;
  border: 1px solid var(--border);
  border-radius: 10px;
  background: rgba(7, 16, 29, 0.88);
  backdrop-filter: blur(8px);
}
.map-legend span { display: flex; align-items: center; gap: 4px; font-size: .75rem; font-weight: 800; }
.legend-dot { width: 10px; height: 10px; border-radius: 50%; display: inline-block; }
.leaflet-tooltip { border: 1px solid var(--border); border-radius: 8px; color: var(--text); background: rgba(8, 17, 30, .95); box-shadow: 0 8px 24px rgba(0,0,0,.35); }
.leaflet-tooltip-top::before { border-top-color: rgba(8,17,30,.95); }

@media (max-width: 700px) {
  .panel-title-row { align-items: flex-start; }
  .map-actions { flex-direction: column; align-items: stretch; }
  .city-map { min-height: 480px; }
  .map-legend { top: auto; bottom: 10px; right: 10px; }
}

/* Carte interactive façon centre d'opérations */
.map-actions, .gate-card-actions { display: flex; gap: 8px; align-items: center; }
.map-frame { position: relative; }
.city-map { z-index: 1; min-height: 590px; border-radius: 14px; background: #172335; }
.city-map::before, .city-map::after { display: none; }
.leaflet-container { font-family: inherit; background: #172335; }
.leaflet-tile-pane { filter: saturate(0.62) brightness(0.62) contrast(1.16) hue-rotate(175deg); }
.leaflet-control-attribution { background: rgba(7, 16, 29, 0.82) !important; color: #aebdd2; }
.leaflet-control-attribution a { color: #7fc9ff; }
.leaflet-bar a { color: var(--text); background: rgba(13, 26, 45, 0.94); border-color: var(--border); }
.leaflet-bar a:hover { background: #203553; color: white; }
.leaflet-control-scale-line { color: var(--text); border-color: var(--text); background: rgba(7, 16, 29, 0.68); }
.gate-leaflet-wrapper { background: transparent; border: 0; }
.map-gate-marker { position: relative; width: 46px; height: 46px; padding: 0; border: 2px solid rgba(255,255,255,.82); border-radius: 50% 50% 50% 12px; color: white; cursor: pointer; transform: rotate(-45deg); box-shadow: 0 5px 18px rgba(0,0,0,.5), 0 0 18px currentColor; animation: map-marker-pulse 2.2s infinite ease-in-out; }
.map-gate-marker span { display: grid; place-items: center; width: 100%; height: 100%; transform: rotate(45deg); font-weight: 950; font-size: 1rem; text-shadow: 0 2px 3px #000; }
.gate-rank-d { background: #548c68; color: #7ee2a1; }
.gate-rank-c { background: #3476a8; color: #75c7ff; }
.gate-rank-b { background: #6550b3; color: #a78bfa; }
.gate-rank-a { background: #ad5d21; color: #ffb56f; }
.gate-rank-s { background: #a62f4d; color: #ff668b; }
@keyframes map-marker-pulse { 50% { filter: brightness(1.3); transform: rotate(-45deg) scale(1.08); } }
.map-legend { position: absolute; z-index: 500; top: 12px; right: 12px; display: flex; gap: 7px; padding: 8px 10px; border: 1px solid var(--border); border-radius: 10px; background: rgba(7, 16, 29, 0.88); backdrop-filter: blur(8px); }
.map-legend span { display: flex; align-items: center; gap: 4px; font-size: .75rem; font-weight: 800; }
.legend-dot { width: 10px; height: 10px; border-radius: 50%; display: inline-block; }
.leaflet-tooltip { border: 1px solid var(--border); border-radius: 8px; color: var(--text); background: rgba(8, 17, 30, .95); box-shadow: 0 8px 24px rgba(0,0,0,.35); }
.leaflet-tooltip-top::before { border-top-color: rgba(8,17,30,.95); }
@media (max-width: 700px) { .panel-title-row { align-items: flex-start; } .map-actions { flex-direction: column; align-items: stretch; } .city-map { min-height: 480px; } .map-legend { top: auto; bottom: 10px; right: 10px; } }

/* Début de partie vide et Bureau de l'Association */
.grow { flex: 1; min-width: 0; }
.muted-text { color: var(--muted); margin: 4px 0 0; }
.full-button { width: 100%; margin-top: 14px; }

.map-locked-overlay {
  position: absolute;
  z-index: 450;
  inset: 0;
  display: grid;
  place-content: center;
  gap: 8px;
  padding: 30px;
  text-align: center;
  border-radius: 14px;
  background: rgba(4, 9, 17, 0.72);
  backdrop-filter: blur(4px) grayscale(1);
}
.map-locked-overlay[hidden] { display: none; }
.map-locked-overlay strong { font-size: 1.1rem; }
.map-locked-overlay span { max-width: 380px; color: var(--muted); }

.empty-building-card {
  display: grid;
  gap: 12px;
  padding: 16px;
  border: 1px dashed rgba(99, 230, 255, 0.32);
  border-radius: 15px;
  background: rgba(20, 37, 61, 0.6);
}
.empty-building-card p { margin: 5px 0 0; color: var(--muted); font-size: 0.85rem; }
.building-icon {
  width: 54px;
  height: 54px;
  display: grid;
  place-items: center;
  border: 1px solid var(--border);
  border-radius: 15px;
  background: rgba(75, 163, 255, 0.12);
  font-size: 1.6rem;
}
.building-icon.small { width: 42px; height: 42px; font-size: 1.15rem; flex: 0 0 auto; }
.building-list-card { align-items: center; }

.building-dialog { width: min(920px, calc(100vw - 24px)); }
.building-card { width: 100%; max-width: none; }
.building-dialog-heading { display: flex; align-items: center; justify-content: space-between; gap: 16px; }
.building-tabs {
  display: flex;
  flex-wrap: wrap;
  gap: 7px;
  margin: 20px 0 16px;
  padding-bottom: 12px;
  border-bottom: 1px solid var(--border);
}
.tab-button {
  padding: 9px 13px;
  border: 1px solid var(--border);
  border-radius: 10px;
  color: var(--muted);
  background: rgba(10, 21, 38, 0.72);
  cursor: pointer;
  font-weight: 800;
}
.tab-button.active { color: #06101c; border-color: transparent; background: var(--cyan); }
.building-tab-panel { min-height: 300px; }
.building-tab-panel[hidden] { display: none; }

.hunter-management-list { display: grid; gap: 10px; }
.hunter-management-card {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 13px;
  border: 1px solid var(--border);
  border-radius: 14px;
  background: var(--panel-soft);
}
.hunter-management-card p { margin: 3px 0 0; color: var(--muted); font-size: 0.84rem; }
.danger-button {
  padding: 8px 10px;
  border: 1px solid rgba(255, 95, 122, 0.35);
  border-radius: 9px;
  color: #ff91a4;
  background: rgba(255, 95, 122, 0.08);
  cursor: pointer;
}

.management-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
}
.management-card {
  display: grid;
  gap: 7px;
  padding: 16px;
  border: 1px solid var(--border);
  border-radius: 14px;
  background: var(--panel-soft);
}
.management-card small { color: var(--muted); }
.management-card strong { font-size: 1.35rem; }

.group-header { display: flex; align-items: center; justify-content: space-between; margin-bottom: 12px; }
.group-header p { margin: 3px 0 0; color: var(--muted); }

.recruitment-notice {
  padding: 18px;
  border: 1px solid rgba(255, 200, 87, 0.28);
  border-radius: 14px;
  background: rgba(255, 200, 87, 0.07);
}
.recruitment-notice p { margin: 6px 0 0; color: var(--muted); }
.candidate-grid { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 10px; }
.candidate-card {
  display: grid;
  align-content: start;
  gap: 12px;
  min-height: 225px;
  padding: 14px;
  border: 1px solid var(--border);
  border-radius: 15px;
  background: var(--panel-soft);
}
.candidate-card p { margin: 3px 0; color: var(--muted); }
.candidate-card .primary-button { margin-top: auto; }
.rank.large { width: 44px; height: 44px; font-size: 1.1rem; }
.empty-state.tall { min-height: 210px; display: grid; place-items: center; }

@media (max-width: 900px) {
  .candidate-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 650px) {
  .management-grid { grid-template-columns: 1fr; }
  .candidate-grid { grid-template-columns: 1fr; }
  .hunter-management-card { align-items: flex-start; flex-wrap: wrap; }
}


/* Placement du premier bâtiment sur la carte */
.city-map.placement-mode { cursor: crosshair; }
.map-locked-overlay {
  pointer-events: none;
  inset: 18px auto auto 50%;
  transform: translateX(-50%);
  width: min(460px, calc(100% - 36px));
  padding: 14px 18px;
  border: 1px solid rgba(99, 230, 255, 0.34);
  background: rgba(4, 9, 17, 0.88);
  backdrop-filter: blur(7px);
}
.placement-help {
  padding: 11px 12px;
  border: 1px solid rgba(99, 230, 255, 0.25);
  border-radius: 11px;
  color: var(--muted);
  background: rgba(99, 230, 255, 0.06);
  line-height: 1.45;
}
.placement-help strong { color: var(--text); }
.building-card-actions { display: flex; gap: 8px; align-items: center; }
.building-leaflet-wrapper { background: transparent; border: 0; }
.map-building-marker {
  width: 54px;
  height: 54px;
  display: grid;
  place-items: center;
  border: 2px solid #8eeaff;
  border-radius: 14px;
  color: white;
  background: rgba(12, 61, 91, .95);
  box-shadow: 0 0 0 5px rgba(99, 230, 255, .14), 0 10px 24px rgba(0,0,0,.45);
  cursor: pointer;
  font-size: 1.45rem;
}
.candidate-actions {
  grid-column: 1 / -1;
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 12px;
  padding-top: 4px;
}
.candidate-actions small { color: var(--muted); }
@media (max-width: 650px) {
  .candidate-actions { align-items: stretch; flex-direction: column; }
  .building-card-actions { width: 100%; }
  .building-card-actions button { flex: 1; }
}


/* Sélection des participants au raid */
.raid-mode-tabs { display: flex; gap: 8px; margin: 18px 0 12px; }
.raid-mode-tabs .tab-button { flex: 1; }
.group-selection-card { align-items: flex-start; }
.group-symbol { display: grid; place-items: center; width: 38px; height: 38px; border-radius: 10px; background: rgba(84, 214, 255, 0.12); font-size: 1.2rem; }

/* Déplacements et phases de mission */
.map-team-marker {
  width: 44px;
  height: 44px;
  border: 2px solid rgba(255,255,255,.9);
  border-radius: 50%;
  background: #18253a;
  color: #fff;
  display: grid;
  place-items: center;
  position: relative;
  box-shadow: 0 8px 22px rgba(0,0,0,.45);
  cursor: pointer;
}
.map-team-marker span { font-size: 20px; line-height: 1; }
.map-team-marker b {
  position: absolute;
  right: -4px;
  bottom: -4px;
  min-width: 20px;
  height: 20px;
  padding: 0 4px;
  border-radius: 999px;
  display: grid;
  place-items: center;
  background: #fff;
  color: #111827;
  font-size: 11px;
}
.map-team-marker.team-outbound { background: #2563eb; }
.map-team-marker.team-mission { background: #b91c1c; animation: teamPulse 1.2s infinite; }
.map-team-marker.team-return { background: #15803d; }
@keyframes teamPulse { 50% { transform: scale(1.08); } }
.team-route { stroke-linecap: round; }
.route-outbound { stroke: #60a5fa; }
.route-return { stroke: #4ade80; }
.raid-card-top, .raid-meta, .raid-card-actions { display:flex; align-items:center; justify-content:space-between; gap:10px; }
.phase-badge { font-size:12px; padding:5px 9px; border-radius:999px; background:rgba(255,255,255,.08); }
.raid-meta { margin-top:8px; font-size:12px; color:var(--muted, #a8b2c3); }
.raid-card-actions { margin-top:12px; flex-wrap:wrap; }
.return-ready { color:#64e69a; font-size:12px; font-weight:700; }
.phase-return { border-color:rgba(74,222,128,.45); }
.phase-mission { border-color:rgba(248,113,113,.45); }

/* Progression, expérience et gestion des Éveillés */
.xp-line { height: 7px; margin-top: 7px; overflow: hidden; border-radius: 999px; background: rgba(4,10,20,.75); }
.xp-line span { display:block; height:100%; border-radius:inherit; background: linear-gradient(90deg,var(--blue),var(--cyan)); }
.hunter-management-summary { display:flex; align-items:center; gap:12px; margin:16px 0; padding:14px; border:1px solid var(--border); border-radius:14px; background:var(--panel-soft); }
.hunter-management-summary p { margin:4px 0 0; color:var(--muted); }
.hunter-config-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; margin-bottom:20px; }
.hunter-config-grid label { display:grid; gap:7px; color:var(--muted); font-size:.85rem; font-weight:700; }
.hunter-config-grid select { width:100%; padding:10px 11px; border:1px solid var(--border); border-radius:10px; color:var(--text); background:#0b1728; }
.talent-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; }
.talent-card { display:flex; align-items:center; justify-content:space-between; gap:10px; padding:12px; border:1px solid var(--border); border-radius:12px; background:var(--panel-soft); }
.talent-card small { display:block; margin-top:3px; color:var(--muted); }
@media (max-width:650px){.hunter-config-grid,.talent-grid{grid-template-columns:1fr}.hunter-management-card .secondary-button,.hunter-management-card .danger-button{flex:1}}
.workshop-marker{border-color:#d89a45;background:#402b18}.center-marker{border-color:#c89cff;background:#4b2673;box-shadow:0 0 0 5px rgba(190,120,255,.2),0 10px 24px rgba(0,0,0,.45)}.equipment-grid,.craft-grid{display:grid;gap:12px;margin-top:16px}.equipment-card,.craft-card,.promotion-box{display:flex;gap:12px;align-items:center;padding:14px;border:1px solid var(--border);border-radius:12px;background:rgba(255,255,255,.03)}.craft-card{align-items:flex-start;flex-direction:column}.craft-actions,.promotion-actions{display:flex;gap:8px;flex-wrap:wrap}.promotion-box{display:block;margin-bottom:16px}.promotion-box.locked{opacity:.65}.equipment-card .primary-button{min-width:150px}@media(max-width:700px){.equipment-card{align-items:flex-start;flex-wrap:wrap}.equipment-card .primary-button{width:100%}}

.recruitment-progress{display:flex;justify-content:space-between;gap:12px;align-items:center;padding:12px 14px;border:1px solid var(--border);border-radius:12px;background:rgba(255,255,255,.035);margin-bottom:12px}.recruitment-progress span{color:var(--muted);font-size:.9rem}.construction-options{display:grid;gap:12px;margin-top:18px}.construction-option{display:flex;align-items:center;gap:14px;padding:16px;border:1px solid var(--border);border-radius:14px;background:rgba(255,255,255,.035)}.construction-option p{margin:4px 0;color:var(--muted)}.construction-option small{color:var(--muted)}@media(max-width:640px){.construction-option{align-items:flex-start;flex-wrap:wrap}.construction-option .primary-button{width:100%}.recruitment-progress{align-items:flex-start;flex-direction:column}}
.center-dialog .dialog-card{width:min(1100px,96vw)}.center-actions,.group-toolbar,.group-header,.mission-card,.mission-summary{display:flex;gap:12px;align-items:center;justify-content:space-between}.center-list{display:grid;gap:8px;max-height:310px;overflow:auto}.center-row,.history-row{display:flex;gap:12px;align-items:center;padding:12px;border:1px solid var(--border);border-radius:10px}.center-row small,.history-row small{display:block}.group-editor{margin:14px 0;padding:14px;border:1px solid var(--border);border-radius:12px}.selection-list.compact{max-height:220px;overflow:auto}.sticky-mission-button{position:sticky;bottom:0;display:flex;justify-content:flex-end;padding:14px 0;background:var(--panel)}.mission-card{padding:14px;border:1px solid var(--border);border-radius:12px;margin:10px 0}.history-row{align-items:flex-start;flex-direction:column}.mission-summary{padding:14px;margin-bottom:12px;background:rgba(255,255,255,.04);border-radius:10px}

/* Centre des Éveillés : interface grand format */
.center-dialog {
  width: min(1500px, calc(100vw - 32px));
  max-width: none;
  height: min(92vh, 980px);
  max-height: 92vh;
  margin: auto;
}
.center-dialog .dialog-card {
  box-sizing: border-box;
  width: 100%;
  height: 100%;
  max-height: 92vh;
  display: flex;
  flex-direction: column;
  overflow: hidden;
}
.center-dialog .building-tabs {
  flex: 0 0 auto;
}
.center-dialog #centerPeople,
.center-dialog #centerMissions {
  flex: 1 1 auto;
  min-height: 0;
  overflow-y: auto;
  padding-right: 8px;
}
.center-dialog .center-list {
  max-height: 44vh;
  grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
}
.center-dialog #centerGroupList,
.center-dialog #centerMissionList {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(360px, 1fr));
  gap: 12px;
}
.center-dialog .sticky-mission-button {
  bottom: 0;
  z-index: 2;
  padding: 16px 4px 4px;
  background: linear-gradient(transparent, #101c30 35%);
}
@media (max-width: 760px) {
  .center-dialog {
    width: calc(100vw - 12px);
    height: 96vh;
    max-height: 96vh;
  }
  .center-dialog .dialog-card {
    padding: 18px 14px;
    max-height: 96vh;
  }
  .center-dialog .center-list,
  .center-dialog #centerGroupList,
  .center-dialog #centerMissionList {
    grid-template-columns: 1fr;
  }
  .center-dialog .center-actions {
    align-items: stretch;
    flex-direction: column;
  }
}

.mission-setup-card{width:min(680px,94vw)}
.mission-setup-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin:18px 0}
.mission-setup-grid label{display:grid;gap:7px;font-weight:700}
.mission-setup-grid select,.mission-setup-grid input{width:100%}
.form-help{padding:12px 14px;border:1px solid var(--line);border-radius:12px;background:rgba(255,255,255,.035);font-size:.9rem;line-height:1.45}
@media(max-width:650px){.mission-setup-grid{grid-template-columns:1fr}}

.dismantle-toolbar,.mass-dismantle{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-top:16px;flex-wrap:wrap}.dismantle-list{display:grid;gap:10px;margin-top:14px}.dismantle-card{display:flex;align-items:center;gap:12px;padding:13px;border:1px solid var(--border);border-radius:12px;background:rgba(255,255,255,.03);cursor:pointer}.dismantle-card input{width:18px;height:18px}.dismantle-card small{display:block;margin-top:4px}.dismantle-actions{display:flex;justify-content:flex-end;margin-top:14px}.section-separator{border:0;border-top:1px solid var(--border);margin:24px 0}.select-all{display:flex;align-items:center;gap:8px}.danger-button{border:1px solid #9e4141;background:#6d2929;color:#fff;border-radius:9px;padding:10px 14px;font-weight:700;cursor:pointer}.danger-button:hover{filter:brightness(1.12)}.mass-dismantle select{min-width:90px;margin-left:8px}@media(max-width:700px){.dismantle-card{align-items:flex-start;flex-wrap:wrap}.dismantle-card .grow{min-width:calc(100% - 70px)}.dismantle-actions .primary-button,.danger-button{width:100%}}


/* Puissance cumulée pendant la préparation d'un raid */
.raid-dialog-actions{align-items:center;}
.selected-raid-power{margin-right:auto;padding:10px 14px;border:1px solid var(--border);border-radius:10px;background:rgba(255,255,255,.04);font-size:14px;white-space:nowrap;}
.selected-raid-power strong{font-size:18px;}
@media(max-width:700px){.raid-dialog-actions{flex-wrap:wrap}.selected-raid-power{order:3;width:100%;text-align:center;margin-right:0}}

.alert-summary-row{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:nowrap}
.alert-summary-title{display:flex;align-items:center;gap:10px;min-width:0;white-space:nowrap}
.alert-summary-title .eyebrow{margin:0}
.alert-summary-title h2{margin:0}
.alert-counters{display:flex;align-items:center;gap:8px;flex-wrap:nowrap;justify-content:flex-end}
.alert-counters .badge{display:inline-flex;gap:6px;align-items:center;white-space:nowrap}
.alert-badge strong{font-size:1rem}
.portal-badge{border-color:rgba(69,210,150,.35)}
.raid-badge{border-color:rgba(255,105,105,.38)}
.fracture-badge{border-color:rgba(175,105,255,.42)}
@media (max-width:900px){.alert-summary-row{flex-wrap:wrap}.alert-counters{width:100%;justify-content:flex-start;flex-wrap:wrap}}


/* Rôles tactiques */
.role-tank{border-left:4px solid #4ba3ff!important}.role-heal{border-left:4px solid #54e39e!important}.role-dps{border-left:4px solid #ff5f7a!important}.role-choice.role-tank{box-shadow:inset 0 0 0 1px #4ba3ff}.role-choice.role-heal{box-shadow:inset 0 0 0 1px #54e39e}.role-choice.role-dps{box-shadow:inset 0 0 0 1px #ff5f7a}.sub-tabs{display:flex;gap:8px;margin-bottom:14px}.center-dialog{width:min(1500px,calc(100vw - 24px));max-width:none}.center-dialog .dialog-card{max-height:92vh;overflow:auto}.center-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(330px,1fr));gap:8px}.center-row{display:flex;align-items:center;gap:10px;padding:11px;border:1px solid var(--border);border-radius:12px;background:var(--panel-soft)}

.role-icon.role-tank{outline:2px solid #4ba3ff}.role-icon.role-heal{outline:2px solid #54e39e}.role-icon.role-dps{outline:2px solid #ff5f7a}.role-icon.role-none{outline:1px solid transparent}

/* Filtres et tri des activités */
.activity-filter{cursor:pointer;color:var(--text);font:inherit;transition:transform .15s ease,box-shadow .15s ease,background .15s ease}
.activity-filter:hover{transform:translateY(-1px)}
.activity-filter.active{background:rgba(75,163,255,.18);box-shadow:0 0 0 2px rgba(75,163,255,.35) inset}
.portal-badge.active{background:rgba(69,210,150,.15);box-shadow:0 0 0 2px rgba(69,210,150,.38) inset}
.raid-badge.active{background:rgba(255,105,105,.15);box-shadow:0 0 0 2px rgba(255,105,105,.4) inset}
.fracture-badge.active{background:rgba(175,105,255,.16);box-shadow:0 0 0 2px rgba(175,105,255,.42) inset}
.activity-sort-toolbar{display:flex;justify-content:flex-end;margin:12px 0}
.activity-sort-toolbar .secondary-button{width:100%}

/* Centre de commandement agrandi et aligné sur toute la largeur du tableau */
.command-center-panel{grid-column:1/-1;width:100%;min-height:300px;padding:22px}
.command-center-panel .raid-grid{grid-template-columns:repeat(auto-fit,minmax(320px,1fr));align-content:start;min-height:220px}
@media(max-width:900px){.command-center-panel{min-height:240px;padding:18px}}
.center-main-tabs{flex-wrap:wrap}.readonly-members{display:grid;gap:.35rem;margin:.75rem 0;padding:.75rem;border-radius:.6rem;background:rgba(255,255,255,.035)}

/* Ressources : bouton d'aide */
.resources{align-items:center}.info-button{width:28px;height:28px;min-width:28px;border-radius:50%;border:1px solid var(--border);background:rgba(75,163,255,.15);color:var(--text);font-weight:900;font-family:Georgia,serif;font-size:16px;cursor:pointer}.info-button:hover{background:rgba(75,163,255,.3);transform:translateY(-1px)}
.info-dialog .dialog-card{width:min(1240px,96vw);height:min(860px,94vh);max-height:94vh;display:flex;flex-direction:column;overflow:hidden}.info-tabs{margin:16px 0;flex:0 0 auto}.info-panel{display:grid;grid-template-columns:repeat(3,minmax(240px,1fr));align-content:start;gap:14px;overflow-y:auto;padding:2px 8px 10px 2px;flex:1 1 auto;min-height:0}.info-panel[hidden]{display:none!important}.info-panel article{padding:18px;border:1px solid var(--border);border-radius:12px;background:rgba(255,255,255,.035)}.info-panel h3{margin:0 0 8px}.info-panel p{margin:0;color:var(--muted);line-height:1.55}@media(max-width:900px){.info-dialog .dialog-card{width:96vw;height:92vh}.info-panel{grid-template-columns:repeat(2,minmax(220px,1fr))}}@media(max-width:620px){.info-panel{grid-template-columns:1fr}.info-tabs{overflow-x:auto;flex-wrap:nowrap}}

/* Infrastructure et alertes réunies dans un seul panneau */
.combined-side-panel{min-height:100%}.side-panel-tabs{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:18px}.side-tab-panel{min-height:420px}.side-tab-panel[hidden]{display:none}.side-panel-tabs .tab-button{width:100%}


/* Correction : le panneau Alerte ne grandit plus avec le nombre de missions.
   La liste défile à l'intérieur du panneau, tandis que les boutons et filtres restent visibles. */
:root{--side-operation-panel-height:520px}
.combined-side-panel{display:flex;flex-direction:column;min-height:0;height:100%}
.side-panel-tabs{flex:0 0 auto}
.side-tab-panel{
  box-sizing:border-box;
  height:var(--side-operation-panel-height);
  min-height:var(--side-operation-panel-height);
  max-height:var(--side-operation-panel-height);
  overflow:hidden;
}
#sideInfrastructurePanel,#sideAlertsPanel{
  display:flex;
  flex-direction:column;
  min-height:var(--side-operation-panel-height);
}
#sideInfrastructurePanel[hidden],#sideAlertsPanel[hidden]{display:none}
#sideInfrastructurePanel .stack-list,#sideAlertsPanel .stack-list{
  flex:1 1 auto;
  min-height:0;
  overflow-y:auto;
  overflow-x:hidden;
  padding-right:4px;
}
#sideAlertsPanel .panel-title-row,#sideAlertsPanel .activity-sort-toolbar,
#sideInfrastructurePanel .panel-title-row{flex:0 0 auto}
@media(max-width:900px){
  :root{--side-operation-panel-height:440px}
}

/* Filtres Alerte placés sous le titre « Activités détectées ». */
#sideAlertsPanel .alert-summary-row{
  display:flex;
  flex-direction:column;
  align-items:stretch;
  justify-content:flex-start;
  gap:12px;
}
#sideAlertsPanel .alert-summary-title{
  width:100%;
}
#sideAlertsPanel .alert-counters{
  width:100%;
  justify-content:flex-start;
  flex-wrap:wrap;
}

/* Guide du jeu : grande fenêtre et trois informations par ligne sur ordinateur. */
.info-dialog .dialog-card{
  width:min(1700px,96vw);
  height:min(940px,94vh);
  max-width:96vw;
  max-height:94vh;
  padding:24px 28px;
}
.info-dialog .info-tabs{margin:12px 0 16px}
.info-dialog .info-panel{
  grid-template-columns:repeat(3,minmax(0,1fr));
  grid-auto-rows:minmax(0,auto);
  gap:16px;
  padding:2px 8px 12px 2px;
}
.info-dialog .info-panel article{
  min-width:0;
  padding:16px 18px;
}
.info-dialog .info-panel h3{font-size:1rem;line-height:1.25}
.info-dialog .info-panel p{font-size:.93rem;line-height:1.45}
@media(max-width:1040px){
  .info-dialog .info-panel{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:680px){
  .info-dialog .dialog-card{width:96vw;height:94vh;padding:20px 16px}
  .info-dialog .info-panel{grid-template-columns:1fr}
}

/* Guide du jeu : fenêtre quasi plein écran et cartes compactes. */
.info-dialog{
  padding:0;
}
.info-dialog .dialog-card{
  width:98vw;
  height:97vh;
  max-width:1900px;
  max-height:97vh;
  padding:14px 18px 16px;
}
.info-dialog .dialog-card > .eyebrow{
  margin:0 0 2px;
}
.info-dialog .dialog-card > h2{
  margin:0;
  font-size:1.45rem;
  line-height:1.1;
}
.info-dialog .info-tabs{
  margin:8px 0 10px;
  min-height:38px;
}
.info-dialog .info-tabs .tab-button{
  padding:8px 14px;
}
.info-dialog .info-panel{
  grid-template-columns:repeat(3,minmax(0,1fr));
  grid-auto-rows:minmax(min-content,1fr);
  gap:9px;
  padding:0 4px 4px 0;
  overflow-y:auto;
}
.info-dialog .info-panel article{
  padding:10px 12px;
  border-radius:10px;
}
.info-dialog .info-panel h3{
  margin:0 0 5px;
  font-size:.94rem;
  line-height:1.18;
}
.info-dialog .info-panel p{
  font-size:.82rem;
  line-height:1.32;
}
@media(max-width:1040px){
  .info-dialog .dialog-card{width:98vw;height:97vh;padding:12px 14px}
  .info-dialog .info-panel{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:680px){
  .info-dialog .dialog-card{width:98vw;height:97vh;padding:12px 10px}
  .info-dialog .info-panel{grid-template-columns:1fr}
}

/* Guide du jeu : deux cartes par ligne, sans défilement horizontal. */
.info-dialog,
.info-dialog .dialog-card,
.info-dialog .info-panel{
  max-width:100%;
  box-sizing:border-box;
}
.info-dialog .dialog-card{
  width:98vw;
  height:97vh;
  overflow:hidden;
}
.info-dialog .info-tabs{
  display:flex;
  flex-wrap:wrap;
  overflow-x:hidden;
  gap:8px;
}
.info-dialog .info-panel{
  grid-template-columns:repeat(2,minmax(0,1fr));
  width:100%;
  min-width:0;
  overflow-x:hidden;
  overflow-y:auto;
  gap:8px;
  padding:0 2px 4px 0;
}
.info-dialog .info-panel article{
  min-width:0;
  width:auto;
  padding:9px 10px;
  overflow-wrap:anywhere;
  word-break:normal;
}
.info-dialog .info-panel h3{
  font-size:.9rem;
  margin-bottom:4px;
}
.info-dialog .info-panel p,
.info-dialog .info-panel li{
  font-size:.78rem;
  line-height:1.28;
}
@media(max-width:760px){
  .info-dialog .dialog-card{width:99vw;height:98vh;padding:10px}
  .info-dialog .info-panel{grid-template-columns:1fr}
}

/* Guide du jeu : cartes d'information plus basses et plus compactes. */
.info-dialog .info-panel{
  grid-auto-rows:auto;
  align-items:start;
  align-content:start;
  gap:6px 8px;
}
.info-dialog .info-panel article{
  align-self:start;
  min-height:0;
  height:auto;
  padding:7px 9px;
  border-radius:9px;
}
.info-dialog .info-panel h3{
  margin:0 0 3px;
  font-size:.86rem;
  line-height:1.12;
}
.info-dialog .info-panel p,
.info-dialog .info-panel li{
  margin-top:0;
  margin-bottom:0;
  font-size:.74rem;
  line-height:1.2;
}

/* Correctif : actions compactes dans l’onglet Infrastructure */
.building-card-actions {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: 5px;
  width: 150px;
  flex: 0 0 150px;
}
.building-action-row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 5px;
}
.building-card-actions button {
  min-height: 28px;
  padding: 5px 9px;
  font-size: 0.76rem;
  line-height: 1.05;
  white-space: nowrap;
}
.building-action-rename {
  width: 100%;
}
@media (max-width: 760px) {
  .building-card-actions {
    width: 100%;
    flex-basis: auto;
  }
}

/* Icônes distinctes des activités */
.map-gate-marker{position:relative;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:1px}
.map-gate-marker .activity-symbol{font-size:22px;line-height:1;filter:drop-shadow(0 2px 2px rgba(0,0,0,.45))}
.map-gate-marker.activity-dungeon{border-radius:50% 50% 48% 48%;box-shadow:0 0 0 3px rgba(80,140,255,.38),0 0 18px rgba(80,140,255,.65)}
.map-gate-marker.activity-raid{clip-path:polygon(50% 0,92% 22%,100% 72%,50% 100%,0 72%,8% 22%);box-shadow:0 0 18px rgba(255,80,80,.8)}
.map-gate-marker.activity-fracture{clip-path:polygon(50% 0,62% 24%,88% 10%,78% 38%,100% 50%,76% 62%,90% 90%,62% 76%,50% 100%,38% 76%,10% 90%,24% 62%,0 50%,22% 38%,12% 10%,38% 24%);box-shadow:0 0 22px rgba(190,80,255,.9)}
.workshop-equipment-selector{display:grid;grid-template-columns:repeat(2,minmax(220px,1fr));gap:14px;margin:14px 0 18px}.workshop-equipment-selector label{display:grid;gap:6px}
@media(max-width:700px){.workshop-equipment-selector{grid-template-columns:1fr}}

/* Centre : groupes spécialisés et préparatifs avancés */
.auto-dismantle-field{grid-column:1/-1;border:1px solid rgba(148,163,184,.28);border-radius:14px;padding:12px 14px;margin:0}.auto-dismantle-field legend{font-weight:800;padding:0 6px}.auto-dismantle-field p{margin:0 0 10px;color:var(--muted)}.rank-check-grid{display:grid;grid-template-columns:repeat(5,minmax(90px,1fr));gap:8px}.rank-check-grid label{display:flex;gap:7px;align-items:center;padding:8px;border:1px solid rgba(148,163,184,.18);border-radius:9px}
.special-group-card{border:1px solid rgba(148,163,184,.24);border-radius:16px;padding:14px;margin:10px 0;background:rgba(15,23,42,.46)}.special-group-card.unavailable{opacity:.62}.special-group-header{display:flex;gap:9px;align-items:center}.group-name-toggle{border:0;background:transparent;color:inherit;font:inherit;font-weight:900;font-size:1.02rem;cursor:pointer;padding:3px 0}.mini-icon-button{width:32px;height:32px;border-radius:9px;border:1px solid rgba(148,163,184,.25);background:rgba(148,163,184,.08);cursor:pointer}.special-group-summary{display:flex;flex-wrap:wrap;gap:7px;margin:10px 0}.special-group-summary span{border:1px solid rgba(148,163,184,.18);border-radius:999px;padding:5px 9px;font-size:.84rem}.group-role-columns{display:grid;grid-template-columns:minmax(150px,1fr) minmax(150px,1fr) minmax(320px,2.4fr);gap:10px;margin-top:12px}.role-column{border:2px solid;border-radius:13px;padding:10px}.role-column h4{margin:0 0 8px}.tank-column{border-color:#3b82f6}.heal-column{border-color:#22c55e}.dps-column{border-color:#ef4444}.dps-grid{display:grid;grid-template-columns:repeat(2,minmax(130px,1fr));gap:7px}.group-member-card{display:flex;flex-direction:column;border:2px solid;border-radius:10px;padding:8px;margin:6px 0}.group-member-card.role-tank{border-color:#3b82f6}.group-member-card.role-heal{border-color:#22c55e}.group-member-card.role-dps{border-color:#ef4444}.group-member-card span,.group-member-card small{font-size:.78rem}.special-group-actions{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-top:12px}.auto-dismantle-result{display:block;margin-top:5px;color:#fbbf24}
@media(max-width:900px){.rank-check-grid{grid-template-columns:repeat(3,1fr)}.group-role-columns{grid-template-columns:1fr}.dps-grid{grid-template-columns:repeat(2,1fr)}}
.raid-selection-heading{display:flex;align-items:center;justify-content:space-between;gap:12px}.raid-selection-heading h3{margin:0}.center-actions select{min-width:180px}

/* Raretés et raffinage des équipements */
.equipment-card[class*="rarity-"],.dismantle-card[class*="rarity-"]{border:2px solid var(--rarity);box-shadow:0 0 12px color-mix(in srgb,var(--rarity) 28%,transparent)}
.equipment-card[class*="rarity-"] strong,.dismantle-card[class*="rarity-"] strong{color:var(--rarity)}
.workshop-subtabs{display:flex;gap:8px;flex-wrap:wrap;margin:12px 0 16px}.item-progress-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}.item-progress-actions button{flex:1;min-width:210px}
.rarity-guide{display:grid;grid-template-columns:repeat(3,minmax(150px,1fr));gap:10px}.rarity-guide article{border:2px solid var(--rarity);border-radius:12px;padding:12px;display:flex;justify-content:space-between;gap:10px}.rarity-guide strong{color:var(--rarity)}
.equipment-stat-bonus{color:#38bdf8;font-weight:800}.craft-card small{display:block;margin:6px 0 10px}
@media(max-width:700px){.rarity-guide{grid-template-columns:1fr}.item-progress-actions button{min-width:100%}}


/* Actions de gestion des groupes spéciaux */
.special-group-header .danger-button { border-color: rgba(239,68,68,.65); color: #fecaca; }
.special-group-header .danger-button:hover { background: rgba(239,68,68,.18); }

/* Réorganisation des Éveillés dans les groupes de Bureau */
.drag-members-help{display:block;margin:.35rem 0 .55rem;color:var(--muted,#9ba7ba);font-size:.82rem}
.selection-card.member-draggable{cursor:grab;user-select:none;transition:transform .14s ease,opacity .14s ease,box-shadow .14s ease}
.selection-card.member-draggable:active{cursor:grabbing}
.selection-card.dragging-member{opacity:.42;transform:scale(.98)}
.selection-card.drag-target-member{box-shadow:0 0 0 2px var(--accent,#75a7ff),0 8px 20px rgba(0,0,0,.22);transform:translateY(-2px)}
.special-group-select{display:inline-flex;align-items:center;gap:.35rem;font-size:.78rem;padding:.35rem .55rem;border:1px solid rgba(255,255,255,.16);border-radius:.55rem;cursor:pointer}.special-group-select:has(input:disabled){opacity:.45;cursor:not-allowed}
.center-standard-member{display:flex;flex-direction:column;border:2px solid;border-radius:10px;padding:8px;margin:6px 0}.center-standard-member.role-tank{border-color:#3b82f6}.center-standard-member.role-heal{border-color:#22c55e}.center-standard-member.role-dps{border-color:#ef4444}.center-standard-member span,.center-standard-member small{font-size:.78rem}.mini-delete-group{margin-left:auto;padding:.45rem .65rem}
.complete-group-power{display:flex;flex-wrap:wrap;gap:.45rem .8rem;align-items:center;margin:.55rem 0;padding:.6rem .75rem;border:1px solid rgba(148,163,184,.28);border-radius:.7rem;background:rgba(15,23,42,.42);font-size:.82rem}.complete-group-power strong{width:100%;font-size:.95rem}.complete-group-power span{opacity:.9}.raw-ether-reward{display:block;color:#67e8f9;margin-top:.2rem}.mass-dismantle{margin:.65rem 0}.dismantle-actions{margin:.55rem 0 .8rem}

/* Icônes de classes fantasy originales */
.hunter-class-icon {
  width: 34px;
  height: 34px;
  min-width: 34px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 9px;
  border: 1px solid rgba(255,255,255,.24);
  box-shadow: inset 0 0 0 1px rgba(0,0,0,.25), 0 3px 10px rgba(0,0,0,.28);
  color: #fff;
  font-size: 20px;
  font-weight: 900;
  line-height: 1;
  text-shadow: 0 1px 2px rgba(0,0,0,.8);
  flex: 0 0 auto;
}
.class-icon-warrior { background: linear-gradient(145deg,#8f2d2d,#3f1118); }
.class-icon-scout { background: linear-gradient(145deg,#718f2b,#263d16); }
.class-icon-mage { background: linear-gradient(145deg,#7049b8,#2d185b); }
.class-icon-healer { background: linear-gradient(145deg,#299b68,#124831); }
.class-icon-etherist { background: linear-gradient(145deg,#258aa0,#173f6e); }
.candidate-card .hunter-class-icon,
.hunter-management-card .hunter-class-icon,
.selection-card .hunter-class-icon,
.center-row .hunter-class-icon { margin-right: 2px; }
.class-icon-guardian,.class-icon-knight,.class-icon-fighter { background:linear-gradient(145deg,#a94444,#43141c); }
.class-icon-rogue,.class-icon-hunter,.class-icon-ranger { background:linear-gradient(145deg,#82a83a,#293f18); }
.class-icon-wizard,.class-icon-warlock,.class-icon-enchanter { background:linear-gradient(145deg,#8058c9,#321b64); }
.class-icon-monk,.class-icon-priest,.class-icon-druid { background:linear-gradient(145deg,#31aa75,#144d35); }
.class-icon-war-arcanist,.class-icon-astral-guardian,.class-icon-void-lord { background:linear-gradient(145deg,#2c9db5,#183f72); }


/* Correctif hauteur : la carte et les listes Infrastructure/Alerte utilisent toute la hauteur disponible. */
.dashboard{align-items:stretch}
.map-panel{display:flex;flex-direction:column;min-height:clamp(650px,calc(100vh - 185px),900px)}
.map-panel .map-frame{display:flex;flex:1 1 auto;min-height:0}
.city-map{flex:1 1 auto;min-height:600px;height:100%}
.side-column,.combined-side-panel{height:100%}
:root{--side-operation-panel-height:clamp(570px,calc(100vh - 255px),820px)}
#sideInfrastructurePanel .stack-list,#sideAlertsPanel .stack-list{flex:1 1 auto;max-height:none;min-height:0;overflow-y:auto}
#sideInfrastructurePanel .placement-help{flex:0 0 auto}
@media(max-width:900px){.map-panel{min-height:620px}.city-map{min-height:540px}:root{--side-operation-panel-height:560px}}


/* Historique fixe des missions */
.mission-history-widget{position:fixed;right:18px;bottom:18px;z-index:3000;pointer-events:none}.mission-history-toggle{pointer-events:auto;width:58px;height:58px;border-radius:50%;border:1px solid rgba(180,151,255,.55);background:linear-gradient(145deg,#2d2154,#171529);box-shadow:0 12px 34px rgba(0,0,0,.48);font-size:25px;color:#fff;cursor:pointer;position:relative}.mission-history-toggle span{position:absolute;right:-3px;top:-5px;min-width:22px;height:22px;padding:0 5px;border-radius:11px;background:#d44862;color:#fff;font:700 11px/22px system-ui}.mission-history-panel{pointer-events:auto;position:absolute;right:0;bottom:70px;width:min(440px,calc(100vw - 28px));height:min(650px,calc(100vh - 110px));background:rgba(15,17,27,.98);border:1px solid rgba(180,151,255,.38);border-radius:18px;box-shadow:0 18px 55px rgba(0,0,0,.58);overflow:hidden}.mission-history-panel>header{display:flex;justify-content:space-between;align-items:flex-start;padding:18px 18px 12px;border-bottom:1px solid rgba(255,255,255,.09)}.mission-history-panel h2{font-size:20px;margin:2px 0 0}.mission-history-list{height:calc(100% - 77px);overflow:auto;padding:12px;display:flex;flex-direction:column;gap:10px}.mission-history-entry{padding:12px;border:1px solid rgba(255,255,255,.1);border-radius:13px;background:rgba(255,255,255,.035)}.mission-history-entry.success{border-left:4px solid #52c889}.mission-history-entry.failure{border-left:4px solid #d45b67}.mission-history-entry>header{display:flex;justify-content:space-between;gap:12px}.mission-history-entry header div{display:flex;flex-direction:column;min-width:0}.mission-history-entry header strong,.mission-history-entry header small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mission-history-entry time{font-size:11px;color:var(--muted);white-space:nowrap}.mission-history-entry p{margin:9px 0;font-size:13px}.mission-history-rewards{display:flex;flex-wrap:wrap;gap:6px}.mission-history-rewards span{padding:4px 7px;border-radius:8px;background:rgba(255,255,255,.055);font-size:11px}.mission-history-items{margin-top:9px;display:flex;flex-direction:column;gap:4px}.mission-history-items strong{font-size:12px}.mission-history-items span,.mission-history-empty-loot{font-size:11px;color:var(--muted)}
@media(max-width:640px){.mission-history-widget{right:10px;bottom:10px}.mission-history-panel{right:-2px;bottom:66px;height:calc(100vh - 95px)}}
.mission-group-name{font-weight:900;color:#f6c85f;text-transform:uppercase;letter-spacing:.06em;margin-bottom:.28rem}.chat-widget{position:fixed;right:22px;bottom:92px;z-index:1300}.chat-toggle{width:54px;height:54px;border-radius:50%;border:1px solid rgba(255,255,255,.2);background:#25335c;color:#fff;font-size:1.45rem;box-shadow:0 12px 30px #0008;cursor:pointer}.chat-toggle span{position:absolute;right:-3px;top:-3px;background:#e64b63;border-radius:999px;padding:2px 6px;font-size:.68rem}.chat-panel{position:absolute;right:0;bottom:64px;width:min(390px,calc(100vw - 28px));height:min(560px,72vh);background:#121827;border:1px solid #3b4666;border-radius:18px;box-shadow:0 24px 70px #000b;overflow:hidden}.chat-panel header{display:flex;justify-content:space-between;align-items:center;padding:14px 16px}.chat-panel h2,.chat-panel p{margin:0}.chat-tabs{display:flex;padding:0 12px;gap:6px}.chat-body{height:calc(100% - 156px);padding:10px 12px}.chat-messages,.private-contacts{height:100%;overflow:auto;display:flex;flex-direction:column;gap:8px}.chat-message{background:#1b2438;border:1px solid #303c59;border-radius:10px;padding:9px;display:grid;grid-template-columns:1fr auto;gap:4px}.chat-message span{grid-column:1/3}.chat-message small{opacity:.65}.chat-compose{display:flex;gap:8px;padding:10px 12px;border-top:1px solid #303c59}.chat-compose input{flex:1}.private-contact{display:grid;grid-template-columns:34px 1fr;text-align:left;background:#1b2438;border:1px solid #303c59;color:#fff;border-radius:10px;padding:9px;cursor:pointer}.private-contact span{grid-row:1/3;font-size:1.35rem}.private-contact small{opacity:.7;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.private-back{align-self:flex-start}.quick-add-existing{font-size:1.2rem!important}.mission-history-widget{bottom:22px!important}

/* Correctifs Centre, groupes spéciaux, langues et raffinage massif */
.bureau-special-groups{margin-top:18px;padding-top:14px;border-top:1px solid var(--border)}
.bureau-special-groups h3{margin:0 0 10px}
.bureau-special-group-card{display:flex;align-items:center;gap:10px;padding:10px 12px;margin:8px 0;border:1px solid var(--border);border-radius:12px;background:rgba(255,255,255,.035)}
.bureau-special-group-card>span{font-size:22px}.bureau-special-group-card small{display:block;color:var(--muted);margin-top:3px}
.language-selector-wrap{display:flex;align-items:center;gap:5px;padding:3px 6px;border:1px solid var(--border);border-radius:10px;background:rgba(10,18,32,.82)}
.language-selector-wrap select{max-width:105px;background:transparent;color:var(--text);border:0;padding:2px;font-size:12px}
.language-selector-wrap option{color:#101827;background:#fff}
#workshopDialog .craft-actions{flex-wrap:wrap}

/* Choix compact du rôle après la promotion de classe */
.promotion-role-line{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:12px;padding-top:10px;border-top:1px solid rgba(255,255,255,.1)}
.promotion-role-picker{display:flex;gap:7px}
.promotion-role-icon{width:34px;height:34px;min-width:34px;padding:0;border-radius:50%;display:grid;place-items:center;font-size:17px;border:1px solid rgba(255,255,255,.2);background:rgba(255,255,255,.07);cursor:pointer;transition:transform .15s ease,filter .15s ease}
.promotion-role-icon:hover{transform:translateY(-2px);filter:brightness(1.25)}
.promotion-role-icon.role-tank{box-shadow:inset 0 0 0 1px rgba(80,150,255,.35)}
.promotion-role-icon.role-heal{box-shadow:inset 0 0 0 1px rgba(70,210,130,.35)}
.promotion-role-icon.role-dps{box-shadow:inset 0 0 0 1px rgba(255,90,90,.35)}
.promotion-role-selected{display:inline-flex;align-items:center;gap:6px;padding:6px 10px;border-radius:999px;background:rgba(255,255,255,.08);font-weight:700}
.guild-dialog .guild-card{width:min(920px,96vw);height:min(850px,94vh);max-width:none;overflow:auto}.guild-marker{background:linear-gradient(145deg,#541f78,#9b5bc4)!important;border-color:#e4b9ff!important;box-shadow:0 0 0 5px rgba(137,68,178,.24),0 10px 24px rgba(0,0,0,.35)!important}.guild-hero,.guild-header{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:20px;border:1px solid var(--line);border-radius:18px;background:linear-gradient(120deg,rgba(93,39,126,.42),rgba(20,24,42,.65))}.guild-crest{font-size:64px}.guild-entry-actions{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin:22px 0}.guild-entry-actions button{min-height:72px;font-size:1.1rem}.guild-form-card,.guild-feature,.guild-dashboard>section{padding:18px;border:1px solid var(--line);border-radius:16px;background:rgba(8,12,23,.55);margin-top:14px}.guild-form-grid,.donation-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.guild-warning{display:flex;justify-content:space-between;gap:12px;margin:16px 0;padding:14px;border:1px solid #d79a41;border-radius:12px;background:rgba(196,123,26,.14)}.guild-row{display:flex;align-items:flex-start;justify-content:flex-start;flex-direction:column;gap:10px;padding:13px;margin:8px 0;border:1px solid var(--line);border-radius:12px;background:rgba(255,255,255,.025)}.guild-row>div{display:flex;flex-direction:column;gap:4px;width:100%}.guild-row select,.guild-row button{width:100%}.guild-tabs{position:sticky;top:-1px;z-index:2;background:var(--panel);padding-top:10px;overflow-x:auto;flex-wrap:nowrap}.guild-tabs .tab-button{white-space:nowrap}.guild-level-box{min-width:220px;text-align:right}.guild-activity{height:10px;margin:8px 0;background:#161b2d;border-radius:999px;overflow:hidden}.guild-activity i{display:block;height:100%;background:linear-gradient(90deg,#7b46bd,#d493ff)}.guild-dashboard{display:grid;grid-template-columns:1.2fr 1fr 1fr;gap:14px}.guild-stat-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}.guild-stat-grid span{display:flex;flex-direction:column;padding:11px;border-radius:10px;background:rgba(255,255,255,.045)}.news-item{padding:10px 0;border-bottom:1px solid var(--line)}.arena-modes{display:flex;flex-wrap:wrap;gap:10px}.guild-sort{display:flex;justify-content:flex-end;margin:12px 0}@media(max-width:800px){.guild-dashboard{grid-template-columns:1fr}.guild-header,.guild-hero{align-items:flex-start;flex-direction:column}.guild-level-box{width:100%;text-align:left}.guild-form-grid,.donation-grid,.guild-entry-actions{grid-template-columns:1fr}}

/* Gestion des Éveillés en trois onglets */
.hunter-management-tabs{margin:14px 0 16px}
#hunterManagementContent [data-hunter-management-panel]{animation:fadeIn .16s ease}
#hunterManagementContent [data-hunter-management-panel="general"]{display:grid;gap:12px}
#hunterManagementContent [data-hunter-management-panel="equipment"] .hunter-config-grid{margin-top:0}

/* Vue intérieure des missions */
.dungeon-mission-dialog .dialog-card{width:min(980px,94vw);max-width:980px}
.dungeon-mission-header{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin-bottom:10px}
.dungeon-mission-header h3,.dungeon-mission-header p{margin:0}
.dungeon-progress{height:10px;border-radius:999px;background:rgba(255,255,255,.09);overflow:hidden;margin-bottom:14px}
.dungeon-progress span{display:block;height:100%;background:linear-gradient(90deg,#5dd2ff,#b57cff);transition:width .45s linear}
.dungeon-map-wrap{height:min(55vh,520px);min-height:360px;border:1px solid rgba(160,190,255,.22);border-radius:18px;overflow:hidden;background:radial-gradient(circle at 70% 25%,rgba(113,55,155,.22),transparent 32%),#080d18}
.dungeon-map{width:100%;height:100%;display:block}
.dungeon-room{fill:#151f32;stroke:#40547b;stroke-width:.8}
.dungeon-boss-room{fill:#29142f;stroke:#bd5cff;stroke-width:1.1}
.dungeon-route{fill:none;stroke:#7388aa;stroke-width:3.2;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:2 2;opacity:.72}
.dungeon-label{fill:#aebbd1;font-size:3px;font-weight:700}
.dungeon-boss circle{fill:#7d245d;stroke:#f08bd5;stroke-width:1}
.dungeon-boss text{fill:#fff;text-anchor:middle;font-size:6px}
.dungeon-hunter circle{fill:#42a5e8;stroke:#d9f4ff;stroke-width:.5}
.dungeon-hunter text{fill:#07101b;text-anchor:middle;font-size:2px;font-weight:900}
.dungeon-party-list{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}
.dungeon-party-list span{display:flex;flex-direction:column;padding:7px 10px;border-radius:10px;background:rgba(255,255,255,.06);font-weight:700}
.dungeon-party-list small{font-weight:400;opacity:.72}
.mission-card-clickable{cursor:pointer;outline:1px solid transparent;transition:.18s ease}
.mission-card-clickable:hover{outline-color:rgba(102,194,255,.45);transform:translateY(-1px)}
@media(max-width:700px){.dungeon-mission-header{align-items:flex-start;flex-direction:column}.dungeon-map-wrap{min-height:300px;height:46vh}}

/* Vues intérieures Donjon / Raid / Fracture et activités occupées sur la carte */
.map-gate-marker[aria-label*="Raid"],.activity-raid{filter:drop-shadow(0 0 8px rgba(255,90,80,.65))}
.map-gate-marker[aria-label*="Fracture"],.activity-fracture{filter:drop-shadow(0 0 9px rgba(195,75,255,.72))}
.activity-map-raid{background:radial-gradient(circle at 70% 24%,rgba(180,38,28,.3),transparent 34%),linear-gradient(150deg,#1b0b0a,#080d18 58%)}
.activity-map-fracture{background:radial-gradient(circle at 70% 24%,rgba(145,35,220,.35),transparent 36%),linear-gradient(150deg,#170a25,#070b18 60%)}
.activity-progress-raid span{background:linear-gradient(90deg,#ff9a55,#ff4f63)}
.activity-progress-fracture span{background:linear-gradient(90deg,#7bdcff,#bd5cff)}
.raid-arena{fill:#2b1718;stroke:#a74b48}
.fracture-zone{fill:#19142f;stroke:#8d57d7;stroke-width:1;stroke-dasharray:2 1}
.activity-map-raid .dungeon-boss-room{fill:#3b1217;stroke:#ff665f}
.activity-map-fracture .dungeon-boss-room{fill:#26103c;stroke:#c25cff}
.activity-map-raid .dungeon-boss circle{fill:#9e312c;stroke:#ffb19c}
.activity-map-fracture .dungeon-boss circle{fill:#6d25a3;stroke:#e4a4ff}

/* Correctif d'isolation des onglets de gestion des Éveillés */
#hunterManagementContent [data-hunter-management-panel][hidden]{display:none!important}
#hunterManagementContent [data-hunter-management-panel="equipment"]{display:block}
#hunterManagementContent [data-hunter-management-panel="talents"]{display:block}

/* Correctif strict des onglets de gestion : un seul panneau visible à la fois. */
#hunterManagementContent [data-hunter-management-panel][hidden]{display:none!important}
#hunterManagementContent [data-hunter-management-panel]:not([hidden]){display:block}
#hunterManagementContent [data-hunter-management-panel="general"]:not([hidden]){display:grid;gap:12px}
#hunterManagementContent [data-hunter-management-panel="equipment"]>h3,
#hunterManagementContent [data-hunter-management-panel="talents"]>h3{display:none!important}

/* Carte intérieure agrandie : le parcours complet reste visible sans recadrage. */
.dungeon-mission-dialog .dialog-card{width:min(1400px,98vw);max-width:1400px;height:min(960px,96vh);display:flex;flex-direction:column;overflow:hidden}
#dungeonMissionContent{min-height:0;display:flex;flex-direction:column;flex:1}
.dungeon-map-wrap{height:auto;min-height:0;max-height:none;flex:1;aspect-ratio:16/9;overflow:hidden}
.dungeon-map{width:100%;height:100%;object-fit:contain}
.dungeon-party-list{max-height:118px;overflow:auto;flex:0 0 auto}
@media(max-width:700px){.dungeon-mission-dialog .dialog-card{width:98vw;height:96vh}.dungeon-map-wrap{height:auto;min-height:0;aspect-ratio:4/5}.dungeon-party-list{max-height:100px}}

/* Vue intérieure plein cadre : aucun défilement horizontal ou vertical. */
.dungeon-mission-dialog{
  width:100vw;
  max-width:none;
  height:100vh;
  max-height:none;
  margin:0;
  padding:0;
  border:0;
  overflow:hidden;
}
.dungeon-mission-dialog::backdrop{background:rgba(2,6,14,.88)}
.dungeon-mission-dialog .dialog-card{
  box-sizing:border-box;
  width:100vw;
  max-width:none;
  height:100vh;
  max-height:none;
  margin:0;
  border-radius:0;
  overflow:hidden;
  display:flex;
  flex-direction:column;
  padding:14px 18px 12px;
}
#dungeonMissionContent{
  display:grid;
  grid-template-rows:auto auto minmax(0,1fr) auto;
  gap:8px;
  flex:1 1 auto;
  min-width:0;
  min-height:0;
  overflow:hidden;
}
.dungeon-mission-header{min-width:0;margin:0}
.dungeon-mission-header>div{min-width:0}
.dungeon-mission-header h3{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.dungeon-progress{margin:0}
.dungeon-map-wrap{
  width:100%;
  height:100%;
  min-width:0;
  min-height:0;
  max-width:none;
  max-height:none;
  aspect-ratio:auto;
  overflow:hidden;
}
.dungeon-map{width:100%;height:100%;display:block}
.dungeon-party-list{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(105px,1fr));
  gap:5px;
  width:100%;
  max-height:none;
  margin:0;
  overflow:hidden;
}
.dungeon-party-list span{
  min-width:0;
  padding:4px 6px;
  font-size:.72rem;
  line-height:1.05;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
.dungeon-party-list small{font-size:.62rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.dungeon-party-more{justify-content:center;text-align:center;color:var(--accent)}
@media(max-width:700px){
  .dungeon-mission-dialog .dialog-card{width:100vw;height:100vh;padding:10px 10px 8px}
  .dungeon-mission-header{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:8px}
  .dungeon-mission-header h3{font-size:.9rem}
  .dungeon-mission-header strong{font-size:.72rem;white-space:nowrap}
  .dungeon-party-list{grid-template-columns:repeat(auto-fit,minmax(82px,1fr));gap:3px}
  .dungeon-party-list span{padding:3px 4px;font-size:.62rem}
  .dungeon-party-list small{font-size:.54rem}
}

/* Fenêtre intérieure réduite de 40 % tout en conservant la carte complète sans défilement. */
.dungeon-mission-dialog{
  width:min(60vw,900px);
  height:min(60vh,620px);
  max-width:96vw;
  max-height:92vh;
  margin:auto;
  border-radius:20px;
}
.dungeon-mission-dialog .dialog-card{
  width:100%;
  height:100%;
  max-width:none;
  max-height:none;
  border-radius:20px;
  padding:10px 12px 9px;
}
.dungeon-mission-dialog .dialog-header{margin-bottom:4px}
#dungeonMissionContent{gap:5px}
.dungeon-mission-header h3{font-size:.88rem}
.dungeon-mission-header p,.dungeon-mission-header strong{font-size:.68rem}
.dungeon-progress{height:7px}
.dungeon-party-list{grid-template-columns:repeat(auto-fit,minmax(82px,1fr));gap:3px}
.dungeon-party-list span{padding:3px 4px;font-size:.62rem}
.dungeon-party-list small{font-size:.53rem}
.dungeon-boss text{font-size:7px}
.dungeon-boss-name{fill:#ffd7a8;font-size:3px;font-weight:800;text-anchor:middle;paint-order:stroke;stroke:#120912;stroke-width:.7px}
@media(max-width:900px), (max-height:720px){
  .dungeon-mission-dialog{width:min(88vw,760px);height:min(72vh,560px)}
}
@media(max-width:700px){
  .dungeon-mission-dialog{width:94vw;height:72vh;max-height:92vh}
  .dungeon-mission-dialog .dialog-card{width:100%;height:100%;padding:8px}
}
/* Icônes de classe sur les cartes intérieures */
.dungeon-hunter.class-icon-marker text{
  fill:#f4fbff;
  stroke:#07101b;
  stroke-width:.35px;
  paint-order:stroke fill;
  text-anchor:middle;
  font-size:4.7px;
  font-weight:900;
  filter:drop-shadow(0 0 1.2px rgba(96,196,255,.95));
}
.dungeon-hunter.class-icon-marker circle{display:none}
.activity-party-groups{display:grid;grid-template-columns:repeat(auto-fit,minmax(110px,1fr));gap:6px}
.activity-party-groups .activity-party-group{
  align-items:center;
  justify-content:center;
  text-align:center;
  cursor:help;
  border:1px solid rgba(150,194,255,.22);
}
.activity-party-groups .activity-party-group b{font-size:.75rem}

/* Affinités d'activité et taux de réussite */
.activity-affinity-card{margin-top:16px;padding:16px;border:1px solid rgba(255,255,255,.12);border-radius:14px;background:rgba(10,18,34,.55)}
.activity-affinity-card h3{margin:0 0 12px}.affinity-line{display:grid;grid-template-columns:1fr auto;gap:5px 12px;margin:10px 0}.affinity-line small{grid-column:1/-1;opacity:.78}.affinity-track{grid-column:1/-1;height:7px;border-radius:99px;background:rgba(255,255,255,.1);overflow:hidden}.affinity-track i{display:block;height:100%;background:linear-gradient(90deg,#4d8cff,#9d6bff);border-radius:inherit}
.mission-success-rate{margin-top:10px;padding:9px 12px;border-radius:10px;display:grid;grid-template-columns:1fr auto;gap:2px 10px;border:1px solid currentColor}.mission-success-rate small{grid-column:1/-1}.chance-red{color:#ff5e64;background:rgba(255,50,60,.09)}.chance-orange{color:#ff9d45;background:rgba(255,140,40,.09)}.chance-yellow{color:#ffe064;background:rgba(255,215,50,.09)}.chance-green{color:#62e78a;background:rgba(55,210,110,.09)}
.history-success-rate{display:flex;justify-content:space-between;gap:12px;margin:8px 0;padding:7px 9px;border-radius:8px;border:1px solid currentColor}.history-xp-breakdown{display:grid;gap:3px;margin:8px 0;padding:9px;border-radius:8px;background:rgba(255,255,255,.05)}

/* Points de vie, mana et statistiques de combat */
.combat-vitals-card{margin:0 0 14px;padding:14px;border:1px solid rgba(148,163,184,.24);border-radius:16px;background:rgba(15,23,42,.5)}
.combat-vitals-card h3{margin:0 0 10px}.combat-vitals-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-bottom:10px}
.vital-stat{padding:12px;border-radius:12px;display:grid;gap:3px}.vital-stat strong{font-size:1.35rem}.vital-stat small{opacity:.76}.vital-stat.hp{background:rgba(185,28,28,.18);border:1px solid rgba(248,113,113,.35)}.vital-stat.mana{background:rgba(29,78,216,.18);border:1px solid rgba(96,165,250,.35)}
.combat-derived-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.combat-derived-grid>span{padding:9px 10px;border-radius:10px;background:rgba(255,255,255,.035);display:grid;gap:3px}.combat-derived-grid small{opacity:.75}.vitality-note{margin:10px 0 0;font-size:.84rem;opacity:.78}
@media(max-width:700px){.combat-vitals-grid,.combat-derived-grid{grid-template-columns:1fr}}

/* Onglet Classe de la gestion des Éveillés */
.hunter-class-information{display:grid;gap:14px;margin-bottom:16px}
.hunter-class-heading{display:flex;align-items:center;gap:16px;padding:16px;border:1px solid var(--border);border-radius:14px;background:rgba(255,255,255,.035)}
.hunter-class-heading h3{margin:2px 0 5px;font-size:1.25rem}
.hunter-class-heading p{margin:0;color:var(--muted)}
.hunter-class-main-icon{display:grid;place-items:center;width:64px;height:64px;flex:0 0 64px;border-radius:16px;background:rgba(255,255,255,.08);font-size:34px}
.hunter-class-details{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.hunter-class-details article{display:flex;flex-direction:column;gap:4px;padding:13px;border:1px solid var(--border);border-radius:12px;background:rgba(255,255,255,.025)}
.hunter-class-details article>span,.hunter-class-details small{color:var(--muted)}
.hunter-class-details strong{font-size:1.02rem}
[data-hunter-management-panel="class"]>.promotion-box{margin-top:12px;margin-bottom:0}
@media(max-width:700px){.hunter-class-details{grid-template-columns:1fr}.hunter-class-heading{align-items:flex-start}.hunter-class-main-icon{width:52px;height:52px;flex-basis:52px;font-size:28px}}

/* Fabrication compacte et bonus fixe des bijoux */
.compact-craft-grid{grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:8px;margin-top:10px}.compact-craft-card{padding:9px 10px;gap:8px}.compact-craft-card .craft-rank-cost{display:flex;align-items:center;gap:10px;width:100%}.compact-craft-card .craft-rank-cost small{margin:0}.compact-craft-card .craft-actions{gap:5px}.compact-craft-card .secondary-button{padding:6px 8px;font-size:.78rem}.jewelry-success-bonus{display:block;margin-top:5px;color:#facc15;font-weight:800;font-size:.82rem}

/* Exploration interactive des activités */
.theme-floor{fill:var(--theme-floor,#111827)}
.themed-room{fill:var(--theme-room,#263448);stroke:rgba(190,215,255,.45);stroke-width:.75}
.exploration-help{margin:0 0 5px;font-size:.7rem;color:#b9c7db;text-align:center}
.exploration-zone{cursor:pointer;transition:filter .2s,opacity .2s}
.exploration-zone circle{fill:rgba(21,39,55,.92);stroke:#71d6ff;stroke-width:.75}
.exploration-zone text{text-anchor:middle;font-size:5px;pointer-events:none}
.exploration-zone:hover{filter:drop-shadow(0 0 4px #72dcff)}
.exploration-zone.visited{opacity:.55}
.exploration-zone.visited circle{stroke:#65d28a}
.multi-boss.defeated{opacity:.35;filter:grayscale(1)}
.multi-boss.defeated circle{fill:#28303a;stroke:#7b8798}
.activity-exploration-status{display:flex;justify-content:center;gap:14px;font-size:.68rem;padding:4px 0;color:#c5d2e5}
.activity-exploration-status span{padding:3px 7px;border-radius:8px;background:rgba(255,255,255,.055)}
@media(max-width:700px){.exploration-help{font-size:.58rem}.activity-exploration-status{gap:4px;font-size:.58rem}.activity-exploration-status span{padding:2px 4px}}

/* Carte intérieure non interactive */
.activity-decor{pointer-events:none}.activity-decor text{text-anchor:middle;font-size:5px;opacity:.8}.activity-boss-status{display:flex;justify-content:center;font-size:.68rem;padding:4px 0;color:#c5d2e5}.activity-boss-status span{padding:3px 7px;border-radius:8px;background:rgba(255,255,255,.055)}

/* Constructeur unifié de groupes et rapports de combat */
.group-builder-card{width:min(1120px,94vw)}.group-builder-type,.gb-role-tabs{display:flex;gap:7px;flex-wrap:wrap;margin:10px 0}.group-builder-type button,.gb-role-tabs button{padding:8px 12px;border:1px solid var(--border);border-radius:9px;background:rgba(255,255,255,.04);color:inherit;cursor:pointer}.group-builder-type button.active,.gb-role-tabs button.active{background:rgba(109,94,252,.3);border-color:#8b7cff}.group-builder-grid{display:grid;grid-template-columns:1fr 1.15fr;gap:16px}.gb-list,.gb-selected{height:min(52vh,520px);overflow:auto;padding:8px;border:1px solid var(--border);border-radius:12px}.gb-hunter{width:100%;display:grid;grid-template-columns:1fr auto;gap:2px 10px;text-align:left;margin:6px 0;padding:9px;border:1px solid var(--border);border-radius:10px;background:rgba(255,255,255,.04);color:inherit;cursor:pointer}.gb-hunter small{grid-column:1}.gb-hunter b{grid-column:2;grid-row:1/3;align-self:center}.gb-selected-hunter{display:grid;grid-template-columns:28px 1fr;gap:2px 8px;margin:6px 0;padding:8px;border:2px solid;border-radius:10px}.gb-selected-hunter button{grid-row:1/3;border:0;background:#8b2635;color:#fff;border-radius:7px;cursor:pointer}.gb-selected-hunter small{grid-column:2}.gb-selected-hunter.role-tank{border-color:#3b82f6}.gb-selected-hunter.role-heal{border-color:#22c55e}.gb-selected-hunter.role-dps{border-color:#ef4444}.standard-group-one-line .group-members,.standard-group-one-line .selection-list,.standard-group-one-line .group-role-columns{display:flex!important;flex-wrap:nowrap!important;overflow-x:auto!important;gap:6px!important}.standard-group-one-line .group-member-card,.standard-group-one-line .center-standard-member{min-width:140px;margin:0}.combat-report{margin-top:10px;padding:8px;border:1px solid rgba(255,255,255,.12);border-radius:9px}.combat-report>summary{cursor:pointer;font-weight:800}.combat-report table{width:100%;margin:8px 0;border-collapse:collapse;font-size:.72rem}.combat-report th,.combat-report td{padding:4px;border-bottom:1px solid rgba(255,255,255,.08);text-align:right}.combat-report th:first-child,.combat-report td:first-child{text-align:left}.combat-report details{margin:5px 0;padding:5px;background:rgba(255,255,255,.035);border-radius:7px}.combat-report details div{font-size:.72rem;margin:4px 0}
@media(max-width:800px){.group-builder-grid{grid-template-columns:1fr}.gb-list,.gb-selected{height:32vh}}

/* Informations complètes de préparation des activités */
#dialogGateInfo{grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:8px}
#dialogGateInfo>div{min-height:62px;padding:9px 11px;border:1px solid var(--border);border-radius:10px;background:rgba(255,255,255,.035)}
#dialogGateInfo>div small,#dialogGateInfo>div strong{display:block}
#dialogGateInfo .preparation-success{border-width:2px}.chance-red{border-color:#e5484d!important;color:#ff9b9f}.chance-orange{border-color:#ef8e2f!important;color:#ffc080}.chance-yellow{border-color:#d9b528!important;color:#ffe679}.chance-green{border-color:#35a85b!important;color:#8ff0a9}

/* Éditeur de groupes agrandi, sans menu déroulant */
.group-builder-card{width:min(1480px,98vw)!important;max-width:none!important;height:min(900px,94vh);display:flex;flex-direction:column}
.group-builder-topbar{display:grid;grid-template-columns:auto 1fr;gap:18px;align-items:start}
.gb-building-buttons{display:flex;justify-content:flex-end;gap:7px;flex-wrap:wrap;max-height:100px;overflow:auto;padding:4px}
.gb-building-buttons button{padding:8px 11px;border:1px solid var(--border);border-radius:9px;background:rgba(255,255,255,.04);color:inherit;cursor:pointer}
.gb-building-buttons button.active{background:rgba(109,94,252,.32);border-color:#8b7cff}
.group-builder-grid{flex:1;min-height:0;grid-template-columns:1fr 1.25fr!important}
.gb-list,.gb-selected{height:calc(94vh - 285px)!important;max-height:none!important}
/* Rapport de combat en page dédiée */
.combat-report-page{width:min(1380px,97vw);height:min(900px,94vh);overflow:auto}
.combat-report-page table{width:100%;border-collapse:collapse;margin:12px 0 18px}
.combat-report-page th,.combat-report-page td{padding:9px;border-bottom:1px solid rgba(255,255,255,.1);text-align:right}
.combat-report-page th:first-child,.combat-report-page td:first-child,.combat-report-page th:nth-child(2),.combat-report-page td:nth-child(2){text-align:left}
.combat-report-summary{display:flex;justify-content:space-between;gap:12px;padding:12px;border:1px solid var(--border);border-radius:12px}
.combat-turn{padding:12px 14px;margin:10px 0;border:1px solid rgba(255,255,255,.11);border-radius:12px;background:rgba(255,255,255,.025)}
.combat-turn h3{margin:0 0 8px}.combat-action{margin:6px 0;padding:7px 9px;border-left:3px solid rgba(255,255,255,.22);background:rgba(255,255,255,.025)}
.combat-action.boss{border-left-color:#ef4444}.combat-action.heal{border-left-color:#22c55e}.combat-action.player,.combat-action.buff{border-left-color:#60a5fa}
.combat-report-open{margin-top:9px;width:100%}
@media(max-width:800px){.group-builder-topbar,.group-builder-grid{grid-template-columns:1fr!important}.gb-building-buttons{justify-content:flex-start}.gb-list,.gb-selected{height:32vh!important}}

.recruitment-choice-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.recruitment-choice-grid .full-button{margin:0}@media(max-width:700px){.recruitment-choice-grid{grid-template-columns:1fr}}

/* Centre des Éveillés — création de groupe pleine largeur, sans défilement horizontal */
#groupBuilderDialog{
  width:min(1680px,calc(100vw - 20px))!important;
  max-width:none!important;
  overflow:hidden!important;
}
#groupBuilderDialog .group-builder-card{
  width:100%!important;
  max-width:none!important;
  height:min(920px,calc(100vh - 20px));
  overflow:hidden;
}
#groupBuilderDialog .group-builder-topbar,
#groupBuilderDialog .group-builder-grid,
#groupBuilderDialog .group-builder-grid>section{
  min-width:0;
}
#groupBuilderDialog .group-builder-grid{
  grid-template-columns:minmax(360px,.9fr) minmax(520px,1.35fr)!important;
  overflow:hidden;
}
#groupBuilderDialog .gb-list,
#groupBuilderDialog .gb-selected{
  width:100%;
  min-width:0;
  overflow-x:hidden!important;
  overflow-y:auto!important;
}
#groupBuilderDialog .gb-hunter,
#groupBuilderDialog .gb-selected-hunter,
#groupBuilderDialog input{
  max-width:100%;
  min-width:0;
}
#groupBuilderDialog .gb-building-buttons,
#groupBuilderDialog .group-builder-type,
#groupBuilderDialog .gb-role-tabs{
  overflow-x:hidden!important;
  flex-wrap:wrap!important;
}
@media(max-width:980px){
  #groupBuilderDialog{width:calc(100vw - 12px)!important}
  #groupBuilderDialog .group-builder-card{height:calc(100vh - 12px)}
  #groupBuilderDialog .group-builder-grid{grid-template-columns:1fr!important;overflow-y:auto}
  #groupBuilderDialog .gb-list,#groupBuilderDialog .gb-selected{height:30vh!important}
}

/* Profil joueur et validation des prérequis de mission */
.brand-profile-row{display:flex;flex-direction:column;align-items:flex-start;gap:8px}.brand-profile-row h1{margin:0}.topbar>div:first-child{align-self:flex-start}.player-profile-button{position:relative;z-index:3}.player-profile-button{display:inline-flex;align-items:center;gap:8px;border:1px solid rgba(255,255,255,.16);border-radius:12px;background:rgba(255,255,255,.06);color:inherit;padding:6px 10px;cursor:pointer;min-width:0}.player-profile-button:hover{background:rgba(255,255,255,.11)}.player-profile-button span:last-child{display:grid;text-align:left;line-height:1.05}.player-profile-button small{opacity:.72;font-size:.7rem;margin-top:3px}.player-profile-symbol,.player-profile-avatar{display:grid;place-items:center;border-radius:50%;background:rgba(122,183,255,.16);border:1px solid rgba(122,183,255,.35)}.player-profile-symbol{width:28px;height:28px;font-size:1.1rem}.player-profile-dialog .dialog-card{width:min(620px,94vw)}.player-profile-summary{display:flex;align-items:center;gap:18px;padding:16px;border:1px solid rgba(255,255,255,.1);border-radius:16px;margin-bottom:18px}.player-profile-avatar{width:72px;height:72px;font-size:2.1rem}.player-profile-summary>div{flex:1}.player-profile-summary label{display:grid;gap:6px}.player-profile-summary input{width:100%}.player-profile-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:12px 0 18px}.player-stat-card{display:flex;align-items:center;gap:10px;padding:12px;border:1px solid rgba(255,255,255,.1);border-radius:14px;background:rgba(255,255,255,.035)}.player-stat-card div{display:grid;gap:4px}.player-stat-card small{line-height:1.35}.player-stat-icon{font-size:1.35rem}.mission-prerequisite-note{margin:10px 0 6px;color:#ffb7b7;font-size:.86rem}.mission-prerequisites-missing:disabled{filter:grayscale(.7);opacity:.45;cursor:not-allowed}.primary-button:disabled{cursor:not-allowed}
@media(max-width:760px){.player-profile-stats{grid-template-columns:1fr}.resources{gap:6px}.player-profile-button strong{max-width:105px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}}

/* Panneaux repliables : infrastructures/alertes et ressources */
.panel-collapse-button{display:inline-grid;place-items:center;width:32px;height:32px;min-width:32px;padding:0;border:1px solid var(--border);border-radius:10px;background:rgba(75,163,255,.14);color:var(--text);font-size:1.25rem;font-weight:900;cursor:pointer;transition:background .18s ease,transform .18s ease}
.panel-collapse-button:hover{background:rgba(75,163,255,.3);transform:translateY(-1px)}
.side-panel-collapse-row{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:-4px 0 12px;color:var(--muted);font-size:.78rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase}
.dashboard.side-panel-collapsed{grid-template-columns:minmax(0,1fr) 58px}
.dashboard.side-panel-collapsed .combined-side-panel{padding:10px 8px;min-height:var(--side-operation-panel-height);overflow:hidden}
.dashboard.side-panel-collapsed .combined-side-panel .side-panel-collapse-row{height:100%;margin:0;flex-direction:column;justify-content:flex-start}
.dashboard.side-panel-collapsed .combined-side-panel .side-panel-collapse-row span{writing-mode:vertical-rl;transform:rotate(180deg);white-space:nowrap;margin-top:8px}
.dashboard.side-panel-collapsed .combined-side-panel .side-panel-tabs,
.dashboard.side-panel-collapsed .combined-side-panel .side-tab-panel{display:none!important}
.dashboard.side-panel-collapsed .side-column{min-width:58px}
.dashboard,.combined-side-panel,.map-panel{transition:grid-template-columns .24s ease,width .24s ease,padding .24s ease}

.resources-panel{position:relative;border:1px solid var(--border);border-radius:18px;padding:8px;background:rgba(9,19,35,.72);transition:max-width .22s ease,padding .22s ease,background .22s ease;max-width:min(980px,72vw)}
.resources-panel>span{transition:opacity .16s ease,transform .16s ease}
.resources-collapse-button{order:98}
.resources-panel.resources-collapsed{width:46px;max-width:46px;min-width:46px;height:46px;padding:6px;flex-wrap:nowrap;justify-content:center;overflow:hidden;margin-left:auto}
.resources-panel.resources-collapsed>span,.resources-panel.resources-collapsed>#openInfoBtn{display:none}
.resources-panel.resources-collapsed .resources-collapse-button{transform:rotate(180deg)}
@media(max-width:900px){.dashboard.side-panel-collapsed{grid-template-columns:1fr}.dashboard.side-panel-collapsed .side-column{min-width:0}.dashboard.side-panel-collapsed .combined-side-panel{min-height:52px}.dashboard.side-panel-collapsed .combined-side-panel .side-panel-collapse-row{height:auto;flex-direction:row}.dashboard.side-panel-collapsed .combined-side-panel .side-panel-collapse-row span{writing-mode:horizontal-tb;transform:none;margin:0}.resources-panel{max-width:100%}}

/* Tutoriel progressif du nouveau joueur */
.tutorial-dialog{z-index:5000}
.tutorial-dialog::backdrop{background:rgba(4,8,18,.78);backdrop-filter:blur(3px)}
.tutorial-card{width:min(620px,calc(100vw - 32px));padding:30px;box-shadow:0 24px 80px rgba(0,0,0,.55);border:1px solid rgba(123,170,255,.35)}
.tutorial-card h2{margin:4px 0 16px;font-size:clamp(1.45rem,3vw,2rem)}
.tutorial-body{display:grid;gap:10px;margin-bottom:22px;line-height:1.55}
.tutorial-body p{margin:0}
.tutorial-body strong{color:var(--accent,#9fc2ff)}
.tutorial-hint{padding:10px 12px;border-left:3px solid var(--accent,#7aa7ff);background:rgba(122,167,255,.08);border-radius:6px}
.tutorial-map-focus{outline:3px solid rgba(114,171,255,.92);outline-offset:-3px;animation:tutorialMapPulse 1.8s ease-in-out infinite}
@keyframes tutorialMapPulse{0%,100%{box-shadow:inset 0 0 0 0 rgba(114,171,255,.15)}50%{box-shadow:inset 0 0 35px 8px rgba(114,171,255,.28)}}

/* Le sélecteur de langue reste hors du panneau de ressources repliable. */
.topbar-language-selector{flex:0 0 auto}
.resources-panel.resources-collapsed{position:relative}
.resources-panel.resources-collapsed:hover{width:46px;max-width:46px;min-width:46px;height:46px;padding:6px;overflow:hidden}

/* Rapports de mission centralisés dans l'onglet Missions */
#combatReportDialog{
  width:calc(100vw - 12px)!important;
  max-width:none!important;
  padding:0!important;
  overflow:hidden!important;
}
#combatReportDialog .combat-report-page{
  width:100%!important;
  max-width:none!important;
  height:calc(100vh - 12px)!important;
  max-height:none!important;
  box-sizing:border-box;
  overflow-y:auto!important;
  overflow-x:hidden!important;
}
#combatReportDialog #combatReportPageBody,
#combatReportDialog .combat-turns,
#combatReportDialog .combat-turn,
#combatReportDialog table{
  min-width:0!important;
  max-width:100%!important;
}
#combatReportDialog table{table-layout:fixed}
#combatReportDialog th,#combatReportDialog td{white-space:normal;overflow-wrap:anywhere}
.center-mission-reports{width:100%;min-width:0}
.center-mission-reports-header{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}
.center-mission-reports-header h3{margin:2px 0 0}
.center-mission-history-list{max-height:none!important;width:100%;overflow-x:hidden!important}
.mission-report-center-entry{width:100%;box-sizing:border-box}
.mission-report-center-entry .combat-report-open{width:auto;min-width:230px}
@media(max-width:760px){
  #combatReportDialog{width:100vw!important}
  #combatReportDialog .combat-report-page{height:100vh!important;border-radius:0}
  #combatReportDialog table{font-size:.82rem}
  #combatReportDialog th,#combatReportDialog td{padding:6px 4px}
}

/* Positionnement des commandes Composants et utilitaires */
.topbar{align-items:flex-start}
.resources-panel{flex:1 1 auto}
.resources-collapse-button{order:999;margin-left:auto;flex:0 0 auto}
.topbar-utility-column{display:flex;flex-direction:column;align-items:center;gap:6px;flex:0 0 auto}
.topbar-utility-column .info-button{order:0}
.topbar-utility-column .language-selector-wrap{order:1;margin:0}
.resources-panel.resources-collapsed>#openInfoBtn{display:initial}

/* Journal en temps réel : Missions et Fabrication */
.realtime-journal-panel{width:min(560px,calc(100vw - 28px))}
.realtime-journal-tabs{display:flex;gap:8px;margin:0 0 12px;padding-bottom:10px;border-bottom:1px solid var(--border)}
.realtime-journal-tabs .tab-button{flex:1}
.realtime-journal-entry{display:grid;gap:8px;padding:12px;border:1px solid var(--border);border-radius:12px;background:rgba(12,23,40,.78)}
.realtime-journal-entry header{display:flex;justify-content:space-between;gap:12px;align-items:center}
.realtime-journal-entry time{font-size:12px;color:var(--muted)}
.realtime-journal-entry p{margin:0;color:var(--muted)}
.realtime-journal-meta{display:flex;flex-wrap:wrap;gap:7px}
.realtime-journal-meta span{padding:4px 7px;border-radius:8px;background:rgba(255,255,255,.06);font-size:12px}
.realtime-journal-entry.success{border-left:3px solid #67d68a}
.realtime-journal-entry.failure{border-left:3px solid #f27878}
.realtime-journal-entry.craft-entry{border-left:3px solid #79b7ff}
@media(max-width:760px){.topbar{align-items:stretch}.topbar-utility-column{flex-direction:row}.topbar-utility-column .info-button{order:0}.topbar-utility-column .language-selector-wrap{order:1}}


/* Rétablissement durable de la bulle du journal en temps réel */
.realtime-journal-widget{display:block!important;visibility:visible!important;opacity:1!important}
.realtime-journal-panel{display:flex;flex-direction:column}
.realtime-journal-panel[hidden]{display:none!important}
.realtime-journal-panel>header{flex:0 0 auto}
.realtime-journal-tabs{flex:0 0 auto;margin:0;padding:10px 12px;border-bottom:1px solid var(--border)}
.realtime-journal-panel .mission-history-list{flex:1 1 auto;height:auto;min-height:0}


/* Journal et rapports : affichage corrigé et rôles colorés */
.realtime-journal-panel .mission-history-list[hidden]{display:none!important}
.realtime-journal-loot{display:flex;flex-direction:column;gap:4px;padding-top:4px}
.realtime-journal-loot strong{font-size:12px}
.realtime-journal-loot span{font-size:11px;color:var(--muted)}
.combat-action.role-dps{border:1px solid rgba(242,90,90,.7);background:rgba(120,24,32,.18)}
.combat-action.role-tank{border:1px solid rgba(91,155,255,.75);background:rgba(30,73,145,.18)}
.combat-action.role-heal{border:1px solid rgba(76,205,125,.75);background:rgba(28,112,65,.18)}
.combat-action{padding:9px 11px;border-radius:9px}
.live-travel-view{display:grid;gap:18px;padding:18px}
.live-travel-view h2,.live-travel-view p{margin:0}
.live-travel-route{display:grid;grid-template-columns:auto 1fr auto;gap:12px;align-items:center;margin:18px 0}
.travel-point{font-weight:700;font-size:13px}
.travel-line{height:8px;border-radius:999px;background:rgba(255,255,255,.1);position:relative}
.travel-line b{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#7b61ff,#48c6ef)}
.travel-line i{position:absolute;top:50%;transform:translate(-50%,-50%);font-style:normal;font-size:24px;z-index:2}

/* Profil joueur : onglets Talent et Classe */
.player-profile-tabs{flex-wrap:wrap}.player-profile-tabs button{min-width:130px}.player-class-grid,.player-specialization-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:12px;margin:14px 0 20px}.player-class-card,.player-specialization-card{display:grid;gap:7px;text-align:left;padding:15px;border:1px solid var(--border,#42506a);border-radius:12px;background:var(--panel,#172033);color:inherit}.player-class-card>span{font-size:2rem}.player-class-card.selected,.player-specialization-card.selected{outline:2px solid currentColor}.player-class-card:disabled,.player-specialization-card:disabled{opacity:.55}.player-current-class,.player-specialization-selected{display:flex;align-items:center;gap:14px;padding:16px;border:1px solid var(--border,#42506a);border-radius:12px;margin:12px 0 20px}.player-class-big-icon{font-size:2.5rem}.player-current-class h3,.player-current-class p{margin:3px 0}.player-talents-heading{display:flex;justify-content:space-between;align-items:center;gap:15px}.player-talent-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:10px;margin:16px 0}.player-talent-card{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:12px;border:1px solid var(--border,#42506a);border-radius:10px}.player-talent-card div{display:grid}.player-talent-card button{min-width:44px}.player-class-section,.player-talents-section{padding-top:4px}@media(max-width:650px){.player-talents-heading{align-items:flex-start;flex-direction:column}.player-profile-tabs button{min-width:calc(50% - 8px)}}

.player-profile-summary.profile-summary-details-hidden p{display:none!important}

/* Historique : suppression indépendante par onglet */
.realtime-journal-tabs{display:flex;align-items:center;gap:.45rem}
.realtime-journal-tabs .journal-clear-button{margin-left:auto;width:38px;height:38px;display:grid;place-items:center;border:1px solid rgba(239,68,68,.45);border-radius:10px;background:rgba(127,29,29,.18);font-size:1.05rem;cursor:pointer}
.realtime-journal-tabs .journal-clear-button:hover{background:rgba(239,68,68,.25);transform:translateY(-1px)}

/* Gestion des Éveillés : onglet Sortilèges */
.spell-header{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:1rem}
.spell-header h3{margin:.15rem 0 0}
.spell-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:.75rem}
.spell-card{display:flex;gap:.8rem;padding:1rem;border:1px solid var(--border-color,rgba(148,163,184,.25));border-radius:14px;background:rgba(15,23,42,.45)}
.spell-card.unlocked{border-color:rgba(139,92,246,.55);box-shadow:inset 0 0 0 1px rgba(139,92,246,.12)}
.spell-card.locked{opacity:.58;filter:saturate(.6)}
.spell-card p{margin:.25rem 0;color:var(--muted-text,#94a3b8)}
.spell-card small{display:block;color:var(--muted-text,#94a3b8)}
.spell-icon{font-size:1.45rem;line-height:1}

/* Sélecteur unique de Bureau dans la création de groupe */
.group-builder-topbar .gb-building-select{margin-left:auto;min-width:250px;display:flex;align-items:center;gap:.65rem;justify-content:flex-end;font-weight:700}
.group-builder-topbar .gb-building-select select{min-width:180px}
@media (max-width:900px){.group-builder-topbar .gb-building-select{width:100%;justify-content:space-between;margin-left:0}}

/* Filtre Bureau déplacé dans l'en-tête du panneau Éveillés disponibles */
#groupBuilderDialog .gb-available-header{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:8px}
#groupBuilderDialog .gb-available-header h3{margin:0}
#groupBuilderDialog .gb-available-header .gb-building-select{display:flex;align-items:center;gap:8px;margin:0;font-weight:700}
#groupBuilderDialog .gb-available-header .gb-building-select select{min-width:180px}
@media(max-width:700px){#groupBuilderDialog .gb-available-header{align-items:stretch;flex-direction:column}#groupBuilderDialog .gb-available-header .gb-building-select{justify-content:space-between}#groupBuilderDialog .gb-available-header .gb-building-select select{min-width:0;flex:1}}

/* Couleurs des onglets du profil joueur */
.player-profile-tabs button {
  border: 1px solid rgba(255,255,255,.16);
  font-weight: 800;
  transition: transform .16s ease, filter .16s ease, box-shadow .16s ease, opacity .16s ease;
}
.player-profile-tabs button:nth-child(1) {
  background: linear-gradient(135deg, #2563eb, #1d4ed8);
  color: #fff;
}
.player-profile-tabs button:nth-child(2) {
  background: linear-gradient(135deg, #7c3aed, #5b21b6);
  color: #fff;
}
.player-profile-tabs button:nth-child(3) {
  background: linear-gradient(135deg, #059669, #047857);
  color: #fff;
}
.player-profile-tabs button:nth-child(4) {
  background: linear-gradient(135deg, #d97706, #b45309);
  color: #fff;
}
.player-profile-tabs button:hover {
  filter: brightness(1.12);
  transform: translateY(-2px);
}
.player-profile-tabs button.active {
  outline: 3px solid #f8fafc;
  outline-offset: 2px;
  box-shadow: 0 0 0 2px rgba(15,23,42,.7), 0 8px 22px rgba(0,0,0,.3);
  transform: translateY(-2px);
}
.player-profile-tabs button:not(.active) {
  opacity: .78;
}

/* Icônes fantasy des classes et promotions */
.fantasy-class-icon{display:inline-grid;place-items:center;flex:0 0 auto;vertical-align:middle;margin-right:.48rem;filter:drop-shadow(0 2px 5px rgba(0,0,0,.42))}.fantasy-class-icon-sm{width:28px;height:28px}.fantasy-class-icon-md{width:42px;height:42px}.fantasy-class-icon svg{width:100%;height:100%;overflow:visible}.fantasy-class-icon .icon-bg{fill:color-mix(in srgb,var(--class-icon-color) 34%,#111827);stroke:color-mix(in srgb,var(--class-icon-color) 72%,#f8e6a8);stroke-width:2}.fantasy-class-icon svg:not(.crest)>path,.fantasy-class-icon svg:not(.crest)>circle:not(.icon-bg){fill:color-mix(in srgb,var(--class-icon-color) 58%,#e9d7a1);stroke:#171923;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.fantasy-class-icon svg:not(.crest) .rune{fill:none!important;stroke:#fff1bd!important;stroke-width:2.2!important}.has-fantasy-class-icon{position:relative}.player-class-card.has-fantasy-class-icon,.promotion-actions button.has-fantasy-class-icon,.secondary-button.has-fantasy-class-icon{display:flex!important;align-items:center;gap:.35rem}.hunter-class-heading>.fantasy-class-icon{width:58px;height:58px;margin-right:.2rem}.candidate-card>.fantasy-class-icon,.hunter-card>.fantasy-class-icon,.group-member>.fantasy-class-icon,.group-member-card>.fantasy-class-icon{float:left;margin:.05rem .55rem .25rem 0}

/* Profil joueur — page Classes ordonnée et sans débordement */
#playerClassPanel,
#playerClassPanel * {
  box-sizing: border-box;
}

#playerClassPanel {
  width: 100%;
  max-width: 100%;
  min-width: 0;
  overflow-x: hidden;
}

#playerClassPanel .player-class-section,
#playerClassPanel .hunter-class-information {
  width: 100%;
  max-width: 100%;
  min-width: 0;
}

#playerClassPanel .player-class-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  align-items: stretch;
  gap: 14px;
  width: 100%;
  max-width: 100%;
  margin: 16px 0 20px;
}

/* Le module d'icônes ne doit pas convertir les cartes en lignes flexibles. */
#playerClassPanel .player-class-card,
#playerClassPanel .player-class-card.has-fantasy-class-icon {
  display: grid !important;
  grid-template-columns: 48px minmax(0, 1fr);
  grid-template-rows: auto 1fr;
  align-content: start;
  align-items: center;
  gap: 5px 11px;
  width: 100%;
  min-width: 0;
  min-height: 124px;
  margin: 0;
  padding: 14px;
  overflow: hidden;
  text-align: left;
}

#playerClassPanel .player-class-card > .fantasy-class-icon {
  grid-column: 1;
  grid-row: 1 / span 2;
  align-self: start;
  width: 44px;
  height: 44px;
  margin: 0;
}

#playerClassPanel .player-class-card > span:not(.fantasy-class-icon):empty,
#playerClassPanel .player-class-card > span:not(.fantasy-class-icon) {
  display: none;
}

#playerClassPanel .player-class-card > strong {
  grid-column: 2;
  grid-row: 1;
  min-width: 0;
  max-width: 100%;
  font-size: clamp(.78rem, 1.05vw, 1rem);
  letter-spacing: -0.015em;
  white-space: nowrap;
  overflow: visible;
  overflow-wrap: normal;
  word-break: keep-all;
  line-height: 1.2;
}

#playerClassPanel .player-class-card > small {
  grid-column: 2;
  grid-row: 2;
  display: block;
  min-width: 0;
  max-width: 100%;
  overflow-wrap: anywhere;
  white-space: normal;
  line-height: 1.35;
}

#playerClassPanel .hunter-class-heading {
  display: grid;
  grid-template-columns: 64px minmax(0, 1fr);
  align-items: start;
  gap: 14px;
  min-width: 0;
}

#playerClassPanel .hunter-class-heading > div,
#playerClassPanel .hunter-class-heading h3,
#playerClassPanel .hunter-class-heading p {
  min-width: 0;
  max-width: 100%;
  overflow-wrap: anywhere;
}

#playerClassPanel .hunter-class-details {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
  width: 100%;
  min-width: 0;
}

#playerClassPanel .hunter-class-details article {
  min-width: 0;
  max-width: 100%;
  overflow: hidden;
}

#playerClassPanel .hunter-class-details strong,
#playerClassPanel .hunter-class-details small,
#playerClassPanel .hunter-class-details span {
  max-width: 100%;
  overflow-wrap: anywhere;
  white-space: normal;
}

#playerClassPanel .promotion-box {
  width: 100%;
  min-width: 0;
  max-width: 100%;
  overflow: hidden;
}

#playerClassPanel .promotion-actions {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
  width: 100%;
  min-width: 0;
}

#playerClassPanel .promotion-actions button,
#playerClassPanel .promotion-actions button.has-fantasy-class-icon {
  display: flex !important;
  justify-content: flex-start;
  align-items: center;
  width: 100%;
  min-width: 0;
  max-width: 100%;
  white-space: normal;
  overflow-wrap: anywhere;
  text-align: left;
}

@media (max-width: 900px) {
  #playerClassPanel .player-class-grid,
  #playerClassPanel .promotion-actions {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 620px) {
  #playerClassPanel .player-class-grid,
  #playerClassPanel .promotion-actions,
  #playerClassPanel .hunter-class-details {
    grid-template-columns: minmax(0, 1fr);
  }

  #playerClassPanel .player-class-card,
  #playerClassPanel .player-class-card.has-fantasy-class-icon {
    min-height: 104px;
  }

  #playerClassPanel .hunter-class-heading {
    grid-template-columns: 52px minmax(0, 1fr);
  }
}

/* Précédent / Suivant (Bureaux et fiches d'Éveillés), juste avant la croix */
.nav-pn { position: absolute; top: 12px; right: 52px; z-index: 3; display: inline-flex; align-items: center; gap: 6px; }
.nav-pn[hidden] { display: none; }
.nav-pn-btn { display: inline-flex; align-items: center; gap: 4px; min-height: 34px; padding: 0 10px; border-radius: 10px; border: 1px solid var(--border); background: rgba(16, 28, 48, .9); color: var(--text); font: inherit; font-size: .82rem; font-weight: 700; cursor: pointer; }
.nav-pn-btn:hover { border-color: var(--cyan); color: var(--cyan); }
.nav-pn-pos { color: var(--muted); font-size: .78rem; min-width: 42px; text-align: center; }
@media (max-width: 600px) { .nav-pn-btn span { display: none; } .nav-pn { right: 46px; } }
