/* ======================================================
   EXCABILUR DREAM (inspiré par Carbon)
   Objectif: dark premium + doré + cartes + glow boutique
====================================================== */

:root {
  --ex-bg0: #07070a;
  --ex-bg1: #0b0c12;

  --ex-card: #14161a;
  --ex-card2: #0e0f12;

  --ex-line: #2b2f36;
  --ex-line-soft: rgba(255,255,255,.10);

  --ex-text: rgba(255,255,255,.92);
  --ex-muted: rgba(255,255,255,.68);

  --ex-gold: #d6b15e;
  --ex-gold-soft: rgba(214,177,94,.18);
  --ex-gold-glow: rgba(214,177,94,.22);

  --ex-shadow: 0 14px 32px rgba(0,0,0,.65);
  --ex-radius: 16px;
  --ex-radius-sm: 12px;

  /* bootstrap variables */
  --bs-border-radius: 1rem;
  --bs-border-radius-sm: .75rem;
  --bs-border-radius-lg: 1.25rem;
  --bs-dark: #0f1116;
  --bs-dark-rgb: 15, 17, 22;
}

html,
body {
  height: 100%;
}

body {
  display: flex;
  flex-direction: column;
  background:
    radial-gradient(1200px 700px at 15% 5%, rgba(214,177,94,.10), transparent 55%),
    radial-gradient(900px 600px at 85% 0%, rgba(121,246,255,.07), transparent 55%),
    radial-gradient(800px 600px at 70% 95%, rgba(168,139,255,.06), transparent 55%),
    linear-gradient(180deg, var(--ex-bg0), var(--ex-bg1));
  color: var(--ex-text);
}

#app { flex: 1 0 auto; }

