/* Listas Amora — identidade: vinho #612B38 · dourado #E4A935 · creme #FAF6F0 */
:root {
  --vinho: #612B38;
  --dourado: #E4A935;
  --creme: #FAF6F0;
  --tinta: #2b2226;
}

* { box-sizing: border-box; }

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

h1, h2, h3, .marca {
  font-family: Georgia, "Times New Roman", serif;
  color: var(--vinho);
}

.topo {
  background: var(--vinho);
  padding: 0.75rem 1rem;
}
.topo .marca {
  color: var(--creme);
  text-decoration: none;
  font-size: 1.25rem;
}
.topo .marca span { color: var(--dourado); }

.topo { display: flex; align-items: baseline; gap: 1.25rem; flex-wrap: wrap; }
.nav-admin { display: flex; gap: 1rem; }
.nav-admin a {
  color: var(--creme);
  text-decoration: none;
  font-size: 0.9rem;
  opacity: 0.85;
}
.nav-admin a:hover { color: var(--dourado); opacity: 1; }

main {
  max-width: 46rem;
  margin: 0 auto;
  padding: 1rem;
}

.card {
  background: #fff;
  border: 1px solid #e8ded2;
  border-radius: 0.75rem;
  padding: 1rem;
  margin: 1rem 0;
}

