:root {
  --rb-gold: #c9a227;
  --rb-gold-bright: #f0d17a;
  --rb-gold-dim: #8a7420;
  --rb-bg: #0a0c10;
  --rb-panel: #14171f;
  --rb-panel-2: #1a1e28;
  --rb-text: #d8d0bd;
  --rb-muted: #9a917c;
}

body {
  display: flex;
  flex-direction: column;
  min-height: 100vh;
  background-color: var(--rb-bg);
  color: var(--rb-text);
  font-family: 'EB Garamond', Georgia, serif;
  font-size: 1.05rem;
}

h1, h2, h3, h4, h5, h6, .navbar-brand, .btn, .display-1, .display-2,
.display-3, .display-4, .display-5, .display-6 {
  font-family: 'Cinzel', 'Times New Roman', serif;
}

code { color: var(--rb-gold-bright); }

/* ---------- Navbar ---------- */
.navbar {
  background: linear-gradient(180deg, #16181f 0%, #0d0f14 100%) !important;
  border-bottom: 1px solid var(--rb-gold-dim) !important;
  box-shadow: 0 2px 12px rgba(0, 0, 0, .6);
}
.navbar-brand {
  color: var(--rb-gold-bright) !important;
  letter-spacing: .15em;
  text-transform: uppercase;
}
.navbar-brand img { height: 34px; width: auto; margin-right: .5rem; }
.nav-link { color: var(--rb-text) !important; letter-spacing: .05em; }
.nav-link:hover, .nav-link.active { color: var(--rb-gold-bright) !important; }

/* ---------- Hero ---------- */
.hero {
  position: relative;
  background:
    radial-gradient(ellipse at 50% 20%, rgba(37, 58, 118, .55) 0%, rgba(10, 12, 16, 0) 60%),
    radial-gradient(ellipse at 50% 110%, rgba(201, 162, 39, .12) 0%, rgba(10, 12, 16, 0) 55%),
    linear-gradient(180deg, #0d1120 0%, #0a0c10 100%);
  border-bottom: 2px solid var(--rb-gold-dim);
}
.hero::before {
  content: '';
  position: absolute; inset: 0;
  background:
    radial-gradient(ellipse at center 40%, rgba(10, 12, 16, .25) 0%, rgba(10, 12, 16, .88) 75%),
    linear-gradient(180deg, rgba(10, 12, 16, .55) 0%, rgba(10, 12, 16, .35) 45%, #0a0c10 100%);
}
.hero .container { position: relative; z-index: 1; }
.hero-crest { width: clamp(190px, 34vw, 330px); filter: drop-shadow(0 10px 30px rgba(0, 0, 0, .9)) drop-shadow(0 0 40px rgba(201, 162, 39, .18)); }
.hero h1 {
  color: var(--rb-gold-bright);
  letter-spacing: .12em;
  text-shadow: 0 0 30px rgba(201, 162, 39, .45), 0 4px 12px #000;
}
.hero-sub { color: #e8e0cb; font-style: italic; text-shadow: 0 2px 8px #000; }
.hero-slim {
  background:
    radial-gradient(ellipse at 50% 0%, rgba(37, 58, 118, .5) 0%, rgba(10, 12, 16, 0) 65%),
    linear-gradient(180deg, #0d1120 0%, #0a0c10 100%);
}
.hero-slim .hero-crest { width: clamp(120px, 20vw, 190px); }

/* ---------- Ornament-Trenner ---------- */
.ornament {
  display: flex; align-items: center; justify-content: center;
  gap: .75rem; margin: 1.25rem auto;
  color: var(--rb-gold); max-width: 320px;
}
.ornament::before, .ornament::after {
  content: ''; flex: 1; height: 1px;
  background: linear-gradient(90deg, transparent, var(--rb-gold));
}
.ornament::after { background: linear-gradient(90deg, var(--rb-gold), transparent); }

/* ---------- Cards & Panels ---------- */
.card {
  background: linear-gradient(180deg, var(--rb-panel-2) 0%, var(--rb-panel) 100%);
  border: 1px solid var(--rb-gold-dim);
  box-shadow: inset 0 0 0 1px rgba(0, 0, 0, .6), 0 4px 14px rgba(0, 0, 0, .45);
  color: var(--rb-text);
}
.card-title { color: var(--rb-gold-bright); letter-spacing: .06em; }
.stat-card .display-6 { color: var(--rb-gold-bright); text-shadow: 0 0 18px rgba(201, 162, 39, .35); }
.stat-card .text-secondary, .text-secondary { color: var(--rb-muted) !important; }
.card-img-top { border-bottom: 1px solid var(--rb-gold-dim); }

/* ---------- Buttons ---------- */
.btn-gold {
  --bs-btn-color: #1a1505;
  --bs-btn-bg: linear-gradient(180deg, var(--rb-gold-bright), var(--rb-gold));
  --bs-btn-border-color: var(--rb-gold-bright);
  --bs-btn-hover-color: #000;
  --bs-btn-hover-bg: var(--rb-gold-bright);
  --bs-btn-hover-border-color: var(--rb-gold-bright);
  background: linear-gradient(180deg, var(--rb-gold-bright) 0%, var(--rb-gold) 100%);
  border-color: var(--rb-gold-bright);
  color: #1a1505;
  font-weight: 600;
  letter-spacing: .08em;
  text-transform: uppercase;
}
.btn-gold:hover, .btn-gold:focus { background: var(--rb-gold-bright); color: #000; }
.btn-raven {
  border: 1px solid var(--rb-gold);
  color: var(--rb-gold-bright);
  letter-spacing: .08em;
  text-transform: uppercase;
  background: rgba(10, 12, 16, .55);
}
.btn-raven:hover { background: rgba(201, 162, 39, .15); color: var(--rb-gold-bright); border-color: var(--rb-gold-bright); }
.btn-primary { background: var(--rb-gold); border-color: var(--rb-gold-bright); color: #1a1505; }
.btn-primary:hover { background: var(--rb-gold-bright); border-color: var(--rb-gold-bright); color: #000; }

/* ---------- Command-Liste ---------- */
.cmd-list { list-style: none; padding: 0; margin: 0; }
.cmd-list li {
  padding: .6rem .9rem;
  border-bottom: 1px solid #232833;
  display: flex; justify-content: space-between; align-items: baseline; gap: 1rem; flex-wrap: wrap;
}
.cmd-list li:last-child { border-bottom: 0; }
.cmd-list .cmd { color: var(--rb-gold-bright); font-family: 'Cinzel', serif; }
.cmd-list .desc { color: var(--rb-muted); font-size: .95rem; }

/* ---------- Allianz / Roster ---------- */
.guild-icon {
  width: 96px; height: 96px; border-radius: 50%;
  border: 3px solid var(--rb-gold);
  box-shadow: 0 0 24px rgba(201, 162, 39, .4);
}
.member-card { border-left: 3px solid var(--rb-gold-dim); }
.member-avatar {
  width: 52px; height: 52px; border-radius: 50%;
  border: 2px solid var(--rb-gold-dim);
}
.role-dot {
  display: inline-block; width: 10px; height: 10px;
  border-radius: 50%; margin-right: 6px;
  box-shadow: 0 0 6px currentColor;
}
.badge-gm { background: linear-gradient(180deg, var(--rb-gold-bright), var(--rb-gold)); color: #1a1505; }
.badge-deputy { background: linear-gradient(180deg, #c8d4e0, #8fa3b8); color: #10151c; }
.badge-rank { background: #2f4a7a; color: #cfe0ff; }
.badge-member { background: #24303d; color: var(--rb-muted); }

.avatar-lg {
  width: 96px; height: 96px; border-radius: 50%;
  border: 3px solid var(--rb-gold);
  box-shadow: 0 0 20px rgba(201, 162, 39, .35);
}

/* ---------- Sonstiges ---------- */
.alert-warning {
  background: rgba(201, 162, 39, .12);
  border: 1px solid var(--rb-gold-dim);
  color: var(--rb-gold-bright);
}
footer {
  background: #0d0f14;
  border-top: 1px solid var(--rb-gold-dim) !important;
  color: var(--rb-muted);
}
footer a { color: var(--rb-gold); text-decoration: none; }
footer a:hover { color: var(--rb-gold-bright); }
.credits { font-size: .8rem; color: #6b6455; }
.credits a { color: #6b6455; text-decoration: underline; }

@media (max-width: 576px) {
  .hero .display-3 { font-size: 2.4rem; }
}

/* ---------- Tabs ---------- */
.nav-tabs { border-bottom-color: var(--rb-gold-dim); }
.nav-tabs .nav-link {
  color: var(--rb-muted);
  border: 1px solid transparent;
  letter-spacing: .05em;
  font-family: 'Cinzel', serif;
}
.nav-tabs .nav-link:hover { color: var(--rb-gold-bright); border-color: var(--rb-gold-dim) var(--rb-gold-dim) transparent; }
.nav-tabs .nav-link.active {
  color: var(--rb-gold-bright) !important;
  background: var(--rb-panel);
  border-color: var(--rb-gold-dim) var(--rb-gold-dim) var(--rb-panel) !important;
}
.nav-pills .nav-link {
  color: var(--rb-muted);
  border: 1px solid var(--rb-gold-dim);
  margin-right: .4rem;
  font-family: 'Cinzel', serif;
  font-size: .9rem;
}
.nav-pills .nav-link:hover { color: var(--rb-gold-bright); }
.nav-pills .nav-link.active {
  background: linear-gradient(180deg, var(--rb-gold-bright), var(--rb-gold)) !important;
  color: #1a1505 !important;
}

/* Footer immer unten, Platz darueber fuer den Content */
footer { margin-top: auto; }

/* ---------- Footer ---------- */
.footer-head {
  color: var(--rb-gold-bright);
  font-family: 'Cinzel', serif;
  letter-spacing: .08em;
  font-size: .85rem;
  text-transform: uppercase;
  margin-bottom: .75rem;
}
.footer-links li { margin-bottom: .35rem; }
.footer-links a {
  color: var(--rb-text);
  text-decoration: none;
  transition: color .15s, padding-left .15s;
}
.footer-links a:hover { color: var(--rb-gold-bright); padding-left: 6px; }
footer hr { border-color: var(--rb-gold-dim); opacity: .5; }