a { text-decoration: none; color: #e9d29a; }

a:hover { color: var(--ex-gold); }

/* Headings */
h1, h2, h3, h4, h5, h6,
.h1, .h2, .h3, .h4, .h5, .h6 {
  color: #fff;
  font-weight: 900;
  letter-spacing: .2px;
}

/* Carbon had title bg blocks: keep but modernize */
h1:not(.title-no-bg),
.h1:not(.title-no-bg) {
  color: #fff;
  background: linear-gradient(180deg, rgba(15,17,22,.92), rgba(10,11,14,.92));
  border: 1px solid var(--ex-line-soft);
  padding: 1rem 1.1rem;
  margin-bottom: 1.5rem;
  text-transform: uppercase;
  font-size: 2rem;
  border-radius: var(--ex-radius);
  box-shadow: var(--ex-shadow);
}

/* Layout spacing */
.content {
  margin-top: 2.5rem;
  margin-bottom: 2.5rem;
}

/* Navbar */
.navbar {
  font-weight: 700;
  font-size: 1rem;
  background: rgba(14,15,18,.86) !important;
  border-bottom: 1px solid var(--ex-line-soft);
  backdrop-filter: blur(8px);
}

.navbar-brand img {
  max-height: 75px;
  max-width: 150px;
}

.navbar .navbar-nav .nav-link {
  padding: 0.5rem 0.75rem;
  text-transform: uppercase;
  color: rgba(255,255,255,.88) !important;
}

.navbar .navbar-nav .nav-link:hover {
  color: #fff !important;
}

/* Cards */
.card {
  background: var(--ex-card);
  border: 1px solid var(--ex-line);
  border-radius: var(--ex-radius);
  box-shadow: none;
}

.card-body { padding: 1.5rem; }

.card-header,
.card-footer {
  background: transparent;
  border-color: var(--ex-line-soft);
}

/* Forms */
.form-control,
.form-select,
input, select, textarea {
  background: #101218 !important;
  border: 1px solid var(--ex-line) !important;
  color: rgba(255,255,255,.92) !important;
  border-radius: var(--ex-radius-sm) !important;
}

.form-control::placeholder,
textarea::placeholder {
  color: rgba(255,255,255,.45) !important;
}

.form-control:focus,
.form-select:focus,
input:focus,
select:focus,
textarea:focus {
  border-color: var(--ex-gold) !important;
  box-shadow: 0 0 0 .20rem var(--ex-gold-soft) !important;
}

/* Muted text */
.text-muted,
.text-secondary,
small,
.small,
.form-text {
  color: var(--ex-muted) !important;
}

/* Tables */
.table,
table {
  color: rgba(255,255,255,.88) !important;
}

.table thead th,
table thead th {
  color: rgba(255,255,255,.92) !important;
  border-bottom-color: rgba(255,255,255,.10) !important;
}

.table td, .table th,
table td, table th {
  border-top-color: rgba(255,255,255,.08) !important;
}

/* Buttons */
.btn {
  border-radius: var(--ex-radius-sm) !important;
  font-weight: 900 !important;
}

.btn-primary,
.btn-warning {
  background: linear-gradient(180deg, #e3c06c, #caa04b) !important;
  border: 1px solid rgba(214,177,94,.55) !important;
  color: #111 !important;
  box-shadow: 0 10px 22px rgba(0,0,0,.35) !important;
}

.btn-primary:hover,
.btn-warning:hover {
  color: #111 !important;
  filter: brightness(1.05);
  box-shadow: 0 0 0 .22rem var(--ex-gold-glow) !important;
}

.btn-outline-primary {
  border-color: rgba(214,177,94,.65) !important;
  color: #e9d29a !important;
}

.btn-outline-primary:hover {
  background: rgba(214,177,94,.10) !important;
  color: #fff !important;
}

/* Ensure button text never turns gold */
.btn,
.btn:hover,
.btn:focus,
.btn:active,
.btn-primary,
.btn-primary:hover,
.btn-primary:focus,
.btn-primary:active,
.btn-warning,
.btn-warning:hover {
  color: #111 !important;
}

/* Alerts */
.alert {
  border-radius: var(--ex-radius-sm) !important;
  border: 1px solid var(--ex-line) !important;
  background: #101218 !important;
  color: rgba(255,255,255,.92) !important;
}

.alert-warning,
.alert-info {
  background: rgba(214,177,94,.10) !important;
  border-color: rgba(214,177,94,.28) !important;
}

/* List groups (sidebar) */
.list-group-item {
  background: rgba(20,22,26,.85) !important;
  border-color: var(--ex-line) !important;
  color: rgba(255,255,255,.88) !important;
}

.list-group-item:hover { background: rgba(214,177,94,.06) !important; }

.list-group-item.active {
  background: rgba(214,177,94,.14) !important;
  border-color: rgba(214,177,94,.45) !important;
  color: #fff !important;
}

/* Footer */
.text-bg-dark a { color: var(--bs-gray-200); }

footer {
  border-top: 1px solid var(--ex-line-soft);
  background: rgba(14,15,18,.85) !important;
}

/* Kill stray HR seams */
hr {
  border-color: rgba(255,255,255,.10) !important;
  opacity: 1;
}

/* ======================================================
   HOME HERO (Dream)
====================================================== */

.home-hero {
  position: relative;
  overflow: hidden;
  border-radius: var(--ex-radius);
  border: 1px solid rgba(255,255,255,.14);
  box-shadow: var(--ex-shadow);
  min-height: 460px;
}

.home-hero::before {
  content: "";
  position: absolute;
  inset: 0;
  background:
    radial-gradient(900px 420px at 20% 20%, rgba(214,177,94,.20), transparent 60%),
    radial-gradient(700px 420px at 85% 15%, rgba(121,246,255,.10), transparent 60%),
    linear-gradient(180deg, rgba(0,0,0,.35), rgba(0,0,0,.70));
  pointer-events: none;
}

.home-hero .hero-inner {
  position: relative;
  padding: 2.25rem;
  height: 100%;
}

.hero-kicker {
  display: inline-flex;
  align-items: center;
  gap: .6rem;
  padding: .45rem .75rem;
  border-radius: 999px;
  background: rgba(20,22,26,.70);
  border: 1px solid rgba(214,177,94,.35);
  color: rgba(255,255,255,.90);
  font-weight: 800;
}

.hero-title {
  margin-top: 1rem;
  font-size: clamp(2rem, 4vw, 3.2rem);
  line-height: 1.05;
  text-shadow: 0 14px 40px rgba(0,0,0,.55);
}

.hero-subtitle {
  margin-top: .75rem;
  max-width: 56ch;
  color: rgba(255,255,255,.82);
  font-size: 1.05rem;
  line-height: 1.55;
}

.hero-actions {
  margin-top: 1.25rem;
  display: flex;
  flex-wrap: wrap;
  gap: .75rem;
}

.ip-pill {
  margin-top: 1.1rem;
  display: inline-flex;
  align-items: center;
  gap: .65rem;
  padding: .55rem .8rem;
  border-radius: 999px;
  background: rgba(16,18,24,.72);
  border: 1px solid rgba(255,255,255,.14);
  color: rgba(255,255,255,.88);
}

.ip-pill code {
  color: #6cffc9;
  background: #1f2a27;
  padding: 2px 8px;
  border-radius: 999px;
  font-weight: 900;
}

.hero-side {
  position: relative;
  height: 100%;
  min-height: 240px;
}

.hero-orb {
  position: absolute;
  inset: -30% -30% auto auto;
  width: 380px;
  height: 380px;
  border-radius: 999px;
  background: radial-gradient(circle at 30% 30%, rgba(214,177,94,.35), rgba(214,177,94,0) 55%);
  filter: blur(2px);
  opacity: .95;
}

.hero-grid {
  position: absolute;
  inset: auto 0 0 0;
  height: 220px;
  background-image: linear-gradient(rgba(255,255,255,.06) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,.06) 1px, transparent 1px);
  background-size: 26px 26px;
  mask-image: linear-gradient(to top, rgba(0,0,0,.75), transparent);
  opacity: .35;
}

/* ======================================================
   QUICK CARDS
====================================================== */

.quick-cards .qc {
  height: 100%;
  background: var(--ex-card);
  border: 1px solid var(--ex-line);
  border-radius: var(--ex-radius);
  padding: 1.1rem;
  transition: transform .16s ease, box-shadow .16s ease, border-color .16s ease;
}

.quick-cards .qc:hover {
  transform: translateY(-3px);
  border-color: rgba(214,177,94,.55);
  box-shadow: 0 18px 44px rgba(0,0,0,.55), 0 0 0 .22rem rgba(214,177,94,.12);
}

.qc-icon {
  width: 46px;
  height: 46px;
  border-radius: 12px;
  display: grid;
  place-items: center;
  background: #1a1c21;
  border: 1px solid rgba(214,177,94,.55);
  font-size: 22px;
}

.qc-title { font-weight: 900; margin-top: .75rem; color: #fff; }
.qc-desc { color: rgba(255,255,255,.72); margin-top: .35rem; line-height: 1.45; }

/* ======================================================
   SHOP GLOW (no seams)
====================================================== */

.shop .card,
#shop .card,
.store .card,
#store .card {
  transition: transform .16s ease, box-shadow .16s ease, border-color .16s ease;
}

.shop .card:hover,
#shop .card:hover,
.store .card:hover,
#store .card:hover {
  transform: translateY(-3px);
  border-color: rgba(214,177,94,.60) !important;
  box-shadow:
    0 18px 44px rgba(0,0,0,.55),
    0 0 0 .22rem rgba(214,177,94,.14),
    0 0 26px rgba(214,177,94,.18) !important;
}

