/* ═══════════════════════════════════════════
   LUPPAN — calendario.css
   ═══════════════════════════════════════════ */

/* ── WRAPPER ── */
.cal-wrapper {
  max-width: 1160px;
  margin: 0 auto;
  padding: 0 20px 60px;
}

/* ── CABEÇALHO DA PÁGINA ── */
.cal-header {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 28px;
}
.cal-header-bar {
  width: 4px;
  height: 28px;
  background: linear-gradient(to bottom, #7b2fff, #ff3e6c);
  border-radius: 2px;
  flex-shrink: 0;
}
.cal-header h1 {
  font-family: 'Bebas Neue', sans-serif;
  font-size: 28px;
  letter-spacing: 2px;
  color: #e8e8f0;
}
.cal-header-sub {
  font-size: 13px;
  color: #7878a0;
  margin-top: 2px;
}

/* ── LAYOUT: sidebar + conteúdo ── */
.cal-layout {
  display: grid;
  grid-template-columns: 150px 1fr;
  gap: 28px;
  align-items: start;
}

/* ── SIDEBAR DOS DIAS ── */
.cal-sidebar {
  position: sticky;
  top: 88px;
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.cal-sidebar-title {
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 2px;
  color: #7878a0;
  text-transform: uppercase;
  margin-bottom: 4px;
  padding-left: 4px;
}

.dia-btn {
  display: flex;
  align-items: center;
  gap: 8px;
  width: 100%;
  padding: 10px 14px;
  background: rgba(255,255,255,0.04);
  border: 1px solid rgba(255,255,255,0.07);
  border-radius: 9px;
  color: #7878a0;
  font-size: 13px;
  font-weight: 700;
  font-family: 'Nunito', sans-serif;
  cursor: pointer;
  transition: all 0.2s;
  text-align: left;
}

.dia-btn:hover {
  background: rgba(123,47,255,0.12);
  border-color: rgba(123,47,255,0.3);
  color: #e8e8f0;
}

.dia-btn.active {
  background: linear-gradient(135deg, rgba(123,47,255,0.28), rgba(255,62,108,0.14));
  border-color: rgba(123,47,255,0.5);
  color: #c4a0ff;
  box-shadow: 0 2px 14px rgba(123,47,255,0.18);
}

.dia-btn.hoje-indicator::before {
  content: '';
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: #ff3e6c;
  flex-shrink: 0;
}

.dia-btn.em-breve {
  opacity: 0.4;
  cursor: default;
  pointer-events: none;
}

.dia-count {
  margin-left: auto;
  background: rgba(123,47,255,0.2);
  color: #c4a0ff;
  font-size: 10px;
  font-weight: 800;
  padding: 1px 6px;
  border-radius: 10px;
  min-width: 18px;
  text-align: center;
}

.dia-btn.active .dia-count {
  background: rgba(123,47,255,0.38);
}

/* ── LABEL DO DIA ── */
.cal-content { min-width: 0; }

.cal-day-label {
  font-family: 'Bebas Neue', sans-serif;
  font-size: 20px;
  letter-spacing: 2px;
  color: #e8e8f0;
  margin-bottom: 18px;
  display: flex;
  align-items: center;
  gap: 10px;
}

.cal-day-label::before {
  content: '';
  width: 3px;
  height: 20px;
  background: linear-gradient(to bottom, #7b2fff, #ff3e6c);
  border-radius: 2px;
}

.cal-day-label span {
  font-size: 13px;
  font-weight: 700;
  color: #7878a0;
  font-family: 'Nunito', sans-serif;
  letter-spacing: 0;
}

/* ════════════════════════════════════════════
   GRADE DE ANIMES — 2 colunas
════════════════════════════════════════════ */
.anime-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 16px;
}

/* ════════════════════════════════════════════
   CARD DE ANIME
   Estrutura adoptada:
   .anime-card
     .image-container > img
     .info-container
       .header-info > h2.title + p.status
       .tags > .tag | .badge.time | .badge.type.legendado/.dublado
       button.btn-assistir
════════════════════════════════════════════ */
.anime-card {
  background: #1a1a24;
  border: 1px solid rgba(255,255,255,0.08);
  border-radius: 15px;
  display: flex;
  flex-direction: row;
  overflow: hidden;
  gap: 0;
  transition: border-color 0.22s, transform 0.22s, box-shadow 0.22s;
  text-decoration: none;
  color: inherit;
  cursor: pointer;
}

.anime-card:hover {
  border-color: rgba(123,47,255,0.5);
  transform: translateY(-2px);
  box-shadow: 0 8px 32px rgba(0,0,0,0.5);
}

/* ── IMAGEM: lado esquerdo, rente às bordas ── */
.anime-card .image-container {
  flex-shrink: 0;
  width: 140px;
  align-self: stretch;
  overflow: hidden;
}

.anime-card .image-container img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center top;
  display: block;
  border-radius: 0; /* rente ao card */
}

/* ── INFO: lado direito ── */
.anime-card .info-container {
  flex: 1;
  min-width: 0;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  padding: 16px 18px;
  gap: 10px;
}

/* Título + status */
.anime-card .header-info { display: flex; flex-direction: column; gap: 4px; }

.anime-card .title {
  margin: 0;
  font-size: 16px;
  font-weight: 800;
  color: #e8e8f0;
  line-height: 1.25;
  font-family: 'Nunito', sans-serif;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.anime-card .status {
  color: #7878a0;
  font-size: 12px;
  margin: 0;
  font-family: 'Nunito', sans-serif;
}

/* Linha de tags + badges */
.anime-card .tags {
  display: flex;
  flex-wrap: wrap;
  gap: 7px;
  align-items: center;
}

/* Tag de género */
.anime-card .tag {
  background: rgba(123,47,255,0.18);
  color: #c4a0ff;
  border: 1px solid rgba(123,47,255,0.3);
  padding: 4px 12px;
  border-radius: 20px;
  font-size: 11px;
  font-weight: 700;
  font-family: 'Nunito', sans-serif;
}

/* Badge base */
.anime-card .badge {
  padding: 4px 11px;
  border-radius: 20px;
  font-size: 11px;
  font-weight: 700;
  font-family: 'Nunito', sans-serif;
  display: inline-flex;
  align-items: center;
  gap: 4px;
}

/* Hora */
.anime-card .badge.time {
  background: rgba(255,255,255,0.07);
  border: 1px solid rgba(255,255,255,0.14);
  color: #e8e8f0;
}
.anime-card .badge.time::before { content: '⏰'; font-size: 11px; }

/* Legendado */
.anime-card .badge.type.legendado {
  background: rgba(34,197,94,0.1);
  color: #4ade80;
  border: 1px solid rgba(34,197,94,0.3);
}
.anime-card .badge.type.legendado::before { content: '🌐'; font-size: 11px; }

/* Dublado */
.anime-card .badge.type.dublado {
  background: rgba(251,146,60,0.1);
  color: #fb923c;
  border: 1px solid rgba(251,146,60,0.3);
}
.anime-card .badge.type.dublado::before { content: '🎙️'; font-size: 11px; }

/* Botão Assistir */
.anime-card .btn-assistir {
  background: linear-gradient(90deg, #7b2fff, #ff3e6c);
  border: none;
  color: #fff;
  padding: 9px 22px;
  border-radius: 50px;
  font-size: 13px;
  font-weight: 800;
  cursor: pointer;
  width: fit-content;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-family: 'Nunito', sans-serif;
  box-shadow: 0 3px 14px rgba(123,47,255,0.4);
  transition: filter 0.2s, transform 0.15s;
  text-decoration: none;
  margin-top: auto;
}

.anime-card .btn-assistir:hover {
  filter: brightness(1.15);
  transform: translateY(-1px);
}

.anime-card .play-icon {
  font-size: 11px;
}

/* Estado vazio */
.empty-state {
  grid-column: 1 / -1;
  text-align: center;
  padding: 52px 24px;
  color: #7878a0;
}
.empty-state .empty-icon { font-size: 48px; margin-bottom: 12px; }
.empty-state p { font-size: 14px; }

/* ════════════════════════════
   RESPONSIVIDADE
════════════════════════════ */

@media (max-width: 1050px) {
  .anime-grid {
    grid-template-columns: 1fr;
  }
  .anime-card .image-container {
    width: 160px;
  }
}

@media (max-width: 700px) {
  .cal-layout {
    grid-template-columns: 1fr;
    gap: 16px;
  }

  .cal-sidebar {
    position: static;
    flex-direction: row;
    overflow-x: auto;
    padding-bottom: 6px;
    gap: 6px;
    scrollbar-width: none;
  }
  .cal-sidebar::-webkit-scrollbar { display: none; }
  .cal-sidebar-title { display: none; }

  .dia-btn {
    flex: 0 0 auto;
    padding: 8px 14px;
    font-size: 12px;
    white-space: nowrap;
    border-radius: 50px;
  }
  .dia-count { display: none; }

  .anime-card .image-container {
    width: 110px;
  }

  .anime-card .info-container {
    padding: 12px 14px;
    gap: 8px;
  }

  .anime-card .title { font-size: 14px; }

  .anime-card .btn-assistir {
    font-size: 11px;
    padding: 7px 16px;
  }

  .cal-header h1 { font-size: 22px; }
}

@media (max-width: 420px) {
  .cal-wrapper { padding: 0 10px 40px; }

  .anime-card .image-container { width: 90px; }
  .anime-card .info-container { padding: 10px 12px; }
  .anime-card .title { font-size: 12px; }
  .anime-card .tag,
  .anime-card .badge { font-size: 9px; padding: 2px 8px; }
}
