/* Modal de aviso (mensagens flash) e overlay de espera — só o que o Tabler não tem. */
.modal-aviso { z-index: 1080; }
.modal-aviso .aviso-icone { display: inline-flex; }
.modal-aviso .aviso-texto { font-size: .95rem; }
.modal-aviso .aviso-lista li { display: flex; gap: .6rem; align-items: flex-start; padding: .25rem 0; }
.modal-aviso .aviso-ponto { flex: 0 0 auto; width: .5rem; height: .5rem; border-radius: 50%; margin-top: .45rem; }
.modal-aviso .aviso-progresso { height: 3px; background: var(--tblr-border-color); overflow: hidden; }
.modal-aviso .aviso-progresso span { display: block; height: 100%; width: 100%; transform-origin: left; transform: scaleX(1); }
.modal-aviso.contando .aviso-progresso span { transition: transform linear; transition-duration: var(--aviso-ms, 5000ms); transform: scaleX(0); }

.overlay-espera {
  position: fixed; inset: 0; z-index: 1090;
  display: flex; align-items: center; justify-content: center;
  background: rgba(15, 23, 42, .62); backdrop-filter: blur(4px);
  animation: overlay-entra .25s ease-out;
}
.overlay-espera[hidden] { display: none; }
.overlay-cartao { width: min(92vw, 30rem); text-align: center; overflow: hidden; border: 0; }
.overlay-barra { height: 4px; background: var(--tblr-border-color); overflow: hidden; }
.overlay-barra span { display: block; height: 100%; width: 40%; background: linear-gradient(90deg, var(--tblr-primary), var(--tblr-azure)); border-radius: 2px; animation: overlay-corre 1.4s ease-in-out infinite; }
.overlay-espera.com-erro .overlay-barra span { animation: none; width: 100%; background: var(--tblr-danger); }
.overlay-anel {
  position: relative; width: 5.5rem; height: 5.5rem; margin: 0 auto 1.25rem; border-radius: 50%;
  background: conic-gradient(var(--tblr-primary) 0 25%, var(--tblr-border-color) 25% 100%);
  animation: overlay-gira 1.1s linear infinite;
}
.overlay-anel::before { content: ''; position: absolute; inset: 5px; border-radius: 50%; background: var(--tblr-bg-surface); }
.overlay-anel-icone { position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; color: var(--tblr-primary); animation: overlay-gira 1.1s linear infinite reverse; }
.overlay-espera.com-erro .overlay-anel, .overlay-espera.com-erro .overlay-anel-icone { animation: none; }
.overlay-espera.com-erro .overlay-anel { background: conic-gradient(var(--tblr-danger) 0 100%); }
.overlay-espera.com-erro .overlay-anel-icone { color: var(--tblr-danger); }
.overlay-contadores { border-top: 1px solid var(--tblr-border-color); padding-top: .75rem; }
.overlay-numero { font-size: 1.5rem; font-weight: 700; font-variant-numeric: tabular-nums; line-height: 1.1; }
.overlay-legenda { font-size: .7rem; text-transform: uppercase; letter-spacing: .06em; color: var(--tblr-secondary); }
[data-overlay-tempo] { font-variant-numeric: tabular-nums; }
@keyframes overlay-gira { to { transform: rotate(360deg); } }
@keyframes overlay-corre { 0% { transform: translateX(-100%); } 100% { transform: translateX(260%); } }
@keyframes overlay-entra { from { opacity: 0; } to { opacity: 1; } }
@media (prefers-reduced-motion: reduce) { .overlay-anel, .overlay-anel-icone, .overlay-barra span { animation: none; } }