.shop img,
.store img {
  image-rendering: pixelated;
  image-rendering: crisp-edges;
  filter: drop-shadow(0 18px 26px rgba(0,0,0,.50));
}

/* Remove potential shop seams */
.shop hr, .store hr,
#shop hr, #store hr {
  display: none !important;
}
/* =========================================
   EXCABILUR DREAM — FIX PACK (Vote + Shop)
   À coller TOUT EN BAS du CSS
========================================= */

/* --------- 1) TABLES (Vote / Classement) : plus de fond blanc --------- */
.table,
table {
  color: rgba(255,255,255,.90) !important;
  background: transparent !important;
}

.table thead th,
table thead th {
  color: rgba(255,255,255,.92) !important;
  background: rgba(255,255,255,.06) !important;
  border-bottom: 1px solid rgba(255,255,255,.10) !important;
}

.table tbody td,
.table tbody th,
table tbody td,
table tbody th {
  color: rgba(255,255,255,.86) !important;
  background: transparent !important;
  border-top: 1px solid rgba(255,255,255,.08) !important;
}

/* Bootstrap variants qui forcent le blanc */
.table-light,
.table-light > :not(caption) > * > *,
.table-white,
.bg-white,
.bg-light {
  background: transparent !important;
  color: rgba(255,255,255,.90) !important;
}

/* Table wrapper (souvent blanc sur certains plugins/pages) */
.table-responsive,
.table-responsive .table,
.card .table,
.card table {
  background: transparent !important;
}

/* Hover */
.table-hover tbody tr:hover > * {
  color: #fff !important;
  background: rgba(214,177,94,.06) !important;
}

/* --------- 2) SHOP : titres/prix devenus gris/noirs (contraste) --------- */
.shop .card,
.store .card,
#shop .card,
#store .card {
  color: rgba(255,255,255,.90) !important;
}

.shop .card .card-title,
.store .card .card-title,
#shop .card .card-title,
#store .card .card-title {
  color: #fff !important;
  font-weight: 900 !important;
}

.shop .card .text-muted,
.store .card .text-muted,
#shop .card .text-muted,
#store .card .text-muted,
.shop .card small,
.store .card small {
  color: rgba(255,255,255,.70) !important;
}

/* Prix / textes courts (au cas où c'est dans un <p> ou <div>) */
.shop .card p,
.store .card p,
#shop .card p,
#store .card p {
  color: rgba(255,255,255,.86) !important;
}

/* --------- 3) Pastilles / badges en haut du Vote (temps restant) --------- */
.badge,
.badge * {
  color: rgba(255,255,255,.92) !important;
}

.badge.bg-secondary,
.badge.bg-dark,
.badge.bg-light {
  background: rgba(255,255,255,.10) !important;
  border: 1px solid rgba(255,255,255,.12) !important;
}

/* Les "pills" dorés : s'assurer que le texte reste lisible */
.btn-warning,
.btn-warning:hover,
.btn-primary,
.btn-primary:hover {
  color: #111 !important;
}

/* --------- 4) Sécurité : éviter le retour du fond blanc global --------- */
body,
main,
.content,
.container,
.container-fluid {
  background-color: transparent !important;
}
/* =========================================================
   EXCABILUR DREAM — HOME FIX + SEAM FIX (V1.2)
   À coller TOUT EN BAS
========================================================= */

/* ---------------------------
   0) Fond global uniforme (évite les coutures)
---------------------------- */
html, body{
  background: linear-gradient(180deg,#07070a,#0b0c12) !important;
  background-attachment: fixed !important;
  background-repeat: no-repeat !important;
}

/* Empêche les wrappers de “poser” un autre fond (cause #1 des lignes) */
main, .content, .bg-body, .content.bg-body,
.container, .container-fluid,
.page, .page-content, .wrapper, #app{
  background: transparent !important;
  background-image: none !important;
  box-shadow: none !important;
  border: 0 !important;
}

/* Si une section met un fond différent (couture), on force transparent */
section, .section, [class*="section"], [class*="block"]{
  background: transparent !important;
  background-image: none !important;
  border: 0 !important;
}

/* Supprime les séparateurs invisibles (traits) */
hr{ display:none !important; }

