:root {
  --fastapi-primary: #009485;
  --fastapi-secondary: #00b4a0;
  --fastapi-light: #00d4aa;
  --fastapi-dark: #007a6d;
  --fastapi-featured: #f1d010;
  --dark-bg: #0f1419;
  --dark-card: #1a1f2e;
  --dark-border: #2a3142;
}

body {
  background-color: var(--dark-bg);
  color: #e0e0e0;
}

.bg-fastapi {
  background: linear-gradient(
    135deg,
    var(--fastapi-primary) 0%,
    var(--fastapi-secondary) 100%
  ) !important;
}

.text-fastapi {
  color: var(--fastapi-light) !important;
}

.btn-fastapi {
  background-color: var(--fastapi-primary);
  border-color: var(--fastapi-primary);
  color: white;
}

.btn-fastapi:hover {
  background-color: var(--fastapi-dark);
  border-color: var(--fastapi-dark);
  color: white;
  transform: translateY(-2px);
  box-shadow: 0 4px 12px rgba(0, 212, 170, 0.3);
}

.btn-fastapi-light {
  background-color: var(--fastapi-light);
  border-color: var(--fastapi-light);
  color: var(--fastapi-primary);
  font-weight: 600;
}

.btn-fastapi-light:hover {
  background-color: white;
  border-color: white;
  color: var(--fastapi-primary);
}

.badge-fastapi {
  background-color: var(--fastapi-light);
  color: var(--fastapi-primary);
  font-weight: 600;
}

.tag-badge {
  background-color: rgba(0, 212, 170, 0.15);
  color: var(--fastapi-light);
  font-size: 0.75rem;
  font-weight: 600;
  border: 1px solid rgba(0, 212, 170, 0.3);
}

/* Dark Theme Customizations */
.navbar {
  background: linear-gradient(
    135deg,
    var(--fastapi-primary) 0%,
    var(--fastapi-secondary) 100%
  ) !important;
  box-shadow: 0 4px 20px rgba(0, 148, 133, 0.2);
}

.hero-section {
  background: linear-gradient(135deg, var(--dark-bg) 0%, var(--dark-card) 100%);
  border-bottom: 2px solid var(--dark-border);
}

.card {
  background-color: var(--dark-card);
  border: 1px solid var(--dark-border);
  transition: all 0.3s ease;
}

.card:hover {
  border-color: var(--fastapi-light);
  box-shadow: 0 8px 25px rgba(0, 212, 170, 0.2);
  transform: translateY(-8px);
}

.card-body {
  color: #e0e0e0;
}

.card-footer {
  background-color: rgba(0, 212, 170, 0.05);
  border-top: 1px solid var(--dark-border);
}

.stat-card {
  background: linear-gradient(
    135deg,
    rgba(0, 212, 170, 0.1) 0%,
    rgba(0, 148, 133, 0.05) 100%
  );
  border: 1px solid rgba(0, 212, 170, 0.2);
}

.blog-header {
  background: linear-gradient(
    135deg,
    var(--fastapi-primary) 0%,
    var(--fastapi-secondary) 100%
  );
  position: relative;
  overflow: hidden;
}

.blog-header::before {
  content: "";
  position: absolute;
  top: 0;
  right: 0;
  width: 100px;
  height: 100px;
  background: rgba(255, 255, 255, 0.1);
  border-radius: 50%;
  transform: translate(30%, -30%);
}

.blog-title {
  position: relative;
  z-index: 1;
}

.text-secondary {
  color: #a0a0a0 !important;
}

.text-dark {
  color: #e0e0e0 !important;
}

.section-title {
  color: var(--fastapi-light);
  font-weight: 700;
}

.alert-heading {
  color: white;
}

/* === Destaque Premium / Card Promovido === */

/* === Card Promovido === */
.promoted-card-gold {
  position: relative;
  border: 2px solid #d4af37 !important;
  /* ouro */
  border-radius: 14px;
  overflow: hidden;
  transition: 0.25s ease-in-out;
  box-shadow: 0 0 15px rgba(212, 175, 55, 0.35) !important;
}

