@import url('https://fonts.googleapis.com/css2?family=Cinzel:wght@700;800;900&family=Inter:wght@400;500;600;700;800&display=swap');

/* --- NEWS TICKER --- */
.news-ticker {
  background: rgba(0, 0, 0, 0.4);
  border: 1px solid rgba(255, 255, 255, 0.1);
  border-radius: 8px;
  padding: 8px 15px;
  margin-bottom: 20px;
  display: flex;
  align-items: center;
  gap: 15px;
  overflow: hidden;
  font-size: 0.9rem;
}

.news-label {
  color: var(--neon-yellow);
  font-weight: 800;
  white-space: nowrap;
  font-family: var(--font-heading);
}

.news-scroll {
  white-space: nowrap;
  color: #ccc;
  font-style: italic;
  flex: 1;
}

.news-item {
  display: inline-block;
  margin-right: 50px;
}

/* --- GLOBAL STYLES --- */
:root {
  --primary-bg: #0a0b14;
  --secondary-bg: #12141f;
  --accent-blue: #38bdf8;
  --accent-purple: #c084fc;
  --text-main: #f1f5f9;
  --text-muted: #94a3b8;
  --card-glow: rgba(56, 189, 248, 0.3);
  --border-color: rgba(148, 163, 184, 0.15);
  --neon-cyan: #22d3ee;
  --neon-purple: #d8b4fe;
  --neon-yellow: #fbbf24;
  --neon-red: #f87171;
  --neon-green: #4ade80;
  --font-heading: 'Cinzel', serif;
  --font-main: 'Inter', -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
}

* {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
}

body {
  background: var(--primary-bg);
  color: var(--text-main);
  font-family: var(--font-main);
  line-height: 1.6;
  min-height: 100vh;
  display: flex;
  justify-content: center;
  align-items: flex-start;
  padding: 24px;
}

.container {
  width: 100%;
  max-width: 1200px;
  margin: 0 auto;
}

/* --- DASHBOARD LAYOUT --- */
.dashboard {
  background: var(--secondary-bg);
  border: 2px solid rgba(155, 89, 255, 0.25);
  border-radius: 24px;
  padding: 32px;
  box-shadow: 0 0 40px rgba(0, 0, 0, 0.6), inset 0 0 20px rgba(155, 89, 255, 0.08);
  display: flex;
  flex-direction: column;
  transition: all 0.3s ease;
  position: relative;
}

.dashboard.cooldown-active {
  animation: border-glow 2s infinite alternate;
  border-color: var(--neon-cyan);
  box-shadow: 0 0 30px rgba(0, 242, 255, 0.4), inset 0 0 20px rgba(0, 242, 255, 0.1);
}

@keyframes border-glow {
  0% { border-color: var(--neon-cyan); box-shadow: 0 0 15px rgba(0, 242, 255, 0.3); }
  100% { border-color: var(--neon-purple); box-shadow: 0 0 35px rgba(188, 19, 254, 0.5); }
}

.dash-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 30px;
  padding-bottom: 20px;
  border-bottom: 1px solid rgba(255, 255, 255, 0.05);
}

.dash-header .left {
  display: flex;
  align-items: center;
  gap: 15px;
}

.avatar {
  font-size: 2.5rem;
  filter: drop-shadow(0 0 10px rgba(0, 210, 255, 0.5));
}

.dash-header .title {
  font-size: 2.4rem;
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: 1.5px;
  background: linear-gradient(90deg, #ffcc33, #ffb347);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
  text-shadow: 0 0 15px rgba(255, 204, 51, 0.3);
  font-family: var(--font-heading);
}

.dash-header .subtitle {
  color: #8a8fb5;
  font-size: 1rem;
  font-family: var(--font-heading);
  margin-left: 10px;
  font-weight: bold;
}

.user-badge {
  background: rgba(255, 255, 255, 0.05);
  padding: 8px 20px;
  border-radius: 30px;
  border: 1px solid rgba(255, 255, 255, 0.1);
  font-weight: bold;
  letter-spacing: 1px;
}

/* --- GRID SYSTEM --- */
.grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 24px;
  margin-bottom: 32px;
}

.card {
  background: rgba(30, 32, 50, 0.7);
  border: 1px solid rgba(56, 189, 248, 0.25);
  border-radius: 16px;
  padding: 20px;
  min-height: 100px;
  transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
  position: relative;
  overflow: hidden;
  backdrop-filter: blur(8px);
}

.card:hover {
  border-color: rgba(56, 189, 248, 0.4);
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.3);
}

.card.glow {
  box-shadow: 0 0 20px rgba(56, 189, 248, 0.15);
}

.card.glow:hover {
  border-color: var(--accent-blue);
  box-shadow: 0 0 30px rgba(56, 189, 248, 0.35);
  transform: translateY(-3px) scale(1.02);
}

.card.wide-2 {
  grid-column: span 2;
}

/* --- ACTIONS / BUTTONS --- */
.actions {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(160px, 1fr));
  gap: 12px;
  margin-top: 20px;
  padding: 20px;
  background: rgba(255, 255, 255, 0.02);
  border-radius: 18px;
  border: 1px solid rgba(255, 255, 255, 0.05);
}

.btn {
  padding: 14px 12px;
  border-radius: 12px;
  border: none;
  cursor: pointer;
  font-weight: 700;
  font-size: 0.9rem;
  text-align: center;
  text-transform: none;
  font-family: var(--font-main);
  transition: all 0.25s cubic-bezier(0.4, 0, 0.2, 1);
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  box-shadow: 0 4px 16px rgba(0, 0, 0, 0.3);
  position: relative;
  overflow: hidden;
  z-index: 1;
}

/* Modernes Lauflicht (Neon Border) */
.btn::before {
  content: '';
  position: absolute;
  top: -50%;
  left: -50%;
  width: 200%;
  height: 200%;
  background: conic-gradient(
    from 0deg,
    transparent 0%,
    transparent 25%,
    transparent 50%,
    var(--btn-glow, var(--accent-blue)) 100%
  );
  animation: rotateBorder 3s linear infinite;
  z-index: -2;
  filter: blur(8px); /* Macht den Übergang weicher/flüssiger */
}

.btn::after {
  content: '';
  position: absolute;
  inset: 1.5px; /* Etwas dünnerer Rand für elegantere Optik */
  background: inherit;
  border-radius: 11px;
  z-index: -1;
}

@keyframes rotateBorder {
  from { transform: rotate(0deg); }
  to { transform: rotate(360deg); }
}

.btn:hover {
  transform: translateY(-2px);
  box-shadow: 0 6px 20px rgba(0, 0, 0, 0.4);
}

.btn:hover::before {
  animation-duration: 1s;
  filter: blur(12px) brightness(1.8);
}

.btn:active {
  transform: translateY(0);
}