/* ---------------------------
   1) Couleurs texte global (évite le gris/noir sur fond dark)
---------------------------- */
body, main, .content{
  color: rgba(255,255,255,.92) !important;
}

h1,h2,h3,h4,h5,h6,
.card-title, .modal-title{
  color:#fff !important;
}

.text-muted, .text-secondary, small, .small, .form-text{
  color: rgba(255,255,255,.68) !important;
}

/* Liens */
a{ color:#e9d29a !important; }
a:hover{ color:#d6b15e !important; }

/* ---------------------------
   2) HOME — encadrements / overlays qui reviennent
   (on cible large : hero/home background + cards home)
---------------------------- */

/* Le “bloc”/encadrement vient souvent d’une bordure/ombre sur le hero */
.home-background,
.hero, .home-hero, .ex-hero, .homepage-hero{
  border: 0 !important;
  box-shadow: none !important;
}

/* Si le hero a un overlay (pseudo-element) qui fait un cadre, on le neutralise */
.home-background::before,
.home-background::after,
.hero::before, .hero::after,
.home-hero::before, .home-hero::after,
.ex-hero::before, .ex-hero::after,
.homepage-hero::before, .homepage-hero::after{
  box-shadow: none !important;
  border: 0 !important;
  outline: 0 !important;
}

/* Texte dans le hero (assure lisibilité) */
.home-background *,
.hero *, .home-hero *, .ex-hero *, .homepage-hero *{
  color: rgba(255,255,255,.92) !important;
}

/* Le titre “Excabilur” peut hériter d’une couleur terne */
.home-background h1, .home-background h2,
.hero h1, .hero h2,
.home-hero h1, .home-hero h2,
.ex-hero h1, .ex-hero h2{
  color: #fff !important;
  text-shadow: 0 10px 26px rgba(0,0,0,.55);
}

/* ---------------------------
   3) HOME — Cartes (Wiki/Boutique/Support/Vote) : cadre propre + hover gold
---------------------------- */
.home .card,
.homepage .card,
.home-cards .card,
.quick-links .card,
[class*="home"] .card{
  background: #14161a !important;
  border: 1px solid #2b2f36 !important;
  border-radius: 16px !important;
  box-shadow: 0 14px 34px rgba(0,0,0,.45) !important;
  color: rgba(255,255,255,.90) !important;
}

.home .card:hover,
.homepage .card:hover,
.home-cards .card:hover,
.quick-links .card:hover,
[class*="home"] .card:hover{
  border-color: rgba(214,177,94,.60) !important;
  box-shadow:
    0 20px 52px rgba(0,0,0,.60),
    0 0 0 .22rem rgba(214,177,94,.14),
    0 0 28px rgba(214,177,94,.18) !important;
  transform: translateY(-3px);
}

/* ---------------------------
   4) “Ligne de fond” (couture) — fix spécial
   Si la couture vient d’un border-top sur une section
---------------------------- */
[class*="home"] .border-top,
[class*="home"] .border-bottom,
[class*="home"] .border,
.home .border-top, .home .border-bottom, .home .border{
  border-color: transparent !important;
}

/* La couture peut venir d’un box-shadow sur des containers pleine largeur */
[class*="home"] .shadow,
[class*="home"] .shadow-sm,
[class*="home"] .shadow-lg,
.home .shadow, .home .shadow-sm, .home .shadow-lg{
  box-shadow: none !important;
}
/* =========================================
   FIX FINAL: sélection bleue + boutons hero
========================================= */

/* 1) Sélection texte (le bleu) -> doré Excabilur */
::selection{
  background: rgba(214,177,94,.35) !important;
  color: #111 !important;
}
::-moz-selection{
  background: rgba(214,177,94,.35) !important;
  color: #111 !important;
}

/* 2) Boutons du HERO: même style (remplis dorés) */
.hero .btn,
.home-hero .btn,
.ex-hero .btn,
.home-background .btn{
  border-radius: 12px !important;
  font-weight: 900 !important;
}

/* Force le style doré sur tous les boutons du hero (même ceux en outline) */
.hero .btn:not(.btn-link),
.home-hero .btn:not(.btn-link),
.ex-hero .btn:not(.btn-link),
.home-background .btn:not(.btn-link){
  background: linear-gradient(180deg,#e3c06c,#caa04b) !important;
  border: 1px solid rgba(214,177,94,.55) !important;
  color: #111 !important;
  box-shadow: 0 10px 22px rgba(0,0,0,.35) !important;
}

/* Hover premium */
.hero .btn:not(.btn-link):hover,
.home-hero .btn:not(.btn-link):hover,
.ex-hero .btn:not(.btn-link):hover,
.home-background .btn:not(.btn-link):hover{
  filter: brightness(1.05);
  box-shadow:
    0 18px 44px rgba(0,0,0,.55),
    0 0 0 .22rem rgba(214,177,94,.14),
    0 0 26px rgba(214,177,94,.18) !important;
  transform: translateY(-2px);
}

/* 3) Bonus: évite les couleurs “link hover” qui recolorent le texte */
.hero a.btn, .hero a.btn:hover,
.home-background a.btn, .home-background a.btn:hover{
  color: #111 !important;
  text-decoration: none !important;
}
/* =================================
   EXCABILUR — FIX TEXT CONTRAST
================================= */

/* Texte secondaire global */
.text-muted,
.text-secondary,
small,
.small{
    color: rgba(255,255,255,.75) !important;
}

/* Prix boutique */
.store .price,
.shop .price,
.card .price{
    color: rgba(255,255,255,.90) !important;
    font-weight: 700;
}

/* Titres items boutique */
.store .card-title,
.shop .card-title,
.card-title{
    color: #ffffff !important;
}

/* Texte dans les cards */
.card-text{
    color: rgba(255,255,255,.80) !important;
}

/* Nombre de joueurs connectés */
.server-count,
.server-status,
.server-players,
.server-ip{
    color: rgba(255,255,255,.85) !important;
    font-weight: 600;
}

/* Texte sous le serveur */
.server small{
    color: rgba(255,255,255,.70) !important;
}

/* Sécurité : tout texte dans une card reste clair */
.card{
    color: rgba(255,255,255,.90);
}

/* Hover cards */
.card:hover{
    color: #fff;
}
/* =========================================================
   EXCABILUR DREAM — PREMIUM PACK
   (Boutique + Serveur + Copy IP + Lisibilité)
   À coller TOUT EN BAS
========================================================= */

/* -------------------------
   1) LISIBILITÉ GLOBALE
-------------------------- */
.text-muted, .text-secondary, small, .small, .form-text{
  color: rgba(255,255,255,.75) !important;
}
.card, .card *{
  color: rgba(255,255,255,.90);
}
.card-title{ color:#fff !important; font-weight:900 !important; }
.card-text{ color: rgba(255,255,255,.82) !important; }

/* -------------------------
   2) BOUTIQUE — CARDS PREMIUM + GLOW
-------------------------- */
.shop .card, .store .card, #shop .card, #store .card{
  background: #14161a !important;
  border: 1px solid #2b2f36 !important;
  border-radius: 18px !important;
  overflow: hidden;
  transform: translateZ(0);
  transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease, filter .18s ease !important;
}

/* petit liseré interne (classe “premium”) */
.shop .card::before, .store .card::before, #shop .card::before, #store .card::before{
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  border-radius:18px;
  box-shadow: inset 0 0 0 1px rgba(255,255,255,.04);
}

/* hover + glow doré */
.shop .card:hover, .store .card:hover, #shop .card:hover, #store .card:hover{
  transform: translateY(-4px);
  border-color: rgba(214,177,94,.62) !important;
  box-shadow:
    0 22px 60px rgba(0,0,0,.62),
    0 0 0 .26rem rgba(214,177,94,.16),
    0 0 42px rgba(214,177,94,.20) !important;
}

/* prix boutique (souvent “muted”) */
.shop .price, .store .price, .card .price,
.shop .card .text-muted, .store .card .text-muted{
  color: rgba(255,255,255,.90) !important;
  font-weight: 800 !important;
}

/* -------------------------
   3) IMAGES MINECRAFT — net + mini zoom
-------------------------- */
.shop .card img, .store .card img, #shop .card img, #store .card img{
  image-rendering: pixelated;
  image-rendering: crisp-edges;
  transform: translateZ(0);
  transition: transform .18s ease, filter .18s ease;
  filter: drop-shadow(0 18px 26px rgba(0,0,0,.55));
}

