/* OrbitaPms 0.2.8.0 — respostas visuais de carregamento; segue os tokens já usados no projeto. */
#orbita-carregamento-barra[hidden],#orbita-carregamento-aviso[hidden]{display:none!important}
#orbita-carregamento-barra{position:fixed;left:0;top:0;width:100%;height:3px;z-index:10020;overflow:hidden;background:color-mix(in srgb,var(--orb-primary) 13%,transparent);pointer-events:none}
#orbita-carregamento-barra::before{content:"";display:block;width:38%;height:100%;border-radius:3px;background:var(--orb-primary);animation:orbita-progresso 1.15s ease-in-out infinite}
#orbita-carregamento-aviso{position:fixed;right:18px;bottom:20px;z-index:10019;display:flex;align-items:center;gap:11px;max-width:min(360px,calc(100vw - 26px));padding:12px 16px;border:1px solid var(--orb-border);border-radius:12px;background:var(--orb-surface);color:var(--orb-text);box-shadow:0 10px 32px #14274726;font-size:13px;font-weight:600;pointer-events:none;animation:orbita-entrada-aviso .2s ease-out both}
.orbita-indicador-circular{display:block;flex:0 0 20px;width:20px;height:20px;border:2.5px solid color-mix(in srgb,var(--orb-primary) 18%,transparent);border-top-color:var(--orb-primary);border-radius:50%;animation:orbita-giro .72s linear infinite}
/* Durante consultas, não apagar dados antigos: mostrar que a grade está sendo atualizada. */
[data-orbita-carregando]{position:relative;isolation:isolate}
[data-orbita-carregando]::after{content:"Atualizando dados…";position:absolute;inset:0;z-index:12;display:flex;align-items:center;justify-content:center;min-height:58px;padding:10px;text-align:center;color:var(--orb-primary-strong);font-size:13px;font-weight:650;letter-spacing:.01em;background:color-mix(in srgb,var(--orb-surface) 86%,transparent);border-radius:inherit;pointer-events:none}
/* Campos pequenos, como a busca de UH na reserva, não devem receber cobertura grande. */
.reserva-campo[data-orbita-carregando]::after{content:"Consultando disponibilidade…";position:static;justify-content:flex-start;min-height:0;padding:5px 0;background:transparent}
button[aria-busy="true"],.botao[aria-busy="true"]{position:relative;opacity:.82;cursor:progress}
button[aria-busy="true"]::before,.botao[aria-busy="true"]::before{content:"";display:inline-block;vertical-align:middle;flex:0 0 13px;width:13px;height:13px;border-radius:50%;margin-right:7px;border:2px solid currentColor;border-left-color:transparent;animation:orbita-giro .72s linear infinite}
/* Aparição discreta do conteúdo, sem mover cabeçalhos fixos nem alterar grades. */
body.app-autenticado #conteudo,body.app-publico #conteudo{animation:orbita-conteudo .19s ease-out both}
.painel,.reserva-porta-item,.mapa-acao,.botao{transition:box-shadow .16s ease,border-color .16s ease,background-color .16s ease}
@keyframes orbita-progresso{0%{transform:translateX(-110%)}100%{transform:translateX(275%)}}
@keyframes orbita-giro{to{transform:rotate(360deg)}}
@keyframes orbita-entrada-aviso{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}
@keyframes orbita-conteudo{from{opacity:.88}to{opacity:1}}
@media(max-width:600px){#orbita-carregamento-aviso{left:12px;right:12px;bottom:12px;width:auto;max-width:none}}
@media(prefers-reduced-motion:reduce){#orbita-carregamento-barra::before,.orbita-indicador-circular,button[aria-busy="true"]::before,.botao[aria-busy="true"]::before{animation:none}body.app-autenticado #conteudo,body.app-publico #conteudo,#orbita-carregamento-aviso{animation:none}.painel,.reserva-porta-item,.mapa-acao,.botao{transition:none}}
@media print{#orbita-carregamento-barra,#orbita-carregamento-aviso{display:none!important}body.app-autenticado #conteudo,body.app-publico #conteudo{animation:none!important}[data-orbita-carregando]::after{display:none!important}}
