/* Recepção: check-in na entrada. Feita para o celular, com uma mão só.
   Tudo escopado em .cvtr. A cor de destaque acompanha o tema do convite;
   o verde de "chegou" é o mesmo em todos, porque ele é sinal, não enfeite. */

.cvtr{
  --fundo:#FBF7F1; --papel:#FFFDF9;
  --tinta:#37402F; --suave:#5F6B59;
  --destaque:#3F5A38; --destaque-claro:#E8F0E5; --acento:#7E9E76;
  --ok:#23784A; --ok-claro:#E2F3E8; --perigo:#B3261E;
  --borda:rgba(126,158,118,.30);
  --serif:'Cormorant Garamond',Georgia,serif;
  --sans:'Quicksand','Trebuchet MS',-apple-system,sans-serif;

  max-width:640px; margin:0 auto; min-height:100vh; min-height:100dvh;
  padding:0 14px calc(40px + env(safe-area-inset-bottom));
  background:var(--fundo); color:var(--tinta);
  font-family:var(--sans); font-size:16px; line-height:1.45;
  -webkit-text-size-adjust:100%;
}
.cvtr.tema-realeza{
  --fundo:#FCF3F1; --papel:#FFFAF8; --tinta:#4A2E2C; --suave:#86605D;
  --destaque:#9C3F48; --destaque-claro:#FBE7E5; --acento:#C79A4B;
  --borda:rgba(199,154,75,.38);
  --serif:'Playfair Display',Georgia,serif; --sans:'Jost','Trebuchet MS',sans-serif;
}
.cvtr.tema-sunshine{
  --fundo:#FDF6EF; --papel:#FFFCF8; --tinta:#6B4E4A; --suave:#8E716C;
  --destaque:#C65D70; --destaque-claro:#FCE8EB; --acento:#F3C95E;
  --borda:rgba(224,122,137,.30);
  --serif:'Lora',Georgia,serif; --sans:'Nunito','Trebuchet MS',sans-serif;
}
.cvtr, .cvtr *{box-sizing:border-box}
.cvtr p, .cvtr h1, .cvtr h2, .cvtr h3{margin:0}
.cvtr ul{list-style:none; margin:0; padding:0}
.cvtr a{color:inherit; text-decoration:none}
.cvtr button, .cvtr input{font-family:inherit; font-size:inherit; letter-spacing:normal; text-transform:none}
.cvtr button{cursor:pointer; -webkit-tap-highlight-color:transparent; touch-action:manipulation}
.cvtr [hidden]{display:none !important}
body.cvt-app{margin:0; background:var(--cvt-fundo-app, #FBF7F1)}
body.cvtr-travado{overflow:hidden}

/* ---------- topo fixo ---------- */
.cvtr-topo{
  position:sticky; top:0; z-index:5;
  margin:0 -14px; padding:14px 14px 10px;
  background:var(--fundo);
  box-shadow:0 10px 18px -16px rgba(0,0,0,.35);
}
.cvtr-topo-linha{display:flex; align-items:flex-start; justify-content:space-between; gap:12px}
.cvtr-evento{font-size:12px; font-weight:700; letter-spacing:.14em; text-transform:uppercase; color:var(--suave)}
.cvtr h1{font-family:var(--serif); font-weight:600; font-size:28px; line-height:1.1; color:var(--destaque)}
.cvtr-topo-acoes{display:flex; gap:6px; flex:none}
.cvtr-topo-acoes a{
  font-size:13px; font-weight:700; color:var(--suave);
  border:1.5px solid var(--borda); border-radius:999px; padding:7px 13px; background:var(--papel);
}

.cvtr-placar{margin-top:12px}
.cvtr-placar p{display:flex; align-items:baseline; gap:8px}
.cvtr-placar b#cvtr-chegaram{font-family:var(--serif); font-size:34px; line-height:1; color:var(--ok); font-variant-numeric:tabular-nums}
.cvtr-placar span{font-size:15px; color:var(--suave)}
.cvtr-placar strong{color:var(--tinta)}
.cvtr-barra{height:8px; margin-top:8px; border-radius:99px; background:var(--destaque-claro); overflow:hidden}
.cvtr-barra span{display:block; height:100%; width:0; border-radius:99px; background:var(--ok); transition:width .35s ease}

.cvtr-busca{
  position:relative; display:flex; align-items:center; margin-top:12px;
  background:var(--papel); border:2px solid var(--borda); border-radius:16px;
}
.cvtr-busca:focus-within{border-color:var(--acento); box-shadow:0 0 0 3px rgba(0,0,0,.04)}
.cvtr-busca svg{flex:none; margin-left:14px; color:var(--suave)}
.cvtr-busca input{
  flex:1; min-width:0; height:52px; padding:0 12px; border:0; background:transparent;
  font-size:18px; color:var(--tinta); outline:0; -webkit-appearance:none; appearance:none;
}
.cvtr-busca input::-webkit-search-cancel-button{display:none}
.cvtr-busca button{
  flex:none; width:44px; height:44px; margin-right:4px; border:0; border-radius:12px;
  background:transparent; font-size:26px; line-height:1; color:var(--suave);
}

.cvtr-filtros{display:flex; gap:6px; margin-top:10px}
.cvtr-filtros button{
  flex:1; min-height:40px; border-radius:12px; border:1.5px solid var(--borda);
  background:var(--papel); color:var(--suave); font-size:14px; font-weight:700;
}
.cvtr-filtros button i{font-style:normal; font-weight:600; opacity:.75; margin-left:2px}
.cvtr-filtros button[aria-pressed="true"]{background:var(--destaque); border-color:var(--destaque); color:#FFFFFF}

.cvtr-offline{
  margin-top:12px; padding:10px 14px; border-radius:12px;
  background:#FFF3CD; color:#6B4E00; font-size:14px; font-weight:600;
}

/* ---------- lista ---------- */
.cvtr-lista{display:flex; flex-direction:column; gap:10px; margin-top:12px}
.cvtr-ficha{
  background:var(--papel); border-radius:18px; padding:14px 14px 6px;
  border:1.5px solid var(--borda); box-shadow:0 4px 14px rgba(0,0,0,.04);
}
.cvtr-ficha.cvtr-completa{border-color:rgba(35,120,74,.35); background:linear-gradient(0deg,var(--papel),var(--papel)) padding-box}
.cvtr-ficha.cvtr-destaque{animation:cvtr-pisca 1.6s ease 2}
@keyframes cvtr-pisca{50%{box-shadow:0 0 0 4px rgba(35,120,74,.25)}}

.cvtr-ficha-topo{display:flex; align-items:flex-start; justify-content:space-between; gap:10px; padding-bottom:8px}
.cvtr-ficha h3{font-size:17px; font-weight:800; line-height:1.25; color:var(--tinta)}
.cvtr-ficha-info{margin-top:2px; font-size:13.5px; color:var(--suave)}
.cvtr-completa .cvtr-ficha-info{color:var(--ok); font-weight:700}

.cvtr-todos{
  flex:none; min-height:40px; padding:0 14px; border-radius:12px;
  border:0; background:var(--destaque); color:#FFFFFF; font-size:14px; font-weight:800;
}

.cvtr-pessoas{border-top:1px dashed var(--borda)}
.cvtr-pessoa{
  display:flex; align-items:center; justify-content:space-between; gap:10px;
  min-height:56px; padding:6px 0; border-bottom:1px dashed var(--borda);
}
.cvtr-pessoa:last-child{border-bottom:0}
.cvtr-pessoa-nome{font-size:16px; font-weight:600; min-width:0; overflow-wrap:anywhere}
.cvtr-pessoa.cvtr-chegou .cvtr-pessoa-nome{color:var(--suave)}
.cvtr-pessoa.cvtr-casa .cvtr-pessoa-nome{background:linear-gradient(transparent 60%, rgba(242,196,80,.45) 60%)}

.cvtr-tag{
  display:inline-block; margin-left:6px; padding:1px 8px; border-radius:99px;
  font-style:normal; font-size:11.5px; font-weight:800; letter-spacing:.04em; vertical-align:2px;
}
.cvtr-tag-crianca{background:#E1EEF7; color:#2F5F80}
.cvtr-tag-porta{background:var(--destaque-claro); color:var(--destaque)}

.cvtr-marcar, .cvtr-ok, .cvtr-desfazer{
  flex:none; min-width:108px; min-height:46px; padding:0 14px; border-radius:14px;
  font-size:15.5px; font-weight:800;
  display:inline-flex; align-items:center; justify-content:center; gap:6px;
}
.cvtr-marcar{background:var(--papel); color:var(--destaque); border:2px solid var(--destaque)}
.cvtr-marcar:active{background:var(--destaque-claro)}
.cvtr-ok{background:var(--ok-claro); color:var(--ok); border:2px solid transparent; font-variant-numeric:tabular-nums}
.cvtr-desfazer{background:#FFFFFF; color:var(--perigo); border:2px solid var(--perigo)}

.cvtr-vazio{margin-top:18px; padding:22px 16px; text-align:center; color:var(--suave); border:1.5px dashed var(--borda); border-radius:18px}

.cvtr-porta-chamada{margin-top:16px}

/* ---------- botões ---------- */
.cvtr-botao{
  display:inline-flex; align-items:center; justify-content:center; gap:8px;
  width:100%; min-height:52px; padding:0 18px; border-radius:16px; border:0;
  background:var(--destaque); color:#FFFFFF; font-size:16px; font-weight:800; text-align:center;
}
.cvtr-botao-claro{background:var(--papel); color:var(--destaque); border:2px solid var(--borda)}
.cvtr-botao[disabled]{opacity:.6}

/* ---------- últimas chegadas ---------- */
.cvtr-recentes{margin-top:22px}
.cvtr-recentes h2{font-size:12px; font-weight:800; letter-spacing:.14em; text-transform:uppercase; color:var(--suave); margin-bottom:6px}
.cvtr-recentes li{display:flex; justify-content:space-between; gap:10px; padding:8px 0; border-bottom:1px solid var(--borda); font-size:15px}
.cvtr-recentes time{color:var(--ok); font-weight:800; font-variant-numeric:tabular-nums}

.cvtr-rodape{margin-top:26px; text-align:center; font-size:13px; color:var(--suave)}

/* ---------- folha: chegou sem confirmar ---------- */
.cvtr-folha{position:fixed; inset:0; z-index:20; display:flex; align-items:flex-end; justify-content:center}
.cvtr-folha-fundo{position:absolute; inset:0; background:rgba(20,14,8,.45)}
.cvtr-folha-caixa{
  position:relative; width:100%; max-width:560px; max-height:92vh; overflow:auto;
  background:var(--papel); border-radius:22px 22px 0 0;
  padding:22px 18px calc(18px + env(safe-area-inset-bottom));
  animation:cvtr-sobe .22s ease both;
}
@keyframes cvtr-sobe{from{transform:translateY(30px); opacity:0} to{transform:none; opacity:1}}
.cvtr-folha-caixa h2{font-family:var(--serif); font-size:24px; color:var(--destaque)}
.cvtr-folha-apoio{margin:4px 0 14px; font-size:14.5px; color:var(--suave)}
.cvtr-folha-caixa label, .cvtr-porta-rotulo{display:block; margin:12px 0 6px; font-size:14px; font-weight:800; color:var(--tinta)}
.cvtr-folha-caixa input[type=text], .cvtr-form-entrar input[type=email], .cvtr-form-entrar input[type=password]{
  width:100%; height:50px; padding:0 14px; border-radius:14px;
  border:2px solid var(--borda); background:var(--fundo); color:var(--tinta); font-size:17px; outline:0;
}
.cvtr-folha-caixa input:focus, .cvtr-form-entrar input:focus{border-color:var(--acento); background:#FFFFFF}
.cvtr-porta-grupo{margin-top:6px}
.cvtr-porta-nomes{display:flex; flex-direction:column; gap:8px}
.cvtr-porta-linha{display:flex; gap:8px}
.cvtr-porta-linha button{flex:none; width:50px; border-radius:14px; border:2px solid var(--borda); background:var(--papel); font-size:24px; color:var(--suave)}
.cvtr-mais{margin-top:8px; border:0; background:none; padding:6px 0; color:var(--destaque); font-weight:800; font-size:15px}
.cvtr-erro{min-height:1.3em; margin-top:10px; color:var(--perigo); font-weight:700; font-size:14.5px}
.cvtr-folha-acoes{display:flex; gap:10px; margin-top:12px}

/* ---------- aviso flutuante ---------- */
.cvtr-toast{
  position:fixed; left:50%; bottom:calc(18px + env(safe-area-inset-bottom)); z-index:30;
  transform:translate(-50%,20px); opacity:0; transition:transform .2s ease, opacity .2s ease;
  display:flex; align-items:center; gap:14px; width:max-content; max-width:calc(100% - 28px);
  padding:12px 12px 12px 18px; border-radius:16px;
  background:#2B2118; color:#FFFFFF; font-size:15px; font-weight:600;
  box-shadow:0 12px 30px rgba(0,0,0,.25);
}
.cvtr-toast.cvtr-toast-on{transform:translate(-50%,0); opacity:1}
.cvtr-toast button{flex:none; border:0; border-radius:10px; padding:8px 12px; background:rgba(255,255,255,.14); color:#FFD98A; font-weight:800}

/* ---------- entrada (login) ---------- */
.cvtr-portao{display:flex; flex-direction:column; justify-content:center; padding-top:40px; padding-bottom:40px}
.cvtr-portao-caixa{background:var(--papel); border-radius:22px; padding:28px 20px; border:1.5px solid var(--borda)}
.cvtr-portao h1{font-size:32px; margin-top:4px}
.cvtr-portao-apoio{margin:8px 0 6px; color:var(--suave)}
.cvtr-portao > h1 + p{margin:10px 0 18px; color:var(--suave)}
.cvtr-form-entrar label{display:block; margin:14px 0 6px; font-weight:800; font-size:14px}
.cvtr-form-entrar .cvtr-lembrar{display:flex; align-items:center; gap:8px; font-weight:600; color:var(--suave)}
.cvtr-form-entrar .cvtr-botao{margin-top:16px}
.cvtr-erro-caixa{padding:10px 12px; border-radius:12px; background:#FDECEA}

/* assinatura do Grupo MD TEC */
.cvtr .cvt-credito{display:flex; align-items:center; justify-content:center; gap:8px; margin:14px 0 0; font-size:12px; color:var(--suave); opacity:.8}
.cvtr .cvt-credito a{color:var(--destaque); border-bottom:1px solid var(--borda)}
.cvtr .cvt-marca{width:22px; height:auto}

@media (min-width:720px){
  .cvtr{padding-left:24px; padding-right:24px}
  .cvtr-topo{margin:0 -24px; padding:18px 24px 12px}
  .cvtr-folha{align-items:center}
  .cvtr-folha-caixa{border-radius:22px}
}
@media (prefers-reduced-motion:reduce){
  .cvtr *{animation:none !important; transition:none !important}
}
.cvtr input[type=checkbox]{accent-color:var(--destaque); width:18px; height:18px}

/* ---------- QR Code ---------- */
.cvtr-busca-linha{display:flex; gap:8px; margin-top:12px}
.cvtr-busca-linha .cvtr-busca{flex:1; min-width:0; margin-top:0}
.cvtr-ler{
  flex:none; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:1px;
  width:64px; border-radius:16px; border:0; background:var(--destaque); color:#FFFFFF;
  font-size:11.5px; font-weight:800; letter-spacing:.02em;
}
.cvtr-foco{
  display:flex; align-items:center; justify-content:space-between; gap:10px;
  margin-top:12px; padding:10px 12px 10px 14px; border-radius:14px;
  background:var(--destaque-claro); color:var(--destaque); font-size:14.5px;
}
.cvtr-foco button{flex:none; border:0; border-radius:10px; padding:8px 12px; background:var(--papel); color:var(--destaque); font-weight:800}
.cvtr-camera{position:fixed; inset:0; z-index:25; background:rgba(12,9,6,.92); display:flex; align-items:center; justify-content:center; padding:16px}
.cvtr-camera-caixa{width:100%; max-width:460px; text-align:center; color:#FFFFFF}
.cvtr-camera-video{position:relative; width:100%; aspect-ratio:1/1; border-radius:22px; overflow:hidden; background:#000}
.cvtr-camera-video video{width:100%; height:100%; object-fit:cover; display:block}
.cvtr-mira{position:absolute; inset:18%; border:3px solid rgba(255,255,255,.9); border-radius:18px; box-shadow:0 0 0 999px rgba(0,0,0,.25)}
.cvtr-camera-aviso{margin:14px 4px; font-size:15.5px; font-weight:600}
.cvtr-camera .cvtr-botao-claro{background:transparent; color:#FFFFFF; border-color:rgba(255,255,255,.5)}
.cvtr-ler{width:70px; white-space:nowrap; font-size:11px}
.cvtr.tema-sunshine .cvtr-tag-crianca{background:#FBEBC2; color:#8A5A00}