/* zoom subtil au hover */
.shop .card:hover img, .store .card:hover img, #shop .card:hover img, #store .card:hover img{
  transform: scale(1.035);
  filter: drop-shadow(0 22px 34px rgba(0,0,0,.62));
}

/* -------------------------
   4) BOUTONS — premium (or) + texte stable
-------------------------- */
.btn, .btn:hover, .btn:focus, .btn:active{
  text-decoration:none !important;
}
.btn-primary, .btn-warning, .btn-buy{
  background: linear-gradient(180deg,#e3c06c,#caa04b) !important;
  border: 1px solid rgba(214,177,94,.55) !important;
  color: #111 !important;
  border-radius: 12px !important;
  font-weight: 900 !important;
  box-shadow: 0 10px 22px rgba(0,0,0,.35) !important;
  transition: transform .16s ease, box-shadow .16s ease, filter .16s ease !important;
}
.btn-primary:hover, .btn-warning:hover, .btn-buy:hover{
  color:#111 !important;
  filter: brightness(1.05);
  transform: translateY(-2px);
  box-shadow:
    0 18px 44px rgba(0,0,0,.55),
    0 0 0 .22rem rgba(214,177,94,.14),
    0 0 26px rgba(214,177,94,.18) !important;
}

/* -------------------------
   5) SERVEUR — compteur / IP lisibles + “pulse” discret
-------------------------- */
.server-count, .server-status, .server-players, .server-ip,
[class*="server"] .text-muted, [class*="server"] small{
  color: rgba(255,255,255,.82) !important;
  font-weight: 700 !important;
}

.server-card, .server, [class*="server"]{
  position: relative;
}

@keyframes excaPulse {
  0%   { box-shadow: 0 0 0 0 rgba(214,177,94,.10); }
  70%  { box-shadow: 0 0 0 14px rgba(214,177,94,0); }
  100% { box-shadow: 0 0 0 0 rgba(214,177,94,0); }
}

/* ajoute un halo léger sur la card serveur */
.server-card:hover,
.server:hover{
  animation: excaPulse 1.5s ease-out 1;
}

/* -------------------------
   6) COPY IP — micro “toast” (si bouton a data-copy ou classe copy)
-------------------------- */
.copy-ip, [data-copy], [data-clipboard-text]{
  position: relative;
}

/* petit badge "Copié !" après clic si ton JS ajoute .is-copied */
.copy-ip.is-copied::after,
[data-copy].is-copied::after,
[data-clipboard-text].is-copied::after{
  content:"Copié !";
  position:absolute;
  top:-10px;
  right:-10px;
  padding:6px 10px;
  border-radius:999px;
  background: rgba(214,177,94,.18);
  border: 1px solid rgba(214,177,94,.35);
  color: rgba(255,255,255,.92);
  font-weight: 900;
  font-size: 12px;
  box-shadow: 0 12px 30px rgba(0,0,0,.45);
}
/* =================================
   EXCABILUR — PROFILE DROPDOWN FIX
================================= */

.dropdown-menu{
    background: #14161a !important;
    border: 1px solid #2b2f36 !important;
    border-radius: 14px !important;
    padding: 8px !important;
    box-shadow: 0 18px 40px rgba(0,0,0,.55) !important;
}

/* texte du menu */
.dropdown-menu .dropdown-item{
    color: rgba(255,255,255,.85) !important;
    border-radius: 8px;
    transition: all .15s ease;
}

/* hover */
.dropdown-menu .dropdown-item:hover{
    background: rgba(214,177,94,.12) !important;
    color: #fff !important;
}

/* ligne de séparation */
.dropdown-divider{
    border-color: rgba(255,255,255,.08) !important;
}

/* lien actif */
.dropdown-menu .active,
.dropdown-menu .active:hover{
    background: rgba(214,177,94,.18) !important;
    color: #fff !important;
}
/* =========================
   NAVBAR Z-INDEX FIX
========================= */

.navbar,
.navbar .dropdown,
.navbar .dropdown-menu{
    position: relative;
    z-index: 9999 !important;
}

/* hero derrière */
.home-background{
    position: relative;
    z-index: 1;
}
/* ==================================================
   DROPDOWN GLOBAL FIX (toutes pages) + AU DESSUS
================================================== */

/* 1) Toujours au-dessus */
.dropdown-menu{
  z-index: 2147483647 !important; /* maximum safe */
}

/* La navbar doit être au-dessus de tout */
header, .navbar, .navbar *{
  position: relative;
  z-index: 999999 !important;
}

/* Certains thèmes mettent un overlay/hero au-dessus */
.home-background, .hero, .page-header, .content-header{
  position: relative;
  z-index: 1 !important;
}

/* 2) Bootstrap 5: dropdown-menu avec popper */
.dropdown-menu,
.dropdown-menu[data-bs-popper]{
  background: #14161a !important;
  border: 1px solid #2b2f36 !important;
  border-radius: 14px !important;
  padding: 10px 8px !important;
  box-shadow: 0 20px 50px rgba(0,0,0,.60) !important;
}

/* Texte */
.dropdown-menu .dropdown-item{
  color: rgba(255,255,255,.88) !important;
  border-radius: 8px !important;
  padding: 8px 12px !important;
}

/* Hover */
.dropdown-menu .dropdown-item:hover,
.dropdown-menu .dropdown-item:focus{
  background: rgba(214,177,94,.14) !important;
  color: #fff !important;
}

/* Divider */
.dropdown-menu .dropdown-divider{
  border-color: rgba(255,255,255,.10) !important;
}

/* 3) Cas fréquent: un parent coupe le menu (overflow hidden) */
.navbar, header, .navbar .container, .navbar .container-fluid{
  overflow: visible !important;
}
/* =========================================================
   VOTE PAGE — PATCH PROPRE (scopé au plugin vote)
   Basé sur #status-message visible dans l'inspecteur
========================================================= */

/* Titre */
#status-message + h1{
  color: #fff !important;
  font-weight: 1000 !important;
  letter-spacing: .8px !important;
  text-transform: uppercase !important;
  margin-bottom: 1rem !important;
}

