:root {
  --bg: #0f1115;
  --card: #181b22;
  --texto: #e8e8ea;
  --suave: #9aa0ad;
  --acento: #f5c518;
  --ok: #2fbf71;
  --nao: #e05252;
  --duvida: #8a8f9c;
  --borda: #262a33;
}

* { box-sizing: border-box; }

body {
  margin: 0;
  background: var(--bg);
  color: var(--texto);
  font-family: system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
  line-height: 1.5;
}

a { color: inherit; text-decoration: none; }

.topo {
  padding: 1.5rem 1rem 0.5rem;
  text-align: center;
}
.marca { font-size: 1.6rem; font-weight: 700; color: var(--acento); }
.tagline { margin: 0.2rem 0 0; color: var(--suave); }

.menu { display: flex; justify-content: center; align-items: center; gap: 1.2rem; flex-wrap: wrap; margin-top: 0.8rem; }
.menu a { color: var(--suave); font-weight: 600; }
.menu a:hover { color: var(--acento); }
.menu input, .busca input {
  padding: 0.45rem 0.8rem; border-radius: 999px; border: 1px solid var(--borda);
  background: var(--card); color: var(--texto); font: inherit; min-width: 200px;
}
.busca { display: flex; gap: 0.5rem; margin: 1rem 0; max-width: 480px; }
.busca input { flex: 1; }
.busca button { background: var(--acento); color: #000; border: 0; padding: 0.45rem 1rem; border-radius: 999px; font-weight: 700; cursor: pointer; }
.resultado { color: var(--suave); }
.resultado a { color: var(--acento); }
.paginacao { display: flex; justify-content: center; gap: 1.5rem; align-items: center; margin: 1.5rem 0; color: var(--suave); }
.paginacao a { color: var(--acento); font-weight: 600; }

.conteudo { max-width: 1100px; margin: 0 auto; padding: 1rem; }

h1 { font-size: 1.7rem; margin: 0.5rem 0; }
.intro { color: var(--suave); margin-top: 0; }

.mensagens { list-style: none; max-width: 1100px; margin: 0.5rem auto; padding: 0 1rem; }
.msg { padding: 0.7rem 1rem; border-radius: 8px; margin-bottom: 0.5rem; background: var(--card); border-left: 4px solid var(--acento); }
.msg-success { border-color: var(--ok); }
.msg-error { border-color: var(--nao); }
.msg-warning { border-color: var(--acento); }

/* Lista */
.grade {
  list-style: none;
  padding: 0;
  margin: 1rem 0;
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(160px, 1fr));
  gap: 1rem;
}
.card { background: var(--card); border-radius: 10px; overflow: hidden; border: 1px solid var(--borda); transition: transform 0.15s; }
.card:hover { transform: translateY(-3px); }
/* height: auto é obrigatório: sem ele o atributo height="750" do <img> vence o aspect-ratio. */
.card img, .sem-poster { width: 100%; height: auto; aspect-ratio: 2 / 3; object-fit: cover; display: block; background: #222; }
.sem-poster { display: grid; place-items: center; color: var(--suave); }
.card h2 { font-size: 0.95rem; margin: 0.6rem 0.7rem 0.3rem; line-height: 1.3; }

.selo { display: inline-block; margin: 0 0.7rem 0.7rem; font-size: 0.8rem; padding: 0.15rem 0.5rem; border-radius: 999px; background: var(--duvida); color: #fff; }
.selo-durante, .selo-depois, .selo-ambas { background: var(--ok); }
.selo-nao { background: var(--nao); }

.secao { margin-top: 2.5rem; font-size: 1.4rem; border-top: 1px solid var(--borda); padding-top: 1.5rem; }
.card .estreia { margin: 0 0.7rem 0.4rem; font-size: 0.8rem; color: var(--acento); }
.selo-breve { background: var(--acento); color: #000; margin: 0 0 0.5rem; }

.vazio { background: var(--card); padding: 1rem; border-radius: 10px; color: var(--suave); }
code { background: #000; padding: 0.1rem 0.4rem; border-radius: 4px; }

/* Detalhe */
.filme-topo { display: flex; gap: 1.5rem; flex-wrap: wrap; align-items: flex-start; }
.poster { width: 260px; max-width: 100%; border-radius: 10px; height: auto; }
.filme-info { flex: 1; min-width: 260px; }
.titulo-original { color: var(--suave); margin-top: -0.4rem; font-style: italic; }
.meta { color: var(--suave); }
.sinopse { max-width: 70ch; }

.veredito { background: var(--card); border: 1px solid var(--borda); border-left: 6px solid var(--duvida); border-radius: 10px; padding: 1rem; margin: 1rem 0; display: grid; gap: 0.3rem; }
.veredito strong { font-size: 1.2rem; }
.veredito-durante, .veredito-depois, .veredito-ambas { border-left-color: var(--ok); }
.veredito-nao { border-left-color: var(--nao); }

.spoiler { background: var(--card); border-radius: 10px; padding: 0.7rem 1rem; margin: 1rem 0; }
.spoiler summary { cursor: pointer; font-weight: 600; }

/* Avaliações */
.avaliacoes { margin-top: 2rem; border-top: 1px solid var(--borda); padding-top: 1rem; }
.resumo { display: flex; gap: 1.5rem; flex-wrap: wrap; margin-bottom: 1rem; }
.resumo div { display: grid; text-align: center; background: var(--card); padding: 0.8rem 1.2rem; border-radius: 10px; min-width: 130px; }
.resumo .nota { font-size: 1.8rem; font-weight: 700; color: var(--acento); }
.resumo span:last-child { color: var(--suave); font-size: 0.85rem; }

.form-avaliacao { display: grid; gap: 0.8rem; max-width: 520px; background: var(--card); padding: 1rem; border-radius: 10px; border: 1px solid var(--borda); }
.form-avaliacao fieldset { border: 0; padding: 0; margin: 0; }
.form-avaliacao legend { font-weight: 600; margin-bottom: 0.3rem; }
.form-avaliacao input[type="text"], .form-avaliacao textarea {
  width: 100%; padding: 0.6rem; border-radius: 8px; border: 1px solid var(--borda);
  background: var(--bg); color: var(--texto); font: inherit;
}
.form-avaliacao button {
  background: var(--acento); color: #000; border: 0; padding: 0.7rem 1.2rem;
  border-radius: 8px; font-weight: 700; cursor: pointer; font-size: 1rem;
}
.form-avaliacao button:hover { filter: brightness(1.1); }

/* Estrelas: as opções ficam da direita pra esquerda para o hover funcionar com CSS puro */
.estrelas { display: inline-flex; flex-direction: row-reverse; gap: 0.2rem; }
.estrelas input { position: absolute; opacity: 0; width: 0; height: 0; }
.estrelas label { cursor: pointer; }
.estrelas span { font-size: 1.9rem; color: #444; transition: color 0.1s; }
.estrelas label:hover span,
.estrelas label:hover ~ label span,
.estrelas input:checked ~ span,
.estrelas label:has(input:checked) ~ label span { color: var(--acento); }

.comentarios { list-style: none; padding: 0; display: grid; gap: 0.8rem; }
.comentarios li { background: var(--card); padding: 0.8rem 1rem; border-radius: 10px; border: 1px solid var(--borda); }
.comentario-meta { color: var(--suave); font-size: 0.85rem; margin: 0 0 0.3rem; }
.comentarios p { margin: 0; }

.rodape { max-width: 1100px; margin: 2rem auto; padding: 1rem; color: var(--suave); font-size: 0.85rem; border-top: 1px solid var(--borda); }
.rodape a { color: var(--acento); }