button {
  background: var(--vinho);
  color: var(--creme);
  border: 0;
  border-radius: 0.5rem;
  padding: 0.6rem 1.4rem;
  font-size: 1rem;
  cursor: pointer;
}
button:hover { background: #7a3747; }

input[type="file"] {
  display: block;
  margin: 0.75rem 0;
  max-width: 100%;
}

table {
  width: 100%;
  border-collapse: collapse;
  background: #fff;
  border-radius: 0.5rem;
  overflow: hidden;
  font-size: 0.95rem;
}
th, td {
  text-align: left;
  padding: 0.5rem 0.65rem;
  border-bottom: 1px solid #eee3d6;
}
th { background: var(--vinho); color: var(--creme); font-weight: 600; }
tr:last-child td { border-bottom: 0; }

a { color: var(--vinho); }

.cartoes {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(8rem, 1fr));
  gap: 0.75rem;
  margin: 1rem 0;
}
.cartao {
  background: #fff;
  border: 1px solid #e8ded2;
  border-radius: 0.75rem;
  padding: 0.9rem;
  text-align: center;
}
.cartao strong {
  display: block;
  font-size: 1.6rem;
  font-family: Georgia, serif;
  color: var(--vinho);
}
.cartao span { color: #6d5f57; font-size: 0.85rem; }
.cartao.ok strong { color: #2e7d4f; }
.cartao.atencao { border-color: var(--dourado); background: #fdf6e7; }

.aviso {
  border-radius: 0.5rem;
  padding: 0.75rem 1rem;
  background: #fdf6e7;
  border: 1px solid var(--dourado);
}
.aviso.erro { background: #fbe9e7; border: 1px solid #d98a7f; }

.mudo { color: #6d5f57; font-size: 0.9rem; }

/* catálogos */
.linha-campos {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(10rem, 1fr));
  gap: 0.75rem;
}
.linha-campos label { display: flex; flex-direction: column; gap: 0.25rem; }

input[type="text"], select {
  padding: 0.5rem;
  border: 1px solid #d8cbbc;
  border-radius: 0.5rem;
  font-size: 1rem;
  background: #fff;
}

.filtros {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  margin: 0.75rem 0;
}
.filtros input { flex: 2 1 12rem; }
.filtros select { flex: 1 1 9rem; }

.grade-produtos {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(9.5rem, 1fr));
  gap: 0.6rem;
  max-height: 26rem;
  overflow-y: auto;
  padding: 0.25rem;
  margin-bottom: 1rem;
}
.produto-item {
  display: flex;
  flex-direction: column;
  gap: 0.15rem;
  border: 1px solid #e8ded2;
  border-radius: 0.6rem;
  padding: 0.5rem;
  background: #fff;
  cursor: pointer;
  font-size: 0.85rem;
}
.produto-item:has(input:checked) {
  border-color: var(--vinho);
  outline: 2px solid var(--vinho);
}
.produto-item img {
  width: 100%;
  aspect-ratio: 1;
  object-fit: cover;
  border-radius: 0.4rem;
  background: var(--creme);
}
.produto-item .preco { color: var(--vinho); font-weight: 600; }

/* casais */
.casal-card { display: flex; flex-direction: column; gap: 0.6rem; }
.casal-info { display: flex; flex-direction: column; gap: 0.1rem; }
.casal-link { display: flex; gap: 0.5rem; flex-wrap: wrap; align-items: center; }
.casal-link input { flex: 1 1 14rem; font-size: 0.8rem; color: #6d5f57; }
button.secundario {
  background: transparent;
  color: var(--vinho);
  border: 1px solid var(--vinho);
}
button:disabled { opacity: 0.35; cursor: default; }

/* minha lista */
.item-lista {
  display: flex;
  align-items: center;
  gap: 0.6rem;
  padding: 0.4rem 0;
  border-bottom: 1px solid #eee3d6;
}
.item-lista:last-child { border-bottom: 0; }
.item-lista img {
  width: 3.2rem; height: 3.2rem;
  object-fit: cover;
  border-radius: 0.4rem;
  background: var(--creme);
}
.item-lista .cresce {
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: 0.05rem;
  min-width: 0;
}
.btn-mini { padding: 0.35rem 0.6rem; font-size: 0.85rem; }

textarea {
  width: 100%;
  padding: 0.5rem;
  border: 1px solid #d8cbbc;
  border-radius: 0.5rem;
  font-size: 1rem;
  font-family: inherit;
  box-sizing: border-box;
}
label { display: block; margin: 0.5rem 0; }

/* aprovação de listas */
.filtros-status { display: flex; gap: 0.4rem; flex-wrap: wrap; }
.chip {
  border: 1px solid var(--vinho);
  border-radius: 1rem;
  padding: 0.2rem 0.8rem;
  text-decoration: none;
  font-size: 0.85rem;
}
.chip.ativo { background: var(--vinho); color: var(--creme); }
.badge {
  background: var(--dourado);
  color: #4a3208;
  border-radius: 0.6rem;
  padding: 0.05rem 0.5rem;
  font-size: 0.75rem;
  white-space: nowrap;
}
.item-lista.suspeito { background: #fdf6e7; border-radius: 0.5rem;
                       padding: 0.4rem; border-bottom: 0; }
.preco-input { display: flex; align-items: center; gap: 0.25rem; margin: 0; }
.preco-input input { width: 6rem; text-align: right; }
.devolver { display: inline-block; margin-left: 0.5rem; }
.acoes-linha { display: flex; gap: 0.5rem; align-items: center; flex-wrap: wrap; }

/* página pública */
.capa-publica {
  background: var(--vinho);
  color: var(--creme);
  text-align: center;
  border-radius: 0.9rem;
  padding: 2.2rem 1.2rem;
  margin: 0.5rem 0 1rem;
}
.capa-publica .marca-mini {
  color: var(--dourado);
  letter-spacing: 0.3em;
  text-transform: uppercase;
  font-size: 0.7rem;
}
.capa-publica h1 { color: var(--creme); margin: 0.5rem 0 0.2rem; font-size: 1.9rem; }
.capa-publica .evento { color: var(--dourado); font-style: italic; }
.capa-publica .mensagem { margin: 0.8rem auto 0.2rem; max-width: 26rem; }
.capa-publica .data { font-size: 0.9rem; opacity: 0.85; }

.grade-presentes {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(9.5rem, 1fr));
  gap: 0.75rem;
}
.cartao-presente {
  background: #fff;
  border: 1px solid #e8ded2;
  border-radius: 0.75rem;
  padding: 0.6rem;
  display: flex;
  flex-direction: column;
  gap: 0.25rem;
  text-align: center;
}
.cartao-presente img {
  width: 100%;
  aspect-ratio: 1;
  object-fit: cover;
  border-radius: 0.5rem;
  background: var(--creme);
}
.cartao-presente .preco { color: var(--vinho); font-weight: 700; }
.cartao-presente.indisponivel img { opacity: 0.45; }
.cartao-presente .estado { color: #6d5f57; font-size: 0.9rem; padding: 0.45rem 0; }

.botao {
  display: inline-block;
  background: var(--vinho);
  color: var(--creme);
  border-radius: 0.5rem;
  padding: 0.5rem 1rem;
  text-decoration: none;
}
.botao:hover { background: #7a3747; }

.presente-escolhido { display: flex; gap: 0.9rem; align-items: center; }
.presente-escolhido img {
  width: 6rem; height: 6rem;
  object-fit: cover;
  border-radius: 0.6rem;
  background: var(--creme);
}
.presente-escolhido h1 { margin: 0; font-size: 1.3rem; }

.rodape-publico {
  text-align: center;
  margin: 1.5rem 0 0.5rem;
  color: #6d5f57;
}

/* painel do casal */
.progresso {
  background: #eee3d6;
  border-radius: 1rem;
  height: 0.8rem;
  overflow: hidden;
}
.progresso div {
  background: linear-gradient(90deg, var(--vinho), #8a4457);
  height: 100%;
  border-radius: 1rem;
  transition: width 0.3s;
}
.acoes-lista { display: flex; gap: 0.5rem; flex-wrap: wrap; }

/* gestão de produtos */
.produto-admin { display: flex; gap: 0.75rem; align-items: flex-start; }
.produto-admin img, .produto-admin .sem-foto {
  width: 4.2rem; height: 4.2rem;
  object-fit: cover;
  border-radius: 0.5rem;
  background: var(--creme);
  flex-shrink: 0;
}
.produto-admin .sem-foto {
  display: flex; align-items: center; justify-content: center;
  color: #b3a396; font-size: 0.7rem; text-align: center;
  border: 1px dashed #d8cbbc;
}
.produto-admin .cresce { display: flex; flex-direction: column; gap: 0.35rem; }
.produto-admin input[type="text"] { width: 100%; box-sizing: border-box; }
.linha-selects { display: flex; gap: 0.4rem; flex-wrap: wrap; }
.acoes-produto {
  display: flex; flex-direction: column; gap: 0.35rem;
  align-items: stretch; flex-shrink: 0;
}
details summary { cursor: pointer; color: var(--vinho); margin: 0.5rem 0; }
details img { border: 1px solid #e8ded2; border-radius: 0.5rem; }
