/* Visitantes autorizados e restrições: tela do morador e aba da Portaria. */
.vis-lista { list-style: none; margin: 0; padding: 0; display: grid; gap: 12px; }
.vis-cartao { padding: 16px 18px; background: var(--superficie); border: 1px solid var(--linha); border-left: 5px solid var(--linha); border-radius: var(--raio); box-shadow: var(--sombra); }
.vis-cartao p { margin: 6px 0 0; overflow-wrap: anywhere; }
.vis-topo { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.vis-topo b { font-size: 1.05rem; overflow-wrap: anywhere; }
.vis-validade { font-weight: 600; }
.vis-acoes { display: flex; gap: 8px; flex-wrap: wrap; margin-top: 12px; }
.vis-acoes .btn { min-height: 40px; }

/* cores da situação na portaria: verde entra, amarelo confere, vermelho não entra */
.vis-ok { border-left-color: var(--ok); }
.vis-ok .etiqueta { background: rgba(21, 128, 61, .12); border-color: rgba(21, 128, 61, .35); color: var(--ok); }
.vis-fora { border-left-color: #c58a12; }
.vis-fora .etiqueta { background: rgba(197, 138, 18, .14); border-color: rgba(197, 138, 18, .4); color: #8a5d00; }
.vis-restrito { border-left-color: #c2410c; background: color-mix(in srgb, #c2410c 6%, var(--superficie)); }
.vis-restrito .etiqueta { background: #c2410c; border-color: #c2410c; color: #fff; }
.vis-motivo { color: #b4380a; font-weight: 600; }
:root[data-modo="escuro"] .vis-fora .etiqueta { color: #f5c46b; }
:root[data-modo="escuro"] .vis-motivo { color: #fb923c; }
.vis-chegou { display: inline-flex; align-items: center; gap: 6px; margin: 0; color: var(--ok); font-weight: 700; }

.vis-busca { display: flex; align-items: center; gap: 10px; padding: 0 16px; min-height: 58px; margin-bottom: 18px; background: var(--superficie); border: 2px solid var(--linha); border-radius: var(--raio-g); box-shadow: var(--sombra); color: var(--texto-2); }
.vis-busca:focus-within { border-color: var(--agua); }
.vis-busca input[type="search"] { flex: 1; min-width: 0; max-width: none; min-height: 52px; padding: 0 !important; border: 0 !important; outline: 0; box-shadow: none !important; background: transparent !important; color: var(--texto); font: inherit; font-size: 1.1rem; }
.vis-titulo { font-size: 1.05rem; margin: 18px 0 10px; }
.vis-titulo-linha { display: flex; align-items: center; justify-content: space-between; gap: 10px; flex-wrap: wrap; margin-top: 24px; }
.vis-titulo-linha .vis-titulo { margin: 0; }

.vis-dias { display: flex; flex-wrap: wrap; gap: 6px; }
.vis-dias .chip { min-width: 52px; }
.vis-visitas { list-style: none; margin: 0; display: grid; gap: 0; }
.vis-visitas li { display: flex; justify-content: space-between; gap: 12px; padding: 10px 0; border-bottom: 1px solid var(--linha); }
.vis-visitas li:last-child { border-bottom: 0; }