/* Cards de la page vote uniquement */
#status-message ~ .card{
  background: #14161a !important;
  border: 1px solid #2b2f36 !important;
  border-radius: 18px !important;
  box-shadow: 0 18px 46px rgba(0,0,0,.55) !important;
  overflow: hidden !important;
}

/* Boutons de vote */
#status-message ~ .card .btn,
#status-message ~ .btn{
  border-radius: 999px !important;
  font-weight: 1000 !important;
}

#status-message ~ .card .btn-warning,
#status-message ~ .card .btn-warning:hover,
#status-message ~ .btn-warning,
#status-message ~ .btn-warning:hover{
  background: linear-gradient(180deg,#e3c06c,#caa04b) !important;
  border: 1px solid rgba(214,177,94,.55) !important;
  color: #111 !important;
  box-shadow: 0 10px 22px rgba(0,0,0,.35) !important;
}

#status-message ~ .card .btn-warning:hover,
#status-message ~ .btn-warning:hover{
  transform: translateY(-2px);
  box-shadow:
    0 18px 44px rgba(0,0,0,.55),
    0 0 0 .22rem rgba(214,177,94,.14),
    0 0 26px rgba(214,177,94,.18) !important;
}

/* Table classement / récompenses */
#status-message ~ .card table.table{
  width: 100% !important;
  background: transparent !important;
  color: rgba(255,255,255,.90) !important;
  border-collapse: separate !important;
  border-spacing: 0 10px !important;
}

