/* Telas de reservas (lista, detalhe, lançar) — complementa gestao.css (mesmos tokens). */

/* ── Lista ── */
.res-filtros { display: flex; flex-direction: column; gap: var(--s-2); }
.res-selects { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: var(--s-2); }
.res-selects .entrada { background-color: var(--bg); }
.res-filtros .busca .entrada { padding-left: 2.5rem; }
@media (min-width: 1024px) {
  .res-filtros { flex-direction: row; flex-wrap: wrap; align-items: center; }
  .res-filtros .busca { flex: 1 1 18rem; }
  .res-selects { flex: 0 1 28rem; }
  .res-filtros .filtros { flex: 1 0 100%; }
}
.res-contagem { margin-top: calc(var(--s-3) * -1); min-height: 1.2em; }
.res-item { align-items: flex-start; }
.res-item .item-ini { padding-top: 2px; }
.res-item .item-seta { align-self: center; }
.res-nome { overflow-wrap: anywhere; }
.res-avisos { display: flex; flex-wrap: wrap; gap: var(--s-1); margin-top: var(--s-1); }
.res-total { font-weight: 600; }

/* ── Detalhe ── */
.res-datas { display: grid; grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr); align-items: center; gap: var(--s-2); padding: var(--s-3); border-radius: var(--r-campo); background: var(--surface-2); }
.res-datas > div { display: flex; flex-direction: column; min-width: 0; }
.res-datas strong { font-size: .9375rem; line-height: 1.3; letter-spacing: -.006em; }
.res-datas > div:last-child { text-align: right; }
.res-datas-seta { color: var(--text-muted); display: flex; }
.res-acoes { display: flex; flex-wrap: wrap; gap: var(--s-2); }
.res-acoes .btn { flex: 0 1 auto; }
.res-conflito .pilha-p { flex: 1; min-width: 0; }
.res-link-mini { font-size: .8125rem; display: inline-flex; align-items: center; min-height: 2rem; }
.res-nota { margin-top: var(--s-2); }
.res-ocupantes { margin: 0; padding-left: 1.25rem; display: flex; flex-direction: column; gap: var(--s-2); }
.res-ocupantes li { padding-left: var(--s-1); }
.res-ocupantes li > * { display: block; }
.res-msg { display: flex; flex-direction: column; gap: var(--s-2); padding: var(--s-3) var(--s-4); }
.res-msg .linha-entre { align-items: flex-start; flex-wrap: nowrap; }
.res-msg-txt { min-width: 0; }
.res-msg-corpo { font-size: .875rem; color: var(--text); white-space: pre-wrap; overflow-wrap: anywhere; padding: var(--s-2) var(--s-3); border-radius: var(--r-campo); background: var(--surface-2); }
.res-msg .mais-detalhes > summary { min-height: 2.25rem; font-size: .875rem; }
.res-pre { white-space: pre-wrap; overflow-wrap: anywhere; }
.res-cancelar { display: flex; justify-content: flex-start; padding-top: var(--s-2); }
.res-foto-envio { position: relative; }
.res-foto-envio img { opacity: .6; }
.res-foto-envio.ok img { opacity: 1; }
.res-foto-envio .foto-erro { font-size: .6875rem; line-height: 1.2; }
.res-entrada-fotos { display: flex; }
.miniaturas a, .miniaturas > div { position: relative; }

/* ── Lançar ── */
.lan-progresso { display: grid; grid-template-columns: repeat(4, 1fr); gap: var(--s-1); list-style: none; margin: 0; padding: 0; }
.lan-progresso:empty { display: none; }
.lan-progresso li { height: 4px; border-radius: var(--r-pill); background: var(--surface-2); }
.lan-progresso li.feito { background: var(--accent); }
.lan-progresso li.atual { background: color-mix(in srgb, var(--accent) 55%, var(--surface-2)); }
.lan-passo-titulo { font-size: 1.125rem; font-weight: 600; line-height: 1.3; letter-spacing: -.01em; margin-top: calc(var(--s-2) * -1); }
.lan-passo-titulo:empty { display: none; }
.lan-passo-titulo:focus { outline: none; }
.lan-cal { --cal-fundo: var(--surface); background: var(--surface); padding: 0 var(--s-2); }
.lan-resumo { flex: 1 1 10rem; min-width: 0; display: flex; flex-direction: column; align-items: stretch; font-size: .875rem; line-height: 1.4; }
.lan-resumo > * { flex: none; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.lan-resumo strong { color: var(--text); font-size: .9375rem; }
.lan-resumo .lan-resumo-l2 { color: var(--text-muted); font-size: .8125rem; }
.lan-total { font-weight: 600; color: var(--text); }
.lan-barra-acoes { display: flex; gap: var(--s-2); margin-left: auto; }
.lan-contadores { display: flex; flex-direction: column; padding-block: var(--s-2); }
.lan-cont { display: flex; align-items: center; gap: var(--s-3); padding: var(--s-2) 0; }
.lan-cont + .lan-cont { border-top: 1px solid var(--border); }
.lan-cont-txt { flex: 1; min-width: 0; }
.lan-cont-ctl { display: flex; align-items: center; gap: var(--s-2); }
.lan-cont-valor { min-width: 1.75rem; text-align: center; font-weight: 600; font-size: 1.125rem; }
.lan-cont-ctl .btn-ico:disabled { opacity: .4; cursor: not-allowed; }
.lan-menos { font-size: 1.25rem; line-height: 1; font-weight: 600; }
.lan-cap { padding-top: var(--s-2); }
.lan-opcoes > summary { padding: 0; }
.lan-opcoes[open] > summary { margin-bottom: var(--s-3); }
.lan-spin { width: 1rem; height: 1rem; border-width: 2px; vertical-align: -3px; }
.lan-erros { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: var(--s-2); color: var(--danger-text); font-size: .9375rem; }
.lan-erros li { display: flex; gap: var(--s-2); align-items: flex-start; }
.lan-erros .ico { margin-top: 3px; }
.lan-sucesso { align-items: stretch; text-align: left; padding: var(--s-5) var(--s-4); }
.lan-sucesso-titulo { font-family: var(--font-titulo); font-size: 1.375rem; font-weight: 600; line-height: 1.2; letter-spacing: -.015em; text-align: center; }
.lan-sucesso-titulo:focus { outline: none; }
.lan-codigo { text-align: center; font-size: 1.75rem; font-weight: 600; letter-spacing: .12em; }
.lan-centro { justify-content: center; text-align: center; }

/* Ajustes locais sobre o gestao.css */
.res-filtros .busca { flex: none; }
@media (min-width: 1024px) { .res-filtros .busca { flex: 1 1 18rem; } }
.res-so-celular { display: inline-flex; }
.res-so-pc { display: none; }
@media (min-width: 1024px) { .res-so-celular { display: none; } .res-so-pc { display: inline-flex; } }
.res-lista-caixa { padding-bottom: var(--s-7); }
/* .pares: a linha do total corre de ponta a ponta (sem o vão da coluna). */
.res-corpo .pares, .lan .pares { column-gap: 0; }
.res-corpo .pares dd, .lan .pares dd { padding-left: var(--s-3); }
.res-selects { grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr); }
.res-selects .entrada { padding-right: var(--s-2); text-overflow: ellipsis; }
@media (min-width: 1024px) { .tela.lan { max-width: 46rem; margin-inline: auto; width: 100%; } }
.res-status { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 2px var(--s-2); margin: 2px 0; }
.res-status .res-total { flex: none; margin-left: auto; white-space: nowrap; }