.btn-cyan {
  --btn-glow: var(--neon-cyan);
  background: linear-gradient(135deg, #0ea5e9, #0284c7);
  border-bottom: 4px solid #0369a1;
}
.btn-purple {
  --btn-glow: var(--neon-purple);
  background: linear-gradient(135deg, #a855f7, #9333ea);
  border-bottom: 4px solid #7e22ce;
}
.btn-yellow {
  --btn-glow: var(--neon-yellow);
  background: linear-gradient(135deg, #f59e0b, #d97706);
  border-bottom: 4px solid #b45309;
}
.btn-red {
  --btn-glow: var(--neon-red);
  background: linear-gradient(135deg, #ef4444, #dc2626);
  border-bottom: 4px solid #b91c1c;
}
.btn-green {
  --btn-glow: var(--neon-green);
  background: linear-gradient(135deg, #22c55e, #16a34a);
  border-bottom: 4px solid #15803d;
}

#btn-robbery {
  --btn-glow: #ffd700; /* Gold-Glow */
  background: linear-gradient(135deg, #ef4444, #991b1b); /* Dunkleres Rot für Kontrast */
  box-shadow: 0 0 15px rgba(255, 215, 0, 0.2);
}

.btn-badge {
  position: absolute;
  top: -8px;
  right: -8px;
  font-size: 0.75em;
  padding: 2px 8px;
  border-radius: 999px;
  background: rgba(0,0,0,0.8);
  color: #fff;
  border: 1px solid rgba(255,255,255,0.15);
  pointer-events: none;
  box-shadow: 0 2px 6px rgba(0,0,0,0.3);
}

.npc-grid-wrapper {
  background:
    radial-gradient(1000px 300px at 0% 0%, rgba(155,89,255,0.12), transparent 60%),
    radial-gradient(800px 260px at 100% 0%, rgba(96,165,250,0.10), transparent 60%),
    linear-gradient(180deg, rgba(155,89,255,0.08), rgba(0,0,0,0.15));
  border: 1px solid rgba(155,89,255,0.18);
  border-radius: 14px;
  padding: 18px;
}

.npc-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));
  gap: 26px;
}

.npc-hub {
  padding: 26px 28px 24px;
}

.npc-hub-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  margin-bottom: 22px;
}

.npc-hub-title {
  display: flex;
  align-items: center;
  gap: 14px;
}

.npc-hub-title h3 {
  margin: 0;
  font-size: 1.2rem;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.npc-hub-title p {
  margin: 3px 0 0;
  font-size: 0.82rem;
  color: #9ca3af;
}

.npc-hub-icon {
  width: 40px;
  height: 40px;
  border-radius: 999px;
  display: grid;
  place-items: center;
  font-size: 1.3rem;
  background: radial-gradient(circle at 30% 20%, #6366f1, transparent 65%);
  box-shadow:
    0 0 20px rgba(79, 70, 229, 0.6),
    0 0 40px rgba(14, 165, 233, 0.45);
}

.npc-hub-pill {
  padding: 8px 14px;
  border-radius: 999px;
  font-size: 0.78rem;
  color: #e5e7eb;
  background: radial-gradient(circle at 0% 0%, rgba(45, 212, 191, 0.24), transparent 55%), rgba(15, 23, 42, 0.9);
  border: 1px solid rgba(148, 163, 184, 0.55);
  box-shadow: 0 10px 30px rgba(15, 23, 42, 0.8);
}

.npc-hub-body {
  border-radius: 22px;
  padding: 18px 18px 10px;
  border: 1px solid rgba(148, 163, 184, 0.4);
  background:
    radial-gradient(circle at 0% 0%, rgba(96, 165, 250, 0.18), transparent 60%),
    radial-gradient(circle at 100% 100%, rgba(129, 140, 248, 0.18), transparent 60%),
    rgba(15, 23, 42, 0.96);
  box-shadow:
    0 25px 60px rgba(15, 23, 42, 0.9),
    0 0 0 1px rgba(15, 23, 42, 0.9);
}

.npc-hub-layout {
  display: flex;
  flex-direction: column;
  gap: 18px;
}

.npc-hub-sidebar {
  border-radius: 18px;
  padding: 14px 14px 12px;
  background: radial-gradient(circle at 0% 0%, rgba(56, 189, 248, 0.14), transparent 60%), rgba(15, 23, 42, 0.9);
  border: 1px solid rgba(148, 163, 184, 0.6);
  box-shadow: 0 16px 40px rgba(15, 23, 42, 0.95);
  display: grid;
  gap: 12px;
}

.npc-hub-sidebar-section {
  display: grid;
  gap: 4px;
}

.npc-hub-stat-label {
  font-size: 0.74rem;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: rgba(148, 163, 184, 0.9);
}

.npc-hub-stat-value {
  font-size: 1.3rem;
  font-weight: 800;
  color: #e5e7eb;
}

.npc-hub-stat-sub {
  font-size: 0.78rem;
  color: #9ca3af;
}

.npc-hub-filter-group {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin-top: 4px;
}

.npc-hub-filter-chip {
  padding: 4px 10px;
  border-radius: 999px;
  font-size: 0.75rem;
  border: 1px solid rgba(148, 163, 184, 0.6);
  background: rgba(15, 23, 42, 0.9);
  color: #e5e7eb;
  cursor: default;
}

.npc-hub-filter-chip.is-active {
  background: linear-gradient(135deg, rgba(56, 189, 248, 0.2), rgba(129, 140, 248, 0.35));
  border-color: rgba(129, 140, 248, 0.9);
}

.npc-hub-legend {
  margin-top: 6px;
  padding-top: 8px;
  border-top: 1px dashed rgba(148, 163, 184, 0.6);
  font-size: 0.76rem;
  color: rgba(148, 163, 184, 0.96);
}

.npc-hub-main {
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.npc-hub-main-header {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  gap: 10px;
}

.npc-hub-main-title {
  font-size: 0.86rem;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: rgba(148, 163, 184, 0.96);
}

.npc-hub-main-subtitle {
  font-size: 0.8rem;
  color: #9ca3af;
}

@media (min-width: 900px) {
  .npc-hub-layout {
    flex-direction: row;
    align-items: flex-start;
  }

  .npc-hub-sidebar {
    width: 230px;
  }
}

.npc-card {
  position: relative;
  padding: 18px;
  border-radius: 18px;
  border: 1px solid rgba(148, 163, 184, 0.45);
  background:
    radial-gradient(circle at 0% 0%, rgba(59, 130, 246, 0.18), transparent 60%),
    radial-gradient(circle at 100% 100%, rgba(129, 140, 248, 0.26), transparent 60%),
    linear-gradient(180deg, rgba(15, 23, 42, 0.96), rgba(15, 23, 42, 0.90));
  box-shadow:
    0 14px 35px rgba(15, 23, 42, 0.9),
    0 0 40px rgba(15, 23, 42, 0.9);
  backdrop-filter: blur(10px);
  transform: translateY(0) scale(1);
  transition: transform 160ms ease, box-shadow 160ms ease, border-color 160ms ease;
  overflow: hidden;
}
.npc-card:hover {
  transform: translateY(-4px) scale(1.01);
  box-shadow:
    0 20px 45px rgba(15, 23, 42, 0.95),
    0 0 55px rgba(59, 130, 246, 0.65);
  border-color: rgba(129, 140, 248, 0.8);
}

.npc-card-glow {
  position: absolute;
  inset: -1px;
  border-radius: inherit;
  background:
    radial-gradient(circle at 0% 0%, rgba(129, 140, 248, 0.22), transparent 60%),
    radial-gradient(circle at 100% 100%, rgba(56, 189, 248, 0.22), transparent 60%);
  opacity: 0.8;
  pointer-events: none;
  z-index: 0;
}

.npc-card-header,
.npc-info-box,
.npc-card-actions {
  position: relative;
  z-index: 1;
}

.npc-card-actions {
  margin-top: 10px;
  padding-top: 10px;
  border-top: 1px solid rgba(31, 41, 55, 0.9);
  background: linear-gradient(180deg, rgba(15, 23, 42, 0.0), rgba(15, 23, 42, 0.85));
  border-radius: 14px;
}

.npc-emoji-badge {
  width: 54px;
  height: 54px;
  border-radius: 999px;
  display: grid;
  place-items: center;
  font-size: 2.0em;
  border: 1px solid #7c3aed44;
  background: radial-gradient(60% 60% at 30% 30%, #7c3aed22, transparent 70%);
}

.npc-faction-badge {
  font-size: 0.75em;
  padding: 4px 10px;
  border-radius: 999px;
  color: #cbd5e1;
  letter-spacing: 0.5px;
  border: 1px solid rgba(255,255,255,0.15);
}

.npc-info-box {
  margin-bottom: 14px;
  background: rgba(0,0,0,0.28);
  padding: 12px;
  border-radius: 12px;
}

.npc-info-row {
  display: flex;
  justify-content: space-between;
  align-items: center;
  font-size: 0.82em;
  margin-bottom: 8px;
}

.npc-info-label {
  color: #9ca3af;
}

.npc-info-meta {
  display: flex;
  justify-content: space-between;
  font-size: 0.78rem;
  color: #9ca3af;
  margin-top: 8px;
}

.npc-info-meta strong {
  color: #e5e7eb;
}
.npc-mood {
  padding: 3px 10px;
  border-radius: 999px;
  box-shadow: inset 0 0 0 1px rgba(255,255,255,0.15);
}

.npc-progress-bar {
  background: #2d2d2d;
  height: 10px;
  border-radius: 7px;
  overflow: hidden;
  position: relative;
}
.npc-progress-fill {
  height: 100%;
  background: linear-gradient(90deg, #a78bfa, #7c3aed, #a78bfa);
  background-size: 200% 100%;
  animation: npcProgressShift 2.5s linear infinite, npcGlow 3s ease-in-out infinite alternate;
  box-shadow: 0 0 10px #7c3aed80;
  transition: width 600ms ease;
}
.npc-progress-label {
  position: absolute;
  top: 50%;
  right: 8px;
  transform: translateY(-50%);
  font-size: 0.75em;
  color: #a1a1aa;
}
@keyframes npcProgressShift {
  0% { background-position: 0% 50% }
  100% { background-position: 100% 50% }
}
@keyframes npcGlow {
  from { box-shadow: 0 0 8px #7c3aed60 }
  to { box-shadow: 0 0 16px #7c3aedA0 }
}

.npc-card-header {
  display: flex;
  align-items: center;
  gap: 14px;
  margin-bottom: 14px;
}

.npc-card-header-main {
  flex: 1;
  position: relative;
  z-index: 1;
}

.npc-card-name-row {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 8px;
}

.npc-card-name {
  font-weight: 700;
  color: #fbbf24;
  font-size: 1.1rem;
}

.npc-card-subtitle {
  color: #a1a1aa;
  font-size: 0.86rem;
  margin-top: 2px;
}

.npc-card-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin-top: 8px;
}

.npc-card-tag {
  font-size: 0.72rem;
  padding: 3px 8px;
  border-radius: 999px;
  border: 1px solid rgba(148, 163, 184, 0.5);
  color: #e5e7eb;
  background: rgba(15, 23, 42, 0.8);
}

.npc-card-tag-level {
  border-color: rgba(251, 191, 36, 0.7);
}

.npc-card-tag-rel {
  border-color: rgba(56, 189, 248, 0.7);
}

.npc-card-actions {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px;
  margin-top: 10px;
}

.npc-card-placeholder {
  border-radius: 10px;
  background: rgba(15, 23, 42, 0.85);
  border: 1px dashed rgba(75, 85, 99, 0.7);
}

.npc-action-main {
  display: inline-flex;
  align-items: center;
  gap: 6px;
}

.npc-action-icon {
  font-size: 1rem;
}

.npc-action-text {
  font-size: 0.86rem;
}

.npc-action-chip {
  font-size: 0.7rem;
  padding: 3px 7px;
  border-radius: 999px;
  background: rgba(34, 197, 94, 0.1);
  border: 1px solid rgba(34, 197, 94, 0.6);
  color: #bbf7d0;
}

.npc-btn-secondary {
  background: #374151;
}

.npc-btn-success {
  background: #059669;
}

.npc-btn-cyan {
  background: #0891b2;
}

#btn-npcs {
  --btn-glow: #6366f1;
}

.npc-overlay {
  position: fixed;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 23010;
  background: radial-gradient(circle at top, rgba(99, 102, 241, 0.3), transparent 55%), rgba(15, 23, 42, 0.96);
  backdrop-filter: blur(10px);
}

.npc-dialogue-content {
  max-width: 780px;
  width: calc(100% - 40px);
}

.npc-dialogue-inner {
  position: relative;
  padding: 22px 22px 20px;
  border-radius: 24px;
  background:
    radial-gradient(circle at 0% 0%, rgba(56, 189, 248, 0.26), transparent 60%),
    radial-gradient(circle at 100% 100%, rgba(129, 140, 248, 0.3), transparent 60%),
    rgba(15, 23, 42, 0.96);
  border: 1px solid rgba(148, 163, 184, 0.9);
  box-shadow:
    0 0 50px rgba(79, 70, 229, 0.7),
    0 0 90px rgba(14, 165, 233, 0.6);
  overflow: hidden;
}

.npc-dialogue-grid {
  display: flex;
  flex-direction: column;
  gap: 18px;
}

.npc-dialogue-side {
  position: relative;
}

.npc-dialogue-side-left {
  flex: 0 0 260px;
}

.npc-dialogue-side-right {
  flex: 1;
}

@media (min-width: 800px) {
  .npc-dialogue-grid {
    flex-direction: row;
    align-items: stretch;
  }
}

.npc-dialogue-header {
  display: flex;
  align-items: center;
  gap: 16px;
  margin-bottom: 12px;
}

.npc-dialogue-avatar {
  width: 56px;
  height: 56px;
  border-radius: 999px;
  display: grid;
  place-items: center;
  font-size: 2.2rem;
  background: radial-gradient(circle at 30% 20%, #e5e7eb, var(--npc-accent, #6366f1));
  box-shadow: 0 0 25px rgba(129, 140, 248, 0.8);
}

.npc-dialogue-meta {
  flex: 1;
}

.npc-dialogue-title {
  font-size: 0.8rem;
  letter-spacing: 0.24em;
  text-transform: uppercase;
  color: rgba(226, 232, 240, 0.9);
}

.npc-dialogue-name {
  margin-top: 4px;
  font-size: 1.4rem;
  font-weight: 800;
  letter-spacing: 0.08em;
  color: #f9fafb;
}

.npc-dialogue-mood-chip {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 2px;
  font-size: 0.78rem;
}

.npc-dialogue-mood-label {
  padding: 3px 10px;
  border-radius: 999px;
  background: rgba(15, 23, 42, 0.8);
  border: 1px solid rgba(148, 163, 184, 0.7);
  color: #e5e7eb;
}

.npc-dialogue-mood-value {
  color: #a5b4fc;
}

.npc-dialogue-moodbar {
  margin-bottom: 12px;
}

.npc-dialogue-moodbar-track {
  width: 100%;
  height: 8px;
  border-radius: 999px;
  background: rgba(15, 23, 42, 0.9);
  overflow: hidden;
}

.npc-dialogue-moodbar-fill {
  height: 100%;
  border-radius: 999px;
  background: linear-gradient(90deg, #22c55e, #6366f1, #ef4444);
  background-size: 200% 100%;
  animation: npcProgressShift 3s linear infinite;
}

.npc-dialogue-text {
  margin-top: 6px;
  font-size: 0.95rem;
  color: rgba(226, 232, 240, 0.96);
  line-height: 1.5;
  min-height: 60px;
}

.npc-dialogue-rewards {
  margin-top: 14px;
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.npc-dialogue-reward-pill {
  padding: 4px 10px;
  border-radius: 999px;
  background: rgba(15, 23, 42, 0.8);
  border: 1px solid rgba(129, 140, 248, 0.7);
  font-size: 0.8rem;
  color: #e5e7eb;
}

.npc-dialogue-cooldown {
  margin-top: 14px;
  padding: 8px;
  border-radius: 14px;
  background:
    linear-gradient(135deg, rgba(56, 189, 248, 0.08), rgba(79, 70, 229, 0.16)),
    rgba(15, 23, 42, 0.9);
  border: 1px solid rgba(129, 140, 248, 0.6);
  box-shadow:
    0 0 20px rgba(56, 189, 248, 0.35),
    0 0 35px rgba(79, 70, 229, 0.4);
}

.npc-dialogue-cooldown .btn {
  width: 100%;
  justify-content: space-between;
  padding-inline: 14px;
}

.npc-dialogue-hint {
  margin-top: 14px;
  font-size: 0.8rem;
  color: rgba(196, 181, 253, 0.96);
}

.npc-dialogue-context {
  margin-top: 14px;
  padding-top: 10px;
  border-top: 1px dashed rgba(148, 163, 184, 0.5);
  display: flex;
  flex-direction: column;
  gap: 6px;
  font-size: 0.8rem;
  color: rgba(209, 213, 219, 0.96);
}

.npc-dialogue-context-row {
  display: flex;
  gap: 8px;
}

.npc-dialogue-context-label {
  min-width: 90px;
  padding: 2px 8px;
  border-radius: 999px;
  background: rgba(15, 23, 42, 0.85);
  border: 1px solid rgba(129, 140, 248, 0.6);
  color: #e5e7eb;
}

.npc-dialogue-context-text {
  flex: 1;
  color: rgba(226, 232, 240, 0.96);
}

#btn-robbery:hover {
  box-shadow: 0 0 25px rgba(255, 215, 0, 0.4);
}
.btn-gray { 
  --btn-glow: rgba(255,255,255,0.3);
  background: linear-gradient(135deg, #4b5563, #374151); 
  border-bottom: 4px solid #1f2937;
}

.btn-discord {
  --btn-glow: #fff;
  background: #5865F2;
  border-bottom: 4px solid #3e47a8;
}

/* Spezial-Klasse für Cooldowns (Lauflicht pausiert oder andersfarbig wenn gewünscht) */
.btn-cooldown::before {
  animation-duration: 10s;
  opacity: 0.3;
}

/* Cooldown-Progress als Balken innerhalb des Buttons */
.btn-cooldown::after {
  content: '';
  position: absolute;
  bottom: 0;
  left: 0;
  height: 100%;
  width: var(--progress, 0%);
  background: rgba(0, 0, 0, 0.25);
  z-index: 1;
  transition: width 1s linear;
  pointer-events: none;
}

/* Text über dem Progress-Overlay halten */
.btn-cooldown span {
  position: relative;
  z-index: 2;
}

/* --- PROGRESS BARS - Compact --- */
.progress {
  background: rgba(0, 0, 0, 0.4);
  height: 10px !important;
  border-radius: 5px;
  margin-top: 6px;
  position: relative;
  overflow: hidden;
  border: 1px solid rgba(255, 255, 255, 0.05);
}

.bar {
  height: 100%;
  border-radius: 4px;
  transition: width 0.5s cubic-bezier(0.4, 0, 0.2, 1);
  position: relative;
}

.bar-green { 
  background: linear-gradient(90deg, #10b981, #34d399); 
  box-shadow: 0 0 6px rgba(16, 185, 129, 0.3);
}
.bar-purple { 
  background: linear-gradient(90deg, #a855f7, #c084fc); 
  box-shadow: 0 0 6px rgba(168, 85, 247, 0.3);
}

.pct {
  position: absolute;
  right: 10px;
  top: 50%;
  transform: translateY(-50%);
  font-size: 0.65rem;
  color: #fff;
  font-weight: 800;
  z-index: 2;
  text-shadow: 0 1px 2px rgba(0, 0, 0, 0.5);
}

.label {
  font-size: 0.8rem;
  color: var(--text-muted);
  margin-bottom: 6px;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.5px;
}

.value {
  font-size: 1.3rem;
  font-weight: 900;
  color: #fff;
}

.recycling-modal-root {
  display: flex;
  flex-direction: column;
  gap: 16px;
}

.recycling-modal-header {
  display: flex;
  align-items: center;
  gap: 12px;
}

.recycling-modal-icon {
  font-size: 1.8rem;
  filter: drop-shadow(0 0 14px rgba(74, 222, 128, 0.9));
}

.recycling-title {
  font-family: var(--font-heading);
  letter-spacing: 0.16em;
  text-transform: uppercase;
  font-size: 0.9rem;
  color: #e5e7eb;
}

.recycling-subtitle {
  font-size: 0.8rem;
  color: var(--text-muted);
}

.recycling-description {
  font-size: 0.9rem;
  color: #bbf7d0;
}

.recycling-tabs-row {
  display: flex;
  gap: 12px;
  margin-bottom: 2px;
}

.recycling-panel-card {
  margin-top: 4px;
  padding: 18px 18px 16px;
  display: grid;
  grid-template-columns: minmax(0, 220px) minmax(0, 1fr);
  gap: 18px;
  background: radial-gradient(circle at top, rgba(34, 197, 94, 0.22), transparent 60%), rgba(15, 23, 42, 0.95);
  border-color: rgba(34, 197, 94, 0.6);
  box-shadow:
    0 0 28px rgba(34, 197, 94, 0.45),
    0 0 68px rgba(56, 189, 248, 0.3);
}

.recycling-core-visual {
  position: relative;
  min-height: 140px;
  border-radius: 22px;
  overflow: hidden;
  background: radial-gradient(circle at center, rgba(34, 197, 94, 0.18), transparent 70%);
  display: flex;
  align-items: center;
  justify-content: center;
}

.recycling-core-glow {
  position: absolute;
  inset: 10%;
  border-radius: 22px;
  background:
    radial-gradient(circle at 20% 10%, rgba(190, 242, 100, 0.35), transparent 60%),
    radial-gradient(circle at 80% 70%, rgba(52, 211, 153, 0.4), transparent 70%);
  filter: blur(16px);
  opacity: 0.9;
  animation: fusion-core-pulse 3.2s ease-in-out infinite;
}

.recycling-core-ring {
  position: absolute;
  border-radius: 999px;
  border: 1px solid rgba(190, 242, 100, 0.7);
}

.recycling-core-ring-outer {
  inset: 14%;
  animation: fusion-orbit-rotate 18s linear infinite;
}

.recycling-core-ring-inner {
  inset: 30%;
  border-color: rgba(52, 211, 153, 0.8);
  animation: fusion-orbit-rotate 12s linear infinite reverse;
}

.recycling-core-arrow {
  position: absolute;
  width: 36px;
  height: 36px;
  border-radius: 999px;
  border: 1px solid rgba(226, 232, 240, 0.35);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1rem;
  color: #bbf7d0;
}

.recycling-core-arrow-1 {
  top: 16%;
  left: 16%;
}

.recycling-core-arrow-2 {
  bottom: 16%;
  right: 16%;
}

.recycling-core-arrow-3 {
  top: 50%;
  right: 24%;
}

.recycling-core-symbol {
  position: relative;
  font-size: 2.2rem;
  text-shadow:
    0 0 12px rgba(52, 211, 153, 0.95),
    0 0 26px rgba(190, 242, 100, 0.9);
}

.recycling-rows {
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.recycling-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 10px 10px;
  border-radius: 12px;
  background: linear-gradient(90deg, rgba(15, 118, 110, 0.4), rgba(15, 23, 42, 0.8));
  border: 1px solid rgba(45, 212, 191, 0.5);
}

.recycling-row-main {
  flex: 1;
  min-width: 0;
}

.recycling-row-title {
  font-weight: 700;
  color: #e5e7eb;
  margin-bottom: 2px;
}

.recycling-row-meta {
  font-size: 0.8rem;
  color: rgba(226, 232, 240, 0.85);
}

.recycling-row-progress {
  margin-top: 6px;
  width: 100%;
  height: 5px;
  border-radius: 999px;
  background: rgba(15, 23, 42, 0.8);
  overflow: hidden;
}

.recycling-row-progress-inner {
  height: 100%;
  border-radius: 999px;
  background: linear-gradient(90deg, #22c55e, #a3e635);
  box-shadow: 0 0 12px rgba(52, 211, 153, 0.8);
}

.recycling-row-btn {
  min-width: 170px;
}

.recycling-overlay {
  position: fixed;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 23000;
  background: radial-gradient(circle at top, rgba(34, 197, 94, 0.32), transparent 55%), rgba(15, 23, 42, 0.96);
  backdrop-filter: blur(8px);
}

.recycling-result-content {
  max-width: 520px;
  width: calc(100% - 40px);
}

.recycling-result-inner {
  position: relative;
  padding: 22px 22px 20px;
  border-radius: 22px;
  background: radial-gradient(circle at top, rgba(34, 197, 94, 0.45), rgba(15, 23, 42, 0.96));
  border: 1px solid rgba(148, 163, 184, 0.7);
  box-shadow:
    0 0 40px rgba(34, 197, 94, 0.6),
    0 0 80px rgba(56, 189, 248, 0.5);
  overflow: hidden;
}

.recycling-result-core {
  margin-bottom: 16px;
}

.recycling-result-title {
  font-size: 0.9rem;
  letter-spacing: 0.28em;
  text-transform: uppercase;
  color: rgba(226, 232, 240, 0.9);
}

.recycling-result-main {
  margin-top: 8px;
  font-size: 1.4rem;
  font-weight: 800;
  letter-spacing: 0.06em;
  color: #f9fafb;
}

.recycling-result-sub {
  margin-top: 4px;
  font-size: 0.9rem;
  color: rgba(190, 242, 100, 0.95);
}

.recycling-result-message {
  margin-top: 10px;
  font-size: 0.9rem;
  color: rgba(209, 213, 219, 0.96);
}

.recycling-result-consumed {
  margin-top: 10px;
  font-size: 0.8rem;
  text-transform: uppercase;
  letter-spacing: 0.16em;
  color: rgba(148, 163, 184, 0.96);
}

.recycling-result-hint {
  margin-top: 14px;
  font-size: 0.8rem;
  color: rgba(190, 242, 100, 0.96);
}

.fusion-modal-root {
  display: flex;
  flex-direction: column;
  gap: 16px;
}

.fusion-modal-header {
  display: flex;
  align-items: center;
  gap: 12px;
}

.fusion-modal-icon {
  font-size: 1.8rem;
  filter: drop-shadow(0 0 14px rgba(180, 83, 255, 0.8));
}

.fusion-title {
  font-family: var(--font-heading);
  letter-spacing: 0.16em;
  text-transform: uppercase;
  font-size: 0.9rem;
  color: #e5e7eb;
}

.fusion-subtitle {
  font-size: 0.8rem;
  color: var(--text-muted);
}

.fusion-description {
  font-size: 0.9rem;
  color: #cbd5f5;
}

.fusion-tabs-row {
  display: flex;
  gap: 12px;
  margin-bottom: 2px;
}

.fusion-panel-card {
  margin-top: 4px;
  padding: 18px 18px 16px;
  display: grid;
  grid-template-columns: minmax(0, 220px) minmax(0, 1fr);
  gap: 18px;
  background: radial-gradient(circle at top, rgba(180, 83, 255, 0.22), transparent 60%), rgba(15, 23, 42, 0.9);
  border-color: rgba(180, 83, 255, 0.5);
  box-shadow:
    0 0 28px rgba(59, 130, 246, 0.35),
    0 0 68px rgba(147, 51, 234, 0.35);
}

.fusion-core-visual {
  position: relative;
  min-height: 140px;
  border-radius: 999px;
  overflow: hidden;
  background: radial-gradient(circle at center, rgba(56, 189, 248, 0.12), transparent 70%);
  display: flex;
  align-items: center;
  justify-content: center;
}

.fusion-core-glow {
  position: absolute;
  inset: 12%;
  border-radius: 999px;
  background: radial-gradient(circle at center, rgba(236, 72, 153, 0.4), transparent 70%);
  filter: blur(18px);
  opacity: 0.9;
  animation: fusion-core-pulse 3s ease-in-out infinite;
}

.fusion-core-ring {
  position: absolute;
  border-radius: 999px;
  border: 1px solid rgba(244, 244, 245, 0.35);
}

.fusion-core-ring-outer {
  inset: 12%;
  animation: fusion-orbit-rotate 16s linear infinite;
}

.fusion-core-ring-inner {
  inset: 26%;
  border-color: rgba(129, 140, 248, 0.7);
  animation: fusion-orbit-rotate 11s linear infinite reverse;
}

.fusion-core-orb {
  position: absolute;
  width: 18px;
  height: 18px;
  border-radius: 999px;
  background: radial-gradient(circle at 30% 20%, #f9fafb, #a855f7);
  box-shadow: 0 0 20px rgba(168, 85, 247, 0.9);
}

.fusion-core-orb-1 {
  top: 18%;
  left: 20%;
}

.fusion-core-orb-2 {
  bottom: 18%;
  right: 18%;
}

.fusion-core-orb-3 {
  top: 52%;
  right: 26%;
}

.fusion-core-symbol {
  position: relative;
  font-size: 2.4rem;
  text-shadow:
    0 0 12px rgba(236, 72, 153, 0.9),
    0 0 28px rgba(14, 165, 233, 0.9);
}

.fusion-form {
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.fusion-label {
  font-size: 0.85rem;
  color: var(--text-muted);
  margin-bottom: 4px;
}

.fusion-select {
  width: 100%;
  padding: 6px 8px;
  background: #020617;
  color: #e5e7eb;
  border-radius: 8px;
  border: 1px solid rgba(148, 163, 184, 0.5);
}

.fusion-start-btn {
  width: 100%;
  margin-top: 8px;
  letter-spacing: 0.08em;
}

.fusion-hint-text {
  margin-top: 4px;
  font-size: 0.78rem;
  color: rgba(148, 163, 184, 0.95);
}

.fusion-overlay {
  position: fixed;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 23000;
  background: radial-gradient(circle at top, rgba(56, 189, 248, 0.3), transparent 55%), rgba(15, 23, 42, 0.96);
  backdrop-filter: blur(8px);
}

.fusion-result-content {
  max-width: 520px;
  width: calc(100% - 40px);
}

.fusion-result-inner {
  position: relative;
  padding: 22px 22px 20px;
  border-radius: 22px;
  background: radial-gradient(circle at top, rgba(56, 189, 248, 0.38), rgba(15, 23, 42, 0.95));
  border: 1px solid rgba(148, 163, 184, 0.7);
  box-shadow:
    0 0 40px rgba(56, 189, 248, 0.55),
    0 0 80px rgba(168, 85, 247, 0.5);
  overflow: hidden;
}

.fusion-result-core {
  margin-bottom: 16px;
}

.fusion-result-title {
  font-size: 0.9rem;
  letter-spacing: 0.28em;
  text-transform: uppercase;
  color: rgba(226, 232, 240, 0.86);
}

.fusion-result-main {
  margin-top: 8px;
  font-size: 1.6rem;
  font-weight: 800;
  letter-spacing: 0.08em;
  color: #f9fafb;
}

.fusion-result-sub {
  margin-top: 4px;
  font-size: 0.9rem;
  color: rgba(191, 219, 254, 0.95);
}

.fusion-result-message {
  margin-top: 10px;
  font-size: 0.9rem;
  color: rgba(209, 213, 219, 0.95);
}

.fusion-result-consumed {
  margin-top: 10px;
  font-size: 0.8rem;
  text-transform: uppercase;
  letter-spacing: 0.16em;
  color: rgba(148, 163, 184, 0.95);
}

.fusion-result-hint {
  margin-top: 14px;
  font-size: 0.8rem;
  color: rgba(196, 181, 253, 0.95);
}

@keyframes fusion-core-pulse {
  0% { opacity: 0.7; transform: scale(0.96); }
  50% { opacity: 1; transform: scale(1.03); }
  100% { opacity: 0.7; transform: scale(0.96); }
}

@keyframes fusion-orbit-rotate {
  0% { transform: rotate(0deg); }
  100% { transform: rotate(360deg); }
}

/* --- CHAT NEWS STRIP (IM HEADER) --- */
.chat-news {
  display: flex;
  align-items: center;
  gap: 8px;
  margin: 0;
  flex: 1;
  overflow: hidden;
}

.chat-news .news-icon {
  position: relative;
  font-size: 1rem;
  display: flex;
  align-items: center;
  justify-content: center;
}

.chat-news .news-icon::after {
  content: '';
  position: absolute;
  width: 18px;
  height: 18px;
  border-radius: 999px;
  border: 1px solid rgba(250, 204, 21, 0.8);
  box-shadow: 0 0 12px rgba(250, 204, 21, 0.6);
  opacity: 0.7;
  transform: scale(0.8);
  animation: news-icon-ping 1.9s ease-out infinite;
}

.chat-news .news-label {
  font-weight: 800;
  color: #facc15;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  margin-right: 2px;
  font-size: 0.8rem;
  text-shadow: 0 0 10px rgba(250, 204, 21, 0.55);
}

.chat-news .news-track {
  flex: 1;
  overflow: hidden;
  position: relative;
}

.chat-news .news-track::before,
.chat-news .news-track::after {
  content: '';
  position: absolute;
  top: 0;
  bottom: 0;
  width: 26px;
  pointer-events: none;
  z-index: 1;
}

.chat-news .news-track::before {
  left: 0;
  background: linear-gradient(to right, rgba(15, 23, 42, 0.85), transparent);
}

.chat-news .news-track::after {
  right: 0;
  background: linear-gradient(to left, rgba(15, 23, 42, 0.85), transparent);
}

.chat-news .news-content {
  display: inline-block;
  color: #e5e7eb;
  font-size: 0.9rem;
  white-space: nowrap;
  padding-left: 100%;
  will-change: transform;
  animation: news-marquee 28s linear infinite;
  position: relative;
}

.chat-news:hover .news-content {
  animation-play-state: paused;
}

@keyframes news-marquee {
  0% {
    transform: translateX(100%);
  }
  100% {
    transform: translateX(-100%);
  }
}

@keyframes news-border-spin {
  0% {
    transform: rotate(0deg);
  }
  100% {
    transform: rotate(360deg);
  }
}

@keyframes news-icon-ping {
  0% {
    opacity: 0.2;
    transform: scale(0.6);
  }
  40% {
    opacity: 1;
    transform: scale(1);
  }
  100% {
    opacity: 0;
    transform: scale(1.3);
  }
}

/* --- FOOTER STATUSBAR --- */
.statusbar {
  margin-top: 30px;
  padding-top: 15px;
  border-top: 1px solid rgba(255, 255, 255, 0.05);
  font-size: 0.8rem;
  color: #64748b;
  display: flex;
  flex-direction: column;
  gap: 5px;
}

@keyframes btn-anim4 {
  0% { bottom: -100%; }
  50%,100% { bottom: 100%; }
}

/* --- MODERN BANKING UI --- */
.atm-screen-standalone {
  background: #0f172a; /* Slate 900 */
  border: 1px solid rgba(255, 255, 255, 0.1);
  border-radius: 16px;
  position: relative;
  overflow: hidden;
  height: 480px;
  width: 100%;
  max-width: 600px;
  margin: 0 auto;
  display: flex;
  flex-direction: column;
  box-shadow: 
    0 25px 50px -12px rgba(0, 0, 0, 0.5),
    inset 0 1px 1px rgba(255, 255, 255, 0.1);
  padding: 0;
  box-sizing: border-box;
  color: #f8fafc;
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
}

/* Remove Retro Overlays */
.atm-screen-standalone::before,
.atm-screen-standalone::after {
  display: none !important;
}

.atm-header-bar {
  background: rgba(255, 255, 255, 0.03);
  padding: 16px 24px;
  display: flex;
  justify-content: space-between;
  align-items: center;
  border-bottom: 1px solid rgba(255, 255, 255, 0.05);
  font-size: 0.85rem;
  color: #94a3b8;
  font-weight: 500;
}

.atm-interface {
  flex: 1;
  display: flex;
  flex-direction: column;
  padding: 32px;
  position: relative;
  z-index: 5;
  opacity: 0;
  transform: translateY(10px);
  transition: all 0.4s ease-out;
}

.atm-interface.visible {
  opacity: 1;
  transform: translateY(0);
}

.atm-balance-box {
  background: linear-gradient(135deg, rgba(59, 130, 246, 0.1) 0%, rgba(37, 99, 235, 0.05) 100%);
  border: 1px solid rgba(59, 130, 246, 0.2);
  padding: 24px;
  border-radius: 12px;
  margin-bottom: 32px;
  position: relative;
}

.atm-balance-label {
  font-size: 0.75rem;
  color: #60a5fa;
  margin-bottom: 4px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.05em;
}

.atm-balance-value {
  font-size: 2.5rem;
  font-weight: 700;
  color: #ffffff;
  letter-spacing: -0.02em;
}

.atm-hand-wc {
  font-size: 0.875rem;
  color: #94a3b8;
  margin-top: 8px;
  display: flex;
  align-items: center;
  gap: 6px;
}

.atm-actions {
  display: flex;
  flex-direction: column;
  gap: 16px;
}

.atm-action-group {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 12px;
  align-items: center;
}

.atm-input-wrapper {
  position: relative;
  flex: 1;
}

.atm-input {
  width: 100%;
  background: #1e293b; /* Slate 800 */
  border: 1px solid #334155;
  padding: 12px 16px;
  color: #ffffff;
  font-size: 1rem;
  border-radius: 8px;
  outline: none;
  transition: all 0.2s;
}

.atm-input:focus {
  border-color: #3b82f6;
  background: #0f172a;
  box-shadow: 0 0 0 3px rgba(59, 130, 246, 0.2);
}

.atm-btn {
  background: #3b82f6;
  color: #ffffff;
  padding: 12px 24px;
  border-radius: 8px;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  font-weight: 600;
  font-size: 0.9rem;
  transition: all 0.2s;
  border: none;
  min-width: 140px;
}

.atm-btn:hover {
  background: #2563eb;
  transform: translateY(-1px);
}

.atm-btn:active {
  transform: translateY(0);
}

.atm-btn-withdraw {
  background: rgba(255, 255, 255, 0.05);
  border: 1px solid rgba(255, 255, 255, 0.1);
}

.atm-btn-withdraw:hover {
  background: rgba(255, 255, 255, 0.1);
}

.atm-footer {
  margin-top: auto;
  padding: 20px 32px;
  display: flex;
  justify-content: space-between;
  font-size: 0.75rem;
  color: #475569;
  border-top: 1px solid rgba(255, 255, 255, 0.05);
}

.atm-state-centered {
  width: 100%;
  height: 100%;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 20px;
  position: absolute;
  top: 0;
  left: 0;
  z-index: 5;
  background: #0f172a;
}

.atm-boot-sequence {
  text-align: center;
  color: #3b82f6;
  font-family: monospace;
}

.atm-loader {
  width: 48px;
  height: 48px;
  border: 3px solid rgba(59, 130, 246, 0.1);
  border-radius: 50%;
  border-top-color: #3b82f6;
  animation: spin 1s linear infinite;
}

/* --- MODAL SYSTEM --- */
.modal {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: transparent;
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 1000;
  backdrop-filter: none;
  transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}

.modal.hidden {
  display: none !important;
  opacity: 0;
  pointer-events: none;
}

.modal-content {
  background: transparent;
  border: none;
  border-radius: 20px;
  padding: 0;
  width: 95%;
  max-width: 1100px;
  max-height: 90vh;
  overflow: hidden;
  position: relative;
  box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.7);
  animation: modalFadeIn 0.4s cubic-bezier(0.34, 1.56, 0.64, 1);
  display: flex;
  flex-direction: column;
}

@keyframes modalFadeIn {
  from { transform: scale(0.95) translateY(20px); opacity: 0; }
  to { transform: scale(1) translateY(0); opacity: 1; }
}

.modal-header {
  padding: 20px 30px;
  background: rgba(0, 0, 0, 0.2);
  border-bottom: 1px solid var(--border-color);
  display: flex;
  justify-content: space-between;
  align-items: center;
}

.modal-title {
  font-size: 1.8rem;
  font-weight: 700;
  margin: 0;
  color: var(--accent-blue);
  display: flex;
  align-items: center;
  gap: 15px;
  text-transform: uppercase;
  letter-spacing: 2px;
}

.modal-body {
  color: var(--text-main);
  font-family: 'Inter', sans-serif;
  line-height: 1.6;
  padding: 30px;
  overflow-y: auto;
  flex: 1;
}

/* --- CUSTOM SCROLLBARS --- */
.modal-body::-webkit-scrollbar,
#inv-grid-full::-webkit-scrollbar,
.companion-storage-scroll::-webkit-scrollbar,
.chat-messages::-webkit-scrollbar {
  width: 10px;
}

.modal-body::-webkit-scrollbar-track,
#inv-grid-full::-webkit-scrollbar-track,
.companion-storage-scroll::-webkit-scrollbar-track,
.chat-messages::-webkit-scrollbar-track {
  background: rgba(0, 0, 0, 0.2);
  border-radius: 10px;
}

.modal-body::-webkit-scrollbar-thumb,
#inv-grid-full::-webkit-scrollbar-thumb,
.companion-storage-scroll::-webkit-scrollbar-thumb,
.chat-messages::-webkit-scrollbar-thumb {
  background: linear-gradient(180deg, var(--accent-purple), #7e22ce);
  border-radius: 10px;
  border: 2px solid rgba(0, 0, 0, 0.2);
  box-shadow: 0 0 10px rgba(168, 85, 247, 0.3);
}

.modal-body::-webkit-scrollbar-thumb:hover,
#inv-grid-full::-webkit-scrollbar-thumb:hover,
.companion-storage-scroll::-webkit-scrollbar-thumb:hover,
.chat-messages::-webkit-scrollbar-thumb:hover {
  background: linear-gradient(180deg, #bc13fe, var(--accent-purple));
  box-shadow: 0 0 15px rgba(188, 19, 254, 0.5);
}

.close-modal {
  background: rgba(255, 255, 255, 0.05);
  border: 1px solid rgba(255, 255, 255, 0.1);
  color: #fff;
  width: 40px;
  height: 40px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  transition: all 0.2s;
  font-size: 1.2rem;
}

.close-modal:hover {
  background: #ef4444;
  border-color: #ef4444;
  transform: rotate(90deg);
}

/* --- TABS SYSTEM --- */
.tabs {
  display: flex;
  gap: 10px;
  margin-bottom: 20px;
  background: rgba(0, 0, 0, 0.2);
  padding: 8px;
  border-radius: 12px;
}

.tab {
  padding: 10px 20px;
  border-radius: 8px;
  cursor: pointer;
  transition: all 0.2s;
  font-weight: 600;
  color: var(--text-muted);
  background: rgba(255, 255, 255, 0.05);
}

.tab:hover {
  background: rgba(255, 255, 255, 0.1);
  color: #fff;
}

.tab.active {
  background: var(--accent-blue);
  color: #000;
}

/* --- INVENTORY SYSTEM --- */
.inv-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
  gap: 15px;
  padding: 10px;
}

.game-card {
  background: rgba(255, 255, 255, 0.03);
  border: 1px solid var(--border-color);
  border-radius: 12px;
  padding: 15px;
  transition: all 0.3s ease;
  display: flex;
  flex-direction: column;
}

.game-card:hover {
  border-color: var(--accent-blue);
  box-shadow: 0 5px 15px rgba(0, 210, 255, 0.1);
  transform: translateY(-2px);
}

/* --- BUTTON EFFECTS --- */
.btn-shine {
  position: relative;
  overflow: hidden;
}

.btn-shine span {
  position: absolute;
  display: block;
}

.btn-shine span:nth-child(1) {
  top: 0;
  left: -100%;
  width: 100%;
  height: 2px;
  background: linear-gradient(90deg, transparent, var(--accent-blue));
  animation: btn-anim1 2s linear infinite;
}

@keyframes btn-anim1 {
  0% { left: -100%; }
  50%, 100% { left: 100%; }
}

.btn-shine span:nth-child(2) {
  top: -100%;
  right: 0;
  width: 2px;
  height: 100%;
  background: linear-gradient(180deg, transparent, var(--accent-blue));
  animation: btn-anim2 2s linear infinite;
  animation-delay: .5s;
}

@keyframes btn-anim2 {
  0% { top: -100%; }
  50%, 100% { top: 100%; }
}

.btn-shine span:nth-child(3) {
  bottom: 0;
  right: -100%;
  width: 100%;
  height: 2px;
  background: linear-gradient(270deg, transparent, var(--accent-blue));
  animation: btn-anim3 2s linear infinite;
  animation-delay: 1s;
}

@keyframes btn-anim3 {
  0% { right: -100%; }
  50%, 100% { right: 100%; }
}

.btn-shine span:nth-child(4) {
  bottom: -100%;
  left: 0;
  width: 2px;
  height: 100%;
  background: linear-gradient(360deg, transparent, var(--accent-blue));
  animation: btn-anim4 2s linear infinite;
  animation-delay: 1.5s;
}

@keyframes btn-anim4 {
  0% { bottom: -100%; }
  50%, 100% { bottom: 100%; }
}

/* --- TOAST SYSTEM (Multiple) --- */
#toast-container {
  position: fixed;
  bottom: 30px;
  left: 50%;
  transform: translateX(-50%);
  z-index: 10000;
  display: flex;
  flex-direction: column; /* Neue Toasts werden unten angehängt, alte rutschen nach oben */
  gap: 10px;
  pointer-events: none;
}

.toast-msg {
  background: rgba(0, 0, 0, 0.95);
  color: #fff;
  padding: 12px 24px;
  border-radius: 12px;
  border: 1px solid var(--accent-blue);
  box-shadow: 0 0 20px rgba(0, 210, 255, 0.3);
  animation: toastSlideIn 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275);
  font-family: var(--font-main);
  font-weight: 600;
  pointer-events: auto;
  min-width: 280px;
  text-align: center;
  backdrop-filter: blur(5px);
}

.toast-msg.fade-out {
  animation: toastFadeOut 0.5s ease-out forwards;
}

@keyframes toastSlideIn {
  from { transform: translateY(20px); opacity: 0; }
  to { transform: translateY(0); opacity: 1; }
}

@keyframes toastFadeOut {
  from { transform: scale(1); opacity: 1; }
  to { transform: scale(0.9); opacity: 0; }
}

/* --- LEVEL UP OVERLAY --- */
#levelup-overlay {
  position: fixed;
  inset: 0;
  z-index: 99999;
  display: flex;
  align-items: center;
  justify-content: center;
  pointer-events: none;
  overflow: hidden;
}

#levelup-overlay.active {
  pointer-events: auto;
}

.levelup-backdrop {
  position: absolute;
  inset: 0;
  background: radial-gradient(ellipse at center, rgba(168,85,247,0.18) 0%, rgba(0,0,0,0.7) 70%);
  animation: luBackdropIn 0.4s ease-out forwards;
}

@keyframes luBackdropIn {
  from { opacity: 0; }
  to   { opacity: 1; }
}

.levelup-card {
  position: relative;
  z-index: 2;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 14px;
  background: linear-gradient(145deg, rgba(15,10,30,0.97), rgba(25,15,50,0.97));
  border: 1px solid rgba(168,85,247,0.5);
  border-radius: 28px;
  padding: 44px 56px;
  text-align: center;
  box-shadow: 0 0 60px rgba(168,85,247,0.4), 0 0 120px rgba(168,85,247,0.15), inset 0 1px 0 rgba(255,255,255,0.08);
  animation: luCardIn 0.55s cubic-bezier(0.175, 0.885, 0.32, 1.275) forwards;
  max-width: 420px;
  width: 90vw;
}

@keyframes luCardIn {
  from { transform: scale(0.5) translateY(40px); opacity: 0; }
  to   { transform: scale(1)   translateY(0);    opacity: 1; }
}

.levelup-card.closing {
  animation: luCardOut 0.4s ease-in forwards;
}

@keyframes luCardOut {
  from { transform: scale(1);   opacity: 1; }
  to   { transform: scale(1.1); opacity: 0; }
}

.levelup-badge {
  font-size: 4rem;
  line-height: 1;
  filter: drop-shadow(0 0 20px rgba(251,191,36,0.8));
  animation: luBadgePop 0.6s cubic-bezier(0.175, 0.885, 0.32, 1.275) 0.2s both;
}

@keyframes luBadgePop {
  from { transform: scale(0) rotate(-20deg); opacity: 0; }
  60%  { transform: scale(1.3) rotate(5deg);  opacity: 1; }
  to   { transform: scale(1)   rotate(0deg);  opacity: 1; }
}

.levelup-label {
  font-size: 0.75rem;
  font-weight: 900;
  letter-spacing: 4px;
  text-transform: uppercase;
  color: rgba(168,85,247,0.9);
  animation: luFadeUp 0.4s ease 0.3s both;
}

.levelup-title {
  font-size: 1.9rem;
  font-weight: 900;
  color: #fff;
  text-shadow: 0 0 30px rgba(168,85,247,0.8);
  animation: luFadeUp 0.4s ease 0.4s both;
  line-height: 1.1;
}

.levelup-level {
  font-size: 4.5rem;
  font-weight: 900;
  background: linear-gradient(135deg, #f59e0b, #fbbf24, #fde68a, #fbbf24, #f59e0b);
  background-size: 200% auto;
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
  animation: luFadeUp 0.4s ease 0.45s both, luShimmer 2s linear 0.8s infinite;
  line-height: 1;
  filter: drop-shadow(0 0 15px rgba(251,191,36,0.5));
}

@keyframes luShimmer {
  0%   { background-position: 0% center; }
  100% { background-position: 200% center; }
}

.levelup-subtitle {
  font-size: 0.85rem;
  color: rgba(255,255,255,0.55);
  animation: luFadeUp 0.4s ease 0.55s both;
}

.levelup-xp-badge {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 7px 18px;
  border-radius: 999px;
  background: rgba(168,85,247,0.15);
  border: 1px solid rgba(168,85,247,0.35);
  color: #c084fc;
  font-size: 0.82rem;
  font-weight: 700;
  animation: luFadeUp 0.4s ease 0.6s both;
}

.levelup-close-btn {
  margin-top: 6px;
  padding: 10px 32px;
  border-radius: 999px;
  border: none;
  background: linear-gradient(135deg, #7c3aed, #a855f7);
  color: #fff;
  font-size: 0.85rem;
  font-weight: 800;
  letter-spacing: 1px;
  text-transform: uppercase;
  cursor: pointer;
  animation: luFadeUp 0.4s ease 0.7s both;
  box-shadow: 0 4px 20px rgba(168,85,247,0.4);
  transition: transform 0.2s, box-shadow 0.2s;
}
.levelup-close-btn:hover { transform: translateY(-2px); box-shadow: 0 8px 30px rgba(168,85,247,0.6); }

@keyframes luFadeUp {
  from { transform: translateY(16px); opacity: 0; }
  to   { transform: translateY(0);    opacity: 1; }
}

/* Confetti particles */
.lu-particle {
  position: absolute;
  border-radius: 3px;
  pointer-events: none;
  animation: luParticleFall linear forwards;
}

@keyframes luParticleFall {
  0%   { transform: translateY(-20px) rotate(0deg);   opacity: 1; }
  100% { transform: translateY(110vh)  rotate(720deg); opacity: 0; }
}

/* --- PVP ARENA (COMPLETE REDESIGN) --- */
.pvp-container {
  padding: 0;
  max-height: 85vh;
  overflow-y: auto;
  background: linear-gradient(180deg, #1a1a2e 0%, #0f0f23 100%);
}

/* Glass Header */
.pvp-header-glass {
  background: rgba(255,255,255,0.03);
  backdrop-filter: blur(20px);
  padding: 25px;
  border-bottom: 1px solid rgba(255,255,255,0.08);
  position: sticky;
  top: 0;
  z-index: 100;
}

.pvp-title-row {
  display: flex;
  align-items: center;
  gap: 15px;
  margin-bottom: 20px;
}

.pvp-title-icon {
  font-size: 2.5rem;
  filter: drop-shadow(0 0 20px rgba(231,76,60,0.5));
  animation: floatIcon 3s ease-in-out infinite;
}

@keyframes floatIcon {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-5px); }
}

.pvp-title {
  font-size: 1.8rem;
  font-weight: 900;
  background: linear-gradient(135deg, #e74c3c 0%, #9b59b6 50%, #3498db 100%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
  text-transform: uppercase;
  letter-spacing: 3px;
}

.pvp-subtitle {
  font-size: 0.9rem;
  color: #888;
}

/* Filters */
.pvp-filters {
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.pvp-search-box {
  position: relative;
}

.pvp-search-icon {
  position: absolute;
  left: 15px;
  top: 50%;
  transform: translateY(-50%);
  font-size: 1rem;
  opacity: 0.6;
}

.pvp-search-input {
  width: 100%;
  padding: 12px 15px 12px 45px;
  border-radius: 25px;
  border: 1px solid rgba(255,255,255,0.15);
  background: rgba(0,0,0,0.4);
  color: #fff;
  font-size: 0.95rem;
  outline: none;
  transition: all 0.3s;
}

.pvp-search-input:focus {
  border-color: #e74c3c;
  box-shadow: 0 0 25px rgba(231,76,60,0.2);
}

.pvp-filter-tags {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
  justify-content: center;
}

.pvp-filter-tag {
  padding: 8px 16px;
  border-radius: 20px;
  border: 1px solid rgba(255,255,255,0.15);
  background: rgba(255,255,255,0.05);
  color: #999;
  font-size: 0.8rem;
  cursor: pointer;
  transition: all 0.2s;
}

.pvp-filter-tag:hover,
.pvp-filter-tag.active {
  background: linear-gradient(135deg, #e74c3c, #9b59b6);
  border-color: transparent;
  color: #fff;
  box-shadow: 0 4px 20px rgba(231,76,60,0.3);
  transform: translateY(-2px);
}

/* Difficulty Stats */
.pvp-difficulty-stats {
  display: flex;
  justify-content: center;
  gap: 20px;
  margin-top: 15px;
  flex-wrap: wrap;
}

.pvp-stat {
  display: flex;
  align-items: center;
  gap: 6px;
  font-size: 0.8rem;
  padding: 6px 14px;
  border-radius: 20px;
  background: rgba(255,255,255,0.05);
  font-weight: 600;
}

.pvp-stat.easy { color: #2ecc71; border: 1px solid rgba(46,204,113,0.3); }
.pvp-stat.medium { color: #f1c40f; border: 1px solid rgba(241,196,15,0.3); }
.pvp-stat.hard { color: #e74c3c; border: 1px solid rgba(231,76,60,0.3); }

/* Grid Layout */
.pvp-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
  gap: 20px;
  padding: 25px;
}

@media (max-width: 600px) {
  .pvp-grid {
    grid-template-columns: 1fr;
    padding: 15px;
  }
}

/* Cards */
.pvp-card {
  position: relative;
  background: linear-gradient(145deg, rgba(25,25,40,0.95), rgba(15,15,30,0.95));
  border-radius: 24px;
  padding: 22px;
  border: 1px solid rgba(255,255,255,0.08);
  transition: all 0.4s cubic-bezier(0.175, 0.885, 0.32, 1.275);
  overflow: hidden;
}

.pvp-card::before {
  content: '';
  position: absolute;
  inset: 0;
  background: radial-gradient(circle at 50% 0%, var(--glow-color, #666) 0%, transparent 60%);
  opacity: 0.1;
  transition: opacity 0.3s;
}

.pvp-card:hover {
  transform: translateY(-8px) scale(1.02);
  border-color: var(--glow-color, rgba(255,255,255,0.2));
  box-shadow: 
    0 25px 50px rgba(0,0,0,0.5),
    0 0 40px var(--glow-color, transparent),
    inset 0 1px 0 rgba(255,255,255,0.1);
}

.pvp-card:hover::before {
  opacity: 0.25;
}

.pvp-card.easy { --glow-color: rgba(46,204,113,0.6); }
.pvp-card.medium { --glow-color: rgba(241,196,15,0.6); }
.pvp-card.hard { --glow-color: rgba(231,76,60,0.6); }

.pvp-card-shine {
  position: absolute;
  top: -100%;
  left: -100%;
  width: 300%;
  height: 300%;
  background: linear-gradient(45deg, transparent 45%, rgba(255,255,255,0.03) 50%, transparent 55%);
  transform: rotate(35deg);
  transition: transform 0.8s;
  pointer-events: none;
}

.pvp-card:hover .pvp-card-shine {
  transform: rotate(35deg) translate(20%, 20%);
}

/* Card Header */
.pvp-card-header {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  margin-bottom: 18px;
  position: relative;
  z-index: 1;
}

.pvp-avatar {
  position: relative;
  width: 65px;
  height: 65px;
}

.pvp-avatar-img,
.pvp-avatar-fallback {
  width: 100%;
  height: 100%;
  border-radius: 50%;
  object-fit: cover;
  border: 3px solid rgba(255,255,255,0.1);
}

.pvp-avatar-fallback {
  background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 2rem;
  font-weight: 800;
  color: white;
}

.pvp-level-ring {
  position: absolute;
  bottom: -8px;
  right: -8px;
  width: 30px;
  height: 30px;
  background: linear-gradient(135deg, #9b59b6, #8e44ad);
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 0.75rem;
  font-weight: 800;
  color: #fff;
  border: 3px solid #1a1a2e;
  box-shadow: 0 4px 15px rgba(155,89,182,0.4);
}

.pvp-quick-attack {
  width: 42px;
  height: 42px;
  border-radius: 50%;
  background: rgba(231,76,60,0.15);
  border: 2px solid rgba(231,76,60,0.3);
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  font-size: 1.3rem;
  transition: all 0.3s;
  position: relative;
}

.pvp-quick-attack::after {
  content: '';
  position: absolute;
  inset: -2px;
  border-radius: 50%;
  border: 2px solid transparent;
  transition: all 0.3s;
}

.pvp-quick-attack:hover {
  background: linear-gradient(135deg, #e74c3c, #c0392b);
  transform: scale(1.15) rotate(15deg);
  box-shadow: 0 0 25px rgba(231,76,60,0.5);
}

/* Card Body */
.pvp-card-body {
  position: relative;
  z-index: 1;
  margin-bottom: 18px;
}

.pvp-username {
  font-size: 1.2rem;
  font-weight: 800;
  color: #fff;
  margin-bottom: 6px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  letter-spacing: 0.5px;
}

.pvp-companion-info {
  font-size: 0.8rem;
  color: #777;
  margin-bottom: 15px;
  display: flex;
  align-items: center;
  gap: 5px;
}

.pvp-rewards {
  display: flex;
  gap: 12px;
}

.pvp-reward-item {
  display: flex;
  align-items: center;
  gap: 6px;
  background: rgba(255,255,255,0.06);
  padding: 8px 14px;
  border-radius: 25px;
  border: 1px solid rgba(255,255,255,0.08);
}

.pvp-reward-icon {
  font-size: 1rem;
}

.pvp-reward-value {
  font-size: 0.85rem;
  font-weight: 700;
  color: #fff;
}

/* Card Footer */
.pvp-card-footer {
  display: flex;
  justify-content: space-between;
  align-items: center;
  position: relative;
  z-index: 1;
  padding-top: 15px;
  border-top: 1px solid rgba(255,255,255,0.06);
}

/* Circular Progress Ring */
.pvp-chance-ring {
  position: relative;
  width: 55px;
  height: 55px;
}

.pvp-chance-ring svg {
  width: 100%;
  height: 100%;
  transform: rotate(-90deg);
}

.pvp-ring-bg {
  fill: none;
  stroke: rgba(255,255,255,0.1);
  stroke-width: 4;
}

.pvp-ring-progress {
  fill: none;
  stroke-width: 4;
  stroke-linecap: round;
  transition: stroke-dasharray 0.6s ease;
}

.pvp-chance-text {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  font-size: 1rem;
  font-weight: 800;
  color: #fff;
}

.pvp-chance-text span {
  font-size: 0.65rem;
  color: #999;
  font-weight: 600;
}

/* Attack Button */
.pvp-attack-btn {
  padding: 12px 24px;
  border: none;
  border-radius: 30px;
  font-weight: 800;
  font-size: 0.75rem;
  cursor: pointer;
  transition: all 0.3s;
  text-transform: uppercase;
  letter-spacing: 1.5px;
  position: relative;
  overflow: hidden;
}

.pvp-attack-btn::before {
  content: '';
  position: absolute;
  top: 0;
  left: -100%;
  width: 100%;
  height: 100%;
  background: linear-gradient(90deg, transparent, rgba(255,255,255,0.3), transparent);
  transition: left 0.5s;
}

.pvp-attack-btn:hover::before {
  left: 100%;
}

.pvp-attack-btn.easy {
  background: linear-gradient(135deg, #27ae60, #2ecc71);
  color: white;
  box-shadow: 0 6px 20px rgba(46,204,113,0.3);
}

.pvp-attack-btn.medium {
  background: linear-gradient(135deg, #f39c12, #f1c40f);
  color: #1a1a2e;
  box-shadow: 0 6px 20px rgba(241,196,15,0.3);
}

.pvp-attack-btn.hard {
  background: linear-gradient(135deg, #c0392b, #e74c3c);
  color: white;
  box-shadow: 0 6px 20px rgba(231,76,60,0.3);
}

.pvp-attack-btn:hover {
  transform: scale(1.05);
  box-shadow: 0 10px 30px rgba(0,0,0,0.4);
}

/* Empty State */
.pvp-empty {
  grid-column: 1 / -1;
  text-align: center;
  padding: 60px 20px;
}

.pvp-empty-icon {
  font-size: 4rem;
  margin-bottom: 20px;
  opacity: 0.5;
}

.pvp-empty-title {
  font-size: 1.3rem;
  font-weight: 700;
  color: #fff;
  margin-bottom: 10px;
}

.pvp-empty-hint {
  font-size: 0.9rem;
  color: #666;
}

/* Footer Bar */
.pvp-footer-bar {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 20px 25px;
  background: rgba(255,255,255,0.02);
  border-top: 1px solid rgba(255,255,255,0.06);
  flex-wrap: wrap;
  gap: 15px;
}

.pvp-total-stats {
  display: flex;
  align-items: center;
  gap: 15px;
  font-size: 0.9rem;
  color: #888;
}

.pvp-divider {
  color: #444;
}

.pvp-random-btn {
  padding: 14px 28px;
  background: linear-gradient(135deg, #8e44ad, #9b59b6);
  border: none;
  border-radius: 30px;
  color: white;
  font-weight: 700;
  cursor: pointer;
  display: flex;
  align-items: center;
  gap: 10px;
  transition: all 0.3s;
  box-shadow: 0 6px 20px rgba(142,68,173,0.3);
  font-size: 0.85rem;
}

.pvp-random-btn:hover {
  transform: translateY(-3px);
  box-shadow: 0 12px 35px rgba(142,68,173,0.4);
}

/* Attack Animation */
@keyframes attackShake {
  0%, 100% { transform: translateY(-8px) scale(1.02); }
  25% { transform: translateY(-8px) translateX(-8px) rotate(-3deg) scale(1.02); }
  50% { transform: translateY(-8px) translateX(8px) rotate(3deg) scale(1.02); }
  75% { transform: translateY(-8px) translateX(-4px) rotate(-2deg) scale(1.02); }
}

@keyframes attackFlash {
  0%, 100% { box-shadow: 0 0 0 0 rgba(231, 76, 60, 0.8), 0 25px 50px rgba(0,0,0,0.5), 0 0 40px var(--glow-color, transparent); }
  50% { box-shadow: 0 0 40px 15px rgba(231, 76, 60, 0.5), 0 25px 50px rgba(0,0,0,0.5), 0 0 60px var(--glow-color, transparent); }
}

.attack-anim {
  animation: attackShake 0.5s ease, attackFlash 0.5s ease;
  z-index: 10;
}

/* --- HEIST MENU (ULTRA COOL EDITION) --- */
.heist-container {
  background: linear-gradient(180deg, #0a0a0f 0%, #15151a 100%);
  min-height: 100%;
  color: #fff;
  position: relative;
  overflow: hidden;
}

/* Animated Mesh Background */
.heist-bg-mesh {
  position: absolute;
  inset: 0;
  background: 
    radial-gradient(at 40% 20%, rgba(255,215,0,0.08) 0px, transparent 50%),
    radial-gradient(at 80% 0%, rgba(231,76,60,0.05) 0px, transparent 50%),
    radial-gradient(at 0% 50%, rgba(155,89,182,0.05) 0px, transparent 50%),
    radial-gradient(at 80% 50%, rgba(255,215,0,0.03) 0px, transparent 50%),
    radial-gradient(at 0% 100%, rgba(231,76,60,0.05) 0px, transparent 50%);
  animation: meshMove 20s ease-in-out infinite;
  pointer-events: none;
}

@keyframes meshMove {
  0%, 100% { transform: translate(0, 0) scale(1); }
  25% { transform: translate(2%, 2%) scale(1.02); }
  50% { transform: translate(-1%, 3%) scale(1); }
  75% { transform: translate(3%, -2%) scale(1.01); }
}

/* Floating Particles */
.heist-particles {
  position: absolute;
  inset: 0;
  pointer-events: none;
  overflow: hidden;
}

.heist-particle {
  position: absolute;
  background: rgba(255,215,0,0.4);
  border-radius: 50%;
  animation: floatUp 8s linear infinite;
  filter: blur(1px);
  box-shadow: 0 0 10px rgba(255,215,0,0.5);
}

@keyframes floatUp {
  0% { transform: translateY(100vh) scale(0); opacity: 0; }
  10% { opacity: 1; }
  90% { opacity: 1; }
  100% { transform: translateY(-100px) scale(1.5); opacity: 0; }
}

/* Glass Overlay for depth */
.heist-glass-overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(255,255,255,0.02) 0%, transparent 50%);
  pointer-events: none;
}

/* Glass Effect Base */
.glass {
  background: rgba(20,20,25,0.6) !important;
  backdrop-filter: blur(20px) saturate(180%);
  -webkit-backdrop-filter: blur(20px) saturate(180%);
  border: 1px solid rgba(255,215,0,0.15);
  box-shadow: 
    0 8px 32px rgba(0,0,0,0.4),
    inset 0 1px 0 rgba(255,255,255,0.05);
}

.glass-card {
  background: rgba(255,255,255,0.03) !important;
  backdrop-filter: blur(10px);
  border: 1px solid rgba(255,255,255,0.08);
  border-radius: 20px;
  box-shadow: 
    0 4px 24px rgba(0,0,0,0.2),
    inset 0 1px 0 rgba(255,255,255,0.03);
  transition: all 0.3s;
}

.glass-card:hover {
  background: rgba(255,255,255,0.05) !important;
  border-color: rgba(255,215,0,0.2);
  transform: translateY(-2px);
  box-shadow: 
    0 8px 32px rgba(0,0,0,0.3),
    0 0 20px rgba(255,215,0,0.1),
    inset 0 1px 0 rgba(255,255,255,0.05);
}

/* Neon Glow Effects */
.neon-gold {
  color: #ffd700;
  text-shadow: 
    0 0 5px rgba(255,215,0,0.5),
    0 0 20px rgba(255,215,0,0.3),
    0 0 40px rgba(255,215,0,0.2);
}

.neon-green {
  color: #2ecc71;
  text-shadow: 
    0 0 5px rgba(46,204,113,0.5),
    0 0 20px rgba(46,204,113,0.3);
}

.neon-yellow {
  color: #f1c40f;
  text-shadow: 
    0 0 5px rgba(241,196,15,0.5),
    0 0 20px rgba(241,196,15,0.3);
}

.neon-red {
  color: #e74c3c;
  text-shadow: 
    0 0 5px rgba(231,76,60,0.5),
    0 0 20px rgba(231,76,60,0.3);
}

/* Glitch Text Effect */
.glitch {
  position: relative;
  animation: glitch 3s infinite;
}

.glitch::before,
.glitch::after {
  content: attr(data-text);
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}

.glitch::before {
  animation: glitch-1 2s infinite;
  color: #e74c3c;
  z-index: -1;
}

.glitch::after {
  animation: glitch-2 2s infinite;
  color: #3498db;
  z-index: -2;
}

@keyframes glitch {
  0%, 90%, 100% { transform: translate(0); }
  92% { transform: translate(-2px, 2px); }
  94% { transform: translate(2px, -2px); }
  96% { transform: translate(-2px, -2px); }
  98% { transform: translate(2px, 2px); }
}

@keyframes glitch-1 {
  0%, 100% { clip-path: inset(0 0 0 0); transform: translate(0); }
  20% { clip-path: inset(20% 0 30% 0); transform: translate(-3px, 3px); }
  40% { clip-path: inset(50% 0 20% 0); transform: translate(3px, -3px); }
  60% { clip-path: inset(10% 0 60% 0); transform: translate(-3px, 0); }
  80% { clip-path: inset(80% 0 5% 0); transform: translate(3px, 0); }
}

@keyframes glitch-2 {
  0%, 100% { clip-path: inset(0 0 0 0); transform: translate(0); }
  20% { clip-path: inset(60% 0 10% 0); transform: translate(3px, -3px); }
  40% { clip-path: inset(30% 0 40% 0); transform: translate(-3px, 3px); }
  60% { clip-path: inset(10% 0 70% 0); transform: translate(3px, 0); }
  80% { clip-path: inset(40% 0 30% 0); transform: translate(-3px, 0); }
}

/* Pulsing Text */
.pulse-text {
  animation: textPulse 2s ease-in-out infinite;
}

@keyframes textPulse {
  0%, 100% { opacity: 0.7; }
  50% { opacity: 1; text-shadow: 0 0 10px rgba(255,215,0,0.3); }
}

/* Heat Stars Animation */
.heat-star {
  opacity: 0.3;
  transition: all 0.3s;
  filter: grayscale(100%);
}

.heat-star.active {
  opacity: 1;
  filter: grayscale(0%);
  animation: starPulse 2s ease-in-out infinite;
}

.heat-star.active:nth-child(2) { animation-delay: 0.2s; }
.heat-star.active:nth-child(3) { animation-delay: 0.4s; }
.heat-star.active:nth-child(4) { animation-delay: 0.6s; }
.heat-star.active:nth-child(5) { animation-delay: 0.8s; }

@keyframes starPulse {
  0%, 100% { transform: scale(1); filter: brightness(1); }
  50% { transform: scale(1.2); filter: brightness(1.3); }
}

/* Ripple Effect */
.ripple {
  position: absolute;
  border-radius: 50%;
  background: rgba(255,215,0,0.4);
  transform: scale(0);
  animation: rippleEffect 0.6s linear;
  pointer-events: none;
}

@keyframes rippleEffect {
  to {
    transform: scale(4);
    opacity: 0;
  }
}

/* Enhanced Target Card */
.heist-target-card {
  background: linear-gradient(145deg, rgba(26,26,31,0.9), rgba(13,13,18,0.95)) !important;
  backdrop-filter: blur(20px);
  border: 1px solid rgba(255,215,0,0.2);
  box-shadow: 
    0 20px 60px rgba(0,0,0,0.6),
    0 0 0 1px rgba(255,215,0,0.1),
    inset 0 1px 0 rgba(255,255,255,0.05);
}

.heist-target-card::before {
  content: '';
  position: absolute;
  inset: -2px;
  border-radius: 26px;
  background: linear-gradient(45deg, transparent, rgba(255,215,0,0.3), transparent);
  opacity: 0;
  transition: opacity 0.3s;
  z-index: -1;
}

.heist-target-card:hover::before {
  opacity: 1;
  animation: borderGlow 2s linear infinite;
}

@keyframes borderGlow {
  0% { filter: hue-rotate(0deg); }
  100% { filter: hue-rotate(360deg); }
}

/* Top Bar */
.heist-topbar {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 20px 25px;
  position: relative;
  z-index: 10;
  border-bottom: 1px solid rgba(255,215,0,0.2);
}

.heist-brand {
  display: flex;
  align-items: center;
  gap: 12px;
  font-size: 1.4rem;
  font-weight: 900;
  letter-spacing: 3px;
}

.heist-skull {
  font-size: 1.8rem;
  filter: drop-shadow(0 0 10px rgba(255,215,0,0.5));
  animation: skullPulse 2s ease-in-out infinite;
}

@keyframes skullPulse {
  0%, 100% { transform: scale(1); }
  50% { transform: scale(1.1); }
}

.heist-wanted {
  text-align: right;
}

.heist-wanted span:first-child {
  display: block;
  font-size: 0.65rem;
  color: #888;
  letter-spacing: 2px;
  margin-bottom: 4px;
}

.heist-heat {
  font-size: 1.2rem;
  letter-spacing: 2px;
}

/* Stats Bar */
.heist-statsbar {
  display: flex;
  justify-content: space-around;
  padding: 25px;
  background: rgba(0,0,0,0.3);
  border-bottom: 1px solid rgba(255,215,0,0.2);
}

.heist-stat {
  text-align: center;
}

.heist-stat-num {
  display: block;
  font-size: 2rem;
  font-weight: 900;
  color: #ffd700;
  text-shadow: 0 0 20px rgba(255,215,0,0.3);
}

.heist-stat-num.good { color: #2ecc71; }
.heist-stat-num.mid { color: #f1c40f; }
.heist-stat-num.risk { color: #e74c3c; }

.heist-stat-label {
  font-size: 0.7rem;
  color: #666;
  letter-spacing: 2px;
  margin-top: 4px;
}

.heist-xp-ring {
  position: relative;
  width: 60px;
  height: 60px;
  margin: 0 auto 8px;
}

.heist-xp-ring svg {
  width: 100%;
  height: 100%;
}

.heist-xp-ring span {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  font-size: 0.85rem;
  font-weight: 700;
  color: #ffd700;
}

/* Tabs */
.heist-tabs {
  display: flex;
  gap: 0;
  background: rgba(0,0,0,0.5);
  border-bottom: 2px solid #333;
}

.heist-tab {
  flex: 1;
  padding: 18px 15px;
  background: transparent;
  border: none;
  color: #666;
  font-size: 0.85rem;
  font-weight: 700;
  letter-spacing: 1px;
  cursor: pointer;
  transition: all 0.3s;
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
}

.heist-tab:hover {
  color: #999;
  background: rgba(255,255,255,0.03);
}

.heist-tab.active {
  color: #ffd700;
  background: linear-gradient(180deg, rgba(255,215,0,0.1), transparent);
}

.heist-tab.active::after {
  content: '';
  position: absolute;
  bottom: -2px;
  left: 20%;
  right: 20%;
  height: 2px;
  background: #ffd700;
  box-shadow: 0 0 10px #ffd700;
}

.heist-badge {
  background: #e74c3c;
  color: #fff;
  font-size: 0.65rem;
  padding: 2px 6px;
  border-radius: 10px;
  min-width: 18px;
}

/* Content Area */
.heist-content {
  padding: 25px;
  min-height: 300px;
}

/* Street Tab - Big Target Card */
.heist-target-showcase {
  display: flex;
  justify-content: center;
  padding: 20px 0;
}

.heist-target-card {
  position: relative;
  width: 280px;
  height: 380px;
  background: linear-gradient(145deg, #1a1a1f, #0d0d12);
  border-radius: 24px;
  border: 2px solid #333;
  overflow: hidden;
  cursor: pointer;
  transition: all 0.4s cubic-bezier(0.175, 0.885, 0.32, 1.275);
  box-shadow: 
    0 20px 40px rgba(0,0,0,0.6),
    inset 0 1px 0 rgba(255,255,255,0.05);
}

.heist-target-card:hover {
  transform: translateY(-10px) scale(1.02);
  border-color: #ffd700;
  box-shadow: 
    0 30px 60px rgba(0,0,0,0.7),
    0 0 40px rgba(255,215,0,0.2),
    inset 0 1px 0 rgba(255,255,255,0.1);
}

.heist-target-glow {
  position: absolute;
  top: -50%;
  left: -50%;
  width: 200%;
  height: 200%;
  background: radial-gradient(circle, rgba(255,215,0,0.1) 0%, transparent 70%);
  opacity: 0;
  transition: opacity 0.3s;
}

.heist-target-card:hover .heist-target-glow {
  opacity: 1;
}

.heist-target-bg {
  position: absolute;
  top: 20px;
  left: 50%;
  transform: translateX(-50%);
  font-size: 6rem;
  opacity: 0.1;
}

.heist-target-content {
  position: relative;
  z-index: 1;
  height: 100%;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 30px;
  text-align: center;
}

.heist-target-title {
  font-size: 1.4rem;
  font-weight: 900;
  letter-spacing: 3px;
  color: #fff;
  margin-bottom: 8px;
}

.heist-target-sub {
  font-size: 0.85rem;
  color: #666;
  margin-bottom: 30px;
}

.heist-target-reward {
  display: flex;
  align-items: center;
  gap: 10px;
  background: rgba(255,215,0,0.1);
  padding: 12px 24px;
  border-radius: 30px;
  border: 1px solid rgba(255,215,0,0.3);
  margin-bottom: 20px;
}

.heist-coin {
  font-size: 1.4rem;
  animation: coinSpin 3s linear infinite;
}

@keyframes coinSpin {
  0% { transform: rotateY(0deg); }
  100% { transform: rotateY(360deg); }
}

.heist-target-chance {
  font-size: 1.2rem;
  font-weight: 700;
  margin-bottom: 30px;
}

.heist-target-chance.good { color: #2ecc71; }
.heist-target-chance.mid { color: #f1c40f; }
.heist-target-chance.risk { color: #e74c3c; }

.heist-go-btn {
  padding: 15px 50px;
  background: linear-gradient(135deg, #ffd700, #ffed4e);
  border: none;
  border-radius: 30px;
  color: #000;
  font-size: 1.1rem;
  font-weight: 900;
  letter-spacing: 3px;
  cursor: pointer;
  transition: all 0.3s;
  box-shadow: 0 10px 30px rgba(255,215,0,0.3);
}

.heist-go-btn:hover {
  transform: scale(1.05);
  box-shadow: 0 15px 40px rgba(255,215,0,0.5);
}

/* Players List */
.heist-targets-list {
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.heist-target-row {
  display: grid;
  grid-template-columns: 50px 1fr auto auto auto;
  align-items: center;
  gap: 15px;
  padding: 18px 20px;
  background: rgba(255,255,255,0.02);
  border-radius: 16px;
  border: 1px solid rgba(255,255,255,0.05);
  cursor: pointer;
  transition: all 0.3s;
}

.heist-target-row:hover {
  background: rgba(255,255,255,0.05);
  transform: translateX(5px);
}

.heist-target-row.heat-1 { border-left: 3px solid #2ecc71; }
.heist-target-row.heat-2 { border-left: 3px solid #f1c40f; }
.heist-target-row.heat-3 { border-left: 3px solid #e74c3c; }

.heist-row-avatar {
  width: 45px;
  height: 45px;
  background: linear-gradient(135deg, #333, #222);
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.3rem;
  font-weight: 700;
  color: #ffd700;
  border: 2px solid #444;
}

.heist-row-name {
  font-weight: 700;
  color: #fff;
  font-size: 1rem;
  margin-bottom: 4px;
}

.heist-row-meta {
  display: flex;
  gap: 15px;
  font-size: 0.75rem;
  color: #666;
}

.heist-row-chance {
  font-size: 1.1rem;
  font-weight: 700;
  color: #f1c40f;
}

.heist-row-reward {
  font-size: 0.9rem;
  color: #2ecc71;
  font-weight: 600;
}

.heist-row-btn {
  padding: 10px 20px;
  background: linear-gradient(135deg, #e74c3c, #c0392b);
  border: none;
  border-radius: 8px;
  color: #fff;
  font-size: 0.8rem;
  font-weight: 700;
  letter-spacing: 1px;
  cursor: pointer;
  transition: all 0.2s;
}

.heist-row-btn:hover {
  transform: scale(1.05);
  box-shadow: 0 5px 20px rgba(231,76,60,0.4);
}

/* Inventory Grid */
.heist-inventory {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(140px, 1fr));
  gap: 15px;
}

.heist-item-card {
  background: linear-gradient(145deg, #1a1a1f, #0d0d12);
  border: 1px solid rgba(255,255,255,0.08);
  border-radius: 16px;
  padding: 20px;
  text-align: center;
  cursor: pointer;
  transition: all 0.3s;
  position: relative;
  overflow: hidden;
}

.heist-item-card:hover {
  transform: translateY(-5px);
  border-color: rgba(255,215,0,0.3);
  box-shadow: 0 15px 30px rgba(0,0,0,0.4);
}

.heist-item-card.luck:hover {
  border-color: rgba(155,89,182,0.5);
  box-shadow: 0 15px 30px rgba(155,89,182,0.2);
}

.heist-item-card.def:hover {
  border-color: rgba(52,152,219,0.5);
  box-shadow: 0 15px 30px rgba(52,152,219,0.2);
}

.heist-item-card.tool:hover {
  border-color: rgba(243,156,18,0.5);
  box-shadow: 0 15px 30px rgba(243,156,18,0.2);
}

.heist-item-card::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 3px;
  background: linear-gradient(90deg, transparent, rgba(255,215,0,0.5), transparent);
  opacity: 0;
  transition: opacity 0.3s;
}

.heist-item-card:hover::before {
  opacity: 1;
}

.heist-item-icon {
  font-size: 2.5rem;
  margin-bottom: 12px;
  filter: drop-shadow(0 0 10px rgba(255,255,255,0.1));
}

.heist-item-name {
  font-size: 0.85rem;
  font-weight: 700;
  color: #fff;
  margin-bottom: 4px;
}

.heist-item-effect {
  font-size: 0.7rem;
  color: #666;
}

.heist-item-qty {
  position: absolute;
  top: 10px;
  right: 10px;
  background: #e74c3c;
  color: #fff;
  font-size: 0.7rem;
  font-weight: 700;
  padding: 3px 8px;
  border-radius: 10px;
}

/* Empty State */
.heist-empty {
  text-align: center;
  padding: 60px 20px;
  color: #444;
  font-size: 1rem;
}

/* Mobile */
@media (max-width: 600px) {
  .heist-target-row {
    grid-template-columns: 45px 1fr auto;
    gap: 10px;
  }
  .heist-row-chance,
  .heist-row-reward {
    display: none;
  }
  .heist-inventory {
    grid-template-columns: repeat(2, 1fr);
  }
}

/* --- COMPANION MODAL --- */
.companion-modal-container {
  display: flex;
  flex-direction: column;
  gap: 20px;
}

.companion-tabs {
  display: flex;
  gap: 10px;
  background: rgba(0, 0, 0, 0.4);
  padding: 10px;
  border-radius: 12px;
  border: 1px solid rgba(155, 89, 255, 0.2);
  overflow-x: auto;
}

.companion-tab {
  padding: 12px 24px;
  border-radius: 8px;
  cursor: pointer;
  transition: all 0.3s;
  font-weight: 600;
  color: var(--text-muted);
  background: rgba(255, 255, 255, 0.05);
  white-space: nowrap;
}

.companion-tab:hover {
  background: rgba(155, 89, 255, 0.1);
  color: #fff;
}

.companion-tab.active {
  background: var(--accent-purple);
  color: #fff;
  box-shadow: 0 0 15px rgba(168, 85, 247, 0.4);
}

.companion-content-area {
  min-height: 400px;
}

.companion-grid {
  display: grid;
  grid-template-columns: 1fr 1.2fr;
  gap: 25px;
}

.companion-profile-card {
  display: flex;
  flex-direction: column;
  align-items: center;
  position: relative;
  overflow: hidden;
  border: 1px solid rgba(155, 89, 255, 0.2);
}

@media (max-width: 992px) {
  .companion-grid {
    grid-template-columns: 1fr;
  }
}

.glass-panel {
  background: rgba(0, 0, 0, 0.4);
  backdrop-filter: blur(10px);
  border-radius: 20px;
  padding: 25px;
  border: 1px solid rgba(255, 255, 255, 0.05);
}

.modern-button {
  background: linear-gradient(135deg, #9b59ff 0%, #7d33ff 100%);
  color: #fff;
  border: none;
  padding: 12px 25px;
  border-radius: 12px;
  font-weight: 700;
  cursor: pointer;
  transition: all 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275);
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  box-shadow: 0 4px 15px rgba(155, 89, 255, 0.3);
  text-transform: uppercase;
  letter-spacing: 1px;
}

.modern-button:hover {
  transform: translateY(-3px) scale(1.02);
  box-shadow: 0 8px 25px rgba(155, 89, 255, 0.5);
  filter: brightness(1.1);
}

.modern-button:active {
  transform: translateY(-1px);
}

.modern-button.secondary {
  background: rgba(255, 255, 255, 0.05);
  border: 1px solid rgba(155, 89, 255, 0.3);
}

.spinner {
  width: 40px;
  height: 40px;
  border: 4px solid rgba(155, 89, 255, 0.1);
  border-left-color: var(--accent-purple);
  border-radius: 50%;
  animation: spin 1s linear infinite;
  margin: 0 auto 20px;
}

.form-input {
  width: 100%;
  background: rgba(0, 0, 0, 0.3);
  border: 1px solid rgba(255, 255, 255, 0.1);
  padding: 12px 15px;
  border-radius: 8px;
  color: #fff;
  outline: none;
  transition: all 0.3s;
}

.form-input:focus {
  border-color: var(--accent-purple);
  background: rgba(0, 0, 0, 0.5);
}

/* --- MARKET MODAL --- */
.market-modal-container {
  padding: 20px;
  min-height: 600px;
  position: relative;
  border-radius: 12px;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  gap: 20px;
}

.market-overlay {
  background: rgba(0, 0, 0, 0.7);
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  pointer-events: none;
  z-index: 0;
}

.market-content-wrapper {
  position: relative;
  z-index: 1;
  display: flex;
  flex-direction: column;
  gap: 20px;
}

.market-listings-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(250px, 1fr));
  gap: 15px;
}

.market-sell-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 20px;
}

@media (max-width: 768px) {
  .market-sell-grid {
    grid-template-columns: 1fr;
  }
}

/* --- UI COMPONENTS --- */
.glow {
  box-shadow: 0 0 15px var(--accent-blue);
}

.with-frame {
  border: 4px double var(--border-color);
  padding: 20px;
}

.btn-discord {
  background: #5865F2;
  color: #fff;
}

.user-profile {
  display: flex;
  align-items: center;
  gap: 10px;
}

.user-badge {
  background: rgba(255, 255, 255, 0.1);
  padding: 4px 12px;
  border-radius: 20px;
  font-size: 0.9rem;
}

.statusbar {
  margin-top: 20px;
  padding: 10px 16px;
  border-radius: 999px;
  font-size: 0.78rem;
  color: var(--text-muted);
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 12px;
  position: relative;
  overflow: hidden;
  background:
    radial-gradient(circle at 0% 0%, rgba(96, 165, 250, 0.22), transparent 55%),
    radial-gradient(circle at 100% 100%, rgba(129, 140, 248, 0.22), transparent 55%),
    rgba(15, 23, 42, 0.92);
  border: 1px solid rgba(148, 163, 184, 0.35);
  box-shadow:
    0 18px 45px rgba(15, 23, 42, 0.75),
    0 0 0 1px rgba(15, 23, 42, 0.9),
    inset 0 0 0 1px rgba(15, 23, 42, 0.9);
  backdrop-filter: blur(14px);
}

.statusbar::before {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(120deg,
    transparent 0%,
    rgba(129, 140, 248, 0.28) 38%,
    rgba(56, 189, 248, 0.24) 58%,
    transparent 100%);
  opacity: 0.75;
  mix-blend-mode: screen;
  pointer-events: none;
}

.statusbar > div:first-child {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  white-space: nowrap;
}

.statusbar > div:first-child::before {
  content: '⚙️';
  font-size: 0.9rem;
}

.statusbar > div:last-child {
  font-size: 0.78rem;
  color: rgba(226, 232, 240, 0.9);
  text-align: right;
}

/* --- UTILITIES --- */
.hidden {
  display: none !important;
}

@keyframes spin {
  to { transform: rotate(360deg); }
}

/* --- CHAT SYSTEM --- */
.chat-container {
  background: rgba(30, 32, 50, 0.6);
  border: 1px solid rgba(0, 210, 255, 0.3);
  border-radius: 15px;
  margin-bottom: 20px;
  display: flex;
  flex-direction: column;
  max-height: 400px;
  backdrop-filter: blur(5px);
  overflow: hidden;
}

.chat-header {
  padding: 10px 16px;
  background: radial-gradient(circle at top, rgba(15, 23, 42, 0.98), rgba(15, 23, 42, 0.92));
  border-bottom: 1px solid rgba(148, 163, 184, 0.35);
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 12px;
  font-weight: bold;
  font-family: var(--font-heading);
  letter-spacing: 1px;
}

.chat-title {
  font-size: 0.95rem;
  text-transform: uppercase;
  letter-spacing: 0.15em;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  background: linear-gradient(90deg, #e5e7eb, #facc15);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
  text-shadow: 0 0 12px rgba(56, 189, 248, 0.35);
}

.chat-title::before {
  content: '💬';
}

.chat-messages {
  flex: 1;
  overflow-y: auto;
  padding: 15px;
  display: flex;
  flex-direction: column;
  gap: 8px;
  min-height: 200px;
}

.chat-message {
  font-size: 0.9rem;
  line-height: 1.4;
  word-break: break-word;
}

.chat-user {
  font-weight: 800;
  color: var(--accent-blue);
  margin-right: 6px;
}

.chat-time {
  font-size: 0.75rem;
  color: var(--text-muted);
  margin-right: 8px;
}

.chat-system {
  font-style: italic;
  color: var(--text-muted);
  text-align: center;
  font-size: 0.85rem;
  margin: 10px 0;
}

.chat-input-area {
  padding: 12px;
  background: rgba(0, 0, 0, 0.2);
  display: flex;
  gap: 10px;
  border-top: 1px solid rgba(255, 255, 255, 0.05);
}

#chat-input {
  flex: 1;
  background: rgba(255, 255, 255, 0.05);
  border: 1px solid rgba(255, 255, 255, 0.1);
  border-radius: 8px;
  padding: 10px 15px;
  color: white;
  outline: none;
}

#chat-input:focus {
  border-color: var(--accent-blue);
  background: rgba(255, 255, 255, 0.08);
}

.btn-icon {
  background: transparent;
  border: none;
  cursor: pointer;
  font-size: 1.2rem;
  padding: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: transform 0.2s;
}

.btn-icon:hover {
  transform: rotate(180deg);
}

/* --- LEVEL UP OVERLAY --- */
.levelup-overlay {
  position: fixed;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 20000;
  background: transparent;
  backdrop-filter: none;
  opacity: 0;
  animation: levelup-overlay-fade 0.45s ease-out forwards;
}

.levelup-content {
  position: relative;
  max-width: 420px;
  width: auto;
  border-radius: 999px;
  overflow: visible;
  cursor: pointer;
  border: none;
  transform: translateY(18px) scale(0.9);
  opacity: 0;
  animation: levelup-pop-in 0.6s cubic-bezier(0.22, 0.9, 0.25, 1.2) 0.05s forwards;
}

.levelup-inner-content {
  position: relative;
  z-index: 3;
  padding: 10px 18px 12px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
}

.levelup-crown-wrapper {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  margin-top: 4px;
}

.levelup-crown-glow {
  position: absolute;
  width: 180%;
  height: 180%;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(250, 204, 21, 0.28), transparent 70%);
  filter: blur(12px);
  opacity: 0.9;
  animation: levelup-crown-pulse 2.6s ease-in-out infinite;
}

.levelup-crown-rays {
  position: absolute;
  width: 250%;
  height: 250%;
  border-radius: 50%;
  background:
    conic-gradient(
      from 0deg,
      rgba(250, 204, 21, 0) 0deg 8deg,
      rgba(250, 250, 250, 1) 8deg 10deg,
      rgba(250, 204, 21, 0.98) 10deg 16deg,
      rgba(56, 189, 248, 0.9) 16deg 20deg,
      rgba(250, 204, 21, 0) 18deg 40deg,
      rgba(250, 204, 21, 0.55) 40deg 46deg,
      rgba(250, 250, 250, 1) 46deg 50deg,
      rgba(250, 204, 21, 0) 50deg 120deg,
      rgba(250, 204, 21, 0.8) 120deg 128deg,
      rgba(129, 140, 248, 1) 128deg 132deg,
      rgba(250, 204, 21, 0) 132deg 200deg,
      rgba(250, 204, 21, 0.75) 200deg 208deg,
      rgba(59, 130, 246, 0.95) 208deg 214deg,
      rgba(250, 204, 21, 0) 214deg 260deg,
      rgba(250, 250, 250, 1) 260deg 268deg,
      rgba(250, 204, 21, 1) 268deg 274deg,
      rgba(250, 204, 21, 0) 272deg 360deg
    );
  mix-blend-mode: screen;
  opacity: 0.95;
  filter: blur(1.2px);
  animation: levelup-crown-rays-spin 8s linear infinite;
}

.levelup-image {
  max-width: 260px;
  width: 75%;
  filter: drop-shadow(0 24px 40px rgba(0, 0, 0, 0.6));
  animation: levelup-float 2.8s ease-in-out infinite, levelup-glow 1.6s ease-in-out infinite;
  transform-origin: center bottom;
}

.levelup-title {
  margin-top: 16px;
  letter-spacing: 0.22em;
  font-size: 0.8rem;
  text-transform: uppercase;
  color: rgba(248, 250, 252, 0.8);
}

.levelup-text {
  margin-top: 6px;
  font-size: 2.3rem;
  font-weight: 900;
  letter-spacing: 0.12em;
  color: #facc15;
  text-shadow:
    0 0 18px rgba(250, 204, 21, 0.7),
    0 0 40px rgba(250, 204, 21, 0.6);
  animation: levelup-text-glow 2.4s ease-in-out infinite;
}

.levelup-subtext {
  margin-top: 4px;
  font-size: 0.95rem;
  text-transform: uppercase;
  letter-spacing: 0.16em;
  color: rgba(226, 232, 240, 0.85);
}

.levelup-hint {
  margin-top: 18px;
  font-size: 0.82rem;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: rgba(148, 163, 184, 0.9);
  animation: levelup-hint-pulse 1.8s ease-in-out infinite;
}

.levelup-rings {
  position: absolute;
  inset: 0;
  z-index: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  pointer-events: none;
}

.levelup-rings .ring {
  position: absolute;
  border-radius: 999px;
  border: 1px solid rgba(250, 250, 250, 0.08);
  animation: levelup-pulse 3s ease-out infinite;
}

.levelup-rings .ring-1 {
  width: 70%;
  height: 36%;
}

.levelup-rings .ring-2 {
  width: 90%;
  height: 46%;
  animation-delay: 0.5s;
}

.levelup-rings .ring-3 {
  width: 110%;
  height: 56%;
  animation-delay: 1s;
}

.levelup-flare {
  position: absolute;
  inset: 40% -40px 28%;
  background: radial-gradient(circle at center, rgba(250, 250, 250, 0.16), transparent 60%);
  opacity: 0.9;
  z-index: 0;
}

.levelup-particles {
  position: absolute;
  inset: 0;
  background-image:
    radial-gradient(circle at 10% 20%, rgba(250, 250, 250, 0.18) 0, transparent 40%),
    radial-gradient(circle at 80% 10%, rgba(251, 191, 36, 0.14) 0, transparent 40%),
    radial-gradient(circle at 20% 80%, rgba(59, 130, 246, 0.18) 0, transparent 40%);
  mix-blend-mode: screen;
  opacity: 0.55;
  z-index: 0;
}

.levelup-hud-corner {
  position: absolute;
  width: 52px;
  height: 52px;
  border: 1px solid rgba(148, 163, 184, 0.45);
  opacity: 0.6;
}

.levelup-hud-corner.top-left {
  top: 14px;
  left: 14px;
  border-right: none;
  border-bottom: none;
}

.levelup-hud-corner.top-right {
  top: 14px;
  right: 14px;
  border-left: none;
  border-bottom: none;
}

.levelup-hud-corner.bottom-left {
  bottom: 14px;
  left: 14px;
  border-right: none;
  border-top: none;
}

.levelup-hud-corner.bottom-right {
  bottom: 14px;
  right: 14px;
  border-left: none;
  border-top: none;
}

.levelup-scanline {
  position: absolute;
  inset: 0;
  background-image: linear-gradient(
    to bottom,
    rgba(15, 23, 42, 0) 0%,
    rgba(148, 163, 184, 0.16) 50%,
    rgba(15, 23, 42, 0) 100%
  );
  mix-blend-mode: soft-light;
  opacity: 0.6;
}

@keyframes levelup-pulse {
  0% { transform: scale(0.9); opacity: 0; }
  30% { opacity: 1; }
  100% { transform: scale(1.1); opacity: 0; }
}

@keyframes levelup-overlay-fade {
  0% { opacity: 0; }
  100% { opacity: 1; }
}

@keyframes levelup-pop-in {
  0% { transform: translateY(40px) scale(0.85); opacity: 0; }
  60% { transform: translateY(-6px) scale(1.03); opacity: 1; }
  100% { transform: translateY(0) scale(1); opacity: 1; }
}

@keyframes levelup-float {
  0% { transform: translateY(0) scale(1); }
  50% { transform: translateY(-12px) scale(1.03); }
  100% { transform: translateY(0) scale(1); }
}

@keyframes levelup-glow {
  0% { filter: drop-shadow(0 20px 32px rgba(250, 204, 21, 0.55)); }
  50% { filter: drop-shadow(0 26px 52px rgba(250, 204, 21, 0.9)); }
  100% { filter: drop-shadow(0 20px 32px rgba(250, 204, 21, 0.55)); }
}

@keyframes levelup-text-glow {
  0% { text-shadow: 0 0 18px rgba(250, 204, 21, 0.7), 0 0 40px rgba(250, 204, 21, 0.6); }
  50% { text-shadow: 0 0 24px rgba(250, 250, 250, 0.9), 0 0 60px rgba(250, 204, 21, 0.95); }
  100% { text-shadow: 0 0 18px rgba(250, 204, 21, 0.7), 0 0 40px rgba(250, 204, 21, 0.6); }
}

@keyframes levelup-hint-pulse {
  0% { opacity: 0.65; transform: translateY(0); }
  50% { opacity: 1; transform: translateY(-2px); }
  100% { opacity: 0.65; transform: translateY(0); }
}

@keyframes levelup-crown-pulse {
  0% { transform: scale(0.9); opacity: 0.6; }
  50% { transform: scale(1.05); opacity: 1; }
  100% { transform: scale(0.9); opacity: 0.6; }
}

@keyframes levelup-crown-rays-spin {
  0% {
    transform: rotate(0deg) scale(0.95);
    opacity: 0.65;
  }
  35% {
    transform: rotate(130deg) scale(1.04);
    opacity: 1;
  }
  70% {
    transform: rotate(260deg) scale(1.02);
    opacity: 0.9;
  }
  100% {
    transform: rotate(360deg) scale(0.95);
    opacity: 0.65;
  }
}

/* ============================================
   NEW DASHBOARD LAYOUT - 3 Column Design
   ============================================ */

/* Main Layout Container */
.main-layout {
  display: grid;
  grid-template-columns: 200px 1fr 320px;
  gap: 24px;
  min-height: 100vh;
  padding: 24px;
  background: var(--primary-bg);
}

/* Left Sidebar */
.sidebar-left {
  display: flex;
  flex-direction: column;
  gap: 24px;
}

.brand {
  background: linear-gradient(135deg, var(--secondary-bg) 0%, var(--primary-bg) 100%);
  border: 1px solid var(--border-color);
  border-radius: 16px;
  padding: 18px;
  text-align: center;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.3);
}

.brand-icon {
  font-size: 2.5rem;
  margin-bottom: 8px;
}

.brand-title {
  font-family: var(--font-heading);
  font-size: 0.9rem;
  font-weight: 800;
  color: #fff;
  letter-spacing: 1px;
}

.brand-subtitle {
  font-size: 0.65rem;
  color: var(--text-muted);
  letter-spacing: 2px;
  text-transform: uppercase;
}

.sidebar-nav {
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.nav-btn {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 14px 18px;
  border: none;
  border-radius: 12px;
  font-family: var(--font-main);
  font-size: 0.9rem;
  font-weight: 700;
  cursor: pointer;
  transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
  text-align: left;
  color: var(--text-main);
  position: relative;
  overflow: hidden;
  background: linear-gradient(145deg, rgba(255,255,255,0.08) 0%, rgba(255,255,255,0.04) 100%);
  border: 1px solid var(--border-color);
  box-shadow:
    0 4px 15px rgba(0, 0, 0, 0.3),
    inset 0 1px 0 rgba(255, 255, 255, 0.1);
}

.nav-btn::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: radial-gradient(circle at 30% 30%, rgba(255,255,255,0.4) 0%, transparent 60%);
  opacity: 0;
  transition: opacity 0.3s ease;
}

.nav-btn:hover::before {
  opacity: 1;
}

.nav-btn:hover {
  transform: translateX(4px);
  border-color: rgba(56, 189, 248, 0.3);
}

.nav-btn::after {
  content: '';
  position: absolute;
  top: -2px;
  left: -2px;
  right: -2px;
  bottom: -2px;
  background: linear-gradient(45deg, transparent 40%, rgba(255,255,255,0.3) 50%, transparent 60%);
  background-size: 200% 200%;
  border-radius: 14px;
  z-index: -1;
  opacity: 0;
  transition: opacity 0.3s ease;
  animation: button-glow 3s ease infinite;
}

.nav-btn:hover::after {
  opacity: 1;
}

@keyframes button-glow {
  0%, 100% { background-position: 0% 50%; }
  50% { background-position: 100% 50%; }
}

.nav-btn:hover {
  transform: translateX(6px) scale(1.02);
  box-shadow: 
    0 8px 30px rgba(0, 0, 0, 0.5),
    inset 0 1px 0 rgba(255, 255, 255, 0.25),
    0 0 40px rgba(255, 255, 255, 0.15);
}

.nav-btn:active {
  transform: translateX(4px) scale(0.98);
}

.nav-btn span, .nav-btn .nav-icon {
  position: relative;
  z-index: 1;
}

/* Illuminated Button Colors */
.nav-btn.btn-cyan {
  background: linear-gradient(145deg, #00d4ff 0%, #0099cc 100%);
  border: 1px solid rgba(0, 212, 255, 0.5);
  box-shadow: 
    0 4px 20px rgba(0, 212, 255, 0.3),
    inset 0 1px 0 rgba(255, 255, 255, 0.3),
    0 0 30px rgba(0, 212, 255, 0.2);
}

.nav-btn.btn-cyan::after {
  background: linear-gradient(45deg, transparent 40%, rgba(0, 255, 255, 0.6) 50%, transparent 60%);
}

.nav-btn.btn-cyan:hover {
  box-shadow: 
    0 8px 40px rgba(0, 212, 255, 0.5),
    inset 0 1px 0 rgba(255, 255, 255, 0.4),
    0 0 60px rgba(0, 212, 255, 0.4);
}

.nav-btn.btn-red {
  background: linear-gradient(145deg, #ff5757 0%, #cc0000 100%);
  border: 1px solid rgba(255, 87, 87, 0.5);
  box-shadow: 
    0 4px 20px rgba(255, 87, 87, 0.3),
    inset 0 1px 0 rgba(255, 255, 255, 0.3),
    0 0 30px rgba(255, 87, 87, 0.2);
}

.nav-btn.btn-red::after {
  background: linear-gradient(45deg, transparent 40%, rgba(255, 150, 150, 0.6) 50%, transparent 60%);
}

.nav-btn.btn-red:hover {
  box-shadow: 
    0 8px 40px rgba(255, 87, 87, 0.5),
    inset 0 1px 0 rgba(255, 255, 255, 0.4),
    0 0 60px rgba(255, 87, 87, 0.4);
}

.nav-btn.btn-yellow {
  background: linear-gradient(145deg, #fbbf24 0%, #d97706 100%);
  border: 1px solid rgba(251, 191, 36, 0.5);
  box-shadow: 
    0 4px 20px rgba(251, 191, 36, 0.3),
    inset 0 1px 0 rgba(255, 255, 255, 0.3),
    0 0 30px rgba(251, 191, 36, 0.2);
}

.nav-btn.btn-yellow::after {
  background: linear-gradient(45deg, transparent 40%, rgba(255, 220, 100, 0.6) 50%, transparent 60%);
}

.nav-btn.btn-yellow:hover {
  box-shadow: 
    0 8px 40px rgba(251, 191, 36, 0.5),
    inset 0 1px 0 rgba(255, 255, 255, 0.4),
    0 0 60px rgba(251, 191, 36, 0.4);
}

.nav-btn.btn-dark {
  background: linear-gradient(145deg, #2d3748 0%, #1a202c 100%);
  border: 1px solid rgba(255, 255, 255, 0.15);
  color: #a0aec0;
  box-shadow: 
    0 4px 20px rgba(0, 0, 0, 0.4),
    inset 0 1px 0 rgba(255, 255, 255, 0.1),
    0 0 20px rgba(255, 255, 255, 0.05);
}

.nav-btn.btn-dark::after {
  background: linear-gradient(45deg, transparent 40%, rgba(255, 255, 255, 0.2) 50%, transparent 60%);
}

.nav-btn.btn-dark:hover {
  background: linear-gradient(145deg, #4a5568 0%, #2d3748 100%);
  color: #fff;
  box-shadow: 
    0 8px 30px rgba(0, 0, 0, 0.5),
    inset 0 1px 0 rgba(255, 255, 255, 0.2),
    0 0 40px rgba(255, 255, 255, 0.1);
}

.nav-divider {
  height: 1px;
  background: rgba(255, 255, 255, 0.1);
  margin: 8px 0;
}

.nav-icon {
  font-size: 1.1rem;
}

/* Main Content Area */
.content-main {
  display: flex;
  flex-direction: column;
  gap: 16px;
  width: 660px !important;
  min-width: 660px !important;
  max-width: 660px !important;
  grid-column: 2 !important;
}

/* News Ticker Header */
.news-ticker-header {
  display: flex;
  align-items: center;
  gap: 12px;
  background: rgba(0, 0, 0, 0.4);
  border: 1px solid rgba(255, 255, 255, 0.1);
  border-radius: 8px;
  padding: 10px 16px;
  overflow: hidden;
}

.news-badge {
  background: linear-gradient(135deg, #f59e0b, #d97706);
  color: #000;
  font-size: 0.7rem;
  font-weight: 800;
  padding: 4px 10px;
  border-radius: 4px;
  letter-spacing: 1px;
}

.news-scroll {
  flex: 1;
  color: #ccc;
  font-size: 0.9rem;
  overflow: hidden;
  white-space: nowrap;
}

/* Dashboard Grid */
.dashboard-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 12px;
  flex: 1;
}

.stat-card {
  background: linear-gradient(135deg, rgba(20, 22, 35, 0.95) 0%, rgba(15, 17, 28, 0.98) 100%);
  border: 1px solid rgba(255, 255, 255, 0.06);
  border-radius: 8px;
  padding: 10px 12px;
  display: flex;
  flex-direction: column;
  gap: 4px;
  transition: all 0.3s ease;
  min-height: 70px;
}

.stat-card:hover {
  border-color: rgba(255, 255, 255, 0.1);
}

.stat-card.wide {
  grid-column: span 2;
}

.stat-card .progress-bar {
  flex-shrink: 0;
  flex-grow: 0;
}

.stat-header {
  display: flex;
  align-items: center;
  gap: 5px;
  font-size: 0.6rem;
  font-weight: 700;
  color: #5a6478;
  text-transform: uppercase;
  letter-spacing: 0.5px;
  margin-bottom: 2px;
}

.stat-icon {
  font-size: 0.7rem;
}

.stat-value {
  font-size: 1.1rem;
  font-weight: 700;
  color: #e2e8f0;
  display: flex;
  align-items: center;
  gap: 5px;
  line-height: 1.2;
}

.stat-value-large {
  font-size: 0.95rem;
  font-weight: 600;
  color: #e2e8f0;
}

.stat-subvalue {
  font-size: 0.7rem;
  font-weight: 500;
  color: #64748b;
  margin-top: 1px;
}

.stat-text {
  font-size: 0.75rem;
  color: #94a3b8;
  line-height: 1.3;
  margin-top: 2px;
}

.stat-percent {
  font-size: 0.55rem;
  color: #475569;
  text-align: right;
  margin-top: -1px;
  line-height: 1;
}

.stat-trommel {
  font-size: 0.6rem;
  color: #10b981;
  font-weight: 600;
  margin-top: 2px;
}

/* Progress Bars - Compact but visible */
.progress-bar {
  position: relative;
  height: 10px !important;
  background: rgba(15, 23, 42, 0.6);
  border-radius: 5px;
  overflow: hidden;
  margin-top: 6px;
  margin-bottom: 4px;
  box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.5);
  border: 1px solid rgba(255, 255, 255, 0.05);
}

.progress-fill {
  height: 100%;
  border-radius: 5px;
  transition: width 0.5s ease;
  position: relative;
  overflow: hidden;
  background: linear-gradient(90deg, #3b82f6, #60a5fa);
  min-width: 2px; /* Always show at least a tiny bit */
}

.progress-fill::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 50%;
  background: linear-gradient(180deg, rgba(255,255,255,0.2) 0%, transparent 100%);
  border-radius: 3px 3px 0 0;
}

.progress-fill::after {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  bottom: 0;
  width: 20px;
  background: linear-gradient(90deg, transparent, rgba(255,255,255,0.3), transparent);
  animation: shimmer 3s infinite;
}

@keyframes shimmer {
  0% { transform: translateX(-30px); }
  100% { transform: translateX(calc(100% + 30px)); }
}

.progress-fill.green {
  background: linear-gradient(90deg, #059669 0%, #10b981 50%, #34d399 100%);
  box-shadow: 0 0 6px rgba(16, 185, 129, 0.4);
}

.progress-fill.purple {
  background: linear-gradient(90deg, #7c3aed 0%, #a855f7 50%, #c084fc 100%);
  box-shadow: 0 0 6px rgba(168, 85, 247, 0.4);
}

/* Statusbar Main */
.statusbar-main {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 12px;
  background: linear-gradient(135deg, rgba(40, 45, 65, 0.8) 0%, rgba(25, 30, 45, 0.9) 100%);
  border: 1px solid rgba(255, 255, 255, 0.1);
  border-radius: 999px;
  padding: 10px 24px;
  font-size: 0.7rem;
  color: #64748b;
}

.status-icon-small {
  font-size: 0.8rem;
}

.status-separator {
  color: rgba(100, 116, 139, 0.4);
}

/* Right Sidebar */
.sidebar-right {
  display: flex;
  flex-direction: column;
  gap: 16px;
}

/* User Header */
.user-header {
  background: linear-gradient(135deg, rgba(30, 32, 50, 0.8) 0%, rgba(20, 22, 37, 0.9) 100%);
  border: 1px solid rgba(255, 255, 255, 0.1);
  border-radius: 12px;
  padding: 16px;
  text-align: right;
}

.user-info {
  margin-bottom: 12px;
}

.user-title {
  font-family: var(--font-heading);
  font-size: 0.8rem;
  font-weight: 700;
  color: #fff;
  letter-spacing: 1px;
}

.user-name {
  font-size: 0.9rem;
  font-weight: 600;
  color: #e2e8f0;
}

.user-level {
  font-size: 0.75rem;
  color: var(--text-muted);
}

.btn-discord-small {
  background: #5865F2;
  color: #fff;
  border: none;
  border-radius: 8px;
  padding: 8px 16px;
  font-size: 0.8rem;
  font-weight: 600;
  cursor: pointer;
  transition: all 0.2s;
}

.btn-discord-small:hover {
  background: #4752c4;
}

.user-logged-in {
  display: flex;
  align-items: center;
  gap: 10px;
  justify-content: flex-end;
}

.user-badge-small {
  background: rgba(255, 255, 255, 0.1);
  padding: 4px 12px;
  border-radius: 20px;
  font-size: 0.8rem;
}

.btn-logout {
  background: rgba(239, 68, 68, 0.2);
  color: #ef4444;
  border: 1px solid rgba(239, 68, 68, 0.3);
  border-radius: 6px;
  padding: 4px 10px;
  font-size: 0.75rem;
  cursor: pointer;
}

/* Chat Box */
.chat-box {
  background: linear-gradient(135deg, rgba(30, 32, 50, 0.8) 0%, rgba(20, 22, 37, 0.9) 100%);
  border: 2px solid rgba(0, 210, 255, 0.3);
  border-radius: 16px;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  flex: 1;
  min-height: 400px;
}

.chat-header-box {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 12px 16px;
  background: rgba(0, 0, 0, 0.3);
  border-bottom: 1px solid rgba(255, 255, 255, 0.1);
}

.chat-title {
  font-family: var(--font-heading);
  font-size: 0.85rem;
  font-weight: 700;
  color: #facc15;
  letter-spacing: 1px;
}

.btn-refresh {
  background: transparent;
  border: none;
  font-size: 1rem;
  cursor: pointer;
  opacity: 0.7;
  transition: all 0.2s;
}

.btn-refresh:hover {
  opacity: 1;
  transform: rotate(180deg);
}

.chat-messages {
  flex: 1;
  overflow-y: auto;
  padding: 16px;
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.chat-empty {
  text-align: center;
  color: var(--text-muted);
  font-size: 0.85rem;
  font-style: italic;
  margin-top: 20px;
}

.chat-input-box {
  display: flex;
  gap: 8px;
  padding: 12px;
  background: rgba(0, 0, 0, 0.3);
  border-top: 1px solid rgba(255, 255, 255, 0.1);
}

.chat-input-box input {
  flex: 1;
  background: rgba(255, 255, 255, 0.05);
  border: 1px solid rgba(255, 255, 255, 0.1);
  border-radius: 8px;
  padding: 10px 14px;
  color: #fff;
  font-size: 0.85rem;
  outline: none;
}

.chat-input-box input:focus {
  border-color: var(--accent-blue);
}

.btn-send {
  background: linear-gradient(135deg, #00b4db, #0083b0);
  color: #fff;
  border: none;
  border-radius: 8px;
  padding: 10px 16px;
  font-weight: 600;
  cursor: pointer;
  transition: all 0.2s;
}

.btn-send:hover {
  filter: brightness(1.1);
}

/* Responsive */
@media (max-width: 1200px) {
  .main-layout {
    grid-template-columns: 180px 1fr 280px;
  }
}

@media (max-width: 992px) {
  .main-layout {
    grid-template-columns: 1fr;
  }
  
  .sidebar-left,
  .sidebar-right {
    order: 2;
  }
  
  .content-main {
    order: 1;
  }
  
  .sidebar-nav {
    flex-direction: row;
    flex-wrap: wrap;
  }
  
  .nav-btn {
    flex: 1;
    min-width: 120px;
  }
}

/* Hidden utility */
.hidden {
  display: none !important;
}