#status-message ~ .card table.table thead.table-dark th{
  background: rgba(255,255,255,.06) !important;
  color: rgba(255,255,255,.92) !important;
  border: 0 !important;
  padding: 12px 14px !important;
  font-weight: 1000 !important;
}

#status-message ~ .card table.table tbody tr{
  background: rgba(255,255,255,.03) !important;
  outline: 1px solid rgba(255,255,255,.06);
  box-shadow: 0 10px 22px rgba(0,0,0,.35);
  transition: transform .16s ease, box-shadow .16s ease, outline-color .16s ease;
}

#status-message ~ .card table.table tbody td,
#status-message ~ .card table.table tbody th{
  border: 0 !important;
  padding: 12px 14px !important;
  color: rgba(255,255,255,.88) !important;
  vertical-align: middle !important;
}

#status-message ~ .card table.table tbody tr > *:first-child{
  border-top-left-radius: 12px;
  border-bottom-left-radius: 12px;
}

#status-message ~ .card table.table tbody tr > *:last-child{
  border-top-right-radius: 12px;
  border-bottom-right-radius: 12px;
}

#status-message ~ .card table.table tbody tr:hover{
  transform: translateY(-1px);
  outline-color: rgba(214,177,94,.35);
  box-shadow:
    0 18px 44px rgba(0,0,0,.55),
    0 0 0 .22rem rgba(214,177,94,.08),
    0 0 24px rgba(214,177,94,.10);
}

#status-message ~ .card table.table thead th:last-child{
  text-align: right !important;
}

#status-message ~ .card table.table tbody td:last-child{
  text-align: right !important;
  font-weight: 1000 !important;
  color: #fff !important;
}
/* =========================================================
   PLAYERS PAGE — pagination + polish
========================================================= */

/* Pagination dark */
.pagination{
  gap: 6px;
}

.pagination .page-item .page-link{
  background: #14161a !important;
  border: 1px solid #2b2f36 !important;
  color: rgba(255,255,255,.82) !important;
  border-radius: 12px !important;
  box-shadow: none !important;
}

