/* =====================================================
   Features Batch 4 CSS
   Blog, Forum, Rangliste, Produkt-Vergleich, Vendor-Shops
   Dark theme with purple accents
   ===================================================== */

/* =====================================================
   1. BLOG
   ===================================================== */
.blog-container { max-width: 900px; margin: 0 auto; padding: 2rem 1rem; }
.blog-header { text-align: center; margin-bottom: 2rem; }
.blog-header h1 { font-size: 2rem; color: #fff; margin-bottom: .5rem; }
.blog-header p { color: #8888a0; }

.blog-categories-nav { display: flex; gap: .5rem; justify-content: center; flex-wrap: wrap; margin-bottom: 2rem; }
.blog-categories-nav button {
  background: #12121a; border: 1px solid #1e1e2e; color: #8888a0; padding: .5rem 1.2rem;
  border-radius: 8px; font-size: .85rem; cursor: pointer; transition: all .2s;
}
.blog-categories-nav button:hover,
.blog-categories-nav button.active {
  background: rgba(124,58,237,.15); border-color: #7c3aed; color: #a78bfa;
}

.blog-post-card {
  background: #12121a; border: 1px solid #1e1e2e; border-radius: 12px;
  padding: 1.5rem; margin-bottom: 1.25rem; transition: all .2s; cursor: pointer;
}
.blog-post-card:hover { border-color: #7c3aed; transform: translateY(-2px); }
.blog-post-card .blog-card-category {
  display: inline-block; background: rgba(124,58,237,.15); color: #a78bfa;
  padding: .2rem .6rem; border-radius: 4px; font-size: .75rem; font-weight: 600; margin-bottom: .75rem;
}
.blog-post-card h2 { font-size: 1.25rem; color: #fff; margin-bottom: .5rem; }
.blog-post-card .blog-card-excerpt { color: #8888a0; font-size: .9rem; line-height: 1.5; margin-bottom: .75rem; }
.blog-post-card .blog-card-meta { display: flex; align-items: center; gap: 1rem; color: #55556a; font-size: .8rem; }
.blog-post-card .blog-card-meta img {
  width: 24px; height: 24px; border-radius: 50%; object-fit: cover;
}
.blog-card-meta span { display: flex; align-items: center; gap: .3rem; }

/* Blog detail */
.blog-detail { max-width: 800px; margin: 0 auto; padding: 2rem 1rem; }
.blog-detail-header { margin-bottom: 2rem; }
.blog-detail-header .blog-back-btn {
  background: none; border: none; color: #a78bfa; cursor: pointer; font-size: .85rem;
  display: flex; align-items: center; gap: .3rem; margin-bottom: 1rem;
}
.blog-detail-header h1 { font-size: 2rem; color: #fff; margin-bottom: .75rem; }
.blog-detail-meta { display: flex; align-items: center; gap: 1rem; color: #8888a0; font-size: .85rem; flex-wrap: wrap; }
.blog-detail-meta img { width: 32px; height: 32px; border-radius: 50%; object-fit: cover; }
.blog-detail-content { color: #c8c8d4; line-height: 1.8; font-size: 1rem; margin-bottom: 2rem; }
.blog-detail-content p { margin-bottom: 1rem; }

/* Blog comments */
.blog-comments { margin-top: 2rem; border-top: 1px solid #1e1e2e; padding-top: 1.5rem; }
.blog-comments h3 { color: #fff; font-size: 1.1rem; margin-bottom: 1rem; }
.blog-comment-item {
  background: #0f0f1a; border: 1px solid #1e1e2e; border-radius: 10px;
  padding: 1rem; margin-bottom: .75rem;
}
.blog-comment-item .comment-header { display: flex; align-items: center; gap: .5rem; margin-bottom: .5rem; }
.blog-comment-item .comment-header img { width: 28px; height: 28px; border-radius: 50%; object-fit: cover; }
.blog-comment-item .comment-header strong { color: #fff; font-size: .85rem; }
.blog-comment-item .comment-header span { color: #55556a; font-size: .75rem; }
.blog-comment-item .comment-text { color: #c8c8d4; font-size: .9rem; line-height: 1.5; }

.blog-comment-form { margin-top: 1rem; }
.blog-comment-form textarea {
  width: 100%; background: #1a1a2e; border: 1px solid #2a2a3e; border-radius: 10px;
  color: #e2e2e8; padding: .75rem; font-size: .9rem; min-height: 80px; resize: vertical;
  font-family: inherit;
}
.blog-comment-form textarea:focus { outline: none; border-color: #7c3aed; }
.blog-comment-form button {
  margin-top: .5rem; background: linear-gradient(135deg, #7c3aed, #6d28d9); color: #fff;
  border: none; padding: .6rem 1.5rem; border-radius: 8px; font-size: .85rem; cursor: pointer;
  transition: opacity .2s;
}
.blog-comment-form button:hover { opacity: .9; }

/* =====================================================
   2. FORUM
   ===================================================== */
.forum-container { max-width: 960px; margin: 0 auto; padding: 2rem 1rem; }
.forum-header { text-align: center; margin-bottom: 2rem; }
.forum-header h1 { font-size: 2rem; color: #fff; margin-bottom: .5rem; }
.forum-header p { color: #8888a0; }

.forum-category-list { display: flex; flex-direction: column; gap: .75rem; }
.forum-category-card {
  background: #12121a; border: 1px solid #1e1e2e; border-radius: 12px;
  padding: 1.25rem 1.5rem; display: flex; align-items: center; gap: 1rem;
  cursor: pointer; transition: all .2s;
}
.forum-category-card:hover { border-color: #7c3aed; transform: translateX(4px); }
.forum-category-icon { font-size: 1.8rem; width: 50px; text-align: center; flex-shrink: 0; }
.forum-category-info { flex: 1; }
.forum-category-info h3 { color: #fff; font-size: 1.05rem; margin-bottom: .25rem; }
.forum-category-info p { color: #8888a0; font-size: .85rem; }
.forum-category-stats { text-align: right; color: #55556a; font-size: .8rem; flex-shrink: 0; }
.forum-category-stats strong { color: #a78bfa; display: block; font-size: 1.1rem; }

/* Thread list */
.forum-thread-list { margin-top: 1.5rem; }
.forum-thread-card {
  background: #12121a; border: 1px solid #1e1e2e; border-radius: 10px;
  padding: 1rem 1.25rem; margin-bottom: .6rem; display: flex; align-items: center;
  gap: 1rem; cursor: pointer; transition: all .2s;
}
.forum-thread-card:hover { border-color: #7c3aed; }
.forum-thread-card.pinned { border-left: 3px solid #7c3aed; }
.forum-thread-card.locked { opacity: .7; }
.forum-thread-avatar img { width: 36px; height: 36px; border-radius: 50%; object-fit: cover; }
.forum-thread-info { flex: 1; }
.forum-thread-info h4 { color: #fff; font-size: .95rem; margin-bottom: .2rem; display: flex; align-items: center; gap: .5rem; }
.forum-thread-info .thread-badges span {
  display: inline-block; padding: .1rem .4rem; border-radius: 4px; font-size: .65rem; font-weight: 600;
}
.forum-thread-info .badge-pinned { background: rgba(124,58,237,.2); color: #a78bfa; }
.forum-thread-info .badge-locked { background: rgba(239,68,68,.15); color: #ef4444; }
.forum-thread-info .thread-meta { color: #55556a; font-size: .8rem; }
.forum-thread-stats { display: flex; gap: 1.2rem; color: #55556a; font-size: .8rem; text-align: center; flex-shrink: 0; }
.forum-thread-stats div strong { display: block; color: #8888a0; font-size: .95rem; }

/* Thread detail */
.forum-thread-detail { max-width: 800px; margin: 0 auto; padding: 2rem 1rem; }
.forum-thread-detail .thread-op {
  background: #12121a; border: 1px solid #1e1e2e; border-radius: 12px;
  padding: 1.5rem; margin-bottom: 1.5rem;
}
.forum-thread-detail .thread-op h2 { color: #fff; font-size: 1.3rem; margin-bottom: .75rem; }
.forum-thread-detail .thread-op .op-meta { display: flex; align-items: center; gap: .5rem; color: #8888a0; font-size: .85rem; margin-bottom: 1rem; }
.forum-thread-detail .thread-op .op-meta img { width: 28px; height: 28px; border-radius: 50%; object-fit: cover; }
.forum-thread-detail .thread-op .op-content { color: #c8c8d4; line-height: 1.7; }

.forum-reply-item {
  background: #0f0f1a; border: 1px solid #1e1e2e; border-radius: 10px;
  padding: 1rem 1.25rem; margin-bottom: .6rem;
}
.forum-reply-item .reply-header { display: flex; align-items: center; gap: .5rem; margin-bottom: .5rem; }
.forum-reply-item .reply-header img { width: 28px; height: 28px; border-radius: 50%; object-fit: cover; }
.forum-reply-item .reply-header strong { color: #fff; font-size: .85rem; }
.forum-reply-item .reply-header .reply-role {
  background: rgba(124,58,237,.15); color: #a78bfa; padding: .1rem .4rem;
  border-radius: 4px; font-size: .65rem; font-weight: 600;
}
.forum-reply-item .reply-header span { color: #55556a; font-size: .75rem; }
.forum-reply-item .reply-content { color: #c8c8d4; font-size: .9rem; line-height: 1.5; }

.forum-reply-form { margin-top: 1.5rem; }
.forum-reply-form textarea {
  width: 100%; background: #1a1a2e; border: 1px solid #2a2a3e; border-radius: 10px;
  color: #e2e2e8; padding: .75rem; font-size: .9rem; min-height: 100px; resize: vertical;
  font-family: inherit;
}
.forum-reply-form textarea:focus { outline: none; border-color: #7c3aed; }
.forum-reply-form button {
  margin-top: .5rem; background: linear-gradient(135deg, #7c3aed, #6d28d9); color: #fff;
  border: none; padding: .6rem 1.5rem; border-radius: 8px; font-size: .85rem; cursor: pointer;
}
.forum-reply-form button:hover { opacity: .9; }

.forum-new-thread-btn {
  background: linear-gradient(135deg, #7c3aed, #6d28d9); color: #fff; border: none;
  padding: .65rem 1.5rem; border-radius: 8px; font-size: .85rem; cursor: pointer;
  display: inline-flex; align-items: center; gap: .4rem; margin-bottom: 1rem;
}
.forum-new-thread-btn:hover { opacity: .9; }

.forum-breadcrumb { display: flex; align-items: center; gap: .5rem; margin-bottom: 1rem; color: #55556a; font-size: .85rem; }
.forum-breadcrumb a { color: #a78bfa; text-decoration: none; }
.forum-breadcrumb a:hover { text-decoration: underline; }

/* =====================================================
   3. RANGLISTE (Leaderboard)
   ===================================================== */
.leaderboard-container { max-width: 900px; margin: 0 auto; padding: 2rem 1rem; }
.leaderboard-header { text-align: center; margin-bottom: 2rem; }
.leaderboard-header h1 { font-size: 2rem; color: #fff; margin-bottom: .5rem; }
.leaderboard-header p { color: #8888a0; }

.leaderboard-filters { display: flex; gap: .5rem; justify-content: center; flex-wrap: wrap; margin-bottom: 1.5rem; }
.leaderboard-filters select {
  background: #12121a; border: 1px solid #1e1e2e; color: #e2e2e8; padding: .5rem 1rem;
  border-radius: 8px; font-size: .85rem; cursor: pointer; font-family: inherit;
}
.leaderboard-filters select:focus { outline: none; border-color: #7c3aed; }

.leaderboard-list { display: flex; flex-direction: column; gap: .6rem; }
.leaderboard-item {
  background: #12121a; border: 1px solid #1e1e2e; border-radius: 12px;
  padding: 1rem 1.25rem; display: flex; align-items: center; gap: 1rem;
  transition: all .2s;
}
.leaderboard-item:hover { border-color: #7c3aed; }

.leaderboard-rank {
  width: 44px; height: 44px; border-radius: 50%; display: flex; align-items: center;
  justify-content: center; font-weight: 800; font-size: 1.1rem; flex-shrink: 0;
}
.leaderboard-rank.rank-1 {
  background: linear-gradient(135deg, #ffd700, #ffaa00); color: #1a1a00;
  box-shadow: 0 0 15px rgba(255,215,0,.3);
  animation: leaderboard-pulse 2s infinite;
}
.leaderboard-rank.rank-2 {
  background: linear-gradient(135deg, #c0c0c0, #a0a0a0); color: #1a1a1a;
  box-shadow: 0 0 10px rgba(192,192,192,.25);
  animation: leaderboard-pulse 2.5s infinite;
}
.leaderboard-rank.rank-3 {
  background: linear-gradient(135deg, #cd7f32, #a0612b); color: #1a1a1a;
  box-shadow: 0 0 10px rgba(205,127,50,.25);
  animation: leaderboard-pulse 3s infinite;
}
.leaderboard-rank.rank-other {
  background: #1a1a2e; color: #8888a0; border: 1px solid #2a2a3e;
}

@keyframes leaderboard-pulse {
  0%, 100% { transform: scale(1); }
  50% { transform: scale(1.08); }
}

.leaderboard-avatar img { width: 40px; height: 40px; border-radius: 50%; object-fit: cover; }
.leaderboard-user { flex: 1; }
.leaderboard-user strong { color: #fff; font-size: .95rem; display: block; }
.leaderboard-user .user-role {
  display: inline-block; background: rgba(124,58,237,.15); color: #a78bfa;
  padding: .1rem .4rem; border-radius: 4px; font-size: .65rem; font-weight: 600;
}
.leaderboard-stats { display: flex; gap: 1.5rem; flex-shrink: 0; text-align: center; }
.leaderboard-stats div { color: #55556a; font-size: .75rem; }
.leaderboard-stats div strong { display: block; color: #a78bfa; font-size: .95rem; }

/* =====================================================
   4. PRODUKT-VERGLEICH (Product Compare)
   ===================================================== */
.compare-btn {
  background: rgba(124,58,237,.1); border: 1px solid rgba(124,58,237,.3); color: #a78bfa;
  padding: .35rem .7rem; border-radius: 6px; font-size: .75rem; cursor: pointer;
  display: inline-flex; align-items: center; gap: .3rem; transition: all .2s;
}
.compare-btn:hover { background: rgba(124,58,237,.2); border-color: #7c3aed; }
.compare-btn.active { background: #7c3aed; color: #fff; border-color: #7c3aed; }

.compare-bar {
  position: fixed; bottom: 0; left: 0; right: 0; z-index: 9999;
  background: #12121a; border-top: 2px solid #7c3aed;
  padding: .75rem 1.5rem; display: none; align-items: center; justify-content: space-between;
  box-shadow: 0 -4px 20px rgba(0,0,0,.5);
}
.compare-bar.visible { display: flex; }
.compare-bar-items { display: flex; gap: .75rem; flex: 1; }
.compare-bar-item {
  background: #1a1a2e; border: 1px solid #2a2a3e; border-radius: 8px;
  padding: .4rem .8rem; display: flex; align-items: center; gap: .5rem;
  font-size: .8rem; color: #e2e2e8;
}
.compare-bar-item img { width: 28px; height: 28px; border-radius: 4px; object-fit: cover; }
.compare-bar-item .remove-compare {
  background: none; border: none; color: #ef4444; cursor: pointer; font-size: 1rem;
  padding: 0; line-height: 1;
}
.compare-bar-actions { display: flex; gap: .5rem; margin-left: 1rem; }
.compare-bar-actions .compare-go-btn {
  background: linear-gradient(135deg, #7c3aed, #6d28d9); color: #fff; border: none;
  padding: .5rem 1.2rem; border-radius: 8px; font-size: .85rem; cursor: pointer;
}
.compare-bar-actions .compare-clear-btn {
  background: rgba(239,68,68,.1); color: #ef4444; border: 1px solid rgba(239,68,68,.3);
  padding: .5rem 1rem; border-radius: 8px; font-size: .85rem; cursor: pointer;
}

/* Compare page */
.compare-page { max-width: 1100px; margin: 0 auto; padding: 2rem 1rem; }
.compare-page h1 { font-size: 1.8rem; color: #fff; text-align: center; margin-bottom: 2rem; }
.compare-table-wrapper { overflow-x: auto; }
.compare-table {
  width: 100%; border-collapse: separate; border-spacing: 0;
  background: #12121a; border: 1px solid #1e1e2e; border-radius: 12px; overflow: hidden;
}
.compare-table th {
  background: #0f0f1a; color: #a78bfa; font-size: .8rem; font-weight: 600;
  padding: .75rem 1rem; text-align: left; border-bottom: 1px solid #1e1e2e;
  white-space: nowrap;
}
.compare-table td {
  padding: .75rem 1rem; color: #c8c8d4; font-size: .9rem;
  border-bottom: 1px solid #1a1a28; vertical-align: top;
}
.compare-table tr:last-child td { border-bottom: none; }
.compare-table .compare-product-header { text-align: center; }
.compare-table .compare-product-header img {
  width: 80px; height: 80px; border-radius: 8px; object-fit: cover; margin-bottom: .5rem;
}
.compare-table .compare-product-header h3 { color: #fff; font-size: .95rem; margin-bottom: .25rem; }
.compare-table .compare-product-header .price { color: #7c3aed; font-weight: 700; font-size: 1.1rem; }
.compare-table .compare-remove-btn {
  background: rgba(239,68,68,.1); color: #ef4444; border: 1px solid rgba(239,68,68,.3);
  padding: .3rem .6rem; border-radius: 6px; font-size: .75rem; cursor: pointer; margin-top: .5rem;
}

/* =====================================================
   5. CUSTOM VENDOR-SHOPS
   ===================================================== */
.vendor-shop-page { max-width: 1100px; margin: 0 auto; padding: 0 1rem 2rem; }
.vendor-shop-banner {
  width: 100%; height: 220px; border-radius: 12px; background-size: cover;
  background-position: center; background-color: #1a1a2e; position: relative;
  margin-bottom: -50px;
}
.vendor-shop-banner-overlay {
  position: absolute; inset: 0; background: linear-gradient(to top, rgba(10,10,15,.9), transparent 60%);
  border-radius: 12px;
}
.vendor-shop-header {
  position: relative; z-index: 2; display: flex; align-items: flex-end; gap: 1rem;
  padding: 0 1.5rem; margin-bottom: 1.5rem;
}
.vendor-shop-header img {
  width: 80px; height: 80px; border-radius: 50%; border: 3px solid #7c3aed;
  object-fit: cover; background: #12121a;
}
.vendor-shop-header-info h1 { font-size: 1.6rem; color: #fff; margin-bottom: .15rem; }
.vendor-shop-header-info p { color: #8888a0; font-size: .9rem; }

.vendor-shop-bio {
  background: #12121a; border: 1px solid #1e1e2e; border-radius: 10px;
  padding: 1.25rem; color: #c8c8d4; font-size: .9rem; line-height: 1.6;
  margin-bottom: 2rem;
}

.vendor-shop-products-grid {
  display: grid; grid-template-columns: repeat(auto-fill, minmax(250px, 1fr)); gap: 1rem;
}

/* Vendor shop settings */
.vendor-shop-settings {
  max-width: 600px; margin: 0 auto; padding: 2rem 1rem;
}
.vendor-shop-settings h2 { font-size: 1.5rem; color: #fff; margin-bottom: 1.5rem; }
.vendor-shop-settings .form-group { margin-bottom: 1rem; }
.vendor-shop-settings label { display: block; color: #8888a0; font-size: .85rem; margin-bottom: .3rem; }
.vendor-shop-settings input,
.vendor-shop-settings textarea {
  width: 100%; background: #1a1a2e; border: 1px solid #2a2a3e; border-radius: 8px;
  color: #e2e2e8; padding: .6rem .8rem; font-size: .9rem; font-family: inherit;
}
.vendor-shop-settings input:focus,
.vendor-shop-settings textarea:focus { outline: none; border-color: #7c3aed; }
.vendor-shop-settings textarea { min-height: 100px; resize: vertical; }
.vendor-shop-settings input[type="color"] {
  width: 50px; height: 36px; padding: 2px; cursor: pointer; border-radius: 6px;
}
.vendor-shop-settings .save-btn {
  background: linear-gradient(135deg, #7c3aed, #6d28d9); color: #fff; border: none;
  padding: .65rem 2rem; border-radius: 8px; font-size: .9rem; cursor: pointer; margin-top: .5rem;
}
.vendor-shop-settings .save-btn:hover { opacity: .9; }
.vendor-shop-settings .shop-url-preview {
  color: #55556a; font-size: .8rem; margin-top: .3rem;
}
.vendor-shop-settings .shop-url-preview a { color: #a78bfa; }

/* =====================================================
   RESPONSIVE
   ===================================================== */
@media (max-width: 768px) {
  .leaderboard-stats { gap: .75rem; }
  .leaderboard-stats div strong { font-size: .85rem; }
  .forum-category-card { flex-direction: column; align-items: flex-start; }
  .forum-category-stats { text-align: left; }
  .forum-thread-card { flex-direction: column; align-items: flex-start; }
  .forum-thread-stats { width: 100%; justify-content: flex-start; }
  .compare-bar { flex-direction: column; gap: .5rem; }
  .compare-bar-actions { margin-left: 0; }
  .vendor-shop-banner { height: 150px; }
  .vendor-shop-header img { width: 60px; height: 60px; }
  .vendor-shop-products-grid { grid-template-columns: 1fr; }
  .compare-table { font-size: .8rem; }
}