/* Hover */
.promoted-card-gold:hover {
  transform: translateY(-4px);
  box-shadow: 0 0 25px rgba(212, 175, 55, 0.55) !important;
}

/* Destaque no cabeçalho */
.promoted-card-gold .blog-header {
  background: linear-gradient(135deg, #2a2305, #3b3107);
  border-bottom: 1px solid rgba(212, 175, 55, 0.4);
}

/* Título com brilho */
.promoted-card-gold .blog-title {
  color: #f3d98b !important;
  text-shadow: 0 0 6px rgba(243, 217, 139, 0.5);
}

/* Autor */
.promoted-card-gold small {
  color: #e7c96b !important;
}

/* Tags */
.promoted-card-gold .tag-badge {
  background: rgba(212, 175, 55, 0.25) !important;
  color: #f3d98b !important;
  border: 1px solid rgba(212, 175, 55, 0.45);
}

/* Footer */
.promoted-card-gold .card-footer {
  background: rgba(212, 175, 55, 0.1);
  border-top: 1px solid rgba(212, 175, 55, 0.3);
}

/* Ícone de seta */
.promoted-card-gold .text-fastapi {
  color: #f3d98b !important;
}

/* Selo PREMIUM */
.promoted-card-gold::before {
  content: "⭐ PREMIUM";
  position: absolute;
  top: 10px;
  right: 10px;
  background: #d4af37;
  color: #000;
  padding: 4px 10px;
  font-size: 0.7rem;
  font-weight: bold;
  border-radius: 6px;
  box-shadow: 0 0 6px rgba(212, 175, 55, 0.6);
  z-index: 20;
}

/* === Card Promovido — SILVER === */
.promoted-card-silver {
  position: relative;
  border: 2px solid #c0c0c0 !important; /* prata */
  border-radius: 14px;
  overflow: hidden;
  transition: 0.25s ease-in-out;
  box-shadow: 0 0 15px rgba(180, 180, 180, 0.35) !important;
  background: #1a1a1a;
}

/* Hover */
.promoted-card-silver:hover {
  transform: translateY(-4px);
  box-shadow: 0 0 25px rgba(210, 210, 210, 0.55) !important;
}

/* Destaque no cabeçalho — prata polida */
.promoted-card-silver .blog-header {
  background: linear-gradient(135deg, #444, #2c2c2c) !important;
  border-bottom: 1px solid rgba(200, 200, 200, 0.4);
}

/* Título com brilho metálico */
.promoted-card-silver .blog-title {
  color: #e5e5e5 !important;
  text-shadow: 0 0 6px rgba(230, 230, 230, 0.5);
}

/* Autor */
.promoted-card-silver small {
  color: #d0d0d0 !important;
}

/* Tags — prata fosca */
.promoted-card-silver .tag-badge {
  background: rgba(220, 220, 220, 0.2) !important;
  color: #f0f0f0 !important;
  border: 1px solid rgba(220, 220, 220, 0.4);
}

/* Footer */
.promoted-card-silver .card-footer {
  background: rgba(200, 200, 200, 0.07);
  border-top: 1px solid rgba(220, 220, 220, 0.3);
}

/* Ícone de seta */
.promoted-card-silver .text-fastapi {
  color: #e5e5e5 !important;
}

/* Selo SILVER */
.promoted-card-silver::before {
  content: "🥈 SILVER";
  position: absolute;
  top: 10px;
  right: 10px;
  background: linear-gradient(135deg, #d9d9d9, #bfbfbf, #ececec);
  color: #000;
  padding: 4px 10px;
  font-size: 0.7rem;
  font-weight: bold;
  border-radius: 6px;
  box-shadow: 0 0 6px rgba(210, 210, 210, 0.6);
  z-index: 20;
}
.promotion-card-wrapper .card {
  min-height: 260px;
  border-radius: 16px;
}

/*-- BLOGS ANTIGOS --*/
/* === BLOGS ANTIGOS === */
.old-card {
  position: relative;
  border: 1.5px solid #5e5b55 !important;
  /* tom de metal envelhecido */
  border-radius: 12px;
  overflow: hidden;
  transition: 0.2s ease-in-out;
  background: #1d1c1a;
  /* leve papel queimado */
  box-shadow: 0 0 8px rgba(40, 38, 35, 0.4) !important;
  /* sombra fosca */
  filter: sepia(35%) contrast(85%) brightness(90%);
  /* efeito envelhecido */
}

/* Hover — bem sutil */
.old-card:hover {
  transform: translateY(-3px);
  box-shadow: 0 0 15px rgba(40, 38, 35, 0.5) !important;
  filter: sepia(25%) contrast(90%) brightness(95%);
}

/* Cabeçalho com textura mais envelhecida */
.old-card .blog-header {
  background: linear-gradient(145deg, #2f2c23, #26241d);
  border-bottom: 1px solid rgba(94, 91, 85, 0.3);
}

/* Título sem brilho, tipografia antiga */
.old-card .blog-title {
  color: #b4ae9f !important;
  /* tom de papel antigo */
  text-shadow: none;
  /* sem brilho */
  font-weight: 600;
}

/* Autor — apagado */
.old-card small {
  color: #8f8a7e !important;
}

/* Tags — aparência de etiqueta velha */
.old-card .tag-badge {
  background: rgba(94, 91, 85, 0.25) !important;
  color: #b4ae9f !important;
  border: 1px solid rgba(94, 91, 85, 0.35);
}

/* Footer — papel sujo */
.old-card .card-footer {
  background: rgba(56, 52, 46, 0.25);
  border-top: 1px solid rgba(94, 91, 85, 0.25);
}

/* Ícone — desbotado */
.old-card .text-fastapi {
  color: #a7a396 !important;
}

/* Selo OLD — estilo rótulo antigo */
.old-card::before {
  content: "📜 OLD";
  position: absolute;
  top: 10px;
  right: 10px;
  background: #3b3834;
  /* cor de couro envelhecido */
  color: #e0d8c6;
  /* tom de pergaminho */
  padding: 3px 9px;
  font-size: 0.65rem;
  font-weight: bold;
  border-radius: 5px;
  border: 1px solid #5e5b55;
  box-shadow: 0 0 4px rgba(40, 38, 35, 0.4);
  font-style: italic;
  z-index: 20;
}

footer {
  background-color: var(--dark-card);
  border-top: 1px solid var(--dark-border);
}

footer p {
  color: #a0a0a0;
}

footer a {
  color: var(--fastapi-light);
  text-decoration: none;
}

footer a:hover {
  text-decoration: underline;
}

.modal-content {
  background-color: var(--dark-card);
  border: 1px solid var(--dark-border);
}

.modal-body {
  color: #e0e0e0;
}

.form-control {
  background-color: rgba(0, 212, 170, 0.05);
  border: 1px solid var(--dark-border);
  color: #e0e0e0;
}

.form-control:focus {
  background-color: rgba(0, 212, 170, 0.1);
  border-color: var(--fastapi-light);
  color: #e0e0e0;
  box-shadow: 0 0 0 0.25rem rgba(0, 212, 170, 0.25);
}

.form-label {
  color: #e0e0e0;
}

.navbar-brand {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  font-weight: 700;
  font-size: 20px;
}

.navbar-icon {
  width: 40px;
  height: 40px;
  background: white;
  border-radius: 6px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 22px;
  color: var(--fastapi-primary);
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.2);
}

.nav-link {
  color: white !important;
  font-weight: 500;
  transition: all 0.3s ease;
}

.nav-link:hover {
  color: var(--fastapi-light) !important;
}

/* Smooth transitions */
* {
  transition: background-color 0.2s ease, border-color 0.2s ease;
}