.pagination .page-item.active .page-link{
  background: linear-gradient(180deg,#e3c06c,#caa04b) !important;
  border-color: rgba(214,177,94,.55) !important;
  color: #111 !important;
  font-weight: 1000 !important;
}

.pagination .page-item .page-link:hover{
  background: rgba(214,177,94,.10) !important;
  color: #fff !important;
}

/* Lignes joueurs : transition plus premium */
.table tbody tr{
  transition: transform .16s ease, box-shadow .16s ease, outline-color .16s ease;
}

.table tbody tr:hover{
  transform: translateY(-1px);
}
/* =========================================================
   HOME — SERVEURS V2 ULTRA (dégradé + anim + badge)
   (remplace la V1 WOW BLOCK)
========================================================= */

/* Titre "Serveurs" */
h2.text-center.mb-3{
  font-size: 3.1rem !important;
  font-weight: 1000 !important;
  letter-spacing: .6px !important;
  color: #fff !important;
  text-shadow:
    0 10px 28px rgba(0,0,0,.55),
    0 0 28px rgba(214,177,94,.14) !important;
  margin-bottom: 1.7rem !important;
}

/* Colonne serveur */
.row.gy-3.justify-content-center.mb-5 .col-md-4{
  max-width: 680px !important;
  width: 100% !important;
}

/* Card serveur */
.row.gy-3.justify-content-center.mb-5 .card.h-100{
  position: relative !important;
  overflow: hidden !important;
  border-radius: 26px !important;
  border: 1px solid rgba(255,255,255,.10) !important;

  background:
    radial-gradient(620px 260px at 15% 0%, rgba(214,177,94,.18), transparent 60%),
    radial-gradient(520px 240px at 88% 10%, rgba(88,156,255,.12), transparent 62%),
    linear-gradient(180deg,#171b23 0%, #0f1218 100%) !important;

  box-shadow:
    0 40px 110px rgba(0,0,0,.82),
    inset 0 1px 0 rgba(255,255,255,.06) !important;

  transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease !important;
}

/* Glow + scanline dorée */
.row.gy-3.justify-content-center.mb-5 .card.h-100::before{
  content:"";
  position:absolute;
  inset:-2px;
  pointer-events:none;
  border-radius:26px;
  background:
    linear-gradient(135deg,
      rgba(214,177,94,.28) 0%,
      transparent 22%,
      transparent 78%,
      rgba(214,177,94,.18) 100%),
    radial-gradient(600px 240px at 55% -10%, rgba(214,177,94,.14), transparent 65%);
  opacity: 1;
}

/* Petite “barre lumineuse” en haut */
.row.gy-3.justify-content-center.mb-5 .card.h-100::after{
  content:"";
  position:absolute;
  left: 18px;
  right: 18px;
  top: 14px;
  height: 2px;
  border-radius: 999px;
  background: linear-gradient(90deg, transparent, rgba(214,177,94,.55), transparent);
  filter: blur(.2px);
  opacity: .9;
}

/* Hover */
.row.gy-3.justify-content-center.mb-5 .card.h-100:hover{
  transform: translateY(-6px) scale(1.012) !important;
  border-color: rgba(214,177,94,.35) !important;
  box-shadow:
    0 55px 140px rgba(0,0,0,.88),
    0 0 0 .30rem rgba(214,177,94,.10),
    0 0 45px rgba(214,177,94,.22),
    inset 0 1px 0 rgba(255,255,255,.07) !important;
}

/* Body spacing */
.row.gy-3.justify-content-center.mb-5 .card.h-100 .card-body.text-center{
  padding: 2.4rem 2.2rem !important;
}

/* =========================
   BADGE EN LIGNE (CSS only)
========================= */
.row.gy-3.justify-content-center.mb-5 .card.h-100 .card-body.text-center{
  position: relative;
}

.row.gy-3.justify-content-center.mb-5 .card.h-100 .card-body.text-center::before{
  content: "● EN LIGNE";
  position: absolute;
  top: 18px;
  right: 18px;
  padding: 8px 12px;
  border-radius: 999px;
  background: rgba(0,0,0,.35);
  border: 1px solid rgba(255,255,255,.12);
  color: rgba(255,255,255,.92);
  font-weight: 1000;
  font-size: .82rem;
  letter-spacing: .4px;
  box-shadow: 0 14px 30px rgba(0,0,0,.35), inset 0 1px 0 rgba(255,255,255,.05);
}

.row.gy-3.justify-content-center.mb-5 .card.h-100 .card-body.text-center::before{
  /* point vert glow */
  text-shadow: 0 0 18px rgba(45,211,111,.25);
}
.row.gy-3.justify-content-center.mb-5 .card.h-100 .card-body.text-center::before{
  /* le "●" prend la teinte via gradient hack */
}

/* =========================
   TITRE SERVEUR (dégradé or)
========================= */
.row.gy-3.justify-content-center.mb-5 .card.h-100 .card-title{
  font-size: 2.65rem !important;
  line-height: 1.05 !important;
  font-weight: 1000 !important;
  margin-bottom: 1.25rem !important;

  background: linear-gradient(180deg,#ffe7a8 0%, #e3c06c 40%, #caa04b 100%);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent !important;

  text-shadow: 0 18px 44px rgba(0,0,0,.55);
}

/* =========================
   PROGRESS (barre animée)
========================= */
.row.gy-3.justify-content-center.mb-5 .card.h-100 .progress.mb-2{
  height: 14px !important;
  border-radius: 999px !important;
  background: rgba(255,255,255,.08) !important;
  overflow: hidden !important;
  box-shadow:
    inset 0 1px 2px rgba(0,0,0,.35),
    inset 0 1px 0 rgba(255,255,255,.05) !important;
  margin-bottom: 1rem !important;
}

/* Remplissage */
.row.gy-3.justify-content-center.mb-5 .card.h-100 .progress-bar{
  border-radius: 999px !important;
  background: linear-gradient(90deg,#f7dc92 0%, #e3c06c 40%, #caa04b 100%) !important;
  box-shadow: 0 0 20px rgba(214,177,94,.30);
  position: relative;
  overflow: hidden;
}

/* Animation “shimmer” */
.row.gy-3.justify-content-center.mb-5 .card.h-100 .progress-bar::after{
  content:"";
  position:absolute;
  inset: 0;
  background: linear-gradient(90deg,
    transparent 0%,
    rgba(255,255,255,.22) 45%,
    transparent 90%);
  transform: translateX(-120%);
  animation: exc-shimmer 1.9s ease-in-out infinite;
  opacity: .65;
}

@keyframes exc-shimmer{
  0%{ transform: translateX(-120%); }
  100%{ transform: translateX(120%); }
}

/* =========================
   TEXTE connectés
========================= */
.row.gy-3.justify-content-center.mb-5 .card.h-100 p.mb-2{
  font-size: 1.22rem !important;
  font-weight: 900 !important;
  color: rgba(255,255,255,.96) !important;
  margin-bottom: 1rem !important;
  text-shadow: 0 4px 10px rgba(0,0,0,.35) !important;
}

/* IP en pilule */
.row.gy-3.justify-content-center.mb-5 .card.h-100 p.card-text.mb-0{
  display: inline-flex !important;
  align-items: center !important;
  gap: 10px !important;
  padding: 10px 16px !important;
  margin-top: .25rem !important;
  border-radius: 999px !important;
  background: rgba(0,0,0,.26) !important;
  border: 1px solid rgba(255,255,255,.12) !important;
  color: rgba(255,255,255,.92) !important;
  font-size: 1.05rem !important;
  font-weight: 900 !important;
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.05),
    0 12px 28px rgba(0,0,0,.30) !important;
}

/* Point vert devant l'IP */
.row.gy-3.justify-content-center.mb-5 .card.h-100 p.card-text.mb-0::before{
  content:"";
  width: 10px;
  height: 10px;
  border-radius: 999px;
  background: #2dd36f;
  box-shadow: 0 0 0 5px rgba(45,211,111,.12);
  flex: 0 0 auto;
}